From 8b50aeca95625137cbb09fe3968ac46284ca6f1d Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期五, 15 九月 2023 15:43:24 +0800
Subject: [PATCH] 	modified:   src/components/view/finishedProductInspectionAdd.vue 	modified:   src/components/view/finishedProductInspectionUp.vue 	modified:   src/components/view/processInspection.vue 	modified:   src/components/view/processInspectionUpdate.vue

---
 src/components/view/processInspection.vue |  389 ++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 309 insertions(+), 80 deletions(-)

diff --git a/src/components/view/processInspection.vue b/src/components/view/processInspection.vue
index a4d05e1..bfbfefa 100644
--- a/src/components/view/processInspection.vue
+++ b/src/components/view/processInspection.vue
@@ -1,6 +1,6 @@
 <template>
   <div class="content-main">
-    <div v-if="!showAddPage" class="rawPage">
+    <div v-if="!showAddPage && !showUp && !showLook" class="rawPage">
       <div class="title">
         <el-row>
           <el-col :span="12">杩囩▼妫�楠�</el-col>
@@ -15,8 +15,8 @@
         <span>妫�楠岀姸鎬侊細</span>
         <el-select size="small" v-model="search.result" placeholder="璇烽�夋嫨妫�娴嬬姸鎬�" style="width: 224px;margin-right: 52px;">
           <el-option :value="''" label="鍏ㄩ儴"></el-option>
-          <el-option :value="1" label="宸叉娴�"></el-option>
-          <el-option :value="2" label="寰呮娴�"></el-option>
+          <el-option :value="1" label="鍚堟牸"></el-option>
+          <el-option :value="0" label="涓嶅悎鏍�"></el-option>
         </el-select>
         <span>浜у搧鍚嶇О锛�</span>
         <el-input size="small" style="width: 224px;margin-right: 30px;" v-model="search.name"
@@ -25,7 +25,7 @@
         <el-input size="small" style="width: 224px;margin-right: 30px;" v-model="search.techfather"
           placeholder="璇疯緭鍏ュ伐搴�"></el-input>
         <el-button size="mini"><span>閲� 缃�</span></el-button>
-        <el-button size="mini" type="primary" style="background: #004EA2;"><span>鏌� 璇�</span></el-button>
+        <el-button size="mini" @click="searchPro" type="primary" style="background: #004EA2;"><span>鏌� 璇�</span></el-button>
       </div>
       <div class="content-body">
         <div class="inspectionTable">
@@ -57,16 +57,17 @@
             </el-table-column>
             <el-table-column label="鎿嶄綔" min-width="80">
               <template slot-scope="scope">
-                <el-button type="text" size="small" style="margin-left: 0;">璇︽儏</el-button>
-                <el-button type="text" size="small" @click="handleClick(scope.row)">鏌ョ湅</el-button>
-                <el-button type="text" size="small" style="margin-left: 0;">缂栬緫</el-button>
+                <el-button type="text" size="small" @click="handleClick(scope.row)" style="margin-left: 0;">璇︽儏</el-button>
+                <el-button type="text" size="small">鏌ョ湅</el-button>
+                <el-button v-if="scope.row.result == null" type="text" size="small" style="margin-left: 0;"
+                  @click="updateInsInfo(scope.row)">缂栬緫</el-button>
               </template>
             </el-table-column>
           </el-table>
         </div>
         <!-- 鍒嗛〉鍣� -->
         <div class="pagination">
-          <el-pagination :current-page="1" :page-sizes="[10, 20, 30, 40]" :page-size="pageSize"
+          <el-pagination :current-page="currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="pageSize"
             layout="total, sizes, prev, pager, next, jumper" :total="inspectionTableTotal" @size-change="handleSizeChange"
             @current-change="handleCurrentChange" />
         </div>
@@ -79,9 +80,9 @@
           <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 @click="showAddPage = false" type="primary" size="mini" icon="el-icon-back"
+            <!-- <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>
         </el-row>
@@ -151,7 +152,7 @@
                 </el-form-item>
               </el-col>
               <el-col :span="10" style="display: flex;justify-content: end;">
-                <el-button type="primary" @click="addTestProjevt">鐢熸垚妫�楠岄」鐩�</el-button>
+                <el-button type="primary" :disabled="isAddProject" @click="addTestProjevt">鐢熸垚妫�楠岄」鐩�</el-button>
               </el-col>
             </el-row>
           </div>
@@ -171,28 +172,33 @@
             > -->
           </el-col>
         </el-row>
-        <el-table :row-key="inspectionItems.id" :data="inspectionItems" max-height="420" :span-method="handleSpanMethod" height="calc(100vh - 550px)" style="width: 100%">
+        <el-table border :data="inspectionItems" max-height="420" :span-method="handleSpanMethod"
+          height="calc(100vh - 550px)" style="width: 100%">
           <el-table-column type="index" label="搴忓彿" width="60"></el-table-column>
           <el-table-column label="椤圭洰" prop="father"></el-table-column>
           <el-table-column prop="name" label="鎸囨爣"></el-table-column>
           <el-table-column prop="unit" label="鍗曚綅"></el-table-column>
           <el-table-column prop="required" label="鏍囧噯鍊�"></el-table-column>
           <el-table-column prop="internal" label="鍐呮祴鍊�"></el-table-column>
-            <el-table-column prop="inspectionValue" label="妫�娴嬪��" min-width="100"  style="text-align: center;">
-              <template slot-scope="scope">
-                      <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�"
-                    placement="top-start">
-                    <el-input :disabled="scope.row.deviceId === null" :value="item" 
-                      @blur="changeState(scope.row, index)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input>
-                  </el-tooltip>
-              </template>
-            </el-table-column>
-          <el-table-column label="璇曢獙璁惧">
+          <el-table-column prop="inspectionValue" v-for="(item, index) in empiricalValueAdd" :key="index" label="妫�娴嬪��"
+            min-width="100" style="text-align: center;">
             <template slot-scope="scope">
-              {{ scope.row.device }}
-              <el-select v-model="scope.row.device" size="small" slot="append" style="width: 100px;">
-                <el-option value="閫夐」1"></el-option>
-                <el-option value="閫夐」2"></el-option>
+              <el-tooltip :disabled="scope.row.dname != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�"
+                placement="top-start">
+                <el-input :disabled="scope.row.dname === null" v-model="scope.row.empiricalValueAddss[index]"
+                  @blur="changeState(scope.row, index)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input>
+              </el-tooltip>
+            </template>
+          </el-table-column>
+          <el-table-column prop="dname" label="璇曢獙璁惧" min-width="100">
+            <template slot-scope="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>
@@ -200,13 +206,14 @@
             <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">鏆傛湭缁撹</span>
             </template>
           </el-table-column>
-          <el-table-column v-if="detailId == null" label="鎿嶄綔" width="100">
+          <!-- <el-table-column v-if="detailId == null" label="鎿嶄綔" width="100">
             <template slot-scope="scope">
               <el-button type="text" @click="clickDeleteline(scope)">鍒犻櫎</el-button>
             </template>
-          </el-table-column>
+          </el-table-column> -->
         </el-table>
       </div>
       <div class="inspectionResult">
@@ -219,15 +226,36 @@
           <el-table-column prop="operation" label="涓婃姤"></el-table-column>
         </el-table>
       </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-option v-for="item in materialOptions" :key="item.id" :label="item.device" :value="item.id">
+            </el-option>
+          </el-select>
+        </div>
+      </el-dialog>
+    </div>
+    <div class="newPage" v-if="showUp">
+      <processInspectionUpdate :rowInfo="rowInfp" />
+    </div>
+    <div class="newPage" v-if="showLook">
+      <processInspectionLook :rowInfo="rowInfp" />
     </div>
   </div>
 </template>
 
 <script>
+import processInspectionUpdate from '../view/processInspectionUpdate.vue'
+import processInspectionLook from '../view/processInspectionLook.vue'
 export default {
+  components: { processInspectionUpdate, processInspectionLook },
   data() {
     return {
-      detailId: null,
+      showUp: false,
+      isAddProject: false,
+      showLook: false,
+      detailId: 28,
+      rowInfp: {},
       search: {
         countSize: 10,
         pageSize: 1,
@@ -237,19 +265,22 @@
       },
       optionsSamplename: [],
       inspectionTable: [],
+      tableColumn: [],
       optionSoptionSprocesses: [],
       optionTechnology: [],
-      inspectionTableTotal: "",
+      inspectionTableTotal: 0,
+      pageSize: 10,
+      currentPage: 1,
       treeProject: [],
       // 娣诲姞鍒�
-      empiricalValueAdd: [],
+      empiricalValueAdd: 1,
       // 缂栬緫鏃跺瓨鍌ㄦ渶闀跨殑鍒楁暟瀛楋紝鍋氬垹闄ゅ垽鏂�
       empiricalValueAddMaxNumber: 0,
       showAddPage: false,
       processInspectVo: {
         material: null,
         materialCode: null,
-        orderNumber: "D-001",
+        orderNumber: "",
         quantity: null,
         specificationsModel: null,
         techfather: null,
@@ -277,9 +308,9 @@
       inspectionItems: [], // 鏂板妫�楠岄」鐩〃鏍�
       inspectionResultForm: [
         {
-          id: "274024",
-          name: "111",
-          inspecter: "111",
+          id: "",
+          name: "",
+          inspecter: "",
           conclusion: "",
           operation: ""
         }
@@ -288,59 +319,217 @@
       value: "",
       rowList: [],
       spanArr: [],
-      position: 0
+      position: 0,
+      // 璁惧閫夋嫨鏍戞樉绀�
+      centerDialogVisible: false,
+      filterText: "",
+      materialOptions: [],
+      defaultProps: {
+        // 璁惧鏍戞暟鎹缃�
+        children: "children",
+        label: "name"
+      },
+      nodeData: {
+        id: 0,
+        name: null
+      }, // node鐐瑰嚮淇濆瓨褰撳墠鐐瑰嚮鏁版嵁
+      clickSelectDevice: {
+        index: null, // 鐐瑰嚮閫夋嫨瀛樺偍褰撳墠琛岀储寮�
+        rpId: null // 鐐瑰嚮閫夋嫨瀛樺偍褰撳墠琛岄」鐩甀d
+      }
     };
+  },
+  watch: {
+    // filterText(val) {
+    //   this.$refs.tree.filter(val);
+    // }
   },
   mounted() {
     // this.getTableData()
+    // this.getOptions();
   },
   methods: {
+    handleClick(row) {
+      this.rowInfp = row
+      this.showLook = true
+    },
+    combackIndex() {
+      this.showAddPage = false
+      this.defaultInitializationTable()
+    },
+    updateInsInfo(row) {
+      this.rowInfp = row
+      this.showUp = true
+    },
+    combackMain(val) {
+      this.showUp = false
+      this.showLook = false
+      this.defaultInitializationTable(); // 鍒濆鍖栬〃鏍兼暟鎹�
+      if (val) {
+        this.$parent.removeAllTab()
+      }
+    },
+    searchPro() {
+      this.search.countSize = this.pageSize
+      this.search.pageSize = this.currentPage
+      this.defaultInitializationTable()
+    },
+    // 鐐瑰嚮璁惧鏍戜繚瀛樼偣鍑昏褰�
+    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) {
+          this.$message({
+            message: '璇ラ」鐩笅鍙湁涓�涓瘯楠岃澶囷紝鏃犻渶閫夋嫨锛�',
+            type: 'warning'
+          });
+          return
+        }
+        row.isSelectDevice = true
+        this.filterText = row.did
+      });
+    },
+    // 鐐瑰嚮琛ㄦ牸閫夋嫨瑙﹀彂
+    clickTableSelect(scope) {
+      // this.centerDialogVisible = true;
+      if (this.clickSelectDevice.index != null) {
+        this.$set(this.inspectionItems[this.clickSelectDevice.index], 'isSelectDevice', false)
+      }
+      this.clickSelectDevice.index = scope.$index;
+      this.clickSelectDevice.rpId = scope.row.id;
+      this.getOptions(scope.row)
+    },
+    // 鐐瑰嚮鏍戦噷闈㈢殑纭畾
+    clickNodeSure() {
+      let select = this.materialOptions.filter(item => {
+        return item.id === this.filterText
+      })[0]
+      this.nodeData.id = select.id
+      this.nodeData.name = select.device
+      if (this.detailId == null) {
+        this.inspectionItems[
+          this.clickSelectDevice.index
+        ].did = this.nodeData.id;
+        this.inspectionItems[
+          this.clickSelectDevice.index
+        ].dname = this.nodeData.name;
+        this.centerDialogVisible = false;
+      } else {
+        this.$axios
+          .post(this.$api.url.inspectionItemUpdateDevByInsId, {
+            id: this.clickSelectDevice.rpId,
+            type: 1,
+            devId: this.nodeData.id
+          })
+          .then(res => {
+            this.getTableData()
+            this.centerDialogVisible = 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 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 => {
+          if (res.message === '鍐呮帶鍊艰緭鍏ユ牸寮忔湁闂!') {
+            this.$message({
+              message: res.message,
+              type: 'warning'
+            });
+            return
+          }
+          row.result = res.data.result
+          row.username = res.data.username
+        })
+      } else {
+        this.$message({
+          message: '璇烽�夋嫨鎷╄澶囷紒',
+          type: 'warning'
+        });
+      }
+    },
     // 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
     handleSizeChange(val) {
       this.search.countSize = val;
       this.defaultInitializationTable();
     },
-    getInsArr(val){
-      console.log(val);
-      return val.split(",")
-    },
     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
-    		}
-    	}
+        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;
-	    		}
-	    	}
-	    })
+      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;
+          }
+        }
+      })
     },
     changeOptionSoptionSprocesses() {
       this.optionTechnology = []
@@ -353,6 +542,7 @@
       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,
@@ -361,7 +551,7 @@
         specificationsModel: val.specificationsModel,
         techfather: val.techfather,
         techname: val.techname,
-        technologyId: val.technologyId,
+        techId: Number(val.technologyId),
         unit: val.unit
       }, {
         headers: { "Content-Type": "application/json" }
@@ -373,31 +563,61 @@
           });
           return
         }
-        this.InspectioniD = res.data
+        this.isAddProject = true
+        this.detailId = res.data
+        this.inspectionResultForm[0].id = val.materialCode
+        this.inspectionResultForm[0].name = val.material
         this.getTableData()
       })
     },
     getTableData() {
       this.$axios.get(this.$api.url.inspectionItemListUser, {
         params: {
-          id: 28,
+          id: this.detailId,
           type: 1
         }
       }).then(res => {
         this.inspectionItems = res.data
         let arr = []
-        let val=JSON.parse(JSON.stringify(this.inspectionItems))
+        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.empiricalValueAdd=[]
+            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
-        console.log(this.inspectionItems);
+        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)
       })
     },
@@ -438,7 +658,7 @@
     // 鏄剧ず鏂板椤甸潰
     handleAddNew() {
       this.showAddPage = true;
-      this.getTableData()
+      // this.getTableData()
     },
     // 琛ㄦ牸鍒濆鍖栨帴鍙�
     defaultInitializationTable() {
@@ -492,6 +712,15 @@
 </script>
 
 <style>
+.node_i {
+  color: orange;
+}
+
+.div_device_dialog {
+  min-height: 400px;
+  overflow: auto;
+}
+
 .nav {
   display: flex;
   padding: 20px 20px;

--
Gitblit v1.9.3