From ffd0af47ee31a9592cfab56a907e9841a9113c52 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期四, 20 七月 2023 10:37:17 +0800 Subject: [PATCH] 代码提交,前端代码打包 --- Source/UBCS-WEB/dist/src/views/authority/datascope.vue | 732 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 732 insertions(+), 0 deletions(-) diff --git a/Source/UBCS-WEB/dist/src/views/authority/datascope.vue b/Source/UBCS-WEB/dist/src/views/authority/datascope.vue new file mode 100644 index 0000000..d944116 --- /dev/null +++ b/Source/UBCS-WEB/dist/src/views/authority/datascope.vue @@ -0,0 +1,732 @@ +<template> + <basic-container> + <avue-crud :option="option" + :table-loading="loading" + :data="data" + ref="crud" + v-model="form" + :permission="permissionList" + :before-open="beforeOpen" + :before-close="beforeClose" + @row-del="rowDel" + @row-update="rowUpdate" + @row-save="rowSave" + @search-change="searchChange" + @search-reset="searchReset" + @selection-change="selectionChange" + @current-change="currentChange" + @size-change="sizeChange" + @refresh-change="refreshChange" + @on-load="onLoad" + @tree-load="treeLoad"> + <template slot-scope="{row}" slot="menu"> + <el-button type="text" + icon="el-icon-setting" + size="small" + v-if="permission.data_scope_setting" + plain + style="border: 0;background-color: transparent !important;" + @click.stop="handleDataScope(row)">鏉冮檺閰嶇疆 + </el-button> + </template> + <template slot-scope="{row}" slot="source"> + <div style="text-align:center"> + <i :class="row.source"/> + </div> + </template> + </avue-crud> + <el-drawer :title="`[${scopeMenuName}] 鏁版嵁鏉冮檺閰嶇疆`" :visible.sync="drawerVisible" :direction="direction" + append-to-body + :before-close="handleDrawerClose" size="1000px"> + <basic-container> + <avue-crud :option="optionScope" + :data="dataScope" + :page="pageScope" + v-model="formScope" + :table-loading="scopeLoading" + ref="crudScope" + @row-del="rowDelScope" + @row-update="rowUpdateScope" + @row-save="rowSaveScope" + :before-open="beforeOpenScope" + @search-change="searchChangeScope" + @search-reset="searchResetScope" + @selection-change="selectionChangeScope" + @current-change="currentChangeScope" + @size-change="sizeChangeScope" + @on-load="onLoadScope"> + <template slot="menuLeft"> + <el-button type="danger" + size="small" + icon="el-icon-delete" + plain + @click="handleDeleteScope">鍒� 闄� + </el-button> + </template> + <template slot-scope="{row}" + slot="scopeType"> + <el-tag>{{row.scopeTypeName}}</el-tag> + </template> + </avue-crud> + </basic-container> + </el-drawer> + </basic-container> +</template> + +<script> + import { + add, + remove, + update, + getLazyMenuList, + getMenu + } from "@/api/system/menu"; + import { + addDataScope, + removeDataScope, + updateDataScope, + getListDataScope, + getMenuDataScope + } from "@/api/system/scope"; + import {mapGetters} from "vuex"; + import iconList from "@/config/iconList"; + import func from "@/util/func"; + + export default { + data() { + return { + form: {}, + selectionList: [], + query: {}, + loading: true, + parentId: 0, + page: { + pageSize: 10, + currentPage: 1, + total: 0 + }, + drawerVisible: false, + direction: 'rtl', + scopeMenuId: 0, + scopeMenuCode: '', + scopeMenuName: "鑿滃崟", + scopeLoading: false, + menu: true, + watchMode: true, + option: { + lazy: true, + tip: false, + simplePage: true, + searchShow: true, + searchMenuSpan: 6, + dialogWidth: "60%", + tree: true, + border: true, + index: true, + selection: true, + viewBtn: false, + editBtn: false, + addBtn: false, + delBtn: false, + menuWidth: 150, + dialogClickModal: false, + column: [ + { + 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", + dicUrl: "/api/ubcs-system/menu/tree", + hide: true, + props: { + label: "title" + }, + rules: [ + { + required: false, + message: "璇烽�夋嫨涓婄骇鑿滃崟", + trigger: "click" + } + ] + }, + { + label: "鑿滃崟鍥炬爣", + prop: "source", + type: "icon", + slot: true, + width: 80, + 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", + rules: [ + { + required: true, + message: "璇疯緭鍏ヨ彍鍗曞埆鍚�", + trigger: "blur" + } + ] + }, + { + label: "鎸夐挳鍔熻兘", + prop: "action", + type: "radio", + dicData: [ + { + label: "宸ュ叿鏍�", + value: 0 + }, + { + label: "鎿嶄綔鏍�", + value: 1 + }, + { + label: "宸ュ叿鎿嶄綔鏍�", + value: 2 + } + ], + hide: true, + rules: [ + { + required: true, + message: "璇烽�夋嫨鎸夐挳鍔熻兘", + trigger: "blur" + } + ] + }, + { + label: "鑿滃崟鎺掑簭", + prop: "sort", + type: "number", + width: 80, + rules: [ + { + required: true, + message: "璇疯緭鍏ヨ彍鍗曟帓搴�", + trigger: "blur" + } + ] + }, + { + label: "鏂扮獥鍙�", + prop: "isOpen", + type: "radio", + dicData: [ + { + label: "鍚�", + value: 0 + }, + { + label: "鏄�", + value: 1 + }, + ], + hide: true + }, + { + label: "鑿滃崟澶囨敞", + prop: "remark", + type: "textarea", + span: 24, + minRows: 6, + hide: true + } + ] + }, + data: [], + formScope: {}, + selectionListScope: [], + pageScope: { + pageSize: 10, + currentPage: 1, + total: 0 + }, + optionScope: { + tip: false, + searchShow: true, + searchMenuSpan: 6, + border: true, + index: true, + viewBtn: true, + selection: true, + menuWidth: 200, + dialogWidth: 900, + dialogClickModal: false, + column: [ + { + label: "鏉冮檺鍚嶇О", + prop: "scopeName", + search: true, + value: "", + rules: [{ + required: true, + message: "璇疯緭鍏ユ暟鎹潈闄愬悕绉�", + trigger: "blur" + }] + }, + { + label: "鏉冮檺缂栧彿", + prop: "resourceCode", + search: true, + width: 100, + rules: [{ + required: true, + message: "璇疯緭鍏ユ暟鎹潈闄愮紪鍙�", + trigger: "blur" + }] + }, + { + label: "鏉冮檺瀛楁", + prop: "scopeColumn", + width: 130, + rules: [{ + required: true, + message: "璇疯緭鍏ユ暟鎹潈闄愮紪鍙�", + trigger: "blur" + }] + }, + { + label: "瑙勫垯绫诲瀷", + type: "select", + dicUrl: "/api/ubcs-system/dict/dictionary?code=data_scope_type", + props: { + label: "dictValue", + value: "dictKey" + }, + dataType: "number", + slot: true, + width: 140, + prop: "scopeType", + rules: [{ + required: true, + message: "璇疯緭鍏ラ�氱煡绫诲瀷", + trigger: "blur" + }] + }, + { + label: "鍙瀛楁", + prop: "scopeField", + span: 24, + hide: true, + value: "*", + rules: [{ + required: true, + message: "璇疯緭鍏ユ暟鎹潈闄愬彲瑙佺殑瀛楁", + trigger: "blur" + }], + }, + { + label: "鏉冮檺绫诲悕", + prop: "scopeClass", + span: 24, + hide: true, + rules: [{ + required: true, + message: "璇疯緭鍏ybatisMapper瀵瑰簲鏂规硶鐨勫畬鏁寸被鍚嶈矾寰�", + trigger: "blur" + }], + }, + { + label: "瑙勫垯鍊�", + prop: "scopeValue", + span: 24, + minRows: 5, + type: "textarea", + display: true, + hide: true, + }, + { + label: "澶囨敞", + prop: "remark", + span: 24, + hide: true, + }, + ] + }, + dataScope: [] + }; + }, + watch: { + 'formScope.scopeType'() { + this.initScope(); + } + }, + computed: { + ...mapGetters(["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(","); + }, + scopeIds() { + let ids = []; + this.selectionListScope.forEach(ele => { + ids.push(ele.id); + }); + return ids.join(","); + } + }, + methods: { + initScope() { + const scopeType = func.toInt(this.formScope.scopeType); + const watchMode = this.watchMode; + let column = "-", name = "鏆傛棤"; + if (scopeType === 1) { + column = "-"; + name = "鍏ㄩ儴鍙"; + } else if (scopeType === 2) { + column = "create_user"; + name = "鏈汉鍙"; + } else if (scopeType === 3) { + column = "create_dept"; + name = "鎵�鍦ㄦ満鏋勫彲瑙�"; + } else if (scopeType === 4) { + column = "create_dept"; + name = "鎵�鍦ㄦ満鏋勫彲瑙佸強瀛愮骇鍙"; + } else if (scopeType === 5) { + column = ""; + name = "鑷畾涔�"; + } + this.$refs.crudScope.option.column.filter(item => { + if (watchMode) { + if (item.prop === "scopeName") { + this.formScope.scopeName = `${this.scopeMenuName} [${name}]`; + } + if (item.prop === "resourceCode") { + this.formScope.resourceCode = this.scopeMenuCode; + } + if (item.prop === "scopeColumn") { + this.formScope.scopeColumn = column; + } + } + if (item.prop === "scopeValue") { + item.display = scopeType === 5; + } + }); + }, + // 鑿滃崟绠$悊妯″潡 + rowSave(row, done, loading) { + add(row).then(() => { + this.onLoad(this.page); + this.$message({ + type: "success", + message: "鎿嶄綔鎴愬姛!" + }); + done(); + }, error => { + window.console.log(error); + loading(); + }); + }, + rowUpdate(row, index, done, loading) { + update(row).then(() => { + this.onLoad(this.page); + this.$message({ + type: "success", + message: "鎿嶄綔鎴愬姛!" + }); + done(); + }, error => { + window.console.log(error); + loading(); + }); + }, + rowDel(row) { + this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }) + .then(() => { + return remove(row.id); + }) + .then(() => { + 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(); + }, + selectionChange(list) { + this.selectionList = list; + }, + selectionClear() { + this.selectionList = []; + this.$refs.crud.toggleSelection(); + }, + handleDelete() { + if (this.selectionList.length === 0) { + this.$message.warning("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�"); + return; + } + this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }) + .then(() => { + return remove(this.ids); + }) + .then(() => { + this.onLoad(this.page); + this.$message({ + type: "success", + message: "鎿嶄綔鎴愬姛!" + }); + this.$refs.crud.toggleSelection(); + }); + }, + beforeOpen(done, type) { + if (["edit", "view"].includes(type)) { + getMenu(this.form.id).then(res => { + this.form = res.data.data; + }); + } + done(); + }, + beforeClose(done) { + this.formScope = {}; + 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; + getLazyMenuList(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; + getLazyMenuList(parentId).then(res => { + resolve(res.data.data); + }); + }, + // 鏁版嵁鏉冮檺妯″潡 + handleDataScope(row) { + this.drawerVisible = true; + this.scopeMenuId = row.id; + this.scopeMenuCode = row.code; + this.scopeMenuName = row.name; + this.onLoadScope(this.pageScope) + }, + handleDrawerClose(hide) { + hide(); + }, + rowSaveScope(row, done, loading) { + row = { + ...row, + menuId: this.scopeMenuId, + }; + addDataScope(row).then(() => { + this.onLoadScope(this.pageScope); + this.$message({ + type: "success", + message: "鎿嶄綔鎴愬姛!" + }); + done(); + }, error => { + window.console.log(error); + loading(); + }); + }, + rowUpdateScope(row, index, done, loading) { + row = { + ...row, + menuId: this.scopeMenuId, + }; + updateDataScope(row).then(() => { + this.onLoadScope(this.pageScope); + this.$message({ + type: "success", + message: "鎿嶄綔鎴愬姛!" + }); + done(); + }, error => { + window.console.log(error); + loading(); + }); + }, + rowDelScope(row) { + this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }) + .then(() => { + return removeDataScope(row.id); + }) + .then(() => { + this.onLoadScope(this.pageScope); + this.$message({ + type: "success", + message: "鎿嶄綔鎴愬姛!" + }); + }); + }, + handleDeleteScope() { + if (this.selectionListScope.length === 0) { + this.$message.warning("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�"); + return; + } + this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }) + .then(() => { + return removeDataScope(this.scopeIds); + }) + .then(() => { + this.onLoadScope(this.pageScope); + this.$message({ + type: "success", + message: "鎿嶄綔鎴愬姛!" + }); + this.$refs.crudScope.toggleSelection(); + }); + }, + beforeOpenScope(done, type) { + if (["add"].includes(type)) { + this.watchMode = true; + this.initScope(); + } + if (["edit", "view"].includes(type)) { + this.watchMode = false; + getMenuDataScope(this.formScope.id).then(res => { + this.formScope = res.data.data; + }); + } + done(); + }, + searchResetScope() { + this.onLoadScope(this.pageScope); + }, + searchChangeScope(params, done) { + this.onLoadScope(this.pageScope, params); + done(); + }, + selectionChangeScope(list) { + this.selectionListScope = list; + }, + currentChangeScope(currentPage) { + this.pageScope.currentPage = currentPage; + }, + sizeChangeScope(pageSize) { + this.pageScope.pageSize = pageSize; + }, + onLoadScope(page, params = {}) { + this.scopeLoading = true; + const values = { + ...params, + menuId: this.scopeMenuId, + } + getListDataScope(page.currentPage, page.pageSize, Object.assign(values, this.query)).then(res => { + const data = res.data.data; + this.pageScope.total = data.total; + this.dataScope = data.records; + this.selectionListScope = []; + this.scopeLoading = false; + }); + }, + } + }; +</script> + -- Gitblit v1.9.3