Procházet zdrojové kódy

excel复制的空格问题

hbchen před 10 měsíci
rodič
revize
815345b512
1 změnil soubory, kde provedl 13 přidání a 3 odebrání
  1. 13 3
      src/views/dataEntry_manage/onlineExcelCopy.vue

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

@@ -263,9 +263,9 @@ created() {
         }
       }
 
-      // 处理复制粘贴造成的漏洞 - 还原数据
+      // 处理复制粘贴造成的漏洞 - 还原数据 PS:这个钩子函数只有在单元格在可是区域内才会执行
       this.options.hook.cellRenderBefore=(cell,position,sheet,ctx)=>{
-        // excel上的日期有空格,复制过来也有空格…… 导致保存时日期错误,清除两边空格
+        // 清除两边空格
         if(cell && cell.m && typeof(cell.m)=='string'){
           cell.m = cell.m.trim()  
         }
@@ -273,7 +273,7 @@ created() {
           cell.v = cell.v.trim()  
         }
         /**
-         * 从excel整个单元格复制,到这里进入编辑模式的粘贴,出来个cell.ct.s,不知道啥东西,官网也写
+         * 从excel整个单元格复制,到这里进入编辑模式的粘贴,出来个cell.ct.s,不知道啥东西,官网也
          * 看似有内容,实则保存没内容,因为cell.m和cell.v 都是空。直接清掉了
          */
         if(cell && cell.ct && cell.ct.s){
@@ -539,6 +539,16 @@ created() {
         if(valid){
           this.saveLoading=true
           let data = luckysheet.getAllSheets()
+          for (let i = 0; i < data[0].data.length; i++) {
+            // 清除日期列的两边的空格,防止保存时日期变成0000-00-00
+            const element = data[0].data[i][0];
+            if(element && element.v && typeof(element.v)=='string'){
+              element.v = element.v.trim()  
+            }
+            if(element && element.m && typeof(element.m)=='string'){
+              element.m = element.m.trim()  
+            }
+          }
           dataInterence.saveOnlineExcel({...data[0],ClassifyId:this.dataForm.secondClassify}).then(res=>{
           if(res.Ret == 200) {
             this.setCache('submit')