diff --git a/src/assets/css/index.css b/src/assets/css/index.css index aebd520db87e8eceb4143ec451bfa8f10578e42e..977d6ce0740f23792539dcde0815254ad955936a 100644 --- a/src/assets/css/index.css +++ b/src/assets/css/index.css @@ -582,4 +582,13 @@ width: 620px!important; font-size: 14px; color: #dde4ff; margin: 0 20px; +} + +.apass_checkbox .el-checkbox__input.is-checked .el-checkbox__inner, +.apass_checkbox .el-checkbox__input.is-indeterminate .el-checkbox__inner { + background-color: #626de9; + border-color: #515fe7; +} +.apass_checkbox .el-checkbox__input.is-checked + .el-checkbox__label { + color: #58617a; } \ No newline at end of file diff --git a/src/components/menu-permission.vue b/src/components/menu-permission.vue index d1e4bd896911c5cc73ec963f44d523a0bddcfdee..a2e1b22f1c4fc7d8c8ffa6eebb38efa87d381793 100644 --- a/src/components/menu-permission.vue +++ b/src/components/menu-permission.vue @@ -1,36 +1,126 @@ @@ -41,86 +131,104 @@ export default { event: "change-permissions", }, props: { - permissions: { - type: Object, - default: {}, - }, data: { type: Array, default: () => [], }, }, - data: () => ({ - selectAllInfo: {}, - }), - watch: { - permissions: { - handler() { - this.upSelectAllInfo(); - }, - deep: true, - }, - }, methods: { - selectPermission(values) { - this.$emit("change-permissions", this.permissions); - }, - upSelectAllInfo() { - this.data.forEach((item) => { - let values = this.permissions[item.prop]; - let datas = this.data.find((v) => v.prop === item.prop).children; - let selectAllFlag = true; + selectedItem( + selected_item, + p_item = null, // 父元素 + gp_item = null, // 祖父元素 + ggp_item = null // 曾祖父元素 + ) { + let selected = !(selected_item.selected || false); + + this.traverse(selected_item, (v) => { + this.$set(v, "selected", selected); + }); + + if (p_item) { + let selectedAll = true; - datas.forEach((v) => { - selectAllFlag = selectAllFlag && values.indexOf(v.value) > -1; + p_item.children.forEach((item) => { + selectedAll = selectedAll && item.selected; }); - this.selectAllInfo[item.prop] = selectAllFlag; - }); - }, - selectAll(prop) { - let newValues = { ...this.permissions }; + this.$set(p_item, "selected", selectedAll); + } - this.selectAllInfo[prop] = !this.selectAllInfo[prop]; + if (gp_item) { + let selectedAll = true; - if (this.selectAllInfo[prop]) { - newValues[prop] = this.data - .find((item) => item.prop === prop) - .children.map((item) => item.value); - } else { - newValues[prop] = []; + gp_item.children.forEach((item) => { + selectedAll = selectedAll && item.selected; + }); + + this.$set(gp_item, "selected", selectedAll); + } + + if (ggp_item) { + let selectedAll = true; + + ggp_item.children.forEach((item) => { + selectedAll = selectedAll && item.selected; + }); + + this.$set(ggp_item, "selected", selectedAll); + } + + this.$emit("change", this.data); + }, + traverse(obj, cb) { + cb(obj); + + if (obj.children && obj.children.length) { + obj.children.forEach((item) => { + this.traverse(item, cb); + }); } - this.$emit("change-permissions", newValues); }, }, - mounted() { - this.upSelectAllInfo(); - }, + mounted() {}, }; - - diff --git a/src/pages/authority/addroles.vue b/src/pages/authority/addroles.vue index 5f9eb010c6848852efb9cf1094b4bd71480eeaa2..bf42119cb39d6c30cc182c1256214d6754aaba18 100644 --- a/src/pages/authority/addroles.vue +++ b/src/pages/authority/addroles.vue @@ -51,9 +51,8 @@ style="margin-bottom:100px;margin-top:20px;" > @@ -77,126 +76,200 @@ export default { date: "", }, now_user: 2, //0:普通用户,1:组织管理员,2:超级管理员 - permission: { - value1: [11, 13], - value2: [], - value3: [31, 32, 33], - value4: [], - value5: [], - }, permissionData: [ { name: "权限管理1", - prop: "value1", + selected: false, + value: 1, children: [ { - name: "权限管理1", + name: "权限管理1-1", + selected: false, value: 11, + children: [ + { + name: "权限管理1-1-1", + selected: false, + value: 111, + children: [ + { + name: "权限管理1-1-1-1", + selected: false, + value: 1111, + }, + { + name: "权限管理1-1-1-2", + selected: false, + value: 1112, + }, + { + name: "权限管理1-1-1-3", + selected: false, + value: 1113, + }, + ], + }, + ], }, { - name: "权限管理2", + name: "权限管理1-2", + selected: false, value: 12, - }, - { - name: "权限管理3", - value: 13, + children: [ + { + name: "权限管理1-2-1", + selected: false, + value: 121, + children: [ + { + name: "权限管理1-2-1-1", + selected: false, + value: 1211, + }, + { + name: "权限管理1-2-1-2", + selected: false, + value: 1212, + }, + { + name: "权限管理1-2-1-3", + selected: false, + value: 1213, + }, + ], + }, + ], }, ], }, { name: "权限管理2", - prop: "value2", + selected: false, + value: 2, children: [ { - name: "权限管理1", + name: "权限管理2-1", + selected: false, value: 21, + children: [ + { + name: "权限管理2-1-1", + selected: false, + value: 211, + children: [ + { + name: "权限管理2-1-1-1", + selected: false, + value: 2111, + }, + { + name: "权限管理2-1-1-2", + selected: false, + value: 2112, + }, + { + name: "权限管理2-1-1-3", + selected: false, + value: 2113, + }, + ], + }, + ], }, { - name: "权限管理2", + name: "权限管理2-2", + selected: false, value: 22, - }, - { - name: "权限管理3", - value: 23, - }, - { - name: "权限管理4", - value: 24, - }, - { - name: "权限管理5", - value: 25, - }, - { - name: "权限管理6", - value: 26, - }, - { - name: "权限管理7", - value: 27, - }, - { - name: "权限管理8", - value: 28, - }, - { - name: "权限管理9", - value: 29, + children: [ + { + name: "权限管理2-2-1", + selected: false, + value: 221, + children: [ + { + name: "权限管理2-2-1-1", + selected: false, + value: 2211, + }, + { + name: "权限管理2-2-1-2", + selected: false, + value: 2212, + }, + { + name: "权限管理2-2-1-3", + selected: false, + value: 2213, + }, + ], + }, + ], }, ], }, { name: "权限管理3", - prop: "value3", + selected: false, + value: 3, children: [ { - name: "权限管理1", + name: "权限管理3-1", + selected: false, value: 31, + children: [ + { + name: "权限管理3-1-1", + selected: false, + value: 311, + children: [ + { + name: "权限管理3-1-1-1", + selected: false, + value: 3111, + }, + { + name: "权限管理3-1-1-2", + selected: false, + value: 3112, + }, + { + name: "权限管理3-1-1-3", + selected: false, + value: 3113, + }, + ], + }, + ], }, { - name: "权限管理2", + name: "权限管理3-2", + selected: false, value: 32, - }, - { - name: "权限管理3", - value: 33, + children: [ + { + name: "权限管理3-2-1", + selected: false, + value: 321, + }, + ], }, ], }, { name: "权限管理4", - prop: "value4", + selected: false, + value: 4, children: [ { - name: "权限管理1", + name: "权限管理4-1", + selected: false, value: 41, }, { - name: "权限管理2", + name: "权限管理4-2", + selected: false, value: 42, }, - { - name: "权限管理4", - value: 43, - }, - ], - }, - { - name: "权限管理5", - prop: "value5", - children: [ - { - name: "权限管理1", - value: 51, - }, - { - name: "权限管理2", - value: 52, - }, - { - name: "权限管理5", - value: 53, - }, ], }, ], diff --git a/src/pages/authority/permission.vue b/src/pages/authority/permission.vue index 21eef0592e2c1ed79ea914812adde8792d8d3d07..b4ce7abf5db296e484d893c0ff1558a9757dfd5b 100644 --- a/src/pages/authority/permission.vue +++ b/src/pages/authority/permission.vue @@ -15,22 +15,28 @@ @@ -40,7 +46,7 @@ @@ -69,56 +75,51 @@ import apassDialog from "@/components/apass-dialog"; export default { components: { apassList, apassDialog }, data: () => ({ - listTotal: 300, - listData: [ - { - account: "012344", - name: "贵阳机关事务大数据平台", - role: "普通用户", - organization: "贵阳市水利局", - state: 0, - update_time: "2020-04-27 13:24:19", - }, - { - account: "012345", - name: "贵州省水利厅", - role: "普通用户", - organization: "贵阳市水利局", - state: 1, - update_time: "2020-04-27 13:24:19", - }, - { - account: "012346", - name: "贵州省公安厅", - role: "普通用户", - organization: "贵阳市水利局", - state: 1, - update_time: "2020-04-27 13:24:19", - }, - { - account: "012347", - name: "贵阳机关事务大数据平台", - role: "普通用户", - organization: "贵阳市水利局", - state: 1, - update_time: "2020-04-27 13:24:19", - }, - { - account: "012348", - name: "长兴县应急指挥平台", - role: "普通用户", - organization: "贵阳市水利局", - state: 1, - update_time: "2020-04-27 13:24:19", - }, - ], + listTotal: 0, + listData: [], }), methods: { - listAction(value) { - console.log(value); + listAction(filters) { + this.$http + .get("/apaas/backmgt/user/userApply/list", { + params: { + page: filters.page, + limit: filters.size, + }, + }) + .then(({ data }) => { + this.listTotal = data.total; + this.listData = data.data; + }) + .catch((error) => { + console.log(error); + }); }, permissionAction(item, passFlag = true) { - console.log((passFlag ? "通过 " : "拒绝 ") + item.name); + this.$http + .put( + "/apaas/backmgt/user/userApply", + {}, + { + params: { + result: passFlag ? 1 : 0, + user_id: item.user_id, + id: item.id, + }, + } + ) + .then(({ data }) => { + this.$message({ + message: `操作成功.`, + type: "success", + }); + }) + .catch((error) => { + this.$message({ + message: `操作失败.`, + type: "warning", + }); + }); }, }, }; diff --git a/src/pages/authority/roles.vue b/src/pages/authority/roles.vue index 95b4cdc1af32fee5c3bc32276a20347f9a305eee..5cbe8dc8ec91b80d26a5ea82b1709428cde59886 100644 --- a/src/pages/authority/roles.vue +++ b/src/pages/authority/roles.vue @@ -75,7 +75,7 @@ export default { }, deleteItem(item) { this.dialogInfo.title = ""; - this.dialogInfo.msg = "确认删除当前角色"; + this.dialogInfo.msg = "确认删除当前角色?"; this.dialogInfo.cancelText = ""; this.dialogInfo.sunbmitText = ""; this.dialogInfo.submit = () => { diff --git a/src/pages/authority/users.vue b/src/pages/authority/users.vue index 8e8e2142c9a6c62e58f9bee3ed33f0d78bf88e5b..a44729a4c899404af667a2940e7a1359997240bd 100644 --- a/src/pages/authority/users.vue +++ b/src/pages/authority/users.vue @@ -80,7 +80,7 @@ {{ scope.row.state === 0 ? "启用" : "禁用" }} @@ -126,11 +126,33 @@ export default { console.log(error); }); }, - setRole(item) { - console.log("setRole " + item.name); - }, - setState(item) { - console.log("setState " + item.name); + changeState(item) { + console.log(item); + + this.$http + .put( + "/apaas/backmgt/user/status", + {}, + { + params: { + user_id: item.user_id, + status: item.state == 0 ? 1 : 0, + }, + } + ) + .then(({ data }) => { + this.$message({ + message: `${item.state == 0 ? "已启用" : "已禁用"}${item.user_name}.`, + type: "success", + }); + this.initDatas(this.tempFilter); + }) + .catch((error) => { + this.$message({ + message: `${item.state == 0 ? "启用" : "禁用"}${item.user_name}失败.`, + type: "warning", + }); + }); }, }, };