48 lines
1.5 KiB
JavaScript
48 lines
1.5 KiB
JavaScript
// Mixin:支持“模板审批”与“手动审批人”二选一
|
||
// 依赖:
|
||
// 1. 引用 user-select 组件 (已有 src/components/userSelect)
|
||
// 2. 表单中需提供 tplId (工作流模板ID) 与 assigneeUserId (手动审批人ID)
|
||
//
|
||
// 使用方式:
|
||
// import manualApproverMixin from './_manualApproverMixin'
|
||
// export default { mixins: [manualApproverMixin], ... }
|
||
// 你的表单中绑定 approverMode / tplId / assigneeUserId
|
||
// approverMode: 'template' | 'manual'
|
||
|
||
export default {
|
||
data() {
|
||
return {
|
||
approverMode: 'template', // 默认使用流程模板
|
||
tplId: null, // 选中的模板ID
|
||
assigneeUserId: null // 手动审批人
|
||
}
|
||
},
|
||
computed: {
|
||
useTemplate() {
|
||
return this.approverMode === 'template'
|
||
}
|
||
},
|
||
methods: {
|
||
/**
|
||
* 在提交之前,调用该方法获取流程相关字段
|
||
* @returns {{tplId: number|null, assigneeUserId: number|null}}
|
||
*/
|
||
buildFlowFields() {
|
||
if (this.useTemplate) {
|
||
// 模板审批:必须选择 tplId
|
||
if (!this.tplId) {
|
||
this.$message.warning('请选择审批流程模板')
|
||
throw new Error('缺少 tplId')
|
||
}
|
||
return { tplId: this.tplId, assigneeUserId: null }
|
||
}
|
||
// 手动审批:必须选择审批人
|
||
if (!this.assigneeUserId) {
|
||
this.$message.warning('请选择审批人')
|
||
throw new Error('缺少 assigneeUserId')
|
||
}
|
||
return { tplId: 0, assigneeUserId: this.assigneeUserId }
|
||
}
|
||
}
|
||
}
|