licp
2024-10-14 ae8b90c76912a7796b7c23c78f1a59bac434457d
完成普通项目的项目检验
已修改6个文件
195 ■■■■ 文件已修改
src/components/do/b1-ins-order/add.vue 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/b1-inspect-order-plan/Inspection.vue 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/b1-inspect-order-plan/circuit-parameters1.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/b1-inspect-order-plan/circuit-parameters2.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/b1-inspect-order-plan.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/js/worker.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/b1-ins-order/add.vue
@@ -333,7 +333,7 @@
          <el-col class="search_thing" :span="6">
            <div class="search_label" style="width: 175px;">是否涉及配套样品:</div>
            <div class="search_input" style="width: calc(100% - 175px);">
              <el-radio-group v-model="addObj.mating" @change="$refs.sampleTable.doLayout()">
              <el-radio-group v-model="addObj.mating" @change="$refs.sampleTable.doLayout()" :disabled="active>1">
                <el-radio :label="1">是</el-radio>
                <el-radio :label="0">否</el-radio>
              </el-radio-group>
@@ -356,6 +356,7 @@
            <div class="search_input">
              <el-date-picker
                v-model="addObj.appointed"
                :disabled="active>1"
                type="date"
                placeholder="选择日期"
                size="small" format="yyyy-MM-dd" value-format="yyyy-MM-dd">
@@ -367,10 +368,30 @@
            <div class="search_input">
              <el-date-picker
                v-model="addObj.issueTime"
                :disabled="active>1"
                type="date"
                placeholder="选择日期"
                size="small" format="yyyy-MM-dd" value-format="yyyy-MM-dd">
              </el-date-picker>
            </div>
          </el-col>
          <el-col class="search_thing upload" :span="4" style="align-items: flex-start;height: auto" v-if="active==1">
            <el-upload
            style="margin: 8px 0 0px 50px;"
              action="#"
              :auto-upload="false"
              accept='.jpg,.jpeg,.png,.gif,.docx,.xls,.xlsx,.pdf,.zip,.rar,.csv' :on-change="handleChangeUpload">
              <el-button size="small" type="primary">上传附件</el-button>
            </el-upload>
          </el-col>
          <el-col class="search_thing" :span="8">
            <div class="search_input" style="width: 100%;margin-left: 40px;">
              <el-radio-group v-model="ruleInfo.rule" @change="$refs.sampleTable.doLayout()" :disabled="active>1">
                <el-radio :label="1">不考虑不确定度</el-radio>
                <el-radio :label="2">考虑不确定度<el-input placeholder="" v-model="ruleInfo.num" style="width: 100px;margin-left: 10px;" size="mini" :disabled="active>1">
                <template slot="append">%</template>
              </el-input></el-radio>
              </el-radio-group>
            </div>
          </el-col>
          <el-col class="search_thing" :span="6" style="align-items: flex-start;margin: 8px 0;">
@@ -379,14 +400,6 @@
              <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2}" size="small" clearable :placeholder="active>1 ? '' : '请输入'"
                v-model="addObj.remark" :readonly="active>1"></el-input>
            </div>
          </el-col>
          <el-col class="search_thing upload" :span="4" style="align-items: flex-start;margin: 8px 0 0 50px;height: auto" v-if="active==1">
            <el-upload
              action="#"
              :auto-upload="false"
              accept='.jpg,.jpeg,.png,.gif,.docx,.xls,.xlsx,.pdf,.zip,.rar,.csv' :on-change="handleChangeUpload">
              <el-button size="small" type="primary">上传附件</el-button>
            </el-upload>
          </el-col>
          <!-- <el-col class="search_thing" :span="6" v-if="active==1">
            <div class="search_label">RTS:</div>
@@ -454,21 +467,21 @@
                @clear="methodChange(scope.row.standardMethodListId, scope.row)"></el-input>
            </template>
          </el-table-column>
          <el-table-column prop="testRequirements" label="试验标准" align="center" min-width="100">
            <template slot-scope="scope">
              <el-select v-model="scope.row.testRequirements" :disabled="scope.row.model==null||active>1"
                placeholder="试验标准" size="small" :readonly="active>1" style="width: 100%;" clearable>
                <el-option v-for="item in standard" :key="item.id" :label="item.label" :value="item.value">
                </el-option>
              </el-select>
            </template>
          </el-table-column>
          <el-table-column prop="standardMethodListId" label="检验标准" align="center" min-width="100">
            <template slot-scope="scope">
              <el-select v-model="scope.row.standardMethodListId" :disabled="scope.row.model==null||active>1"
                placeholder="检验标准" size="small" :loading="methodLoad" @change="(value)=>methodChange(value, scope.row)"
                @focus="methodFocus" :readonly="active>1" style="width: 100%;" clearable @clear="productList = []" multiple>
                <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id">
                </el-option>
              </el-select>
            </template>
          </el-table-column>
          <el-table-column prop="testRequirements" label="试验标准" align="center" min-width="100">
            <template slot-scope="scope">
              <el-select v-model="scope.row.testRequirements" :disabled="scope.row.model==null||active>1"
                placeholder="试验标准" size="small" :readonly="active>1" style="width: 100%;" clearable>
                <el-option v-for="item in standard" :key="item.id" :label="item.label" :value="item.value">
                </el-option>
              </el-select>
            </template>
@@ -582,6 +595,11 @@
        :delUrl="$api.insOrderPlan.delfile" style="height: 100%;margin-top: 16px;" v-show="currentPage==1"/>
      </div>
    </div>
    <p style="font-size: 12px;color: red;margin-top: 20px;margin-bottom: 20px;">双方承诺:<br/>
      1、委托方承诺提供的信息与样品的真实性;<br/>
      2、委托送样检验结果仅适用于收到的样品;<br/>
      3、试验过程导致的样品损坏、配件损坏、损耗,本测试场不承担赔偿责任;<br/>
      4、实验室承诺公正开展检测活动,并承诺保守在检测活动过程中所获知的保密信息。</p>
    <el-dialog title="选择单位" :visible.sync="selectUserDia" width="70%">
      <div class="body" style="height: 60vh;" v-if="selectUserDia">
        <ValueTable ref="ValueTable2" :url="$api.user.selectCustomPageList" :componentData="componentData2" />
@@ -1249,6 +1267,10 @@
          requiredAdd: [],
          requiredUp: []
        },
        ruleInfo:{
          rule:null,
          num:null,
        }
      }
    },
    watch: {
@@ -1329,6 +1351,14 @@
          this.addObj = {
            ...res.data.insOrder
          };
          if(this.addObj.rule){
            if(this.addObj.rule=='不考虑不确定度'){
              this.ruleInfo.rule = 1
            }else{
              this.ruleInfo.rule = 2
              this.ruleInfo.num = this.addObj.rule.split('-')[1]
            }
          }
          this.addObj.type = String(this.addObj.type)
          this.sampleList = this.HaveJson(res.data.sampleProduct)
          this.sampleList.forEach(m=>{
@@ -2177,6 +2207,18 @@
          })
          return false;
        }
        if(this.ruleInfo.rule==1){
          this.addObj.rule = '不考虑不确定度'
        }else if(this.ruleInfo.rule==2){
          if(this.ruleInfo.rule==2&&(!this.ruleInfo.num||this.ruleInfo.num<0||this.ruleInfo.num==0)){
            this.$message({
              type: 'error',
              message: '请输入不确定度'
            })
            return;
          }
          this.addObj.rule = '考虑不确定度'+'-'+this.ruleInfo.num
        }
        this.saveLoad = true
        let fd = new FormData();
        this.fileList.forEach((item,index)=>{
@@ -2779,7 +2821,7 @@
        let selectTreeList = this.selectTree.split(" - ")
        this.addObj.model&&(selectTreeList[selectTreeList.length - 1] = this.addObj.model)
        this.$axios.post(this.$api.standardTree.selectStandardProductList, {
          model: (this.addObj.model?this.addObj.model:row.model) + '-' + row.modelNum,
          model: (this.addObj.model?this.addObj.model:row.model) + '-' + row.modelNum+';'+row.testRequirements,
          standardMethodListId: val.join(','),
          factory: selectTreeList.join(" - "),
        }, {
src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -304,6 +304,9 @@
        <el-form-item label="当前样品位数:">
          <el-tag v-if="currentKey">{{ `NO.${currentKey}` }}</el-tag>
        </el-form-item>
        <el-form-item label="" v-if="insOrder.rule">
          <el-tag>{{ !insOrder.rule.includes('不考虑不确定度')?insOrder.rule.split('-')[0]+' '+insOrder.rule.split('-')[1]+'%':insOrder.rule }}</el-tag>
        </el-form-item>
        <el-form-item label="备注:">
          <span style="color:red">{{ insOrder.remark?insOrder.remark:'-' }}</span>
        </el-form-item>
@@ -453,6 +456,20 @@
                      <i
                      v-if="currentFiberOptic" class="el-icon-caret-right table_caret" @click="caretOptic(1)"></i>
                    </div>
                  </template>
                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='试验前样品检查'">
                    <el-select class="table_input" v-model="n.v.v"
                      :disabled="state>1|| (n.u != userId && n.u != undefined && n.u != '')" @change="(val)=>changeSampleCheck(val, n,'前')">
                      <el-option label="完好" :value="'完好'"></el-option>
                      <el-option label="破损" :value="'破损'"></el-option>
                    </el-select>
                  </template>
                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='试验后样品检查'">
                    <el-select class="table_input" v-model="n.v.v"
                      :disabled="state>1|| (n.u != userId && n.u != undefined && n.u != '')" @change="(val)=>changeSampleCheck(val, n,'后')">
                      <el-option label="完好" :value="'完好'"></el-option>
                      <el-option label="破损" :value="'破损'"></el-option>
                    </el-select>
                  </template>
                  <span v-else :style="`font-family:${n.v.ff} !important;`" v-html="getValue(n.v)" ></span>
                </div>
@@ -1149,7 +1166,9 @@
                resValue: null,
                equipValue: [],
                equipName: [],
                insResult: null
                insResult: null,
                beforeCheck:null,
                afterCheck:null,
              }
            }
          })
@@ -2163,7 +2182,9 @@
              resValue: null,
              equipValue: [],
              equipName: [],
              insResult: null
              insResult: null,
              beforeCheck:null,
              afterCheck:null,
            }
          }
        })
@@ -2211,7 +2232,9 @@
                resValue: null,
                equipValue: [],
                equipName: [],
                insResult: null
                insResult: null,
                beforeCheck:null,
                afterCheck:null,
              }
            })
            // 页面列表数据处理
@@ -2663,6 +2686,16 @@
                })
              }
            }
            if (b.v.ps != undefined && b.v.ps.value === '试验前样品检查') {
              // b.v.v = ''
              this.$set(b.v, 'v', '' )
              this.param[b.i].beforeCheck = b
            }
            if (b.v.ps != undefined && b.v.ps.value === '试验后样品检查') {
              // b.v.v = ''
              this.$set(b.v, 'v', '' )
              this.param[b.i].afterCheck = b
            }
            set.add(b.r)
            // 如果模板列表的函数存在,那么加入到excel函数列表里面
            if (b.v.f) {
@@ -2759,10 +2792,18 @@
          } catch (e) {}
          try {
            // 最终值赋值
            this.param[a.id].resValue.v.v = this.toFixed(a.lastValue,this.param[a.id].resValue.v.ct)
            this.param[a.id].resValue = {v:{v:a.lastValue}}
            // this.param[a.id].resValue.v.v = this.toFixed(a.lastValue,this.param[a.id].resValue.v.ct)
            // 结论赋值
            this.param[a.id].insResult.v.v = a.insResult
          } catch (e) {}
            this.param[a.id].insResult = {v:{v:a.insResult}}
            // this.param[a.id].insResult.v.v = a.insResult
            // 检验前样品检查赋值
            this.param[a.id].afterCheck.v.v = a.insProductResult.afterCheck
            // 检验后样品检查赋值
            this.param[a.id].beforeCheck.v.v = a.insProductResult.beforeCheck
          } catch (e) {
            console.log('error',e)
          }
        })
        // 对excel函数进行处理
        this.handleExcelMethod()
@@ -2795,6 +2836,13 @@
            n.v.v = n.v.v.replace('/', '')
          }
        }
        // 通信特殊处理,检验值填入之后直接保存数据,判断结果默认为3
        for (var i in this.param){
          this.param[i].insResult = {v:{v:3}}
        }
        this.saveInsContext(n.i)
        return;
        // 以下是正常的判断流程,后面有需要则进入此流程
        try {
          // 向 Worker 发送消息,开始处理逻辑
          this.worker.postMessage(JSON.stringify({
@@ -2811,7 +2859,6 @@
        } catch (error) {
          console.log(444,error);
        }
        // 监听 Worker 返回的结果
        this.worker.onmessage = (event) => {
          this.result = JSON.parse(event.data);
@@ -2824,6 +2871,7 @@
                if(this.result.value.currentInsItemId){
                  currentInsItemId = this.result.value.currentInsItemId
                }
                // console.log(this.result,123);
                // 特殊处理一下结论,会有这种特殊情况
                for (var i in this.param){
                  if(this.param[i].insResult&&this.param[i].insResult.v&&this.param[i].insResult.v.v){
@@ -2835,33 +2883,6 @@
                  }
                }
                this.saveInsContext(currentInsItemId)
                // 如果是数采可编辑输入的情况,可以直接保存数据
                // if(this.getDataType==2){
                //   this.saveInsContext(currentInsItemId)
                // }else{
                //   if(this.isGet&&!this.dataAcquisitionEidtAble){
                //     if(this.result.value.getDataTypeId==''){
                //       // 如果是数采不可编辑输入的情况,且最后一个数采没有完成,则不保存数据
                //       return
                //     }
                //     // 保存数据
                //     setTimeout(()=>{
                //       this.saveInsContext(currentInsItemId)
                //     },2000)
                //   }else if(this.isGet&&this.dataAcquisitionEidtAble){
                //     if(this.getDataType==1){
                //       if(this.result.value.getDataTypeId==''){
                //         // 如果是数采可编辑输入的情况,且最后一个数采没有完成,则不保存数据
                //         return
                //       }
                //       this.saveInsContext(currentInsItemId)
                //     }else{
                //       this.saveInsContext(currentInsItemId)
                //     }
                //   }else{
                //     this.saveInsContext(currentInsItemId)
                //   }
                // }
              })
              break;
            case 'tableList':
@@ -3373,6 +3394,17 @@
        // 保存数据
        this.saveInsContext(n.i)
      },
      // 样品检查
      changeSampleCheck(val, n,type){
        this.$set(n.v,'v',val)
        if(type=='前'){
          // 检验前
          this.saveInsContext(n.i)
        }else{
          // 检验后
          this.saveInsContext(n.i)
        }
      },
      getAuthorizedPerson() {
        this.$axios.get(this.$api.user.getUserMenu).then(res => {
          let data = []
@@ -3441,7 +3473,9 @@
              resValue: null,
              equipValue: [],
              equipName: [],
              insResult: null
              insResult: null,
              beforeCheck:null,
              afterCheck:null,
            }
          }
        })
src/components/do/b1-inspect-order-plan/circuit-parameters1.vue
@@ -674,7 +674,7 @@
      if(!n.often){
        return
      }
      if(!n.often.includes('MHz')||!n.often.includes('MHZ')){
      if(!n.often.includes('MHz')&&!n.often.includes('MHZ')){
        n.often = n.often + 'MHz'
      }
    },
src/components/do/b1-inspect-order-plan/circuit-parameters2.vue
@@ -552,7 +552,7 @@
      if(!n.often){
        return
      }
      if(!n.often.includes('MHz')||!n.often.includes('MHZ')){
      if(!n.often.includes('MHz')&&!n.often.includes('MHZ')){
        n.often = n.often + 'MHz'
      }
    },
src/components/view/b1-inspect-order-plan.vue
@@ -245,6 +245,11 @@
            width="160px"
          ></el-table-column>
          <el-table-column
            prop="submitTime"
            label="检验结束时间"
            width="160px"
          ></el-table-column>
          <el-table-column
            prop="verifyTell"
            label="理由"
            width="150px"
static/js/worker.js
@@ -167,6 +167,7 @@
          }else{
            // 如果不为空,则判断当前结论就需要进行判断
            //要求值为-,/,—,则结论设置为不判定,结论赋值为3
            console.log(3333,ask)
            if(ask[0]=='-' || ask[0]=='/' || ask[0]=='—'){
              item.v.v = 3
              list.forEach(a => {
@@ -368,6 +369,7 @@
              currentInsItemId: item.i,// 当前检验项的id
            }
          }
          console.log('result---', result)
          // 发消息给主线程
          self.postMessage(JSON.stringify(result))
        }