From bd4fdac0fee9cf4f96dd947fef6f6ae950a450fe Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 01 九月 2023 17:07:48 +0800
Subject: [PATCH] 	modified:   package.json 	modified:   src/components/experiment/template_testReport/index.vue 	modified:   src/views/experiment/checkTheReport/index.vue 	modified:   src/views/experiment/inspectionApplication/index.vue 	modified:   src/views/inspectionManagement/commissionInspection/index.vue 	modified:   src/views/inspectionManagement/reportForInspection/index.vue

---
 src/views/inspectionManagement/commissionInspection/index.vue |  208 ++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 186 insertions(+), 22 deletions(-)

diff --git a/src/views/inspectionManagement/commissionInspection/index.vue b/src/views/inspectionManagement/commissionInspection/index.vue
index 2cf97f8..783bb85 100644
--- a/src/views/inspectionManagement/commissionInspection/index.vue
+++ b/src/views/inspectionManagement/commissionInspection/index.vue
@@ -53,25 +53,24 @@
 							</el-radio-group>
 						</div>
 						<div class="generateInsp">
-							<el-button type="primary" size="mini" icon="el-icon-document"
+							<el-button @click="addReportBtn" type="primary" size="mini" icon="el-icon-document"
 								style="background-color: rgb(1, 102, 226);">鐢熸垚鎶ユ鍗�</el-button>
 						</div>
 					</div>
 					<div class="table-box">
 						<el-table ref="commisionTable" :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="commisionTable" style="width: 100%">
-							<el-table-column type="selection" min-width="10%" />
+							:data="commisionTable" @selection-change="handleSelectionChange" style="width: 100%">
+							<el-table-column type="selection" :selectable="checkSelect" min-width="10%" />
 							<el-table-column type="index" label="搴忓彿" min-width="10%" />
 							<el-table-column prop="entrust_coding" label="濮旀墭缂栧彿" min-width="10%" />
 							<el-table-column prop="entrusted" label="濮旀墭鍗曚綅" min-width="12%" />
 							<el-table-column prop="samples_number" label="鏍峰搧鏁伴噺" min-width="8%" />
 							<el-table-column prop="sample_name" label="鏍峰搧鍚嶇О" min-width="8%" />
-							<el-table-column prop="specifications_models" label="瑙勬牸鍨嬪彿" min-width="12%" />
-							<el-table-column prop="dateSurvey" label="閫佹牱鏃堕棿" min-width="8%" />
+							<el-table-column prop="speName" label="瑙勬牸鍨嬪彿" min-width="12%" />
+							<el-table-column prop="inspectionTime" label="閫佹牱鏃堕棿" min-width="8%" />
 							<el-table-column prop="completionDeadline" label="瀹屾垚鏈熼檺" min-width="8%" />
 							<el-table-column prop="contacts" label="濮旀墭缂栧埗浜�" min-width="8%" />
-							<el-table-column prop="inspectionTime" label="妫�楠屾棩鏈�" min-width="8%" />
 							<el-table-column prop="inspection_status" label="鐘舵��" min-width="8%">
 								<template slot-scope="scope">
 									<div v-if="scope.row.inspection_status === 0">
@@ -126,6 +125,33 @@
 		</el-dialog>
 		<!-- 闅愯棌鍩熻緭鍏ユ鐢ㄦ潵澶嶅埗 -->
 		<input id="copyContext" style="position: absolute;top: 0;left: 0;opacity: 0;z-index: -10;" />
+		<el-dialog title="閫夋嫨鏃ユ湡" :visible.sync="addReportDialog" width="60%">
+			<el-form :model="addInspectionForm" :rules="addInspectionFormRules" ref="addInspectionForm">
+				<el-form-item label="妫�楠屾棩鏈�" label-width="100px" prop="inspectionDate">
+					<el-date-picker v-model="addInspectionForm.inspectionDate" type="daterange" value-format="yyyy-MM-dd"
+						range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡">
+					</el-date-picker>
+				</el-form-item>
+				<el-form-item label="褰撳墠鐗堟湰" label-width="100px" prop="version">
+					<el-select @change="changeVersionFun" v-model="addInspectionForm.version" placeholder="璇烽�夋嫨鐗堟湰">
+						<el-option v-for="item in chooseVersion" :key="item.value" :label="item.label" :value="item.value" ></el-option>
+					</el-select>
+				</el-form-item>
+			</el-form>
+			<el-table
+				style="width:90%;margin-left:5%" :data="standardLibraryData" row-key="id" border
+				default-expand-all :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
+				<el-table-column type="index" width="50px" label="搴忓彿"></el-table-column>
+				<el-table-column label="椤圭洰鍚嶇О" prop="name" sortable></el-table-column>
+				<el-table-column prop="unit" label="鍗曚綅" sortable></el-table-column>
+				<el-table-column label="鏍囧噯鍊�" prop="required" sortable></el-table-column>
+				<el-table-column prop="internal" label="鍐呮帶鍊�" sortable></el-table-column>
+			</el-table>
+			<div slot="footer" class="dialog-footer">
+				<el-button @click="resetForm('addInspectionForm')">鍙� 娑�</el-button>
+				<el-button type="primary" @click="confirmBtn('addInspectionForm')">纭� 瀹�</el-button>
+			</div>
+		</el-dialog>
 	</div>
 </template>
 
@@ -133,11 +159,30 @@
 	import {
 		getCommisionList,
 		getViewUUID,
-		selectViewUUID
+		selectViewUUID,
+		delLink,
+		chooseVersion,
+		lookProByVer,
+		addInspect
 	} from '@/api/inspection/commisioninspection'
 	export default {
 		data() {
 			return {
+				standardLibraryData:[],
+        		chooseVersion: [],
+				addInspectionForm: {
+					inspectionDate: [],
+					version: null
+				},
+				addInspectionFormRules: {
+					inspectionDate: [{
+						required: true,
+						message: '璇烽�夋嫨鏃ユ湡鍖洪棿',
+						trigger: 'change'
+					}],
+				},
+				addReportDialog: false,
+				checkData: [],
 				form: [],
 				searchData: {
 					code: '',
@@ -148,7 +193,7 @@
 					value: '1',
 					label: '閮ㄩ棬1'
 				}],
-				radioValue: 0,
+				radioValue: null,
 				commisionTable: [{
 					specifications_models: "GGXH-AAAAA",
 					inspectionTime: "2023-08-03",
@@ -164,15 +209,15 @@
 				}],
 				conditionsOptions: [{
 						label: '鍏ㄩ儴',
-						value: 0
+						value: null
 					},
 					{
 						label: '宸叉楠�',
-						value: 1
+						value: 0
 					},
 					{
 						label: '寰呮楠�',
-						value: 2
+						value: 1
 					}
 				],
 				currentPage: 1,
@@ -191,11 +236,121 @@
 		},
 		updated() {
 			if (this.$router.currentRoute.name === 'AddCommision') {
-				// console.log(this.$router.currentRoute.name)
 				this.showDetail = true
 			}
 		},
 		methods: {
+			resetForm(formName) {
+				this.addInspectionForm.inspectionDate = [],
+				this.$refs[formName].resetFields();
+				this.addReportDialog = false
+			},
+			checkSelect(row) {
+				if (row.type === 1) {
+					return false;
+				} else {
+					return true;
+				}
+			},
+			handleSelectionChange(val) {
+				if (val.length > 1) {
+					this.$refs.commisionTable.clearSelection();
+					this.$refs.commisionTable.toggleRowSelection(val.pop())
+				}
+				this.checkData = val;
+				console.log(this.checkData);
+			},
+			//鐢熸垚鎶ユ鍗曠‘璁ゆ寜閽�
+			confirmBtn(formName) {
+				this.$refs[formName].validate((valid)=>{
+					if(valid){
+					let dateArr = this.addInspectionForm.inspectionDate;
+					//娣诲姞鎶ユ鍗�
+					let val = this.checkData[0];
+					let obj = {
+						"endTime": dateArr[1],
+						"mcode":"mcode",
+						"formTime": val.inspectionTime,
+						"id": val.id,
+						"name": val.sample_name,
+						"num": val.samples_number,
+						"specifications": val.speName,
+						"startTime": dateArr[0],
+						"supplier": val.entrusted,
+						"type": 2,
+						// "unit": "mm",
+						"version": this.addInspectionForm.version
+					}
+					this.createReport(obj);
+					this.addReportDialog = false;
+					}
+				});
+			},
+			//鐢熸垚鎶ユ鍗曡姹�
+			async createReport(param) {
+				let res = await addInspect(param);
+				if(res.data==null)return
+				this.$message.success('鎶ユ鎴愬姛')
+				this.$router.push(`/experiment/Viewdetails/${res.data}`)
+			},
+			//鐢熸垚鎶ユ鍗曟寜閽�
+			addReportBtn() {
+				if (this.checkData.length < 1) {
+					this.$message.error("璇烽�夋嫨涓�鏉℃暟鎹�!");
+				} else {
+					if (this.checkData.length > 1) {
+						this.$message.error("鏈�澶氶�夋嫨涓�鏉℃暟鎹�!");
+					} else {
+						let mcode = this.checkData[0].entrust_coding;
+						let name = this.checkData[0].sample_name;
+						let specifications = this.checkData[0].speName;
+						let id = this.checkData[0].id;
+						this.getChooseVersionFun(mcode,name,specifications,id);
+						this.addReportDialog = true;
+					}
+				}
+			},
+			changeVersionFun(){
+				let mCode = this.checkData[0].entrust_coding;
+				let name = this.checkData[0].sample_name;
+				let specifications = this.checkData[0].speName;
+				let version = this.addInspectionForm.version;
+				let id = this.checkData[0].id;
+				this.getProByVersion(mCode,name,specifications,version,id);
+			},
+			//鑾峰彇鐗堟湰涓嬬殑鏍囧噯搴撴暟鎹�
+			async getProByVersion(mCode,name,specifications,version,id){
+				var vm = this;
+				await lookProByVer({
+					id : id,
+					mcode : mCode,
+					name : name,
+					specifications : specifications,
+					version: version
+				}).then((res)=>{
+					console.log(res);
+					vm.standardLibraryData = res.data;
+				})
+			},
+			//鑾峰彇鐗堟湰鍒楄〃
+			async getChooseVersionFun(mCode,name,specifications,id){
+				var vm = this;
+				this.chooseVersion = [];
+				await chooseVersion({
+				id : id,
+				name : name,
+				specifications : specifications
+				}).then((res)=>{
+					vm.getProByVersion(mCode,name,specifications,res.data[0],id);
+					for(let i=0;i<res.data.length;i++){
+						vm.chooseVersion.push({
+						value: res.data[i],
+						label: "V"+res.data[i]
+						});
+					}
+					vm.addInspectionForm.version = res.data[0];
+				});
+			},
 			async getCommisionList() {
 				const res = await getCommisionList({
 					pageNo: this.currentPage,
@@ -203,7 +358,6 @@
 				})
 				this.commisionTable = res.data.row
 				this.total = res.data.total
-				// console.log(res)
 				// 鑾峰彇鎵�鏈夌殑濮旀墭鍗曚綅鍚嶇О
 				const allDepartmentNames = [...new Set(this.commisionTable.map(item => item.entrusted))]
 				// 灏哸llDepartmentNames杞崲涓簅ptions闇�瑕佺殑鏍煎紡
@@ -235,11 +389,9 @@
 						inspectionStatus: this.radioValue
 					})
 				}
-				// console.log(res)
 				this.commisionTable = res.data.row
 				this.total = res.data.total
 			},
-
 			// 閲嶇疆鏂规硶
 			reset() {
 				// 閲嶇疆鎼滅储鏉′欢
@@ -252,24 +404,29 @@
 			},
 			async radioclick() {
 				// 澶勭悊鐐瑰嚮radio鐨勬椂闂�
-				console.log('radioValue', this.radioValue)
 				if (this.radioValue === 0) {
-					this.getCommisionList()
-				} else {
 					const res = await getCommisionList({
 						pageNo: this.currentPage,
 						pageSize: this.pageSize,
 						inspectionStatus: this.radioValue
 					})
-					// console.log(res)
 					this.commisionTable = res.data.row
 					this.total = res.data.total
+				} else if(this.radioValue === 1) {
+					const res = await getCommisionList({
+						pageNo: this.currentPage,
+						pageSize: this.pageSize,
+						inspectionStatus: this.radioValue
+					})
+					this.commisionTable = res.data.row
+					this.total = res.data.total
+				}else{
+					this.getCommisionList();
 				}
 
 			},
 			// 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
 			async handleSizeChange(val) {
-				// console.log(`姣忛〉 ${val} 鏉)
 				this.currentPage = 1
 				this.pageSize = val
 				if (this.radioValue === 0) {
@@ -286,7 +443,6 @@
 			},
 			// 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤�
 			async handleCurrentChange(val) {
-				// console.log(`褰撳墠椤�: ${val}`)
 				this.currentPage = val
 				if (this.radioValue === 0) {
 					this.getCommisionList()
@@ -327,12 +483,20 @@
 				if (document.execCommand('copy')) {
 					this.$message.success('宸插鍒跺埌鍓创鏉�')
 				}
+			},
+			handleClick(row){
+				delLink({
+					id: row.id
+				}).then(res=>{
+					this.$message.success('鍒犻櫎鎴愬姛')
+					this.getCommisionList()
+				})
 			}
 		}
 	}
 </script>
 
-<style scoped>
+<style scoped lang="scss">
 	.top-bar {
 		margin: -25px -15px;
 		background: #fff;

--
Gitblit v1.9.3