From 2c38eea08bc6060c3371885e9f7fe79473968223 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 08 九月 2023 17:28:57 +0800
Subject: [PATCH] 	modified:   .env.development 	modified:   src/api/experiment/planAssignments.js 	deleted:    src/styles/fonts/element-icons.ttf 	deleted:    src/styles/fonts/element-icons.woff 	deleted:    src/styles/icon.css 	modified:   src/views/experiment/checkTheReport/index.vue 	modified:   src/views/experiment/inspectionApplication/index.vue 	modified:   src/views/experiment/reportAuditing/index.vue 	modified:   src/views/inspectionManagement/commissionInspection/addCommision.vue 	modified:   src/views/laboratory/ledger/index.vue

---
 src/views/inspectionManagement/commissionInspection/addCommision.vue |  348 +++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 262 insertions(+), 86 deletions(-)

diff --git a/src/views/inspectionManagement/commissionInspection/addCommision.vue b/src/views/inspectionManagement/commissionInspection/addCommision.vue
index ddcf3bc..cd2ced4 100644
--- a/src/views/inspectionManagement/commissionInspection/addCommision.vue
+++ b/src/views/inspectionManagement/commissionInspection/addCommision.vue
@@ -2,6 +2,81 @@
 	<div class="add_commision">
 		<div class="content-main">
 			<div class="firstBox">
+				<div class="printCommision" >
+				<table height="30px" id="printCommision">
+					<tr>
+						<td colspan="8">
+							<img :src="imgSrc" style="position: absolute;left: 50px;top:26px">
+							<h1 style="display: inline;">濮旀墭妫�楠岀敵璇峰崟</h1>
+						</td>
+					</tr>
+					<tr>
+						<td colspan="2">濮旀墭缂栧彿</td>
+						<td colspan="2">{{infoForm.commisioncode}}</td>
+						<td colspan="2">濮旀墭鍗曚綅</td>
+						<td colspan="2">{{infoForm.department}}</td>
+					</tr>
+					<tr>
+						<td colspan="2">鑱旂郴浜�</td>
+						<td colspan="2">{{infoForm.contacter}}</td>
+						<td colspan="2">鑱旂郴鐢佃瘽</td>
+						<td colspan="2">{{infoForm.tel}}</td>
+					</tr>
+					<tr>
+						<td colspan="2">鑱旂郴鍦板潃</td>
+						<td colspan="2">{{infoForm.address}}</td>
+						<td colspan="2">瀹屾垚鏈熼檺</td>
+						<td colspan="2">{{infoForm.deadline}}</td>
+					</tr>
+					<tr>
+						<td colspan="2">閫佹牱鏃堕棿</td>
+						<td colspan="2">{{infoForm.time}}</td>
+						<td colspan="2">閫佹牱浜�</td>
+						<td colspan="2">{{infoForm.sender}}</td>
+					</tr>
+					<tr>
+						<td colspan="2">閫佹牱浜虹數璇�</td>
+						<td colspan="2">{{infoForm.sendertel}}</td>
+						<td colspan="2">鎶ュ憡鏁伴噺</td>
+						<td colspan="2">{{infoForm.num}}</td>
+					</tr>
+					<tr>
+						<td colspan="2">閫佹牱鏂瑰紡</td>
+						<td colspan="6">
+							<ul>
+								<li>
+									<span class="success-icon">{{infoForm.way == 1 ? '鈭�' : ''}}</span> 
+									<span>鈻� 閫佹牱</span>
+								</li>
+								<li>
+									<span class="success-icon">{{infoForm.way == 2 ? '鈭�' : ''}}</span> 
+									<span>鈻� 涓婇棬</span>
+								</li>
+							</ul>
+						</td>
+					</tr>
+					<tbody colspan="8"  v-for="(item,index) in sampleNameList" :key="index">
+						<tr>
+							<td colspan="2">鏍峰搧</td>
+							<td colspan="2">{{item}}</td>
+							<td colspan="2">璇勫畾鏍囧噯</td>
+							<td colspan="2">{{standardList[index]}}</td>
+						</tr>
+						<tr>
+							<td colspan="2">璇曢獙椤圭洰</td>
+							<td colspan="6">
+								<p style="text-align:left;margin-left:20px" v-for="(data,index) in testProjectList[index]" :key="index">
+								{{index+1 + "銆�" + data}}
+								</p>
+							</td>
+						</tr>
+					</tbody>
+					<tr>
+						<td colspan="2">澶囨敞</td>
+						<td colspan="6">{{infoForm.other}}</td>
+					</tr>
+				</table>
+			</div>
 				<div class="title">濮旀墭淇℃伅</div>
 				<div class="tableBox">
 					<div class="tableBox-header">
@@ -21,13 +96,12 @@
 						: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>
@@ -37,11 +111,12 @@
 								</div>
 								<div v-else></div>
 							</template>
-						</el-table-column>
+						</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" @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>
@@ -69,7 +144,7 @@
 								</el-col>
 								<el-col :span="5">
 									<el-form-item label="鑱旂郴浜猴細">
-										<el-input style="width: 200px" v-model="infoForm.contacter" placeholder="璇疯緭鍏ュ鎵樺崟浣�" size="small" />
+										<el-input style="width: 200px" v-model="infoForm.contacter" placeholder="璇疯緭鍏ヨ仈绯讳汉" size="small" />
 									</el-form-item>
 								</el-col>
 								<el-col :span="5">
@@ -87,22 +162,22 @@
 								</el-col>
 								<el-col :span="5">
 									<el-form-item label="瀹屾垚鏈熼檺锛�">
-										<el-date-picker v-model="infoForm.deadline" type="date" placeholder="閫夋嫨鏃ユ湡" style="width: 200px;"
+										<el-date-picker value-format="yyyy-MM-dd" 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: 200px;">
+										<el-date-picker value-format="yyyy-MM-dd" 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: 200px;" 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-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>
@@ -122,7 +197,7 @@
 								</el-col>
 								<el-col :span="5">
 									<el-form-item label="鎶ュ憡鏁帮細">
-										<el-input style="width: 200px;" 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>
@@ -138,7 +213,7 @@
 							<el-button type="primary" size="small" @click="submitInspection"
 								style="background-color: rgb(1, 102, 226);">鎻愪氦</el-button>
 							<!-- 鐐瑰嚮杩斿洖锛屽綋鍓嶉〉闈㈠�间负false -->
-							<el-button type="primary" size="mini" style="background-color: rgb(1, 102, 226); ">鎵撳嵃濮旀墭鍗�</el-button>
+							<el-button type="primary" size="mini" style="background-color: rgb(1, 102, 226); " @click="printCommision">鎵撳嵃濮旀墭鍗�</el-button>
 						</div>
 					</el-form>
 				</div>
@@ -149,23 +224,23 @@
 						label-width="100px" size="mini">
 						<el-row :gutter="50">
 							<el-col :span="11">
-								<el-form-item label="鏍峰搧缂栧彿锛�">
+								<el-form-item label="鏍峰搧缂栧彿锛�" prop="sampleNumber">
 									<el-input v-model="addPointerForm.sampleNumber" size="small" disabled>
 									</el-input>
 								</el-form-item>
 							</el-col>
 							<el-col :span="11">
-								<el-form-item label="鏍峰搧鍚嶇О锛�">
+								<el-form-item label="鏍峰搧鍚嶇О锛�" prop="sampleName">
 									<el-select 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-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="11">
-								<el-form-item label="璇勫畾鏍囧噯锛�">
+								<el-form-item label="璇勫畾鏍囧噯锛�" prop="addway">
 									<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>
@@ -173,8 +248,9 @@
 								</el-form-item>
 							</el-col>
 							<el-col :span="11">
-								<el-form-item label="瑙勬牸鍨嬪彿锛�">
-									<el-select v-model="addPointerForm.specificationsModels" size="small" placeholder="璇峰厛閫夋嫨鏍峰搧鍚嶇О" @change="getProductList">
+								<el-form-item label="瑙勬牸鍨嬪彿锛�" prop="specificationsModels">
+									<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>
@@ -183,27 +259,27 @@
 						</el-row>
 						<el-row :gutter="50">
 							<el-col :span="11">
-								<el-form-item label="鏍峰搧鍗曚綅锛�">
+								<el-form-item label="鏍峰搧鍗曚綅锛�" prop="unit">
 									<el-input type="text" v-model="addPointerForm.unit" placeholder="璇疯緭鍏ュ崟浣�" autocomplete="off" />
 								</el-form-item>
 							</el-col>
 							<el-col :span="11">
-								<el-form-item label="鏍峰搧鏁伴噺锛�">
+								<el-form-item label="鏍峰搧鏁伴噺锛�" prop="samplesNumber">
 									<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="9">
-								<el-form-item label="娣诲姞椤圭洰锛�">
+							<el-col :span="11">
+								<el-form-item label="娣诲姞椤圭洰锛�" prop="experiment" :rules="[{required: true,message:'椤圭洰涓嶈兘涓虹┖',trigger:'blur'}]">
 									<el-checkbox-group v-model="addPointerForm.experiment" style="display: flex; flex-direction: column;">
 										<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="41">
-								<el-form-item label="澶囨敞锛�">
+							<el-col :span="11">
+								<el-form-item label="澶囨敞锛�" prop="remarks">
 									<el-input type="textarea" :autosize="{ minRows: 4, maxRows: 20}" style="width: 200px;"
 										v-model="addPointerForm.remarks" placeholder="璇疯緭鍏ュ娉�" autocomplete="off" />
 								</el-form-item>
@@ -211,7 +287,7 @@
 						</el-row>
 					</el-form>
 					<span slot="footer" class="dialog-footer">
-						<el-button type="primary" @click="addInspection">娣诲姞</el-button>
+						<el-button type="primary" @click="addInspection('addPointerForm')">娣诲姞</el-button>
 						<el-button @click="dialogueFormVisible = false">鍙� 娑�</el-button>
 					</span>
 				</el-dialog>
@@ -221,17 +297,24 @@
 </template>
 
 <script>
+	import PrintJS from 'print-js'
 	import {
 		getSampleName,
 		getModelSpecification,
 		getlink,
 		addInspection,
 		isIfViewUUID,
-		getProductList
+		getProductList,
+		getContractsSampleInfo,
+		getSpecificationsName
 	} from '@/api/inspection/commisioninspection'
 	export default {
 		data() {
 			return {
+				sampleNameList:[],
+				standardList:[],
+				testProjectList:[],
+				imgSrc: require("@/assets/404_images/logo.png"),
 				currentPage: 0,
 				searchData: '',
 				infoForm: {
@@ -259,30 +342,9 @@
 					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: [],
@@ -300,14 +362,31 @@
 			}
 		},
 		watch: {
+			dialogueFormVisible(val){
+				if(val == false){
+					this.addPointerForm = {
+							sampleNumber: '',
+							sampleName: '',
+							specificationsModels: '',
+							unit: '',
+							samplesNumber: '',
+							remarks: '',
+							experiment: [],
+							addway: '',
+							speName: ''
+						}
+					this.productList = [];
+					this.$refs['addPointerForm'].clearValidate();
+				}
+			},
 			addPointerForm: {
 				handler: function(val) {
-					if(val.addway!=""){
+					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{
+						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
 									}
@@ -323,11 +402,25 @@
 			this.viewId = this.$route.params.viewId
 			this.$store.commit('settings/SAVE_LINK', this.viewId)
 			this.getlink(this.$route.params.viewId)
+			this.getContractsSampleInfo(this.$route.params.viewId)
 		},
 		mounted() {
 			this.getSampleName()
 		},
 		methods: {
+			printCommision(){
+				if(this.detectionInfo.length < 1){
+					this.$message.error("璇峰厛娣诲姞涓�鏉℃牱鍝佹暟鎹�!");
+					return
+				}
+				console.log(this.infoForm);
+				PrintJS({
+					printable: "printCommision",
+					type: "html",
+					targetStyles: ["*"],
+					ignoreElements: ["no-ignore"],
+				});
+			},
 			getlink(viewId) {
 				if (viewId == null) {
 					this.$message.error('褰撳墠閾炬帴涓嶅湪鏈夋晥鏈熷唴,绯荤粺鑷姩鍏抽棴')
@@ -340,7 +433,14 @@
 					if (!res.data) {
 						this.$message.error('褰撳墠閾炬帴涓嶅湪鏈夋晥鏈熷唴,绯荤粺鑷姩鍏抽棴')
 						this.$router.push('/404')
+					} else {
+						this.getContractsSampleInfo()
 					}
+				})
+			},
+			async getContractsSampleInfo(viewId) {
+				let res = await getContractsSampleInfo({
+					viewId
 				})
 			},
 			async getSampleName() {
@@ -365,30 +465,36 @@
 					}
 				})
 			},
-			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.detectionInfo.push(tmp)
-				this.dialogueFormVisible = false
-				this.addPointerForm = {
-					sampleNumber: '',
-					sampleName: '',
-					specificationsModels: '',
-					unit: '',
-					samplesNumber: '',
-					remarks: '',
-					experiment: [],
-					addway: ''
-				}
+			addInspection(formName) {
+				this.$refs[formName].validate((valid)=>{
+					if(valid){
+						let sName = this.addPointerForm.sampleName;
+						this.sampleoptions.forEach(a=>{
+							if(a.key == sName) this.sampleNameList.push(a.value);
+						})
+						this.standardList.push(this.addPointerForm.addway);
+						this.testProjectList.push(this.addPointerForm.experiment);
+						let exper = this.addPointerForm.experiment[0]
+						for (let i = 1; i < this.addPointerForm.experiment.length; i++) {
+							exper += ',' + this.addPointerForm.experiment[i]
+						}
+						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
+					}
+				});
 			},
 			async submitInspection() {
+				if(this.detectionInfo.length < 1){
+					this.$message.error("璇峰厛娣诲姞涓�鏉℃牱鍝佹暟鎹�!");
+					return
+				}
 				let sampledeliveryway
 				if (this.infoForm.way === '閫佹牱') {
 					sampledeliveryway = 1
@@ -407,12 +513,13 @@
 					reportNumber: parseInt(this.infoForm.num),
 					sampleDeliveryMode: sampledeliveryway,
 					sampleDeliveryPhone: this.infoForm.sendertel,
-					sampleSender: this.infoForm.sender
+					sampleSender: this.infoForm.sender,
+					speName: this.infoForm.speName
 				})
 				this.infoForm.commisioncode = res.data
 				if (res.data) {
 					this.$message({
-						message: '鎭枩浣�!',
+						message: '娣诲姞鎴愬姛!',
 						type: 'success'
 					})
 					this.showDetail = true
@@ -426,8 +533,8 @@
 			handleCurrentChange(pageNo) {
 				this.pageParams.pageNo = pageNo
 			},
-			deleteRow(row) {
-
+			deleteRow(index, rows) {
+				rows.splice(index, 1);
 			},
 			upMaterialName(val) {
 				this.sampleoptions.forEach(a => {
@@ -437,18 +544,87 @@
 				})
 				this.getModelSpecification(val)
 			},
-			getProductList(val){
-				getProductList({modelId: val}).then(res=>{
-					this.productList = res.data.map(item=>{
+			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>
 
 <style lang="scss" scoped>
+	.printCommision{
+		display: none;
+		width: 90%;
+		height:100px;
+		table {
+			width: 100%;
+			border-collapse: collapse;
+			font-size: 18px;
+		}
+
+		table,
+		tr,
+		th,
+		td {
+			border: 2px solid black;
+			text-align: center;
+			font-family: '寰蒋闆呴粦';
+			ul{
+				list-style: none;
+				width: 500px;
+			}
+			ul li{
+				display: inline;
+				width:100px;
+				margin: 0 25px;
+				.success-icon{
+					position: relative;
+					left: 15px;
+					bottom: 3px;
+				}
+			}
+		}
+
+		tr,
+		td,
+		th {
+			padding: 20px 10px;
+		}
+	}
 	.content-main {
 		padding: 20px 40px;
 		background-color: #f0f2f5;

--
Gitblit v1.9.3