From 617b1344c9788eea6b4260d2251501b1e3e86f7c Mon Sep 17 00:00:00 2001 From: ludc Date: 星期四, 26 十月 2023 17:17:20 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS-WEB/src/views/system/menu.vue | 1037 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 521 insertions(+), 516 deletions(-) diff --git a/Source/UBCS-WEB/src/views/system/menu.vue b/Source/UBCS-WEB/src/views/system/menu.vue index fbb3747..e30bf08 100644 --- a/Source/UBCS-WEB/src/views/system/menu.vue +++ b/Source/UBCS-WEB/src/views/system/menu.vue @@ -1,13 +1,13 @@ <template> <basic-container> - <avue-crud :option="option" - :table-loading="loading" - :data="data" - ref="crud" + <avue-crud ref="crud" v-model="form" - :permission="permissionList" - :before-open="beforeOpen" :before-close="beforeClose" + :before-open="beforeOpen" + :data="data" + :option="option" + :permission="permissionList" + :table-loading="loading" @row-del="rowDel" @row-update="rowUpdate" @row-save="rowSave" @@ -21,91 +21,284 @@ @on-load="onLoad" @tree-load="treeLoad"> <template slot="menuLeft"> - <el-button type="danger" - size="small" - icon="el-icon-delete" - v-if="permission.menu_delete" - plain - @click="handleDelete">鍒� 闄� + <el-button v-if="permissionList.delBtn" + icon="el-icon-delete" + plain + size="small" + type="danger" + @click="handleDelete">鍒� 闄� </el-button> - <el-button type="success" - size="small" - icon="el-icon-connection" - plain - @click="cloneMenuButton">浠庡叾浠栬彍鍗曞厠闅嗘寜閽� + <el-button v-if="permissionList.cloneBtn" + icon="el-icon-connection" + plain + size="small" + type="success" + @click="cloneMenuButton">浠庡叾浠栬彍鍗曞厠闅嗘寜閽� </el-button> </template> - <template slot-scope="scope" slot="menu"> + <template slot="menu" slot-scope="scope"> <el-button - type="text" + v-if="permissionList.addChildBtn && scope.row.category === 1" icon="el-icon-circle-plus-outline" size="small" + type="text" @click.stop="handleAdd(scope.row,scope.index)" - v-if="userInfo.role_name.includes('admin') && scope.row.category === 1" >鏂板瀛愰」 </el-button> </template> - <template slot-scope="{row}" - slot="source"> + <template slot="source" + slot-scope="{row}"> <div style="text-align:center"> <i :class="row.source"/> </div> </template> </avue-crud> <!-- 浠庡叾浠栬彍鍗曞厠闅嗘寜閽� --> - <el-dialog title="浠庡叾浠栬彍鍗曞厠闅嗘寜閽�" - append-to-body - :visible.sync="cloneOtherMenuButtons.cloneButtonSettingBox" - width="1100px" - @close="cleanCloneSelections" - style="height: 110vh; margin-top: -10vh;"> - <avue-crud :option="cloneOtherMenuButtons.cloneOption" - :table-loading="cloneOtherMenuButtons.cloneLoading" - :data="cloneOtherMenuButtons.cloneData" - ref="cloneCrud" - @search-change="searchCloneChange" - @search-reset="searchCloneReset" - @selection-change="selectionCloneChange" - @row-click="clickRowCloneChange" - @refresh-change="refreshCloneChange" - @on-load="cloneOnLoad" - @tree-load="treeLoad"> - <template slot-scope="{row}" slot="source"> - <div style="text-align:center"> - <i :class="row.source"/> - </div> - </template> - </avue-crud> - <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="cloneButtonsToMenu">淇� 瀛�</el-button> - <el-button @click="cloneOtherMenuButtons.cloneButtonSettingBox = false">鍙� 娑�</el-button> - </div> + <el-dialog :visible.sync="cloneOtherMenuButtons.cloneButtonSettingBox" + append-to-body + style="height: 110vh; margin-top: -10vh;" + title="浠庡叾浠栬彍鍗曞厠闅嗘寜閽�" + width="1100px" + @close="cleanCloneSelections"> + <avue-crud ref="cloneCrud" + :data="cloneOtherMenuButtons.cloneData" + :option="cloneOtherMenuButtons.cloneOption" + :table-loading="cloneOtherMenuButtons.cloneLoading" + @search-change="searchCloneChange" + @search-reset="searchCloneReset" + @selection-change="selectionCloneChange" + @row-click="clickRowCloneChange" + @refresh-change="refreshCloneChange" + @on-load="cloneOnLoad" + @tree-load="treeLoad"> + <template slot="source" slot-scope="{row}"> + <div style="text-align:center"> + <i :class="row.source"/> + </div> + </template> + </avue-crud> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="cloneButtonsToMenu">淇� 瀛�</el-button> + <el-button @click="cloneOtherMenuButtons.cloneButtonSettingBox = false">鍙� 娑�</el-button> + </div> </el-dialog> </basic-container> </template> <script> - import {getLazyList, remove, update, add, getMenu ,cloneMenuButton} from "@/api/system/menu"; - import {mapGetters} from "vuex"; - import iconList from "@/config/iconList"; - import func from "@/util/func"; - import {getMenuTree} from "@/api/system/menu"; +import {getLazyList, remove, update, add, getMenu, cloneMenuButton} from "@/api/system/menu"; +import {mapGetters} from "vuex"; +import iconList from "@/config/iconList"; +import func from "@/util/func"; +import {getMenuTree} from "@/api/system/menu"; - export default { - data() { - return { - form: {}, - query: {}, - loading: true, - selectionList: [], - parentId: 0, - page: { - pageSize: 10, - currentPage: 1, - total: 0, - }, - option: { +export default { + data() { + return { + form: {}, + query: {}, + loading: true, + selectionList: [], + parentId: 0, + page: { + pageSize: 10, + currentPage: 1, + total: 0, + }, + option: { + height: "auto", + lazy: true, + columnBtn: false, + tip: false, + simplePage: true, + searchShow: true, + searchMenuSpan: 6, + dialogWidth: "60%", + tree: true, + border: true, + index: true, + selection: true, + viewBtn: true, + menuWidth: 300, + dialogClickModal: false, + highlightCurrentRow: true, //琛岄�変腑鏃堕珮浜� + column: [ + { + label: "鑿滃崟鍚嶇О", + prop: "name", + search: true, + width:220, + rules: [ + { + required: true, + message: "璇疯緭鍏ヨ彍鍗曞悕绉�", + trigger: "blur" + } + ] + }, + { + label: "璺敱鍦板潃", + prop: "path", + rules: [ + { + required: true, + message: "璇疯緭鍏ヨ矾鐢卞湴鍧�", + trigger: "blur" + } + ] + }, + { + label: "涓婄骇鑿滃崟", + prop: "parentId", + type: "tree", + dicData: [], + hide: true, + addDisabled: false, + props: { + label: "title" + }, + rules: [ + { + required: false, + message: "璇烽�夋嫨涓婄骇鑿滃崟", + trigger: "click" + } + ] + }, + { + label: "鑿滃崟鍥炬爣", + prop: "source", + type: "icon", + slot: true, + iconList: iconList, + rules: [ + { + required: true, + message: "璇疯緭鍏ヨ彍鍗曞浘鏍�", + trigger: "click" + } + ] + }, + { + label: "鑿滃崟缂栧彿", + prop: "code", + search: true, + rules: [ + { + required: true, + message: "璇疯緭鍏ヨ彍鍗曠紪鍙�", + trigger: "blur" + } + ] + }, + { + label: "鑿滃崟绫诲瀷", + prop: "category", + type: "radio", + dicData: [ + { + label: "鑿滃崟", + value: 1 + }, + { + label: "鎸夐挳", + value: 2 + } + ], + hide: true, + rules: [ + { + required: true, + message: "璇烽�夋嫨鑿滃崟绫诲瀷", + trigger: "blur" + } + ] + }, + { + label: "鑿滃崟鍒悕", + prop: "alias", + search: true, + rules: [ + { + required: true, + message: "璇疯緭鍏ヨ彍鍗曞埆鍚�", + trigger: "blur" + } + ] + }, + { + label: "鏂扮獥鍙�", + prop: "isOpen", + type: "radio", + disabled: false, + display: false, + dicData: [ + { + label: "鍚�", + value: 1 + }, + { + label: "鏄�", + value: 2 + } + ], + value: 1, + rules: [ + { + required: true, + message: "璇烽�夋嫨鏂扮獥鍙f墦寮�", + trigger: "blur" + } + ] + }, + { + label: "鑿滃崟鎺掑簭", + prop: "sort", + type: "number", + rules: [ + { + required: true, + message: "璇疯緭鍏ヨ彍鍗曟帓搴�", + trigger: "blur" + } + ] + }, + { + label: "璺敱缂撳瓨", + prop: "keepAlive", + type: "switch", + dicData: [ + { + label: "鍚�", + value: "false" + }, + { + label: "鏄�", + value: "true" + } + ], + hide: true + }, + { + label: "鑿滃崟澶囨敞", + prop: "remark", + type: "textarea", + span: 24, + minRows: 2, + hide: true + } + ] + }, + data: [], + // 浠庡叾浠栬彍鍗曞厠闅嗘寜閽� + cloneOtherMenuButtons: { + cloneButtonSettingBox: false, + selectCloneButtons: [], + cloneOption: { height: "auto", + menu: false, + header: false, + addBtn: false, lazy: true, tip: false, simplePage: true, @@ -116,7 +309,8 @@ border: true, index: true, selection: true, - viewBtn: true, + columnBtn: false, + searchShowBtn: false, menuWidth: 300, dialogClickModal: false, highlightCurrentRow: true, //琛岄�変腑鏃堕珮浜� @@ -125,42 +319,20 @@ label: "鑿滃崟鍚嶇О", prop: "name", search: true, - rules: [ - { - required: true, - message: "璇疯緭鍏ヨ彍鍗曞悕绉�", - trigger: "blur" - } - ] }, { label: "璺敱鍦板潃", prop: "path", - rules: [ - { - required: true, - message: "璇疯緭鍏ヨ矾鐢卞湴鍧�", - trigger: "blur" - } - ] }, { label: "涓婄骇鑿滃崟", prop: "parentId", type: "tree", - dicData: [], hide: true, addDisabled: false, props: { label: "title" }, - rules: [ - { - required: false, - message: "璇烽�夋嫨涓婄骇鑿滃崟", - trigger: "click" - } - ] }, { label: "鑿滃崟鍥炬爣", @@ -168,25 +340,11 @@ type: "icon", slot: true, iconList: iconList, - rules: [ - { - required: true, - message: "璇疯緭鍏ヨ彍鍗曞浘鏍�", - trigger: "click" - } - ] }, { label: "鑿滃崟缂栧彿", prop: "code", search: true, - rules: [ - { - required: true, - message: "璇疯緭鍏ヨ彍鍗曠紪鍙�", - trigger: "blur" - } - ] }, { label: "鑿滃崟绫诲瀷", @@ -202,33 +360,16 @@ value: 2 } ], - hide: true, - rules: [ - { - required: true, - message: "璇烽�夋嫨鑿滃崟绫诲瀷", - trigger: "blur" - } - ] }, { label: "鑿滃崟鍒悕", prop: "alias", search: true, - rules: [ - { - required: true, - message: "璇疯緭鍏ヨ彍鍗曞埆鍚�", - trigger: "blur" - } - ] }, { label: "鏂扮獥鍙�", prop: "isOpen", type: "radio", - disabled: false, - display: false, dicData: [ { label: "鍚�", @@ -239,26 +380,11 @@ value: 2 } ], - value: 1, - rules: [ - { - required: true, - message: "璇烽�夋嫨鏂扮獥鍙f墦寮�", - trigger: "blur" - } - ] }, { label: "鑿滃崟鎺掑簭", prop: "sort", type: "number", - rules: [ - { - required: true, - message: "璇疯緭鍏ヨ彍鍗曟帓搴�", - trigger: "blur" - } - ] }, { label: "璺敱缂撳瓨", @@ -274,7 +400,6 @@ value: "true" } ], - hide: true }, { label: "鑿滃崟澶囨敞", @@ -282,220 +407,100 @@ type: "textarea", span: 24, minRows: 2, - hide: true } ] }, - data: [], - // 浠庡叾浠栬彍鍗曞厠闅嗘寜閽� - cloneOtherMenuButtons: { - cloneButtonSettingBox: false, - selectCloneButtons: [], - cloneOption: { - height: "auto", - menu: false, - header:false, - addBtn: false, - lazy: true, - tip: false, - simplePage: true, - searchShow: true, - searchMenuSpan: 6, - dialogWidth: "60%", - tree: true, - border: true, - index: true, - selection: true, - columnBtn: false, - searchShowBtn: false, - menuWidth: 300, - dialogClickModal: false, - highlightCurrentRow: true, //琛岄�変腑鏃堕珮浜� - column: [ - { - label: "鑿滃崟鍚嶇О", - prop: "name", - search: true, - }, - { - label: "璺敱鍦板潃", - prop: "path", - }, - { - label: "涓婄骇鑿滃崟", - prop: "parentId", - type: "tree", - hide: true, - addDisabled: false, - props: { - label: "title" - }, - }, - { - label: "鑿滃崟鍥炬爣", - prop: "source", - type: "icon", - slot: true, - iconList: iconList, - }, - { - label: "鑿滃崟缂栧彿", - prop: "code", - search: true, - }, - { - label: "鑿滃崟绫诲瀷", - prop: "category", - type: "radio", - dicData: [ - { - label: "鑿滃崟", - value: 1 - }, - { - label: "鎸夐挳", - value: 2 - } - ], - }, - { - label: "鑿滃崟鍒悕", - prop: "alias", - search: true, - }, - { - label: "鏂扮獥鍙�", - prop: "isOpen", - type: "radio", - dicData: [ - { - label: "鍚�", - value: 1 - }, - { - label: "鏄�", - value: 2 - } - ], - }, - { - label: "鑿滃崟鎺掑簭", - prop: "sort", - type: "number", - }, - { - label: "璺敱缂撳瓨", - prop: "keepAlive", - type: "switch", - dicData: [ - { - label: "鍚�", - value: "false" - }, - { - label: "鏄�", - value: "true" - } - ], - }, - { - label: "鑿滃崟澶囨敞", - prop: "remark", - type: "textarea", - span: 24, - minRows: 2, - } - ] - }, - cloneLoading: false, - cloneData: [], - cloneQuery: {}, - clonePage: { - pageSize: 10, - currentPage: 1, - total: 0, - }, - } - }; - }, - watch: { - 'form.category'() { - const category = func.toInt(this.form.category); - this.$refs.crud.option.column.filter(item => { - if (item.prop === "path") { - item.rules[0].required = category === 1; - } - if (item.prop === 'isOpen') { - item.disabled = category === 2; - } - }); - }, - }, - computed: { - // mapGetters: 杈呭姪鍑芥暟浠呬粎灏唖tore 涓殑 getter 鏄犲皠鍒板眬閮ㄨ绠楀睘鎬� - ...mapGetters(["userInfo", "permission"]), - permissionList() { - return { - addBtn: this.vaildData(this.permission.menu_add, false), - viewBtn: this.vaildData(this.permission.menu_view, false), - delBtn: this.vaildData(this.permission.menu_delete, false), - editBtn: this.vaildData(this.permission.menu_edit, false) - }; - - }, - ids() { - let ids = []; - this.selectionList.forEach(ele => { - ids.push(ele.id); - }); - return ids.join(","); + cloneLoading: false, + cloneData: [], + cloneQuery: {}, + clonePage: { + pageSize: 10, + currentPage: 1, + total: 0, + }, } + }; + }, + watch: { + 'form.category'() { + const category = func.toInt(this.form.category); + this.$refs.crud.option.column.filter(item => { + if (item.prop === "path") { + item.rules[0].required = category === 1; + } + if (item.prop === 'isOpen') { + item.disabled = category === 2; + } + }); }, - methods: { - /** 浠庡叾浠栬彍鍗曞厠闅嗘寜閽� */ - cloneMenuButton(){ - if(this.selectionList.length != 1 || this.selectionList[0].category === 2){ - this.$message({ - type: "warning", - message: "璇烽�夋嫨涓�鏉¢潪鎸夐挳绫诲瀷鐨勬暟鎹�!" - }); - return; - } - this.cloneOtherMenuButtons.cloneButtonSettingBox = true; - }, - /** 鍏嬮殕鎸夐挳鍒伴�変腑鐨勮彍鍗曚笅 */ - cloneButtonsToMenu(){ - if(this.selectionList.length != 1){ - this.$message({ - type: "warning", - message: "瑕佸厠闅嗘寜閽殑鑿滃崟淇℃伅宸蹭涪澶憋紝璇烽噸鏂伴�夋嫨!" - }); - return; - } - if(this.cloneOtherMenuButtons.selectCloneButtons.length <= 0){ - this.$message({ - type: "warning", - message: "璇烽�夋嫨瑕佸厠闅嗘寜閽暟鎹�!" - }); - return; - } - this.$confirm("纭畾灏嗛�変腑鐨勬寜閽厠闅嗗埌銆�"+this.selectionList[0].name+"銆戣彍鍗曚腑?", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "info" - }) + }, + computed: { + // mapGetters: 杈呭姪鍑芥暟浠呬粎灏唖tore 涓殑 getter 鏄犲皠鍒板眬閮ㄨ绠楀睘鎬� + ...mapGetters(["userInfo", "permission"]), + permissionList() { + return { + addBtn: this.vaildData(this.permission.menu.menu_add, false), + viewBtn: this.vaildData(this.permission.menu.menu_view, false), + delBtn: this.vaildData(this.permission.menu.menu_delete, false), + editBtn: this.vaildData(this.permission.menu.menu_edit, false), + cloneBtn: this.vaildData(this.permission.menu.menu_clone,false), + addChildBtn: this.vaildData(this.permission.menu.menu_add_child,false), + }; + + }, + ids() { + let ids = []; + this.selectionList.forEach(ele => { + ids.push(ele.id); + }); + return ids.join(","); + } + }, + methods: { + /** 浠庡叾浠栬彍鍗曞厠闅嗘寜閽� */ + cloneMenuButton() { + if (this.selectionList.length != 1 || this.selectionList[0].category === 2) { + this.$message({ + type: "warning", + message: "璇烽�夋嫨涓�鏉¢潪鎸夐挳绫诲瀷鐨勬暟鎹�!" + }); + return; + } + this.cloneOtherMenuButtons.cloneButtonSettingBox = true; + }, + /** 鍏嬮殕鎸夐挳鍒伴�変腑鐨勮彍鍗曚笅 */ + cloneButtonsToMenu() { + if (this.selectionList.length != 1) { + this.$message({ + type: "warning", + message: "瑕佸厠闅嗘寜閽殑鑿滃崟淇℃伅宸蹭涪澶憋紝璇烽噸鏂伴�夋嫨!" + }); + return; + } + if (this.cloneOtherMenuButtons.selectCloneButtons.length <= 0) { + this.$message({ + type: "warning", + message: "璇烽�夋嫨瑕佸厠闅嗘寜閽暟鎹�!" + }); + return; + } + this.$confirm("纭畾灏嗛�変腑鐨勬寜閽厠闅嗗埌銆�" + this.selectionList[0].name + "銆戣彍鍗曚腑?", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "info" + }) .then(() => { let buttonIds = []; let flag = true; - this.cloneOtherMenuButtons.selectCloneButtons.forEach(function(item) { - if(item.category != 2){ + this.cloneOtherMenuButtons.selectCloneButtons.forEach(function (item) { + if (item.category != 2) { flag = false; - }else { + } else { buttonIds.push(item.id); } }); // 閫夋嫨浜嗛潪鎸夐挳绫诲瀷鐨勬暟鎹� - if(!flag){ + if (!flag) { this.$message({ type: "warning", message: "鍙兘閫夋嫨鎸夐挳绫诲瀷鐨勮〃鏍艰!" @@ -503,105 +508,105 @@ return; } // console.log(buttonIds); - return cloneMenuButton({"menuId":this.selectionList[0].id,"buttonIds": buttonIds}); + return cloneMenuButton({"menuId": this.selectionList[0].id, "buttonIds": buttonIds}); }) .then(res => { this.$message({ - type: res.data.success ? "success":"error", + type: res.data.success ? "success" : "error", message: res.data.msg, }); this.cloneOtherMenuButtons.cloneButtonSettingBox = false; // 鏁版嵁鍥炶皟杩涜鍒锋柊 this.onLoad(this.page); }); - }, - /** 閫変腑琚厠闅嗙殑鎸夐挳鏃惰Е鍙� */ - selectionCloneChange(list) { - this.cloneOtherMenuButtons.selectCloneButtons = list; - this.$refs.cloneCrud.setCurrentRow(this.cloneOtherMenuButtons.selectCloneButtons[list.length-1]); - }, - clickRowCloneChange(row){ - this.cloneOtherMenuButtons.selectCloneButtons.push(row); - this.$refs.cloneCrud.setCurrentRow(row); - this.$refs.cloneCrud.toggleRowSelection(row); //閫変腑褰撳墠琛� - }, - /** 鍏抽棴瀵硅瘽妗嗘椂娓呯┖閫変腑鐨勫垪琛� */ - cleanCloneSelections(){ - this.cloneOtherMenuButtons.selectCloneButtons = []; - this.$refs.cloneCrud.toggleSelection(); - }, - cloneOnLoad(page, params = {}) { - this.cloneOtherMenuButtons.cloneLoading = true; - getLazyList(this.parentId, Object.assign(params, this.cloneOtherMenuButtons.cloneQuery)).then(res => { - this.cloneOtherMenuButtons.cloneData = res.data.data; - this.cloneOtherMenuButtons.cloneLoading = false; - }); - }, - searchCloneChange(params, done){ - this.cloneOtherMenuButtons.cloneQuery = params; - this.parentId = ''; - this.cloneOtherMenuButtons.clonePage.currentPage = 1; - this.cloneOnLoad(this.cloneOtherMenuButtons.clonePage, params); - done(); - }, - searchCloneReset(){ - this.cloneOtherMenuButtons.cloneQuery = {}; - this.parentId = 0; - this.cloneOnLoad(this.cloneOtherMenuButtons.clonePage); - }, - refreshCloneChange(){ - this.onLoad(this.cloneOtherMenuButtons.clonePage, this.cloneOtherMenuButtons.cloneQuery); - }, + }, + /** 閫変腑琚厠闅嗙殑鎸夐挳鏃惰Е鍙� */ + selectionCloneChange(list) { + this.cloneOtherMenuButtons.selectCloneButtons = list; + this.$refs.cloneCrud.setCurrentRow(this.cloneOtherMenuButtons.selectCloneButtons[list.length - 1]); + }, + clickRowCloneChange(row) { + this.cloneOtherMenuButtons.selectCloneButtons.push(row); + this.$refs.cloneCrud.setCurrentRow(row); + this.$refs.cloneCrud.toggleRowSelection(row); //閫変腑褰撳墠琛� + }, + /** 鍏抽棴瀵硅瘽妗嗘椂娓呯┖閫変腑鐨勫垪琛� */ + cleanCloneSelections() { + this.cloneOtherMenuButtons.selectCloneButtons = []; + this.$refs.cloneCrud.toggleSelection(); + }, + cloneOnLoad(page, params = {}) { + this.cloneOtherMenuButtons.cloneLoading = true; + getLazyList(this.parentId, Object.assign(params, this.cloneOtherMenuButtons.cloneQuery)).then(res => { + this.cloneOtherMenuButtons.cloneData = res.data.data; + this.cloneOtherMenuButtons.cloneLoading = false; + }); + }, + searchCloneChange(params, done) { + this.cloneOtherMenuButtons.cloneQuery = params; + this.parentId = ''; + this.cloneOtherMenuButtons.clonePage.currentPage = 1; + this.cloneOnLoad(this.cloneOtherMenuButtons.clonePage, params); + done(); + }, + searchCloneReset() { + this.cloneOtherMenuButtons.cloneQuery = {}; + this.parentId = 0; + this.cloneOnLoad(this.cloneOtherMenuButtons.clonePage); + }, + refreshCloneChange() { + this.onLoad(this.cloneOtherMenuButtons.clonePage, this.cloneOtherMenuButtons.cloneQuery); + }, - initData() { - getMenuTree().then(res => { - const column = this.findObject(this.option.column, "parentId"); - column.dicData = res.data.data; - }); - }, - handleAdd(row) { - this.parentId = row.id; + initData() { + getMenuTree().then(res => { const column = this.findObject(this.option.column, "parentId"); - column.value = row.id; - column.addDisabled = true; - this.$refs.crud.rowAdd(); - }, - rowSave(row, done, loading) { - add(row).then((res) => { - // 鑾峰彇鏂板鏁版嵁鐨勭浉鍏冲瓧娈� - const data = res.data.data; - row.id = data.id; - this.$message({ - type: "success", - message: "鎿嶄綔鎴愬姛!" - }); - // 鏁版嵁鍥炶皟杩涜鍒锋柊 - done(row); - }, error => { - window.console.log(error); - loading(); + column.dicData = res.data.data; + }); + }, + handleAdd(row) { + this.parentId = row.id; + const column = this.findObject(this.option.column, "parentId"); + column.value = row.id; + column.addDisabled = true; + this.$refs.crud.rowAdd(); + }, + rowSave(row, done, loading) { + add(row).then((res) => { + // 鑾峰彇鏂板鏁版嵁鐨勭浉鍏冲瓧娈� + const data = res.data.data; + row.id = data.id; + this.$message({ + type: "success", + message: "鎿嶄綔鎴愬姛!" }); - }, - rowUpdate(row, index, done, loading) { - update(row).then(() => { - this.$message({ - type: "success", - message: "鎿嶄綔鎴愬姛!" - }); - // 鏁版嵁鍥炶皟杩涜鍒锋柊 - this.onLoad() - done(row); - }, error => { - window.console.log(error); - loading(); + // 鏁版嵁鍥炶皟杩涜鍒锋柊 + done(row); + }, error => { + window.console.log(error); + loading(); + }); + }, + rowUpdate(row, index, done, loading) { + update(row).then(() => { + this.$message({ + type: "success", + message: "鎿嶄綔鎴愬姛!" }); - }, - rowDel(row, index, done) { - this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning" - }) + // 鏁版嵁鍥炶皟杩涜鍒锋柊 + this.onLoad() + done(row); + }, error => { + window.console.log(error); + loading(); + }); + }, + rowDel(row, index, done) { + this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }) .then(() => { return remove(row.id); }) @@ -613,103 +618,103 @@ // 鏁版嵁鍥炶皟杩涜鍒锋柊 done(row); }); - }, - handleDelete() { - if (this.selectionList.length === 0) { - this.$message.warning("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�"); - return; - } - this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning" + }, + handleDelete() { + if (this.selectionList.length === 0) { + this.$message.warning("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�"); + return; + } + this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }) + .then(() => { + return remove(this.ids); }) - .then(() => { - return remove(this.ids); - }) - .then(() => { - // 鍒锋柊琛ㄦ牸鏁版嵁骞堕噸杞� - this.data = []; - this.parentId = 0; - this.$refs.crud.refreshTable(); - this.$refs.crud.toggleSelection(); - // 琛ㄦ牸鏁版嵁閲嶈浇 - this.onLoad(this.page); - this.$message({ - type: "success", - message: "鎿嶄綔鎴愬姛!" - }); + .then(() => { + // 鍒锋柊琛ㄦ牸鏁版嵁骞堕噸杞� + this.data = []; + this.parentId = 0; + this.$refs.crud.refreshTable(); + this.$refs.crud.toggleSelection(); + // 琛ㄦ牸鏁版嵁閲嶈浇 + this.onLoad(this.page); + this.$message({ + type: "success", + message: "鎿嶄綔鎴愬姛!" }); - }, - searchReset() { - this.query = {}; - this.parentId = 0; - this.onLoad(this.page); - }, - searchChange(params, done) { - this.query = params; - this.parentId = ''; - this.page.currentPage = 1; - this.onLoad(this.page, params); - done(); - }, - clickRowChange(row){ - this.$refs.crud.toggleSelection(); - this.selectionList = row; - this.$refs.crud.setCurrentRow(row); - this.$refs.crud.toggleRowSelection(row); //閫変腑褰撳墠琛� - }, - selectionChange(list) { - this.selectionList = list; - this.$refs.crud.setCurrentRow(this.selectionList[list.length-1]); - }, - selectionClear() { - this.selectionList = []; - this.$refs.crud.toggleSelection(); - }, - beforeOpen(done, type) { - if (["add", "edit"].includes(type)) { - this.initData(); - } - if (["edit", "view"].includes(type)) { - getMenu(this.form.id).then(res => { - this.form = res.data.data; - }); - } - done(); - }, - beforeClose(done) { - this.parentId = ""; - const column = this.findObject(this.option.column, "parentId"); - column.value = ""; - column.addDisabled = false; - done(); - }, - currentChange(currentPage) { - this.page.currentPage = currentPage; - }, - sizeChange(pageSize) { - this.page.pageSize = pageSize; - }, - refreshChange() { - this.onLoad(this.page, this.query); - }, - onLoad(page, params = {}) { - this.loading = true; - getLazyList(this.parentId, Object.assign(params, this.query)).then(res => { - this.data = res.data.data; - this.loading = false; - this.selectionClear(); }); - }, - treeLoad(tree, treeNode, resolve) { - const parentId = tree.id; - getLazyList(parentId).then(res => { - resolve(res.data.data); + }, + searchReset() { + this.query = {}; + this.parentId = 0; + this.onLoad(this.page); + }, + searchChange(params, done) { + this.query = params; + this.parentId = ''; + this.page.currentPage = 1; + this.onLoad(this.page, params); + done(); + }, + clickRowChange(row) { + this.$refs.crud.toggleSelection(); + this.selectionList = row; + this.$refs.crud.setCurrentRow(row); + this.$refs.crud.toggleRowSelection(row); //閫変腑褰撳墠琛� + }, + selectionChange(list) { + this.selectionList = list; + this.$refs.crud.setCurrentRow(this.selectionList[list.length - 1]); + }, + selectionClear() { + this.selectionList = []; + this.$refs.crud.toggleSelection(); + }, + beforeOpen(done, type) { + if (["add", "edit"].includes(type)) { + this.initData(); + } + if (["edit", "view"].includes(type)) { + getMenu(this.form.id).then(res => { + this.form = res.data.data; }); } + done(); + }, + beforeClose(done) { + this.parentId = ""; + const column = this.findObject(this.option.column, "parentId"); + column.value = ""; + column.addDisabled = false; + done(); + }, + currentChange(currentPage) { + this.page.currentPage = currentPage; + }, + sizeChange(pageSize) { + this.page.pageSize = pageSize; + }, + refreshChange() { + this.onLoad(this.page, this.query); + }, + onLoad(page, params = {}) { + this.loading = true; + getLazyList(this.parentId, Object.assign(params, this.query)).then(res => { + this.data = res.data.data; + this.loading = false; + this.selectionClear(); + }); + }, + treeLoad(tree, treeNode, resolve) { + const parentId = tree.id; + getLazyList(parentId).then(res => { + resolve(res.data.data); + }); } - }; + } +}; </script> <style> -- Gitblit v1.9.3