From e28bc4fced1c347a48326dcfbb944fdbd6e4660a Mon Sep 17 00:00:00 2001
From: yuyu <1981343953@qq.com>
Date: 星期四, 31 八月 2023 09:19:40 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.110.209:9001/r/lims-before

---
 src/views/inspectionManagement/reportForInspection/index.vue |  347 ++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 276 insertions(+), 71 deletions(-)

diff --git a/src/views/inspectionManagement/reportForInspection/index.vue b/src/views/inspectionManagement/reportForInspection/index.vue
index b6a1fdb..c2cbe46 100644
--- a/src/views/inspectionManagement/reportForInspection/index.vue
+++ b/src/views/inspectionManagement/reportForInspection/index.vue
@@ -29,18 +29,32 @@
 				</el-form>
 			</div>
 			<el-dialog title="鏂板鍘熸潗鏂欐姤妫�" :visible.sync="addReportVisible" width="40%">
-				<el-form v-model="insertData" label-position="left" label-width="80px">
-					<el-form-item label="鏍囧噯绫诲瀷">
-						<el-input v-model="insertData.materialName" />
+				<el-form ref="addMaterialForm" :rules="insertRule" :model="insertData" :inline="true" label-position="right"
+					label-width="80px">
+					<el-form-item label="鏉ユ枡鏃ユ湡:" prop="fromDate">
+						<el-date-picker v-model="insertData.fromDate" type="date" value-format="yyyy-MM-dd"></el-date-picker>
 					</el-form-item>
-					<el-form-item label="鐗╂枡鍚嶇О">
-						<el-input v-model="insertData.materialName" />
+					<el-form-item label="渚涜揣鍟嗗悕绉�:" prop="supplierName">
+						<el-input v-model="insertData.supplierName" />
 					</el-form-item>
-					<el-form-item label="鎵ц鏍囧噯">
-						<el-input v-model="insertData.standardName" />
+					<el-form-item label="鏉愭枡鍚嶇О:" prop="mName">
+						<el-select v-model="insertData.mName" placeholder="璇烽�夋嫨鏉愭枡鍚嶇О" @change="(val)=>{getSpecification(val)}">
+							<el-option v-for="(item,index) in materialList" :key="index" :label="item.name"
+								:value="item.id"></el-option>
+						</el-select>
 					</el-form-item>
-					<el-form-item label="瑙勬牸鍨嬪彿">
-						<el-input v-model="insertData.specificationsName" />
+					<el-form-item label="鏉愭枡缂栫爜:" prop="mCode">
+						<el-input disabled v-model="insertData.mCode" />
+					</el-form-item>
+					<el-form-item label="瑙勬牸鍨嬪彿:" prop="specificationsNumber">
+						<el-cascader v-model="insertData.specificationsNumber" :options="childrenOptions"
+							:props="{label: 'Name', value: 'Name'}" separator="-"></el-cascader>
+					</el-form-item>
+					<el-form-item label="鍗曚綅:" prop="unit">
+						<el-input type="text" v-model="insertData.unit" />
+					</el-form-item>
+					<el-form-item label="鏁伴噺:" prop="num">
+						<el-input type="number" v-model="insertData.num"/>
 					</el-form-item>
 				</el-form>
 				<span slot="footer" class="dialog-footer">
@@ -60,10 +74,9 @@
 						<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="inspectionTable" :max-height="800" :cell-style="{textAlign: 'center'}"
+					<el-table ref="inspectionTable" :max-height="600" :cell-style="{textAlign: 'center'}"
 						:header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
 						:data="inspectionTable" style="width: 100%" @selection-change="handleSelectionChange">
 						<el-table-column type="selection" :selectable="checkSelect" min-width="5%">
@@ -88,26 +101,44 @@
 						</el-table-column>
 						<el-table-column label="鎿嶄綔" min-width="8%">
 							<template slot-scope="scope">
-								<el-button type="text" size="small" @click="removeFun(scope.row)">鍒犻櫎</el-button>
+								<el-button type="text" size="small" @click="removeFun(scope.row,scope.$index)">鍒犻櫎</el-button>
 							</template>
 						</el-table-column>
 					</el-table>
 					<!-- 鍒嗛〉鍣� -->
 					<div>
 						<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
-							:current-page="currentPage" :page-sizes="[5, 10, 15, 20]" :page-size="pageSize"
+							:current-page="currentPage" :page-sizes="[10, 15, 20,30]" :page-size="pageSize"
 							layout="total, sizes, prev, pager, next, jumper" :total="total">
 						</el-pagination>
 					</div>
 				</div>
 			</div>
 		</div>
+		<el-dialog title="閫夋嫨鏃ユ湡" :visible.sync="addReportDialog" width="30%">
+			<el-form :model="addInspectionForm" :rules="addInspectionFormRules" rule="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 v-model="addInspectionForm.version" placeholder="璇烽�夋嫨鐗堟湰">
+						<el-option v-for="(item,index) in 5" :key="index" :value="item" :label="item"></el-option>
+					</el-select>
+				</el-form-item>
+			</el-form>
+			<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 class="newPage" v-if="showNewPage">
 			<!-- 鏂板椤甸潰 -->
 			<div class="inspectionForm">
-				<el-form :model="inspectionForm" ref="inspectionForm" label-position="right" label-width="100px" size="mini">
+				<el-form :model="inspectionForm" label-position="right" label-width="100px" size="mini">
 					<div class="formwrapper">
 						<el-row>
 							<el-col :span="8">
@@ -182,17 +213,19 @@
 					<el-table-column prop="testValue" label="妫�楠屽��" width="125"></el-table-column>
 					<el-table-column prop="userName" label="妫�楠屼汉">
 						<template slot-scope="scope">
-							<el-select v-model="scope.row.checker" size="small" slot="append" style="width: 260px;">
-								<el-option v-for="(item,index) in checkeroptions" :key="index" :value="item.value"
-									:label="item.label">{{ item.label }}</el-option>
+							<el-select @blur="blurOptions(scope.row)" v-model="scope.row.check" size="small" slot="append"
+								style="width: 260px;">
+								<el-option v-for="(item,index) in checkeroptions" :key="index" :value="item.id"
+									:label="item.name"></el-option>
 							</el-select>
 						</template>
 					</el-table-column>
 					<el-table-column prop="device" label="璇曢獙璁惧">
 						<template slot-scope="scope">
-							<el-select v-model="scope.row.device" size="small" slot="append" style="width: 260px;">
-								<el-option v-for="(item,index) in deviceoptions" :key="index" :value="item.value"
-									:label="item.label">{{ item.label }}</el-option>
+							<el-select @blur="blurOptions(scope.row)" v-model="scope.row.device" size="small" slot="append"
+								style="width: 260px;">
+								<el-option v-for="(item,index) in deviceoptions" :key="index" :value="item.id"
+									:label="item.equipmentName"></el-option>
 							</el-select>
 						</template>
 					</el-table-column>
@@ -206,14 +239,32 @@
 	import {
 		getRawMaterialList,
 		addInspect,
-		selectInspectsListById
+		selectInspectsListById,
+		selectUser,
+		selectEquipment,
+		deleteMaterial,
+		addMaterial,
+		getMaterielName,
+		getSpecification
 	} from '@/api/inspection/rawmaterial'
 	export default {
 		data() {
 			return {
-				insertData: {
-
+				userName: "",
+				devices: "",
+				addInspectionForm: {
+					inspectionDate: ['2023-08-01', '2023-08-31'],
+					version: 5
 				},
+				addInspectionFormRules: {
+					inspectionDate: [{
+						required: true,
+						message: '璇烽�夋嫨鏃ユ湡鍖洪棿',
+						trigger: 'change'
+					}],
+				},
+				addReportDialog: false,
+				insertData: {},
 				addReportVisible: false,
 				checked: false,
 				resultData: {},
@@ -225,15 +276,36 @@
 					state: '',
 					date: ''
 				},
+				childrenOptions: [{
+					value: 'zhinan',
+					label: '鎸囧崡',
+					children: [{
+						value: 'shejiyuanze',
+						label: '璁捐鍘熷垯',
+						children: [{
+							value: 'yizhi',
+							label: '涓�鑷�'
+						}, {
+							value: 'fankui',
+							label: '鍙嶉'
+						}, {
+							value: 'xiaolv',
+							label: '鏁堢巼'
+						}, {
+							value: 'kekong',
+							label: '鍙帶'
+						}]
+					}]
+				}],
 				options: [{
-					value: 0,
+					value: null,
 					label: '鍏ㄩ儴'
 				}, {
 					value: 1,
-					label: '宸叉楠�'
+					label: '宸叉姤妫�'
 				}, {
-					value: 2,
-					label: '寰呮楠�'
+					value: 0,
+					label: '鏈姤妫�'
 				}],
 				deviceoptions: [{
 					value: 0,
@@ -251,15 +323,15 @@
 				}],
 				radioOptions: [{
 					label: '鍏ㄩ儴',
-					value: 0
+					value: null
 				}, {
 					value: 1,
-					label: '宸叉楠�'
+					label: '宸叉姤妫�'
 				}, {
-					value: 2,
-					label: '寰呮楠�'
+					value: 0,
+					label: '鏈姤妫�'
 				}],
-				radioValue: 0,
+				radioValue: null,
 				inspectionTable: [{
 					createTime: '2023-07-28',
 					supplier_name: '鍥界綉灞变笢鐪佺數鍔涙湁闄愬叕鍙�',
@@ -274,28 +346,103 @@
 					condition: 1
 				}],
 				currentPage: 1,
-				pageSize: 5,
+				pageSize: 10,
 				total: 20,
 				data: '',
 				showNewPage: false,
 				inspectionForm: {},
-				inspectionItems: []
+				inspectionItems: [{
+					index: 1,
+					name: "aaa",
+					unit: "KB",
+					required: "1",
+					internal: "2",
+					testValue: "3",
+					userName: "",
+					device: ""
+				}],
+				insertRule: {
+					fromDate: [{
+						required: true,
+						message: '璇烽�夋嫨鏉ユ枡鏃ユ湡',
+						trigger: 'blur'
+					}],
+					supplierName: [{
+						required: true,
+						message: '璇疯緭鍏ヤ緵搴斿晢鍚嶇О',
+						trigger: 'blur'
+					}],
+					mName: [{
+						required: true,
+						message: '璇烽�夋嫨鐗╂枡鍚嶇О',
+						trigger: 'blur'
+					}],
+					mCode: [{
+						required: true,
+						message: '璇烽�夋嫨鐗╂枡',
+						trigger: 'blur'
+					}],
+					specificationsNumber: [{
+						required: true,
+						message: '璇烽�夋嫨瑙勬牸鍨嬪彿',
+						trigger: 'blur'
+					}],
+					unit: [{
+						required: true,
+						message: '璇疯緭鍏ュ崟浣�',
+						trigger: 'blur'
+					}],
+					num: [{
+						required: true,
+						message: '璇疯緭鍏ユ姤妫�鏁伴噺',
+						trigger: 'blur'
+					}]
+				},
+				materialList: []
 			}
 		},
 		created() {
 			this.getRawMaterialList()
 		},
+		mounted() {
+			this.getMaterielName()
+		},
 		methods: {
-			removeFun(row) {
+			handleChange() {
+
+			},
+			async deleteMaterialFun(row, index) {
+				let formData = new FormData();
+				formData.append("deleteId", row.id)
+				await deleteMaterial(formData).then(() => {
+					this.inspectionTable.splice(index, 1);
+					this.$message.success("鍒犻櫎鎴愬姛");
+				}).catch(error => {
+					this.$message.error(error.message);
+				});
+			},
+			blurOptions(row) {
+				console.log("鏇存柊", row);
+			},
+			async initNewSelection() {
+				const res = await selectUser();
+				const res2 = await selectEquipment();
+				this.checkeroptions = res.data;
+				this.deviceoptions = res2.data;
+			},
+			resetForm(formName) {
+				// this.addInspectionForm.inspectionDate = [],
+				// this.$refs[formName].resetFields();
+				this.addReportDialog = false
+			},
+			removeFun(row, index) {
 				this.$confirm('纭鍒犻櫎璇ユ暟鎹悧?', '鎻愮ず', {
 					confirmButtonText: '纭畾',
 					cancelButtonText: '鍙栨秷',
 					type: 'warning'
 				}).then(() => {
-					this.$message({
-						type: 'success',
-						message: '鍒犻櫎鎴愬姛!'
-					});
+					console.log(row.id);
+					this.deleteMaterialFun(row, index);
 				}).catch(() => {});
 			},
 			checkSelect(row, index) {
@@ -310,40 +457,46 @@
 			},
 			//鐢熸垚鎶ユ鍗曟寜閽�
 			addReportBtn() {
-				let arr = this.checkData;
-				if (arr.length < 1) {
+				if (this.checkData.length < 1) {
 					this.$message.error("璇烽�夋嫨涓�鏉℃暟鎹�!");
 				} else {
-					if (arr.length > 1) {
+					if (this.checkData.length > 1) {
 						this.$message.error("鏈�澶氶�夋嫨涓�鏉℃暟鎹�!");
 					} else {
-						//娣诲姞鎶ユ鍗�
-						let val = arr[0];
-						let obj = {
-							"endTime": val.dateSurvey,
-							"experiment": "",
-							"formTime": val.createTime,
-							"id": val.id,
-							"mcode": val.materialCoding,
-							"name": val.materialName,
-							"num": val.quantity,
-							"specifications": val.specificationsModels,
-							"startTime": val.inspectionDate,
-							"supplier": val.supplierName,
-							"type": val.type,
-							"unit": val.unit,
-							"version": val.version
-						}
-						this.createReport(obj);
-						this.showNewPage = true;
+						this.addReportDialog = true;
 					}
 				}
 			},
+			//鐢熸垚鎶ユ鍗曠‘璁ゆ寜閽�
+			confirmBtn(formName) {
+				let dateArr = this.addInspectionForm.inspectionDate;
+				//娣诲姞鎶ユ鍗�
+				let val = this.checkData[0];
+				let obj = {
+					"endTime": dateArr[1],
+					"experiment": "",
+					"formTime": val.createTime,
+					"id": val.id,
+					"mcode": val.materialCoding,
+					"name": val.materialName,
+					"num": val.quantity,
+					"specifications": val.specificationsModels,
+					"startTime": dateArr[0],
+					"supplier": val.supplierName,
+					"type": val.type,
+					"unit": val.unit,
+					"version": val.version
+				}
+				// this.createReport(obj);
+				this.addReportDialog = false;
+				this.initNewSelection();
+				this.showNewPage = true;
+			},
 			//鐢熸垚鎶ヤ环鍗�
 			async createReport(param) {
-				await addInspect(param);
+				let res = await addInspect(param);
 				const res2 = await selectInspectsListById({
-					id: 59
+					id: res.data
 				});
 				this.resultData = res2.data;
 				this.inspectionForm = res2.data;
@@ -363,7 +516,7 @@
 			async search() {
 				this.radioValue = this.searchData.state
 				const res = await getRawMaterialList({
-					condition: this.searchData.state,
+					type: this.searchData.state,
 					createTime: this.searchData.date,
 					materialCoding: this.searchData.code,
 					materialName: this.searchData.name,
@@ -384,14 +537,19 @@
 				this.getRawMaterialList()
 			},
 			radioclick() {
-				this.searchData.state = this.radioValue
-				this.inspectionTable = this.data.filter((item) => {
-					return item.condition === this.radioValue
-				})
+				console.log(this.inspectionTable);
 				if (this.radioValue === 0) {
-					this.inspectionTable = this.data
+
 				}
-				this.total = this.inspectionTable.length
+			},
+			getAllTableData() {
+				this.getRawMaterialList()
+			},
+			getCheckData() {
+
+			},
+			getUnCheckData() {
+
 			},
 			// 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
 			handleSizeChange(val) {
@@ -407,6 +565,53 @@
 				this.getRawMaterialList({
 					pageNo: this.currentPage,
 					pageSize: this.pageSize
+				})
+			},
+			insert() {
+				this.$refs['addMaterialForm'].validate((valid) => {
+					if (valid) {
+						var str = {
+							"dateSurvey": this.insertData.fromDate,
+							"materialCoding": this.insertData.mCode,
+							"materialName": this.insertData.mName,
+							"quantity": this.insertData.num,
+							"specificationsModels": this.insertData.specificationsNumber[0] + '-' + this.insertData
+								.specificationsNumber[1],
+							"supplierName": this.insertData.supplierName,
+							"type": 0,
+							"unit": this.insertData.unit
+						}
+						this.materialList.forEach(a => {
+							if (a.id == str.materialName) {
+								str.materialName = a.name
+							}
+						})
+						addMaterial(str).then(res => {
+							this.$message.success('娣诲姞鎴愬姛')
+							this.addReportVisible = false
+							this.getRawMaterialList()
+						})
+					} else {
+						return false;
+					}
+				});
+			},
+			getMaterielName() {
+				getMaterielName().then(res => {
+					this.materialList = res.data
+				})
+			},
+			getSpecification(val) {
+				this.materialList.forEach(a => {
+					if (a.id == val) {
+						this.insertData.mCode = a.code
+					}
+				})
+				getSpecification({
+					materialId: val
+				}).then(res => {
+					this.childrenOptions = JSON.parse(JSON.stringify(res.data).replaceAll('specifications', '').replaceAll(
+						'model', ''))
 				})
 			}
 		}
@@ -510,4 +715,4 @@
 			}
 		}
 	}
-</style>
+</style>
\ No newline at end of file

--
Gitblit v1.9.3