Skip to content

Commit ea97abc

Browse files
committed
【功能优化】发起流程时候,表单字段权限设置
1 parent 0ae9acd commit ea97abc

File tree

1 file changed

+34
-3
lines changed

1 file changed

+34
-3
lines changed

src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575
<script lang="ts" setup>
7676
import { decodeFields, setConfAndFields2 } from '@/utils/formCreate'
7777
import { BpmModelType } from '@/utils/constants'
78-
import { CandidateStrategy } from '@/components/SimpleProcessDesignerV2/src/consts'
78+
import { CandidateStrategy, NodeId, FieldPermissionType } from '@/components/SimpleProcessDesignerV2/src/consts'
7979
import ProcessInstanceBpmnViewer from '../detail/ProcessInstanceBpmnViewer.vue'
8080
import ProcessInstanceSimpleViewer from '../detail/ProcessInstanceSimpleViewer.vue'
8181
import ProcessInstanceTimeline from '../detail/ProcessInstanceTimeline.vue'
@@ -129,8 +129,10 @@ const initProcessInfo = async (row: any, formVariables?: any) => {
129129
}
130130
}
131131
setConfAndFields2(detailForm, row.formConf, row.formFields, formVariables)
132-
await nextTick()
132+
133+
await nextTick();
133134
fApi.value?.btn.show(false) // 隐藏提交按钮
135+
134136
// 获取流程审批信息
135137
await getApprovalDetail(row)
136138
@@ -152,7 +154,9 @@ const initProcessInfo = async (row: any, formVariables?: any) => {
152154
/** 获取审批详情 */
153155
const getApprovalDetail = async (row: any) => {
154156
try {
155-
const data = await ProcessInstanceApi.getApprovalDetail({ processDefinitionId: row.id })
157+
// 获取审批详情,设置 activityId 为发起人节点(为了获取字段权限。暂时只对 Simple 设计器有效)
158+
const data = await ProcessInstanceApi.getApprovalDetail({ processDefinitionId: row.id, activityId : NodeId.START_USER_NODE_ID })
159+
156160
if (!data) {
157161
message.error('查询不到审批详情信息!')
158162
return
@@ -170,10 +174,37 @@ const getApprovalDetail = async (row: any) => {
170174
171175
// 获取审批节点,显示 Timeline 的数据
172176
activityNodes.value = data.activityNodes
177+
// 获取表单字段权限
178+
const formFieldsPermission = data.formFieldsPermission
179+
// 设置表单字段权限
180+
if (formFieldsPermission) {
181+
Object.keys(formFieldsPermission).forEach((item) => {
182+
setFieldPermission(item, formFieldsPermission[item])
183+
})
184+
}
173185
} finally {
174186
}
175187
}
176188
189+
/**
190+
* 设置表单权限
191+
*/
192+
const setFieldPermission = (field: string, permission: string) => {
193+
if (permission === FieldPermissionType.READ) {
194+
//@ts-ignore
195+
fApi.value?.disabled(true, field)
196+
}
197+
if (permission === FieldPermissionType.WRITE) {
198+
//@ts-ignore
199+
fApi.value?.disabled(false, field)
200+
201+
}
202+
if (permission === FieldPermissionType.NONE) {
203+
//@ts-ignore
204+
fApi.value?.hidden(true, field)
205+
}
206+
}
207+
177208
/** 提交按钮 */
178209
const submitForm = async () => {
179210
if (!fApi.value || !props.selectProcessDefinition) {

0 commit comments

Comments
 (0)