From 7b2fffec6f45d2b5d4c827efbeee4a2e21c0adc0 Mon Sep 17 00:00:00 2001
From: value <z1292839451@163.com>
Date: 星期四, 21 九月 2023 16:52:20 +0800
Subject: [PATCH] 9.21

---
 src/components/view/rawInsDetail.vue |  953 ++++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 552 insertions(+), 401 deletions(-)

diff --git a/src/components/view/rawInsDetail.vue b/src/components/view/rawInsDetail.vue
index 539c4f9..5597375 100644
--- a/src/components/view/rawInsDetail.vue
+++ b/src/components/view/rawInsDetail.vue
@@ -1,406 +1,557 @@
-<style scoped>
-  .rawInsBox{
-        height: 100%;
-        width: 100%;
-        overflow-y: scroll;
-        display: flex;
-        flex-direction: column;
-  }
-  .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;
-  }
-  .rawInsBox .title {
-    margin-bottom: 10px;
-    padding: 0 20px;
-  }
-  /* 妫�楠岃鎯� */
-  .raw-detail-info{
-    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-input{
-        width: auto;
-  }
-  .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-form-item{
-    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;
-  }
-
-  /* 妫�楠岄」鐩� */
-  .raw-project-table{
-    padding: 24px 14px;
-    background: #fff;
-    flex: 1;
-    /* max-height: 360px; */
-    /* overflow-y: hidden; */
-  }
-  /* 妫�楠岀粨璁� */
-  .raw-conclusion-table{
-    padding: 9px 14px;
-    background: #fff;
-  }
-</style>
-
-
 <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-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"
-                          v-model="detailInfo.formTime"
-                          placeholder="閫夋嫨鏃ユ湡">
-                        </el-date-picker>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="7">
-                    <el-form-item label="瑙勬牸鍨嬪彿:">
-                        <el-input :disabled="detailId!==null" v-model="detailInfo.specifications"></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 :disabled="detailId!==null" v-model="detailInfo.name"></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-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="3">
-                    <el-form-item v-show="detailId===null" label="" label-width="100px">
-                        <el-button  @click="addNewRawInspect">淇濆瓨鎻愪氦</el-button>
-                    </el-form-item>
-                </el-col>
-            </el-row>
-             <el-row>
-                
-                <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="14">
-                    <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>
-        <!-- <el-form v-show="detailId ===null" v-model="rawInsParams" label-position="right" label-width="120px" >
-            <el-row>
-                <el-col :span="7">
-                    <el-form-item label="璁㈠崟鍙�:">
-                        <el-input placeholder="璇疯緭鍏ヨ鍗曞彿" v-model="rawInsParams.orderNumber"></el-input>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="7">
-                    <el-form-item label="瀹㈡埛鍚嶇О:">
-                        <el-input placeholder="璇疯緭鍏ュ鎴峰悕绉�" v-model="rawInsParams.customerName"></el-input>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="7">
-                    <el-form-item label="宸ョ▼鍚嶇О:">
-                        <el-input placeholder="璇疯緭鍏ュ伐绋嬪悕绉�"  v-model="rawInsParams.projectName"></el-input>
-                    </el-form-item>
-                </el-col>
-            </el-row>
-             <el-row>
-                <el-col :span="7">
-                    <el-form-item label="璐ㄩ噺杩芥函鍙�:">
-                        <el-input  placeholder="璇疯緭鍏ヨ川閲忚拷婧彿"  v-model="rawInsParams.qualityTraceability"></el-input>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="7">
-                    <el-form-item label="椤圭洰鍚嶇О:">
-                        <el-select placeholder="璇疯緭鍏ラ」鐩悕绉�" v-model="rawInsParams.material">
-                          <el-option v-for="item in materialOptions" :key="item.id" :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 placeholder="浜у搧缂栫爜" disabled  v-model="code"></el-input>
-                    </el-form-item>
-                </el-col>
-                
-            </el-row>
-             <el-row>
-                <el-col :span="7">
-                    <el-form-item label="瑙勬牸鍨嬪彿:">
-                        <el-input  v-model="detailInfo.specificationsModel"></el-input>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="7">
-                    <el-form-item label="鍗曚綅:">
-                        <el-input placeholder="璇疯緭鍏ュ崟浣�"  v-model="rawInsParams.unit"></el-input>
-                    </el-form-item>
-                </el-col>
-                <el-col  :span="7">
-                    <el-form-item label="鏁伴噺">
-                      <el-input  placeholder="璇疯緭鍏ヤ骇鍝佺紪鐮�"  v-model="rawInsParams.qualityTraceability"></el-input>
-                    </el-form-item>
-                </el-col>
-            </el-row>
-             <el-row>
-                <el-col :span="21">
-                    <el-form-item label="涓绘満宸�:">
-                        <el-input placeholder="璇疯緭鍏ヤ富鏈哄伐"  v-model="rawInsParams.userId"></el-input>
-                    </el-form-item>
-                </el-col>
-                <el-col  :span="3">
-                    <el-form-item label="" label-width="100px">
-                        <el-button  @click="addNewRawInspect">淇濆瓨鎻愪氦</el-button>
-                    </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-row>
-    </div>
-    <div class="raw-project-table">
-        <el-table
-            :data="projectTable"
-            style="width: 100%"
-            max-height="320"
-            >
-            <el-table-column
-                type="index"
-                label="搴忓彿"
-                width="100"
-                >
-            </el-table-column>
-            <el-table-column
-                prop="name"
-                label="椤圭洰"
-                width="212">
-            </el-table-column>
-            <el-table-column
-                prop="unit"
-                label="鍗曚綅"
-                width="148">
-            </el-table-column>
-            <el-table-column
-                prop="required"
-                label="鏍囧噯"
-                width="254">
-            </el-table-column>
-            <el-table-column
-                prop="internal"
-                label="鍐呮帶鍊�"
-                width="291">
-            </el-table-column>
-            <el-table-column
-                prop="testValue"
-                label="妫�鏌ュ��"
-                width="371">
-                <template slot-scope="scope">
-                  <el-input v-model="scope.row.testValue" @blur="changeState(scope.row)"></el-input>
-                </template>
-            </el-table-column>
-            <el-table-column
-                prop="deviceName"
-                label="璇曢獙璁惧"
-                width="248"
-                >
-            </el-table-column>
-            <el-table-column
-                prop="testState"
-                label="缁撹"
-                 width="98"
-                >
-                <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>
-    </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">
-            <el-table-column
-                prop="code"
-                label="鐗╂枡缂栧彿"
-                width="353">
-            </el-table-column>
-            <el-table-column
-                prop="name"
-                label="鐗╂枡鍚嶇О"
-                width="353">
-            </el-table-column>
-            <el-table-column
-                prop="names"
-                label="妫�楠屽憳"
-                width="542">
-                <template slot-scope="scope">
-                  <span v-for="item in scope.row.names" :key="item.username" :style="{marginRight:'8px'}">{{item}}</span>
-                </template>
-            </el-table-column>
-            <el-table-column
-                prop="testState"
-                label="妫�楠岀粨璁�"
-                width="362">
-                 <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
-                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 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-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.once="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 RawIns from './raw-ins.vue'
-export default {
-    components:{RawIns},
-    props:['goBack','detailId'],
-    created(){
-      // 娓呯┖
-      this.detailInfo = {}
-      if(this.detailId){
-        console.log(this.detailId)
-        this.getDetailInfo()
-      }else{
-        this.getOptions()
-      }  
-    },
-    mounted(){
-    },
-    computed:{
-      conclusionTable(){
-        // console.log(this.projectTable)
-        // console.log(this.projectTable.map(item=>item.userName))
-        const conclusion = {}
-        conclusion.name = this.detailInfo.name
-        conclusion.code = this.detailInfo.code
-        conclusion.names= [...new Set(this.projectTable.map(item=>item.userName))]
-        console.log(this.projectTable.filter(item=>item.testState===0))
-        if(this.projectTable.filter(item=>item.testState===null).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]
-      },
-      // 浜у搧缂栫爜
-      // code(){
-      //   const material= this.materialOptions.filter(item=>item.name===this.rawInsParams.material)[0]
-      //   return  material && material.code
-      // }
-    },
-    data() {
-        return {
-          // 璇︽儏椤靛氨鏄鎯呬俊鎭�
-          detailInfo:{},
-          projectTable:[],
-          // 鏂板缓妫�楠屽崟鍙傛暟瀵硅薄
-          rawInsParams:{},
-          // 椤圭洰鍚嶇Оoptions
-          materialOptions:[]
-        }
-    },
-    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
-        // console.log(this.projectTable)
-      },
-      // 鏂板妫�楠屽崟
-      addNewRawInspect() {
-        console.log(this.detailInfo)
-      },
-      // 淇敼椤圭洰鐨勬娴嬪�兼敼鍙樼粨璁�
-      async changeState(row){
-        // console.log(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.listMaterial) 
-        this.materialOptions = data
-      }
-     }
-}
+	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();
+			}
+			this.getOptions();
+		},
+		mounted() {
+
+		},
+		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: {},
+				// 琛ㄦ牸
+				projectTable: [],
+				// 鏂板缓妫�楠屽崟鍙傛暟瀵硅薄
+				rawInsParams: {},
+				// 椤圭洰鍚嶇Оoptions
+				specificationOptions: [],
+				filterText: "",
+				materialOptions: [], // 鏍戞暟鎹�
+				defaultProps: {
+					// 璁惧鏍戞暟鎹缃�
+					children: "children",
+					label: "name"
+				},
+				nodeData: "", // node鐐瑰嚮淇濆瓨褰撳墠鐐瑰嚮鏁版嵁
+				clickSelectDevice: {
+					index: "", // 鐐瑰嚮閫夋嫨瀛樺偍褰撳墠琛岀储寮�
+					rpId: "" // 鐐瑰嚮閫夋嫨瀛樺偍褰撳墠琛岄」鐩甀d
+				}
+			};
+		},
+		watch: {
+			filterText(val) {
+				this.$refs.tree.filter(val);
+			}
+		},
+		methods: {
+			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.required === '' || item.internal === '' ||
+							item.required === null || item.internal === 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(); //閲嶆柊鍒锋柊淇℃伅鏁版嵁
+				}
+			},
+			async submitSave() {
+				const res = await 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;
+	}
+
+	.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;
+	}
+
+	.rawInsBox .title {
+		margin-bottom: 10px;
+		padding: 0 20px;
+	}
+
+	/* 妫�楠岃鎯� */
+	.raw-detail-info {
+		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-input {
+		width: auto;
+	}
+
+	.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-form-item {
+		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;
+	}
+
+	/* 妫�楠岄」鐩� */
+	.raw-project-table {
+		padding: 24px 14px;
+		background: #fff;
+		flex: 1;
+		/* max-height: 360px; */
+		/* overflow-y: hidden; */
+	}
+
+	/* 妫�楠岀粨璁� */
+	.raw-conclusion-table {
+		padding: 9px 14px;
+		background: #fff;
+	}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3