75
75
<script lang="ts" setup>
76
76
import { decodeFields , setConfAndFields2 } from ' @/utils/formCreate'
77
77
import { BpmModelType } from ' @/utils/constants'
78
- import { CandidateStrategy } from ' @/components/SimpleProcessDesignerV2/src/consts'
78
+ import { CandidateStrategy , NodeId , FieldPermissionType } from ' @/components/SimpleProcessDesignerV2/src/consts'
79
79
import ProcessInstanceBpmnViewer from ' ../detail/ProcessInstanceBpmnViewer.vue'
80
80
import ProcessInstanceSimpleViewer from ' ../detail/ProcessInstanceSimpleViewer.vue'
81
81
import ProcessInstanceTimeline from ' ../detail/ProcessInstanceTimeline.vue'
@@ -129,8 +129,10 @@ const initProcessInfo = async (row: any, formVariables?: any) => {
129
129
}
130
130
}
131
131
setConfAndFields2 (detailForm , row .formConf , row .formFields , formVariables )
132
- await nextTick ()
132
+
133
+ await nextTick ();
133
134
fApi .value ?.btn .show (false ) // 隐藏提交按钮
135
+
134
136
// 获取流程审批信息
135
137
await getApprovalDetail (row )
136
138
@@ -152,7 +154,9 @@ const initProcessInfo = async (row: any, formVariables?: any) => {
152
154
/** 获取审批详情 */
153
155
const getApprovalDetail = async (row : any ) => {
154
156
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
+
156
160
if (! data ) {
157
161
message .error (' 查询不到审批详情信息!' )
158
162
return
@@ -170,10 +174,37 @@ const getApprovalDetail = async (row: any) => {
170
174
171
175
// 获取审批节点,显示 Timeline 的数据
172
176
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
+ }
173
185
} finally {
174
186
}
175
187
}
176
188
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
+
177
208
/** 提交按钮 */
178
209
const submitForm = async () => {
179
210
if (! fApi .value || ! props .selectProcessDefinition ) {
0 commit comments