From 154d53ca0f4c9a3f1a8433ae4d458f65a81341dc Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期三, 06 九月 2023 11:28:56 +0800
Subject: [PATCH] 	modified:   .env.development 	modified:   src/views/experiment/planAssignments/plan.vue 	modified:   src/views/inspectionManagement/commissionInspection/addCommision.vue 	modified:   src/views/inspectionManagement/commissionInspection/index.vue 	modified:   src/views/inspectionManagement/reportForInspection/index.vue 	modified:   src/views/laboratory/ledger/index.vue 	modified:   src/views/standardLibrary/index.vue

---
 src/views/inspectionManagement/commissionInspection/addCommision.vue |  295 +++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 169 insertions(+), 126 deletions(-)

diff --git a/src/views/inspectionManagement/commissionInspection/addCommision.vue b/src/views/inspectionManagement/commissionInspection/addCommision.vue
index 46f1dbd..c077f91 100644
--- a/src/views/inspectionManagement/commissionInspection/addCommision.vue
+++ b/src/views/inspectionManagement/commissionInspection/addCommision.vue
@@ -15,44 +15,41 @@
           style="width: 200px;"
         >
         </el-input>-->
-						<el-button type="primary" size="small" style="background-color: rgb(1, 102, 226);">閲嶇疆</el-button>
 					</div>
 					<el-table ref="detectionInfo" :max-height="800" :cell-style="{textAlign: 'center'}"
 						:header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
-						:data="detectionInfo" style="width: 100%">
+						:data="detectionInfo" style="width: 100%;margin-bottom: 20px;">
 						<el-table-column type="index" label="搴忓彿" min-width="10%" />
 						<el-table-column prop="sampleNumber" label="鏍峰搧缂栧彿" min-width="8%" />
 						<el-table-column prop="sampleName" label="鏍峰搧鍚嶇О" min-width="10%" />
-						<el-table-column prop="specificationsModels" label="瑙勬牸鍨嬪彿" min-width="10%" />
+						<el-table-column prop="speName" label="瑙勬牸鍨嬪彿" min-width="10%">
+						</el-table-column>
 						<el-table-column prop="unit" label="鍗曚綅" min-width="8%" />
 						<el-table-column prop="samplesNumber" label="鏁伴噺" min-width="8%" />
-						<el-table-column prop="addway" label="娣诲姞鏂瑰紡" min-width="8%">
+						<!-- <el-table-column prop="addway" label="娣诲姞鏂瑰紡" min-width="8%">
 							<template slot-scope="scope">
 								<div v-if="scope.row.addway === 0">
-									<el-tag :type='success' disable-transitions>鎵弿</el-tag>
+									<el-tag type="success" disable-transitions>鎵弿</el-tag>
 								</div>
 								<div v-if="scope.row.addway === 1">
-									<el-tag :type='primary' disable-transitions>褰曞叆</el-tag>
+									<el-tag type="primary" disable-transitions>褰曞叆</el-tag>
 								</div>
 								<div v-else></div>
 							</template>
-						</el-table-column>
-						<el-table-column prop="experiment" label="璇曢獙" min-width="8%" />
+						</el-table-column> -->
 						<el-table-column prop="remarks" label="澶囨敞" min-width="8%" />
 						<el-table-column label="鎿嶄綔" min-width="8%">
 							<template slot-scope="scope">
-								<el-button type="text" size="small">淇敼</el-button>
-								<el-button type="text" size="small" @click="deleteRow(scope.row)">鍒犻櫎</el-button>
+								<el-button type="text" size="small"
+									@click.native.prevent="deleteRow(scope.$index, detectionInfo)">鍒犻櫎</el-button>
 							</template>
 						</el-table-column>
 					</el-table>
 				</div>
 				<div class="secondBox">
 					<el-row class="header">
-						<el-col :span="12">鍩烘湰淇℃伅</el-col>
+						<el-col :span="12" style="font-size: 16px;margin-bottom: 5px;">鍩烘湰淇℃伅</el-col>
 						<el-col :span="12" style="text-align: right;">
-							<!-- 鐐瑰嚮杩斿洖锛屽綋鍓嶉〉闈㈠�间负false -->
-							<!-- <el-button type="primary" size="mini" style="background-color: rgb(1, 102, 226); ">鎵撳嵃濮旀墭鍗�</el-button> -->
 						</el-col>
 					</el-row>
 					<el-form :model="infoForm" ref="infoForm" class="infoForm" label-position="right" label-width="100px"
@@ -61,50 +58,51 @@
 							<el-row :gutter="200">
 								<el-col :span="5">
 									<el-form-item label="濮旀墭缂栧彿锛�">
-										<el-input style="width: 160px" type="text" :value="infoForm.commisioncode" readonly disabled
-											autocomplete="off" />
+										<el-input style="width: 200px" type="text" :value="infoForm.commisioncode" readonly disabled
+											autocomplete="off" size="small" />
 									</el-form-item>
 								</el-col>
 								<el-col :span="5">
 									<el-form-item label="濮旀墭鍗曚綅锛�">
-										<el-input style="width: 160px" v-model="infoForm.department" placeholder="璇疯緭鍏ュ鎵樺崟浣�" />
+										<el-input style="width: 200px" v-model="infoForm.department" placeholder="璇疯緭鍏ュ鎵樺崟浣�" size="small" />
 									</el-form-item>
 								</el-col>
 								<el-col :span="5">
 									<el-form-item label="鑱旂郴浜猴細">
-										<el-input style="width: 160px" v-model="infoForm.contacter" placeholder="璇疯緭鍏ュ鎵樺崟浣�" />
+										<el-input style="width: 200px" v-model="infoForm.contacter" placeholder="璇疯緭鍏ュ鎵樺崟浣�" size="small" />
 									</el-form-item>
 								</el-col>
 								<el-col :span="5">
 									<el-form-item label="鑱旂郴鐢佃瘽锛�">
-										<el-input style="width: 160px" v-model="infoForm.tel" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" />
+										<el-input style="width: 200px" v-model="infoForm.tel" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" size="small" />
 									</el-form-item>
 								</el-col>
 							</el-row>
 							<el-row :gutter="200">
 								<el-col :span="5">
 									<el-form-item label="鑱旂郴鍦板潃锛�">
-										<el-input style="width: 160px;" v-model="infoForm.address" placeholder="璇疯緭鍏ヨ仈绯诲湴鍧�"
-											autocomplete="off" />
+										<el-input style="width: 200px;" v-model="infoForm.address" placeholder="璇疯緭鍏ヨ仈绯诲湴鍧�" autocomplete="off"
+											size="small" />
 									</el-form-item>
 								</el-col>
 								<el-col :span="5">
 									<el-form-item label="瀹屾垚鏈熼檺锛�">
-										<el-date-picker v-model="infoForm.deadline" type="date" placeholder="閫夋嫨鏃ユ湡" style="width: 160px;">
+										<el-date-picker v-model="infoForm.deadline" type="date" placeholder="閫夋嫨鏃ユ湡" style="width: 200px;"
+											size="small">
 										</el-date-picker>
 									</el-form-item>
 								</el-col>
 								<el-col :span="5">
 									<el-form-item label="閫佹牱鏃堕棿锛�">
-										<el-date-picker v-model="infoForm.time" type="date" placeholder="閫夋嫨鏃ユ湡" style="width: 160px;">
+										<el-date-picker v-model="infoForm.time" type="date" placeholder="閫夋嫨鏃ユ湡" style="width: 200px;">
 										</el-date-picker>
 									</el-form-item>
 								</el-col>
 								<el-col :span="5">
 									<el-form-item label="閫佹牱鏂瑰紡锛�">
-										<el-select style="width: 160px;" v-model="infoForm.way" size="small" placeholder="閫佹牱">
-											<el-option v-for="options in sampleDeliveryMode" :key="options.key"
-												:value="options.value">{{ options.value }}</el-option>
+										<el-select style="width: 200px;" v-model="infoForm.way" size="small" placeholder="閫佹牱">
+											<el-option v-for="options in sampleDeliveryMode" :key="options.key" :value="options.key"
+												:label="options.value">{{ options.value }}</el-option>
 										</el-select>
 									</el-form-item>
 								</el-col>
@@ -112,23 +110,26 @@
 							<el-row :gutter="200">
 								<el-col :span="5">
 									<el-form-item label="閫佹牱浜猴細">
-										<el-input style="width: 160px;" v-model="infoForm.sender" placeholder="璇疯緭鍏ラ�佹牱浜�" autocomplete="off" />
+										<el-input style="width: 200px;" v-model="infoForm.sender" placeholder="璇疯緭鍏ラ�佹牱浜�" autocomplete="off"
+											size="small" />
 									</el-form-item>
 								</el-col>
 								<el-col :span="5">
 									<el-form-item label="閫佹牱浜虹數璇濓細">
-										<el-input style="width: 160px;" v-model="infoForm.sendertel" placeholder="璇疯緭鍏ラ�佹牱浜虹數璇�"
-											autocomplete="off" />
+										<el-input style="width: 200px;" v-model="infoForm.sendertel" placeholder="璇疯緭鍏ラ�佹牱浜虹數璇�"
+											autocomplete="off" size="small" />
 									</el-form-item>
 								</el-col>
 								<el-col :span="5">
 									<el-form-item label="鎶ュ憡鏁帮細">
-										<el-input style="width: 160px;" v-model="infoForm.num" placeholder="璇疯緭鍏ユ姤鍛婃暟" autocomplete="off" />
+										<el-input type="number" min="0" style="width: 200px;" v-model="infoForm.num" placeholder="璇疯緭鍏ユ姤鍛婃暟" autocomplete="off"
+											size="small" />
 									</el-form-item>
 								</el-col>
 								<el-col :span="5">
 									<el-form-item label="濮旀墭澶囨敞锛�">
-										<el-input style="width: 160px;" v-model="infoForm.other" placeholder="澶囨敞" autocomplete="off" />
+										<el-input style="width: 200px;" v-model="infoForm.other" placeholder="澶囨敞" autocomplete="off"
+											size="small" />
 									</el-form-item>
 								</el-col>
 							</el-row>
@@ -143,64 +144,69 @@
 				</div>
 			</div>
 			<div class="checkType">
-				<el-dialog title="娣诲姞鎸囨爣" :visible.sync="dialogueFormVisible" width="40%">
+				<el-dialog title="娣诲姞鏍峰搧" :visible.sync="dialogueFormVisible" width="40%" top="30vh">
 					<el-form :model="addPointerForm" ref="addPointerForm" class="addPointerForm" label-position="right"
 						label-width="100px" size="mini">
 						<el-row :gutter="50">
-							<el-col :span="10">
+							<el-col :span="11">
 								<el-form-item label="鏍峰搧缂栧彿锛�">
-									<el-input style="width: 160px;" v-model="addPointerForm.sampleNumber" size="small" disabled>
+									<el-input v-model="addPointerForm.sampleNumber" size="small" disabled>
 									</el-input>
 								</el-form-item>
 							</el-col>
-							<el-col :span="10">
+							<el-col :span="11">
 								<el-form-item label="鏍峰搧鍚嶇О锛�">
-									<el-select style="width: 160px;" v-model="addPointerForm.sampleName" size="small"
-										placeholder="璇烽�夋嫨鏍峰搧鍚嶇О" @change="upMaterialName">
-										<el-option v-for="options in sampleoptions" :value="options.key"
-											:label="options.value"></el-option>
+									<el-select v-model="addPointerForm.sampleName" size="small" placeholder="璇烽�夋嫨鏍峰搧鍚嶇О"
+										@change="upMaterialName">
+										<el-option v-for="(options,index) in sampleoptions" :key="index" :value="options.key" :label="options.value"></el-option>
 									</el-select>
 								</el-form-item>
 							</el-col>
 						</el-row>
 						<el-row :gutter="50">
-							<el-col :span="10">
-								<el-form-item label="瑙勬牸鍨嬪彿锛�">
-									<el-select style="width: 160px;" v-model="addPointerForm.specificationsModels" size="small"
-										placeholder="璇峰厛閫夋嫨鏍峰搧鍚嶇О">
+							<el-col :span="11">
+								<el-form-item label="璇勫畾鏍囧噯锛�">
+									<el-select v-model="addPointerForm.addway" size="small" placeholder="璇烽�夋嫨璇勫畾鏍囧噯">
 										<el-option v-for="options in model_spe_options" :value="options.value"
 											:key="options.key">{{ options.value }}</el-option>
 									</el-select>
 								</el-form-item>
 							</el-col>
-							<el-col :span="10">
+							<el-col :span="11">
+								<el-form-item label="瑙勬牸鍨嬪彿锛�">
+									<el-select v-model="addPointerForm.specificationsModels" size="small" placeholder="璇峰厛閫夋嫨鏍峰搧鍚嶇О"
+										@change="getProductList">
+										<el-option v-for="options in model_sta_options" :value="options.key" :label="options.value"
+											:key="options.key">{{ options.value }}</el-option>
+									</el-select>
+								</el-form-item>
+							</el-col>
+						</el-row>
+						<el-row :gutter="50">
+							<el-col :span="11">
 								<el-form-item label="鏍峰搧鍗曚綅锛�">
-									<el-input style="width: 160px" type="text" v-model="addPointerForm.unit" placeholder="璇疯緭鍏ュ崟浣�"
-										autocomplete="off" />
+									<el-input type="text" v-model="addPointerForm.unit" placeholder="璇疯緭鍏ュ崟浣�" autocomplete="off" />
 								</el-form-item>
 							</el-col>
-						</el-row>
-						<el-row :gutter="50">
-							<el-col :span="10">
+							<el-col :span="11">
 								<el-form-item label="鏍峰搧鏁伴噺锛�">
-									<el-input style="width: 160px" type="text" v-model="addPointerForm.samplesNumber" placeholder="璇疯緭鍏ユ暟閲�"
-										autocomplete="off" />
-								</el-form-item>
-							</el-col>
-							<el-col :span="10">
-								<el-form-item label="澶囨敞锛�">
-									<el-input style="width: 160px" type="text" v-model="addPointerForm.remarks" placeholder="璇疯緭鍏ュ娉�"
-										autocomplete="off" />
+									<el-input type="text" v-model="addPointerForm.samplesNumber" placeholder="璇疯緭鍏ユ暟閲�" autocomplete="off" />
 								</el-form-item>
 							</el-col>
 						</el-row>
 						<el-row :gutter="50">
-							<el-col :span="10">
-								<el-form-item label="娣诲姞瀹為獙锛�">
+							<el-col :span="11">
+								<el-form-item label="娣诲姞椤圭洰锛�">
 									<el-checkbox-group v-model="addPointerForm.experiment" style="display: flex; flex-direction: column;">
-										<el-checkbox v-for="expers in experList" :label="expers.label"
-											:key="expers.key">{{ expers.label }}</el-checkbox>
+										<el-checkbox v-for="(expers, ai) in productList" :label="expers"
+											:key="ai">{{ expers }}</el-checkbox>
 									</el-checkbox-group>
+								</el-form-item>
+							</el-col>
+							<el-col :span="11">
+								<el-form-item label="澶囨敞锛�">
+									<el-input type="textarea" :autosize="{ minRows: 4, maxRows: 20}" style="width: 200px;"
+										v-model="addPointerForm.remarks" placeholder="璇疯緭鍏ュ娉�" autocomplete="off" />
 								</el-form-item>
 							</el-col>
 						</el-row>
@@ -221,7 +227,10 @@
 		getModelSpecification,
 		getlink,
 		addInspection,
-		isIfViewUUID
+		isIfViewUUID,
+		getProductList,
+		getContractsSampleInfo,
+		getSpecificationsName
 	} from '@/api/inspection/commisioninspection'
 	export default {
 		data() {
@@ -253,31 +262,12 @@
 					experiment: [],
 					addway: ''
 				},
-				experList: [{
-					key: '1',
-					label: '澶栬妫�鏌�'
-				}, {
-					key: '2',
-					label: '鍔ㄤ綔鐢靛帇璇曢獙'
-				}, {
-					key: '3',
-					label: '鐢甸樆绠℃硠婕忕數娴佽瘯楠�'
-				}, {
-					key: '4',
-					label: '缁濈紭閮ㄥ垎浜ゆ祦鑰愬帇璇曢獙'
-				}],
-				sampleoptions: [{
-					key: '1',
-					value: '閫夐」1'
-				}, {
-					key: '2',
-					value: '閫夐」2'
-				}],
-				samplecodeoptions: [{
-					key: '1',
-					value: ''
-				}],
+				experList: [],
+				sampleoptions: [],
+				samplecodeoptions: [],
 				model_spe_options: [],
+				model_sta_options: [],
+				model_options: [],
 				sampleDeliveryMode: [{
 					key: '1',
 					value: '閫佹牱'
@@ -287,13 +277,35 @@
 				}],
 				dialogueFormVisible: false,
 				showDetail: false,
-				viewId: null
+				viewId: null,
+				productList: []
+			}
+		},
+		watch: {
+			addPointerForm: {
+				handler: function(val) {
+					if (val.addway != "") {
+						this.model_sta_options = []
+						this.model_options.forEach(a => {
+							if (a.specificationsName == val.addway) {
+								this.model_sta_options = a.children.map(item => {
+									return {
+										key: item.modelId,
+										value: item.modelName
+									}
+								})
+							}
+						})
+					}
+				},
+				deep: true
 			}
 		},
 		created() {
 			this.viewId = this.$route.params.viewId
-			this.$store.commit('settings/SAVE_LINK',this.viewId)
+			this.$store.commit('settings/SAVE_LINK', this.viewId)
 			this.getlink(this.$route.params.viewId)
+			this.getContractsSampleInfo(this.$route.params.viewId)
 		},
 		mounted() {
 			this.getSampleName()
@@ -311,7 +323,14 @@
 					if (!res.data) {
 						this.$message.error('褰撳墠閾炬帴涓嶅湪鏈夋晥鏈熷唴,绯荤粺鑷姩鍏抽棴')
 						this.$router.push('/404')
+					} else {
+						this.getContractsSampleInfo()
 					}
+				})
+			},
+			async getContractsSampleInfo(viewId) {
+				let res = await getContractsSampleInfo({
+					viewId
 				})
 			},
 			async getSampleName() {
@@ -319,7 +338,8 @@
 				this.sampleoptions = res.data.map((item) => {
 					return {
 						key: item.id.toString(),
-						value: item.name
+						value: item.name,
+						code: item.code
 					}
 				})
 			},
@@ -327,6 +347,7 @@
 				const res = await getModelSpecification({
 					materialId: val
 				})
+				this.model_options = res.data
 				this.model_spe_options = res.data.map((item) => {
 					return {
 						key: item.specificationsId,
@@ -336,13 +357,16 @@
 			},
 			addInspection() {
 				let exper = this.addPointerForm.experiment[0]
-				this.addPointerForm.addway = 1
 				for (let i = 1; i < this.addPointerForm.experiment.length; i++) {
 					exper += ',' + this.addPointerForm.experiment[i]
 				}
-				// console.log(exper)
 				this.addPointerForm.experiment = exper
 				let tmp = this.addPointerForm
+				this.sampleoptions.forEach(a => {
+					if (a.key == tmp.sampleName) tmp.sampleName = a.value
+				})
+				tmp.speName = tmp.addway + '-' + tmp.speName
+				tmp.addway = 1
 				this.detectionInfo.push(tmp)
 				this.dialogueFormVisible = false
 				this.addPointerForm = {
@@ -353,7 +377,8 @@
 					samplesNumber: '',
 					remarks: '',
 					experiment: [],
-					addway: ''
+					addway: '',
+					speName: ''
 				}
 			},
 			async submitInspection() {
@@ -375,41 +400,15 @@
 					reportNumber: parseInt(this.infoForm.num),
 					sampleDeliveryMode: sampledeliveryway,
 					sampleDeliveryPhone: this.infoForm.sendertel,
-					sampleSender: this.infoForm.sender
+					sampleSender: this.infoForm.sender,
+					speName: this.infoForm.speName
 				})
-				//       const res = await addInspection({
-				//   completionDeadline: "2023-08-03",
-				//   contactAddress: "姹熻嫃鍗楅��",
-				//   contactNumber: "12321423432",
-				//   contacts: "灏忛粦",
-				//   entrustRemarks: "濮旀墭澶囨敞YPBH123456789YPBH123456789YPBH123456789",
-				//   entrusted: "闃块噷宸村反",
-				//   inspectionTime: "2023-08-03",
-				//   linkDetectionList: [
-				//     {
-				//       "experiment": "鍋氭ⅵ",
-				//       "remarks": "閫氳繃浜�",
-				//       "sampleName": "鍙戝姩鏈�",
-				//       "sampleNumber": "YPBH123456789",
-				//       "samplesNumber": 20,
-				//       "specificationsModels": "GGXH-AAAAA",
-				//       "unit": "鐧惧害"
-				//     }
-				//   ],
-				//   reportNumber: 23,
-				//   sampleDeliveryMode: 1,
-				//   sampleDeliveryPhone: "123456789676",
-				//   sampleSender: "灏忕櫧"
-				// })
-				// console.log(res)
 				this.infoForm.commisioncode = res.data
 				if (res.data) {
 					this.$message({
-						message: '鎭枩浣�!',
+						message: '娣诲姞鎴愬姛!',
 						type: 'success'
 					})
-					// 璺宠浆椤甸潰
-					this.$router.push('/inspectionManagement/commissionInspection')
 					this.showDetail = true
 				} else {
 					this.$message.error(res.message)
@@ -421,14 +420,54 @@
 			handleCurrentChange(pageNo) {
 				this.pageParams.pageNo = pageNo
 			},
-			deleteRow(row) {
-				console.log(row)
-				row = null
+			deleteRow(index, rows) {
+				rows.splice(index, 1);
 			},
-			upMaterialName(val){
-				console.log(val);
+			upMaterialName(val) {
+				this.sampleoptions.forEach(a => {
+					if (a.key == val) {
+						this.addPointerForm.sampleNumber = a.code
+					}
+				})
 				this.getModelSpecification(val)
-			}
+			},
+			getProductList(val) {
+				getProductList({
+					modelId: val
+				}).then(res => {
+					this.productList = res.data.map(item => {
+						return item.name
+					})
+				})
+				this.model_sta_options.forEach(a => {
+					if (a.key == val) {
+						this.addPointerForm.speName = a.value
+					}
+				})
+			},
+			getContractsSampleInfo() {
+				getContractsSampleInfo({
+					viewId: this.viewId
+				}).then(res => {
+					if (res.data == null) return
+					this.infoForm = {
+						commisioncode: res.data.entrustCoding,
+						deadline: res.data.completionDeadline,
+						address: res.data.contactAddress,
+						tel: res.data.contactNumber,
+						contacter: res.data.contacts,
+						other: res.data.entrustRemarks,
+						department: res.data.entrusted,
+						time: res.data.inspectionTime,
+						detectionInfo: res.data.linkDetectionList,
+						num: res.data.reportNumber,
+						way: '' + res.data.sampleDeliveryMode,
+						sendertel: res.data.sampleDeliveryPhone,
+						sender: res.data.sampleSender
+					}
+					this.detectionInfo = res.data.linkDetectionList
+				})
+			},
 		}
 	}
 </script>
@@ -439,6 +478,10 @@
 		background-color: #f0f2f5;
 		width: 100%;
 		height: 100vh;
+		display: flex;
+		flex-direction: column;
+		justify-content: space-between;
+		// align-items: center;
 
 		.firstBox {
 			.title {

--
Gitblit v1.9.3