From adb5a52c590caa72f81d18b6454ef51fc0fea76a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Thu, 2 Feb 2023 02:59:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/xm/core/xmFunc/XmFuncEdit.vue | 1 + src/views/xm/core/xmFunc/XmFuncSelect.vue | 100 +++++++++----------- src/views/xm/core/xmMenu/XmEpicFeatures.vue | 6 +- src/views/xm/core/xmTask/XmPhase.vue | 9 +- 4 files changed, 59 insertions(+), 57 deletions(-) diff --git a/src/views/xm/core/xmFunc/XmFuncEdit.vue b/src/views/xm/core/xmFunc/XmFuncEdit.vue index f874a6f4..4cfc91fc 100644 --- a/src/views/xm/core/xmFunc/XmFuncEdit.vue +++ b/src/views/xm/core/xmFunc/XmFuncEdit.vue @@ -137,6 +137,7 @@ let tips = res.data.tips; if(tips.isOk){ this.editFormBak=[...this.editForm] + this.$emit("edit-fields",this.editForm) }else{ Object.assign(this.editForm,this.editFormBak) this.$notify({position:'bottom-left',showClose:true,message:tips.msg,type:tips.isOk?'success':'error'}) diff --git a/src/views/xm/core/xmFunc/XmFuncSelect.vue b/src/views/xm/core/xmFunc/XmFuncSelect.vue index 2d356edc..82c09eee 100644 --- a/src/views/xm/core/xmFunc/XmFuncSelect.vue +++ b/src/views/xm/core/xmFunc/XmFuncSelect.vue @@ -39,7 +39,7 @@ - + @@ -81,8 +81,8 @@ export default { watch:{ visible(val){ if(val==true){ - this.initData(); - this.searchXmFuncs() + this.initData(); + this.loadDatasFirstCache(); } } }, @@ -169,6 +169,8 @@ export default { } if(this.xmProduct && this.xmProduct.id){ params.productId=this.xmProduct.id + }else{ + return ; } this.load.list = true; @@ -178,6 +180,7 @@ export default { this.pageInfo.total = res.data.total; this.pageInfo.count=false; this.xmFuncs = res.data.data; + this.setDatasToCache(this.xmFuncs) }else{ this.$notify({ position:'bottom-left',showClose:true, message: tips.msg, type: 'error' }); } @@ -225,8 +228,16 @@ export default { this.pageInfo.count=true; this.getXmFuncs(); }, - afterEditSubmit(){ + afterEditSubmit(row){ this.editFormVisible=false; + Object.assign(this.editForm,row) + var data=this.xmFuncs.find(k=>k.id==this.editForm.id) + if(data){ + var dataRaw=JSON.parse(JSON.stringify(row)) + dataRaw.children=null; + Object.assign(data,dataRaw) + this.setDatasToCache(this.xmFuncs) + } }, //选择行xmFunc selsChange: function (sels) { @@ -253,55 +264,7 @@ export default { }).catch( err => this.load.del=false ); }); }, - //批量删除xmFunc - batchDel: function () { - if(this.sels.length<=0){ - return; - } - var params=this.sels.map(i=>{ - return { id:i.id} - }) - this.$confirm('确认删除选中记录吗?', '提示', { - type: 'warning' - }).then(() => { - this.load.del=true; - batchDelXmFunc(params).then((res) => { - this.load.del=false; - var tips=res.data.tips; - if( tips.isOk ){ - this.searchXmFuncs(); - } - this.$notify({ position:'bottom-left',showClose:true, message: tips.msg, type: tips.isOk?'success':'error'}); - }).catch( err => this.load.del=false ); - }); - }, - editSomeFields(row,fieldName,$event){ - let params={}; - if(this.sels.length>0){ - if(!this.sels.some(k=> k.id==row.id)){ - this.$notify({position:'bottom-left',showClose:true,message:'请编辑选中的行',type:'warning'}) - Object.assign(this.editForm,this.editFormBak) - return; - } - params['ids']=this.sels.map(i=>i.id) - }else{ - params['ids']=[row].map(i=>i.id) - } - params[fieldName]=$event - var func = editSomeFieldsXmFunc - func(params).then(res=>{ - let tips = res.data.tips; - if(tips.isOk){ - if(this.sels.length>0){ - this.searchXmFuncs(); - } - this.editFormBak=[...this.editForm] - }else{ - Object.assign(this.editForm,this.editFormBak) - this.$notify({position:'bottom-left',showClose:true,message:tips.msg,type:tips.isOk?'success':'error'}) - } - }).catch((e)=>Object.assign(this.editForm,this.editFormBak)) - }, + rowClick: function(row, event, column){ this.editForm=row this.editFormBak={...row}; @@ -316,12 +279,41 @@ export default { this.$emit('row-click',null) this.$refs.xmFuncTable.setCurrentRow(); }, + + loadDatasFirstCache(){ + + if(!this.xmProduct || !this.xmProduct.id){ + return; + } + var key="xm_func_cache_"+this.xmProduct.id + var dataStr=sessionStorage.getItem(key) + if(dataStr && dataStr!='null' && dataStr!='undefined'){ + this.xmFuncs=JSON.parse(dataStr) + this.pageInfo.total=this.xmFuncs.length; + }else{ + this.getXmFuncs(); + } + + }, + setDatasToCache(datas){ + debugger; + if(!this.xmProduct || !this.xmProduct.id){ + return; + } + var key="xm_func_cache_"+this.xmProduct.id + if(!datas || datas.length==0){ + sessionStorage.removeItem(key) + }else{ + sessionStorage.setItem(key,JSON.stringify(datas)) + } + + } },//end methods mounted() { this.$nextTick(() => { initDicts(this); this.initData() - this.searchXmFuncs(); + this.loadDatasFirstCache(); this.maxTableHeight = util.calcTableMaxHeight(this.$refs.xmFuncTable.$el) }); diff --git a/src/views/xm/core/xmMenu/XmEpicFeatures.vue b/src/views/xm/core/xmMenu/XmEpicFeatures.vue index de78c62d..3f6e5c26 100644 --- a/src/views/xm/core/xmMenu/XmEpicFeatures.vue +++ b/src/views/xm/core/xmMenu/XmEpicFeatures.vue @@ -658,8 +658,10 @@ onEditSomeFields(params){ Object.assign(this.editForm,params) var data=this.xmMenus.find(k=>k.menuId==this.editForm.menuId) - if(data){ - Object.assign(data,this.editForm) + if(data){ + var dataRaw=JSON.parse(JSON.stringify(params)) + dataRaw.children=null; + Object.assign(data,dataRaw) this.setDatasToCache(this.xmMenus) } }, diff --git a/src/views/xm/core/xmTask/XmPhase.vue b/src/views/xm/core/xmTask/XmPhase.vue index 0f5d6bca..6b0f69a2 100644 --- a/src/views/xm/core/xmTask/XmPhase.vue +++ b/src/views/xm/core/xmTask/XmPhase.vue @@ -771,7 +771,14 @@ export default { this.getXmTasks() }, onEditSomeFields(params){ - Object.assign(this.editForm,params ) + Object.assign(this.editForm,params ) + var data=this.xmTasks.find(k=>k.id==this.editForm.id) + if(data){ + var dataRaw=JSON.parse(JSON.stringify(params)) + dataRaw.children=null; + Object.assign(data,dataRaw) + this.setDatasToCache(this.xmTasks) + } }, //选择行xmTask selsChange: function (sels) {