浏览代码

switch branch

Karsa 1 年之前
父节点
当前提交
827c1fde3d
共有 1 个文件被更改,包括 20 次插入9 次删除
  1. 20 9
      src/views/datasheet_manage/components/MixedTable.vue

+ 20 - 9
src/views/datasheet_manage/components/MixedTable.vue

@@ -56,6 +56,7 @@
               :data-cindex="columnHeader[cell_index]"
               :data-key="cell.Uid"
               @click="clickCell($event, cell)"
+              @dblclick="dblClickCell($event,cell)"
               @contextmenu.prevent="rightClickHandle($event,cell)"
               @mouseenter="getRelationEdbInfo(cell)"
               @copy="copyCellHandle($event,cell)"
@@ -63,7 +64,8 @@
             >
 
             <!-- 插入单元格禁止编辑 -->
-            <template v-if="[4,5].includes(cell.DataType) || disabled">
+            <template v-if="([4,5,6].includes(cell.DataType)&&!cell.CanEdit) || disabled">
+              
               <!-- 单元格类型5显示指标浮窗 -->
               <el-popover
                 v-if="cell.DataType===5&&!disabled"
@@ -99,7 +101,7 @@
 
               <el-autocomplete
                 v-else
-                v-model="cell.ShowValue"
+                v-model="cell.Value"
                 :fetch-suggestions="searchTarget"
                 popper-class="edb-select-popover"
                 :data-key="cell.Uid"
@@ -412,7 +414,7 @@ export default {
     /* 输入框失焦 设置单元格类型 处理关联关系 */
     async changeVal(e, cell) {
       //非得搞一个要回车失焦
-      e.target.blur();
+      e.target.nodeName && e.target.blur();
 
       // 是日期格式 DataType为1
       // 自定义内容 DataType 3
@@ -435,12 +437,11 @@ export default {
           
           cell.ShowValue = checkDateFormat(value);
           cell.Value = checkDateFormat(value);
-        }else if(cell.EdbInfoId&&!cell.DataTime&&cell.Value===value) {//指标
-        }else if(value.includes('=')) {
-          // cell.DataType = 6;
-          // let calculateVal = await this.getValueByFormula(value);
-          // cell.ShowValue = calculateVal;
-          // console.log(cell)
+        }else if(value.includes('=')) { //公式单元格
+          cell.DataType = 6;
+          let calculateVal = await this.getValueByFormula(value);
+          cell.ShowValue = calculateVal;
+          this.$set(cell,'CanEdit',false)
 
         }else {//自定义值
           cell.DataType = 3;
@@ -828,6 +829,16 @@ export default {
 
       // 阻止默认的粘贴操作
       e.preventDefault();
+    },
+
+    /* 支持公式单元格双击切换状态 */
+    dblClickCell(e,cell) {
+      if(this.disabled || cell.DataType!==6) return
+
+      this.$set(cell,'CanEdit',true)
+      this.$nextTick(() => {
+        if(e.target.childNodes[0].childNodes[0].childNodes[1].nodeName==='INPUT') e.target.childNodes[0].childNodes[0].childNodes[1].focus();
+      })
     }
   },
 };