From 729acc0d40415356ad91c6989eb5005fe61ee388 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期五, 04 八月 2023 11:11:49 +0800 Subject: [PATCH] 主题库切换无数据分类上表下表一致-主题库添加修改默认英文名以及查询后不清空 --- Source/UBCS-WEB/src/components/Theme/ThemeClassifyTrees.vue | 212 +++++++++++++++++++++++++++++------------------------ 1 files changed, 116 insertions(+), 96 deletions(-) diff --git a/Source/UBCS-WEB/src/components/Theme/ThemeClassifyTrees.vue b/Source/UBCS-WEB/src/components/Theme/ThemeClassifyTrees.vue index ae5f62e..1496c26 100644 --- a/Source/UBCS-WEB/src/components/Theme/ThemeClassifyTrees.vue +++ b/Source/UBCS-WEB/src/components/Theme/ThemeClassifyTrees.vue @@ -24,7 +24,7 @@ </div> </div> <!-- 鏍戣妭鐐规坊鍔犲璇濇--> - <el-dialog :title="this.TreeFlag ? '娣诲姞鍒嗙被' :'娣诲姞涓婚搴�'" :visible.sync="TreeAddFormVisible" append-to-body + <el-dialog :title="this.TreeFlag ? '娣诲姞鍒嗙被' :'娣诲姞涓婚搴�'" :before-close="TreeEscHandler" :visible.sync="TreeAddFormVisible" v-loading="AddLoading" append-to-body style="width: 1700px;margin: auto"> <el-form :model="TreeAddform" :rules="rules"> <el-form-item :label="this.TreeFlag ? '鍒嗙被缂栧彿锛�' :'涓婚搴撶紪鍙凤細'" label-width="150px" style="display: inline-block" prop="id"> @@ -33,7 +33,7 @@ <el-form-item :label="this.TreeFlag ? '鍒嗙被鍚嶇О锛�' :'涓婚搴撳悕绉帮細'" label-width="110px" style="display: inline-block" prop="name"> <el-input v-model="TreeAddform.name" autocomplete="off" style="width: 170px"></el-input> </el-form-item> - <el-form-item label="瀛樺偍鐨勪笟鍔$被鍨嬶細" label-width="150px" v-if="TreeFlagCode==false" prop="btmTypeName"> + <el-form-item label="瀛樺偍鐨勪笟鍔$被鍨嬶細" label-width="150px" v-if="TreeFlagCode" prop="btmTypeName"> <el-input v-model="TreeAddform.btmTypeName" autocomplete="off" style="width: 585px" @focus="btmFoucus"></el-input> </el-form-item> <el-form-item label="鎻忚堪锛�" label-width="150px"> @@ -52,13 +52,13 @@ </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> - <el-button @click="TreeAddFormVisible = false">鍙� 娑�</el-button> + <el-button @click="TreeEscHandler">鍙� 娑�</el-button> <el-button type="primary" @click="TreeAddHandler">纭� 瀹�</el-button> </div> </el-dialog> <!-- 淇敼瀵硅瘽妗�--> <el-dialog :visible.sync="TreeEditFormVisible" append-to-body title="淇敼鍒嗙被"> - <classifyTreeform ref="childForm" :loneTreeNewForm="TreeList" :nodeList="nodeList" :flag="'edit'" @MasterHandler="MasterHandler" :Editclose=" ()=>{TreeEditFormVisible=false}" :TreeFlag="TreeFlagCode" :nodeClickList="nodeClickList" @referTreeForm="referTreeForm" @flushed="flushed"></classifyTreeform> + <classifyTreeform ref="childForm" :loneTreeNewForm="TreeList" :nodeList="nodeList" :flag="'edit'" @MasterHandler="MasterHandler" :Editclose=" ()=>{TreeEditFormVisible=false}" :TreeFlag="editTreeFLagCode" :nodeClickList="nodeClickList" @referTreeForm="referTreeForm" @flushed="flushed"></classifyTreeform> </el-dialog> <avue-tree ref="tree" v-model="CloneTreeAvueform" v-loading="loading" :data="CloneTreedata" :defaultExpandAll="false" :option="Treeoption" @@ -303,7 +303,11 @@ <el-input style="width: 260px;margin-left: 15px" placeholder="杈撳叆鍊煎悗杩涜妯$硦鏌ヨ" v-model="SelectFInd"></el-input> <el-button size="small" type="primary" plain @click="BtmSelectFindeHandler" style="margin-left: 20px">鏌ヨ</el-button> </template> - <avue-crud :data="BtmData" :option="masterOption" @select="btmSelect"></avue-crud> + <avue-crud :data="BtmData" :option="masterOption" @row-click="btmSelect"> + <template slot="radio" slot-scope="{row}"> + <el-radio v-model="masterRow" :label="row.$index" style="padding-left: 10px !important;">{{''}}</el-radio> + </template> + </avue-crud> <div style="height: 30px"> <div style="display: inline-block;float: left;border: 1px solid #eee;padding: 5px;margin-top: 5px;font-size: 14px " >宸茶缃殑鍊间负:[{{this.TreeAddform.btmTypeName}}]</div> <div style="padding-top: 10px;display: flex; justify-content: flex-end;float: right;overflow: hidden" > @@ -350,12 +354,18 @@ inject: ["crudTreeData"], data() { return { + masterRow:null, + AddLoading:false, + // 瀹氫箟涓�涓彉閲忔潵淇濆瓨鏍戣姹傜殑鏁伴噺 + requestCount:null, //瀵煎叆鐘舵�佹 ThemeImportVisible:false, selectRow:'', selectList:[], //鏍戣妭鐐规樉绀洪殣钘� - TreeFlagCode:false, + TreeFlagCode:true, + //淇敼鑺傜偣鏄剧ず闅愯棌 + editTreeFLagCode:false, //缂栫爜瑙勫垯 MasterdialogVisible:false, masterData:[], @@ -384,10 +394,15 @@ addBtn:false, index:true, border:true, - selection:true, menu:false, height:380, column:[ + { + label: '', + prop: 'radio', + width: 60, + display: false + }, { label:'鑻辨枃鍚嶇О', prop:'id' @@ -412,7 +427,7 @@ label: '鑻辨枃鍚嶇О' } ], - SelectValue:"", + SelectValue:"id", SelectFInd:"", addFlag:false, // 琛ㄦ牸褰撳墠琛宨d @@ -483,10 +498,10 @@ }, rules: { id: [ - { required: true, message: '璇疯緭鍏ュ悕绉�', trigger: 'blur' }, + { required: true, message: '璇疯緭鍏ョ紪鍙�', trigger: 'blur' }, ], name:[ - { required: true, message: '璇疯緭鍏ョ紪鍙�', trigger: 'blur' }, + { required: true, message: '璇疯緭鍏ュ悕绉�', trigger: 'blur' }, ], btmTypeName:[ { required: true, message: '璇烽�夋嫨涓氬姟绫诲瀷', trigger: 'blur' }, @@ -656,6 +671,9 @@ showEditBtn:false, } }, + watch:{ + + }, //tab鏍忛粯璁ゆ槸琛ㄦ牸 mounted() { this.type = this.tabOption.column[0]; @@ -666,7 +684,7 @@ this.$refs.tree.setCurrentKey(null) this.nodeClickList = {} this.TreeList=[] - this.TreeFlagCode=false; + this.TreeFlagCode=true; } }, true) }, @@ -730,10 +748,9 @@ created() { }, - watch:{ - - }, methods: { + // 鍏抽棴寮圭獥 + /** 瀵煎叆 */ ImportExcel(){ this.ThemeImportVisible=true; @@ -768,15 +785,11 @@ 'conditionMap[id]':this.SelectFInd } this.MasterdefaultRend(masterParameter); - this.SelectValue="" - this.SelectFInd="" }else if(this.SelectValue == 'name'){ const masterParameter={ 'conditionMap[name]':this.SelectFInd } this.MasterdefaultRend(masterParameter) - this.SelectValue="" - this.SelectFInd="" } }, //缂栫爜瑙勫垯纭畾 @@ -827,15 +840,11 @@ 'conditionMap[id]':this.SelectFInd } this.KeydefaultRend(masterParameter); - this.SelectValue=""; - this.SelectFInd=""; }else if(this.SelectValue == 'name'){ const masterParameter={ 'conditionMap[name]':this.SelectFInd } this.KeydefaultRend(masterParameter) - this.SelectValue="" - this.SelectFInd="" } }, //鍏抽敭灞炴�ф帴鍙� @@ -880,15 +889,11 @@ 'conditionMap[id]':this.SelectFInd } this.simdefaultRend(masterParameter); - this.SelectValue="" - this.SelectFInd="" }else if(this.SelectValue == 'name'){ const masterParameter={ 'conditionMap[name]':this.SelectFInd } this.simdefaultRend(masterParameter) - this.SelectValue="" - this.SelectFInd="" } }, // 鐩镐技椤瑰閫� @@ -933,22 +938,19 @@ 'conditionMap[id]':this.SelectFInd } this.btmdefaultRend(masterParameter); - this.SelectValue="" - this.SelectFInd="" }else if(this.SelectValue == 'name'){ const masterParameter={ 'conditionMap[name]':this.SelectFInd } this.btmdefaultRend(masterParameter); - this.SelectValue=""; - this.SelectFInd=""; } }, //涓氬姟绫诲瀷澶氶�� btmSelect(row){ + this.masterRow=row.$index; this.btmSelectList=row; - this.btmName=row[0].name; - this.btmOid=row[0].id; + this.btmName=row.name; + this.btmOid=row.id; }, //涓氬姟绫诲瀷鎺ュ彛 btmdefaultRend(masterParameter){ @@ -979,8 +981,16 @@ }) //璋冪敤淇敼灞炴�у悕鏂规硶 this.ModifyProperties(this.CloneTreedata, 'name', 'label'); + console.log(this.CloneTreedata) + this.CloneTreedata = this.CloneTreedata.map(item => { + if (item.attributes.lcStatus === "Disabled") { + item.label += '銆愬仠鐢ㄣ��'; + } + return item; + }); }).catch(res => { this.$message.error(res) + }) }, //瀹氫箟涓�涓慨鏀规暟鎹睘鎬у悕鐨勬柟娉� @@ -996,12 +1006,28 @@ } }, //鏍戣妭鐐规坊鍔犳寜閽� - TreeAdd() { - this.TreeAddFormVisible = true; - // 鍒ゆ柇褰撳墠鏄惁鏈夌偣鍑诲瓙椤� - if (this.nodeClickList !== "") { - this.TreeFlag = true + async TreeAdd() { + const loading = this.$loading({ + lock: true, + text: 'Loading', + spinner: 'el-icon-loading', + background: 'rgba(0, 0, 0, 0.3)' + }); + try { + //鏂板琛ㄥご鍚嶇О + this.TreeFlag=!this.nodeClickList + await new Promise(resolve => setTimeout(resolve, 500)); + this.TreeAddFormVisible = true; + loading.close(); + } catch (error) { + this.$message.error(error); + loading.close(); } + }, + //鏍戣妭鐐瑰彇娑堜簨浠� + TreeEscHandler(){ + this.TreeAddform={}; + this.TreeAddFormVisible=false }, //鏍戣妭鐐规坊鍔犱簨浠� TreeAddHandler() { @@ -1019,6 +1045,9 @@ }); this.getAttr(); this.TreeAddFormVisible = false; + //娣诲姞瀹屾垚鍚庡彸渚ф竻绌� + this.ProData=[]; + this.Formlist=[]; }) .catch((res) => { this.$message({ @@ -1173,72 +1202,61 @@ }, //鏍戠偣鍑讳簨浠� async nodeClick(data) { - //瀹氫箟涓�涓ā鏉垮睘鎬d锛屾暟鎹槸妯℃澘绠$悊琛ㄦ牸閲岄潰鐨刼id - if(data.parentId == ""){ - this.TreeFlagCode=true; - - } - this.nodeClickList = data - this.selectRow=0; + console.log(data); + //鎿嶄綔鏂板鍜屼慨鏀圭殑涓氬姟绫诲瀷闅愯棌 + this.TreeFlagCode = !data; + this.editTreeFLagCode = !data.parentId; + this.nodeClickList = data; + this.selectRow = 0; + this.crudArray=[] try { - await TreeObjcet(data.oid).then(res => { - this.FlagObj = res.data.data - }).catch(res => { - this.$message.error(res) - }) - //妯℃澘绠$悊琛ㄦ牸鏁版嵁 - await gridCodeClassifyTemplate({'conditionMap[codeclassifyoid]': data.oid}).then(res => { - this.Formlist = res.data.data.filter(item => { - if (item.codeclassifyoid != "") { - this.codeClassifyOid = item.codeclassifyoid - return item.codeclassifyoid == this.nodeClickList.oid - } - }) - if(this.Formlist.length >= 1){ - this.crudLCStatus=this.Formlist[this.selectRow].lcStatus; - this.crudArray.push(this.Formlist[this.selectRow]); - this.crudOid=this.Formlist[this.selectRow].oid; - this.gridCode() - }else { - this.ProData = []; + this.requestCount += 1; + const [res1, res2, res3] = await Promise.all([ + TreeObjcet(data.oid), + gridCodeClassifyTemplate({ 'conditionMap[codeclassifyoid]': data.oid }), + getObjectByOid(data.oid) + ]); + this.FlagObj = res1.data.data; + this.Formlist = res2.data.data.filter(item => { + if (item.codeclassifyoid != "") { + this.codeClassifyOid = item.codeclassifyoid; + return item.codeclassifyoid == this.nodeClickList.oid; } - }).catch(res => { - this.$message.error(res) - }) - // 鍩烘湰淇℃伅琛ㄥ崟鏁版嵁 - await getObjectByOid(this.nodeClickList.oid).then(res => { - this.TreeList = res.data.data; - }).catch(res => { - this.$message.error(res) - }) + }); + if (this.Formlist.length >= 1) { + this.crudLCStatus = this.Formlist[this.selectRow].lcStatus; + this.crudArray.push(this.Formlist[this.selectRow]); + this.crudOid = this.Formlist[this.selectRow].oid; + await this.gridCode(); + } else { + this.ProData = []; + this.crudOid='' + } + this.TreeList = res3.data.data; } catch (error) { - this.$message.error(error) + this.$message.error(error); } }, - gridCode(){ - gridCodeClassifyTemplateAttr({'conditionMap[classifyTemplateOid]': this.Formlist[this.selectRow].oid,limit:-1}).then(res => { - this.ProData = res.data.data; - //鍒嗙被娉ㄥ叆鏁版嵁鏍煎紡 - this.ProData = res.data.data.map((item) => { - //濡傛灉鍒嗙被娉ㄥ叆classifyInvokeAttr涓虹┖璇存槑鏄垵濮嬬姸鎬� - if(item.classifyInvokeAttr !== ''){ - if (!item.hasOwnProperty('classifyInvokeText')) { // 妫�鏌lassifyInvokeText灞炴�ф槸鍚﹀瓨鍦� - item = { - ...item, - classifyInvokeText: { - "娉ㄥ叆绫诲瀷": item.classifyInvokeAttr, - "娉ㄥ叆绫诲瀷鍚嶇О": item.classifyInvokeAttrName, - "灞傜骇璁剧疆": item.classifyInvokeLevel, - "鏄惁鍙慨鏀�": item.classifyInvokeEditFlag - } + + async gridCode() { + try { + const res = await gridCodeClassifyTemplateAttr({ 'conditionMap[classifyTemplateOid]': this.Formlist[this.selectRow].oid, limit: -1 }); + this.ProData = res.data.data.map(item => { + if (item.classifyInvokeAttr !== '') { + if (!item.hasOwnProperty('classifyInvokeText')) { + item.classifyInvokeText = { + '娉ㄥ叆绫诲瀷': item.classifyInvokeAttr, + '娉ㄥ叆绫诲瀷鍚嶇О': item.classifyInvokeAttrName, + '灞傜骇璁剧疆': item.classifyInvokeLevel, + '鏄惁鍙慨鏀�': item.classifyInvokeEditFlag }; } } return item; }); - }).catch(res => { - this.$message.error(res) - }) + } catch (error) { + this.$message.error(error); + } }, treeClick(e) { console.log(e); @@ -1310,7 +1328,7 @@ message: "娣诲姞鎴愬姛!" }); done(row) - this.CrudRend() + this.TemRefresh(); }).catch(res => { this.$message({ type: 'info', @@ -1322,7 +1340,7 @@ //妯℃澘绠$悊淇敼 CrudRowUpdata(row,index,done) { editSave(row).then(() => { - this.CrudRend() + this.TemRefresh(); this.$message({ type: "success", message: "鎿嶄綔鎴愬姛!" @@ -1335,7 +1353,7 @@ //妯℃澘绠$悊鍒犻櫎 CrudRowDel(row) { deleteData(row).then(()=> { - this.CrudRend() + this.TemRefresh(); }).catch(res => { this.$message({ type: 'info', @@ -1423,6 +1441,8 @@ this.Formlist = res.data.data.filter(item => { return item.codeclassifyoid == this.nodeClickList.oid }) + this.crudLCStatus=this.Formlist[this.selectRow].lcStatus; + this.crudArray.push(this.Formlist[this.selectRow]); gridCodeClassifyTemplateAttr({'conditionMap[classifyTemplateOid]': res.data.data[this.selectRow].oid,limit:-1}).then(res => { this.ProData = res.data.data; //鍒嗙被娉ㄥ叆鏁版嵁鏍煎紡 -- Gitblit v1.9.3