licp
2024-06-07 32a95699e59c5c65e18c08643266c9cbfa380ee4
src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -191,7 +191,11 @@
<template>
  <div v-loading="loading" class="inspection">
    <el-row class="title">
      <el-col :span="12" style="padding-left: 20px;">检验单详情</el-col>
      <el-col :span="12" style="padding-left: 20px;">检验单详情
        <span style="color: #3A7BFA;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;样品</span>
        <span v-if="currentFiberOpticTape" style="color: #3A7BFA;"> - 光纤带</span>
        <span v-if="currentFiberOptic" style="color: #3A7BFA;"> - 光纤</span>
      </el-col>
      <el-col :span="12" style="text-align: right;">
        <el-button size="small" type="primary" @click="fiberOpticVisible=true" v-if="fiberOptic.length>0">光纤切换</el-button>
        <el-button size="small" type="primary" @click="fiberOpticTapeVisible=true" v-if="fiberOpticTape.length>0">光纤带切换</el-button>
@@ -231,7 +235,7 @@
          <el-input clearable v-model="insOrder.appointed" disabled size="small" placeholder="请输入"></el-input>
        </el-form-item>
        <el-form-item label="当前样品位数:">
          <el-tag v-if="currentSample.index">{{ `NO.${currentSample.index}` }}</el-tag>
          <el-tag v-if="currentKey">{{ `NO.${currentKey}` }}</el-tag>
        </el-form-item>
      </el-form>
    </div>
@@ -251,7 +255,7 @@
                :rowspan="n.v.mc&&n.v.mc.rs?n.v.mc.rs:1"
                :style="`background:${n.v.bg};color:${n.v.fc};font-size:${n.v.fs}px;width:${handleWidth(n)}px !important;height:${item.style.rowlen[n.r]}px;font-wight:${n.v.bl?'bold':''};`">
                <div class="content" :class="`content-h-${n.v.ht} content-v-${n.v.vt}`"
                  :style="`width:${handleWidth(n)}px !important;min-height:${item.style.rowlen[n.r]}px;`">
                  :style="`width:${handleWidth(n)}px !important;min-height:${item.style.rowlen[n.r]}px;background:${n.v.bg};`">
                  <template v-if="n.v.ps!=undefined && n.v.ps.value==='检验值' && state==1">
                    <el-input v-if="getInspectionValueType(n.i) == 1" class="table_input" v-model="n.v.v"
                      :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')"
@@ -305,13 +309,41 @@
                  </template>
                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='样品编号'">
                    <div style="display: flex;flex-wrap: nowrap;align-items: center;">
                      <i class="el-icon-caret-left table_caret" @click="caretSample(-1)"></i>
                      <i class="el-icon-caret-left table_caret" @click="caretSample(-1)" v-if="!currentFiberOpticTape&&!currentFiberOptic"></i>
                      <div :style="`font-family:${n.v.ff} !important;`">{{currentSample.sampleCode}}</div>
                      <i class="el-icon-caret-right table_caret" @click="caretSample(1)"></i>
                      <i class="el-icon-caret-right table_caret"
                      v-if="!currentFiberOpticTape&&!currentFiberOptic"@click="caretSample(1)"></i>
                    </div>
                  </template>
                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='样品型号'">
                    <div :style="`font-family:${n.v.ff} !important;`" v-if="currentSample.model!==undefined&&currentSample.model!==null">{{currentSample.model}}</div>
                  </template>
                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='套管'">
                    <div style="display: flex;flex-wrap: nowrap;align-items: center;">
                      <!-- <i class="el-icon-caret-left table_caret" @click="caretBushing(-1)"></i> -->
                      <div :style="`font-family:${n.v.ff} !important;`">{{currentBushing?currentBushing.color:''}}</div>
                      <!-- <i class="el-icon-caret-right table_caret" @click="caretBushing(1)"></i> -->
                    </div>
                  </template>
                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='光纤带'">
                    <div style="display: flex;flex-wrap: nowrap;align-items: center;">
                      <i class="el-icon-caret-left table_caret" @click="caretTape(-1)
                      " v-if="currentFiberOpticTape"></i>
                      <div :style="`font-family:${n.v.ff} !important;`">{{currentFiberOpticTape?currentFiberOpticTape.code:''}}</div>
                      <i class="el-icon-caret-right table_caret"
                      v-if="currentFiberOpticTape"
                      @click="caretTape(1)"></i>
                    </div>
                  </template>
                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='光纤'">
                    <div style="display: flex;flex-wrap: nowrap;align-items: center;">
                      <i class="el-icon-caret-left table_caret" @click="caretOptic(-1)"
                      v-if="currentFiberOptic"></i>
                      <div :style="`font-family:${n.v.ff} !important;`">{{currentFiberOptic?currentFiberOptic.color:''}}
                      </div>
                      <i
                      v-if="currentFiberOptic" class="el-icon-caret-right table_caret" @click="caretOptic(1)"></i>
                    </div>
                  </template>
                  <span v-else :style="`font-family:${n.v.ff} !important;`">{{n.v.v}}</span>
                </div>
@@ -324,11 +356,11 @@
      :data="{
        orderId:id
      }"
      v-show="state==1"
      v-show="state==1&&fileAdd"
      :on-success="handleSuccessUp" :show-file-list="false"
        accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar' :headers="headers" :on-change="beforeUpload"
        :on-error="onError" ref='upload'>
        <el-button size="small" type="primary" :loading="upLoading">附件上传</el-button></el-upload>
        <el-button size="small" type="primary">附件上传</el-button></el-upload>
      <ValueTable class="value-table" ref="fileList" :url="$api.insOrderPlan.getFileList"
        :componentData="componentData0"
        :delUrl="$api.insOrderPlan.delfile"
@@ -337,7 +369,7 @@
    <el-drawer title="光纤切换" :visible.sync="fiberOpticVisible" :size="500">
      <el-table class="el-table" ref="fiberOpticTable" :data="fiberOptic" height="100%" tooltip-effect="dark" border
        highlight-current-row @row-click="handleChangeOptic" :row-class-name="tableRowClassName"
        :current-row-key="currentKey" :row-key="record=>record.index" v-if="fiberOpticVisible">
        :current-row-key="currentKey2" :row-key="record=>record.index" v-if="fiberOpticVisible">
        <el-table-column type="index" align="center" label="序号" width="70px" :key="Math.random()">
        </el-table-column>
        <el-table-column prop="bushColor" label="管套色标" min-width="100px" show-overflow-tooltip></el-table-column>
@@ -350,7 +382,7 @@
    <el-drawer title="光纤带切换" :visible.sync="fiberOpticTapeVisible" :size="500">
      <el-table class="el-table" ref="fiberOpticTapeTable" :data="fiberOpticTape" height="100%" tooltip-effect="dark" border
        highlight-current-row @row-click="handleChangeTape" :row-class-name="tableRowClassName"
        :current-row-key="currentKey" :row-key="record=>record.index" v-if="fiberOpticTapeVisible">
        :current-row-key="currentKey1" :row-key="record=>record.index" v-if="fiberOpticTapeVisible">
        <el-table-column type="index" align="center" label="序号" width="70px" :key="Math.random()">
        </el-table-column>
        <el-table-column prop="code" label="光纤带编号" min-width="110px" show-overflow-tooltip></el-table-column>
@@ -363,7 +395,7 @@
    <el-drawer title="套管切换" :visible.sync="bushingVisible" :size="500">
      <el-table class="el-table" ref="bushingTable" :data="bushing" height="100%" tooltip-effect="dark" border
        highlight-current-row @row-click="handleChangeBushing" :row-class-name="tableRowClassName"
        :current-row-key="currentKey" :row-key="record=>record.index" v-if="bushingVisible">
        :current-row-key="currentKey0" :row-key="record=>record.index" v-if="bushingVisible">
        <el-table-column type="index" align="center" label="序号" width="70px" :key="Math.random()">
        </el-table-column>
        <el-table-column prop="color" label="管色标" min-width="100px" show-overflow-tooltip></el-table-column>
@@ -443,6 +475,7 @@
    },
    data() {
      return {
        fileAdd:false,
        sampleVisible: false,
        taskVisible: false,
        submitLoading: false,
@@ -484,11 +517,15 @@
          isIndex: true,
          showSelect: false,
          select: false,
          selectMethod: '',
          sort: false,
          init:false,
          do: [
          {
                  id: 'handleDown',
                  font: '下载',
                  type: 'text',
                  method: 'handleDown'
               },{
                  id: 'delete',
                  font: '删除',
                  type: 'text',
@@ -496,12 +533,7 @@
            disabFun: (row, index) => {
                        return this.state!=1
                     }
               }, {
                  id: 'handleDown',
                  font: '下载',
                  type: 'text',
                  method: 'handleDown'
               },
               }
          ],
          isPage: false,
          linkEvent: {},
@@ -535,6 +567,9 @@
        ps: {},
        param: {},
        currentKey: 1,
        currentKey0: 1,
        currentKey1: 1,
        currentKey2: 1,
        comparisonList: [],
        excelMethodList: [],
        equipOptions: [],
@@ -584,6 +619,7 @@
      this.getComparisonList()
      this.getAuthorizedPerson()
      this.scrollInit()
      this.getPower()
    },
    watch: {
      id(val) {
@@ -647,6 +683,23 @@
      }
    },
    methods: {
      getPower(){
        let power = JSON.parse(sessionStorage.getItem('power'))
        let fileDel = false
        let fileAdd = false
        for (var i = 0; i < power.length; i++) {
               if (power[i].menuMethod == 'uploadFile') {
                  fileAdd = true
               }
               if (power[i].menuMethod == 'delfile') {
                  fileDel = true
               }
            }
        if (!fileDel) {
               this.componentData0.do.splice(1, 1)
            }
        this.fileAdd = fileAdd
      },
      async getCurrentProduct(id,type){
        this.tableLoading = true;
        let res = await this.$axios.post(this.$api.insOrderPlan.getInsProduct+'?id='+id+'&type='+type+'&laboratory='+this.sonLaboratory)
@@ -667,6 +720,7 @@
          this.fiberOpticTape = row.fibers;
        }
        this.bushingVisible = false;
        this.currentKey0 = row.index
      },
      async handleChangeOptic(row, column, event){
        this.currentFiberOptic = row;
@@ -683,7 +737,7 @@
        this.fiberOpticVisible = false;
        let list = await this.getCurrentProduct(row.id,2)
        this.getTableLists0(list)
        this.currentKey = row.index
        this.currentKey2 = row.index
      },
      async handleChangeTape(row, column, event){
        this.currentFiberOpticTape = row;
@@ -707,7 +761,7 @@
          // 配置光纤
          this.fiberOptic = row.fiber;
        }
        this.currentKey = row.index
        this.currentKey1 = row.index
      },
      async handleChangeSample(row, column, event) {
        this.param = {}
@@ -1637,6 +1691,85 @@
        })
        this.getTableLists()
      },
      caretBushing(num){
        let index = this.currentKey0 + num
        if(index < 1){
          this.$message.error('当前是第一个套管')
          return
        } else if(index > this.bushing.length){
          this.$message.error('当前是最后一个套管')
          return
        }
        this.currentKey0 = index
        this.currentBushing = this.HaveJson(this.bushing[index - 1])
        this.fiberOpticTape = []
        this.currentFiberOpticTape = null;
        this.fiberOptic = []
        this.currentFiberOptic = null;
        if( this.currentBushing.fiber&& this.currentBushing.fiber.length>0){
          // 直接配置光纤
          this.fiberOptic =  this.currentBushing.fiber;
        }else if( this.currentBushing.fibers&& this.currentBushing.fibers.length>0){
          // 配置光纤带后,再配置光纤
          this.fiberOpticTape =  this.currentBushing.fibers;
        }
      },
      async caretTape(num){
        let index = this.currentKey1 + num
        if(index < 1){
          this.$message.error('当前是第一个光纤带')
          return
        } else if(index > this.fiberOpticTape.length){
          this.$message.error('当前是最后一个光纤带')
          return
        }
        this.currentKey1 = index
        this.currentFiberOpticTape = this.HaveJson(this.fiberOpticTape[index - 1])
        this.param = {}
        this.fiberOptic = []
        this.currentFiberOptic = null;
        this.currentFiberOpticTape.productList.forEach(a => {
          this.param[a.id] = {
            insValue: [],
            comValue: [],
            resValue: null,
            equipValue: [],
            equipName: [],
            insResult: null
          }
        })
        this.fiberOpticTapeVisible = false;
        let list = await this.getCurrentProduct(this.currentFiberOpticTape.id,1)
        this.getTableLists0(list)
        if(this.currentFiberOpticTape.fiber&&this.currentFiberOpticTape.fiber.length>0){
          // 配置光纤
          this.fiberOptic = this.currentFiberOpticTape.fiber;
        }
      },
      async caretOptic(num){
        let index = this.currentKey2 + num
        if(index < 1){
          this.$message.error('当前是第一个光纤')
          return
        } else if(index > this.fiberOptic.length){
          this.$message.error('当前是最后一个光纤')
          return
        }
        this.currentKey2 = index
        this.currentFiberOptic = this.HaveJson(this.fiberOptic[index - 1])
        this.currentFiberOptic.productList.forEach(a => {
          this.param[a.id] = {
            insValue: [],
            comValue: [],
            resValue: null,
            equipValue: [],
            equipName: [],
            insResult: null
          }
        })
        let list = await this.getCurrentProduct(this.currentFiberOptic.id,2)
        this.getTableLists0(list)
      },
      handleSuccessUp(response, ) {
        this.upLoading = false;
            if (response.code == 200) {
@@ -1665,10 +1798,10 @@
          if (res.code === 200) {
            let url = '';
            if(res.data.type==1){
              url = this.javaApi+'/img/'+res.data.url
              url = this.javaApi+'/img/'+res.data.fileUrl
              file.downloadIamge(url,row.fileName)
            }else{
              url = this.javaApi+'/word/'+res.data.url
              url = this.javaApi+'/word/'+res.data.fileUrl
              const link = document.createElement('a');
              link.href = url;
              link.download = row.fileName;