From abba64c23543cd806ed8864a9a976408618a5f45 Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期日, 24 九月 2023 23:15:54 +0800
Subject: [PATCH] 9-24 加班

---
 src/components/view/processInspection.vue | 1242 ++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 815 insertions(+), 427 deletions(-)

diff --git a/src/components/view/processInspection.vue b/src/components/view/processInspection.vue
index 1ab23ed..1da7079 100644
--- a/src/components/view/processInspection.vue
+++ b/src/components/view/processInspection.vue
@@ -1,435 +1,823 @@
 <template>
     <div class="content-main">
-      <div v-if="!showAddPage" class="rawPage">
-          <div class="title">
-        <el-row>
-          <el-col :span="12">杩囩▼妫�楠�</el-col>
-          <el-col :span="12" style="text-align: right;">
-            <el-button @click="handleAddNew" type="primary" size="mini" icon="el-icon-plus" style="background: #004EA2; ">鏂板</el-button>
-            <el-button icon="el-icon-delete" size="mini">鍒犻櫎</el-button>
-            <el-button icon="el-icon-download" size="mini">瀵煎嚭</el-button>
-          </el-col>
-        </el-row>
-      </div>
-      <div class="nav">
-          <span>妫�楠岀粨鏋滐細</span>
-          <el-select v-model="inspectionResult" size="small" placeholder="璇烽�夋嫨" style="width: 224px;margin-right: 52px;">
-              <el-option value="閫夐」1"></el-option>
-              <el-option value="閫夐」2"></el-option>
-            </el-select>
-            <span>妫�楠屾棩鏈燂細</span>
-            <el-date-picker
-              v-model="inspectionDate"
-              type="date"
-              placeholder="閫夋嫨鏃ユ湡"
-              style="margin-right: 52px">
-             </el-date-picker>
-            <span>妫�楠屼汉锛�</span>
-            <el-select v-model="inspecter" size="small" placeholder="璇烽�夋嫨" style="width: 224px;margin-right: 52px;">
-              <el-option value="閫夐」1"></el-option>
-              <el-option value="閫夐」2"></el-option>
-            </el-select>
-            <el-button size="mini"><span>閲� 缃�</span></el-button>
-            <el-button size="mini" type="primary" style="background: #004EA2;"><span>鏌� 璇�</span></el-button>
-      </div>
-      <div class="content-body">
-          <div class="inspectionTable">
-              <el-table
-                  ref="inspectionTable"
-                  :height="400"
-                  :max-height="400"
-                  :cell-style="{textAlign: 'center'}"
-                  :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
-                  :data="inspectionTable"
-                  style="width: 100%"
-                  >
-                  <el-table-column
-                      type="selection"
-                      width="50">
-                  </el-table-column>
-                  <el-table-column
-                      prop="number"
-                      label="璁㈠崟鍙�"
-                      min-width="100"
-                  />
-                  <el-table-column
-                      prop="username"
-                      label="瀹㈡埛鍚嶇О"
-                      min-width="80"
-                  />
-                  <el-table-column
-                      prop="projectname"
-                      label="宸ョ▼鍚嶇О"
-                      min-width="80"
-                  />
-                  <el-table-column
-                      prop="tracenumber"
-                      label="璐ㄩ噺杩芥函鍙�"
-                      min-width="108"
-                  />
-                  <el-table-column
-                      prop="code"
-                      label="浜у搧缂栫爜"
-                      min-width="100"
-                  />
-                  <el-table-column
-                      prop="class"
-                      label="浜у搧澶х被"
-                      min-width="72"
-                  />
-                  <el-table-column
-                      prop="specificationmodel"
-                      label="瑙勬牸鍨嬪彿"
-                      min-width="110"
-                  />
-                  <el-table-column
-                      prop="unit"
-                      label="鍗曚綅"
-                      min-width="50"
-                  />
-                  <el-table-column
-                      prop="quantity"
-                      label="鏁伴噺"
-                      min-width="50"
-                  />
-                  <el-table-column
-                      prop="machine"
-                      label="鏈哄彴"
-                      min-width="60"
-                  />
-                  <el-table-column
-                      prop="group"
-                      label="鐝粍"
-                      min-width="50"
-                  />
-                  <el-table-column
-                      prop="worker"
-                      label="涓绘満宸�"
-                      min-width="60"
-                  />
-                  <el-table-column
-                      prop="date"
-                      label="妫�楠屾棩鏈�"
-                      min-width="80"
-                  />
-                  <el-table-column
-                      prop="result"
-                      label="妫�娴嬬粨鏋�"
-                      min-width="80"
-                  />
-                  <el-table-column
-                      label="鎿嶄綔"
-                      min-width="80"
-                  >
-                      <template slot-scope="scope">
-                      <el-button type="text" size="small" @click="handleClick(scope.row)">鏌ョ湅</el-button>
-                      <el-button type="text" size="small" style="margin-left: 0;">鎵撳嵃</el-button>
-                      </template>
-                  </el-table-column>
-              </el-table>
-          </div>
-          <!-- 鍒嗛〉鍣� -->
-          <div class="pagination">
-              <el-pagination
-              :current-page="currentPage"
-              :page-sizes="[100, 200, 300, 400]"
-              :page-size="pageSize"
-              layout="total, sizes, prev, pager, next, jumper"
-              :total="this.inspectionTable.length"
-              @size-change="handleSizeChange"
-              @current-change="handleCurrentChange"
-            />
-          </div>
-      </div>
-      </div>
-      <div class="newPage" v-if="showAddPage">
-          <!-- 鏂板椤甸潰 -->
-              <div class="addInspection">
-                  <el-row class="header">
-                      <el-col :span="12">鏂板杩囩▼妫�楠屽崟</el-col>
-                      <el-col :span="12" style="text-align: right;">
-                          <!-- 鐐瑰嚮杩斿洖锛屽綋鍓嶉〉闈㈠�间负false -->
-                      <el-button @click="showAddPage = false" type="primary" size="mini" icon="el-icon-back" style="background: #004EA2; ">杩斿洖</el-button>
-                      </el-col>
-                  </el-row>
-                  <el-form :model="addInspectionform" ref="addInspectionform" class="addInspectionform" label-position="left" label-width="100px" size="mini" >
-                      <div class="formwrapper">
-                          <el-row :gutter="450">
-                          <el-col :span="5">
-                          <el-form-item label="璁㈠崟鍙凤細">
-                              <el-input style="width: 180px;" v-model="addInspectionform.number" placeholder="璇疯緭鍏ヨ鍗曞彿" autocomplete="off" />
-                          </el-form-item>
-                          </el-col>
-                          <el-col :span="5">
-                          <el-form-item label="瀹㈡埛鍚嶇О锛�">
-                              <el-input style="width: 180px;" v-model="addInspectionform.username" placeholder="璇疯緭鍏ュ鎴峰悕绉�" autocomplete="off" />
-                          </el-form-item>
-                          </el-col>
-                          <el-col :span="5">
-                          <el-form-item label="宸ョ▼鍚嶇О锛�">
-                              <el-input style="width: 180px;" v-model="addInspectionform.projectname" placeholder="璇疯緭鍏ュ伐绋嬪悕绉�" autocomplete="off" />
-                          </el-form-item>
-                          </el-col>
-                      </el-row>
-                      <el-row :gutter="450">
-                          <el-col :span="5">
-                          <el-form-item label="璐ㄩ噺杩芥函鍙凤細" >
-                              <el-input style="width: 180px;" v-model="addInspectionform.tracenumber" placeholder="璇疯緭鍏ヨ拷婧彿" autocomplete="off" />
-                          </el-form-item>
-                          </el-col>
-                          <el-col :span="5">
-                          <el-form-item label="浜у搧缂栫爜锛�">
-                              <el-input style="width: 180px;" v-model="addInspectionform.code" placeholder="璇疯緭鍏ヤ骇鍝佺紪鐮�" autocomplete="off" />                        </el-form-item>
-                          </el-col>
-                          <el-col :span="5">
-                          <el-form-item label="浜у搧鍚嶇О锛�">
-                              <el-select style="width: 180px;" v-model="addInspectionform.class" size="small" placeholder="璇烽�夋嫨浜у搧鍚嶇О">
-                                  <el-option value="閫夐」1"></el-option>
-                                  <el-option value="閫夐」2"></el-option>
-                              </el-select>
-                          </el-form-item>
-                          </el-col>
-                      </el-row>
-                      <el-row :gutter="450">
-                          <el-col :span="5">
-                          <el-form-item label="瑙勬牸鍨嬪彿锛�" >
-                              <el-select style="width: 180px;" v-model="addInspectionform.specificationmodel" size="small" placeholder="璇烽�夋嫨瑙勬牸鍨嬪彿">
-                                  <el-option value="閫夐」1"></el-option>
-                                  <el-option value="閫夐」2"></el-option>
-                              </el-select>
-                          </el-form-item>
-                          </el-col>
-                          <el-col :span="5">
-                          <el-form-item label="鍗曚綅锛�" >
-                              <el-select style="width: 180px;" v-model="addInspectionform.unit" size="small" placeholder="璇烽�夋嫨鍗曚綅">
-                                  <el-option value="閫夐」1"></el-option>
-                                  <el-option value="閫夐」2"></el-option>
-                              </el-select>
-                          </el-form-item>
-                          </el-col>
-                          <el-col :span="5">
-                          <el-form-item label="鏁伴噺锛�">
-                              <el-input style="width: 180px;" v-model="addInspectionform.quantity" placeholder="璇疯緭鍏ユ暟閲�" autocomplete="off" />
-                          </el-form-item>
-                          </el-col>
-                      </el-row>
-                      <el-row :gutter="450">
-                          <!-- <el-col :span="5">
-                          <el-form-item label="鐝粍锛�" >
-                              <el-select style="width: 180px;" v-model="addInspectionform.group" size="small" placeholder="璇烽�夋嫨鐝粍">
-                                  <el-option value="閫夐」1"></el-option>
-                                  <el-option value="閫夐」2"></el-option>
-                              </el-select>                       </el-form-item>
-                          </el-col> -->
-                          <el-col :span="5">
-                          <el-form-item label="涓绘満宸ワ細" >
-                              <el-select style="width: 180px;" v-model="addInspectionform.worker" size="small" placeholder="璇烽�夋嫨涓绘満宸�">
-                                  <el-option value="閫夐」1"></el-option>
-                                  <el-option value="閫夐」2"></el-option>
-                              </el-select>
-                          </el-form-item>
-                          </el-col>
-                          <el-col :span="5">
-                          <el-form-item label="鏈哄彴锛�" >
-                              <el-select style="width: 180px;" v-model="addInspectionform.machine" size="small" placeholder="璇烽�夋嫨浜у搧鏈哄彴">
-                                  <el-option value="閫夐」1"></el-option>
-                                  <el-option value="閫夐」2"></el-option>
-                              </el-select>
-                          </el-form-item>
-                          </el-col>
-                      </el-row>
-                      </div>
-                  </el-form>
-              </div>
-              <div class="inspectionProject">
-                  <span>妫�楠岄」鐩�</span>
-                  <el-table :data="inspectionItems">
-                      <el-table-column type="index" label="搴忓彿" width="60"></el-table-column>
-                      <el-table-column prop="project" label="椤圭洰"></el-table-column>
-                      <el-table-column prop="unit" label="鍗曚綅"></el-table-column>
-                      <el-table-column prop="standardVal" label="鏍囧噯鍊�"></el-table-column>
-                      <el-table-column prop="controlVal" label="鍐呮祴鍊�"></el-table-column>
-                      <el-table-column prop="detectionVal" label="妫�楠屽��"></el-table-column>
-                      <el-table-column label="璇曢獙璁惧">
-                          <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>
-                      </template>
-                      </el-table-column>
-                      <el-table-column prop="conclusion" label="缁撹">
-                          <template slot-scope="scope">
-                              <span style="color: #34BD66;" v-if="scope.row.insState==1">鍚堟牸</span>
-                              <span style="color: #E84738;" v-else-if="scope.row.insState==0">涓嶅悎鏍�</span>
-                          </template>
-                      </el-table-column>
-                  </el-table>
-              </div>
-              <div class="inspectionResult">
-                  <span>妫�娴嬬粨鏋�</span>
-                  <el-table :data="inspectionResultForm">
-                      <el-table-column prop="id" label="鐗╂枡缂栧彿"></el-table-column>
-                      <el-table-column prop="name" label="鐗╂枡鍚嶇О"></el-table-column>
-                      <el-table-column prop="inspecter" label="妫�楠屽憳"></el-table-column>
-                      <el-table-column prop="conclusion" label="妫�楠岀粨璁�"></el-table-column>
-                      <el-table-column prop="operation" label="涓婃姤"></el-table-column>
-                  </el-table>
-              </div>
-          </div>
-
+        <div v-if="!showAddPage && !showUp && !showLook" class="rawPage">
+            <div class="title">
+                <el-row>
+                    <el-col :span="12">杩囩▼妫�楠�</el-col>
+                    <el-col :span="12" style="text-align: right;">
+                        <el-button @click="handleAddNew" type="primary" size="mini" icon="el-icon-plus" style="background: #004EA2; ">鏂板</el-button>
+                        <el-button icon="el-icon-download" size="mini">瀵煎嚭</el-button>
+                    </el-col>
+                </el-row>
+            </div>
+            <div class="nav">
+                <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="0" label="涓嶅悎鏍�"></el-option>
+                </el-select>
+                <span>浜у搧鍚嶇О锛�</span>
+                <el-input size="small" style="width: 224px;margin-right: 30px;" v-model="search.name" placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�"></el-input>
+                <span>宸ュ簭锛�</span>
+                <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" @click="searchPro" type="primary" style="background: #004EA2;"><span>鏌� 璇�</span></el-button>
+            </div>
+            <div class="content-body">
+                <div class="inspectionTable">
+                    <el-table ref="inspectionTable" height="calc(100vh - 290px)" :cell-style="{ textAlign: 'center' }" :header-cell-style="{
+                        border: '0px',
+                        background: '#f5f7fa',
+                        color: '#606266',
+                        boxShadow: 'inset 0 1px 0 #ebeef5',
+                        textAlign: 'center'
+                        }" border :data="inspectionTable" style="width: 100%">
+                        <el-table-column type="selection" width="50"> </el-table-column>
+                        <el-table-column label="搴忓彿" type="index" width="60"></el-table-column>
+                        <el-table-column prop="order_number" label="璁㈠崟缂栧彿" min-width="100" />
+                        <el-table-column prop="material" label="浜у搧鍚嶇О" min-width="100" />
+                        <el-table-column prop="specifications_model" label="瑙勬牸鍨嬪彿" min-width="100" />
+                        <el-table-column prop="techfather" label="宸ュ簭" min-width="60" />
+                        <el-table-column prop="techname" label="宸ヨ壓鍚嶇О" min-width="100" />
+                        <el-table-column prop="unit" label="鍗曚綅" min-width="60" />
+                        <el-table-column prop="quantity" label="鏁伴噺" min-width="60" />
+                        <el-table-column prop="createTime" label="鎶ユ鏃ユ湡" min-width="110" />
+                        <el-table-column prop="name" label="鎶ユ浜�" min-width="80" />
+                        <el-table-column prop="updateTime" label="妫�娴嬫棩鏈�" min-width="110" />
+                        <el-table-column prop="result" label="鍚堟牸鐘舵��" min-width="100">
+                            <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>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="鎿嶄綔" min-width="150" fixed="right">
+                            <template slot-scope="scope">
+                                <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="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>
+            </div>
+        </div>
+        <div class="newPage" v-if="showAddPage">
+            <!-- 鏂板椤甸潰 -->
+            <div class="addInspection">
+                <el-row class="header">
+                    <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="combackIndex" type="primary" size="mini" icon="el-icon-back" style="background: #004EA2; ">杩斿洖</el-button>
+                    </el-col>
+                </el-row>
+                <el-form :model="processInspectVo" ref="addInspectionform" class="addInspectionform" label-position="right" label-width="120px" size="small">
+                    <div class="formwrapper">
+                        <el-row :gutter="230">
+                            <el-col :span="7">
+                                <el-form-item label="璁㈠崟鍙凤細">
+                                    <el-input @blur="selectInfoByOrderId" style="width: 210px;" size="small" v-model="processInspectVo.orderNumber" placeholder="璇疯緭鍏ヨ鍗曞彿" />
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="7">
+                                <el-form-item label="浜у搧鍚嶇О锛�">
+                                    <el-select style="width: 210px;" size="small" @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>
+                                    </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-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-form-item>
+                            </el-col>
+                            <el-col :span="7">
+                                <el-form-item label="宸ュ簭鍚嶇О锛�">
+                                    <el-select @change="changeOptionSoptionSprocesses" 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>
+                                    </el-select>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="7">
+                                <el-form-item label="宸ヨ壓鍚嶇О锛�">
+                                    <el-select v-model="processInspectVo.techname" 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>
+                                    </el-select>
+                                </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.unit" placeholder="璇疯緭鍏ュ崟浣�" />
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="7">
+                                <el-form-item label="鏁伴噺锛�">
+                                    <el-input style="width: 210px;" size="small" v-model="processInspectVo.quantity" placeholder="璇疯緭鍏ユ暟閲�" />
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="10" style="display: flex;justify-content: end;">
+                                <el-button type="primary" :disabled="isAddProject" @click="addTestProjevt">鐢熸垚妫�楠岄」鐩�</el-button>
+                            </el-col>
+                        </el-row>
+                    </div>
+                </el-form>
+            </div>
+            <div class="inspectionProject">
+                <el-row>
+                    <el-col :span="12" class="inspectionProject_span">妫�楠岄」鐩�</el-col>
+                    <el-col :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
+              size="mini"
+              style="margin-right: 30px;"
+              @click="clickAddLine()"
+              >娣诲姞妫�楠岃</el-button
+            > -->
+                    </el-col>
+                </el-row>
+                <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" v-for="(item, index) in empiricalValueAdd" :key="index" label="妫�娴嬪��" min-width="100" style="text-align: center;">
+                        <template slot-scope="scope">
+                            <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>
+                    <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">
+            <template slot-scope="scope">
+              <el-button type="text" @click="clickDeleteline(scope)">鍒犻櫎</el-button>
+            </template>
+          </el-table-column> -->
+                </el-table>
+            </div>
+            <div class="inspectionResult">
+                <span>妫�娴嬬粨鏋�</span>
+                <el-table :data="inspectionResultForm">
+                    <el-table-column prop="id" label="鐗╂枡缂栧彿"></el-table-column>
+                    <el-table-column prop="name" label="鐗╂枡鍚嶇О"></el-table-column>
+                    <el-table-column prop="inspecter" label="妫�楠屽憳"></el-table-column>
+                    <el-table-column prop="conclusion" label="妫�楠岀粨璁�"></el-table-column>
+                    <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>
+</template>
 
+<script>
+import processInspectionUpdate from "../view/processInspectionUpdate.vue";
+import processInspectionLook from "../view/processInspectionLook.vue";
+export default {
+    components: {
+        processInspectionUpdate,
+        processInspectionLook,
+    },
+    data() {
+        return {
+            showUp: false,
+            isAddProject: false,
+            showLook: false,
+            detailId: 28,
+            rowInfp: {},
+            search: {
+                countSize: 10,
+                pageSize: 1,
+                result: "", // 妫�娴嬬姸鎬�
+                name: "", // 浜у搧鍚嶇О
+                techfather: "", // 宸ュ簭
+            },
+            optionsSamplename: [],
+            inspectionTable: [],
+            tableColumn: [],
+            optionSoptionSprocesses: [],
+            optionTechnology: [],
+            inspectionTableTotal: 0,
+            pageSize: 10,
+            currentPage: 1,
+            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, // 鐐瑰嚮閫夋嫨瀛樺偍褰撳墠琛岄」鐩甀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();
+        },
+        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;
+                    }
+                }
+            });
+        },
+        changeOptionSoptionSprocesses() {
+            this.optionTechnology = [];
+            let working = this.optionSoptionSprocesses.filter((item) => {
+                return item.name === this.processInspectVo.techfather;
+            })[0];
+            this.optionTechnology = working.children;
+        },
+        addTestProjevt() {
+            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,
+                        orderNumber: val.orderNumber,
+                        quantity: val.quantity,
+                        specificationsModel: val.specificationsModel,
+                        techfather: val.techfather,
+                        techname: val.techname,
+                        techId: Number(val.technologyId),
+                        mtId: Number(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.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: this.detailId,
+                        type: 1,
+                    },
+                })
+                .then((res) => {
+                    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;
+        },
+    },
+    created() {
+        this.defaultInitializationTable(); // 鍒濆鍖栬〃鏍兼暟鎹�
+    },
+};
+</script>
 
-  <script>
-  export default {
-      data(){
-          return {
-              inspectionResult: '',
-              inspectionDate: '',
-              inspecter: '',
-              inspectionTable:[{
-                  number: '8540395029753',
-                  username: 'jack',
-                  projectname: '甯冮殕杩�',
-                  tracenumber: '826403164021',
-                  code: 'C-982164',
-                  class: '鎴愬搧',
-                  specificationmodel: '8.8/15kV JLS-3.2',
-                  unit: '鍚�',
-                  quantity: '15',
-                  machine: '鎷夐椄鏈�',
-                  group: '1缁�',
-                  worker: '榛勫皬鏄�',
-                  date: '2023-08-01',
-                  result: '鍚堟牸',
-                  operation: ''
-              },{
-                  number: '2497320327652',
-                  username: 'rose',
-                  projectname: '甯冮殕杩�',
-                  tracenumber: '826403164021',
-                  code: 'C-24114',
-                  class: '鎴愬搧',
-                  specificationmodel: '8.6/15kV JAD-3.2',
-                  unit: '鍚�',
-                  quantity: '43',
-                  machine: '鎷夐椄鏈�',
-                  group: '1缁�',
-                  worker: '榛勫皬鏄�',
-                  date: '2023-08-01',
-                  result: '鍚堟牸',
-                  operation: ''
-              }],
-              currentPage: 1, // 褰撳墠椤电爜
-              pageSize: 100,
-              showAddPage: false,
-              addInspectionform: [{
-                  number: '',
-                  username: '',
-                  projectname: '',
-                  tracenumber: '',
-                  code: '',
-                  class: '',
-                  specificationmodel: '',
-                  unit: '',
-                  quantity: '',
-                  group: '',
-                  worker: '',
-                  machine: ''
-              }],
-              inspectionItems:[{
-                  project:'甯冮殕杩�',
-                  unit:'鍚�',
-                  standardVal: '8219384314',
-                  controlVal:'9823401',
-                  detectionVal:'11111',
-                  device:'',
-                  conclusion:'鍚堟牸'
-              }],
-              inspectionResultForm:[{
-                  id:'274024',
-                  name:'111',
-                  inspecter:'111',
-                  conclusion:'',
-                  operation:''
-              }]
-          }
-      },
-      methods:{
-          // 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
-          handleSizeChange(val) {
-          console.log(`姣忛〉 ${val} 鏉)
-          this.currentPage = 1
-          this.pageSize = val
-          },
-          // 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤�
-          handleCurrentChange(val) {
-          console.log(`褰撳墠椤�: ${val}`)
-          this.currentPage = val
-          },
-          handleAddNew(){
-              this.showAddPage=true
-          }
-      }
+<style>
+.node_i {
+    color: orange;
+}
 
-  }
-  </script>
+.div_device_dialog {
+    min-height: 400px;
+    overflow: auto;
+}
 
-  <style>
-  .title{
-      padding: 12px;
+.nav {
+    display: flex;
+    padding: 20px 20px;
+    align-items: center;
+    background-color: #fff;
+}
 
-  }
-  .nav{
-      display: flex;
-      padding: 20px 20px;
-      align-items: center;
-      background-color: #fff;
-  }
-  .nav *{
-      font-size: 14px;
-  }
-  .content-body .rawPage{
-      background-color: #fff;
-      overflow: hidden;
-  }
-  .inspectionTable{
-      padding: 20px 20px;
-  }
-  .pagination{
-      float: right;
-      margin-right: 20px;
-  }
-  .newPage{
-      overflow: hidden;
-  }
-  .header{
-      padding: 12px;
-  }
-  .addInspectionform{
-      background-color: #fff;
-  }
-  .addInspectionform .formwrapper{
-      padding: 20px 0px;
-      margin-left: 100px;
-  }
-  .inspectionProject span{
-      display: block;
-      padding: 5px 0px;
-  }
-  .inspectionProject .el-table{
-      background-color: #fff;
-      padding: 10px 12px;
-  }
-  .inspectionResult span{
-      display: block;
-      padding: 5px 0px;
-  }
-  .inspectionResult .el-table{
-      background-color: #fff;
-      padding: 10px 12px;
-  }
-  </style>
+.table_header {
+    height: calc(100vh - 550px);
+}
+
+.nav * {
+    font-size: 14px;
+}
+
+.content-body .rawPage {
+    background-color: #fff;
+    overflow: hidden;
+}
+
+.rawPage span {
+    white-space: nowrap;
+}
+
+.inspectionTable {
+    padding: 20px 20px;
+}
+
+.pagination {
+    float: right;
+    margin-right: 20px;
+}
+
+.newPage {
+    overflow: hidden;
+}
+
+.header {
+    padding: 12px;
+}
+
+.addInspectionform {
+    background-color: #fff;
+}
+
+.addInspectionform .formwrapper {
+    padding: 20px 0px;
+    margin-left: 100px;
+}
+
+.inspectionProject .el-table {
+    background-color: #fff;
+    padding: 10px 12px;
+}
+
+.inspectionResult span {
+    display: block;
+    padding: 5px 0px;
+}
+
+.inspectionResult .el-table {
+    background-color: #fff;
+    padding: 10px 12px;
+}
+
+.inspectionProject_span {
+    line-height: 32px;
+    padding: 10px 20px;
+}
+
+.inspectionProject_span .el-button {
+    float: right;
+    font-size: 13px !important;
+}
+</style>

--
Gitblit v1.9.3