zouyu
2024-01-19 dd3a1555e588bc356464b70921be15e5f0664668
src/views/quality/rawMaterial/rawMaterial-form.vue
@@ -135,11 +135,14 @@
                    row-key="iid"
                    default-expand-all
                    :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
                      <el-table-column type="index" label="序号" width="60">
                      <el-table-column type="index" prop="parentIndex" label="序号" width="60">
                        <template scope="scope">
                            <span v-if="scope.row.isIndex">{{scope.row.parentIndex}}</span>
                        </template>
                      </el-table-column>
                      <el-table-column prop="father" label="检验项目" width="160">
                        <template slot-scope="scope">
                          <el-input v-if="scope.row.children" style="width:90%" :disabled="dataForm.id!=null" v-model="scope.row.father" placeholder="请输入检验项目"></el-input>
                          <el-input v-if="scope.row.children" style="width:80%" :disabled="dataForm.id!=null" v-model="scope.row.father" placeholder="请输入检验项目"></el-input>
                        </template>
                      </el-table-column>
                      <el-table-column prop="name" label="项目" width="160">
@@ -170,11 +173,27 @@
                        <template slot-scope="scope">
                          <div v-if="!scope.row.children">
                          <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="请先选择设备!" placement="top-start">
                              <el-select style="width:100%" allow-create filterable default-first-option
                            <!-- <el-autocomplete clearable
                            :disabled="scope.row.deviceId == null ||  (dataForm.id!=null&&resultVal!=null)"
                            @blur="changeState(scope.row,scope.$index)"
                            v-model="scope.row.testValueList[index]"
                            :fetch-suggestions="querySearch"
                            placeholder="请输入或选择检测值" >
                            <i style="line-height: normal;padding: 10px 7px;" class="el-icon-arrow-down" slot="suffix"></i>
                            <template slot-scope="{ item }">
                                <div>{{ item.value }}</div>
                            </template>
                            </el-autocomplete> -->
                              <el-select style="width:100%" filterable
                              :disabled="scope.row.deviceId == null ||  (dataForm.id!=null&&resultVal!=null)"
                              v-model="scope.row.testValueList[index]"
                              placeholder="请输入或选择检测值"
                              @change="changeState(scope.row,scope.$index)">
                              allow-create
                              default-first-option
                              @change="changeState(scope.row,scope.$index)"
                              @blur="selectBlur"
                              >
                                <el-option label="是" value="是"/>
                                <el-option label="否" value="否"/>
                              </el-select>
@@ -478,7 +497,7 @@
        let val = sessionStorage.getItem("raw-resultVal-"+this.dataForm.id)
        val == undefined ? null : this.resultVal=val
      }
      this.init()
      this.init(this.dataForm.id)
      this.getDeviceList()
    },
    watch:{
@@ -489,6 +508,10 @@
      },
    },
    methods:{
      querySearch(queryString, cb){
        // 调用 callback 返回建议列表的数据
        cb([{value:'是'},{value:'否'}]);
      },
      tabsClick(tab,even){
        if(tab.index == 1){
          if(this.dataForm.rawInsNo==null){
@@ -549,7 +572,7 @@
        this.updateDevice(this.row,this.proIndex)
        }else{
          this.$message({
          message: '未识别出二位码计量器具信息!',
          message: '二维码未识别出计量器具信息!',
          type: 'warning'
        });
        }
@@ -564,7 +587,7 @@
      getResultInfo(data){
        if(!data.includes("part_no")){
          this.$message({
          message: '未识别出二维码零件信息!',
          message: '二维码未识别出零件信息!',
          type: 'warning'
        });
        }
@@ -575,7 +598,7 @@
          this.showPart = true
        }else{
          this.$message({
          message: '未识别出二维码零件信息!',
          message: '二维码未识别出零件信息!',
          type: 'warning'
        });
        }
@@ -602,8 +625,8 @@
          this.dataForm.message = param.message
          this.dataForm.projectName = param.projectName
          this.projectList = param.rawInsProducts == null ? [] : param.rawInsProducts
          param.rawInsProducts.forEach(o=>{
            this.clickAddLine(o)
          param.rawInsProducts.forEach((o,index)=>{
            this.clickAddLine(o,index)
          })
        }
@@ -677,7 +700,7 @@
        this.empiricalValueAdd = this.empiricalValueAdd + 1;
      },
      // 添加行
      clickAddLine(row) {
      clickAddLine(row,index) {
        let ele = {
            fId: Math.random(),
            father: null,
@@ -685,6 +708,8 @@
            children:[]
        }
        if(row){
          ele.isIndex = true;
          ele.parentIndex = index + 1;
          ele.father = row.father?row.father:null
          row.children.forEach(item => {
              ele.children.push({
@@ -709,6 +734,8 @@
            })
            this.list.push(ele)
        }else{
          ele.isIndex = true;
          ele.parentIndex = this.list.length + 1;
          ele.children.push({
              deviceId: null,
              deviceName: null,
@@ -743,7 +770,7 @@
                              }
                              updateRawInsProduct(obj).then(res=>{
                                if(res.data.code === 0){
                                  this.init()
                                  this.init(this.dataForm.id)
                                }
                              })
                          }
@@ -767,9 +794,9 @@
          }
        }
      },
      init(){
        if(this.dataForm.id){
          getObj(this.dataForm.id).then(res=>{
      init(id){
        if(id){
          getObj(id).then(res=>{
            let data = res.data.data
            this.dataForm.rawInsNo = data.rawInsNo
            this.dataForm.name = data.name
@@ -784,17 +811,19 @@
            this.dataForm.createUser = data.createUser
            let userNameList = []
            this.list = []
            data.children.forEach(item => {
            data.children.forEach((item,index) => {
              if (item.children) {
                    let ele = {
                      iid: null,
                      father: null,
                      children: []
                    }
                    ele.isIndex = true;
                    ele.parentIndex = index + 1;
                    ele.iid = Math.random()
                    ele.father = item.rpFather
                    if (item.children != undefined) {
                    item.children.forEach(obj => {
                    item.children.forEach((obj) => {
                      let arr= []
                      if(obj.userName){
                        userNameList.push(obj.userName)
@@ -853,21 +882,26 @@
          this.conclusionTable = []
        }
      },
      selectBlur(e){
        console.log(e,e.target.tabIndex);
        console.log(e.target.value);
      },
      changeState(row, index) {
          if(row){
            let isTrue = true
            for(var i=0;i<row.testValueList.length;i++){
              let val = row.testValueList[i]
              let reg = /(^-?[0-9]{1,6}$)|(^-?[0-9]{1,6}[\.]{1}[0-9]{1,3}$)/
              if(!reg.test(val) && !['是','否'].includes(val)){
                this.$message.error("请输入数字或选择是否")
                row.testValueList[i] = null
                isTrue = false
              }
            }
            if(!isTrue){
              return
            }
        this.$nextTick(()=>{
            if(row){
                let isTrue = true
                for(var i=0;i<row.testValueList.length;i++){
                let val = row.testValueList[i]
                let reg = /(^-?[0-9]{1,6}$)|(^-?[0-9]{1,6}[\.]{1}[0-9]{1,3}$)/
                if(!reg.test(val) && !['是','否'].includes(val)){
                    row.testValueList[i] = null
                    this.$message.error("请输入数字或选择是否")
                    isTrue = false
                }
                }
                if(!isTrue){
                return
                }
          }
          if (row.rpId != null && row.rpId != '') {
            let val = row.testValueList.join(",")
@@ -886,9 +920,10 @@
                } else {
                    this.$message.error("更新失败")
                }
                this.init()
                this.init(this.dataForm.id)
            })
          }
        })
      },
      // 删除子项目
      delChildren(row,index,isParent) {
@@ -904,7 +939,11 @@
          let childrenIndex = this.list[i].children.findIndex(el =>{
            return el.iid == row.iid
          })
          this.list[i].children.splice(childrenIndex,1)
          if(this.list[i].children.length<2){
            this.list.splice(i,1)
          }else{
              this.list[i].children.splice(childrenIndex,1)
          }
        }
      },
      //添加子项目
@@ -926,6 +965,7 @@
        row.children.push(obj)
      },
      save(){
        const _than = this
        let data = this.dataForm
        this.list.forEach(item=>{
          item.children.forEach(c=>{
@@ -935,10 +975,13 @@
        data.rawInsProducts = this.list
        addRawInspects(data).then(res=>{
            this.$message.success("保存成功")
            this.$router.go(-1)
            // this.$router.go(-1)
        }).catch(error=>{
          this.$message.error(error)
        })
        _than.$nextTick(()=>{
            _than.init(Number(res.data.msg))
        })
      },
      getDeviceList(){
        selectDevice().then(res=>{