From c8ec099f3bf0d9cdc7e670ea2223c71e333d1e34 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 08 九月 2023 17:31:44 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.22:9001/r/lims-before

---
 src/views/inspectionManagement/commissionInspection/addCommision.vue |  228 +++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 190 insertions(+), 38 deletions(-)

diff --git a/src/views/inspectionManagement/commissionInspection/addCommision.vue b/src/views/inspectionManagement/commissionInspection/addCommision.vue
index c077f91..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">
@@ -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,14 +162,14 @@
 								</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>
@@ -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,13 +224,13 @@
 						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,index) in sampleoptions" :key="index" :value="options.key" :label="options.value"></el-option>
@@ -165,7 +240,7 @@
 						</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,7 +248,7 @@
 								</el-form-item>
 							</el-col>
 							<el-col :span="11">
-								<el-form-item label="瑙勬牸鍨嬪彿锛�">
+								<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"
@@ -184,19 +259,19 @@
 						</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="11">
-								<el-form-item label="娣诲姞椤圭洰锛�">
+								<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>
@@ -204,7 +279,7 @@
 								</el-form-item>
 							</el-col>
 							<el-col :span="11">
-								<el-form-item label="澶囨敞锛�">
+								<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>
@@ -212,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>
@@ -222,6 +297,7 @@
 </template>
 
 <script>
+	import PrintJS from 'print-js'
 	import {
 		getSampleName,
 		getModelSpecification,
@@ -235,6 +311,10 @@
 	export default {
 		data() {
 			return {
+				sampleNameList:[],
+				standardList:[],
+				testProjectList:[],
+				imgSrc: require("@/assets/404_images/logo.png"),
 				currentPage: 0,
 				searchData: '',
 				infoForm: {
@@ -282,6 +362,23 @@
 			}
 		},
 		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 != "") {
@@ -311,6 +408,19 @@
 			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('褰撳墠閾炬帴涓嶅湪鏈夋晥鏈熷唴,绯荤粺鑷姩鍏抽棴')
@@ -355,33 +465,36 @@
 					}
 				})
 			},
-			addInspection() {
-				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
-				this.addPointerForm = {
-					sampleNumber: '',
-					sampleName: '',
-					specificationsModels: '',
-					unit: '',
-					samplesNumber: '',
-					remarks: '',
-					experiment: [],
-					addway: '',
-					speName: ''
-				}
+			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
@@ -473,6 +586,45 @@
 </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