From 0c409fb4381a7be9dd96a3e8cb0161f77bc7ef8c Mon Sep 17 00:00:00 2001
From: 王震 <10952869+daywangzhen@user.noreply.gitee.com>
Date: 星期四, 14 九月 2023 09:06:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/components/view/processInspection.vue |  327 +++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 250 insertions(+), 77 deletions(-)

diff --git a/src/components/view/processInspection.vue b/src/components/view/processInspection.vue
index a4d05e1..5bae215 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,16 @@
             </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>
@@ -151,7 +151,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,42 +171,43 @@
             > -->
           </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 :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-select>
+              <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 type="text" @click="clickTableSelect(scope)">{{
+                scope.row.dname == null ? "璇烽�夋嫨" : scope.row.dname
+              }}</el-button>
             </template>
           </el-table-column>
           <el-table-column label="缁撹">
             <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 +220,47 @@
           <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-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">
+            <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>
+            </div>
+          </el-tree>
+        </div>
+        <span slot="footer" class="dialog-footer">
+          <el-button @click="centerDialogVisible = false">鍙� 娑�</el-button>
+          <el-button type="primary" @click="clickNodeSure()">纭� 瀹�</el-button>
+        </span>
+      </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 +270,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 +313,9 @@
       inspectionItems: [], // 鏂板妫�楠岄」鐩〃鏍�
       inspectionResultForm: [
         {
-          id: "274024",
-          name: "111",
-          inspecter: "111",
+          id: "",
+          name: "",
+          inspecter: "",
           conclusion: "",
           operation: ""
         }
@@ -288,59 +324,160 @@
       value: "",
       rowList: [],
       spanArr: [],
-      position: 0
+      position: 0,
+      // 璁惧閫夋嫨鏍戞樉绀�
+      centerDialogVisible: false,
+      filterText: "",
+      materialOptions: [],
+      defaultProps: {
+        // 璁惧鏍戞暟鎹缃�
+        children: "children",
+        label: "name"
+      },
+      nodeData: "", // node鐐瑰嚮淇濆瓨褰撳墠鐐瑰嚮鏁版嵁
+      clickSelectDevice: {
+        index: "", // 鐐瑰嚮閫夋嫨瀛樺偍褰撳墠琛岀储寮�
+        rpId: "" // 鐐瑰嚮閫夋嫨瀛樺偍褰撳墠琛岄」鐩甀d
+      }
     };
+  },
+  watch: {
+    filterText(val) {
+      this.$refs.tree.filter(val);
+    }
   },
   mounted() {
     // this.getTableData()
+    this.getOptions();
   },
   methods: {
+    handleClick(row){
+      this.rowInfp=row
+      this.showLook=true
+    },
+    updateInsInfo(row){
+      this.rowInfp=row
+      this.showUp=true
+    },
+    combackMain(){
+      this.showUp=false
+      this.showLook=false
+    },
+    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() {
+      this.$axios.get(this.$api.url.rawSelectDevice).then(res => {
+        this.materialOptions = res.data;
+      });
+    },
+    // 鐐瑰嚮琛ㄦ牸閫夋嫨瑙﹀彂
+    clickTableSelect(scope) {
+      this.centerDialogVisible = true;
+      this.clickSelectDevice.index = scope.$index;
+      this.clickSelectDevice.rpId = scope.row.id;
+    },
+    // 鐐瑰嚮鏍戦噷闈㈢殑纭畾
+    clickNodeSure() {
+      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) {
+        console.log(row);
+        if(row.did!=null&&row.did!=''){
+          let str=""
+        row.empiricalValueAddss.forEach(e=>{
+            str+=e+","
+        })
+        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{
+          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 = []
@@ -350,6 +487,7 @@
       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]
@@ -373,31 +511,59 @@
           });
           return
         }
-        this.InspectioniD = res.data
+        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'])
             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 +604,7 @@
     // 鏄剧ず鏂板椤甸潰
     handleAddNew() {
       this.showAddPage = true;
-      this.getTableData()
+      // this.getTableData()
     },
     // 琛ㄦ牸鍒濆鍖栨帴鍙�
     defaultInitializationTable() {
@@ -492,6 +658,13 @@
 </script>
 
 <style>
+.node_i {
+  color: orange;
+}
+.div_device_dialog {
+  min-height: 400px;
+  overflow: auto;
+}
 .nav {
   display: flex;
   padding: 20px 20px;

--
Gitblit v1.9.3