Browse Source

bug修复-真忙

hbchen 1 năm trước cách đây
mục cha
commit
5e447f38a5

+ 20 - 4
src/routes/modules/chartRoutes.js

@@ -118,22 +118,38 @@ export default [
 			{
 				path:"addSheet",
 				name:"添加表格",
-				component:()=>import('@/views/datasheet_manage/addSheet.vue')
+				component:()=>import('@/views/datasheet_manage/addSheet.vue'),
+				meta: { 
+					pathFrom: "sheetList",
+					pathName: "在线Excel",
+				}
 			},
 			{
 				path:"addCustomSheet",
 				name:"添加数据表格",
-				component:()=>import('@/views/datasheet_manage/customSheetEdit.vue')
+				component:()=>import('@/views/datasheet_manage/customSheetEdit.vue'),
+				meta: { 
+					pathFrom: "sheetTimeList",
+					pathName: "时间序列表格",
+				}
 			},
 			{
 				path:"addMixedSheet",
 				name:"添加混合表格",
-				component:()=>import('@/views/datasheet_manage/mixedSheetEdit.vue')
+				component:()=>import('@/views/datasheet_manage/mixedSheetEdit.vue'),
+				meta: { 
+					pathFrom: "sheetMixedList",
+					pathName: "混合表格",
+				}
 			},
 			{
 				path:"editSheetAnalysis",
 				name:"编辑表格",
-				component:()=>import('@/views/datasheet_manage/customAnalysis/edit.vue')
+				component:()=>import('@/views/datasheet_manage/customAnalysis/edit.vue'),
+				meta: { 
+					pathFrom: "sheetAnalysisList",
+					pathName: "自定义分析",
+				}
 			},
 			{
 				path:"sheetAnalysisList",

+ 3 - 1
src/utils/buttonConfig.js

@@ -365,6 +365,7 @@ export const etaTablePermission = {
     etaTable_customize_mix_refresh:'etaTable:customize:mix:refresh',//刷新
     etaTable_customize_mix_otherSave:'etaTable:customize:mix:otherSave',//另存为
     etaTable_customize_mix_download:'etaTable:customize:mix:download',//下载
+    etaTable_customize_mix_save:'etaTable:customize:mix:save',//保存
     etaTable_customize_mix_del:'etaTable:customize:mix:del',//删除
 
     //数据表格页面
@@ -376,6 +377,7 @@ export const etaTablePermission = {
     etaTable_customize_data_otherSave:'etaTable:customize:data:otherSave',//另存为
     etaTable_customize_data_download:'etaTable:customize:data:download',//下载
     etaTable_customize_data_del:'etaTable:customize:data:del',//删除
+    etaTable_customize_data_save:'etaTable:customize:data:save',//保存
 
     /*-----------excel表格页面--------- */
     etaTable_excel:'etaTable:excel',//添加Excel表格这个按钮显示不显示
@@ -383,7 +385,7 @@ export const etaTablePermission = {
     etaTable_excel_classifyOpt_delete:'etaTable:excel:classifyOpt:delete',//删除表格
     etaTable_excel_del:'etaTable:excel:del',
     etaTable_excel_download:'etaTable:excel:download',
-    // etaTable_excel_save:'etaTable:excel:save',//保存
+    etaTable_excel_save:'etaTable:excel:save',//保存
     etaTable_excel_edit:'etaTable:excel:edit',
 
     //自定义分析表格页面

+ 10 - 1
src/views/datasheet_manage/addSheet.vue

@@ -28,7 +28,7 @@
       </ul>
       <div v-if="updateTime" style="color:#999999;margin-right: 30px;">最近保存时间:{{ updateTime }}</div>
       <div>
-        <el-button type="primary" size="medium" @click="saveSheetHandle">保存</el-button>
+        <el-button type="primary" size="medium" @click="saveSheetHandle" v-if="hasPermission">保存</el-button>
         <el-button type="primary" size="medium" plain @click="backHandle">返回</el-button>
       </div>
     </div>
@@ -60,6 +60,7 @@ export default {
       sheetInit:false,
       option:{},
       updateTime:'',
+      sheetButton:''
     }
   },
   beforeRouteEnter(to, from, next) {
@@ -85,6 +86,14 @@ export default {
       deep:true
     }
   },
+  computed:{
+    hasPermission(){
+      // console.log(this.sheetButton,'sheetButton');
+      return this.sheetButton?
+            this.permissionBtn.isShowBtn('etaTablePermission','etaTable_excel_save')&&this.sheetButton.OpButton:
+            this.permissionBtn.isShowBtn('etaTablePermission','etaTable_excel_save')
+    }
+  },
   methods: {
 
     backHandle() {

+ 31 - 10
src/views/datasheet_manage/components/CustomTable.vue

@@ -419,14 +419,15 @@ export default {
         resetStyle();
       })
     },
-    'config.data':{
-      handler(value){
-        if(!this.disabled && this.hasInit){
-          this.$emit("autoSave")
-        }
-      },
-      deep:true
-    },
+    // 'config.data':{
+    //   handler(value){
+    //     console.log(value,'valuevaluevalue');
+    //     if(!this.disabled && this.hasInit){
+    //       this.$emit("autoSave")
+    //     }
+    //   },
+    //   deep:true
+    // },
     'config.textRowData':{
       handler(value){
         if(!this.disabled && this.hasInit){
@@ -519,6 +520,9 @@ export default {
             
         })
       }
+      if(!this.disabled && this.hasInit){
+        this.$emit("autoSave")
+      }
     },
 
     /* 改变排序 */
@@ -531,6 +535,9 @@ export default {
           ? edb.Data.sort((x,y) => new Date(y.DataTime)-new Date(x.DataTime))
           : edb.Data.sort((x,y) => new Date(x.DataTime)-new Date(y.DataTime))
       })
+      if(!this.disabled && this.hasInit){
+        this.$emit("autoSave")
+      }
     },
 
     // 单击指标名称修改别名
@@ -548,6 +555,9 @@ export default {
     /* 保存别名 */
     saveEdbAlias() {
       this.config.data.find(_ =>_.EdbInfoId === this.editEdb.EdbInfoId).EdbAliasName = this.editEdb.EdbAliasName;
+      if(!this.disabled && this.hasInit){
+        this.$emit("autoSave")
+      }
       this.isEditEdbAliasDialog = false;
     },
 
@@ -604,6 +614,9 @@ export default {
           ? [...edb.Data,...edb_concat_data].sort((x,y) => new Date(y.DataTime)-new Date(x.DataTime))
           : [...edb.Data,...edb_concat_data].sort((x,y) => new Date(x.DataTime)-new Date(y.DataTime))
       })
+      if(!this.disabled && this.hasInit){
+        this.$emit("autoSave")
+      }
     },
 
     /* 输入框失焦 存值或公式计算 val,行标 列标 指标信息 */
@@ -627,7 +640,10 @@ export default {
         cell.ShowValue = value
       }
       this.$set(cell,'CanEdit',false)
-      
+
+      if(!this.disabled && this.hasInit){
+        this.$emit("autoSave")
+      }
     },
 
     /* 输入公式的计算值 */
@@ -720,7 +736,9 @@ export default {
 
         
       }
-
+      if(!this.disabled && this.hasInit){
+        this.$emit("autoSave")
+      }
       this.hideContextMenu()
     },
 
@@ -804,6 +822,9 @@ export default {
     /* 清空所有数据 */
     reset() {
       this.config.data = [];
+      if(!this.disabled && this.hasInit){
+        this.$emit("autoSave")
+      }
       this.config.textRowData = [];
     },
 

+ 5 - 0
src/views/datasheet_manage/customAnalysis/edit.vue

@@ -175,6 +175,11 @@ import { getSheetImage } from "../common/option";
         }
       },
       backHandle(){
+        let params={
+          code:this.sheetDetailInfo.UniqueCode,
+          id:this.sheetDetailInfo.ExcelInfoId
+        }
+        sessionStorage.setItem('editSheetAnalysisBack',JSON.stringify(params))
         this.$router.back()
       },
       //跳转生成指标

+ 5 - 1
src/views/datasheet_manage/customAnalysis/list.vue

@@ -859,7 +859,11 @@ export default {
         code: this.$route.query.code,
         id: Number(this.$route.query.id),
       });
-    } else {
+    } else if(sessionStorage.getItem('editSheetAnalysisBack')){
+      let params=JSON.parse(sessionStorage.getItem('editSheetAnalysisBack'))
+      this.getTreeData(params);
+      sessionStorage.removeItem('editSheetAnalysisBack')
+    }else {
       this.getTreeData();
       this.getPublicList();
     }

+ 18 - 5
src/views/datasheet_manage/customSheetEdit.vue

@@ -11,7 +11,7 @@
           <div v-if="saveTime" style="color:#999999;margin-right:30px ;">
             最近保存时间:{{ saveTime }}
           </div>
-          <el-button type="primary" size="medium" @click="saveSheetHandle">保存</el-button>
+          <el-button type="primary" size="medium" @click="saveSheetHandle" v-if="hasPermission">保存</el-button>
           <el-button type="primary" size="medium" plain @click="backHandle">返回</el-button>
         </div>
       </div>
@@ -104,6 +104,14 @@ export default {
       deep:true
     }
   },
+  computed:{
+    hasPermission(){
+      // console.log(this.sheetButton,'sheetButton');
+      return this.sheetButton?
+            this.permissionBtn.isShowBtn('etaTablePermission','etaTable_customize_data_save')&&this.sheetButton.OpButton:
+            this.permissionBtn.isShowBtn('etaTablePermission','etaTable_customize_data_save')
+    }
+  },
   beforeRouteLeave(to,from,next){
     if(to.path!='/addMixedSheet'){
       this.markFinishStatus()
@@ -125,13 +133,17 @@ export default {
       ],
       saveTime:"",
       sheetInit:false,
-      isCanEdit:false
+      isCanEdit:false,
+      sheetButton:'',
+      // 取消自动保存,比如返回的时候
+      cancelAutoSave:false
     }
   },
   methods: {
 
     backHandle() {
       this.$router.back()
+      this.cancelAutoSave=true
     },
 
     /* 获取表格详情 */
@@ -151,8 +163,8 @@ export default {
         },1000)
         return 
       }
-      const { ExcelName,ExcelClassifyId,ExcelType,TableData,ModifyTime} = res.Data;
-      
+      const { ExcelName,ExcelClassifyId,ExcelType,TableData,ModifyTime,Button} = res.Data;
+      this.sheetButton=Button
       this.sheetForm = {
         name: ExcelName,
         classify: ExcelClassifyId,
@@ -207,7 +219,8 @@ export default {
     },
 
     autoSaveFun:_.debounce(async function(){
-      if(!this.sheetId) return 
+      // console.log("触发自动",this.cancelAutoSave);
+      if(!this.sheetId || this.cancelAutoSave) return 
       const { name,classify,sheetType } = this.sheetForm;
       if(!name || !classify) return this.$message.warning(name ? '请选择表格分类' : '请输入表格名称')
       if(!document.getElementsByClassName('table')[0]) return this.$message.warning('请添加表格')

+ 18 - 6
src/views/datasheet_manage/mixedSheetEdit.vue

@@ -41,7 +41,7 @@
       </ul>
       <div>
         <span v-if="updateTime" style="color:#999999 ;">最近保存时间:{{updateTime}}</span>
-        <el-button type="primary" size="medium" @click="saveSheetHandle" style="margin-left:10px">保存</el-button>
+        <el-button type="primary" size="medium" @click="saveSheetHandle" style="margin-left:10px" v-if="hasPermission">保存</el-button>
         <el-button type="primary" size="medium" plain @click="backHandle">返回</el-button>
       </div>
     </div>
@@ -71,13 +71,21 @@ export default {
   watch:{
     sheetForm:{
       handler(newVal){
-        console.log(newVal,'newVal','newVal');
+        // console.log(newVal,'newVal','newVal');
         if(this.sheetInit && this.sheetId) this.autoSaveFun()
         
       },
       deep:true
     }
   },
+  computed:{
+    hasPermission(){
+      // console.log(this.sheetButton,'sheetButton');
+      return this.sheetButton?
+              this.permissionBtn.isShowBtn('etaTablePermission','etaTable_customize_mix_save')&&this.sheetButton.OpButton:
+              this.permissionBtn.isShowBtn('etaTablePermission','etaTable_customize_mix_save')
+    }
+  },
   beforeRouteLeave(to,from,next){
     if(to.path!='/addMixedSheet'){
       this.markFinishStatus()
@@ -95,6 +103,7 @@ export default {
       sheetForm: {
         sheetType: 1
       },
+      sheetButton:'',
       sheetInit:false,
       sheetTypeOption: [
         { key: 1,label: '指标列+日期行' },
@@ -102,12 +111,15 @@ export default {
       ],
 
       updateTime: '',
-      isCanEdit:false
+      isCanEdit:false,
+      // 取消自动保存,比如返回的时候
+      cancelAutoSave:false
     }
   },
   methods: {
 
     backHandle() {
+      this.cancelAutoSave=true
       this.$router.back()
     },
 
@@ -129,8 +141,8 @@ export default {
         return 
       }
 
-      const { ExcelName,ExcelClassifyId,TableData,ModifyTime } = res.Data;
-
+      const { ExcelName,ExcelClassifyId,TableData,ModifyTime,Button } = res.Data;
+      this.sheetButton=Button
       this.sheetForm = {
         name: ExcelName,
         classify: ExcelClassifyId
@@ -152,7 +164,7 @@ export default {
       })
     },
     autoSaveFun:_.debounce(async function(){
-      if(!this.sheetId) return 
+      if(!this.sheetId || this.cancelAutoSave) return 
       const { name,classify,sheetType } = this.sheetForm;
       if(!name || !classify) return this.$message.warning(name ? '请选择表格分类' : '请输入表格名称')
       let checkAllEmpty = this.$refs.mixedTableRef.config.data.flat(1).some(_ => _.ShowValue);

+ 1 - 1
src/vuex/modules/permissionButton.js

@@ -16,7 +16,7 @@ const permissionButtons = {
             return new Promise((resolve,reject)=>{
                 departInterence.getRoleBtnAuth().then(res=>{
                     const buttons = res.Data || []
-                    // console.log(buttons.find(it => it.ButtonCode=="etaTable:analysis:edit"),'buttons');
+                    // console.log(buttons.find(it => it.ButtonCode=="etaTable:excel:save"),'buttons');
                     commit('SET_PERMISSION_BUTTONS',buttons)
                     
                     let trialUserPermisson = !!buttons.find(item => item.ButtonCode =="trialUserAction")