From d762fc609a101b1a82576a54f835834f4e9cd9b9 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期四, 07 九月 2023 10:54:39 +0800
Subject: [PATCH] 	modified:   src/layout/components/Sidebar/SidebarItem.vue 	modified:   src/router/index.js 	modified:   src/views/CNAS/nonConformanceManage/index.vue 	modified:   src/views/CNAS/reviewAnnualPlan/index.vue 	modified:   src/views/CNAS/satisfactionSurveys/index.vue 	modified:   src/views/basicData/index.vue 	modified:   src/views/experiment/inspectionApplication/index.vue 	modified:   src/views/inspectionManagement/commissionInspection/index.vue 	modified:   src/views/inspectionManagement/reportForInspection/index.vue 	modified:   src/views/laboratory/organizational/index.vue 	modified:   src/views/login/index.vue

---
 src/views/inspectionManagement/reportForInspection/index.vue |  360 ++++++++++++++++++++---------------------------------------
 1 files changed, 122 insertions(+), 238 deletions(-)

diff --git a/src/views/inspectionManagement/reportForInspection/index.vue b/src/views/inspectionManagement/reportForInspection/index.vue
index c70ac79..e3dd70b 100644
--- a/src/views/inspectionManagement/reportForInspection/index.vue
+++ b/src/views/inspectionManagement/reportForInspection/index.vue
@@ -1,30 +1,30 @@
 <template>
 	<div class="content-main">
-		<div class="rawPage" v-if="!showNewPage">
+		<div class="rawPage">
 			<div class="top-bar">
 				<el-form ref="form" :inline="true" :model="searchData">
 					<el-form-item label="鏉愭枡缂栫爜:" position="left" class="sermargin">
-						<el-input v-model="searchData.code" class="input-form" placeholder="璇疯緭鍏�">
+						<el-input size="small" v-model="searchData.code" class="input-form" placeholder="璇疯緭鍏�">
 						</el-input>
 					</el-form-item>
 					<el-form-item label="鏉愭枡鍚嶇О:" class="sermargin">
-						<el-input v-model="searchData.name" class="input-form" placeholder="璇疯緭鍏�">
+						<el-input size="small" v-model="searchData.name" class="input-form" placeholder="璇疯緭鍏ユ潗鏂欏悕绉�">
 						</el-input>
 					</el-form-item>
 					<el-form-item label="鐘舵��:" class="sermargin">
-						<el-select v-model="searchData.state" placeholder="鍏ㄩ儴">
+						<el-select size="small" v-model="searchData.state" placeholder="鍏ㄩ儴">
 							<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
 							</el-option>
 						</el-select>
 					</el-form-item>
 					<el-form-item label="鏉ユ枡鏃ユ湡:" style="margin-right: 20px;">
-						<el-input v-model="searchData.date" class="input-form" placeholder="璇疯緭鍏�">
-						</el-input>
+						<el-date-picker size="small" value-format="yyyy-MM-dd" v-model="searchData.date" class="input-form" placeholder="璇烽�夋嫨鏉ユ枡鏃ユ湡">
+						</el-date-picker>
 					</el-form-item>
 					<el-form-item>
-						<el-button type="primary" @click="search">鏌ヨ</el-button>
-						<el-button type="primary" plain @click="reset">閲嶇疆</el-button>
-						<el-button type="primary" icon="el-icon-plus" @click="addReportVisible = true">鏂板</el-button>
+						<el-button size="small" type="primary" @click="search">鏌ヨ</el-button>
+						<el-button size="small" type="primary" plain @click="reset">閲嶇疆</el-button>
+						<el-button size="small" type="primary" icon="el-icon-plus" @click="addReportVisible = true">鏂板</el-button>
 					</el-form-item>
 				</el-form>
 			</div>
@@ -48,13 +48,13 @@
 					</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>
+							:props="{label: 'Name', value: 'Id'}" 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-input type="number" min="0" v-model="insertData.num"/>
 					</el-form-item>
 				</el-form>
 				<span slot="footer" class="dialog-footer">
@@ -64,23 +64,18 @@
 			</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>
 					</div>
 				</div>
 				<div class="table-box">
-					<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 ref="inspectionTable" :max-height="450" :cell-style="{textAlign: 'left'}"
+						:header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'left'}"
+						:data="inspectionTable" style="width: 100%" @selection-change="handleSelectionChange"
+						:default-sort = "{prop: 'createTime', order: 'descending'}"
+						>
+						<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="dateSurvey" label="鏉ユ枡鏃ユ湡" min-width="8%" />
 						<el-table-column prop="supplierName" label="渚涘簲鍟嗗悕绉�" min-width="12%" />
@@ -90,8 +85,8 @@
 						<el-table-column prop="unit" label="鍗曚綅" min-width="5%" />
 						<el-table-column prop="quantity" label="鏁伴噺" min-width="5%" />
 						<el-table-column prop="inspectionDate" label="鎶ユ鏃ユ湡" min-width="8%" />
+						<el-table-column v-if="1===0" prop="createTime" label="鏃ユ湡" min-width="8%" />
 						<el-table-column prop="surveyor" label="妫�楠屼汉" min-width="8%" />
-						<el-table-column prop="insTime" label="妫�楠屾棩鏈�" min-width="8%" />
 						<el-table-column prop="type" label="鐘舵��" min-width="8%">
 							<template slot-scope="scope">
 								<span :style="{ color: scope.row.type === 1 ? 'green' : 'red' }">
@@ -116,7 +111,7 @@
 			</div>
 		</div>
 		<el-dialog title="閫夋嫨鏃ユ湡" :visible.sync="addReportDialog" width="60%">
-			<el-form :model="addInspectionForm" :rules="addInspectionFormRules" rule="addInspectionForm">
+			<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="缁撴潫鏃ユ湡">
@@ -144,105 +139,6 @@
 				<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" label-position="right" label-width="100px" size="mini">
-					<div class="formwrapper">
-						<el-row>
-							<el-col :span="8">
-								<el-form-item label="鏉ユ枡鏃ユ湡锛�">
-									<el-input style="width: 180px;" :value="inspectionForm.formTime" disabled autocomplete="off" />
-								</el-form-item>
-							</el-col>
-							<el-col :span="8">
-								<el-form-item label="渚涘簲鍟嗗悕绉帮細">
-									<el-input style="width: 180px;" :value="inspectionForm.supplier" disabled autocomplete="off" />
-								</el-form-item>
-							</el-col>
-							<el-col :span="8">
-								<el-form-item label="鏍峰搧缂栧彿锛�">
-									<el-input style="width: 180px;" :value="inspectionForm.code" disabled autocomplete="off" />
-								</el-form-item>
-							</el-col>
-						</el-row>
-						<el-row>
-							<el-col :span="8">
-								<el-form-item label="鏍峰搧鍚嶇О锛�">
-									<el-input style="width: 180px;" :value="inspectionForm.name" disabled autocomplete="off" />
-								</el-form-item>
-							</el-col>
-							<el-col :span="8">
-								<el-form-item label="瑙勬牸鍨嬪彿锛�">
-									<el-input style="width: 180px;" :value="inspectionForm.specifications" disabled autocomplete="off" />
-								</el-form-item>
-							</el-col>
-							<el-col :span="8">
-								<el-form-item label="鍗曚綅锛�">
-									<el-input style="width: 180px;" :value="inspectionForm.unit" disabled autocomplete="off" />
-								</el-form-item>
-							</el-col>
-						</el-row>
-						<el-row>
-							<el-col :span="8">
-								<el-form-item label="鏁伴噺锛�">
-									<el-input style="width: 180px;" :value="inspectionForm.num" disabled autocomplete="off" />
-								</el-form-item>
-							</el-col>
-							<el-col :span="8">
-								<el-form-item label="鎶ユ鏃ユ湡锛�">
-									<el-input style="width: 180px;" :value="inspectionForm.endTime" disabled autocomplete="off" />
-								</el-form-item>
-							</el-col>
-							<el-col :span="8">
-								<el-form-item label="鎶ユ浜猴細">
-									<el-input style="width: 180px;" :value="inspectionForm.userName" disabled autocomplete="off" />
-								</el-form-item>
-							</el-col>
-						</el-row>
-					</div>
-				</el-form>
-			</div>
-			<div class="inspectionProject">
-				<div class="header">
-					<span style="font-size: 14px">妫�楠岄」鐩�</span>
-					<div>
-						<!-- <el-button  type="primary" plain size="mini">淇濆瓨</el-button> -->
-						<el-button @click="showNewPage = false" type="primary" plain size="mini" icon="el-icon-back">杩斿洖</el-button>
-					</div>
-				</div>
-				<el-table :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="inspectionItems">
-					<el-table-column type="index" label="搴忓彿" width="60"></el-table-column>
-					<el-table-column prop="name" label="椤圭洰" width="250"></el-table-column>
-					<el-table-column prop="unit" label="鍗曚綅" width="125"></el-table-column>
-					<el-table-column prop="required" label="鏍囧噯鍊�" width="125"></el-table-column>
-					<el-table-column prop="internal" label="鍐呮祴鍊�" width="125"></el-table-column>
-					<el-table-column prop="testValue" label="妫�楠屽��" width="125"></el-table-column>
-					<el-table-column prop="userName" label="妫�楠屼汉">
-						<template slot-scope="scope">
-							<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 @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>
-				</el-table>
-			</div>
-		</div>
 	</div>
 </template>
 
@@ -250,9 +146,6 @@
 	import {
 		getRawMaterialList,
 		addInspect,
-		selectInspectsListById,
-		selectUser,
-		selectEquipment,
 		deleteMaterial,
 		addMaterial,
 		getMaterielName,
@@ -265,8 +158,6 @@
 			return {
         standardLibraryData:[],
         chooseVersion: [],
-				userName: "",
-				devices: "",
 				addInspectionForm: {
 					inspectionDate: [],
 					version: null
@@ -322,20 +213,6 @@
 					value: 0,
 					label: '鏈姤妫�'
 				}],
-				deviceoptions: [{
-					value: 0,
-					label: '鎷夊姏鏈�'
-				}, {
-					value: 1,
-					label: '鎷栨媺鏈�'
-				}],
-				checkeroptions: [{
-					value: 0,
-					label: '榛勫皬鏄�'
-				}, {
-					value: 1,
-					label: '寮犱笁'
-				}],
 				radioOptions: [{
 					label: '鍏ㄩ儴',
 					value: null
@@ -352,18 +229,6 @@
 				pageSize: 10,
 				total: 20,
 				data: '',
-				showNewPage: false,
-				inspectionForm: {},
-				inspectionItems: [{
-					index: 1,
-					name: "aaa",
-					unit: "KB",
-					required: "1",
-					internal: "2",
-					testValue: "3",
-					userName: "",
-					device: ""
-				}],
 				insertRule: {
 					fromDate: [{
 						required: true,
@@ -410,6 +275,13 @@
 		mounted() {
 			this.getMaterielName();
 		},
+		watch:{
+			addReportDialog(newVal){
+				if(newVal === false){
+					this.resetForm("addInspectionForm");
+				}
+			}
+		},
 		methods: {
 			handleChange() {
 
@@ -424,17 +296,9 @@
 					this.$message.error(error.message);
 				});
 			},
-			blurOptions(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.addInspectionForm.inspectionDate = [],
+				this.$refs[formName].resetFields();
 				this.addReportDialog = false
 			},
 			removeFun(row, index) {
@@ -446,7 +310,7 @@
 					this.deleteMaterialFun(row, index);
 				}).catch(() => {});
 			},
-			checkSelect(row, index) {
+			checkSelect(row) {
 				if (row.type === 1) {
 					return false;
 				} else {
@@ -454,7 +318,14 @@
 				}
 			},
 			handleSelectionChange(val) {
-				this.checkData = val;
+				if (val.length > 1) {
+					let data = val.pop();
+					this.$refs.inspectionTable.clearSelection();
+					this.$refs.inspectionTable.toggleRowSelection(data);
+					this.checkData = new Array(data);
+				}else{
+					this.checkData = val;
+				}
 			},
 			//鐢熸垚鎶ユ鍗曟寜閽�
 			addReportBtn() {
@@ -464,59 +335,65 @@
 					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);
+            			let mcode = this.checkData[0].materialCoding;
+            			let name = this.checkData[0].materialName;
+            			let speId = this.checkData[0].specificationsId;
+            			this.getChooseVersionFun(mcode,name,speId);
 						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)=>{
-            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];
-        });
-      },
+			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)=>{
+					var arr = res.data;
+					for(var i=0;i<arr.length;i++){
+						arr[i].id = "0" + i;
+					}
+					vm.standardLibraryData = arr;
+				})
+				
+			},
+			//鑾峰彇鐗堟湰鍒楄〃
+			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 = {
+				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,
@@ -525,23 +402,27 @@
 					"name": val.materialName,
 					"num": val.quantity,
 					"specifications": val.specificationsModels,
+					"specificationId": val.specificationsId,
 					"startTime": dateArr[0],
 					"supplier": val.supplierName,
 					"type": val.type,
 					"unit": val.unit,
 					"version": this.addInspectionForm.version
+					}
+					this.createReport(obj);
+					this.addReportDialog = false;
 				}
-				this.createReport(obj);
-				// this.addReportDialog = false;
-				// this.initNewSelection();
-				// this.showNewPage = true;
+				}));
 			},
 			//鐢熸垚鎶ユ鍗�
 			async createReport(param) {
-				let res = await addInspect(param);
-				if(res.data==null)return
-				this.$message.success('鎶ユ鎴愬姛')
-				this.$router.push(`/experiment/Viewdetails/${res.data}`)
+				await addInspect(param).then(res =>{
+					this.search();
+					this.$message.success('鎶ユ鎴愬姛')
+					this.$router.push(`/experiment/Viewdetails/${res.data}`)
+				}).catch(error =>{
+					this.$message.error(error.message)
+				});
 			},
 			// 鑾峰彇鍒嗛〉鍒楄〃鏁版嵁
 			async getRawMaterialList() {
@@ -576,20 +457,6 @@
 				}
 				this.getRawMaterialList()
 			},
-			radioclick() {
-				if (this.radioValue === 0) {
-
-				}
-			},
-			getAllTableData() {
-				this.getRawMaterialList()
-			},
-			getCheckData() {
-
-			},
-			getUnCheckData() {
-
-			},
 			// 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
 			handleSizeChange(val) {
 				this.pageSize = val
@@ -609,13 +476,25 @@
 			insert() {
 				this.$refs['addMaterialForm'].validate((valid) => {
 					if (valid) {
+						console.log(this.childrenOptions);
+						console.log(this.insertData);
+						let f=this.childrenOptions.filter(item=>{
+							return item.Id===this.insertData.specificationsNumber[0]
+						})[0]
+						console.log(f);
+						let fatherName=f.Name;
+						let c=f.children.filter(item=>{
+							return item.Id===this.insertData.specificationsNumber[1]
+						})[0]
+						let sonName=c.Name
+						let specificationsId=c.Id;
 						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],
+							"specificationsModels": fatherName+ '-' + sonName,
+							"specificationsId": specificationsId,	
 							"supplierName": this.insertData.supplierName,
 							"type": 0,
 							"unit": this.insertData.unit
@@ -686,10 +565,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