|
@@ -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 => {
|