From 22b45a79b2ceab7625e0fe248458c398cc26110d Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期一, 25 九月 2023 12:53:59 +0800
Subject: [PATCH] 	modified:   src/components/view/Processingproducts.vue 	modified:   src/components/view/rawInsDetail.vue 	modified:   src/components/view/sale.vue

---
 src/components/view/rawInsDetail.vue | 1028 +++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 605 insertions(+), 423 deletions(-)

diff --git a/src/components/view/rawInsDetail.vue b/src/components/view/rawInsDetail.vue
index cd05798..4bda44d 100644
--- a/src/components/view/rawInsDetail.vue
+++ b/src/components/view/rawInsDetail.vue
@@ -1,459 +1,641 @@
 <template>
-  <div class="rawInsBox">
-    <div class="title">
-      <el-row>
-        <el-col :span="12" style="line-height: 32px;">鍘熸潗鏂欐楠�</el-col>
-        <el-col :span="12" style="text-align: right;">
-          <el-button
-            icon="el-icon-circle-plus-outline"
-            v-show="detailId === null"
-            @click="addNewRawInspect"
-            style="background-color: #004ea2; color: #ffffff;"
-            >鎻� 浜�</el-button
-          >
-          <el-button
-            icon="el-icon-download"
-            @click="
-              () => {
-                goBack();
-              }
-            "
-            >杩� 鍥�</el-button
-          >
-        </el-col>
-      </el-row>
-    </div>
-    <div
-      class="raw-detail-info"
-      :class="detailId === null ? 'raw-detail-info-edit' : ''"
-    >
-      <el-form v-model="detailInfo" label-position="right" label-width="120px">
-        <el-row>
-          <el-col :span="7">
-            <el-form-item label="鏉ユ枡鏃ユ湡:">
-              <el-input
-                v-if="detailId !== null"
-                :disabled="detailId !== null"
-                v-model="detailInfo.formTime"
-              ></el-input>
-              <el-date-picker
-                v-else
-                type="date"
-                value-format="yyyy-MM-dd"
-                v-model="detailInfo.formTime"
-                placeholder="閫夋嫨鏃ユ湡"
-              >
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-          <el-col :span="7">
-            <el-form-item label="鍘熸潗鏂欏悕绉�:">
-              <el-input
-                v-if="detailId !== null"
-                :disabled="detailId !== null"
-                v-model="detailInfo.name"
-              ></el-input>
-              <el-input
-                v-else
-                v-model="detailInfo.name"
-                placeholder="璇疯緭鍏�"
-              ></el-input> </el-form-item
-          ></el-col>
-          <el-col :span="7">
-            <el-form-item label="鍘熸潗鏂欑紪鐮�:">
-              <el-input
-                :disabled="detailId !== null"
-                v-model="detailInfo.code"
-              ></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="7">
-            <el-form-item label="瑙勬牸鍨嬪彿:">
-              <el-input
-                v-if="detailId !== null"
-                :disabled="detailId !== null"
-                v-model="detailInfo.specifications"
-              ></el-input>
-              <el-input
-                v-else
-                v-model="detailInfo.specificationsArr"
-                placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�"
-              ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="7">
-            <el-form-item label="鍗曚綅:">
-              <el-input
-                placeholder="璇疯緭鍏ユ楠屽崟浣�"
-                :disabled="detailId !== null"
-                v-model="detailInfo.unit"
-              ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="7">
-            <el-form-item label="鏁伴噺:">
-              <el-input
-                placeholder="璇疯緭鍏ユ楠屾暟閲�"
-                :disabled="detailId !== null"
-                v-model="detailInfo.number"
-              ></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="7">
-            <el-form-item label="渚涘簲鍟嗗悕绉�:">
-              <el-input
-                placeholder="璇疯緭鍏ユ楠屾暟閲�"
-                :disabled="detailId !== null"
-                v-model="detailInfo.number"
-              ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="7">
-            <el-form-item v-show="detailId !== null" label="鎶ユ鏃ユ湡:">
-              <el-input
-                :disabled="detailId !== null"
-                v-model="detailInfo.createTime"
-              ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="7">
-            <el-form-item v-show="detailId !== null" label="鎶ユ浜�:">
-              <el-input
-                :disabled="detailId !== null"
-                v-model="detailInfo.userName"
-              ></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-    </div>
-    <div class="title">
-      <el-row>
-        <el-col :span="12" style="line-height: 32px;">妫�楠岄」鐩�</el-col>
-        <el-col :span="12" style="line-height: 32px; padding-top: 6px;">
-          <el-button v-if="detailId == null" style="float: right;"
-            >娣诲姞妫�楠屽�煎垪</el-button
-          >
-          <el-button
-            v-if="detailId == null"
-            style="float: right;margin-right: 30px;"
-            @click="clickAddLine()"
-            >娣诲姞妫�楠岃</el-button
-          >
-        </el-col>
-      </el-row>
-    </div>
-    <div class="raw-project-table">
-      <el-table :data="projectTable" style="width: 100%" height="320">
-        <el-table-column type="index" label="搴忓彿" width="100">
-        </el-table-column>
-        <el-table-column prop="name" label="椤圭洰" width="212">
-          <template scope="scope">
-            <el-input
-              v-model="scope.row.name"
-              placeholder="璇疯緭鍏ラ」鐩悕绉�"
-            ></el-input>
-          </template>
-        </el-table-column>
-        <el-table-column prop="unit" label="鍗曚綅" width="148">
-          <template scope="scope">
-            <el-input
-              v-model="scope.row.unit"
-              placeholder="璇疯緭鍏ュ崟浣�"
-            ></el-input>
-          </template>
-        </el-table-column>
-        <el-table-column prop="required" label="鏍囧噯" width="254">
-          <template scope="scope">
-            <el-input
-              v-model="scope.row.required"
-              placeholder="璇疯緭鍏ユ爣鍑嗗��"
-            ></el-input>
-          </template>
-        </el-table-column>
-        <el-table-column prop="internal" label="鍐呮帶鍊�" width="254">
-          <template scope="scope">
-            <el-input
-              v-model="scope.row.internal"
-              placeholder="璇疯緭鍏ュ唴鎺у��"
-            ></el-input>
-          </template>
-        </el-table-column>
-        <el-table-column prop="testValue" label="妫�鏌ュ��" width="254">
-          <template slot-scope="scope">
-            <el-input
-              v-model="scope.row.testValue"
-              @blur="changeState(scope.row)"
-              placeholder="璇疯緭鍏ユ娴嬪��"
-            ></el-input>
-          </template>
-        </el-table-column>
-        <el-table-column prop="deviceName" label="璇曢獙璁惧">
-          <el-button type="text">閫夋嫨</el-button>
-        </el-table-column>
-        <el-table-column prop="testState" label="缁撹">
-          <template slot-scope="scope">
-            <span
-              v-show="scope.row.testState != null"
-              :style="{
-                color: scope.row.testState === 1 ? '#67C23A' : '#F56C6C'
-              }"
-              >{{ scope.row.testState === 1 ? "鍚堟牸" : "涓嶅悎鏍�" }}</span
-            >
-            <span v-show="scope.row.testState == null">鏆傛湭缁撹</span>
-          </template>
-        </el-table-column>
-        <el-table-column v-if="detailId == null" label="鎿嶄綔" fixed="right">
-          <template scope="scope">
-            <el-button type="text" @click="clickDeleteline(scope)"
-              >鍒犻櫎</el-button
-            >
-          </template>
-        </el-table-column>
-      </el-table>
-    </div>
-    <div class="title">
-      <el-row>
-        <el-col :span="12" style="line-height: 32px;">妫�楠岀粨璁�</el-col>
-      </el-row>
-    </div>
-    <div class="raw-conclusion-table">
-      <el-table :data="conclusionTable" style="100%">
-        <el-table-column prop="code" label="鐗╂枡缂栧彿"> </el-table-column>
-        <el-table-column prop="name" label="鐗╂枡鍚嶇О"> </el-table-column>
-        <el-table-column prop="names" label="妫�楠屽憳">
-          <template slot-scope="scope">
-            <span
-              v-for="item in scope.row.names"
-              :key="item && item.userName"
-              :style="{ marginRight: '8px' }"
-              >{{ item }}</span
-            >
-          </template>
-        </el-table-column>
-        <el-table-column prop="testState" label="妫�楠岀粨璁�">
-          <template slot-scope="scope">
-            <span
-              v-show="scope.row.testState != null"
-              :style="{
-                color: scope.row.testState === 1 ? '#67C23A' : '#F56C6C'
-              }"
-              >{{ scope.row.testState === 1 ? "鍚堟牸" : "涓嶅悎鏍�" }}</span
-            >
-            <span v-show="scope.row.testState == null">鏆傛湭缁撹</span>
-          </template>
-        </el-table-column>
-        <el-table-column v-if="detailId !== null" label="鎿嶄綔" width="120">
-          <template>
-            <el-button type="text" size="small" @click.once="submitSave"
-              >涓婃姤</el-button
-            >
-          </template>
-        </el-table-column>
-      </el-table>
-    </div>
-  </div>
+	<div class="rawInsBox">
+		<div class="title">
+			<el-row>
+				<el-col :span="12" style="line-height: 32px;">鍘熸潗鏂欐楠�</el-col>
+				<el-col :span="12" style="text-align: right;">
+					<el-button icon="el-icon-circle-plus-outline" v-show="detailId === null" @click="addNewRawInspect"
+						style="background-color: #004ea2; color: #ffffff;">鎻� 浜�</el-button>
+					<el-button icon="el-icon-back" @click="() => {
+						goBack();
+					}
+						">杩� 鍥�</el-button>
+				</el-col>
+			</el-row>
+		</div>
+		<div class="raw-detail-info" :class="detailId === null ? 'raw-detail-info-edit' : ''">
+			<el-form v-model="detailInfo" label-position="right" label-width="120px">
+				<el-row>
+					<el-col :span="7">
+						<el-form-item label="鏉ユ枡鏃ユ湡:">
+							<el-input v-if="detailId !== null" :disabled="detailId !== null"
+								v-model="detailInfo.formTime"></el-input>
+							<el-date-picker v-else type="date" value-format="yyyy-MM-dd" v-model="detailInfo.formTime"
+								placeholder="閫夋嫨鏃ユ湡">
+							</el-date-picker>
+						</el-form-item>
+					</el-col>
+					<el-col :span="7">
+						<el-form-item label="鍘熸潗鏂欏悕绉�:">
+							<el-input v-if="detailId !== null" :disabled="detailId !== null"
+								v-model="detailInfo.name"></el-input>
+							<el-input v-else v-model="detailInfo.name" placeholder="璇疯緭鍏ュ師鏉愭枡鍚嶇О"></el-input>
+						</el-form-item></el-col>
+					<el-col :span="7">
+						<el-form-item label="鍘熸潗鏂欑紪鐮�:">
+							<el-input v-if="detailId !== null" :disabled="detailId !== null"
+								v-model="detailInfo.code"></el-input>
+							<el-input @blur="blurCode" v-else v-model="detailInfo.code" placeholder="璇疯緭鍏ュ師鏉愭枡缂栫爜"></el-input>
+						</el-form-item>
+					</el-col>
+				</el-row>
+				<el-row>
+					<el-col :span="7">
+						<el-form-item label="瑙勬牸鍨嬪彿:">
+							<el-input v-if="detailId !== null" :disabled="detailId !== null"
+								v-model="detailInfo.specifications"></el-input>
+							<el-input v-else v-model="detailInfo.specifications" placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�"></el-input>
+						</el-form-item>
+					</el-col>
+					<el-col :span="7">
+						<el-form-item label="鍗曚綅:">
+							<el-input v-if="detailId !== null" :disabled="detailId !== null"
+								v-model="detailInfo.runit"></el-input>
+							<el-input v-else placeholder="璇疯緭鍏ユ楠屽崟浣�" :disabled="detailId !== null"
+								v-model="detailInfo.unit"></el-input>
+						</el-form-item>
+					</el-col>
+					<el-col :span="7">
+						<el-form-item label="鏁伴噺:">
+							<el-input :placeholder="detailId !== null ? '' : '璇疯緭鍏ユ楠屾暟閲�'" :disabled="detailId !== null"
+								v-model="detailInfo.number"></el-input>
+						</el-form-item>
+					</el-col>
+				</el-row>
+				<el-row>
+					<el-col :span="7">
+						<el-form-item label="渚涘簲鍟嗗悕绉�:">
+							<el-input :placeholder="detailId !== null ? '' : '璇疯緭鍏ヤ緵搴斿晢鍚嶇О'" :disabled="detailId !== null"
+								v-model="detailInfo.supplier"></el-input>
+						</el-form-item>
+					</el-col>
+					<el-col :span="7">
+						<el-form-item v-show="detailId !== null" label="鎶ユ鏃ユ湡:">
+							<el-input :disabled="detailId !== null" v-model="detailInfo.creatTime"></el-input>
+						</el-form-item>
+					</el-col>
+					<el-col :span="7">
+						<el-form-item v-show="detailId !== null" label="鎶ユ浜�:">
+							<el-input :disabled="detailId !== null" v-model="detailInfo.userName"></el-input>
+						</el-form-item>
+					</el-col>
+				</el-row>
+			</el-form>
+		</div>
+		<div class="title">
+			<el-row>
+				<el-col :span="12" style="line-height: 32px;">妫�楠岄」鐩�</el-col>
+				<el-col :span="12" style="line-height: 32px; padding-top: 6px;">
+					<el-button style="float: right;" @click="clickDeleteInspectionColumn()">鍒犻櫎妫�楠屽�煎垪</el-button>
+					<el-button style="float: right;margin-right: 30px;"
+						@click="clickAddInspectionColumn()">娣诲姞妫�楠屽�煎垪</el-button>
+					<el-button v-if="detailId == null" style="float: right;margin-right: 30px;"
+						@click="clickAddLine()">娣诲姞妫�楠岃</el-button>
+				</el-col>
+			</el-row>
+		</div>
+		<div class="raw-project-table">
+			<el-table :data="projectTable" style="width: 100%" height="320">
+				<el-table-column type="index" label="搴忓彿" width="60">
+				</el-table-column>
+				<el-table-column prop="rpName" label="椤圭洰" width="212">
+					<template slot-scope="scope">
+						<!-- <el-input v-if="detailId == null" v-model="scope.row.name" placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input> -->
+						<el-autocomplete v-if="detailId == null" class="inline-input" v-model="scope.row.name"
+							:fetch-suggestions="querySearch" placeholder="璇疯緭鍏ラ」鐩悕绉�" @select="handleSelect(scope.row)"
+							@blur="handleSelect(scope.row)"></el-autocomplete>
+						<el-input v-else v-model="scope.row.rpName" disabled></el-input>
+					</template>
+				</el-table-column>
+				<el-table-column prop="unit" label="鍗曚綅" width="148">
+					<template slot-scope="scope">
+						<el-input v-if="detailId == null" v-model="scope.row.unit" placeholder="璇疯緭鍏ュ崟浣�"></el-input>
+						<el-input v-else v-model="scope.row.rpUnit" disabled></el-input>
+					</template>
+				</el-table-column>
+				<el-table-column prop="required" label="鏍囧噯鍊�" min-width="150">
+					<template slot-scope="scope">
+						<el-input :disabled="detailId != null" @blur="assertTest(scope.row)" v-model="scope.row.required"
+							placeholder="璇疯緭鍏ユ爣鍑嗗��"></el-input>
+					</template>
+				</el-table-column>
+				<el-table-column prop="internal" label="鍐呮帶鍊�" min-width="150">
+					<template slot-scope="scope">
+						<el-input @blur="assertTest(scope.row)" :disabled="detailId != null" v-model="scope.row.internal"
+							placeholder="璇疯緭鍏ュ唴鎺у��"></el-input>
+					</template>
+				</el-table-column>
+				<el-table-column prop="testValue" label="妫�娴嬪��" min-width="150" v-for="(item, index) in empiricalValueAdd"
+					:key="index">
+					<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" v-model="scope.row.testValueList[index]"
+								@blur="changeState(scope.row, index)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input>
+						</el-tooltip>
+					</template>
+				</el-table-column>
+				<el-table-column prop="deviceName" label="璇曢獙璁惧" min-width="100">
+					<template slot-scope="scope">
+						<el-button type="text" @click="clickTableSelect(scope)">{{
+							scope.row.deviceId == null ? "璇烽�夋嫨" : scope.row.deviceName
+						}}</el-button>
+					</template>
+				</el-table-column>
+				<el-table-column v-if="detailId !== null" prop="testState" label="缁撹" min-width="100">
+					<template slot-scope="scope">
+						<span v-show="scope.row.testState != null" :style="{
+							color: scope.row.testState === 1 ? '#67C23A' : '#F56C6C'
+						}">{{ scope.row.testState === 1 ? "鍚堟牸" : "涓嶅悎鏍�" }}</span>
+						<span v-show="scope.row.testState == 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="title">
+			<el-row>
+				<el-col :span="12" style="line-height: 32px;">妫�楠岀粨璁�</el-col>
+			</el-row>
+		</div>
+		<div class="raw-conclusion-table">
+			<el-table :data="conclusionTable" style="100%">
+				<el-table-column prop="code" label="鐗╂枡缂栧彿"> </el-table-column>
+				<el-table-column prop="name" label="鐗╂枡鍚嶇О"> </el-table-column>
+				<el-table-column v-if="detailId != null" prop="uName" label="妫�楠屽憳">
+					<template slot-scope="scope">
+						<span v-for="item in scope.row.uName" :key="item && item.uName" :style="{ marginRight: '8px' }">{{
+							item }}</span>
+					</template>
+				</el-table-column>
+				<el-table-column prop="testState" label="妫�楠岀粨璁�">
+					<template slot-scope="scope">
+						<span v-show="scope.row.testState != null" :style="{
+							color: scope.row.testState === 1 ? '#67C23A' : '#F56C6C'
+						}">{{ scope.row.testState === 1 ? "鍚堟牸" : "涓嶅悎鏍�" }}</span>
+						<span v-show="scope.row.testState != null">{{ null }}</span>
+					</template>
+				</el-table-column>
+				<el-table-column v-if="detailId !== null" label="鎿嶄綔" width="120">
+					<template>
+						<el-button type="text" size="small" @click="submitSave">涓婃姤</el-button>
+					</template>
+				</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>
 </template>
 
 <script>
+import {
+	triggerRef
+} from "vue";
 import RawIns from "./raw-ins.vue";
 export default {
-  components: { RawIns },
-  props: ["goBack", "detailId"],
-  created() {
-    // 娓呯┖
-    this.detailInfo = {};
-    if (this.detailId) {
-      this.getDetailInfo();
-    } else {
-      this.getOptions();
-    }
-  },
-  mounted() {},
-  computed: {
-    conclusionTable() {
-      const conclusion = {};
-      conclusion.name = this.detailInfo.name;
-      conclusion.code = this.detailInfo.code;
-      conclusion.names = [
-        ...new Set(this.projectTable.map(item => item.userName))
-      ];
-      if (
-        this.projectTable.filter(item => item.testState === null).length ===
-        this.projectTable.length
-      ) {
-        conclusion.testState = null;
-        return [conclusion];
-      }
-      if (this.projectTable.filter(item => item.testState === 0).length > 0) {
-        conclusion.testState = 0;
-      } else {
-        conclusion.testState = 1;
-      }
-      return [conclusion];
-    }
-  },
-  data() {
-    return {
-      // 璇︽儏椤靛氨鏄鎯呬俊鎭�
-      detailInfo: {},
-      projectTable: [],
-      // 鏂板缓妫�楠屽崟鍙傛暟瀵硅薄
-      rawInsParams: {},
-      // 椤圭洰鍚嶇Оoptions
-      materialOptions: [],
-      specificationOptions: []
-    };
-  },
-  methods: {
-    // 鑾峰彇鎶ユ鍗曡鎯呬俊鎭�
-    async getDetailInfo() {
-      const { data } = await this.$axios.get(
-        this.$api.url.selectRawInspectsListById + `${this.detailId}`,
-        { params: { id: this.detailId } }
-      );
-      this.detailInfo = data;
-      this.projectTable = data.rawInsProducts;
-    },
-    // 鏂板妫�楠屽崟
-    async addNewRawInspect() {
-      this.detailInfo.specifications = this.detailInfo.specificationsArr.join(
-        "-"
-      );
-      // const time = this.detailInfo.formTime
-      // this.detailInfo.formTime = `${time.getFullYear()}-${time.getMonth() + 1 < 10 ? '0' + (time.getMonth() + 1) : time.getMonth() + 1}-${time.getDate() < 10 ? '0' + time.getDate() : time.getDate()}`
-      const res = await this.$axios.post(
-        this.$api.url.addRawInspects,
-        { ...this.detailInfo },
-        { headers: { "Content-Type": "application/json" } }
-      );
-      this.detailId = res.data;
-      this.getDetailInfo();
+	components: {
+		RawIns
+	},
+	props: ["goBack", "detailId"],
+	created() {
+		// 娓呯┖
+		this.detailInfo = {};
+		if (this.detailId) {
+			this.getDetailInfo();
+		}
+		this.getOptions();
+	},
+	mounted() {
 
-      this.$message.success("鎻愪氦鎴愬姛");
-    },
-    // 淇敼椤圭洰鐨勬娴嬪�兼敼鍙樼粨璁�
-    async changeState(row) {
-      const res = await this.$axios.post(
-        this.$api.url.updaterawInsProduct,
-        { ...row },
-        { headers: { "Content-Type": "application/json" } }
-      );
-      this.$message.success("鎻愪氦鎴愬姛");
-      this.getDetailInfo(); //閲嶆柊鍒锋柊淇℃伅鏁版嵁
-    },
-    async submitSave() {
-      const res = await this.$axios.post(
-        this.$api.url.updateRawInspectsById + `${this.detailId}`
-      );
-      this.$message.success("鎻愪氦鎴愬姛");
-      this.getDetailInfo();
-    },
-    async getOptions() {
-      const { data } = await this.$axios.get(this.$api.url.selectDevice);
-      this.materialOptions = data;
-    },
-    checkRawName(data) {
-      this.materialOptions.forEach(item => {
-        if (item.name === data) {
-          this.detailInfo.code = item.code;
-          this.$axios
-            .get(this.$api.url.selectSpBySt, { params: { id: item.id } })
-            .then(res => {
-              this.specificationOptions = res.data;
-            });
-        }
-      });
-    },
-    // 娣诲姞琛�
-    clickAddLine() {
-      let obj = {
-        deviceId: 0,
-        internal: "",
-        name: "",
-        required: "",
-        testValue: "",
-        unit: ""
-      };
-      this.projectTable.push(obj);
-    },
-    // 鍒犻櫎琛�
-    clickDeleteline(scope) {
-      this.projectTable.splice(scope.$index, 1);
-    }
-  }
+	},
+	computed: {
+		conclusionTable() {
+			const conclusion = {};
+			conclusion.name = this.detailInfo.name;
+			conclusion.code = this.detailInfo.code;
+			conclusion.uName = [
+				...new Set(this.projectTable.map(item => item.uName))
+			];
+			return [conclusion];
+		}
+	},
+	data() {
+		return {
+			// 娣诲姞鍒�
+			empiricalValueAdd: 1,
+			// 缂栬緫鏃跺瓨鍌ㄦ渶闀跨殑鍒楁暟瀛楋紝鍋氬垹闄ゅ垽鏂�
+			empiricalValueAddMaxNumber: 0,
+			// 璁惧閫夋嫨鏍戞樉绀�
+			centerDialogVisible: false,
+			// 璇︽儏椤靛氨鏄鎯呬俊鎭�
+			detailInfo: {},
+			//浜у搧淇℃伅
+			ifsInfo: {},
+			// 琛ㄦ牸
+			projectTable: [],
+			// 鏂板缓妫�楠屽崟鍙傛暟瀵硅薄
+			rawInsParams: {},
+			// 椤圭洰鍚嶇Оoptions
+			specificationOptions: [],
+			filterText: "",
+			materialOptions: [], // 鏍戞暟鎹�
+			defaultProps: {
+				// 璁惧鏍戞暟鎹缃�
+				children: "children",
+				label: "name"
+			},
+			nodeData: "", // node鐐瑰嚮淇濆瓨褰撳墠鐐瑰嚮鏁版嵁
+			clickSelectDevice: {
+				index: "", // 鐐瑰嚮閫夋嫨瀛樺偍褰撳墠琛岀储寮�
+				rpId: "" // 鐐瑰嚮閫夋嫨瀛樺偍褰撳墠琛岄」鐩甀d
+			},
+			restaurants: []
+		};
+	},
+	watch: {
+		filterText(val) {
+			this.$refs.tree.filter(val);
+		}
+	},
+	methods: {
+		blurCode() {
+			// this.detailId=10
+			let data = {
+				code: this.detailInfo.code
+			}
+			console.log(data);
+			this.$axios.post(
+				this.$api.url.rawInspectChooseIFS, {
+				code: this.detailInfo.code
+			}
+			).then(res => {
+				this.ifsInfo = res.data
+				console.log("ifs", this.ifsInfo);
+				this.$set(this.detailInfo, "formTime", this.ifsInfo.formTime)
+				this.detailInfo.formTime = this.ifsInfo.formTime
+				this.detailInfo.name = this.ifsInfo.name
+				this.detailInfo.supplier = this.ifsInfo.supplier
+				this.detailInfo.unit = this.ifsInfo.unit
+				this.detailInfo.userName = this.ifsInfo.userName
+				this.detailInfo.number = this.ifsInfo.number
+				this.detailInfo.specifications = this.ifsInfo.specifications
+				this.restaurants = JSON.parse(JSON.stringify(this.ifsInfo.rawInsProducts))
+				this.restaurants.forEach(item => {
+					this.$set(item, "value", item.name)
+				})
+				console.log("restaurants", this.restaurants);
+			})
+		},
+		querySearch(queryString, cb) {
+			var restaurants = this.restaurants;
+			var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
+			// 璋冪敤 callback 杩斿洖寤鸿鍒楄〃鐨勬暟鎹�
+			cb(results);
+		},
+		createFilter(queryString) {
+			return (restaurant) => {
+				return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
+			};
+		},
+		handleSelect(row) {
+			let select = this.restaurants.filter(item => {
+				return item.name === row.name
+			})[0]
+			if (select != undefined) {
+				this.$set(row, "internal", select.internal)
+				this.$set(row, "required", select.required)
+				this.$set(row, "unit", select.unit)
+				//妫�楠屽��
+			}
+		},
+		assertTest(row) {
+			// let fuArr=['>', '<', '=']
+			// if(!fuArr.includes(row.required[0])){
+			//   this.$message({
+			//               message: "鏍囧噯鍊糩"+row.required+"]鏍煎紡棣栦綅搴斿寘鍚�>,<鎴栬��=",
+			//               type: 'warning'
+			//           });
+			//           return
+			// }
+			// if(!fuArr.includes(row.internal[0])){
+			//   this.$message({
+			//               message: "鍐呮帶鍊糩"+row.internal+"]鏍煎紡棣栦綅搴斿寘鍚�>,<鎴栬��=",
+			//               type: 'warning'
+			//           });
+			//           return
+			// }
+		},
+		// 璁惧鏍戣繃婊ゆ悳绱�
+		filterNode(value, data) {
+			if (!value) return true;
+			return data.name.indexOf(value) !== -1;
+		},
+
+		// 鑾峰彇鎶ユ鍗曡鎯呬俊鎭�
+		async getDetailInfo() {
+			await this.$axios
+				.get(this.$api.url.selectRawInspectsListById + `${this.detailId}`, {
+					params: {
+						id: this.detailId
+					}
+				})
+				.then(res => {
+					console.log(res);
+					this.detailInfo = res.data;
+					this.projectTable = res.data.children;
+					this.projectTable.forEach(i => {
+						// 瑙e喅閲嶆柊璧嬪�兼棤娉曠紪杈戞搷浣�
+						if (i.testValue == null) {
+							this.$set(i, "testValueList", []);
+						} else {
+							this.$set(i, "testValueList", i.testValue.split(","));
+						}
+						// 鍙栨渶闀跨殑鍒楄〃鏁�
+						if (i.testValueList.length > this.empiricalValueAdd) {
+							this.empiricalValueAdd = i.testValueList.length;
+							this.empiricalValueAddMaxNumber = i.testValueList.length - 1;
+						}
+					});
+				});
+		},
+		// 鏂板妫�楠屽崟
+		async addNewRawInspect() {
+			//TODO:
+			console.log(this.projectTable);
+			if (this.projectTable.length > 0) {
+				let filterTable = this.projectTable.filter(item => {
+					return  item.name === null || item.name === ''
+				})
+				if (filterTable.length > 0) {
+					this.$message({
+						message: "椤圭洰鍚嶇О涓嶈兘涓虹┖锛�",
+						type: 'warning'
+					});
+					return
+				}
+			}
+			this.projectTable.forEach(i => {
+				// 灏嗗垪琛ㄨ浆鎹负瀛楃涓�
+				i.testValue = i.testValueList.join(",");
+			});
+			this.detailInfo.rawInsProducts = this.projectTable;
+			this.$axios.post(
+				this.$api.url.addRawInspects, {
+				...this.detailInfo
+			}, {
+				headers: {
+					"Content-Type": "application/json"
+				}
+			}
+			).then(res => {
+				console.log(res);
+				if (res.code == "201") {
+					this.$message({
+						message: res.message,
+						type: 'warning'
+					});
+					return
+				} else {
+					// this.detailId = res.data;
+					// this.getDetailInfo();
+					// // this.$message.success(res.message);
+					// this.goBack();
+				}
+			});
+		},
+
+		// 淇敼椤圭洰鐨勬娴嬪�兼敼鍙樼粨璁�
+		async changeState(row, index) {
+			if (this.detailId !== null) {
+				const res = await this.$axios.post(this.$api.url.updaterawInsProduct, {
+					DevId: row.deviceId,
+					rpId: row.rpId,
+					testValue: row.testValueList.join(",")
+				});
+				this.$message.success("鎻愪氦鎴愬姛");
+				this.getDetailInfo(); //閲嶆柊鍒锋柊淇℃伅鏁版嵁
+			}
+		},
+		 submitSave() {
+			let pro = this.projectTable.filter(item => {
+				return item.testState === 0;
+			})
+			if (pro.length > 0) {
+				this.$prompt('璇疯緭鍏ヤ笉鍚堟牸鏁伴噺', '涓嶅悎鏍兼暟閲�', {
+					confirmButtonText: '纭畾',
+					cancelButtonText: '鍙栨秷',
+					inputPattern: /^\d+$/,
+					inputErrorMessage: '璇疯緭鍏ユ纭暟瀛楁牸寮�'
+				}).then(({ value }) => {
+					this.$axios.post(
+						this.$api.url.updateRawInspectsById+`${this.detailId}`, {"number": value }
+					).then(res => {
+						this.$message.success("鎻愪氦鎴愬姛");
+						this.getDetailInfo();
+						this.goBack()
+					});
+				}).catch(() => {
+					this.$message({
+						type: 'info',
+						message: '鍙栨秷杈撳叆'
+					});
+				});
+			}else{
+			 this.$axios.post(
+				this.$api.url.updateRawInspectsById + `${this.detailId}`
+			).then(res => {
+				this.$message.success("鎻愪氦鎴愬姛");
+				this.getDetailInfo();
+				this.goBack()
+			});
+			}
+		},
+		// 鑾峰彇璁惧鏍戝唴瀹�
+		getOptions() {
+			this.$axios.get(this.$api.url.rawSelectDevice).then(res => {
+				this.materialOptions = res.data;
+			});
+		},
+		// 娣诲姞琛�
+		clickAddLine() {
+			let obj = {
+				deviceId: null,
+				deviceName: "",
+				internal: "",
+				name: "",
+				required: "",
+				textValue: "",
+				testState: null,
+				testValueList: [],
+				unit: ""
+			};
+			this.projectTable.push(obj);
+		},
+		// 鍒犻櫎琛�
+		clickDeleteline(scope) {
+			this.projectTable.splice(scope.$index, 1);
+		},
+		// 鐐瑰嚮璁惧鏍戜繚瀛樼偣鍑昏褰�
+		nodeClick(data) {
+			if (data.id != undefined) this.nodeData = data;
+		},
+		// 鐐瑰嚮琛ㄦ牸閫夋嫨瑙﹀彂
+		clickTableSelect(scope) {
+			this.centerDialogVisible = true;
+			this.clickSelectDevice.index = scope.$index;
+			this.clickSelectDevice.rpId = scope.row.rpId;
+		},
+		// 鐐瑰嚮鏍戦噷闈㈢殑纭畾
+		clickNodeSure() {
+			if (this.detailId == null) {
+				this.projectTable[
+					this.clickSelectDevice.index
+				].deviceId = this.nodeData.id;
+				this.projectTable[
+					this.clickSelectDevice.index
+				].deviceName = this.nodeData.name;
+				this.centerDialogVisible = false;
+			} else {
+				this.$axios
+					.post(this.$api.url.updateDevByRpId, {
+						rpId: this.clickSelectDevice.rpId,
+						devId: this.nodeData.id
+					})
+					.then(res => {
+						this.getDetailInfo();
+						this.centerDialogVisible = false;
+					});
+			}
+		},
+		// 鍒犻櫎妫�楠屽�煎垪
+		clickDeleteInspectionColumn() {
+			if (this.empiricalValueAdd - 1 === 0) { } else {
+				if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) {
+					this.empiricalValueAdd = this.empiricalValueAdd - 1;
+					this.projectTable.forEach(i => {
+						i.testValueList.splice(this.empiricalValueAdd, 1);
+					});
+				}
+			}
+		},
+		// 娣诲姞妫�楠屽�煎垪
+		clickAddInspectionColumn() {
+			this.empiricalValueAdd = this.empiricalValueAdd + 1;
+		}
+	}
 };
 </script>
 
 <style scoped>
+.node_i {
+	color: orange;
+}
+
+.div_device_dialog {
+	min-height: 400px;
+	overflow: auto;
+}
+
 .rawInsBox {
-  height: 100%;
-  width: 100%;
-  overflow-y: scroll;
-  display: flex;
-  flex-direction: column;
+	height: 100%;
+	width: 100%;
+	overflow-y: scroll;
+	display: flex;
+	flex-direction: column;
 }
+
+.el-table__fixed-body-wrapper {
+	top: 48px;
+}
+
 .rawInsBox .title .el-button {
-  height: 32px;
-  border: 1px solid rgba(190, 190, 190, 0.44);
-  box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
-  padding: 0 12px;
+	height: 32px;
+	border: 1px solid rgba(190, 190, 190, 0.44);
+	box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
+	padding: 0 12px;
 }
+
 .rawInsBox .title {
-  margin-bottom: 10px;
-  padding: 0 20px;
+	margin-bottom: 10px;
+	padding: 0 20px;
 }
+
 /* 妫�楠岃鎯� */
 .raw-detail-info {
-  background: #fff;
-  padding: 26px 0px 11px 80px;
+	background: #fff;
+	padding: 26px 0px 11px 80px;
 }
-.raw-detail-info >>> .el-form-item__label {
-  color: rgb(51, 51, 51);
-  font-family: 寰蒋闆呴粦;
-  font-size: 16px;
-  font-weight: 400;
-  letter-spacing: 0px;
+
+.raw-detail-info>>>.el-form-item__label {
+	color: rgb(51, 51, 51);
+	font-family: 寰蒋闆呴粦;
+	font-size: 16px;
+	font-weight: 400;
+	letter-spacing: 0px;
 }
+
 .raw-detail-info .el-input {
-  width: auto;
+	width: auto;
 }
-.raw-detail-info.raw-detail-info-edit >>> .el-input__inner {
-  background: #fff;
+
+.raw-detail-info.raw-detail-info-edit>>>.el-input__inner {
+	background: #fff;
 }
-.raw-detail-info >>> .el-input__inner {
-  width: 224px;
-  height: 32px;
-  box-sizing: border-box;
-  background: rgb(238, 238, 238);
-  border: 1px solid rgb(221, 221, 221);
-  border-radius: 4px;
+
+.raw-detail-info>>>.el-input__inner {
+	width: 224px;
+	height: 32px;
+	box-sizing: border-box;
+	background: rgb(238, 238, 238);
+	border: 1px solid rgb(221, 221, 221);
+	border-radius: 4px;
 }
+
 .raw-detail-info .el-form-item {
-  margin-bottom: 24px;
+	margin-bottom: 24px;
 }
+
 .raw-detail-info .el-form-item .el-button {
-  height: 32px;
-  border: 1px solid rgba(190, 190, 190, 0.44);
-  box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
-  padding: 0 12px;
+	height: 32px;
+	border: 1px solid rgba(190, 190, 190, 0.44);
+	box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
+	padding: 0 12px;
 }
 
 /* 妫�楠岄」鐩� */
 .raw-project-table {
-  padding: 24px 14px;
-  background: #fff;
-  flex: 1;
-  /* max-height: 360px; */
-  /* overflow-y: hidden; */
+	padding: 24px 14px;
+	background: #fff;
+	flex: 1;
+	/* max-height: 360px; */
+	/* overflow-y: hidden; */
 }
+
 /* 妫�楠岀粨璁� */
 .raw-conclusion-table {
-  padding: 9px 14px;
-  background: #fff;
+	padding: 9px 14px;
+	background: #fff;
 }
-</style>
+</style>
\ No newline at end of file

--
Gitblit v1.9.3