销售合同流程 优化申请部门

master
Harry Yang 2022-12-27 15:15:48 +08:00
parent be0cbceee2
commit 59a88635cc
2 changed files with 58 additions and 11 deletions

View File

@ -91,8 +91,8 @@
<div>
<el-form-item label="申请部门" :rules="[{ required: true, message: '申请部门不能为空'}]" prop="applyDept">
<el-cascader :options="applyDeptSectorOptions" clearable v-model="processForm.applyDept"
:props="{ expandTrigger: 'hover', label:'name', value: 'id'}"></el-cascader>
<el-cascader :options="applyDeptSectorOptions" clearable v-model="selectedDepts"
:props="{ expandTrigger: 'hover', label:'name', value: 'id'}" @change="applyDeptSelected"></el-cascader>
</el-form-item>
<el-form-item label="申请人">
@ -364,6 +364,7 @@
fileList: [],
// 销售合同收入明细
incomeDetails: [],
selectedDepts: []
}
}
@ -600,7 +601,49 @@
},
applyDeptSelected(value) {
console.log(value)
if (value.length === 0) {
this.processForm['applyDept'] = null
this.processForm['applyDeptId'] = null
this.processForm['applyDeptLeaderId'] = null
this.processForm['applyDeptLeaderName'] = null
return;
}
const level1Value = value[0]
const level2Value = value.length >= 2 && value[1]
const level3Value = value.length === 3 && value[2]
let opt;
const find = (options, value) => {
return options.find(option => option.id === value)
}
const leveled = []
let selected = find(this.applyDeptSectorOptions, level1Value)
leveled.push(selected)
if (selected && level2Value) {
selected = find(selected.children, level2Value)
if (selected && level3Value) {
leveled.push(selected)
selected = find(selected.children, level3Value)
if (selected) {
leveled.push(selected)
opt = selected
}
}
else {
opt = selected
}
}
else {
opt = selected
}
this.selectedDepts = leveled.map(level => level.id)
this.processForm['applyDept'] = leveled.map(level => level.name).join(',')
this.processForm['applyDeptId'] = leveled.map(level => level.id).join(',')
this.processForm['applyDeptLeaderId'] = opt.leaderId
this.processForm['applyDeptLeaderName'] = opt.leaderName
},
}

View File

@ -143,8 +143,8 @@
<div>
<el-form-item label="申请部门" :rules="[{ required: true, message: '申请部门不能为空'}]" prop="applyDept">
<el-cascader :options="applyDeptSectorOptions" clearable v-model="processForm.applyDept"
:props="{ expandTrigger: 'click', label:'name', value: 'id'}" @change="applyDeptSelected"></el-cascader>
<el-cascader :options="applyDeptSectorOptions" clearable v-model="selectedDepts"
:props="{ expandTrigger: 'hover', label:'name', value: 'id'}" @change="applyDeptSelected"></el-cascader>
</el-form-item>
<el-form-item label="申请人">
@ -153,7 +153,7 @@
</el-form-item>
<el-form-item label="申请部门领导">
<span v-if="projectSelected">{{processForm.applyDeptLeaderName}}</span>
<span v-if="processForm.applyDeptLeaderName">{{processForm.applyDeptLeaderName}}</span>
<span v-else>未选择部门</span>
</el-form-item>
@ -478,7 +478,8 @@
fileList: [],
// 销售合同收入明细
incomeDetails: [],
processType: ""
processType: "",
selectedDepts: []
}
}
@ -574,6 +575,10 @@
this.incomeDetails = incomeDetails.map(detail => ({
...detail, type: computeType(detail.type)
}))
if (!form.projectNo || !form.projectName) {
this.$message.warning("当前选择的项目没有编号或者名称");
}
})
.catch(err => {
this.$message.error("项目'" + name + "'加载失败");
@ -730,8 +735,6 @@
},
applyDeptSelected(value) {
console.log(value)
const sectorOptions = this.applyDeptSectorOptions
if (value.length === 0) {
this.processForm['applyDept'] = null
this.processForm['applyDeptId'] = null
@ -750,7 +753,7 @@
}
const leveled = []
let selected = find(sectorOptions, level1Value)
let selected = find(this.applyDeptSectorOptions, level1Value)
leveled.push(selected)
if (selected && level2Value) {
selected = find(selected.children, level2Value)
@ -770,8 +773,9 @@
opt = selected
}
this.selectedDepts = leveled.map(level => level.id)
this.processForm['applyDept'] = leveled.map(level => level.name).join(',')
this.processForm['applyDeptId'] = opt.id
this.processForm['applyDeptId'] = leveled.map(level => level.id).join(',')
this.processForm['applyDeptLeaderId'] = opt.leaderId
this.processForm['applyDeptLeaderName'] = opt.leaderName
},