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

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