From b723865e2b3ad6032d10deda501644ebabef8368 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期四, 31 八月 2023 15:43:58 +0800
Subject: [PATCH] 	modified:   src/api/inspection/commisioninspection.js 	modified:   src/api/inspection/rawmaterial.js 	modified:   src/views/inspectionManagement/commissionInspection/index.vue 	modified:   src/views/inspectionManagement/reportForInspection/index.vue

---
 src/views/inspectionManagement/reportForInspection/index.vue |  190 ++++++++++++++++++++++++++++++-----------------
 1 files changed, 120 insertions(+), 70 deletions(-)

diff --git a/src/views/inspectionManagement/reportForInspection/index.vue b/src/views/inspectionManagement/reportForInspection/index.vue
index dbc9c18..2081aa0 100644
--- a/src/views/inspectionManagement/reportForInspection/index.vue
+++ b/src/views/inspectionManagement/reportForInspection/index.vue
@@ -30,7 +30,7 @@
 			</div>
 			<el-dialog title="鏂板鍘熸潗鏂欐姤妫�" :visible.sync="addReportVisible" width="40%">
 				<el-form ref="addMaterialForm" :rules="insertRule" :model="insertData" :inline="true" label-position="right"
-					label-width="80px">
+					label-width="100px">
 					<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>
@@ -54,7 +54,7 @@
 						<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-input type="number" v-model="insertData.num"/>
 					</el-form-item>
 				</el-form>
 				<span slot="footer" class="dialog-footer">
@@ -64,12 +64,6 @@
 			</el-dialog>
 			<div class="library-table">
 				<div class="table-header">
-					<div class="search-bar">
-						<el-radio-group v-model="radioValue" @change="radioclick">
-							<el-radio-button v-for="option in radioOptions" :key="option.value"
-								:label="option.value">{{ option.label }}</el-radio-button>
-						</el-radio-group>
-					</div>
 					<div class="generateInsp">
 						<el-button @click="addReportBtn" type="primary" size="mini" icon="el-icon-document"
 							style="background-color: rgb(1, 102, 226);">鐢熸垚鎶ユ鍗�</el-button>
@@ -79,8 +73,7 @@
 					<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%">
-						</el-table-column>
+						<el-table-column type="selection" :selectable="checkSelect" min-width="5%"></el-table-column>
 						<el-table-column type="index" label="搴忓彿" min-width="8%" />
 						<el-table-column prop="createTime" label="鏉ユ枡鏃ユ湡" min-width="8%" />
 						<el-table-column prop="supplierName" label="渚涘簲鍟嗗悕绉�" min-width="12%" />
@@ -115,19 +108,30 @@
 				</div>
 			</div>
 		</div>
-		<el-dialog title="閫夋嫨鏃ユ湡" :visible.sync="addReportDialog" width="30%">
-			<el-form :model="addInspectionForm" :rules="addInspectionFormRules" rule="addInspectionForm">
+		<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 v-model="addInspectionForm.version" placeholder="璇烽�夋嫨鐗堟湰">
-						<el-option v-for="(item,index) in 5" :key="index" :value="item" :label="item"></el-option>
+				<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 ref="multipleTable"
+        :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>
@@ -245,16 +249,20 @@
 		deleteMaterial,
 		addMaterial,
 		getMaterielName,
-		getSpecification
+		getSpecification,
+    getChooseVersion,
+    lookProByVer
 	} from '@/api/inspection/rawmaterial'
 	export default {
 		data() {
 			return {
+        standardLibraryData:[],
+        chooseVersion: [],
 				userName: "",
 				devices: "",
 				addInspectionForm: {
-					inspectionDate: ['2023-08-01', '2023-08-31'],
-					version: 5
+					inspectionDate: [],
+					version: null
 				},
 				addInspectionFormRules: {
 					inspectionDate: [{
@@ -364,37 +372,37 @@
 				insertRule: {
 					fromDate: [{
 						required: true,
-						message: '璇疯緭鍏ユ椿鍔ㄥ悕绉�',
+						message: '璇烽�夋嫨鏉ユ枡鏃ユ湡',
 						trigger: 'blur'
 					}],
 					supplierName: [{
 						required: true,
-						message: '璇疯緭鍏ユ椿鍔ㄥ悕绉�',
+						message: '璇疯緭鍏ヤ緵搴斿晢鍚嶇О',
 						trigger: 'blur'
 					}],
 					mName: [{
 						required: true,
-						message: '璇疯緭鍏ユ椿鍔ㄥ悕绉�',
+						message: '璇烽�夋嫨鐗╂枡鍚嶇О',
 						trigger: 'blur'
 					}],
 					mCode: [{
 						required: true,
-						message: '璇疯緭鍏ユ椿鍔ㄥ悕绉�',
+						message: '璇烽�夋嫨鐗╂枡',
 						trigger: 'blur'
 					}],
 					specificationsNumber: [{
 						required: true,
-						message: '璇疯緭鍏ユ椿鍔ㄥ悕绉�',
+						message: '璇烽�夋嫨瑙勬牸鍨嬪彿',
 						trigger: 'blur'
 					}],
 					unit: [{
 						required: true,
-						message: '璇疯緭鍏ユ椿鍔ㄥ悕绉�',
+						message: '璇疯緭鍏ュ崟浣�',
 						trigger: 'blur'
 					}],
 					num: [{
 						required: true,
-						message: '璇疯緭鍏ユ椿鍔ㄥ悕绉�',
+						message: '璇疯緭鍏ユ姤妫�鏁伴噺',
 						trigger: 'blur'
 					}]
 				},
@@ -405,7 +413,7 @@
 			this.getRawMaterialList()
 		},
 		mounted() {
-			this.getMaterielName()
+			this.getMaterielName();
 		},
 		methods: {
 			handleChange() {
@@ -431,9 +439,9 @@
 				this.deviceoptions = res2.data;
 			},
 			resetForm(formName) {
-				// this.addInspectionForm.inspectionDate = [],
-				// this.$refs[formName].resetFields();
-				// this.addReportDialog = false
+				this.addInspectionForm.inspectionDate = [],
+				this.$refs[formName].resetFields();
+				this.addReportDialog = false
 			},
 			removeFun(row, index) {
 				this.$confirm('纭鍒犻櫎璇ユ暟鎹悧?', '鎻愮ず', {
@@ -445,7 +453,7 @@
 					this.deleteMaterialFun(row, index);
 				}).catch(() => {});
 			},
-			checkSelect(row, index) {
+			checkSelect(row) {
 				if (row.type === 1) {
 					return false;
 				} else {
@@ -453,6 +461,10 @@
 				}
 			},
 			handleSelectionChange(val) {
+        if (val.length > 1) {
+					this.$refs.inspectionTable.clearSelection();
+					this.$refs.inspectionTable.toggleRowSelection(val.pop())
+				}
 				this.checkData = val;
 			},
 			//鐢熸垚鎶ユ鍗曟寜閽�
@@ -463,36 +475,85 @@
 					if (this.checkData.length > 1) {
 						this.$message.error("鏈�澶氶�夋嫨涓�鏉℃暟鎹�!");
 					} else {
+            let mcode = this.checkData[0].materialCoding;
+            let name = this.checkData[0].materialName;
+            let specifications = this.checkData[0].specificationsModels;
+            this.getChooseVersionFun(mcode,name,specifications);
+            console.log(this.standardLibraryData);
 						this.addReportDialog = true;
 					}
 				}
 			},
+      changeVersionFun(){
+        let mCode = this.checkData[0].materialCoding;
+        let name = this.checkData[0].materialName;
+        let specifications = this.checkData[0].specificationsModels;
+        let version = this.addInspectionForm.version;
+        this.getProByVersion(mCode,name,specifications,version);
+      },
+      //鑾峰彇鐗堟湰涓嬬殑鏍囧噯搴撴暟鎹�
+      async getProByVersion(mCode,name,specifications,version){
+          var vm = this;
+          await lookProByVer({
+              mcode : mCode,
+              name : name,
+              specifications : specifications,
+              version: version
+          }).then((res)=>{
+            console.log(res);
+            vm.standardLibraryData = res.data;
+          })
+          
+      },
+      //鑾峰彇鐗堟湰鍒楄〃
+      async getChooseVersionFun(mCode,name,specifications){
+        var vm = this;
+        this.chooseVersion = [];
+        await getChooseVersion({
+          mcode : mCode,
+          name : name,
+          specifications : specifications
+        }).then((res)=>{
+              vm.getProByVersion(mCode,name,specifications,res.data[0])
+              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];
+        });
+      },
 			//鐢熸垚鎶ユ鍗曠‘璁ゆ寜閽�
 			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;
+        this.$refs[formName].validate((valid=>{
+          if(valid){
+            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": this.addInspectionForm.version
+            }
+            // this.createReport(obj);
+            this.addReportDialog = false;
+            this.initNewSelection();
+            this.showNewPage = true;
+          }
+        }));
 			},
-			//鐢熸垚鎶ヤ环鍗�
+			//鐢熸垚鎶ユ鍗�
 			async createReport(param) {
 				let res = await addInspect(param);
 				const res2 = await selectInspectsListById({
@@ -501,7 +562,6 @@
 				this.resultData = res2.data;
 				this.inspectionForm = res2.data;
 				this.inspectionItems = res2.data.insProducts;
-
 			},
 			// 鑾峰彇鍒嗛〉鍒楄〃鏁版嵁
 			async getRawMaterialList() {
@@ -535,21 +595,6 @@
 					date: ''
 				}
 				this.getRawMaterialList()
-			},
-			radioclick() {
-				console.log(this.inspectionTable);
-				if (this.radioValue === 0) {
-
-				}
-			},
-			getAllTableData() {
-				this.getRawMaterialList()
-			},
-			getCheckData() {
-
-			},
-			getUnCheckData() {
-
 			},
 			// 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
 			handleSizeChange(val) {
@@ -647,10 +692,15 @@
 			flex-direction: column;
 
 			.table-header {
+        width: 100%;
+        height: 70px;
 				padding: 20px;
 				display: flex;
 				justify-content: space-between;
-
+        .generateInsp{
+          position: relative;
+          left: 92%;
+        }
 				.el-form-item {
 					margin-bottom: 30px !important;
 				}

--
Gitblit v1.9.3