From 8bc25357d5742f07710baa7a6f1d6ac4023da3ac Mon Sep 17 00:00:00 2001 From: wangting <wangting@vci-tech.com> Date: 星期三, 25 十二月 2024 12:00:55 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue | 270 +++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 197 insertions(+), 73 deletions(-) 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 281ec3b..7f72b04 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,10 +2,11 @@ <el-container> <el-aside> <basic-container> - <div style="max-height: calc(100vh - 170px);overflow: auto"> - <avue-tree ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick"> + <div style="max-height: calc(100vh - 150px);overflow: auto"> + <avue-tree :key="refresh" ref="tree" :data="treeData" :option="treeOption" node-key="id" + @node-click="nodeClick"> <span slot-scope="{ node, data }" class="el-tree-node__label"> - <span style="font-size: 15px"> + <span> <i class="el-icon-s-promotion"></i> {{ (node || {}).label }} </span> @@ -17,40 +18,50 @@ <el-main> <basic-container> - <el-form ref="form" :model="form" label-width="85px" style="height: 79vh"> - <el-form-item label="鍚嶇О锛�"> - <el-input v-model="form.name" placeholder="璇疯緭鍏ュ悕绉�"></el-input> - </el-form-item> - <el-form-item label="鏍囪瘑锛�"> - <el-input v-model="form.code" placeholder="璇疯緭鍏ユ爣璇�"></el-input> - </el-form-item> - <el-form-item label="鍒悕锛�"> - <el-input v-model="form.alias" placeholder="璇疯緭鍏ュ埆鍚�"></el-input> - </el-form-item> - <el-form-item label="缂栧彿锛�"> - <el-input v-model="form.sort" placeholder="璇疯緭鍏ョ紪鍙�"></el-input> - </el-form-item> - <el-form-item label="鎻忚堪锛�"> - <el-input v-model="form.remark" placeholder="璇疯緭鍏ユ弿杩�"></el-input> - </el-form-item> - </el-form> - <div class="btnBox"> - <el-button v-if="!addStatus" :disabled="mangeShowBtn ? false : !childTypeBtn" icon="el-icon-plus" plain + <div v-if="nodeRow.childType === 0 || nodeRow.childType === -1" class="btnBox"> + <el-button v-if="!addStatus && !editStatus" :disabled="nodeRow.childType === 0" icon="el-icon-plus" plain size="small" type="primary" @click="addClickHandler">澧炲姞 </el-button> <el-button v-if="addStatus" icon="el-icon-check" plain size="small" type="success" @click="addSaveClickHandler">淇濆瓨 </el-button> - <el-button :disabled="mangeShowBtn" icon="el-icon-edit" plain size="small" type="primary" - @click="addClickHandler">淇敼 + <el-button v-if="!addStatus && !editStatus" :disabled="nodeRow.childType === -1" icon="el-icon-edit" plain + size="small" type="primary" + @click="editClickHandler">淇敼 </el-button> - <el-button :disabled="mangeShowBtn" icon="el-icon-close" plain size="small" type="danger" - @click="addClickHandler">鍒犻櫎 + <el-button v-if="editStatus" icon="el-icon-check" plain size="small" + type="success" @click="editSaveClickHandler">淇濆瓨 </el-button> - <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="upLoadClickHandler">瀵煎叆sql + <el-button v-if="addStatus || editStatus" icon="el-icon-close" plain size="small" + type="danger" @click="addStatus=false;editStatus=false;">鍙栨秷 + </el-button> + <el-button v-if="!addStatus && !editStatus" :disabled="nodeRow.childType === -1" icon="el-icon-close" plain + size="small" type="danger" + @click="delClickHandler">鍒犻櫎 + </el-button> + <el-button v-if="!addStatus && !editStatus" icon="el-icon-upload2" plain size="small" type="primary" + @click="sqlClickExportClick">瀵煎嚭sql </el-button> </div> + <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" :disabled="!editStatus && !addStatus" placeholder="璇疯緭鍏ュ悕绉�"></el-input> + </el-form-item> + <el-form-item label="鏍囪瘑锛�"> + <el-input v-model.trim="form.code" :disabled="!editStatus && !addStatus" placeholder="璇疯緭鍏ユ爣璇�"></el-input> + </el-form-item> + <el-form-item label="鍒悕锛�"> + <el-input v-model="form.alias" :disabled="!editStatus && !addStatus" placeholder="璇疯緭鍏ュ埆鍚�"></el-input> + </el-form-item> + <el-form-item label="椤哄簭锛�"> + <el-input-number v-model="form.sort" :disabled="!editStatus && !addStatus" :max="9999" :min="0" + label="椤哄簭"></el-input-number> + </el-form-item> + <el-form-item label="鎻忚堪锛�"> + <el-input v-model="form.remark" :disabled="!editStatus && !addStatus" placeholder="璇疯緭鍏ユ弿杩�"></el-input> + </el-form-item> + </el-form> </basic-container> </el-main> </el-container> @@ -58,14 +69,19 @@ <script> //绠$悊鍔熻兘妯″潡 -import {getSysModelTreeMenuByPID, addModel} from "@/api/systemModel/mangeModel/api" +import {exportFunctionSql, getSysModelTreeMenuByPID} from "@/api/systemModel/mangeModel/api" +import {addOperationType, updateOperationType, delOperationType} from "@/api/systemModel/operateType/api" +import func from "@/util/func"; export default { name: "index", data() { return { + refresh: Math.random(), + editStatus: false, addStatus: false, nodeRow: {}, + currentClickNode: {}, form: {}, treeData: [], treeOption: { @@ -82,7 +98,7 @@ treeLoad: (node, resolve) => { const params = { parentId: node.level === 0 ? "operateNode" : node.data.id, - modeType: node.level === 0 ? "firstNode" : node.data.modeType, + modeType: node.level === 0 ? 'firstNode' : "", } getSysModelTreeMenuByPID(params).then(res => { resolve(res.data.data.map(item => { @@ -100,76 +116,183 @@ }, created() { }, - computed: { - /** - * childType - * 涓�-1 鍏ㄩ儴鎸夐挳灞曠ず 绂佺敤淇敼 鍒犻櫎 澧炲姞鎿嶄綔绫诲瀷 - * 涓嶄负-1 闅愯棌 鍒犻櫎闈炵郴缁熸ā鍧� 鍒犻櫎涓氬姟妯″潡 - * 涓�1鏃� 绂佺敤鎿嶄綔绫诲瀷銆佸鍏ャ�佸鍑� - * 涓�2鏃� 绂佺敤澧炲姞 瀵煎叆 瀵煎嚭 - * mangeShowBtn 涓� true 璇存槑鏄《灞傝妭鐐� 鍏ㄩ儴鎸夐挳灞曠ず 绂佺敤淇敼 鍒犻櫎 澧炲姞鎿嶄綔绫诲瀷 - * @returns {Number} - */ - mangeShowBtn() { - return this.form.childType === -1; - }, - childTypeBtn() { - return this.form.childType === 1; - } - }, + computed: {}, methods: { // 鏍戣鐐瑰嚮 - nodeClick(row) { - console.log(row); + nodeClick(row, node) { this.form = {...row}; this.nodeRow = {...row}; + this.currentClickNode = node; this.addStatus = false; + this.editStatus = false; }, + // 娓呯┖琛ㄥ崟缁戝畾鍊� + resetFormValue() { + this.form = {}; + this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� + }, + // 鏂板鎸夐挳 addClickHandler() { - for (const key in this.form) { - if (this.form.hasOwnProperty(key)) { - this.form[key] = null; - } - } + this.form = {}; this.addStatus = true; + this.editStatus = false; }, // 淇濆瓨鎸夐挳 addSaveClickHandler() { - console.log(this.form) if (!this.form.name) { - this.$message.error('妯″潡鍚嶄笉鑳戒负绌�'); + this.$message.error('鍚嶇О涓嶈兘涓虹┖'); + return + } + if (!this.form.code) { + this.$message.error('鏍囪瘑涓嶈兘涓虹┖'); + return + } + if (!this.form.alias) { + this.$message.error('鍒悕涓嶈兘涓虹┖'); + return + } + if (!this.form.sort) { + this.$message.error('椤哄簭涓嶈兘涓虹┖'); return } if (this.form.name.length > 128) { - this.$message.error('妯″潡鍚嶉暱搴﹁秴杩�128锛�'); + this.$message.error('鍚嶇О闀垮害涓嶈兘瓒呰繃128锛�'); return } if (this.form.remark && this.form.remark.length > 255) { - this.$message.error('鎻忚堪闀垮害瓒呰繃255锛�'); + this.$message.error('鎻忚堪闀垮害涓嶈兘瓒呰繃255锛�'); return } - if (this.form.resourceDotNet && this.form.resourceDotNet.length > 255) { - this.$message.error('.NET鏍囪瘑闀垮害涓嶈兘255锛�'); + if (this.form.alias && this.form.alias.length > 255) { + this.$message.error('鍒悕闀垮害涓嶈兘瓒呰繃255锛�'); return } - if (this.form.pathc && this.form.pathc.length > 255) { - this.$message.error('C/S鏍囪瘑闀垮害涓嶈兘255锛�'); - return - } - if (this.form.resourceMobile && this.form.resourceMobile.length > 255) { - this.$message.error('Mobile鏍囪瘑闀垮害涓嶈兘255锛�'); - return - } - console.log(this.nodeRow); this.form.parentId = this.nodeRow.id; - this.form.modeType = this.nodeRow.modeType; - addModel(this.form).then(res => { - console.log(res) - this.addStatus = false; + const params = { + name: this.form.name, + identify: this.form.code, + alias: this.form.alias, + desc: this.form.remark, + seq: this.form.sort + } + addOperationType(params).then(res => { + if (res.data.code === 200) { + this.$message.success(res.data.msg); + this.handleRefreshTree('add'); + this.addStatus = false; + } }) + }, + + // 淇敼鎸夐挳 + editClickHandler() { + this.addStatus = false; + this.editStatus = true; + }, + + // 淇敼淇濆瓨 + editSaveClickHandler() { + console.log(this.form); + if (!this.form.name) { + this.$message.error('鍚嶇О涓嶈兘涓虹┖'); + return + } + if (!this.form.code) { + this.$message.error('鏍囪瘑涓嶈兘涓虹┖'); + return + } + if (!this.form.alias) { + this.$message.error('鍒悕涓嶈兘涓虹┖'); + return + } + if (this.form.sort == null || this.form.sort === '' || this.form.sort === undefined) { + this.$message.error('椤哄簭涓嶈兘涓虹┖'); + return; + } + if (this.form.name.length > 128) { + this.$message.error('鍚嶇О闀垮害涓嶈兘瓒呰繃128锛�'); + return + } + if (this.form.remark && this.form.remark.length > 255) { + this.$message.error('鎻忚堪闀垮害涓嶈兘瓒呰繃255锛�'); + return + } + if (this.form.alias && this.form.alias.length > 255) { + this.$message.error('鍒悕闀垮害涓嶈兘瓒呰繃255锛�'); + return + } + + const params = { + id: this.form.id, + name: this.form.name, + identify: this.form.code, + alias: this.form.alias, + desc: this.form.remark, + seq: this.form.sort + } + updateOperationType(params).then(res => { + if (res.data.code === 200) { + this.$message.success(res.data.msg); + this.handleRefreshTree('edit'); + this.editStatus = false; + } + }) + }, + + // 鍒犻櫎 + delClickHandler() { + this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎鎵�閫夋嫨鐨勬暟鎹悧锛�', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + delOperationType(this.form).then(res => { + if (res.data.code === 200) { + this.$message.success(res.data.msg); + this.handleRefreshTree('del') + this.addStatus = false; + this.editStatus = false; + this.nodeRow = {}; + } + }) + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝垹闄�' + }); + }); + }, + + // 瀵煎嚭sql + sqlClickExportClick() { + exportFunctionSql({isFunction: false}).then(res => { + func.downloadFileByBlobHandler(res); + this.$message.success('瀵煎嚭鎴愬姛'); + }); + }, + 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(); + if (type === 'edit') { + this.$refs.tree.setCurrentKey(null); + } else { + this.$refs.tree.setCurrentNode(this.nodeRow); + } + } else { + this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� + } + } } } } @@ -184,6 +307,7 @@ .btnBox { display: flex; - justify-content: center; + justify-content: left; + margin-bottom: 15px; } </style> -- Gitblit v1.9.3