From c0bc2331e9abb2ae003c8dc0ab4524d6101493a1 Mon Sep 17 00:00:00 2001
From: 王震 <10952869+daywangzhen@user.noreply.gitee.com>
Date: 星期一, 25 九月 2023 09:12:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/components/view/rawInsDetail.vue | 1071 +++++++++++++++++++++++++++++++++++------------------------
1 files changed, 634 insertions(+), 437 deletions(-)
diff --git a/src/components/view/rawInsDetail.vue b/src/components/view/rawInsDetail.vue
index 7676e68..fe4b199 100644
--- a/src/components/view/rawInsDetail.vue
+++ b/src/components/view/rawInsDetail.vue
@@ -1,445 +1,642 @@
-<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.name"></el-input>
- <el-select @change="checkRawName" v-else placeholder="璇烽�夋嫨椤圭洰鍚嶇О" v-model="detailInfo.name">
- <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 v-if="detailId!==null" :disabled="detailId!==null" v-model="detailInfo.specifications"></el-input>
- <el-cascader
- placeholder="璇烽�夋嫨瑙勬牸鍨嬪彿"
- v-else
- :disabled="specificationOptions.length===0"
- :props="{label:'name',value:'name'}"
- v-model="detailInfo.specificationsArr"
- :options="specificationOptions"
- ></el-cascader>
- </el-form-item>
- </el-col>
- <el-col :span="7">
- <el-form-item label="鍘熸潗鏂欑紪鐮�:">
- <el-input disabled 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.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 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="50px">
- <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&&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 @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 RawIns from './raw-ins.vue'
+import {
+ triggerRef
+} from "vue";
+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(conclusion,this.projectTable)
- console.log(this.projectTable.filter(item=>item.testState===null).length)
- 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]
- },
- // 浜у搧缂栫爜
- // code(){
- // const material= this.materialOptions.filter(item=>item.name===this.rawInsParams.material)[0]
- // return material && material.code
- // }
- },
- data() {
- return {
- // 璇︽儏椤靛氨鏄鎯呬俊鎭�
- detailInfo:{},
- projectTable:[],
- // 鏂板缓妫�楠屽崟鍙傛暟瀵硅薄
- rawInsParams:{},
- // 椤圭洰鍚嶇Оoptions
- materialOptions:[],
- specificationOptions:[]
+ components: {
+ RawIns
+ },
+ props: ["goBack", "detailId"],
+ created() {
+ // 娓呯┖
+ this.detailInfo = {};
+ if (this.detailId) {
+ this.getDetailInfo();
+ }
+ this.getOptions();
+ },
+ mounted() {
- }
- },
- 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(data)
- },
- // 鏂板妫�楠屽崟
- 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'}})
- console.log(res)
- this.detailId = res.data
- this.getDetailInfo()
+ },
+ 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;
+ },
- this.$message.success('鎻愪氦鎴愬姛')
- },
- // 淇敼椤圭洰鐨勬娴嬪�兼敼鍙樼粨璁�
- 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
- const {data} = await this.$axios.get(this.$api.url.selectRawMaterial)
- this.materialOptions = data
- console.log(this.materialOptions)
- },
- checkRawName(data) {
- console.log('閫夋嫨鍘熸潗鏂欏悕绉�',data)
- this.materialOptions.forEach(item=>{
- if(item.name===data){
- console.log(item.id)
- this.detailInfo.code = item.code
- this.$axios.get(this.$api.url.selectSpBySt,{params:{id:item.id}}).then(res=>{
- this.specificationOptions= res.data
- })
- }
- })
- }
- }
-}
+ // 鑾峰彇鎶ユ鍗曡鎯呬俊鎭�
+ 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(); //閲嶆柊鍒锋柊淇℃伅鏁版嵁
+ }
+ },
+ 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;
+}
+
+.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