From df81835dd02eee62527997adf5a4ea2039b51fa4 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期三, 31 一月 2024 12:14:55 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
Source/UBCS-WEB/src/views/system/menu.vue | 1039 +++++++++++++++++++++++++++++----------------------------
1 files changed, 523 insertions(+), 516 deletions(-)
diff --git a/Source/UBCS-WEB/src/views/system/menu.vue b/Source/UBCS-WEB/src/views/system/menu.vue
index b77d4ab..5e3e267 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,285 @@
@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
+ class="avue-dialog avue-dialog--top"
+ style="height: 110vh; margin-top: -10vh;"
+ title="浠庡叾浠栬彍鍗曞厠闅嗘寜閽�"
+ top="0"
+ 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: {
- height: "auto",
+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: {
+ menu: false,
+ header: false,
+ addBtn: false,
lazy: true,
tip: false,
simplePage: true,
@@ -116,7 +310,8 @@
border: true,
index: true,
selection: true,
- viewBtn: true,
+ columnBtn: false,
+ searchShowBtn: false,
menuWidth: 300,
dialogClickModal: false,
highlightCurrentRow: true, //琛岄�変腑鏃堕珮浜�
@@ -125,42 +320,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 +341,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 +361,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 +381,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 +401,6 @@
value: "true"
}
],
- hide: true
},
{
label: "鑿滃崟澶囨敞",
@@ -282,220 +408,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,104 +509,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: "鎿嶄綔鎴愬姛!"
- });
- // 鏁版嵁鍥炶皟杩涜鍒锋柊
- 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);
})
@@ -612,103 +619,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