From 275d9a3c158173842449782201b9be2c243dd58b Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期四, 07 九月 2023 18:00:43 +0800
Subject: [PATCH] 	modified:   .env.development 	modified:   src/main.js 	new file:   src/styles/fonts/element-icons.ttf 	new file:   src/styles/fonts/element-icons.woff 	new file:   src/styles/icon.css 	modified:   src/views/inspectionManagement/commissionInspection/addCommision.vue 	modified:   src/views/laboratory/organizational/index.vue

---
 src/views/inspectionManagement/commissionInspection/addCommision.vue |  273 +++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 215 insertions(+), 58 deletions(-)

diff --git a/src/views/inspectionManagement/commissionInspection/addCommision.vue b/src/views/inspectionManagement/commissionInspection/addCommision.vue
index ddcf3bc..10a9d5c 100644
--- a/src/views/inspectionManagement/commissionInspection/addCommision.vue
+++ b/src/views/inspectionManagement/commissionInspection/addCommision.vue
@@ -2,6 +2,79 @@
 	<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>
+									<i :class="`${infoForm.way == 1 ? 'el-icon-success' : 'el-icon-circle-check'}`"></i> 閫佹牱
+								</li>
+								<li>
+									<i :class="`${infoForm.way == 2 ? 'el-icon-success' : 'el-icon-circle-check'}`"></i> 涓婇棬
+								</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 +94,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 +109,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>
@@ -87,22 +160,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 +195,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 +211,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>
@@ -158,7 +231,7 @@
 								<el-form-item label="鏍峰搧鍚嶇О锛�">
 									<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>
@@ -174,7 +247,8 @@
 							</el-col>
 							<el-col :span="11">
 								<el-form-item label="瑙勬牸鍨嬪彿锛�">
-									<el-select v-model="addPointerForm.specificationsModels" size="small" placeholder="璇峰厛閫夋嫨鏍峰搧鍚嶇О" @change="getProductList">
+									<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>
@@ -194,7 +268,7 @@
 							</el-col>
 						</el-row>
 						<el-row :gutter="50">
-							<el-col :span="9">
+							<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, ai) in productList" :label="expers"
@@ -202,7 +276,7 @@
 									</el-checkbox-group>
 								</el-form-item>
 							</el-col>
-							<el-col :span="41">
+							<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" />
@@ -221,17 +295,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 +340,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: [],
@@ -302,12 +362,12 @@
 		watch: {
 			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 +383,26 @@
 			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(){
+				console.log(this.infoForm);
+				PrintJS({
+					printable: "printCommision",
+					type: "html",
+					css: [
+						"https://unpkg.com/element-ui/lib/theme-chalk/fonts/element-icons.ttf",
+						"https://unpkg.com/element-ui/lib/theme-chalk/fonts/element-icons.woff",
+						"https://unpkg.com/element-ui/lib/theme-chalk/icon.css"
+					],
+					targetStyles: ["*"],
+					ignoreElements: ["no-ignore"],
+				});
+			},
 			getlink(viewId) {
 				if (viewId == null) {
 					this.$message.error('褰撳墠閾炬帴涓嶅湪鏈夋晥鏈熷唴,绯荤粺鑷姩鍏抽棴')
@@ -340,7 +415,14 @@
 					if (!res.data) {
 						this.$message.error('褰撳墠閾炬帴涓嶅湪鏈夋晥鏈熷唴,绯荤粺鑷姩鍏抽棴')
 						this.$router.push('/404')
+					} else {
+						this.getContractsSampleInfo()
 					}
+				})
+			},
+			async getContractsSampleInfo(viewId) {
+				let res = await getContractsSampleInfo({
+					viewId
 				})
 			},
 			async getSampleName() {
@@ -366,15 +448,23 @@
 				})
 			},
 			addInspection() {
+				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]
-				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 = {
@@ -385,8 +475,10 @@
 					samplesNumber: '',
 					remarks: '',
 					experiment: [],
-					addway: ''
+					addway: '',
+					speName: ''
 				}
+				console.log(this.sampleNameList);
 			},
 			async submitInspection() {
 				let sampledeliveryway
@@ -407,12 +499,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 +519,8 @@
 			handleCurrentChange(pageNo) {
 				this.pageParams.pageNo = pageNo
 			},
-			deleteRow(row) {
-
+			deleteRow(index, rows) {
+				rows.splice(index, 1);
 			},
 			upMaterialName(val) {
 				this.sampleoptions.forEach(a => {
@@ -437,18 +530,82 @@
 				})
 				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;
+			}
+		}
+
+		tr,
+		td,
+		th {
+			padding: 20px 10px;
+		}
+	}
 	.content-main {
 		padding: 20px 40px;
 		background-color: #f0f2f5;

--
Gitblit v1.9.3