王震
2023-09-15 225ff308a9a06cca35573940c051252835e1276f
Merge remote-tracking branch 'origin/master'
已修改6个文件
350 ■■■■■ 文件已修改
src/components/view/finishedProductInspectionAdd.vue 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/finishedProductInspectionUp.vue 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/processInspection.vue 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/processInspectionUpdate.vue 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/rawInsDetail.vue 69 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/standard.vue 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/finishedProductInspectionAdd.vue
@@ -120,9 +120,13 @@
                </el-table-column>
                <el-table-column prop="dname" label="试验设备" min-width="100">
                    <template slot-scope="scope">
                        <el-button type="text" @click="clickTableSelect(scope)">{{
                        <el-button v-if="!scope.row.isSelectDevice" type="text" @click="clickTableSelect(scope)">{{
                            scope.row.dname == null ? "请选择" : scope.row.dname
                        }}</el-button>
                        <el-select style="width: 100%;" @change="clickNodeSure(scope.row)" v-model="filterText" placeholder="请选择">
                            <el-option v-for="item in materialOptions" :key="item.id" :label="item.device" :value="item.id">
                            </el-option>
                        </el-select>
                    </template>
                </el-table-column>
                <el-table-column label="结论">
@@ -200,7 +204,8 @@
                qualityTraceability: null,
                quantity: null,
                specificationsModel: null,
                unit: null
                unit: null,
                technologyId: null
            },
            InspectioniD: null,
            addInspectionform: [
@@ -312,17 +317,18 @@
                }
            }).then(res => {
                this.materialOptions = res.data;
                this.filterText = row.did
            });
        },
        // 点击表格选择触发
        clickTableSelect(scope) {
            this.centerDialogVisible = true;
            scope.row.isSelectDevice = true
            this.clickSelectDevice.index = scope.$index;
            this.clickSelectDevice.rpId = scope.row.id;
            this.getOptions(scope.row);
        },
        // 点击树里面的确定
        clickNodeSure() {
        clickNodeSure(row) {
            let select = this.materialOptions.filter(item => {
                return item.id === this.filterText
            })[0]
@@ -346,28 +352,32 @@
                    .then(res => {
                        this.getTableData()
                        this.centerDialogVisible = false;
                        row.isSelectDevice=false
                    });
            }
        },
        changeState(row, index) {
            if (row.did != null && row.did != '') {
                let val = row.empiricalValueAddss.filter(item => {
                    return item != '' && item != null
                })
                let eq = val.filter(item => {
                    return /^[^><=]/.test(item)
                })
                if (eq.length > 0) {
                    this.$message({
                        message: "检测值[" + eq + "]格式首位应包含>,<或者=",
                        type: 'warning'
                    });
                    return
                }
                // let val = row.empiricalValueAddss.filter(item => {
                //     return item != '' && item != null
                // })
                // let eq = val.filter(item => {
                //     return /^[^><=]/.test(item)
                // })
                // if (eq.length > 0) {
                //     this.$message({
                //         message: "检测值[" + eq + "]格式首位应包含>,<或者=",
                //         type: 'warning'
                //     });
                //     return
                // }
                let str = ""
                row.empiricalValueAddss.forEach(e => {
                    str += e + ","
                })
                if (str.slice(0, -1) === '' || str.slice(0, -1) === null || str.slice(0, -1) === undefined) {
                    return
                }
                this.$axios.post(this.$api.url.inspectionItemlose_focus_update, {
                    deviceId: row.did,
                    inspectionItemId: row.id,
@@ -489,6 +499,7 @@
                            c.empiricalValueAddss.push("")
                        }
                        uName.push(c['username'])
                        c.isSelectDevice = false
                        arr.push(c)
                    })
                })
src/components/view/finishedProductInspectionUp.vue
@@ -121,9 +121,13 @@
                </el-table-column>
                <el-table-column prop="dname" label="试验设备" min-width="100">
                    <template slot-scope="scope">
                        <el-button type="text" @click="clickTableSelect(scope)">{{
                        <el-button v-if="!scope.row.isSelectDevice" type="text" @click="clickTableSelect(scope)">{{
                            scope.row.dname == null ? "请选择" : scope.row.dname
                        }}</el-button>
                        <el-select v-if="scope.row.isSelectDevice" style="width: 100%;" @change="clickNodeSure(scope.row)"  v-model="filterText" placeholder="请选择">
                            <el-option v-for="item in materialOptions" :key="item.id" :label="item.device" :value="item.id">
                            </el-option>
                        </el-select>
                    </template>
                </el-table-column>
                <el-table-column label="结论">
@@ -295,6 +299,10 @@
        // this.getOptions();
    },
    methods: {
        // blurNode(row){
        //     console.log(11);
        //     row.isSelectDevice=false
        // },
        escalation() {
            let arr = this.inspectionItems
            let bl = false
@@ -388,17 +396,19 @@
                }
            }).then(res => {
                this.materialOptions = res.data;
                this.filterText = row.did
            });
        },
        // 点击表格选择触发
        clickTableSelect(scope) {
            this.centerDialogVisible = true;
            scope.row.isSelectDevice = true
            // this.centerDialogVisible = true;
            this.clickSelectDevice.index = scope.$index;
            this.clickSelectDevice.rpId = scope.row.id;
            this.getOptions(scope.row);
        },
        // 点击树里面的确定
        clickNodeSure() {
        clickNodeSure(row) {
            let select = this.materialOptions.filter(item => {
                return item.id === this.filterText
            })[0]
@@ -422,28 +432,32 @@
                    .then(res => {
                        this.getTableData()
                        this.centerDialogVisible = false;
                        row.isSelectDevice=false
                    });
            }
        },
        changeState(row, index) {
            if (row.did != null && row.did != '') {
                let val = row.empiricalValueAddss.filter(item => {
                    return item != '' && item != null
                })
                let eq = val.filter(item => {
                    return /^[^><=]/.test(item)
                })
                if (eq.length > 0) {
                    this.$message({
                        message: "检测值[" + eq + "]格式首位应包含>,<或者=",
                        type: 'warning'
                    });
                    return
                }
                // let val = row.empiricalValueAddss.filter(item => {
                //     return item != '' && item != null
                // })
                // let eq = val.filter(item => {
                //     return /^[^><=]/.test(item)
                // })
                // if (eq.length > 0) {
                //     this.$message({
                //         message: "检测值[" + eq + "]格式首位应包含>,<或者=",
                //         type: 'warning'
                //     });
                //     return
                // }
                let str = ""
                row.empiricalValueAddss.forEach(e => {
                    str += e + ","
                })
                if (str.slice(0, -1) === '' || str.slice(0, -1) === null || str.slice(0, -1) === undefined) {
                    return
                }
                this.$axios.post(this.$api.url.inspectionItemlose_focus_update, {
                    deviceId: row.did,
                    inspectionItemId: row.id,
@@ -566,6 +580,7 @@
                            c.empiricalValueAddss.push("")
                        }
                        uName.push(c['username'])
                        c.isSelectDevice = false
                        arr.push(c)
                    })
                })
src/components/view/processInspection.vue
@@ -80,8 +80,8 @@
          <el-col :span="12">新增过程检验单</el-col>
          <el-col :span="12" style="text-align: right;">
            <!-- 点击返回,当前页面值为false -->
            <el-button type="primary" size="mini" style="background: #004EA2; "
              icon="el-icon-circle-plus-outline">新增</el-button>
            <!-- <el-button type="primary" size="mini" style="background: #004EA2; "
              icon="el-icon-circle-plus-outline">新增</el-button> -->
            <el-button @click="combackIndex" type="primary" size="mini" icon="el-icon-back"
              style="background: #004EA2; ">返回</el-button>
          </el-col>
@@ -192,9 +192,14 @@
          </el-table-column>
          <el-table-column prop="dname" label="试验设备" min-width="100">
            <template slot-scope="scope">
              <el-button type="text" @click="clickTableSelect(scope)">{{
              <el-button v-if="!scope.row.isSelectDevice" type="text" @click="clickTableSelect(scope)">{{
                scope.row.dname == null ? "请选择" : scope.row.dname
              }}</el-button>
              <el-select v-if="scope.row.isSelectDevice" style="width: 100%;" @change="clickNodeSure(scope.row)"
                v-model="filterText" placeholder="请选择">
                <el-option v-for="item in materialOptions" :key="item.id" :label="item.device" :value="item.id">
                </el-option>
              </el-select>
            </template>
          </el-table-column>
          <el-table-column label="结论">
@@ -335,9 +340,9 @@
    };
  },
  watch: {
    filterText(val) {
      this.$refs.tree.filter(val);
    }
    // filterText(val) {
    //   this.$refs.tree.filter(val);
    // }
  },
  mounted() {
    // this.getTableData()
@@ -388,14 +393,16 @@
        }
      }).then(res => {
        this.materialOptions = res.data;
        this.filterText = row.did
      });
    },
    // 点击表格选择触发
    clickTableSelect(scope) {
      this.centerDialogVisible = true;
      // this.centerDialogVisible = true;
      scope.row.isSelectDevice = true
      this.clickSelectDevice.index = scope.$index;
      this.clickSelectDevice.rpId = scope.row.id;
      this.options(scope.row)
      this.getOptions(scope.row)
    },
    // 点击树里面的确定
    clickNodeSure() {
@@ -427,23 +434,26 @@
    },
    changeState(row, index) {
      if (row.did != null && row.did != '') {
        let val = row.empiricalValueAddss.filter(item => {
          return item != '' && item != null
        })
        let eq = val.filter(item => {
          return /^[^><=]/.test(item)
        })
        if (eq.length > 0) {
          this.$message({
            message: "检测值[" + eq + "]格式首位应包含>,<或者=",
            type: 'warning'
          });
          return
        }
        // let val = row.empiricalValueAddss.filter(item => {
        //   return item != '' && item != null
        // })
        // let eq = val.filter(item => {
        //   return /^[^><=]/.test(item)
        // })
        // if (eq.length > 0) {
        //   this.$message({
        //     message: "检测值[" + eq + "]格式首位应包含>,<或者=",
        //     type: 'warning'
        //   });
        //   return
        // }
        let str = ""
        row.empiricalValueAddss.forEach(e => {
          str += e + ","
        })
        if (str.slice(0, -1) === '' || str.slice(0, -1) === null || str.slice(0, -1) === undefined) {
          return
        }
        this.$axios.post(this.$api.url.inspectionItemlose_focus_update, {
          deviceId: row.did,
          inspectionItemId: row.id,
@@ -519,10 +529,10 @@
      this.optionTechnology = working.children
    },
    addTestProjevt() {
      this.isAddProject = true
      let val = JSON.parse(JSON.stringify(this.processInspectVo))
      val.techname = this.processInspectVo.techname.split("-")[1]
      val.technologyId = this.processInspectVo.techname.split("-")[0]
      this.processInspectVo.technologyId=val.technologyId
      this.$axios.post(this.$api.url.processInspectAddProcess, {
        material: val.material,
        materialCode: val.materialCode,
@@ -543,6 +553,7 @@
          });
          return
        }
        this.isAddProject = true
        this.detailId = res.data
        this.inspectionResultForm[0].id = val.materialCode
        this.inspectionResultForm[0].name = val.material
@@ -572,6 +583,7 @@
              c.empiricalValueAddss.push("")
            }
            uName.push(c['username'])
            c.isSelectDevice=false
            arr.push(c)
          })
        })
@@ -768,4 +780,5 @@
.inspectionProject_span .el-button {
  float: right;
  font-size: 13px !important;
}</style>
}
</style>
src/components/view/processInspectionUpdate.vue
@@ -123,9 +123,14 @@
                </el-table-column>
                <el-table-column prop="dname" label="试验设备" min-width="100">
                    <template slot-scope="scope">
                        <el-button type="text" @click="clickTableSelect(scope)">{{
                        <el-button v-if="!scope.row.isSelectDevice" type="text" @click="clickTableSelect(scope)">{{
                            scope.row.dname == null ? "请选择" : scope.row.dname
                        }}</el-button>
                        <el-select v-if="scope.row.isSelectDevice" style="width: 100%;" onchange="clickNodeSure(scope.row)"
                             v-model="filterText" placeholder="请选择">
                            <el-option v-for="item in materialOptions" :key="item.id" :label="item.device" :value="item.id">
                            </el-option>
                        </el-select>
                    </template>
                </el-table-column>
                <el-table-column label="结论">
@@ -166,10 +171,10 @@
        </div>
        <el-dialog title="请选择设备" :visible.sync="centerDialogVisible" width="20%">
            <div class="div_device_dialog">
                <el-select style="width: 100%;" @change="clickNodeSure()" v-model="filterText" placeholder="请选择">
                <!-- <el-select style="width: 100%;" @change="clickNodeSure()" v-model="filterText" placeholder="请选择">
                    <el-option v-for="item in materialOptions" :key="item.id" :label="item.device" :value="item.id">
                    </el-option>
                </el-select>
                </el-select> -->
            </div>
            <!-- <span slot="footer" class="dialog-footer">
                <el-button @click="centerDialogVisible = false">取 消</el-button>
@@ -297,6 +302,10 @@
        this.getTableData()
    },
    methods: {
        // blurNode(row){
        //     console.log(1111);
        //     row.isSelectDevice=false
        // },
        escalation() {
            let arr = this.inspectionItems
            let bl = false
@@ -358,6 +367,7 @@
        },
        // 获取设备树内容
        getOptions(row) {
            this.filterText=0
            this.$axios.get(this.$api.url.inspectionItemChooseDev, {
                params: {
                    father: row.father,
@@ -366,6 +376,7 @@
                }
            }).then(res => {
                this.materialOptions = res.data;
                this.filterText = row.did
            });
        },
        //返回
@@ -374,13 +385,15 @@
        },
        // 点击表格选择触发
        clickTableSelect(scope) {
            this.centerDialogVisible = true;
            // this.centerDialogVisible = true;
            scope.row.isSelectDevice = true
            this.clickSelectDevice.index = scope.$index;
            this.clickSelectDevice.rpId = scope.row.id;
            this.getOptions(scope.row);
        },
        // 点击树里面的确定
        clickNodeSure() {
        clickNodeSure(row) {
            console.log(row);
            let select = this.materialOptions.filter(item => {
                return item.id === this.filterText
            })[0]
@@ -402,6 +415,9 @@
                        devId: this.nodeData.id
                    })
                    .then(res => {
                        row.isSelectDevice = false
                        console.log("row",row);
                        this.filterText=0
                        this.getTableData()
                        this.centerDialogVisible = false;
                    });
@@ -409,23 +425,26 @@
        },
        changeState(row, index) {
            if (row.did != null && row.did != '') {
                let val = row.empiricalValueAddss.filter(item => {
                    return item != '' && item != null
                })
                let eq = val.filter(item => {
                    return /^[^><=]/.test(item)
                })
                if (eq.length > 0) {
                    this.$message({
                        message: "检测值[" + eq + "]格式首位应包含>,<或者=",
                        type: 'warning'
                    });
                    return
                }
                // let val = row.empiricalValueAddss.filter(item => {
                //     return item != '' && item != null
                // })
                // let eq = val.filter(item => {
                //     return /^[^><=]/.test(item)
                // })
                // if (eq.length > 0) {
                //     this.$message({
                //         message: "检测值[" + eq + "]格式首位应包含>,<或者=",
                //         type: 'warning'
                //     });
                //     return
                // }
                let str = ""
                row.empiricalValueAddss.forEach(e => {
                    str += e + ","
                })
                if (str.slice(0, -1) === '' || str.slice(0, -1) === null || str.slice(0, -1) === undefined) {
                    return
                }
                this.$axios.post(this.$api.url.inspectionItemlose_focus_update, {
                    deviceId: row.did,
                    inspectionItemId: row.id,
@@ -559,6 +578,8 @@
                            c.empiricalValueAddss.push("")
                        }
                        uName.push(c['username'])
                        c.isSelectDevice = false
                        this.filterText=0
                        arr.push(c)
                    })
                })
src/components/view/rawInsDetail.vue
@@ -194,6 +194,7 @@
          <template slot-scope="scope">
            <el-input
              :disabled="detailId != null"
              @blur="assertTest(scope.row)"
              v-model="scope.row.required"
              placeholder="请输入标准值"
            ></el-input>
@@ -202,6 +203,7 @@
        <el-table-column prop="internal" label="内控值" min-width="150">
          <template slot-scope="scope">
            <el-input
              @blur="assertTest(scope.row)"
              :disabled="detailId != null"
              v-model="scope.row.internal"
              placeholder="请输入内控值"
@@ -424,6 +426,23 @@
    }
  },
  methods: {
    assertTest(row){
      let fuArr=['>', '<', '=']
      if(!fuArr.includes(row.required[0])){
        this.$message({
                    message: "标准值["+row.required+"]格式首位应包含>,<或者=",
                    type: 'warning'
                });
                return
      }
      if(!fuArr.includes(row.internal[0])){
        this.$message({
                    message: "内控值["+row.internal+"]格式首位应包含>,<或者=",
                    type: 'warning'
                });
                return
      }
    },
    // 设备树过滤搜索
    filterNode(value, data) {
      if (!value) return true;
@@ -456,37 +475,49 @@
    },
    // 新增检验单
    async addNewRawInspect() {
      //TODO:
      console.log(this.projectTable);
      if(this.projectTable.length>0){
        let filterTable= this.projectTable.filter(item=>{
        return item.required===''||item.internal===''||
        item.required===null||item.internal===null||item.name===''
        })
        if(filterTable.length>0) {
          this.$message({
                    message: "项目名称,标准值和内控值不能为空!",
                    type: 'warning'
                });
          return
        }
      }
      this.projectTable.forEach(i => {
        // 将列表转换为字符串
        i.testValue = i.testValueList.join(",");
      });
      this.detailInfo.rawInsProducts = this.projectTable;
      const res = await this.$axios.post(
      this.$axios.post(
        this.$api.url.addRawInspects,
        { ...this.detailInfo },
        { headers: { "Content-Type": "application/json" } }
      );
      this.detailId = res.data;
      this.getDetailInfo();
      this.$message.success(res.message);
      this.goBack();
      ).then(res=>{
        console.log(res);
        if(res.code=="201"){
          this.$message({
                    message: res.message,
                    type: 'warning'
                });
         return
        }else{
          // this.detailId = res.data;
          // this.getDetailInfo();
          // // this.$message.success(res.message);
          // this.goBack();
        }
      });
    },
    // 修改项目的检测值改变结论
    async changeState(row, index) {
      let val=row.testValueList.filter(item=>{
        return item!=''&&item!=null
      })
      let eq=val.filter(item=>{
        return /^[^><=]/.test(item)
      })
      if(eq.length>0){
        this.$message({
                    message: "输入值["+eq+"]格式首位应包含>,<或者=",
                    type: 'warning'
                });
      return
      }
      if (this.detailId !== null) {
        const res = await this.$axios.post(this.$api.url.updaterawInsProduct, {
          DevId: row.deviceId,
src/components/view/standard.vue
@@ -13,26 +13,32 @@
    </div>
    <div class="thing">
      <div class="left">
        <el-row :gutter="5" >
          <el-col :span="21">
            <el-input v-model="search" suffix-icon="el-icon-search" placeholder="请输入搜索内容" size="small" clearable></el-input>
          </el-col>
          <el-col :span="2">
            <el-button size="mini" icon="el-icon-plus" @click="bomLeftAdd=true"></el-button>
          </el-col>
        </el-row>
        <el-row style="margin-top: 16px;">
          <el-tree :data="list" ref="tree" default-expand-all :props="{ children: 'children', label: 'name' }"
          node-key="id" :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current>
          <div class="custom-tree-node" slot-scope="{ node, data }">
            <span><i :class="`node_i ${data.code != '[5]' ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i>
              {{ data.code }}{{ data.name }}</span>
            <el-button type="text" size="mini" @click.stop="remove(node, data)">
              <i class="el-icon-delete"></i>
            </el-button>
          </div>
        </el-tree>
        </el-row>
        <div class="left_search">
          <el-row :gutter="5">
            <el-col :span="21">
              <el-input v-model="search" suffix-icon="el-icon-search" placeholder="请输入搜索内容" size="small" clearable></el-input>
            </el-col>
            <el-col :span="2">
              <el-button size="mini" icon="el-icon-plus" @click="bomLeftAdd=true"></el-button>
            </el-col>
          </el-row>
        </div>
        <div class="left_tree">
          <el-row>
            <el-col :span="24">
              <el-tree :data="list" ref="tree" default-expand-all :props="{ children: 'children', label: 'name' }"
              node-key="id" :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current>
              <div class="custom-tree-node" slot-scope="{ node, data }">
                <span><i :class="`node_i ${data.code != '[5]' ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i>
                  {{ data.code }}{{ data.name }}</span>
                <el-button type="text" size="mini" @click.stop="remove(node, data)">
                  <i class="el-icon-delete"></i>
                </el-button>
              </div>
            </el-tree>
            </el-col>
          </el-row>
        </div>
      </div>
      <div class="right">
        <div class="choose">
@@ -254,6 +260,11 @@
                  <template slot-scope="scope">
                      <el-input size="mini" v-model="scope.row.num"
                      placeholder="请输入"></el-input>
                  </template>
                </el-table-column>
                <el-table-column label="操作" width="60">
                  <template slot-scope="scope">
                      <el-button type="text" @click="removeMTableRow(scope.$index)">删除</el-button>
                  </template>
                </el-table-column>
              </el-table>
@@ -671,6 +682,10 @@
    getChildData(data){
      this.childIds = data;
    },
    //物料清单-新增bom-表格删除行
    removeMTableRow(index){
      this.materialForm.tableList.splice(index,1);
    },
    //删除按钮
    deleteDataBtn(){
      let ids;
@@ -742,7 +757,7 @@
                deviceGroup: this.technologyForm.deviceGroup,
                father: this.technologyForm.tefather,
                name: this.technologyForm.tename,
                productionQuota: Number.parseInt(this.technologyForm.productionQuota),
                productionQuota: this.technologyForm.productionQuota,
              }
              this.submitBomAdd(this.$api.url.addTechnology,obj);
          }else if(type == 1){
@@ -785,7 +800,6 @@
        this.selectAll();
        this.$message.success(res.message);
      }).catch(error=>{
        this.$message.error(error.message);
      })
    },
    //清空新增bom表单
@@ -1300,16 +1314,29 @@
  height: calc(100% - 48px);
  background-color: #fff;
  display: flex;
}
.thing .left {
  width: 295px;
  height: calc(100% - 32px);
  overflow-y: auto;
  border-right: 3px solid rgb(245, 247, 251);
  padding: 16px;
}
.thing .left .left_search{
  width:95%;
  height: 32px;
  line-height: 32px;
  margin-bottom: 5px;
}
.thing .left .left_tree{
  width: 100%;
  height: calc(100% - 32px);
  overflow-y: scroll;
}
.thing .left .custom-tree-node span {
  font-size: 14px;
}