From d3c60e18b95b50751f8088fa2d23cd8ff7f173bc Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期三, 01 七月 2026 11:05:17 +0800
Subject: [PATCH] 测试完成
---
src/views/knowledge/questionnaire/smsConfig/index.vue | 1015 ++++++++++++++++++-----------------------------------------
1 files changed, 318 insertions(+), 697 deletions(-)
diff --git a/src/views/knowledge/questionnaire/smsConfig/index.vue b/src/views/knowledge/questionnaire/smsConfig/index.vue
index a6207bd..0397cdd 100644
--- a/src/views/knowledge/questionnaire/smsConfig/index.vue
+++ b/src/views/knowledge/questionnaire/smsConfig/index.vue
@@ -1,274 +1,222 @@
<template>
<div class="smsConfig-management">
- <!-- 宸︿晶鏍� -->
- <div class="sidecolumn">
- <div class="sidecolumn-top">
- <div class="top-wj">妯℃澘鍒嗙被</div>
- <div class="top-tj" @click="Newcategory">+娣诲姞</div>
- </div>
- <div class="center-ss">
- <el-input
- placeholder="璇疯緭鍏ュ唴瀹�"
- v-model="sidecolumnval"
- class="input-with-select"
- size="medium"
- >
- </el-input>
- </div>
- <div class="head-container" style="margin-top: 20px">
- <el-tree
- :data="deptOptions"
- :props="defaultProps"
- :expand-on-click-node="false"
- :filter-node-method="filterNode"
- ref="tree"
- node-key="id"
- default-expand-all
- highlight-current
- @node-click="handleNodeClick"
- >
- <span class="custom-tree-node" slot-scope="{ node, data }">
- <span class="tree-node-label">{{ node.label }}</span>
- <span v-if="data.id > 0">
+ <div class="main-content">
+ <el-row :gutter="20">
+ <el-col :span="24" :xs="24">
+ <el-form
+ :model="queryParams"
+ ref="queryForm"
+ size="small"
+ :inline="true"
+ v-show="showSearch"
+ label-width="88px"
+ >
+ <el-form-item label="妯℃澘缂栧彿" prop="templetno">
+ <el-input
+ v-model="queryParams.templetno"
+ placeholder="璇疯緭鍏ユā鏉跨紪鍙�"
+ clearable
+ style="width: 200px"
+ @keyup.enter.native="handleQuery"
+ />
+ </el-form-item>
+
+ <el-form-item label="妯℃澘鍚嶇О" prop="templetname">
+ <el-input
+ v-model="queryParams.templetname"
+ placeholder="璇疯緭鍏ユā鏉垮悕绉�"
+ clearable
+ style="width: 200px"
+ @keyup.enter.native="handleQuery"
+ />
+ </el-form-item>
+
+ <el-form-item label="閮ㄩ棬鍚嶇О" prop="deptName">
+ <el-input
+ v-model="queryParams.deptName"
+ placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�"
+ clearable
+ style="width: 200px"
+ @keyup.enter.native="handleQuery"
+ />
+ </el-form-item>
+
+ <el-form-item>
<el-button
- type="text"
+ type="primary"
+ icon="el-icon-search"
+ size="medium"
+ @click="handleQuery"
+ >鎼滅储</el-button
+ >
+ <el-button
+ icon="el-icon-refresh"
+ size="medium"
+ @click="resetQuery"
+ >閲嶇疆</el-button
+ >
+ </el-form-item>
+ </el-form>
+
+ <el-divider></el-divider>
+
+ <el-row :gutter="10" class="mb8">
+ <el-col :span="1.5">
+ <el-button
+ type="primary"
+ plain
+ icon="el-icon-plus"
+ size="medium"
+ @click="handleAdd"
+ >鏂板</el-button
+ >
+ </el-col>
+ <el-col :span="1.5">
+ <el-button
+ type="danger"
+ plain
icon="el-icon-delete"
- circle
- size="mini"
- @click="() => remove(node, data)"
+ size="medium"
+ :disabled="multiple"
+ @click="handleDelete"
+ >鍒犻櫎</el-button
>
- </el-button>
- </span>
- <span v-if="data.id > 0">
- <el-button
- type="text"
- circle
- size="mini"
- @click="() => altertag(node, data)"
- >
- <span class="button-textxg">
- <i class="el-icon-edit-outline"></i>
- </span>
- </el-button>
- </span>
- </span>
- </el-tree>
- </div>
- </div>
+ </el-col>
+ </el-row>
- <!-- 鍙充晶鏁版嵁 -->
- <div class="leftvlue">
- <div class="leftvlue-bg">
- <el-row :gutter="20">
- <el-col :span="24" :xs="24">
- <el-form
- :model="queryParams"
- ref="queryForm"
- size="small"
- :inline="true"
- v-show="showSearch"
- label-width="98px"
- >
- <el-form-item label="妯℃澘鍚嶇О" prop="templetname">
- <el-input
- v-model="queryParams.templetname"
- placeholder="璇疯緭鍏ユā鏉垮悕绉�"
- clearable
- style="width: 200px"
- @keyup.enter.native="handleQuery"
- />
- </el-form-item>
+ <el-table
+ v-loading="loading"
+ :data="userList"
+ :border="true"
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column type="selection" width="50" align="center" />
- <el-form-item label="鐭俊绛惧悕" prop="signature">
- <el-input
- v-model="queryParams.signature"
- placeholder="璇疯緭鍏ョ煭淇$鍚�"
- clearable
- style="width: 200px"
- @keyup.enter.native="handleQuery"
- />
- </el-form-item>
-
- <el-form-item label="鍚敤鐘舵��" prop="isenable">
- <el-select
- v-model="queryParams.isenable"
- placeholder="璇烽�夋嫨鐘舵��"
- clearable
- style="width: 200px"
- >
- <el-option
- v-for="item in statusOptions"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
- </el-option>
- </el-select>
- </el-form-item>
-
- <el-form-item>
- <el-button
- type="primary"
- icon="el-icon-search"
- size="medium"
- @click="handleQuery"
- >鎼滅储</el-button>
- <el-button
- icon="el-icon-refresh"
- size="medium"
- @click="resetQuery"
- >閲嶇疆</el-button>
- </el-form-item>
- </el-form>
-
- <el-divider></el-divider>
-
- <el-row :gutter="10" class="mb8">
- <el-col :span="1.5">
- <el-button
- type="primary"
- plain
- icon="el-icon-plus"
- size="medium"
- @click="handleAdd"
- >鏂板</el-button>
- </el-col>
- <el-col :span="1.5">
- <el-button
- type="danger"
- plain
- icon="el-icon-delete"
- size="medium"
- :disabled="multiple"
- @click="handleDelete"
- >鍒犻櫎</el-button>
- </el-col>
- </el-row>
-
- <el-table
- v-loading="loading"
- :data="userList"
- :border="true"
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="selection" width="50" align="center" />
-
- <el-table-column
- label="妯℃澘鍚嶇О"
- align="center"
- key="templetname"
- prop="templetname"
- width="160"
- :show-overflow-tooltip="true"
- />
-
- <el-table-column
- label="鐭俊绛惧悕"
- align="center"
- key="signature"
- prop="signature"
- width="120"
- />
-
- <el-table-column
- label="妯℃澘鍐呭"
- align="center"
- key="templetcontent"
- prop="templetcontent"
- width="280"
- :show-overflow-tooltip="true"
- />
-
- <el-table-column
- label="妯℃澘绫诲瀷"
- align="center"
- key="templettype"
- prop="templettype"
- width="120"
- >
- <template slot-scope="scope">
- <dict-tag :options="typeOptions" :value="scope.row.templettype" />
- </template>
- </el-table-column>
-
- <el-table-column
- label="鍚敤鐘舵��"
- align="center"
- key="isenable"
- prop="isenable"
- width="100"
- >
- <template slot-scope="scope">
- <dict-tag :options="statusOptions" :value="scope.row.isenable" />
- </template>
- </el-table-column>
-
- <el-table-column
- label="澶囨敞"
- align="center"
- key="remark"
- prop="remark"
- width="180"
- :show-overflow-tooltip="true"
- />
-
- <el-table-column
- label="鍒涘缓鏃堕棿"
- align="center"
- key="createTime"
- prop="createTime"
- width="160"
- />
-
- <el-table-column
- label="鎿嶄綔"
- fixed="right"
- align="center"
- width="240"
- class-name="small-padding fixed-width"
- >
- <template slot-scope="scope">
- <el-button
- size="medium"
- type="text"
- @click="handleUpdate(scope.row)"
- >
- <span class="button-textxg">
- <i class="el-icon-edit"></i>淇敼
- </span>
- </el-button>
- <el-button
- size="medium"
- type="text"
- @click="handlePreview(scope.row)"
- >
- <span class="button-text">
- <i class="el-icon-view"></i>棰勮
- </span>
- </el-button>
- <el-button
- size="medium"
- type="text"
- @click="handleDelete(scope.row)"
- >
- <span class="button-textsc">
- <i class="el-icon-edit"></i>鍒犻櫎
- </span>
- </el-button>
- </template>
- </el-table-column>
- </el-table>
-
- <pagination
- v-show="total > 0"
- :total="total"
- :page.sync="queryParams.pageNum"
- :limit.sync="queryParams.pageSize"
- @pagination="getList"
+ <el-table-column
+ label="妯℃澘缂栧彿"
+ align="center"
+ key="templetno"
+ prop="templetno"
+ width="140"
+ :show-overflow-tooltip="true"
/>
- </el-col>
- </el-row>
- </div>
+
+ <el-table-column
+ label="妯℃澘鍚嶇О"
+ align="center"
+ key="templetname"
+ prop="templetname"
+ width="160"
+ :show-overflow-tooltip="true"
+ />
+
+ <el-table-column
+ label="妯℃澘鍐呭"
+ align="center"
+ key="templetcontent"
+ prop="templetcontent"
+ width="280"
+ :show-overflow-tooltip="true"
+ />
+
+ <el-table-column
+ label="閮ㄩ棬鍚嶇О"
+ align="center"
+ key="deptName"
+ prop="deptName"
+ width="120"
+ :show-overflow-tooltip="true"
+ />
+
+ <el-table-column
+ label="鐥呭尯鍚嶇О"
+ align="center"
+ key="wardName"
+ prop="wardName"
+ width="140"
+ :show-overflow-tooltip="true"
+ />
+
+ <el-table-column
+ label="鐢ㄦ埛宸ュ彿"
+ align="center"
+ key="userName"
+ prop="userName"
+ width="120"
+ />
+
+ <el-table-column
+ label="鐢ㄦ埛鏄电О"
+ align="center"
+ key="nickName"
+ prop="nickName"
+ width="120"
+ />
+
+ <el-table-column
+ label="鏄惁涓婁紶"
+ align="center"
+ key="isupload"
+ prop="isupload"
+ width="90"
+ />
+
+ <el-table-column
+ label="涓婁紶鏃堕棿"
+ align="center"
+ key="uploadTime"
+ prop="uploadTime"
+ width="160"
+ />
+
+ <el-table-column
+ label="鎿嶄綔"
+ fixed="right"
+ align="center"
+ width="200"
+ class-name="small-padding fixed-width"
+ >
+ <template slot-scope="scope">
+ <el-button
+ size="medium"
+ type="text"
+ @click="handleUpdate(scope.row)"
+ >
+ <span class="button-textxg">
+ <i class="el-icon-edit"></i>淇敼
+ </span>
+ </el-button>
+ <el-button
+ size="medium"
+ type="text"
+ @click="handlePreview(scope.row)"
+ >
+ <span class="button-text">
+ <i class="el-icon-view"></i>棰勮
+ </span>
+ </el-button>
+ <el-button
+ size="medium"
+ type="text"
+ @click="handleDelete(scope.row)"
+ >
+ <span class="button-textsc">
+ <i class="el-icon-edit"></i>鍒犻櫎
+ </span>
+ </el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <pagination
+ v-show="total > 0"
+ :total="total"
+ :page.sync="queryParams.pageNum"
+ :limit.sync="queryParams.pageSize"
+ @pagination="getList"
+ />
+ </el-col>
+ </el-row>
</div>
<!-- 娣诲姞/淇敼鐭俊妯℃澘寮规 -->
@@ -285,36 +233,19 @@
label-width="100px"
size="medium"
>
- <el-form-item label="妯℃澘鍒嗙被" prop="categoryid">
- <el-select
- v-model="form.categoryid"
- placeholder="璇烽�夋嫨妯℃澘鍒嗙被"
- clearable
- style="width: 100%"
- >
- <el-option
- v-for="item in categoryOptions"
- :key="item.id"
- :label="item.name"
- :value="item.id"
- >
- </el-option>
- </el-select>
+ <el-form-item label="妯℃澘缂栧彿" prop="templetno">
+ <el-input
+ v-model="form.templetno"
+ placeholder="璇疯緭鍏ユā鏉跨紪鍙�"
+ maxlength="50"
+ />
</el-form-item>
<el-form-item label="妯℃澘鍚嶇О" prop="templetname">
<el-input
v-model="form.templetname"
placeholder="璇疯緭鍏ユā鏉垮悕绉�"
- maxlength="50"
- />
- </el-form-item>
-
- <el-form-item label="鐭俊绛惧悕" prop="signature">
- <el-input
- v-model="form.signature"
- placeholder="璇疯緭鍏ョ煭淇$鍚嶏紙濡傦細銆愪附姘翠汉姘戝尰闄€�戯級"
- maxlength="20"
+ maxlength="100"
/>
</el-form-item>
@@ -329,118 +260,77 @@
/>
</el-form-item>
- <el-form-item label="妯℃澘绫诲瀷" prop="templettype">
+ <el-form-item label="绉戝" prop="deptCode">
<el-select
- v-model="form.templettype"
- placeholder="璇烽�夋嫨妯℃澘绫诲瀷"
+ v-model="form.deptCode"
+ placeholder="璇烽�夋嫨绉戝"
+ filterable
+ clearable
style="width: 100%"
+ @change="handleDeptChange"
>
<el-option
- v-for="item in typeOptions"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
- </el-option>
+ v-for="dept in departmentOptions"
+ :key="dept.value"
+ :label="dept.label"
+ :value="dept.value"
+ />
</el-select>
</el-form-item>
- <el-form-item label="鍚敤鐘舵��" prop="isenable">
- <el-radio-group v-model="form.isenable">
- <el-radio
- v-for="item in statusOptions"
- :key="item.value"
- :label="item.value"
- >{{ item.label }}</el-radio>
- </el-radio-group>
- </el-form-item>
-
- <el-form-item label="澶囨敞" prop="remark">
- <el-input
- v-model="form.remark"
- type="textarea"
- :rows="3"
- placeholder="璇疯緭鍏ュ娉ㄤ俊鎭�"
- maxlength="200"
- show-word-limit
- />
+ <el-form-item label="鐥呭尯" prop="wardCode">
+ <el-select
+ v-model="form.wardCode"
+ placeholder="璇烽�夋嫨鐥呭尯"
+ filterable
+ clearable
+ style="width: 100%"
+ @change="handleWardChange"
+ >
+ <el-option
+ v-for="ward in wardOptions"
+ :key="ward.value"
+ :label="ward.label"
+ :value="ward.value"
+ />
+ </el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelForm">鍙� 娑�</el-button>
- <el-button type="primary" @click="submitForm" :loading="submitLoading">纭� 瀹�</el-button>
+ <el-button type="primary" @click="submitForm" :loading="submitLoading"
+ >纭� 瀹�</el-button
+ >
</div>
</el-dialog>
<!-- 妯℃澘棰勮寮规 -->
- <el-dialog
- title="鐭俊妯℃澘棰勮"
- :visible.sync="previewVisible"
- width="40%"
- >
+ <el-dialog title="鐭俊妯℃澘棰勮" :visible.sync="previewVisible" width="40%">
<div class="preview-box">
<div class="preview-item">
+ <div class="preview-label">妯℃澘缂栧彿锛�</div>
+ <div class="preview-value">{{ previewData.templetno || "-" }}</div>
+ </div>
+ <div class="preview-item">
<div class="preview-label">妯℃澘鍚嶇О锛�</div>
- <div class="preview-value">{{ previewData.templetname }}</div>
+ <div class="preview-value">{{ previewData.templetname || "-" }}</div>
</div>
<div class="preview-item">
- <div class="preview-label">鐭俊绛惧悕锛�</div>
- <div class="preview-value">{{ previewData.signature }}</div>
+ <div class="preview-label">閮ㄩ棬鍚嶇О锛�</div>
+ <div class="preview-value">{{ previewData.deptName || "-" }}</div>
</div>
<div class="preview-item">
- <div class="preview-label">妯℃澘绫诲瀷锛�</div>
- <div class="preview-value">
- <dict-tag :options="typeOptions" :value="previewData.templettype" />
- </div>
+ <div class="preview-label">鐥呭尯鍚嶇О锛�</div>
+ <div class="preview-value">{{ previewData.wardName || "-" }}</div>
</div>
- <div class="preview-item">
- <div class="preview-label">鍚敤鐘舵�侊細</div>
- <div class="preview-value">
- <dict-tag :options="statusOptions" :value="previewData.isenable" />
- </div>
- </div>
+
<el-divider></el-divider>
<div class="preview-content">
<div class="preview-content-label">鐭俊鍐呭棰勮锛�</div>
<div class="preview-content-box">
- {{ previewData.templetcontent || '鏆傛棤鍐呭' }}
+ {{ previewData.templetcontent || "鏆傛棤鍐呭" }}
</div>
</div>
- <div class="preview-item" v-if="previewData.remark">
- <div class="preview-label">澶囨敞锛�</div>
- <div class="preview-value">{{ previewData.remark }}</div>
- </div>
- </div>
- </el-dialog>
-
- <!-- 娣诲姞绫诲埆寮规 -->
- <el-dialog title="绫诲埆缂栬緫" width="30%" :visible.sync="dialogFormVisible">
- <div style="text-align: center; margin-bottom: 20px">
- <el-radio-group v-model="radio">
- <el-radio-button label="涓诲垎绫�"></el-radio-button>
- <el-radio-button label="瀛愬垎绫�"></el-radio-button>
- </el-radio-group>
- </div>
- <el-divider></el-divider>
- <el-form :model="classifyform">
- <el-form-item label="璇烽�夋嫨妯℃澘澶х被" v-if="radio == '瀛愬垎绫�'">
- <el-select v-model="classifyform.pid" placeholder="璇烽�夋嫨">
- <el-option
- v-for="item in deptOptions"
- :key="item.id"
- :label="item.name"
- :value="item.id"
- >
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="璇疯緭鍏ョ被鍒悕绉�">
- <el-input v-model="classifyform.name" autocomplete="off"></el-input>
- </el-form-item>
- </el-form>
- <div slot="footer" class="dialog-footer">
- <el-button @click="getDeptTree()">鍙� 娑�</el-button>
- <el-button type="primary" @click="submitsidecolumn">纭� 瀹�</el-button>
</div>
</el-dialog>
</div>
@@ -484,35 +374,10 @@
previewVisible: false,
// 棰勮鏁版嵁
previewData: {},
- // 绫诲埆寮规
- dialogFormVisible: false,
- // 绫诲埆form
- classifyform: {},
- // 涓�/瀛愬垎绫�
- radio: "涓诲垎绫�",
- // 绫诲埆鎼滅储
- sidecolumnval: "",
- // 鏍戞暟鎹�
- deptOptions: [],
- // 鍒嗙被涓嬫媺閫夐」
- categoryOptions: [],
- // 鏍憄rops
- defaultProps: {
- children: "children",
- label: "name",
- },
- // 鐘舵�侀�夐」
- statusOptions: [
- { label: "鍚敤", value: "0" },
- { label: "鍋滅敤", value: "1" },
- ],
- // 绫诲瀷閫夐」
- typeOptions: [
- { label: "楠岃瘉鐮�", value: "0" },
- { label: "閫氱煡", value: "1" },
- { label: "钀ラ攢", value: "2" },
- { label: "闅忚", value: "3" },
- ],
+ // 绉戝閫夐」
+ departmentOptions: [],
+ // 鐥呭尯閫夐」
+ wardOptions: [],
// 鏌ヨ鍙傛暟
queryParams: {
pageNum: 1,
@@ -528,24 +393,40 @@
templetcontent: [
{ required: true, message: "璇疯緭鍏ユā鏉垮唴瀹�", trigger: "blur" },
],
- signature: [
- { required: true, message: "璇疯緭鍏ョ煭淇$鍚�", trigger: "blur" },
- ],
- isenable: [
- { required: true, message: "璇烽�夋嫨鍚敤鐘舵��", trigger: "change" },
- ],
},
};
},
- watch: {
- // 鐩戝惉绫诲埆鎼滅储
- sidecolumnval(val) {
- this.$refs.tree.filter(val);
+ computed: {
+ // 浠� store getters 鑾峰彇绉戝閫夐」
+ computedDepartmentOptions() {
+ if (this.$store.getters.belongDepts) {
+ return this.$store.getters.belongDepts.map((dept) => ({
+ label: dept.deptName,
+ value: dept.deptCode,
+ }));
+ }
+ return [];
+ },
+ // 浠� store getters 鑾峰彇鐥呭尯閫夐」
+ computedWardOptions() {
+ console.log(
+ this.$store.getters.belongWards,
+ "this.$store.getters.belongWards"
+ );
+
+ if (this.$store.getters.belongWards) {
+ return this.$store.getters.belongWards.map((ward) => ({
+ label: ward.districtName,
+ value: ward.districtCode,
+ }));
+ }
+ return [];
},
},
created() {
this.getList();
- this.getDeptTree();
+ this.departmentOptions = this.computedDepartmentOptions;
+ this.wardOptions = this.computedWardOptions;
},
methods: {
/** 鏌ヨ鍒楄〃 */
@@ -581,14 +462,7 @@
handleAdd() {
this.dialogTitle = "鏂板鐭俊妯℃澘";
this.dialogVisible = true;
- this.form = {
- isenable: "0",
- templettype: "1",
- };
- // 濡傛灉鏈夋爲閫変腑鍒嗙被锛岄粯璁ゅ甫鍏�
- if (this.queryParams.categoryid) {
- this.form.categoryid = this.queryParams.categoryid;
- }
+ this.form = {};
this.$nextTick(() => {
if (this.$refs.formRef) {
this.$refs.formRef.clearValidate();
@@ -618,6 +492,30 @@
getSmstemplet(templetid).then((response) => {
this.previewData = response.data;
});
+ },
+
+ /** 绉戝閫夋嫨鍙樺寲 - 鑷姩濉厖绉戝鍚嶇О */
+ handleDeptChange(value) {
+ const selectedDept = this.departmentOptions.find(
+ (dept) => dept.value === value
+ );
+ if (selectedDept) {
+ this.form.deptName = selectedDept.label;
+ } else {
+ this.form.deptName = "";
+ }
+ },
+
+ /** 鐥呭尯閫夋嫨鍙樺寲 - 鑷姩濉厖鐥呭尯鍚嶇О */
+ handleWardChange(value) {
+ const selectedWard = this.wardOptions.find(
+ (ward) => ward.value === value
+ );
+ if (selectedWard) {
+ this.form.wardName = selectedWard.label;
+ } else {
+ this.form.wardName = "";
+ }
},
/** 鎻愪氦琛ㄥ崟 */
@@ -677,260 +575,21 @@
})
.catch(() => {});
},
-
- // 琛ㄥ崟閲嶇疆
- reset() {
- this.form = {
- templetid: undefined,
- templetname: undefined,
- signature: undefined,
- templetcontent: undefined,
- templettype: "1",
- isenable: "0",
- categoryid: undefined,
- remark: undefined,
- };
- this.resetForm("form");
- },
-
- /** 鏌ヨ鍒嗙被鏍� */
- getDeptTree() {
- // 妯℃嫙鍒嗙被鏍戞暟鎹� - 瀹為檯椤圭洰涓簲鏇挎崲涓虹湡瀹濧PI
- this.deptOptions = [
- {
- id: 1,
- name: "闅忚鐭俊",
- children: [
- { id: 11, name: "鍑洪櫌闅忚" },
- { id: 12, name: "澶嶈瘖鎻愰啋" },
- { id: 13, name: "鍋ュ悍瀹f暀" },
- ],
- },
- {
- id: 2,
- name: "閫氱煡鐭俊",
- children: [
- { id: 21, name: "棰勭害閫氱煡" },
- { id: 22, name: "鎶ュ憡閫氱煡" },
- ],
- },
- {
- id: 3,
- name: "楠岃瘉鐮�",
- children: [
- { id: 31, name: "鐧诲綍楠岃瘉" },
- { id: 32, name: "娉ㄥ唽楠岃瘉" },
- ],
- },
- ];
- this.categoryOptions = this.flattenTree(this.deptOptions);
- },
-
- /** 鎵佸钩鍖栨爲鏁版嵁鐢ㄤ簬涓嬫媺閫夋嫨 */
- flattenTree(tree) {
- let result = [];
- tree.forEach((item) => {
- result.push({ id: item.id, name: item.name });
- if (item.children && item.children.length) {
- result = result.concat(item.children);
- }
- });
- return result;
- },
-
- /** 绛涢�夎妭鐐� */
- filterNode(value, data) {
- if (!value) return true;
- return data.name.indexOf(value) !== -1;
- },
-
- /** 鐐瑰嚮鏍戣妭鐐� */
- handleNodeClick(data) {
- if (data.children && data.children.length) return;
- this.queryParams.categoryid = data.id;
- this.getList();
- },
-
- // 鍒嗙被鏍�-----------------------
- /** 鏂板缓鍒嗙被 */
- Newcategory() {
- this.classifyform = {};
- this.radio = "涓诲垎绫�";
- this.dialogFormVisible = true;
- },
-
- /** 淇敼鍒嗙被 */
- altertag(node, data) {
- this.dialogFormVisible = true;
- if (data.children && data.children.length) {
- this.radio = "涓诲垎绫�";
- } else {
- this.radio = "瀛愬垎绫�";
- }
- this.classifyform = { ...data };
- },
-
- /** 鎻愪氦鍒嗙被 */
- submitsidecolumn() {
- if (this.classifyform.id) {
- // 淇敼鍒嗙被 - 瀹為檯椤圭洰涓簲鏇挎崲涓虹湡瀹濧PI
- const index = this.deptOptions.findIndex(
- (obj) => obj.id === this.classifyform.id
- );
- if (index > -1) {
- this.deptOptions[index].name = this.classifyform.name;
- this.$set(this.deptOptions, index, this.deptOptions[index]);
- }
- this.$modal.msgSuccess("淇敼鎴愬姛");
- this.dialogFormVisible = false;
- return;
- }
-
- if (this.radio === "涓诲垎绫�" && this.classifyform.name) {
- // 鏂板涓诲垎绫�
- const newId = Math.max(...this.deptOptions.map((d) => d.id), 0) + 1;
- this.deptOptions.push({
- id: newId,
- name: this.classifyform.name,
- children: [],
- });
- this.$modal.msgSuccess("鏂板鎴愬姛");
- this.dialogFormVisible = false;
- } else if (
- this.radio === "瀛愬垎绫�" &&
- this.classifyform.pid &&
- this.classifyform.name
- ) {
- // 鏂板瀛愬垎绫�
- const parent = this.deptOptions.find(
- (obj) => obj.id === this.classifyform.pid
- );
- if (parent) {
- const newChildId =
- Math.max(...parent.children.map((c) => c.id), parent.id * 10) + 1;
- parent.children.push({
- id: newChildId,
- name: this.classifyform.name,
- });
- }
- this.$modal.msgSuccess("鏂板鎴愬姛");
- this.dialogFormVisible = false;
- } else {
- this.$modal.msgError("璇峰~鍐欏畬鏁翠俊鎭�");
- }
- this.classifyform = {};
- },
-
- /** 鍒犻櫎鍒嗙被 */
- remove(node, data) {
- if (data.children && data.children.length) {
- this.$modal
- .confirm(
- '鏄惁纭鍒犻櫎涓�绾у垎绫�"' + data.name + '"锛熷垹闄ゅ悗鍏朵笅鍒嗙被灏嗘棤娉曚娇鐢�'
- )
- .then(() => {
- const index = this.deptOptions.findIndex(
- (obj) => obj.id === data.id
- );
- if (index > -1) {
- this.deptOptions.splice(index, 1);
- }
- this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
- })
- .catch(() => {});
- } else {
- this.$modal
- .confirm('鏄惁纭鍒犻櫎鍒嗙被椤逛负"' + data.name + '"鐨勬暟鎹」锛�')
- .then(() => {
- this.deptOptions.forEach((parent) => {
- const idx = parent.children.findIndex(
- (child) => child.id === data.id
- );
- if (idx > -1) {
- parent.children.splice(idx, 1);
- }
- });
- this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
- })
- .catch(() => {});
- }
- },
},
};
</script>
<style lang="scss" scoped>
.smsConfig-management {
- display: flex;
+ padding: 20px;
}
-.sidecolumn {
- width: 380px;
- min-height: 100vh;
- text-align: center;
- margin-top: 20px;
- margin: 20px;
+.main-content {
padding: 30px;
background: #fff;
border: 1px solid #dcdfe6;
-webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
0 0 6px 0 rgba(0, 0, 0, 0.04);
-
- .sidecolumn-top {
- display: flex;
- justify-content: space-between;
- .top-wj {
- font-size: 20px;
- }
- .top-tj {
- font-size: 18px;
- color: rgb(0, 89, 255);
- cursor: pointer;
- }
- }
-
- /* 鏍稿績锛氳缃浐瀹氬搴︼紝瓒呭嚭閮ㄥ垎鏄剧ず鐪佺暐鍙� */
- .tree-node-label {
- display: inline-block;
- max-width: 160px;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- vertical-align: bottom;
- }
-
- /* 鍙�夛細榧犳爣鎮仠鏃跺彇娑堥檺鍒讹紝鏄剧ず鍏ㄦ枃 */
- .custom-tree-node:hover .tree-node-label {
- max-width: none;
- white-space: normal;
- overflow: visible;
- }
-
- .center-ss {
- margin-top: 30px;
- .input-with-select {
- height: 40px !important;
- }
- }
-
- .bottom-fl {
- margin-top: 30px;
- display: center !important;
- }
-}
-
-.leftvlue {
- width: 80%;
- margin-top: 20px;
- padding: 30px;
- background: #ffff;
- border: 1px solid #dcdfe6;
- -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
- 0 0 6px 0 rgba(0, 0, 0, 0.04);
-
- .mulsz {
- font-size: 20px;
- }
}
// 棰勮寮规鏍峰紡
@@ -980,46 +639,8 @@
}
}
-// 娣卞害閫夋嫨鍣�
::v-deep .el-input--medium .el-input__inner {
height: 40px !important;
-}
-
-::v-deep .el-tree-node__content {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- height: 46px;
- font-size: 20px;
- cursor: pointer;
-}
-
-::v-deep .el-tree {
- position: relative;
- cursor: default;
- border-radius: 5px;
- background: #eff8fe;
- color: #606266;
- border: 1px solid #bbe1fa;
- -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
- 0 0 6px 0 rgba(0, 0, 0, 0.04);
-}
-
-::v-deep
- .el-tree--highlight-current
- .el-tree-node.is-current
- > .el-tree-node__content {
- background-color: #7799fb;
- color: #fff;
-}
-
-::v-deep .el-button--mini.is-circle {
- padding: 7px;
- margin: 0;
- color: red;
}
// 鎸夐挳鏂囧瓧棰滆壊
--
Gitblit v1.9.3