licp
2024-06-19 236161bbb70c94de0ef1f6feeb73183adeb78d7d
完成检验下单优化
已修改3个文件
392 ■■■■■ 文件已修改
src/components/do/b1-ins-order/add.vue 355 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/b1-ins-order/fiberoptic-config.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/b1-ins-order/add.vue
@@ -305,6 +305,12 @@
            <el-input size="small" placeholder="请输入" clearable v-model="addObj.otcCode" :readonly="active>1"></el-input>
          </div>
        </el-col>
        <el-col class="search_thing" :span="6">
          <div class="search_label">制单人:</div>
          <div class="search_input">
            <el-input size="small" placeholder="请输入" clearable v-model="addObj.prepareUser" :readonly="active>1"></el-input>
          </div>
        </el-col>
        <el-col class="search_thing" :span="6" style="align-items: flex-start;margin: 8px 0;">
          <div class="search_label">备注:</div>
          <div class="search_input">
@@ -427,7 +433,7 @@
              :autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row)"
              v-if="active==1&&isAskOnlyRead"></el-input>
            <span v-else>
              <template v-if="(scope.row.ask.indexOf('D')>-1
              <!-- <template v-if="(scope.row.ask.indexOf('D')>-1
              ||scope.row.ask.indexOf('W')>-1
              ||scope.row.ask.indexOf('X')>-1
              ||scope.row.ask.indexOf('RTS')>-1
@@ -435,7 +441,8 @@
              ||scope.row.ask.indexOf('L')>-1)&&active==1">
                <input class="askRts" v-model="scope.row.rts" /><br />{{ scope.row.ask }}
              </template>
              <template v-else>{{ scope.row.ask }}</template>
              <template v-else>{{ scope.row.ask }}</template> -->
              <template >{{ scope.row.ask }}</template>
            </span>
          </template>
        </el-table-column>
@@ -601,15 +608,38 @@
        </el-row> -->
      </div>
    </el-dialog>
    <el-dialog title="RTS填写" :visible.sync="bsm3Dia" width="500px" :show-close="false" :before-close="beforeClose0">
      <el-row>
        <el-col class="search_thing" :span="22" style="display: flex;align-items: center;">
          <div class="search_label"><span class="required-span">* </span>RTS:</div>
          <div class="search_input">
            <el-input size="small" placeholder="请输入" clearable v-model="bsm3Val"></el-input>
          </div>
        </el-col>
      </el-row>
    <el-dialog title="特殊值填写" :visible.sync="bsm3Dia" width="800px" :show-close="false">
      <el-table
      :data="editTable"
      style="width: 100%">
        <el-table-column
          prop="sampleCode"
          label="样品编号"
          width="180">
        </el-table-column>
        <el-table-column
          prop="model"
          label="样品型号"
          width="180">
        </el-table-column>
        <el-table-column
          prop="symbolItem"
          label="识别符号">
        </el-table-column>
        <el-table-column
          prop="value"
          label="识别符值">
          <template slot-scope="scope">
            <el-input v-model="scope.row.value" placeholder="请输入" size="small"></el-input>
          </template>
        </el-table-column>
      </el-table>
      <span slot="footer" class="dialog-footer">
        <el-row>
          <el-button @click="bsm3Dia=false">取 消</el-button>
          <el-button type="primary" @click="save0" :loading="saveLoad">确 定</el-button>
        </el-row>
      </span>
    </el-dialog>
  </div>
</template>
@@ -639,6 +669,7 @@
    },
    data() {
      return {
        editTable:[],
        template: null,
        templates: [],
        addObj: {
@@ -670,7 +701,8 @@
          engineeringEn: null,
          production: null,
          productionEn: null,
          companyId: null
          companyId: null,
          prepareUser:null
        },
        sample: {
          sampleCode: null,
@@ -873,43 +905,50 @@
        this.addObj.companyId = selects.id
        this.selectUserDia = false
      },
      handleAsk(ask, rts) {
      containsValue(str) {
        let arr = ['RTS','D','W','X','H','L']
        let symbolItem = ''
        arr.some(value =>{
          if(str.includes(value)){
            symbolItem  = value
            return true
          }
        })
        return symbolItem
      },
      handleAsk(ask,symbolItem, value) {
        try{
          let code = [">", "<", "=", ">", "<", "≥", "≤", "±"];
          if (ask.includes('RTS') || ask.includes('D') || ask.includes('W') ||
            ask.includes('X') || ask.includes('H') || ask.includes('L')) {
            if (ask.includes('&')) {
              // 多个条件
              let arr0 = ask.split('&')
              let arr1 = []
              arr0.forEach(m => {
                let index = code.findIndex(b => m.includes(b))
                if (index > -1) {
                  let arr = m.split(code[index]).filter(b => !!b)
                  let num = eval(this.replaceAll(arr[0], 'RTS', rts))
                  m = code[index] + '' + num
                  arr1.push(m)
                }
              })
              return arr1.join('&')
            } else {
              // 单个条件
              let index = code.findIndex(b => ask.includes(b))
          if (ask.includes('&')) {
            // 多个条件
            let arr0 = ask.split('&')
            let arr1 = []
            arr0.forEach(m => {
              let index = code.findIndex(b => m.includes(b))
              if (index > -1) {
                let arr = ask.split(code[index]).filter(b => !!b)
                let num = eval(this.replaceAll(arr[0], 'RTS', rts))
                return code[index] + '' + num
                let arr = m.split(code[index]).filter(b => !!b)
                let num = eval(this.replaceAll(arr[0], symbolItem, value))
                m = code[index] + '' + num
                arr1.push(m)
              }
            })
            return arr1.join('&')
          } else {
            // 单个条件
            let index = code.findIndex(b => ask.includes(b))
            if (index > -1) {
              let arr = ask.split(code[index]).filter(b => !!b)
              let num = eval(this.replaceAll(arr[0], symbolItem, value))
              return code[index] + '' + num
            }
          }
        }catch(e){}
      },
      replaceAll(str, find, rts) {
        if (rts === undefined) {
      replaceAll(str,find,value) {
        if (str === undefined) {
          return str
        }
        return str.replace('RTS', rts).replace('D', rts).replace('W', rts).replace('X', rts).replace('H', rts).replace(
          'L', rts);
        return str.replace(find, value);
      },
      save() {
        if (!this.addObj.companyId) {
@@ -936,61 +975,141 @@
          this.$message.error('请选择检验标准')
        } else {
          let sampleList = this.HaveJson(this.sampleList)
          let isRTS = this.totalArr.find(a => a.ask != null && (a.ask.includes('RTS') || a.ask.includes('D') || a.ask
          let projectNum = this.totalArr.filter(a => a.state == 1).length
          if(projectNum==0){
            this.$confirm('检验项目为空,是否确认提交?', "提示", {
              confirmButtonText: "确定",
              cancelButtonText: "取消",
              type: "warning"
            }).then(() => {
              this.saveMethod(sampleList)
            }).catch(() => {})
          }else{
            let isRTS = this.totalArr.find(a => a.ask != null && (a.ask.includes('RTS') || a.ask.includes('D') || a.ask
            .includes('W') ||
            a.ask.includes('X') || a.ask.includes('H') || a.ask.includes('L')) && a.state == 1)
          if (isRTS) {
            sampleList.forEach(item => {
              if (item.insProduct && item.insProduct.length > 0) {
                item.insProduct.forEach(a => {
                  if (a.state == 1) {
                    let ask = this.handleAsk(a.ask, a.rts)
                    if (ask && a.state == 1) {
                      a.ask = ask
            if (isRTS) {
              this.editTable = this.handleData(sampleList,this.containsValue, 0)
              this.bsm3Dia = true;
              return
            }
            this.saveMethod(sampleList)
          }
        }
      },
      save0(){
        let sampleList = this.handleData(this.HaveJson(this.sampleList),this.handleAsk,1)
        this.saveMethod(sampleList)
      },
      handleData(sampleList,calBack,type){
        let editTable = []
        sampleList.forEach(item => {
          let obj = {
            sampleCode:item.sampleCode,
            model:item.model,
            symbolList:[],
            sampleId:item.id,
          }
          if (item.insProduct && item.insProduct.length > 0) {
            item.insProduct.forEach(a => {
              if (a.state == 1) {
                if(type==0){
                  let str = calBack(a.ask)
                  str&&obj.symbolList.push(str)
                }else if(type==1){
                  let arr = this.editTable.filter(b => b.sampleId == item.id)
                  arr.forEach(f => {
                    if(a.ask.includes(f.symbolItem)){
                      let ask = calBack(a.ask, f.symbolItem,f.value)
                      if (ask) {
                        a.ask = ask
                      }
                    }
                  }
                })
                  })
                }
              }
              // 光纤带项目
              if (item.bushing && item.bushing.length > 0) {
                item.bushing.forEach(a => {
                  if (a.fiber && a.fiber.length > 0) {
                    a.fiber.forEach(b => {
                      if (b.productList && b.productList.length > 0) {
                        b.productList.forEach(c => {
                          if (c.state == 1) {
                            let ask = this.handleAsk(c.ask, c.rts)
                            if (ask && c.state == 1) {
                              c.ask = ask
            })
          }
          // 光纤带项目
          if (item.bushing && item.bushing.length > 0) {
            item.bushing.forEach(a => {
              if (a.fiber && a.fiber.length > 0) {
                a.fiber.forEach(b => {
                  if (b.productList && b.productList.length > 0) {
                    b.productList.forEach(c => {
                      if (c.state == 1) {
                        if(type==0){
                          let str = calBack(c.ask)
                          str&&obj.symbolList.push(str)
                        }else if(type==1){
                          // let ask = calBack(c.ask, c.rts)
                          // if (ask && c.state == 1) {
                          //   c.ask = csk
                          // }
                          let arr = this.editTable.filter(b => b.sampleId == item.id)
                          arr.forEach(f => {
                            if(c.ask.includes(f.symbolItem)){
                              let ask = calBack(c.ask, f.symbolItem,f.value)
                              if (ask) {
                                c.ask = ask
                              }
                            }
                          }
                        })
                          })
                        }
                      }
                    })
                  }
                  if (a.fibers && a.fibers.length > 0) {
                    a.fibers.forEach(b => {
                      if (b.productList && b.productList.length > 0) {
                        b.productList.forEach(c => {
                          if (c.state == 1) {
                            let ask = this.handleAsk(c.ask, c.rts)
                            if (ask && c.state == 1) {
                              c.ask = ask
                            }
                          }
                        })
                      }
                      if (b.fiber && b.fiber.length > 0) {
                        b.fiber.forEach(c => {
                          if (c.productList && c.productList.length > 0) {
                            c.productList.forEach(d => {
                              if (d.state == 1) {
                                let ask = this.handleAsk(d.ask, d.rts)
                                if (ask) {
                                  d.ask = ask
                                }
                })
              }
              if (a.fibers && a.fibers.length > 0) {
                a.fibers.forEach(b => {
                  if (b.productList && b.productList.length > 0) {
                    b.productList.forEach(c => {
                      if (c.state == 1) {
                        if(type==0){
                          let str = calBack(c.ask)
                          str&&obj.symbolList.push(str)
                        }else if(type==1){
                          // let ask = calBack(c.ask, c.rts)
                          // if (ask && c.state == 1) {
                          //   c.ask = csk
                          // }
                          let arr = this.editTable.filter(b => b.sampleId == item.id)
                          arr.forEach(f => {
                            if(c.ask.includes(f.symbolItem)){
                              let ask = calBack(c.ask, f.symbolItem,f.value)
                              if (ask) {
                                c.ask = ask
                              }
                            })
                            }
                          })
                        }
                      }
                    })
                  }
                  if (b.fiber && b.fiber.length > 0) {
                    b.fiber.forEach(c => {
                      if (c.productList && c.productList.length > 0) {
                        c.productList.forEach(d => {
                          if (d.state == 1) {
                            if(type==0){
                              let str = calBack(d.ask)
                              str&&obj.symbolList.push(str)
                            }else if(type==1){
                              // let ask = calBack(d.ask, d.rts)
                              // if (ask && d.state == 1) {
                              //   d.ask = ask
                              // }
                              let arr = this.editTable.filter(b => b.sampleId == item.id)
                              arr.forEach(f => {
                                if(d.ask.includes(f.symbolItem)){
                                  let ask = calBack(d.ask, f.symbolItem,f.value)
                                  if (ask) {
                                    d.ask = ask
                                  }
                                }
                              })
                            }
                          }
                        })
                      }
@@ -1000,27 +1119,54 @@
              }
            })
          }
          this.saveLoad = true
          this.$axios.post(this.$api.insOrder.addInsOrder, {
            str: JSON.stringify({
              insOrder: this.addObj,
              list: JSON.stringify(sampleList.map(a => {
                a.model = a.model + ((a.modelNum == null || a.modelNum == '' || a.modelNum == 'null') ?
                  '' : (
                    '-' + a.modelNum))
                return a
              })),
              pairing: JSON.stringify(this.bsm2Val2)
            })
          }).then(res => {
            this.saveLoad = false
            if (res.code == 201) return
            this.$message.success('已提交')
            this.$parent.playOrder(0)
          }).catch(e=>{
            this.saveLoad = false
          if(type==0){
            editTable.push(obj)
          }
        })
        if(type==0){
          editTable.forEach(a => {
            a.symbolList = Array.from(new Set(a.symbolList))
          })
          let editTableNew = []
          editTable.forEach(a => {
            a.symbolList.forEach(b => {
              let obj = {
                sampleCode:a.sampleCode,
                model:a.model,
                symbolItem:b,
                sampleId:a.sampleId,
                value:null
              }
              editTableNew.push(obj)
            })
          })
          return editTableNew
        }else{
          return sampleList
        }
      },
      saveMethod(sampleList){
        this.saveLoad = true
        this.$axios.post(this.$api.insOrder.addInsOrder, {
          str: JSON.stringify({
            insOrder: this.addObj,
            list: JSON.stringify(sampleList.map(a => {
              a.model = a.model + ((a.modelNum == null || a.modelNum == '' || a.modelNum == 'null') ?
                '' : (
                  '-' + a.modelNum))
              return a
            })),
            pairing: JSON.stringify(this.bsm2Val2)
          })
        }).then(res => {
          this.saveLoad = false
          if (res.code == 201) return
          this.$message.success('已提交')
          this.bsm3Dia = false;
          this.$parent.playOrder(0)
        }).catch(e=>{
          this.saveLoad = false
        })
      },
      upInsOrderOfState(state) {
        if (state == 1) {
@@ -1506,6 +1652,7 @@
          let obj = this.sampleIds.find(b => b == a.id)
          if (obj) {
            a.standardMethodListId = this.standardMethodListId
            this.methodChange(this.standardMethodListId, a)
          }
        })
      },
src/components/do/b1-ins-order/fiberoptic-config.vue
@@ -765,12 +765,12 @@
              this.bsm2 = false
            }
          }
          if (p.ask.includes('RTS')&&p.state === 1) {
            p.rts = ''
            this.bsm3Val = ''
            this.bsm3Dia = true
            this.bsmRow3.push(p)
          }
          // if (p.ask.includes('RTS')&&p.state === 1) {
          //   p.rts = ''
          //   this.bsm3Val = ''
          //   this.bsm3Dia = true
          //   this.bsmRow3.push(p)
          // }
        })
        if (e.length > 0) {
@@ -842,15 +842,15 @@
        }else{
          this.bsm1Dia = false
        }
        if (row.ask.includes('RTS')&&row.state === 1) {
          this.bsmRow3 = null;
          row.rts = ''
          this.bsm3Val = ''
          this.bsm3Dia = true
          this.bsmRow3 = row
        }else{
          this.bsm3Dia = false
        }
        // if (row.ask.includes('RTS')&&row.state === 1) {
        //   this.bsmRow3 = null;
        //   row.rts = ''
        //   this.bsm3Val = ''
        //   this.bsm3Dia = true
        //   this.bsmRow3 = row
        // }else{
        //   this.bsm3Dia = false
        // }
      },
      computationalPairing(n){
        const nums = [];
src/main.js
@@ -15,8 +15,9 @@
Vue.prototype.PROJECT = '检测中心'
// Vue.prototype.PROJECT = '装备电缆'
//本地
// Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80";
Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80";
// const javaApi = 'http://127.0.0.1:8001';
const javaApi = 'http://192.168.0.104:8001';
//云
// Vue.prototype.LOCATIONVUE = "http://114.132.189.42:8080";
@@ -27,8 +28,8 @@
// const javaApi = 'http://10.1.200.86:8001';
//装备电缆测试库
Vue.prototype.LOCATIONVUE = "http://10.16.173.59";
const javaApi = 'http://10.16.173.59:8001';
// Vue.prototype.LOCATIONVUE = "http://10.16.173.59";
// const javaApi = 'http://10.16.173.59:8001';
Vue.prototype.HaveJson = (val) => {
    return JSON.parse(JSON.stringify(val))