XiaoRuby
2023-09-24 2573c1c123a8464c312d27e380ac16d7e0ac2f11
src/components/view/processInspectionUpdate.vue
@@ -24,29 +24,31 @@
                     <el-form-item label="产品名称:">
                        <el-select style="width: 210px;" size="small" disabled @change="selectSample"
                           v-model="processInspectVo.material" placeholder="请选择产品">
                           <el-option v-for="item in optionsSamplename" :key="item.value" :label="item.name" :value="item.name">
                           <el-option v-for="item in optionsSamplename" :key="item.value" :label="item.name"
                              :value="item.name">
                           </el-option>
                        </el-select>
                     </el-form-item>
                  </el-col>
                  <el-col :span="7">
                     <el-form-item label="产品编码:">
                        <el-input style="width: 210px;" size="small" disabled v-model="processInspectVo.materialCode"
                           placeholder="请输入产品编码" />
                        <el-input style="width: 210px;" size="small" disabled
                           v-model="processInspectVo.materialCode" placeholder="请输入产品编码" />
                     </el-form-item>
                  </el-col>
               </el-row>
               <el-row :gutter="230">
                  <el-col :span="7">
                     <el-form-item label="规格型号:">
                        <el-input style="width: 210px;" size="small" disabled v-model="processInspectVo.specificationsModel"
                           placeholder="请输入规格型号" />
                        <el-input style="width: 210px;" size="small" disabled
                           v-model="processInspectVo.specificationsModel" placeholder="请输入规格型号" />
                     </el-form-item>
                  </el-col>
                  <el-col :span="7">
                     <el-form-item label="工序名称:">
                        <el-select @change="changeOptionSoptionSprocesses" disabled v-model="processInspectVo.techfather"
                           placeholder="请选择" style="width: 210px;" size="small">
                        <el-select @change="changeOptionSoptionSprocesses" disabled
                           v-model="processInspectVo.techfather" placeholder="请选择" style="width: 210px;"
                           size="small">
                           <el-option v-for="item in optionSoptionSprocesses" :key="item.name" :label="item.name"
                              :value="item.name">
                           </el-option>
@@ -55,8 +57,8 @@
                  </el-col>
                  <el-col :span="7">
                     <el-form-item label="工艺名称:">
                        <el-select v-model="processInspectVo.techname" disabled placeholder="请选择" style="width: 210px;"
                           size="small">
                        <el-select v-model="processInspectVo.techname" disabled placeholder="请选择"
                           style="width: 210px;" size="small">
                           <el-option v-for="item in optionTechnology" :key="item.id" :label="item.name"
                              :value="item.id + '-' + item.name">
                           </el-option>
@@ -89,7 +91,8 @@
            <el-col :span="12" class="inspectionProject_span">检验项目</el-col>
            <el-col v-if="!isUpBtn" :span="12" class="inspectionProject_span">
               <el-button size="mini" @click="clickDeleteInspectionColumn()">删除检验值列</el-button>
               <el-button style="margin-right: 30px;" size="mini" @click="clickAddInspectionColumn()">添加检验值列</el-button>
               <el-button style="margin-right: 30px;" size="mini"
                  @click="clickAddInspectionColumn()">添加检验值列</el-button>
               <!-- <el-button
              size="mini"
              style="margin-right: 30px;"
@@ -120,7 +123,7 @@
               <template slot-scope="scope">
                  <el-col>
                     <el-button type="text" @click="clickTableSelect(scope)">
                        {{scope.row.dname == null ? "请选择" : scope.row.dname}}
                        {{ scope.row.dname == null ? "请选择" : scope.row.dname }}
                     </el-button>
                  </el-col>
               </template>
@@ -129,7 +132,7 @@
               <template slot-scope="scope">
                  <span style="color: #34BD66;" v-if="scope.row.result === 1">合格</span>
                  <span style="color: #E84738;" v-else-if="scope.row.result === 0">不合格</span>
                  <span v-show="scope.row.result === null">{{null}}</span>
                  <span v-show="scope.row.result === null">{{ null }}</span>
               </template>
            </el-table-column>
            <!-- <el-table-column v-if="detailId == null" label="操作" width="100">
@@ -165,10 +168,11 @@
         <div class="div_device_dialog">
            <el-input placeholder="输入关键字进行过滤" v-model="filterText" style="margin-bottom: 6px;">
            </el-input>
            <el-tree class="filter-tree" :data="materialOptions" :props="defaultProps" default-expand-all highlight-current
               @node-click="nodeClick" :filter-node-method="filterNode" ref="tree">
            <el-tree class="filter-tree" :data="materialOptions" :props="defaultProps" default-expand-all
               highlight-current @node-click="nodeClick" :filter-node-method="filterNode" ref="tree">
               <div class="custom-tree-node" slot-scope="{ data }">
                  <span><i :class="`node_i ${data.children ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i>{{ data.name }}</span>
                  <span><i :class="`node_i ${data.children ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i>{{
                     data.name }}</span>
               </div>
            </el-tree>
         </div>
@@ -181,142 +185,177 @@
</template>
<script>
   export default {
      props: ['rowInfo'],
      data() {
         return {
            isUpBtn: false,
            showUp: false,
            isAddProject: false,
            detailId: 0,
            row: {},
            search: {
               countSize: 10,
               pageSize: 1,
               result: "", // 检测状态
               name: "", // 产品名称
               techfather: "" // 工序
            },
            optionsSamplename: [],
            inspectionTable: [],
            tableColumn: [],
            optionSoptionSprocesses: [],
            optionTechnology: [],
            inspectionTableTotal: "",
            treeProject: [],
            // 添加列
            empiricalValueAdd: 1,
            // 编辑时存储最长的列数字,做删除判断
            empiricalValueAddMaxNumber: 0,
            showAddPage: false,
            processInspectVo: {
               material: null,
               materialCode: null,
               orderNumber: "",
               quantity: null,
               specificationsModel: null,
               techfather: null,
               techname: null,
               technologyId: null,
               unit: null
            },
            InspectioniD: null,
            addInspectionform: [{
               number: "",
               username: "",
               projectname: "",
               tracenumber: "",
               code: "",
               class: "",
               specificationmodel: "",
               unit: "",
               quantity: "",
               group: "",
               worker: "",
               machine: ""
            }],
            inspectionItems: [], // 新增检验项目表格
            inspectionResultForm: [{
               id: "",
               name: "",
               inspecter: "",
               conclusion: "",
               operation: ""
            }],
            options: [],
            value: "",
            rowList: [],
            spanArr: [],
            position: 0,
            // 设备选择树显示
            centerDialogVisible: false,
            filterText: "",
            materialOptions: [],
            defaultProps: {
               // 设备树数据设置
               children: "children",
               label: "name"
            },
            nodeData: {
               id: 0,
               name: null
            }, // node点击保存当前点击数据
            clickSelectDevice: {
               index: null, // 点击选择存储当前行索引
               rpId: null // 点击选择存储当前行项目Id
            }
         };
      },
      watch: {
         // filterText(val) {
         //     this.$refs.tree.filter(val);
         // }
      },
      created() {
         if (this.rowInfo.result != null && this.rowInfo.result != '') {
            this.isUpBtn = true
         }
         this.processInspectVo.orderNumber = this.rowInfo.order_number
         this.processInspectVo.material = this.rowInfo.material
         this.processInspectVo.materialCode = this.rowInfo.material_code
         this.processInspectVo.specificationsModel = this.rowInfo.specifications_model
         this.processInspectVo.techfather = this.rowInfo.techfather
         this.processInspectVo.techname = this.rowInfo.techname
         this.processInspectVo.unit = this.rowInfo.unit
         this.processInspectVo.quantity = this.rowInfo.quantity
         this.detailId = this.rowInfo.id
         this.inspectionResultForm[0].id = this.rowInfo.material_code
         this.inspectionResultForm[0].name = this.rowInfo.material
         this.inspectionResultForm[0].conclusion = this.rowInfo.result
         // console.log(this.detailId);
      },
      mounted() {
         this.getTableData()
      },
      methods: {
         blurNode(scope) {
            // console.log(11);
            // this.$set(this.inspectionItems[scope.$index],'isSelectDevice',false)
export default {
   props: ['rowInfo'],
   data() {
      return {
         isUpBtn: false,
         showUp: false,
         isAddProject: false,
         detailId: 0,
         row: {},
         search: {
            countSize: 10,
            pageSize: 1,
            result: "", // 检测状态
            name: "", // 产品名称
            techfather: "" // 工序
         },
         escalation() {
            let arr = this.inspectionItems
            let bl = false
            for (let index = 0; index < arr.length; index++) {
               const element = arr[index];
               if (element.dname != null && element.empiricalValueAddss[0] != '') {
                  bl = true
                  break
               } else {
                  bl = false
               }
         optionsSamplename: [],
         inspectionTable: [],
         tableColumn: [],
         optionSoptionSprocesses: [],
         optionTechnology: [],
         inspectionTableTotal: "",
         treeProject: [],
         // 添加列
         empiricalValueAdd: 1,
         // 编辑时存储最长的列数字,做删除判断
         empiricalValueAddMaxNumber: 0,
         showAddPage: false,
         processInspectVo: {
            material: null,
            materialCode: null,
            orderNumber: "",
            quantity: null,
            specificationsModel: null,
            techfather: null,
            techname: null,
            technologyId: null,
            unit: null
         },
         InspectioniD: null,
         addInspectionform: [{
            number: "",
            username: "",
            projectname: "",
            tracenumber: "",
            code: "",
            class: "",
            specificationmodel: "",
            unit: "",
            quantity: "",
            group: "",
            worker: "",
            machine: ""
         }],
         inspectionItems: [], // 新增检验项目表格
         inspectionResultForm: [{
            id: "",
            name: "",
            inspecter: "",
            conclusion: "",
            operation: ""
         }],
         options: [],
         value: "",
         rowList: [],
         spanArr: [],
         position: 0,
         // 设备选择树显示
         centerDialogVisible: false,
         filterText: "",
         materialOptions: [],
         defaultProps: {
            // 设备树数据设置
            children: "children",
            label: "name"
         },
         nodeData: {
            id: 0,
            name: null
         }, // node点击保存当前点击数据
         clickSelectDevice: {
            index: null, // 点击选择存储当前行索引
            rpId: null // 点击选择存储当前行项目Id
         }
      };
   },
   watch: {
      // filterText(val) {
      //     this.$refs.tree.filter(val);
      // }
   },
   created() {
      if (this.rowInfo.result != null && this.rowInfo.result != '') {
         this.isUpBtn = true
      }
      this.processInspectVo.orderNumber = this.rowInfo.order_number
      this.processInspectVo.material = this.rowInfo.material
      this.processInspectVo.materialCode = this.rowInfo.material_code
      this.processInspectVo.specificationsModel = this.rowInfo.specifications_model
      this.processInspectVo.techfather = this.rowInfo.techfather
      this.processInspectVo.techname = this.rowInfo.techname
      this.processInspectVo.unit = this.rowInfo.unit
      this.processInspectVo.quantity = this.rowInfo.quantity
      this.detailId = this.rowInfo.id
      this.inspectionResultForm[0].id = this.rowInfo.material_code
      this.inspectionResultForm[0].name = this.rowInfo.material
      this.inspectionResultForm[0].conclusion = this.rowInfo.result
      // console.log(this.detailId);
   },
   mounted() {
      this.getTableData()
   },
   methods: {
      blurNode(scope) {
         // console.log(11);
         // this.$set(this.inspectionItems[scope.$index],'isSelectDevice',false)
      },
      escalation() {
         let arr = this.inspectionItems
         let bl = false
         for (let index = 0; index < arr.length; index++) {
            const element = arr[index];
            if (element.dname != null && element.empiricalValueAddss[0] != '') {
               bl = true
               break
            } else {
               bl = false
            }
            if (bl != true) {
         }
         if (bl != true) {
            this.$message({
               message: '请先检测一项项目!',
               type: 'warning'
            });
            return
         }
         let pro = this.inspectionItems.filter(item => {
            return item.result === 0;
         })
         if (pro.length > 0) {
            this.$prompt('请输入不合格数量', '不合格数量', {
               confirmButtonText: '确定',
               cancelButtonText: '取消',
               inputPattern: /^\d+$/,
               inputErrorMessage: '请输入正确数字格式'
            }).then(({ value }) => {
               this.$axios.post(this.$api.url.processInspectUpdateProcessInspectsById, {
                  id: this.detailId,
                  number: value
               }).then(res => {
                  if (res.code == 200) {
                     // this.$message({
                     //    message: '上报成功',
                     //    type: 'success'
                     // });
                     this.$parent.combackMain(true)
                  } else {
                     this.$message({
                        message: res.message,
                        type: 'warning'
                     });
                  }
               })
            }).catch(() => {
               this.$message({
                  message: '请先检测一项项目!',
                  type: 'warning'
                  type: 'info',
                  message: '取消输入'
               });
               return
            }
            });
         } else {
            this.$axios.post(this.$api.url.processInspectUpdateProcessInspectsById, {
               id: this.detailId
            }).then(res => {
@@ -341,336 +380,337 @@
               }
            })
         },
         handleClick() {},
         updateInsInfo(row) {
            this.row = row
            this.showUp = true
         },
         // 点击设备树保存点击记录
         nodeClick(data) {
            if (data.id != undefined) this.nodeData = data;
         },
         // 设备树过滤搜索
         filterNode(value, data) {
            if (!value) return true;
            return data.name.indexOf(value) !== -1;
         },
         // 获取设备树内容
         getOptions(row) {
            this.$axios.get(this.$api.url.inspectionItemChooseDev, {
               params: {
                  father: row.father,
                  name: row.name,
                  technologyId: this.processInspectVo.technologyId
               }
            }).then(res => {
               this.materialOptions = res.data;
               if (this.materialOptions.length === 1 && row.did != null) {
                  this.$message({
                     message: '该项目下只有一个试验设备,无需选择!',
                     type: 'warning'
                  });
                  return
               }
               row.isSelectDevice = true
            });
         },
         //返回
         combackFather() {
            this.$parent.combackMain()
         },
         // 点击表格选择触发
         clickTableSelect(scope) {
            this.centerDialogVisible = true;
            this.clickSelectDevice.index = scope.$index;
            this.clickSelectDevice.rpId = scope.row.id;
            this.getOptions(scope.row);
         },
         // 点击树里面的确定
         clickNodeSure() {
            if (this.detailId == null) {
               this.projectTable[this.clickSelectDevice.index].deviceId = this.nodeData.id;
               this.projectTable[this.clickSelectDevice.index].deviceName = this.nodeData.name;
               this.centerDialogVisible = false;
            } else {
               this.$axios.post(this.$api.url.inspectionItemUpdateDevByInsId, {
                  id: this.clickSelectDevice.rpId,
                  devId: this.nodeData.id,
                  type: 1
               }).then(res => {
                  this.centerDialogVisible = false;
                  this.inspectionItems.forEach(a=>{
                     if(a.id == this.clickSelectDevice.rpId){
                        a.dname = this.nodeData.name
                     }
                  })
               });
         }
      },
      handleClick() { },
      updateInsInfo(row) {
         this.row = row
         this.showUp = true
      },
      // 点击设备树保存点击记录
      nodeClick(data) {
         if (data.id != undefined) this.nodeData = data;
      },
      // 设备树过滤搜索
      filterNode(value, data) {
         if (!value) return true;
         return data.name.indexOf(value) !== -1;
      },
      // 获取设备树内容
      getOptions(row) {
         this.$axios.get(this.$api.url.inspectionItemChooseDev, {
            params: {
               father: row.father,
               name: row.name,
               technologyId: this.processInspectVo.technologyId
            }
         },
         changeState(row, index) {
            if (row.did != null && row.did != '') {
               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,
                  inspectionValue: str.slice(0, -1)
               }, {
                  headers: {
                     "Content-Type": "application/json"
                  }
               }).then(res => {
                  row.result = res.data.result
                  row.username = res.data.username
               })
            } else {
         }).then(res => {
            this.materialOptions = res.data;
            if (this.materialOptions.length === 1 && row.did != null) {
               this.$message({
                  message: '请选择择设备!',
                  message: '该项目下只有一个试验设备,无需选择!',
                  type: 'warning'
               });
               return
            }
         },
         // 每页条数改变时触发 选择一页显示多少行
         handleSizeChange(val) {
            this.search.countSize = val;
            this.defaultInitializationTable();
         },
         handleSpanMethod({
            row,
            column,
            rowIndex,
            columnIndex
         }) {
            if (columnIndex === 0) {
               const _row = this.spanArr[rowIndex];
               const _col = _row > 0 ? 1 : 0;
               return {
                  rowspan: _row,
                  colspan: _col
               }
            }
            if (columnIndex === 1) {
               const _row = this.spanArr[rowIndex];
               const _col = _row > 0 ? 1 : 0;
               return {
                  rowspan: _row,
                  colspan: _col
               }
            }
         },
         // 合并表格
         mergeTable() {
            this.rowList = []
            this.spanArr = []
            this.position = 0
            this.inspectionItems.forEach((item, index) => {
               if (index === 0) {
                  this.spanArr.push(1);
                  this.position = 0;
               } else {
                  if (this.inspectionItems[index].father === this.inspectionItems[index - 1].father) {
                     this.spanArr[this.position] += 1;
                     this.spanArr.push(0);
                  } else {
                     this.spanArr.push(1);
                     this.position = index;
            row.isSelectDevice = true
         });
      },
      //返回
      combackFather() {
         this.$parent.combackMain()
      },
      // 点击表格选择触发
      clickTableSelect(scope) {
         this.centerDialogVisible = true;
         this.clickSelectDevice.index = scope.$index;
         this.clickSelectDevice.rpId = scope.row.id;
         this.getOptions(scope.row);
      },
      // 点击树里面的确定
      clickNodeSure() {
         if (this.detailId == null) {
            this.projectTable[this.clickSelectDevice.index].deviceId = this.nodeData.id;
            this.projectTable[this.clickSelectDevice.index].deviceName = this.nodeData.name;
            this.centerDialogVisible = false;
         } else {
            this.$axios.post(this.$api.url.inspectionItemUpdateDevByInsId, {
               id: this.clickSelectDevice.rpId,
               devId: this.nodeData.id,
               type: 1
            }).then(res => {
               this.centerDialogVisible = false;
               this.inspectionItems.forEach(a => {
                  if (a.id == this.clickSelectDevice.rpId) {
                     a.dname = this.nodeData.name
                  }
               }
               })
            });
         }
      },
      changeState(row, index) {
         if (row.did != null && row.did != '') {
            let str = ""
            row.empiricalValueAddss.forEach(e => {
               str += e + ","
            })
         },
         changeOptionSoptionSprocesses() {
            this.optionTechnology = []
            let working = this.optionSoptionSprocesses.filter(item => {
               return item.name === this.processInspectVo.techfather
            })[0]
            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.$axios.post(this.$api.url.processInspectAddProcess, {
               material: val.material,
               materialCode: val.materialCode,
               orderNumber: val.orderNumber,
               quantity: val.quantity,
               specificationsModel: val.specificationsModel,
               techfather: val.techfather,
               techname: val.techname,
               technologyId: val.technologyId,
               unit: val.unit
            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,
               inspectionValue: str.slice(0, -1)
            }, {
               headers: {
                  "Content-Type": "application/json"
               }
            }).then(res => {
               if (res.code === 201) {
                  this.$message({
                     message: res.message,
                     type: 'warning'
                  });
                  return
               }
               this.detailId = res.data
               this.inspectionResultForm[0].id = res.data
               this.inspectionResultForm[0].name = val.material
               this.getTableData()
               row.result = res.data.result
               row.username = res.data.username
            })
         },
         getTableData() {
            this.$axios.get(this.$api.url.processInspectSelectProcessInspectsListById, {
               params: {
                  id: this.rowInfo.id
               }
            }).then(res => {
               // console.log(res.data);
               this.processInspectVo.technologyId = res.data[0].techId
               // console.log(this.processInspectVo);
            })
            this.$axios.get(this.$api.url.inspectionItemListUser, {
               params: {
                  id: this.detailId,
                  type: 1
               }
            }).then(res => {
               if (res.data.length < 1) {
                  return
               }
               this.inspectionItems = res.data
               let arr = []
               let val = JSON.parse(JSON.stringify(this.inspectionItems))
               const uName = []
               //转成一维数组
               val.forEach(l => {
                  let father = l.father
                  l.children.forEach(c => {
                     c.father = father
                     c.empiricalValueAddss = []
                     if (c.inspectionValue != '' && c.inspectionValue != null) {
                        c.empiricalValueAddss = c.inspectionValue.split(",");
                     } else {
                        c.empiricalValueAddss.push("")
                     }
                     uName.push(c['username'])
                     c.isSelectDevice = false
                     arr.push(c)
                  })
               })
               this.inspectionItems = arr
               let arrSort = JSON.parse(JSON.stringify(arr))
               //根据集合对象数组长度排序
               arrSort.sort((a, b) => {
                  if (a.empiricalValueAddss.length < b.empiricalValueAddss.length) {
                     return -1; // a排在b前面
                  } else if (a.empiricalValueAddss.length > b.empiricalValueAddss.length) {
                     return 1; // a排在b后面
                  } else {
                     return 0; // 保持相对顺序不变
                  }
               });
               // console.log(arrSort);
               console.log(uName);
               let name = [...new Set(uName)].filter(item => item !== null);
               let rname = ''
               name.forEach(m => {
                  rname += m + ","
               })
               this.inspectionResultForm[0].inspecter = rname.slice(0, -1)
               this.empiricalValueAdd = arrSort[arrSort.length - 1].empiricalValueAddss.length
               this.mergeTable(arr)
            })
         },
         selectSample() {
            let sample = this.optionsSamplename.filter(item => {
               return item.name === this.processInspectVo.material
            })[0]
            this.processInspectVo.techfather = null
            this.processInspectVo.techname = null
            this.processInspectVo.materialCode = sample.code
            this.processInspectVo.specificationsModel = sample.specifications
            this.processInspectVo.unit = sample.unit
            this.optionSoptionSprocesses = []
            this.optionSoptionSprocesses = sample.children
         },
         selectInfoByOrderId() {
            this.$axios.get(this.$api.url.chooseMaterProcessInspect, {
               params: {
                  orderNumber: this.processInspectVo.orderNumber
               }
            }).then(res => {
               if (res.data.length > 0) {
                  console.log(res.data);
                  this.optionsSamplename = res.data
         } else {
            this.$message({
               message: '请选择择设备!',
               type: 'warning'
            });
         }
      },
      // 每页条数改变时触发 选择一页显示多少行
      handleSizeChange(val) {
         this.search.countSize = val;
         this.defaultInitializationTable();
      },
      handleSpanMethod({
         row,
         column,
         rowIndex,
         columnIndex
      }) {
         if (columnIndex === 0) {
            const _row = this.spanArr[rowIndex];
            const _col = _row > 0 ? 1 : 0;
            return {
               rowspan: _row,
               colspan: _col
            }
         }
         if (columnIndex === 1) {
            const _row = this.spanArr[rowIndex];
            const _col = _row > 0 ? 1 : 0;
            return {
               rowspan: _row,
               colspan: _col
            }
         }
      },
      // 合并表格
      mergeTable() {
         this.rowList = []
         this.spanArr = []
         this.position = 0
         this.inspectionItems.forEach((item, index) => {
            if (index === 0) {
               this.spanArr.push(1);
               this.position = 0;
            } else {
               if (this.inspectionItems[index].father === this.inspectionItems[index - 1].father) {
                  this.spanArr[this.position] += 1;
                  this.spanArr.push(0);
               } else {
                  this.$message({
                     message: '没有该订单号!',
                     type: 'warning'
                  });
               }
            })
         },
         // 当前页改变时触发 跳转其他页
         handleCurrentChange(val) {
            this.search.pageSize = val;
            this.defaultInitializationTable();
         },
         // 显示新增页面
         handleAddNew() {
            this.showAddPage = true;
            // this.getTableData()
         },
         // 表格初始化接口
         defaultInitializationTable() {
            this.$axios
               .post(this.$api.url.selectProcessInspectsList, this.search)
               .then(res => {
                  this.inspectionTableTotal = res.data.total;
                  this.inspectionTable = res.data.row;
               });
         },
         // 添加行
         clickAddLine() {
            let obj = {
               material: "",
               materialCode: "",
               orderNumber: "",
               quantity: 0,
               specificationsModel: "",
               techfather: "",
               techname: "",
               technologyId: 0,
               unit: ""
            };
            this.inspectionItems.push(obj);
         },
         // 删除行
         clickDeleteline(scope) {
            this.inspectionItems.splice(scope.$index, 1);
         },
         // 删除检验值列
         clickDeleteInspectionColumn() {
            if (this.empiricalValueAdd - 1 === 0) {} else {
               if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) {
                  this.empiricalValueAdd = this.empiricalValueAdd - 1;
                  this.inspectionItems.forEach(i => {
                     i.testValueList.splice(this.empiricalValueAdd, 1);
                  });
                  this.spanArr.push(1);
                  this.position = index;
               }
            }
         },
         // 添加检验值列
         clickAddInspectionColumn() {
            this.empiricalValueAdd = this.empiricalValueAdd + 1;
         })
      },
      changeOptionSoptionSprocesses() {
         this.optionTechnology = []
         let working = this.optionSoptionSprocesses.filter(item => {
            return item.name === this.processInspectVo.techfather
         })[0]
         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.$axios.post(this.$api.url.processInspectAddProcess, {
            material: val.material,
            materialCode: val.materialCode,
            orderNumber: val.orderNumber,
            quantity: val.quantity,
            specificationsModel: val.specificationsModel,
            techfather: val.techfather,
            techname: val.techname,
            technologyId: val.technologyId,
            unit: val.unit
         }, {
            headers: {
               "Content-Type": "application/json"
            }
         }).then(res => {
            if (res.code === 201) {
               this.$message({
                  message: res.message,
                  type: 'warning'
               });
               return
            }
            this.detailId = res.data
            this.inspectionResultForm[0].id = res.data
            this.inspectionResultForm[0].name = val.material
            this.getTableData()
         })
      },
      getTableData() {
         this.$axios.get(this.$api.url.processInspectSelectProcessInspectsListById, {
            params: {
               id: this.rowInfo.id
            }
         }).then(res => {
            // console.log(res.data);
            this.processInspectVo.technologyId = res.data[0].techId
            // console.log(this.processInspectVo);
         })
         this.$axios.get(this.$api.url.inspectionItemListUser, {
            params: {
               id: this.detailId,
               type: 1
            }
         }).then(res => {
            if (res.data.length < 1) {
               return
            }
            this.inspectionItems = res.data
            let arr = []
            let val = JSON.parse(JSON.stringify(this.inspectionItems))
            const uName = []
            //转成一维数组
            val.forEach(l => {
               let father = l.father
               l.children.forEach(c => {
                  c.father = father
                  c.empiricalValueAddss = []
                  if (c.inspectionValue != '' && c.inspectionValue != null) {
                     c.empiricalValueAddss = c.inspectionValue.split(",");
                  } else {
                     c.empiricalValueAddss.push("")
                  }
                  uName.push(c['username'])
                  c.isSelectDevice = false
                  arr.push(c)
               })
            })
            this.inspectionItems = arr
            let arrSort = JSON.parse(JSON.stringify(arr))
            //根据集合对象数组长度排序
            arrSort.sort((a, b) => {
               if (a.empiricalValueAddss.length < b.empiricalValueAddss.length) {
                  return -1; // a排在b前面
               } else if (a.empiricalValueAddss.length > b.empiricalValueAddss.length) {
                  return 1; // a排在b后面
               } else {
                  return 0; // 保持相对顺序不变
               }
            });
            // console.log(arrSort);
            console.log(uName);
            let name = [...new Set(uName)].filter(item => item !== null);
            let rname = ''
            name.forEach(m => {
               rname += m + ","
            })
            this.inspectionResultForm[0].inspecter = rname.slice(0, -1)
            this.empiricalValueAdd = arrSort[arrSort.length - 1].empiricalValueAddss.length
            this.mergeTable(arr)
         })
      },
      selectSample() {
         let sample = this.optionsSamplename.filter(item => {
            return item.name === this.processInspectVo.material
         })[0]
         this.processInspectVo.techfather = null
         this.processInspectVo.techname = null
         this.processInspectVo.materialCode = sample.code
         this.processInspectVo.specificationsModel = sample.specifications
         this.processInspectVo.unit = sample.unit
         this.optionSoptionSprocesses = []
         this.optionSoptionSprocesses = sample.children
      },
      selectInfoByOrderId() {
         this.$axios.get(this.$api.url.chooseMaterProcessInspect, {
            params: {
               orderNumber: this.processInspectVo.orderNumber
            }
         }).then(res => {
            if (res.data.length > 0) {
               console.log(res.data);
               this.optionsSamplename = res.data
            } else {
               this.$message({
                  message: '没有该订单号!',
                  type: 'warning'
               });
            }
         })
      },
      // 当前页改变时触发 跳转其他页
      handleCurrentChange(val) {
         this.search.pageSize = val;
         this.defaultInitializationTable();
      },
      // 显示新增页面
      handleAddNew() {
         this.showAddPage = true;
         // this.getTableData()
      },
      // 表格初始化接口
      defaultInitializationTable() {
         this.$axios
            .post(this.$api.url.selectProcessInspectsList, this.search)
            .then(res => {
               this.inspectionTableTotal = res.data.total;
               this.inspectionTable = res.data.row;
            });
      },
      // 添加行
      clickAddLine() {
         let obj = {
            material: "",
            materialCode: "",
            orderNumber: "",
            quantity: 0,
            specificationsModel: "",
            techfather: "",
            techname: "",
            technologyId: 0,
            unit: ""
         };
         this.inspectionItems.push(obj);
      },
      // 删除行
      clickDeleteline(scope) {
         this.inspectionItems.splice(scope.$index, 1);
      },
      // 删除检验值列
      clickDeleteInspectionColumn() {
         if (this.empiricalValueAdd - 1 === 0) { } else {
            if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) {
               this.empiricalValueAdd = this.empiricalValueAdd - 1;
               this.inspectionItems.forEach(i => {
                  i.testValueList.splice(this.empiricalValueAdd, 1);
               });
            }
         }
      },
      // 添加检验值列
      clickAddInspectionColumn() {
         this.empiricalValueAdd = this.empiricalValueAdd + 1;
      }
   }
}
</script>
<style></style>