From 7d05c69630d066c0992368423f90e440e3638f91 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期日, 29 九月 2024 11:01:51 +0800 Subject: [PATCH] 整合代码 --- Source/UBCS-WEB/src/views/integration/systemInfo.vue | 77 ++++++++++++++++++++++++++------------ 1 files changed, 52 insertions(+), 25 deletions(-) diff --git a/Source/UBCS-WEB/src/views/integration/systemInfo.vue b/Source/UBCS-WEB/src/views/integration/systemInfo.vue index f7e2560..90d9aac 100644 --- a/Source/UBCS-WEB/src/views/integration/systemInfo.vue +++ b/Source/UBCS-WEB/src/views/integration/systemInfo.vue @@ -1,13 +1,16 @@ <template> <basic-container> - <avue-crud ref="crud" :data="data" :option="option" :page.sync="page" :search.sync="search" :table-loading="loading" + <avue-crud ref="crud" :data="data" :option="option" :page.sync="page" :permission="permissionList" + :search.sync="search" + :table-loading="loading" @on-load="getDataList" @row-save="handleSave" @row-del="handleDelete" @row-update="handleEdit" @refresh-change="handleRefresh" @size-change="handleSizePage" @current-change="handleCurrentPage" @selection-change="selectionChange" @row-click="handleRowClick"> <template slot="menuLeft"> <!-- <el-button icon="el-icon-search" size="small" type="primary" @click="handleStatus">鏌� 璇� </el-button> --> - <el-button icon="el-icon-delete" size="small" type="danger" @click="handleDeleteByIds">鍒� 闄� + <el-button v-if="permissionList.delBtn" icon="el-icon-delete" size="small" type="danger" + @click="handleDeleteByIds">鍒� 闄� </el-button> </template> <template slot="search" slot-scope="{row,size}"> @@ -19,10 +22,11 @@ :size="size" clearable style="width:300px;margin-left: 10px;" @clear="handleClear" @keyup.enter.native="handleEnter"></el-input> </template> - <template #menu="{row,index,size}"> + <template v-if="permissionList.empower" #menu="{row,index,size}"> <el-button icon="el-icon-menu" size="small" type="text" @click="classifyHandler(row)">鍒嗙被鎺堟潈</el-button> - </template> + + </avue-crud> <el-dialog :visible.sync="dialogVisible" append-to-body class="avue-dialog avue-dialog--top" title="鍒嗙被鎺堟潈" top="-50px"> @@ -54,6 +58,7 @@ sysInfoTree, batchAddSave } from '@/api/integration/sysInfo.js' +import {mapGetters} from "vuex"; export default { data() { @@ -90,8 +95,25 @@ search: {}, delIds: [], data: [], - option: { + + } + }, + created() { + }, + computed: { + ...mapGetters(["permission"]), + permissionList() { + return { + addBtn: this.vaildData(this.permission.systemInfo.systemInfo_add, false), + editBtn: this.vaildData(this.permission.systemInfo.systemInfo_edit, false), + delBtn: this.vaildData(this.permission.systemInfo.systemInfo_delete, false), + empower: this.vaildData(this.permission.systemInfo.systemInfo_empower, false), + } + }, + option() { + return { height: "auto", + calcHeight: 20, tip: false, border: true, align: 'center', @@ -134,23 +156,21 @@ type: 'textarea' } ] - }, + } } - }, - created() { }, methods: { //閲嶇疆 - resetting(){ + resetting() { this.$refs.tree.setCheckedKeys([]) // console.log(this.ParentList) }, empower() { batchAddSave(this.checkAll.oid, this.checkAll.id, this.ParentList).then(res => { // console.log(res.data) - if(res.data.code === 200){ + if (res.data.code === 200) { this.$message.success(res.data.msg) - this.dialogVisible=false; + this.dialogVisible = false; } }) }, @@ -159,35 +179,35 @@ if (checked) { this.addAllChildren(row.children); this.addToParentList(row); - // 鍕鹃�夎鏃讹紝灏嗗綋鍓嶈浠ュ強鍏舵墍鏈夊瓙鑺傜偣娣诲姞鍒癙arentList涓� + // 鍕鹃�夎鏃跺皢鎵�鏈夎妭鐐规坊鍔犲埌ParentList涓� } else { this.removeAllChildren(row.children); this.removeFromParentList(row); - // 鍙栨秷鍕鹃�夎鏃讹紝灏嗗綋鍓嶈浠ュ強鍏舵墍鏈夊瓙鑺傜偣浠嶱arentList涓Щ闄� + // 鍙栨秷鍕鹃�夊皢鎵�鏈夎妭鐐规坊鍔犱粠ParentList涓Щ闄� } - // console.table(this.ParentList); }, + //瀛愯妭鐐规坊鍔� addAllChildren(children) { for (let child of children) { this.addToParentList(child); // 灏嗗瓙鑺傜偣娣诲姞鍒� ParentList 涓� if (child.children && child.children.length > 0) { this.addAllChildren(child.children); - // 閫掑綊璋冪敤缁х画娣诲姞瀛愯妭鐐圭殑瀛愯妭鐐� } } }, + //瀛愯妭鐐圭Щ闄� removeAllChildren(children) { for (let child of children) { this.removeFromParentList(child); // 灏嗗瓙鑺傜偣浠� ParentList 涓Щ闄� if (child.children && child.children.length > 0) { this.removeAllChildren(child.children); - // 閫掑綊璋冪敤缁х画绉婚櫎瀛愯妭鐐圭殑瀛愯妭鐐� } } }, + //褰撳墠鐖惰妭鐐规坊鍔� addToParentList(item) { const classifyOid = item.attributes.classifyOid; if (!this.isClassifyOidExists(classifyOid)) { @@ -197,9 +217,9 @@ classifyOid: classifyOid, }; this.ParentList.push(record); - // 灏嗚妭鐐规坊鍔犲埌ParentList涓� } }, + //褰撳墠鐖惰妭鐐圭Щ闄� removeFromParentList(item) { const classifyOid = item.attributes.classifyOid; if (this.isClassifyOidExists(classifyOid)) { @@ -207,12 +227,13 @@ if (index !== -1) { this.ParentList.splice(index, 1); } - // 灏嗚妭鐐逛粠ParentList涓Щ闄� } }, + //鍒ら噸-ParentList isClassifyOidExists(classifyOid) { return this.ParentList.some(item => item.classifyOid === classifyOid); }, + //鏌ユ壘index浣嶇疆 findIndexByClassifyOid(classifyOid) { return this.ParentList.findIndex(item => item.classifyOid === classifyOid); }, @@ -223,16 +244,17 @@ sysInfoTree({systemOid: row.oid, systemId: row.id}).then(res => { let List = []; let value = 0; - let NumberList= []; + let NumberList = []; + function traverse(obj, parent) { //閲嶆柊鏋勫缓涓�娆¢�変腑褰撳墠row鐨勬暟鎹� const record = { label: obj.text, oid: obj.oid, - attributes:{ + attributes: { classifyId: obj.attributes.classifyId, classifyOid: obj.attributes.classifyOid, - selected:obj.attributes.selected + selected: obj.attributes.selected }, classParentOid: obj.parentId, value: value, @@ -265,6 +287,7 @@ } } } + for (let item of res.data) { traverse(item, null); } @@ -330,6 +353,7 @@ message: '鏂板鏁版嵁鎴愬姛锛�' }) done(row) + await this.getDataList(); // this.$refs.crud.refreshTable() // this.getDataList() } @@ -350,6 +374,7 @@ }) done(row) } + await this.getDataList(); } catch { loading() } @@ -385,7 +410,7 @@ type: 'success', message: '鍒犻櫎鎴愬姛!' }); - this.getDataList() + await this.getDataList() } }) }, @@ -436,7 +461,9 @@ } </script> <style lang="scss" scoped> -::v-deep(.avue-crud .el-select) { - width: 100px !important; -} + ::v-deep{ + .avue-crud .el-select { + width: 100px !important; + } + } </style> -- Gitblit v1.9.3