Ver Fonte

维保资料编辑优化

pengyh há 1 ano atrás
pai
commit
f07acc1c07
1 ficheiros alterados com 57 adições e 46 exclusões
  1. 57 46
      src/views/engineeringMaintenance/basicData/detail.vue

+ 57 - 46
src/views/engineeringMaintenance/basicData/detail.vue

@@ -21,22 +21,22 @@
 								</el-form-item>
 							</el-col>
 							<el-col :span="12">
-								<el-form-item label="项目名称" prop="projectName" :required="true" >
+								<el-form-item label="项目名称" prop="projectName">
 									<el-input type="text" v-model="formData.projectName" :disabled="formType==2" placeholder="请输入"></el-input>
 								</el-form-item>
 							</el-col>
 							<el-col :span="12">
-								<el-form-item label="负责人" prop="manger" :required="true" >
+								<el-form-item label="负责人" prop="manger">
 									<el-input type="text" v-model="formData.manger" :disabled="formType==2" placeholder="请输入"></el-input>
 								</el-form-item>
 							</el-col>
 							<el-col :span="12">
-								<el-form-item label="联系电话" prop="mobile" :required="true">
-									<el-input type="text" v-model="formData.mobile" :disabled="formType==2" placeholder="请输入"></el-input>
+								<el-form-item label="联系电话" prop="mobile">
+									<el-input type="number" v-model="formData.mobile" :disabled="formType==2" placeholder="请输入"></el-input>
 								</el-form-item>
 							</el-col>
 							<el-col :span="12">
-								<el-form-item label="维保时间" prop="dateList" :required="true">
+								<el-form-item label="维保时间" prop="dateList">
 									<el-date-picker
 									 :disabled="formType==2"
 									  v-model="formData.dateList"
@@ -50,14 +50,14 @@
 								</el-form-item>
 							</el-col>
 							<el-col :span="12">
-								<el-form-item label="工单类型" prop="orderSmallTypeText" :required="true">
+								<el-form-item label="工单类型" prop="orderSmallTypeText">
 									<el-checkbox-group v-model="formData.checkTypeList">
 									    <el-checkbox v-for="(item,index) in orderTypeList" :disabled="formType==2" :key="index" :label="item.id">{{item.orderSmallTypeText}}</el-checkbox>
 									</el-checkbox-group>
 								</el-form-item>
 							</el-col>
 							<el-col :span="12">
-								<el-form-item label="包含全部费用" prop="isAllFee" :required="true">
+								<el-form-item label="包含全部费用" prop="isAllFee">
 									<el-radio-group v-model="formData.isAllFee" @change="(e)=>{
 										if(e == 'YES'){
 											formData.feePayMethod = ''
@@ -69,7 +69,7 @@
 								</el-form-item>
 							</el-col>
 							<el-col :span="12">
-								<el-form-item v-if="formData.isAllFee == 'NO'" label="费用支付方式" prop="feePayMethod" :required="true">
+								<el-form-item v-if="formData.isAllFee == 'NO'" label="费用支付方式" prop="feePayMethod">
 									<el-radio-group v-model="formData.feePayMethod">
 										<el-radio :disabled="formType==2" label="EXAMINE">审批后结算</el-radio>
 										<el-radio :disabled="formType==2" label="SITE">现场支付</el-radio>
@@ -95,7 +95,7 @@
 								</el-form-item>
 							</el-col>
 							<el-col :span="24">
-								<el-form-item label="" prop="address" :required="true">
+								<el-form-item label="" prop="address">
 									<el-row :gutter="20">
 										<el-col :span="22">
 											<el-input type="text" v-model="formData.address" :disabled="formType==2" placeholder="详细地址"></el-input>
@@ -127,7 +127,7 @@
 				<div class="table">
 					<!-- 项目设备 -->
 					<el-form ref="formData1" :model="formData1">
-						<el-table v-if="typeIndex == 1" :data="formData1.productList" element-loading-text="Loading" border fit highlight-current-row stripe>
+						<el-table v-show="typeIndex == 1" :data="formData1.productList" element-loading-text="Loading" border fit highlight-current-row stripe>
 							<el-table-column label="品牌" align="center">
 								<template slot-scope="scope">
 									<el-form-item :prop="'productList.' + scope.$index + '.brand'" :rules="[{ required: true, message: `请选择品牌`, trigger: 'change' }]">
@@ -237,7 +237,7 @@
 						</el-table>
 					</el-form>
 					<!-- 项目人员 -->
-					<el-form v-if="typeIndex == 2" ref="formData2" :model="formData2" label-width="0" size="small" label-position="left">
+					<el-form v-show="typeIndex == 2" ref="formData2" :rules="rules2" :model="formData2" label-width="0" size="small" label-position="left">
 						<el-table :data="formData2.byList" element-loading-text="Loading" border fit highlight-current-row stripe>
 							<el-table-column align="center" label="姓名">
 								<template slot-scope="scope">
@@ -248,8 +248,8 @@
 							</el-table-column>
 							<el-table-column align="center" label="联系电话" >
 								<template slot-scope="scope">
-									<el-form-item :prop="'byList.' + scope.$index + '.mobile'"
-										:rules="[{ required: true, message: `请输入联系电话`, trigger: 'blur' },{ pattern:/^((0\d{2,3}-\d{7,8})|(1[3456789]\d{9}))$/, message: '电话号码格式不正确', trigger: 'blur' }]">
+									<el-form-item :prop="'byList.' + scope.$index + '.mobile'" :required="true"
+										:rules="[{ required: true, message: `请输入联系电话`, trigger: 'blur' },{ pattern:/^((1[3456789]\d{9}))$/, message: '电话号码格式不正确', trigger: 'blur' }]">
 										<el-input type="number" v-model="scope.row.mobile" :disabled="isEdit != scope.$index || formType == 2" placeholder="请输入"></el-input>
 									</el-form-item>
 								</template>
@@ -277,11 +277,11 @@
 						</el-table>
 					</el-form>
 					<!-- 服务网点 -->
-					<el-form v-if="typeIndex == 3" ref="formData3" :model="formData3" label-width="0" size="small" label-position="left">
-						<el-table :data="formData3.websitData" element-loading-text="Loading" border fit highlight-current-row stripe>
+					<el-form v-show="typeIndex == 3" ref="formData3" :model="formData3" label-width="0" size="small" label-position="left">
+						<el-table :data="formData3.websitList" element-loading-text="Loading" border fit highlight-current-row stripe>
 							<el-table-column align="center" label="网点名称">
 								<template slot-scope="scope">
-									<el-form-item :prop="'websitData.' + scope.$index + '.websit'" :rules="[{ required: true, message: `请选择网点名称`, trigger: 'change' }]" :required="true">
+									<el-form-item :prop="'websitList.' + scope.$index + '.websit'" :rules="[{ required: true, message: `请选择网点名称`, trigger: 'change' }]" :required="true">
 										<el-select v-model="scope.row.websit" @change="(e)=>{
 											scope.row.websitId = e.websitId
 											scope.row.websitName = e.name
@@ -290,7 +290,7 @@
 											scope.row.address = e.address
 										}" value-key="websitId" :disabled="isEdit != scope.$index || formType == 2" placeholder="请选择" style="width: 100%;">
 										    <el-option
-										      v-for="item in websitList"
+										      v-for="item in websitData"
 										      :key="item.websitId"
 										      :label="item.name"
 										      :value="item">
@@ -299,21 +299,21 @@
 									</el-form-item>
 								</template>
 							</el-table-column>
-							<el-table-column prop="" align="center" label="联系人">
+							<el-table-column align="center" label="联系人">
 								<template slot-scope="scope">
 									<el-form-item>
 										<el-input type="text" v-model="scope.row.linkName" disabled placeholder="请输入"></el-input>
 									</el-form-item>
 								</template>
 							</el-table-column>
-							<el-table-column prop="" align="center" label="移动电话" >
+							<el-table-column align="center" label="移动电话" >
 								<template slot-scope="scope">
 									<el-form-item>
 										<el-input type="number" v-model="scope.row.mobile" disabled placeholder="请输入"></el-input>
 									</el-form-item>
 								</template>
 							</el-table-column>
-							<el-table-column prop="" align="center" label="地址" >
+							<el-table-column align="center" label="地址" >
 								<template slot-scope="scope">
 									<el-form-item>
 										<el-input type="text" v-model="scope.row.address" disabled placeholder="请输入"></el-input>
@@ -372,7 +372,7 @@
 				tabIndex: 1,
 				typeIndex: '1',
 				orderTypeList: [],
-				websitList: [],
+				websitData: [],
 				brandList: [],
 				historyList: [],
 				provinceList: [],
@@ -411,7 +411,7 @@
 					byList: [],
 				},
 				formData3: {
-					websitData: [],
+					websitList: [],
 				},
 				isEdit: 0,
 				companyName: JSON.parse(localStorage.getItem('greemall_user')).companyName,
@@ -439,10 +439,17 @@
 					feePayMethod: [
 						{ required: true, message: '请选择费用支付方式', trigger: 'change' }
 					],
+					isAllFee: [
+						{ required: true, message: '', trigger: '' }
+					],
+					orderSmallTypeText: [
+						{ required: true, message: '', trigger: '' }
+					]
 				},
 				rules1: {},
 				rules2: {},
 				rules3: {},
+				isSave: true
 			};
 		},
 		computed: {
@@ -494,7 +501,7 @@
 					})
 					this.formData2.byList = res.data.byList
 					this.formData1.productList = res.data.productList
-					this.formData3.websitData = res.data.websitList
+					this.formData3.websitList = res.data.websitList
 					
 					console.log(this.formData.checkTypeList,'123123123')
 				})
@@ -611,7 +618,7 @@
 			},
 			getWebsit(){
 				getWebsit({type: 'C'}).then(res => {
-					this.websitList = res.data
+					this.websitData = res.data
 				})
 			},
 			getCategory(websitId){
@@ -623,22 +630,19 @@
 				this.isEdit = 0
 			},
 			preserveRuleForm(name) {
-				console.log('this.$refs.'+name)
-				const that = this
-				let ruleForm = new Promise(function (resolve, reject) {
-					that.$refs[name].validate((valid) => {
-						if (valid) {
-							resolve(true);
-						} else {
-							resolve(false);
-						}
-					});
-				})
-				return ruleForm
+				let is_save = false
+				this.$refs[name].validate((valid) => {
+					if (valid) {
+						is_save = true
+					} else {
+						is_save = false;
+					}
+				});
+				return is_save
 			},
 			add(){
 				if(!this.preserveRuleForm('formData' + this.typeIndex)){return false}
-				let name = this.typeIndex == 1?'productList':this.typeIndex == 2?'byList':'websitData'
+				let name = this.typeIndex == 1?'productList':this.typeIndex == 2?'byList':'websitList'
 				if(this['formData' + this.typeIndex][name].length != 0){this.isEdit += 1}
 				if(this.typeIndex == 1){
 					this['formData' + this.typeIndex][name].push({
@@ -676,7 +680,7 @@
 				}
 			},
 			del(index){
-				let name = this.typeIndex == 1?'productList':this.typeIndex == 2?'byList':'websitData'
+				let name = this.typeIndex == 1?'productList':this.typeIndex == 2?'byList':'websitList'
 				this['formData' + this.typeIndex][name].splice(index,1)
 			},
 			confirm(){
@@ -684,31 +688,38 @@
 				this.$refs.formData.validate((valid, invalidFields, errLabels) => {
 					if (valid) {
 						if(that.formData1.productList.length == 0){
-							that.typeIndex = 1
+							that.typeIndex = '1'
 							return that.$message.error('请添加项目设备信息');
 						}
 						if(that.formData2.byList.length == 0){
-							that.typeIndex = 2
+							that.typeIndex = '2'
 							return that.$message.error('请添加项目人员信息');
 						}
-						if(that.formData3.websitData.length == 0){
-							that.typeIndex = 3
+						if(that.formData3.websitList.length == 0){
+							that.typeIndex = '3'
 							return that.$message.error('请添加服务网点信息');
 						}
 						if(!that.preserveRuleForm('formData1')){
-							return that.typeIndex = 1
+							return that.typeIndex = '1'
 						}
 						if(!that.preserveRuleForm('formData2')){
-							return that.typeIndex = 2
+							return that.typeIndex = '2'
 						}
 						if(!that.preserveRuleForm('formData3')){
-							return that.typeIndex = 3
+							return that.typeIndex = '3'
 						}
 						this.save()
 					}
 				})
 			},
 			save(){
+				if(!this.isSave){
+					return false
+				}
+				this.isSave = false
+				setTimeout(()=>{
+					this.isSave = true
+				})
 				let data = this.orderTypeList.filter((it) => {
 				   const index = this.formData.checkTypeList.findIndex((item) => item === it.id)
 				   return index !== -1
@@ -719,7 +730,7 @@
 					...this.formData,
 					byList: this.formData2.byList,
 					productList: this.formData1.productList,
-					websitList: this.formData3.websitData,
+					websitList: this.formData3.websitList,
 					typeList: data
 				}
 				save(params).then(res => {