licp
2024-07-03 7ded07b08ee84eaeb0cfc2b571586f93fd479309
x完成温度循环
已修改5个文件
263 ■■■■ 文件已修改
index.html 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/b1-ins-order/add.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/b1-inspect-order-plan/Inspection.vue 245 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/tool/excel.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
index.html
@@ -11,7 +11,13 @@
    <link rel='stylesheet' href='/static/luckysheet/css/luckysheet.css' />
    <link rel='stylesheet' href='/static/luckysheet/assets/iconfont/iconfont.css' />
        <script src="/static/luckysheet/plugins/js/plugin.js"></script>
        <script src="/static/luckysheet/luckysheet.umd.js"></script>
        <script src="/static/example.html/static/luckysheet/luckysheet.umd.js"></script>
    <!-- <link rel='stylesheet' href='http://10.1.200.86/luckysheet\plugins\css/pluginsCss.css' />
    <link rel='stylesheet' href='http://10.1.200.86/luckysheet/plugins/plugins.css' />
    <link rel='stylesheet' href='http://10.1.200.86/luckysheet/css/luckysheet.css' />
    <link rel='stylesheet' href='http://10.1.200.86/luckysheet/assets/iconfont/iconfont.css' />
        <script src="http://10.1.200.86/luckysheet/plugins/js/plugin.js"></script>
        <script src="http://10.1.200.86/luckysheet/luckysheet.umd.js"></script> -->
        <title>LIMS实验室管理系统</title>
        <link rel="icon" type="image/x-icon" href="./static/img/logo.png">
src/components/do/b1-ins-order/add.vue
@@ -1021,9 +1021,9 @@
        temperatureDataList: [
          {label: '<', value: '<'},
          {label: '≤', value: '≤'},
          {label: '>', value: '>'},
          {label: '=', value: '='},
          {label: '≥', value: '≥'},
          {label: '=', value: '='},
          {label: '>', value: '>'},
        ]
      }
    },
src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -430,43 +430,29 @@
        </el-form-item>
        </el-form>
        <el-divider></el-divider>
        <el-form :inline="true" :model="wareForm0" label-width="100px" style="justify-content: flex-start;display: flex;align-items: center;width: 100%;">
        <el-form :inline="true" :model="equipForm" label-width="100px" style="justify-content: flex-start;display: flex;align-items: center;width: 100%;">
          <el-form-item label="仪器名称:">
            <el-select v-model="wareForm0.value" placeholder="请选择" size="small">
              <el-option
                v-for="item in temperatureOptions"
                :key="item.value"
                :label="item.label"
                :value="item.value">
              </el-option>
            </el-select>
            <el-input clearable v-model="equipForm.value0" disabled size="small" placeholder=""></el-input>
          </el-form-item>
          <el-form-item label="仪器编号:">
            <el-select v-model="wareForm0.value" placeholder="请选择" size="small">
            <el-select v-model="equipForm.code0" placeholder="请选择" size="small">
              <el-option
                v-for="item in temperatureOptions"
                v-for="item in equipOptions"
                :key="item.value"
                :label="item.label"
                :label="item.value"
                :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="仪器名称:" style="margin-left: 80px;">
            <el-select v-model="wareForm0.value" placeholder="请选择" size="small">
              <el-option
                v-for="item in temperatureOptions"
                :key="item.value"
                :label="item.label"
                :value="item.value">
              </el-option>
            </el-select>
            <el-input clearable v-model="equipForm.value1" disabled size="small" placeholder=""></el-input>
          </el-form-item>
          <el-form-item label="仪器编号:">
            <el-select v-model="wareForm0.value" placeholder="请选择" size="small">
            <el-select v-model="equipForm.code1" placeholder="请选择" size="small">
              <el-option
                v-for="item in temperatureOptions"
                v-for="item in equipOptions"
                :key="item.value"
                :label="item.label"
                :label="item.value"
                :value="item.value">
              </el-option>
            </el-select>
@@ -474,7 +460,9 @@
        </el-form>
        <el-table
          :data="wareTableData"
          ref="wareTableData"
          border
          v-loading="wareTableDataLoading"
          style="width: 100%;margin-bottom: 30px;" align="center">
          <el-table-column
            label="序号"
@@ -513,7 +501,7 @@
            align="center"
            width="130">
            <template slot-scope="scope">
              <el-input size="small" v-model="scope.row.value0" placeholder="" @change="m=>changeItem(m,0)"></el-input>
              <el-input size="small" v-model="scope.row.value0" placeholder="" @change="m=>changeItem(scope.row)"></el-input>
            </template>
          </el-table-column>
          <el-table-column
@@ -522,29 +510,30 @@
            align="center"
            width="130">
            <template slot-scope="scope">
              <el-input size="small" v-model="scope.row.value1" placeholder="" @change="m=>changeItem(m,1)"></el-input>
              <el-input size="small" v-model="scope.row.value1" placeholder="" @change="m=>changeItem(scope.row)"></el-input>
            </template>
          </el-table-column>
          <el-table-column
            prop="zip"
            prop="comValue"
            align="center"
            label="平均值"
            min-width="150">
          </el-table-column>
          <el-table-column
            prop="lastValue"
            prop="resValue"
            label="衰减差"
            align="center"
            v-if="wareForm.inspectionItemSubclass!=20"
            min-width="150">
          </el-table-column>
          <el-table-column
            prop="insResult"
            label="结论"
            align="center"
            min-width="150">
            min-width="150" v-if="wareForm.inspectionItemSubclass!=20">
            <template slot-scope="scope">
              <span v-if="scope.row.insResult===1" style="color: green;">合格</span>
              <span v-if="scope.row.insResult===0" style="color: red;">不合格</span>
              <span v-else-if="scope.row.insResult===0" style="color: red;">不合格</span>
              <span v-else>待定</span>
            </template>
          </el-table-column>
@@ -675,6 +664,7 @@
    },
    data() {
      return {
        wareTableDataLoading:false,
        fileAdd:false,
        sampleVisible: false,
        taskVisible: false,
@@ -814,6 +804,12 @@
          humidity:null,
          temperature:null,
        },
        equipForm:{
          value0:null,
          code0:null,
          value1:null,
          code1:null,
        }
      }
    },
    computed: {
@@ -912,28 +908,195 @@
          })
        }
      },
      equipForm:{
        deep:true,
        handler(val){
          if(this.tableLists.find(m=>m.templateId==this.currentTable)&&this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='温度循环检验原始记录'&&this.equipOptions&&this.equipOptions.length>0){
            this.param[this.currentSample.insProduct[0].id].equipValue = []
            this.param[this.currentSample.insProduct[0].id].equipName = []
            if(this.equipForm.code0){
              this.equipForm.value0 = this.equipOptions.find(m=>m.value==this.equipForm.code0).label
              this.param[this.currentSample.insProduct[0].id].equipValue.push({
                i:this.currentSample.insProduct[0].id,
                v:{
                  v:this.equipForm.code0
                }
              })
              this.param[this.currentSample.insProduct[0].id].equipName.push({
                i:this.currentSample.insProduct[0].id,
                v:{
                  v:this.equipForm.value0
                }
              })
            }
            if(this.equipForm.code1){
              this.equipForm.value1 = this.equipOptions.find(m=>m.value==this.equipForm.code1).label
              this.param[this.currentSample.insProduct[0].id].equipValue.push({
                i:this.currentSample.insProduct[0].id,
                v:{
                  v:this.equipForm.code1
                }
              })
              this.param[this.currentSample.insProduct[0].id].equipName.push({
                i:this.currentSample.insProduct[0].id,
                v:{
                  v:this.equipForm.value1
                }
              })
            }
            this.saveInsContext()
          }
        }
      }
    },
    methods: {
      changeItem(m,index){},
      changeItem(row){
        if(row.value0&&row.value1){
          this.$set(row,'comValue',((Number(row.value0)+Number(row.value1))/2).toFixed(5))
        }else{
          return
        }
        this.param[row.id].insValue = [
          {
            i:row.id,
            v:{
              v:row.value0
            }
          },
          {
            i:row.id,
            v:{
              v:row.value1
            }
          }
        ]
        this.param[row.id].comValue = [{
            i:row.id,
            v:{
              v:row.comValue
            }
          }]
        if(this.wareForm.inspectionItemSubclass!=20){
          row.resValue = row.comValue?Math.abs(row.comValue-20).toFixed(5):''
          this.param[row.id].resValue.v.v = row.resValue
          if(row.ask&&row.resValue){
            console.log(row.ask,row.resValue)
            if(row.ask.includes('<')){
              row.insResult = row.resValue<row.ask.split('<')[1]?1:0
            }else if(row.ask.includes('>')){
              row.insResult = row.resValue<row.ask.split('>')[1]?1:0
            }else if(row.ask.includes('=')){
              row.insResult = row.resValue==row.ask.split('=')[1]?1:0
            }else if(row.ask.includes('≥')){
              row.insResult = row.resValue>=row.ask.split('≥')[1]?1:0
            }else if(row.ask.includes('≤')){
              row.insResult = row.resValue<=row.ask.split('≤')[1]?1:0
            }
            this.param[row.id].insResult.v.v = row.insResult
          }
        }else{
          this.param[row.id].insResult.v.v = 1
        }
        this.$refs.wareTableData.doLayout()
        this.saveInsContext()
      },
      wareFormChange(m,type){
        if(m&&type){
          this.wareForm[type] = Number(m)
        }
        let wareForm = {...this.wareForm}
        wareForm.inspectionItemSubclass = wareForm.inspectionItemSubclass+'℃'
        this.wareTableDataLoading = true
        this.$axios.post(this.$api.insOrderPlan.temCycle,{
          sampleId:this.currentSample.id,
          ...wareForm
        }).then(res => {
          this.wareTableDataLoading = false
          if (res.code == 201) return
          let {productVos,sampleVo} = res.data
          this.wareForm0 = sampleVo
          productVos = productVos.map(m=>{
            let obj = {...m,...m.insProduct}
            this.param[obj.id] = {
              insValue: [],
              comValue: [],
              resValue: {
                i:obj.id,
                v:{
                  v:null
                }
              },
              equipValue: [],
              equipName: [],
              insResult: {
                i:obj.id,
                v:{
                  v:null
                }
              }
            }
            let insProductResult = obj.insProductResult
            if(insProductResult){
              for(let i in insProductResult){
                switch (i) {
                  case 'insValue':
                    let insValue = JSON.parse(insProductResult[i])
                    if(insValue&&insValue.length>1){
                      this.param[obj.id].insValue = [
                        {
                          i:obj.id,
                          v:{
                            v:insValue[0].v
                          }
                        },
                        {
                          i:obj.id,
                          v:{
                            v:insValue[1].v
                          }
                        }
                      ]
                      obj.value0 = insValue[0].v
                      obj.value1 = insValue[1].v
                    }
                    break;
                  case 'comValue':
                  let comValue = JSON.parse(insProductResult[i])
                    if(comValue&&comValue.length>0){
                      this.param[obj.id].comValue = [
                        {
                          i:obj.id,
                          v:{
                            v:comValue[0].v
                          }
                        }
                      ]
                      obj.comValue = comValue[0].v
                    }
                    break;
                  default:
                    break;
                }
              }
              this.param[obj.id].resValue = {
                i:obj.id,
                v:{
                  v:obj.lastValue
                }
              }
              obj.resValue = obj.lastValue
              this.param[obj.id].insResult = {
                i:obj.id,
                v:{
                  v:obj.insResult
                }
              }
            }
            return obj
          })
          this.wareTableData = productVos
        })
        this.getEquipOptions(true,this.currentSample.insProduct[0].id)
      },
      subOtherForm(m,type){
        let ids = []
@@ -1446,21 +1609,32 @@
          } catch (e) {}
          try {
            let insValue = JSON.parse(a.insProductResult.insValue)
            for (var i = 0; i < insValue.length; i++) {
            for (let i = 0; i < insValue.length; i++) {
              this.param[a.id].insValue[i].v.v = insValue[i].v
              this.param[a.id].insValue[i].u = insValue[i].u
            }
          } catch (e) {}
          try {
            let equipValue = JSON.parse(a.insProductResult.equipValue)
            for (var i = 0; i < equipValue.length; i++) {
              this.param[a.id].equipValue[i].v.v = equipValue[i].v
            for (let i = 0; i < equipValue.length; i++) {
              console.log(444,this.equipForm)
              if(this.tableLists.find(m=>m.templateId==this.currentTable)&&this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='温度循环检验原始记录'){
                // 温度循环赋值
                this.$set(this.equipForm,`code`+i,equipValue[i].v)
              }else{
                this.param[a.id].equipValue[i].v.v = equipValue[i].v
              }
            }
          } catch (e) {}
          try {
            let equipName = JSON.parse(a.insProductResult.equipName)
            for (var i = 0; i < equipName.length; i++) {
              this.param[a.id].equipName[i].v.v = equipName[i].v
            for (let i = 0; i < equipName.length; i++) {
              if(this.tableLists.find(m=>m.templateId==this.currentTable)&&this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='温度循环检验原始记录'){
                // 温度循环赋值
                this.$set(this.equipForm,`value`+i,equipName[i].v)
              }else{
                this.param[a.id].equipName[i].v.v = equipName[i].v
              }
            }
          } catch (e) {}
          try {
@@ -2014,6 +2188,7 @@
      },
      saveInsContext() {
        if(this.param){
          console.log(33333,this.param)
          this.$axios.post(this.$api.insOrderPlan.saveInsContext, {
            param: JSON.stringify(this.param)
          }).then(res => {
src/components/tool/excel.vue
@@ -121,7 +121,7 @@
                },
                option.myFolderUrl = this.LOCATIONVUE + '/',
                option.functionButton = '<i class="save_i el-icon-info" title="系统支持的变量:&#10样品编号&#10样品型号&#10序号&#10检验项&#10检验子项&#10设备名称&#10设备编码&#10单位&#10要求值&#10试验方法 | 检测方法&#10最终值&#10结论&#10计算值&#10检验值"></i><button onClick="excelClosed()" class="save">保存</button>'
        console.log(window.luckysheet)
        console.log(window.luckysheet,luckysheet)
                window.luckysheet.create(option)
            }
        }
src/main.js
@@ -17,7 +17,7 @@
//本地
// Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80";
// const javaApi = 'http://127.0.0.1:8001';
// const javaApi = 'http://192.168.47.249:8001';
const javaApi = 'http://192.168.47.249:8001';
//云
// Vue.prototype.LOCATIONVUE = "http://114.132.189.42:8080";
@@ -25,7 +25,7 @@
//检测中心正式库
// Vue.prototype.LOCATIONVUE = "http://10.1.200.86:8080";
const javaApi = 'http://10.1.200.86:8001';
// const javaApi = 'http://10.1.200.86:8001';
//装备电缆测试库
// Vue.prototype.LOCATIONVUE = "http://10.16.173.59";