Browse Source

禅道BUG-3911 复制内容去除两边空格

hbchen 10 months ago
parent
commit
a8c1e25bbf
1 changed files with 15 additions and 13 deletions
  1. 15 13
      src/views/dataEntry_manage/onlineExcelCopy.vue

+ 15 - 13
src/views/dataEntry_manage/onlineExcelCopy.vue

@@ -265,7 +265,21 @@ created() {
 
       // 处理复制粘贴造成的漏洞 - 还原数据
       this.options.hook.cellRenderBefore=(cell,position,sheet,ctx)=>{
-        // console.log('cellRenderBeforecellRenderBefore');
+        // excel上的日期有空格,复制过来也有空格…… 导致保存时日期错误,清除两边空格
+        if(cell && cell.m && typeof(cell.m)=='string'){
+          cell.m = cell.m.trim()  
+        }
+        if(cell && cell.v && typeof(cell.v)=='string'){
+          cell.v = cell.v.trim()  
+        }
+        /**
+         * 从excel整个单元格复制,到这里进入编辑模式的粘贴,出来个cell.ct.s,不知道啥东西,官网也写
+         * 看似有内容,实则保存没内容,因为cell.m和cell.v 都是空。直接清掉了
+         */
+        if(cell && cell.ct && cell.ct.s){
+          cell.ct.s='' 
+        }
+        
         // 是否更改了受保护的数据
         let haveUpdatedProtectedData=false
         if([3,4].includes(position.r) && position.c>=0 && position.c<=dataList.length){
@@ -318,7 +332,6 @@ created() {
           this.refreshManual()
         }
       }
-
       // 拿出所有数组
       let arr = dataList.map((item => item.DataList)).flat()
       // 拿出所有数组的日期并展平排序
@@ -509,27 +522,16 @@ created() {
         this.secondClassName = this.secondClassifyArray[0].ClassifyName
       }
       luckysheet.refresh()
-      // for (let i= 1;  i< col+1 ; i++) {
-      //   luckysheet.setCellValue(0,i,this.firstClassName,{isRefresh:false})
-      //   luckysheet.setCellValue(1,i,this.secondClassName,{isRefresh:i==col?true:false})
-      // }
     },
     // 切换选择二级分类
     changeSecondClassify(id){
       let col = this.options.column
       let item = this.secondClassifyArray.find(item => item.ClassifyId == id)
       this.secondClassName=item.ClassifyName
-      // for (let i= 1;  i< col+1; i++) {
-      //   luckysheet.setCellValue(1,i,this.secondClassName,{isRefresh:i==col?true:false})
-      // }
       luckysheet.refresh()
     },
     // 切换选择频度
     changeFrequency(value){
-      // let col = this.options.column
-      // for (let i= 1;  i< col+1; i++) {
-      //   luckysheet.setCellValue(2,i,value,{isRefresh:i==col?true:false})
-      // }
       luckysheet.refresh()
     },
     saveExcel(){