Karsa 1 year ago
parent
commit
f8dac13f59

+ 44 - 24
src/views/datasheet_manage/components/MixedTable.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="table-wrapper">
+  <div class="table-wrapper" @keydown="handlekeyDownKeys">
     <template v-if="config.data.length">
       
       <!-- 公式显示区 -->
@@ -389,17 +389,17 @@ export default {
       const res = await sheetInterface.insertData({EdbInfoId,Date})
       if(res.Ret !==200) return
 
-      //系统日期无值也要建立关联关系
-      if(!res.Data&&!DataTimeType){
-        this.selectCell.DataType = 3;
-        this.selectCell.DataTimeType = 0;
-        this.selectCell.ShowValue = '';
-        this.selectCell.Value = '';
-        this.selectCell.DataTime = '';
-        this.selectCell.EdbInfoId = 0;
-        this.$message.warning('所选指标的所选日期无值')
-        return
-      }
+      //日期无值也要建立关联关系
+      // if(!res.Data&&!DataTimeType){
+      //   this.selectCell.DataType = 3;
+      //   this.selectCell.DataTimeType = 0;
+      //   this.selectCell.ShowValue = '';
+      //   this.selectCell.Value = '';
+      //   this.selectCell.DataTime = '';
+      //   this.selectCell.EdbInfoId = 0;
+      //   this.$message.warning('所选指标的所选日期无值')
+      //   return
+      // }
 
       res.Data ? this.$message.success('插入成功') : this.$message.warning('当前日期暂无值') 
 
@@ -521,11 +521,12 @@ export default {
         if(cell.DataType===2) return
         
         console.log(checkDateFormat(value))
-        if(checkDateFormat(value)) { //是日期格式
+        let dateFormat = checkDateFormat(value);
+        if(dateFormat) { //是日期格式
           cell.DataType = 1;
           cell.Extra='';
-          cell.ShowValue = checkDateFormat(value);
-          cell.Value = checkDateFormat(value);
+          cell.ShowValue = dateFormat;
+          cell.Value = dateFormat;
         }else if(value.startsWith('=')) { //公式单元格
           cell.DataType = 6;
           let calculateVal = await this.getValueByFormula(value);
@@ -586,9 +587,10 @@ export default {
           const res = await sheetInterface.insertData(params)
           if(res.Ret !==200) return
 
-          !res.Data && this.updateInsertCell(relation.key);
-  
-          res.Data && this.config.data.forEach(row => {
+          //现在日期无值也不清除关系了
+          // !res.Data && this.updateInsertCell(relation.key);
+          
+          this.config.data.forEach(row => {
             row.forEach(cell => {
               if(cell.Uid === relation.key) {
                   cell.DataType = relation.type;
@@ -685,13 +687,22 @@ export default {
         ? getRightClickMenu(pos,(cell.DataType===1&&[1,2].includes(cell.DataTimeType))||cell.DataType===7)
         : getRightClickMenu(pos)
 
+      this.$nextTick(() => {
+        let dom = $('#contextMenu-wrapper')[0];
 
-      const dom = $('#contextMenu-wrapper')[0];
-			dom.style.left = e.clientX-3 + 'px';
-			dom.style.top = e.clientY-3 + 'px';
+        if(e.clientY > window.innerHeight/2) {
+          dom.style.left = e.clientX-3 + 'px';
+          dom.style.top = e.clientY-dom.offsetHeight-3 + 'px';
+        }else {
+          dom.style.left = e.clientX-3 + 'px';
+          dom.style.top = e.clientY-3 + 'px';
+        }
+
+        ['col','row'].includes(pos) && selectMoreCellStyle(e);
+        pos==='cell' && this.clickCell(e,cell);
+
+      })
       
-      ['col','row'].includes(pos) && selectMoreCellStyle(e);
-      pos==='cell' && this.clickCell(e,cell);
     },
 
     /*  */
@@ -1069,6 +1080,13 @@ export default {
       }
 
       return params
+    },
+
+    /* tab禁掉 */
+    handlekeyDownKeys(e) {
+      if(e.keyCode === 9) {
+        e.preventDefault();
+      }
     }
   },
 };
@@ -1230,7 +1248,9 @@ export default {
       background: #fff;
       position: absolute;
       right: -172px;
-      top: -50%;
+      top:-205px;
+      max-height: 400px;
+      overflow-y: auto;
     }
   }
 }

+ 10 - 1
src/views/datasheet_manage/components/calculateEdbDia.vue

@@ -203,7 +203,16 @@ export default {
   components: { selectTarget,edbDetailSection },
   computed: {
     edbArrFromTable() {
-       return this.$parent.config.data.flat().filter(_ =>_.DataType === 2)
+      let arr = this.$parent.config.data.flat().filter(_ =>_.DataType === 2);
+      let filterArr =  []
+      
+      arr.forEach(item => {
+        if(filterArr.findIndex(_ => _.EdbInfoId===item.EdbInfoId)===-1) {
+          filterArr.push(item)
+        }
+      })
+      
+       return filterArr
     }
   },
   watch: {

+ 1 - 1
src/views/datasheet_manage/components/selectTargetValueDia.vue

@@ -13,7 +13,7 @@
       />
 
       <ul class="data-cont">
-        <template v-if="result.List">
+        <template v-if="result.List&&result.List.length">
           <li 
             v-for="(item,index) in result.List" 
             :key="index"