From fc7f59bcd94cebfcc3b2a1278984a3bb7b39edaa Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期二, 22 十月 2024 18:12:20 +0800
Subject: [PATCH] 功能模板树节点操作后局部刷新
---
/dev/null | 171 ---------------
Source/plt-web/plt-web-ui/src/views/system/log/index.vue | 170 +++++++++++++++
Source/plt-web/plt-web-ui/src/views/systemModel/businessModel/index.vue | 42 ++-
Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue | 35 ++
Source/plt-web/plt-web-ui/src/api/system/log/logBasic.js | 20 +
Source/plt-web/plt-web-ui/src/views/system/log/basicConf.vue | 2
Source/plt-web/plt-web-ui/src/api/system/fileManager/index.vue | 155 ++++++++++++++
Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue | 41 ++-
8 files changed, 429 insertions(+), 207 deletions(-)
diff --git a/Source/plt-web/plt-web-ui/src/api/system/fileManager/index.vue b/Source/plt-web/plt-web-ui/src/api/system/fileManager/index.vue
new file mode 100644
index 0000000..aecd46e
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/api/system/fileManager/index.vue
@@ -0,0 +1,155 @@
+<template>
+ <!--鏂囦欢鏌滅鐞�-->
+ <basic-container>
+ <avue-crud
+ ref="fileCrud"
+ :data="tableData"
+ :option="option"
+ :page.sync="page"
+ :table-loading="tableLoading"
+ @on-load="getTableList"
+ @refresh-change="handleRefresh"
+ @search-change="handleSearch"
+ @search-reset="handleReset"
+ @size-change="sizeChange"
+ @current-change="currentChange"
+ >
+ <template slot="menuLeft" slot-scope="scope">
+ <el-button icon="el-icon-download" plain size="small" type="primary" @click="allDelHandler">瀵煎嚭</el-button>
+ </template>
+ </avue-crud>
+ </basic-container>
+</template>
+
+<script>
+import basicOption from "@/util/basic-option";
+import {getLogListByContion} from "@/api/system/log/logBasic";
+
+export default {
+ name: "index",
+ data: function () {
+ return {
+ tableLoading: false,
+ tableData: [],
+ option: {
+ ...basicOption,
+ addBtn:false,
+ editBtn: false,
+ delBtn: false,
+ calcHeight: -60,
+ align:'left',
+ headerAlign:'center',
+ menu:false,
+ searchMenuSpan: 6,
+ searchIcon:false,
+ column: [
+ {
+ label: '鐢ㄦ埛鍚�',
+ prop: 'truename',
+ search:true,
+ searchSpan: 4,
+ searchLabel:'鎿嶄綔鐢ㄦ埛',
+ type:'select',
+ dicUrl:'/api/loginBasicController/getOperatingUsers',
+ sortable:true,
+ width: 150
+ }, {
+ label: '濮撳悕',
+ prop: 'username',
+ sortable:true,
+ width: 150
+ },{
+ label: '鐢ㄦ埛IP',
+ prop: 'userIp',
+ search:true,
+ searchSpan: 4,
+ sortable:true,
+ width: 150
+ },{
+ label: '妯″潡',
+ prop: 'moduleName',
+ sortable:true,
+ overHidden: true,
+ },{
+ label: '鎿嶄綔',
+ prop: 'type',
+ sortable:true,
+ width: 150
+ },{
+ label: '鏃堕棿',
+ prop: 'date',
+ type:'date',
+ search:true,
+ searchOrder: 1,
+ searchSpan: 8,
+ searchRange: true,
+ searchLabel:'鏌ヨ鏃ユ湡',
+ valueFormat:'yyyy-MM-dd',
+ width: 160
+ },{
+ label: '鎻忚堪',
+ prop: 'result',
+ overHidden: true,
+ width:380,
+ },
+ ]
+ },
+ page: {
+ currentPage: 1,
+ pageSize: 50,
+ total: 0,
+ pageSizes: [10, 30, 50, 100],
+ },
+ searchParams: {}
+ }
+ },
+ methods: {
+ // 琛ㄦ牸璇锋眰
+ getTableList() {
+ this.tableLoading = true;
+ getLogListByContion(this.page.currentPage, this.page.pageSize, {'logType':this.$route.query.logType,...this.searchParams}).then(res => {
+ this.tableData = res.data.data;
+ this.page.total = res.data.total;
+ this.tableLoading = false;
+ })
+ },
+
+ // 鎼滅储鏌ヨ
+ handleSearch(params, done) {
+ this.searchParams = {
+ userName:params.truename,
+ ipText:params.userIp,
+ startDate:params.date[0],
+ endDate:params.date[1]
+ };
+
+ this.getTableList();
+ done();
+ },
+
+ // 閲嶇疆鎼滅储鏉′欢
+ handleReset() {
+ this.searchParams = {};
+ this.getTableList();
+ },
+
+ // 鏉℃暟
+ sizeChange(val) {
+ this.page.pageSize = val;
+ },
+
+ // 椤电爜
+ currentChange(val) {
+ this.page.currentPage = val;
+ },
+
+ handleRefresh(){
+ this.getTableList();
+ }
+ }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/Source/plt-web/plt-web-ui/src/api/log/logBasic.js b/Source/plt-web/plt-web-ui/src/api/system/log/logBasic.js
similarity index 63%
rename from Source/plt-web/plt-web-ui/src/api/log/logBasic.js
rename to Source/plt-web/plt-web-ui/src/api/system/log/logBasic.js
index 7125024..47160ae 100644
--- a/Source/plt-web/plt-web-ui/src/api/log/logBasic.js
+++ b/Source/plt-web/plt-web-ui/src/api/system/log/logBasic.js
@@ -24,6 +24,15 @@
})
}
+//鑾峰彇鎿嶄綔鐢ㄦ埛
+export function getOperatingUsers( params) {
+ return request({
+ url: "/api/loginBasicController/getOperatingUsers",
+ method: "get",
+ params
+ });
+}
+
export function getLogListByContion(page, limit, params) {
return request({
url: "/api/loginBasicController/getLogListByContion",
@@ -35,3 +44,14 @@
}
});
}
+
+// 瀵煎嚭
+export const exportLog = (params) => {
+ return request({
+ url: '/api/loginBasicController/exportLog',
+ method: 'get',
+ headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'},
+ responseType: 'blob',
+ params
+ })
+}
diff --git a/Source/plt-web/plt-web-ui/src/views/log/index.vue b/Source/plt-web/plt-web-ui/src/views/log/index.vue
deleted file mode 100644
index 3e88d1d..0000000
--- a/Source/plt-web/plt-web-ui/src/views/log/index.vue
+++ /dev/null
@@ -1,171 +0,0 @@
-<template>
- <basic-container>
- <avue-crud
- ref="userCrud"
- :before-open="beforeOpen"
- :data="tableData"
- :option="option"
- :page.sync="page"
- :table-loading="tableLoading"
- @on-load="getTableList"
- @refresh-change="handleRefresh"
- @search-change="handleSearch"
- @search-reset="handleReset"
- @size-change="sizeChange"
- @current-change="currentChange"
- @selection-change="selectChange"
- @row-click="rowClickHandler"
- @row-save="rowSaveHandler"
- @row-update="rowUpdateHandler"
- >
- <!-- 閮ㄩ棬澶撮儴鎼滅储鎻掓Ы -->
- <template slot-scope="{disabled,size}" slot="pkDepartmentNameSearch">
- <div style="display: flex;gap: 5px">
- <el-select v-model="departSearchValue" clearable placeholder="璇烽�夋嫨閮ㄩ棬">
- <el-option :label="departSearchObj.name" :value="departSearchObj.oid"></el-option>
- </el-select>
- <el-button size="small" type="success" @click="dialogDepartSearchHandler">閫夋嫨閮ㄩ棬</el-button>
- </div>
- </template>
-
- <template #menu="{row,index,size}">
- <el-button icon="el-icon-edit" size="small" type="text" @click.stop="rowEditHandler(row,index)">瀵煎嚭</el-button>
- </template>
-
- <template slot="menuLeft" slot-scope="scope">
- <el-button icon="el-icon-delete" plain size="small" type="danger" @click="allDelHandler">瀵煎嚭</el-button>
- </template>
- </avue-crud>
- </basic-container>
-</template>
-
-<script>
-import basicOption from "@/util/basic-option";
-import {getLogListByContion} from "@/api/log/logBasic";
-import func from "@/util/func";
-
-export default {
-name: "index",
- data: function () {
- return {
- tableLoading: false,
- tableData: [],
- option: {
- ...basicOption,
- editBtn: false,
- delBtn: false,
- calcHeight: -60,
- column: [
- {
- label: '鐢ㄦ埛鍚�',
- prop: 'truename',
- search:true,
- sortable:true,
- }, {
- label: '濮撳悕',
- prop: 'username',
- search:true,
- sortable:true,
- },{
- label: '鐢ㄦ埛IP',
- prop: 'userIp',
- search:true,
- sortable:true,
- },{
- label: '妯″潡',
- prop: 'moduleName',
- search:true,
- sortable:true,
- },{
- label: '鎿嶄綔',
- prop: 'type',
- search:true,
- sortable:true,
- },{
- label: '鏃堕棿',
- prop: 'startDate',
- search:true,
- sortable:true,
- },{
- label: '鎿嶄綔缁撴灉',
- prop: 'result',
- search:true,
- sortable:true,
- },{
- label: '鎻忚堪',
- prop: 'startDate',
- search:true,
- sortable:true,
- },
- ]
- },
- page: {
- currentPage: 1,
- pageSize: 50,
- total: 0,
- pageSizes: [10, 30, 50, 100],
- },
- searchParams: {}
- }
- },
- methods: {
- // 琛ㄦ牸璇锋眰
- getTableList() {
- this.tableLoading = true;
- getLogListByContion(this.page.currentPage, this.page.pageSize, this.searchParams).then(res => {
- const data = res.data.data;
- this.tableData = data;
- this.page.total = res.data.total;
- this.tableLoading = false;
- })
- },
-
- // 鎼滅储鏌ヨ
- handleSearch(params, done) {
- this.searchParams = {};
- if(this.departSearchObj && this.departSearchValue){
- this.searchParams['conditionMap["pkDepartment"]'] = this.departSearchValue;
- }
-
- if (!func.isEmptyObject(params)) {
- for (let key in params) {
- if (params.hasOwnProperty(key)) {
- // 鍒ゆ柇濡傛灉 key 鏄� 'pkPersonName'锛屽垯鏀逛负 'pkPerson' 鍒嗗埆涓烘樉绀哄�煎拰淇濆瓨鍊�
- let newKey = key === 'pkPersonName' ? 'pkPerson' : key;
- this.searchParams[`conditionMap["${newKey}"]`] = params[key];
- }
- }
- }
-
- if (func.isEmptyObject(params) && !this.departSearchValue) {
- this.searchParams = {};
- }
-
- this.getTableList();
- done();
- },
-
- // 閲嶇疆鎼滅储鏉′欢
- handleReset() {
- this.departSearchObj = {};
- this.departSearchValue = "";
- this.searchParams = {};
- this.getTableList();
- },
-
- // 鏉℃暟
- sizeChange(val) {
- this.page.pageSize = val;
- },
-
- // 椤电爜
- currentChange(val) {
- this.page.currentPage = val;
- },
- }
-}
-</script>
-
-<style scoped>
-
-</style>
diff --git a/Source/plt-web/plt-web-ui/src/views/log/basicConf.vue b/Source/plt-web/plt-web-ui/src/views/system/log/basicConf.vue
similarity index 97%
rename from Source/plt-web/plt-web-ui/src/views/log/basicConf.vue
rename to Source/plt-web/plt-web-ui/src/views/system/log/basicConf.vue
index bf2c0e4..c2c724d 100644
--- a/Source/plt-web/plt-web-ui/src/views/log/basicConf.vue
+++ b/Source/plt-web/plt-web-ui/src/views/system/log/basicConf.vue
@@ -21,7 +21,7 @@
</template>
<script>
-import {getPeroid,savePeriod,deleteLog} from "@/api/log/logBasic";
+import {getPeroid,savePeriod,deleteLog} from "@/api/system/log/logBasic";
export default {
name: "basicConf",
data: function () {
diff --git a/Source/plt-web/plt-web-ui/src/views/system/log/index.vue b/Source/plt-web/plt-web-ui/src/views/system/log/index.vue
new file mode 100644
index 0000000..d025bfa
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/system/log/index.vue
@@ -0,0 +1,170 @@
+<template>
+ <basic-container>
+ <avue-crud
+ ref="logCrud"
+ :data="tableData"
+ :option="option"
+ :page.sync="page"
+ :table-loading="tableLoading"
+ @on-load="getTableList"
+ @refresh-change="handleRefresh"
+ @search-change="handleSearch"
+ @search-reset="handleReset"
+ @size-change="sizeChange"
+ @current-change="currentChange"
+ >
+ <template slot="menuLeft" slot-scope="scope">
+ <el-button icon="el-icon-download" plain size="small" type="primary" @click="exportClickHandler">瀵煎嚭</el-button>
+ </template>
+ </avue-crud>
+ </basic-container>
+</template>
+
+<script>
+import basicOption from "@/util/basic-option";
+import {getLogListByContion,getOperatingUsers,exportLog} from "@/api/system/log/logBasic";
+import func from "@/util/func";
+
+export default {
+name: "index",
+ data: function () {
+ return {
+ tableLoading: false,
+ tableData: [],
+ option: {
+ ...basicOption,
+ addBtn:false,
+ editBtn: false,
+ delBtn: false,
+ calcHeight: -60,
+ align:'left',
+ headerAlign:'center',
+ menu:false,
+ searchMenuSpan: 6,
+ searchIcon:false,
+ column: [
+ {
+ label: '鐢ㄦ埛鍚�',
+ prop: 'truename',
+ search:true,
+ searchSpan: 4,
+ searchLabel:'鎿嶄綔鐢ㄦ埛',
+ type:'select',
+ dicUrl:'/api/loginBasicController/getOperatingUsers',
+ sortable:true,
+ width: 150
+ }, {
+ label: '濮撳悕',
+ prop: 'username',
+ sortable:true,
+ width: 150
+ },{
+ label: '鐢ㄦ埛IP',
+ prop: 'userIp',
+ search:true,
+ searchSpan: 4,
+ sortable:true,
+ width: 150
+ },{
+ label: '妯″潡',
+ prop: 'moduleName',
+ sortable:true,
+ overHidden: true,
+ },{
+ label: '鎿嶄綔',
+ prop: 'type',
+ sortable:true,
+ width: 150
+ },{
+ label: '鏃堕棿',
+ prop: 'date',
+ type:'date',
+ search:true,
+ searchOrder: 1,
+ searchSpan: 8,
+ searchRange: true,
+ searchLabel:'鏌ヨ鏃ユ湡',
+ valueFormat:'yyyy-MM-dd',
+ width: 160
+ },{
+ label: '鎻忚堪',
+ prop: 'result',
+ overHidden: true,
+ width:380,
+ },
+ ]
+ },
+ page: {
+ currentPage: 1,
+ pageSize: 50,
+ total: 0,
+ pageSizes: [10, 30, 50, 100],
+ },
+ searchParams: {}
+ }
+ },
+ watch: {
+ $route(to, from) {
+ this.getTableList();
+ }
+ },
+ methods: {
+ // 琛ㄦ牸璇锋眰
+ getTableList() {
+ this.tableLoading = true;
+ getLogListByContion(this.page.currentPage, this.page.pageSize, {'logType':this.$route.query.logType,...this.searchParams}).then(res => {
+ this.tableData = res.data.data;
+ this.page.total = res.data.total;
+ this.tableLoading = false;
+ })
+ },
+
+ // 鎼滅储鏌ヨ
+ handleSearch(params, done) {
+ this.searchParams = {
+ userName:params.truename,
+ ipText:params.userIp,
+ startDate:params.date[0],
+ endDate:params.date[1]
+ };
+
+ this.getTableList();
+ done();
+ },
+
+ // 閲嶇疆鎼滅储鏉′欢
+ handleReset() {
+ this.searchParams = {};
+ this.getTableList();
+ },
+
+ // 鏉℃暟
+ sizeChange(val) {
+ this.page.pageSize = val;
+ },
+
+ // 椤电爜
+ currentChange(val) {
+ this.page.currentPage = val;
+ },
+
+ handleRefresh(){
+ this.getTableList();
+ },
+ // 瀵煎嚭
+ exportClickHandler() {
+ const loading = this.$loading({});
+ exportLog().then(res => {
+ func.downloadFileByBlobHandler(res);
+ this.createdLoading = false
+ this.$message.success('瀵煎嚭鎴愬姛');
+ loading.close();
+ })
+ },
+ }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/Source/plt-web/plt-web-ui/src/views/systemModel/businessModel/index.vue b/Source/plt-web/plt-web-ui/src/views/systemModel/businessModel/index.vue
index a36c78d..cb210be 100644
--- a/Source/plt-web/plt-web-ui/src/views/systemModel/businessModel/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/systemModel/businessModel/index.vue
@@ -2,8 +2,8 @@
<el-container v-loading="createdLoading">
<el-aside>
<basic-container>
- <div style="max-height: calc(100vh - 170px);overflow: auto">
- <avue-tree :key="refresh" ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick">
+ <div style="max-height: calc(100vh - 150px);overflow: auto">
+ <avue-tree :key="refresh" node-key="id" ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick">
<span slot-scope="{ node, data }" class="el-tree-node__label">
<span style="font-size: 15px">
<i class="el-icon-s-promotion"></i>
@@ -17,7 +17,7 @@
<el-main>
<basic-container>
- <el-form ref="form" :model="form" label-width="85px" style="height: 79vh">
+ <el-form ref="form" :model="form" label-width="85px" style="max-height: calc(100vh - 180px);overflow: auto;">
<span v-if="form.childType !== 0">
<el-form-item label="妯″潡鍚嶏細">
<el-input v-model="form.name" placeholder="璇疯緭鍏ユā鍧楀悕"></el-input>
@@ -202,6 +202,7 @@
addStatus: false,
editStatus: false,
nodeRow: {},
+ currentClickNode:null,
form: {},
treeData: [],
treeOption: {
@@ -255,9 +256,10 @@
},
methods: {
// 鏍戣鐐瑰嚮
- nodeClick(row) {
+ nodeClick(row,node) {
this.form = {...row};
this.nodeRow = {...row};
+ this.currentClickNode=node;
this.addStatus = false;
this.editStatus = false;
},
@@ -312,7 +314,7 @@
this.addStatus = false;
// this.resetFormValue();
this.form.childType = null;
- this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+ this.handleRefreshTree('add')
}
})
},
@@ -356,7 +358,7 @@
this.editStatus = false;
// this.resetFormValue();
this.form.childType = null;
- this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+ this.handleRefreshTree('edit')
}
})
},
@@ -371,7 +373,7 @@
delModule(this.form).then(res => {
if (res.data.code === 200) {
this.$message.success(res.data.msg);
- this.resetFormValue();
+ this.handleRefreshTree('del')
this.addStatus = false;
this.editStatus = false;
}
@@ -389,8 +391,6 @@
exportFunctionSql({isFunction: true}).then(res => {
func.downloadFileByBlobHandler(res);
this.$message.success('瀵煎嚭鎴愬姛');
- }).catch(err => {
- this.$message.error(err);
});
},
@@ -425,12 +425,11 @@
}
})
addOperationType(list).then(res => {
- console.log(res)
if (res.data.code === 200) {
this.methodsVisble = false;
this.$message.success(res.data.msg);
this.form.childType = null;
- this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+ this.handleRefreshTree('add') // 鍒锋柊宸︿晶鏍�
}
})
},
@@ -460,7 +459,7 @@
updateAlias(params).then(res => {
if (res.data.code === 200) {
this.$message.success(res.data.msg);
- this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+ this.handleRefreshTree('edit')
}
})
},
@@ -480,7 +479,7 @@
console.log(res);
if (res.data.code === 200) {
this.$message.success(res.data.msg);
- this.resetFormValue();
+ this.handleRefreshTree('del');
}
})
}).catch(() => {
@@ -506,6 +505,23 @@
// 瀵煎叆
upLoadClickHandler() {
this.$refs.upload.visible = true;
+ },
+ handleRefreshTree(type) {
+ //type:add\edit\del
+ if(type=="del"){
+ this.$refs.tree.remove(this.currentClickNode);
+ this.currentClickNode=null;
+ this.form={};
+ }else{
+ if (this.currentClickNode) {
+ let node = this.currentClickNode.parent;
+ node.loaded = false;
+ node.expand();
+ this.$refs.tree.setCurrentNode(this.currentClickNode);
+ }else {
+ this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+ }
+ }
}
}
}
diff --git a/Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue b/Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue
index ed00511..15cbb86 100644
--- a/Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue
@@ -2,8 +2,8 @@
<el-container v-loading="createdLoading">
<el-aside>
<basic-container>
- <div style="max-height: calc(100vh - 170px);overflow: auto">
- <avue-tree :key="refresh" ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick">
+ <div style="max-height: calc(100vh - 150px);overflow: auto">
+ <avue-tree :key="refresh" node-key="id" ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick">
<span slot-scope="{ node, data }" class="el-tree-node__label">
<span style="font-size: 15px">
<i class="el-icon-s-promotion"></i>
@@ -17,7 +17,7 @@
<el-main>
<basic-container>
- <el-form ref="form" :model="form" label-width="85px" style="height: 79vh">
+ <el-form ref="form" :model="form" label-width="85px" style="max-height: calc(100vh - 180px);overflow: auto;">
<span v-if="form.childType !== 0">
<el-form-item label="妯″潡鍚嶏細">
<el-input v-model="form.name" placeholder="璇疯緭鍏ユā鍧楀悕"></el-input>
@@ -202,6 +202,7 @@
addStatus: false,
editStatus: false,
nodeRow: {},
+ currentClickNode:null,
form: {},
treeData: [],
treeOption: {
@@ -255,10 +256,11 @@
},
methods: {
// 鏍戣鐐瑰嚮
- nodeClick(row) {
+ nodeClick(row,node) {
console.log(row.childType);
this.form = {...row};
this.nodeRow = {...row};
+ this.currentClickNode = node;
this.addStatus = false;
this.editStatus = false;
},
@@ -313,7 +315,7 @@
this.addStatus = false;
// this.resetFormValue();
this.form.childType = null;
- this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+ this.handleRefreshTree('add')
}
})
},
@@ -357,7 +359,7 @@
this.editStatus = false;
// this.resetFormValue();
this.form.childType = null;
- this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+ this.handleRefreshTree('edit')
}
})
},
@@ -372,7 +374,7 @@
delModule(this.form).then(res => {
if (res.data.code === 200) {
this.$message.success(res.data.msg);
- this.resetFormValue();
+ this.handleRefreshTree('del')
this.addStatus = false;
this.editStatus = false;
}
@@ -461,23 +463,21 @@
updateAlias(params).then(res => {
if (res.data.code === 200) {
this.$message.success(res.data.msg);
- this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+ this.handleRefreshTree('edit')
}
})
},
// 鍒犻櫎妯″潡涓嬪叧鑱旂殑鎿嶄綔绫诲瀷
deleteOperationClickHandler() {
- console.log(this.form);
const params = {
funcId: this.form.funcId,
operId: this.form.operId
}
delFuncOperation(params).then(res => {
- console.log(res);
if (res.data.code === 200) {
this.$message.success(res.data.msg);
- this.resetFormValue();
+ this.handleRefreshTree('del');
}
})
},
@@ -489,14 +489,29 @@
func.downloadFileByBlobHandler(res);
this.createdLoading = false
this.$message.success('瀵煎嚭鎴愬姛');
- }).catch(err => {
- this.$message.error(err);
})
},
// 瀵煎叆
upLoadClickHandler() {
this.$refs.upload.visible = true;
+ },
+ handleRefreshTree(type) {
+ //type:add\edit\del
+ if(type=="del"){
+ this.$refs.tree.remove(this.currentClickNode);
+ this.currentClickNode=null;
+ this.form={};
+ }else{
+ if (this.currentClickNode) {
+ let node = this.currentClickNode.parent;
+ node.loaded = false;
+ node.expand();
+ this.$refs.tree.setCurrentNode(this.currentClickNode);
+ }else {
+ this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+ }
+ }
}
}
}
diff --git a/Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue b/Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue
index cea9234..afbb76d 100644
--- a/Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue
@@ -2,8 +2,8 @@
<el-container>
<el-aside>
<basic-container>
- <div style="max-height: calc(100vh - 170px);overflow: auto">
- <avue-tree :key="refresh" ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick">
+ <div style="max-height: calc(100vh - 150px);overflow: auto">
+ <avue-tree :key="refresh" node-key="id" ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick">
<span slot-scope="{ node, data }" class="el-tree-node__label">
<span style="font-size: 15px">
<i class="el-icon-s-promotion"></i>
@@ -17,7 +17,7 @@
<el-main>
<basic-container>
- <el-form ref="form" :model="form" label-width="85px" style="height: 79vh">
+ <el-form ref="form" :model="form" label-width="85px" style="max-height: calc(100vh - 180px);overflow: auto;">
<el-form-item label="鍚嶇О锛�">
<el-input v-model="form.name" placeholder="璇疯緭鍏ュ悕绉�"></el-input>
</el-form-item>
@@ -73,6 +73,7 @@
editStatus:false,
addStatus: false,
nodeRow: {},
+ currentClickNode:null,
form: {},
treeData: [],
treeOption: {
@@ -111,10 +112,11 @@
},
methods: {
// 鏍戣鐐瑰嚮
- nodeClick(row) {
+ nodeClick(row,node) {
console.log(row);
this.form = {...row};
this.nodeRow = {...row};
+ this.currentClickNode=node;
this.addStatus = false;
this.editStatus = false;
},
@@ -173,7 +175,7 @@
addOperationType(params).then(res => {
if(res.data.code === 200){
this.$message.success(res.data.msg);
- this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+ this.handleRefreshTree('add')
this.addStatus = false;
}
})
@@ -227,7 +229,7 @@
updateOperationType(params).then(res => {
if(res.data.code === 200){
this.$message.success(res.data.msg);
- this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+ this.handleRefreshTree('edit')
this.editStatus = false;
}
})
@@ -243,7 +245,7 @@
delOperationType(this.form).then(res => {
if (res.data.code === 200) {
this.$message.success(res.data.msg);
- this.resetFormValue();
+ this.handleRefreshTree('del')
this.addStatus = false;
this.editStatus = false;
this.nodeRow = {};
@@ -262,10 +264,25 @@
exportFunctionSql({isFunction: false}).then(res => {
func.downloadFileByBlobHandler(res);
this.$message.success('瀵煎嚭鎴愬姛');
- }).catch(err => {
- this.$message.error(err);
});
},
+ handleRefreshTree(type) {
+ //type:add\edit\del
+ if(type=="del"){
+ this.$refs.tree.remove(this.currentClickNode);
+ this.currentClickNode=null;
+ this.form={};
+ }else{
+ if (this.currentClickNode) {
+ let node = this.currentClickNode.parent;
+ node.loaded = false;
+ node.expand();
+ this.$refs.tree.setCurrentNode(this.currentClickNode);
+ }else {
+ this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+ }
+ }
+ }
}
}
</script>
--
Gitblit v1.9.3