licp
2024-05-28 b22ca897c863fc34f6f8f9a13c3e303f9f34c180
src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -41,8 +41,13 @@
    flex-direction: column;
    flex-wrap: wrap;
    width: 100%;
    /* overflow-x: hidden; */
    overflow-x: scroll;
    overflow-x: hidden;
    /* overflow-x: scroll; */
    cursor: grab;
  }
  .center-box:active{
    cursor: grabbing;
  }
  .tables {
@@ -65,6 +70,10 @@
    padding: 5px;
    box-sizing: border-box;
    overflow: hidden;
    user-select: none;
  }
  .content *{
    user-select: none;
  }
@@ -212,7 +221,7 @@
            size="small">{{ item.templateName }}</el-radio-button>
        </el-radio-group>
      </div>
      <div class="center-box">
      <div class="center-box" id="nav">
        <table border="1" class="tables" cellpadding="10" v-for="(item,index) in tableList" :key="index">
          <tbody>
            <tr v-for="(m,i) in item.arr" :key="i">
@@ -232,17 +241,18 @@
                    <el-input v-else-if="getInspectionValueType(n.i) == 2" class="table_input" type="textarea"
                      v-model="n.v.v"
                      :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')"
                      @change="saveInsContext()" />
                      @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)" />
                    <el-select v-else-if="getInspectionValueType(n.i) == 5" class="table_input" v-model="n.v.v"
                      :disabled="state>1" @visible-change="e=>getDic(e,n.i)" @change="saveInsContext()">
                      :disabled="state>1" @visible-change="e=>getDic(e,n.i)"
                       @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)">
                      <el-option v-for="(e, i) in enumList" :key="i" :label="e.label" :value="e.value"></el-option>
                    </el-select>
                    <span :style="`font-family:${n.v.ff} !important;`"
                      v-else-if="getInspectionValueType(n.i) == 4">/</span>
                  </template>
                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='结论'">
                    <el-select v-if="(getInspectionValueType(n.i) == 2 || getInspectionValueType(n.i) == 5) && state==1" class="table_input" v-model="n.v.v"
                      @change="saveInsContext()">
                    <el-select v-if="(getInspectionValueType(n.i) == 2 || getInspectionValueType(n.i) == 5) && state==1"
                      class="table_input" v-model="n.v.v" @change="saveInsContext()">
                      <el-option label="合格" :value="1"></el-option>
                      <el-option label="不合格" :value="0"></el-option>
                    </el-select>
@@ -263,14 +273,14 @@
                    <span :style="`font-family:${n.v.ff} !important;`">{{getTell(n.i)}}</span>
                  </template>
                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='最终值' && state==1">
                    <el-input class="table_input" type="textarea"
                    <!-- <el-input class="table_input" type="textarea"
                      :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')"
                      v-model="n.v.v" @change="saveInsContext()" v-if="getInspectionValueType(n.i) == 2"></el-input>
                    <el-select v-else-if="getInspectionValueType(n.i) == 5" class="table_input" v-model="n.v.v"
                      :disabled="state>1" @visible-change="e=>getDic(e,n.i)" @change="saveInsContext()">
                      <el-option v-for="(e, i) in enumList" :key="i" :label="e.label" :value="e.value"></el-option>
                    </el-select>
                    <span v-else :style="`font-family:${n.v.ff} !important;`">{{n.v.v}}</span>
                    </el-select> -->
                    <span :style="`font-family:${n.v.ff} !important;`">{{n.v.v}}</span>
                  </template>
                  <span v-else :style="`font-family:${n.v.ff} !important;`">{{n.v.v}}</span>
                </div>
@@ -309,8 +319,8 @@
      </el-table>
    </el-drawer>
    <el-drawer title="任务切换" :visible.sync="taskVisible" :size="500">
      <ValueTable class="value-table" ref="insOrderPlan" :url="$api.insOrderPlan.selectInsOrderPlanList"
        :componentData="componentData" :key="upIndex" />
      <ValueTable class="value-table" ref="insOrderPlan" :url="$api.insOrderPlan.inspectionOrderDetailsTaskSwitching"
        :componentData="componentData" :key="upIndex" style="height: 100%;"/>
    </el-drawer>
    <el-dialog title="检验复核" :visible.sync="reviewDia" width="500px">
      <div class="body" style="display: flex;padding: 10px;" v-if="reviewDia">
@@ -426,6 +436,7 @@
      this.getInsStateDicts()
      this.getComparisonList()
      this.getAuthorizedPerson()
      this.scrollInit()
    },
    watch: {
      id(val) {
@@ -542,7 +553,7 @@
      },
      selectEnumByCategoryOfSelect(val) {
        this.enumList = []
        if(val===undefined||val===null){
        if (val === undefined || val === null) {
          return
        }
        this.$axios.post(this.$api.enums.selectEnumByCategory, {
@@ -561,7 +572,7 @@
        const mySet1 = new Set();
        this.tableLists = this.currentSample.insProduct.filter(m => {
          let num0 = mySet1.size;
          if (m.templateId != null) {
          if (m.templateId != null&&m.template != null) {
            mySet1.add(JSON.stringify({
              template: m.template,
              templateId: m.templateId
@@ -833,15 +844,19 @@
                if (b[0].r == a.r) {
                  b.forEach(c => {
                    if (c.c == a.c) {
                      if (!isNaN(parseFloat(c.v.v))) {
                        var tableCode = ''
                        for (var d in this.comparisonList) {
                          if (c.c == this.comparisonList[d].value) {
                            tableCode = this.comparisonList[d].label
                            break
                          }
                      var tableCode = ''
                      for (var d in this.comparisonList) {
                        if (c.c == this.comparisonList[d].value) {
                          tableCode = this.comparisonList[d].label
                          break
                        }
                        comValue[(tableCode + (c.r + 1))] = parseFloat(c.v.v)
                      }
                      if(this.getInspectionValueType(item.i)==1){
                        if (!isNaN(parseFloat(c.v.v))) {
                          comValue[(tableCode + (c.r + 1))] = parseFloat(c.v.v)
                        }
                      }else{
                        comValue[(tableCode + (c.r + 1))] = c.v.v
                      }
                    }
                  })
@@ -855,24 +870,22 @@
                let comp = ask.map((m, i) => {
                  if (m.includes('=')) {
                    return res == m.split('=')[1]
                  }
                  if (m.includes('≥')) {
                  } else if (m.includes('≥')) {
                    return res >= m.split('≥')[1]
                  }
                  if (m.includes('≤')) {
                  }else if (m.includes('≤')) {
                    return res <= m.split('≤')[1]
                  }
                  if (m.includes('<')) {
                  }else if (m.includes('<')) {
                    return res < m.split('<')[1]
                  }
                  if (m.includes('>')) {
                  }else if (m.includes('>')) {
                    return res > m.split('>')[1]
                  }
                })
                if (comp.every(m => m)) {
                  item.v.v = 1
                } else {
                  item.v.v = 0
                if(this.getInspectionValueType(item.i)==1){
                  if (comp.every(m => m)) {
                    item.v.v = 1
                  } else {
                    item.v.v = 0
                  }
                }
                this.saveInsContext()
              }
@@ -912,14 +925,18 @@
                  valueList.forEach(b => {
                    str = str.replace(b.name, b.value)
                  })
                  if (item.v.f.includes('/') > -1) {
                  if (item.v.f.includes('/')) {
                    if (Object.getOwnPropertyNames(comValue).length == valueList.length) {
                      comResult = eval(str)
                    } else {
                      comResult = ''
                    }
                  } else {
                    comResult = eval(str)
                    if(this.getInspectionValueType(item.i)==1){
                      comResult = eval(str)
                    }else{
                      comResult = str
                    }
                  }
                  break;
              }
@@ -927,8 +944,12 @@
                if (a[0].r == item.r && comResult != '') {
                  for (var b in a) {
                    if (a[b].c == item.c) {
                      let val = parseFloat(comResult.toFixed(3))
                      a[b].v.v = isNaN(val) ? '' : val
                      try{
                        let val = parseFloat(comResult.toFixed(3))
                        a[b].v.v = isNaN(val) ? '' : val
                      }catch(e){
                        a[b].v.v = comResult
                      }
                      break
                    }
                  }
@@ -1246,6 +1267,33 @@
          this.personList = data
        })
      },
      scrollInit() {
        // 获取要绑定事件的元素
        const nav = document.getElementById("nav")
        var flag; // 鼠标按下
        var downX; // 鼠标点击的x下标
        var scrollLeft; // 当前元素滚动条的偏移量
        nav.addEventListener("mousedown", function(event) {
          flag = true;
          downX = event.clientX; // 获取到点击的x下标
          scrollLeft = this.scrollLeft; // 获取当前元素滚动条的偏移量
        });
        nav.addEventListener("mousemove", function(event) {
          if (flag) { // 判断是否是鼠标按下滚动元素区域
            var moveX = event.clientX; // 获取移动的x轴
            var scrollX = moveX - downX; // 当前移动的x轴下标减去刚点击下去的x轴下标得到鼠标滑动距离
            this.scrollLeft = scrollLeft - scrollX // 鼠标按下的滚动条偏移量减去当前鼠标的滑动距离
          }
        });
        // 鼠标抬起停止拖动
        nav.addEventListener("mouseup", function() {
          flag = false;
        });
        // 鼠标离开元素停止拖动
        nav.addEventListener("mouseleave", function(event) {
          flag = false;
        });
      }
    }
  }
</script>