75
75
</el-radio-group >
76
76
</div >
77
77
</el-form-item >
78
- <el-form-item v-if =" modelData.customTitleSetting " class =" mb-20px" >
78
+ <el-form-item v-if =" modelData.titleSetting " class =" mb-20px" >
79
79
<template #label >
80
80
<el-text size =" large" tag =" b" >标题设置</el-text >
81
81
</template >
82
82
<div class =" flex flex-col" >
83
- <el-radio-group v-model =" modelData.customTitleSetting .enable" >
83
+ <el-radio-group v-model =" modelData.titleSetting .enable" >
84
84
<div class =" flex flex-col" >
85
85
<el-radio :value =" false"
86
86
>系统默认 <el-text type =" info" > 展示流程名称 </el-text ></el-radio
96
96
</div >
97
97
</el-radio-group >
98
98
<el-mention
99
- v-if =" modelData.customTitleSetting .enable"
100
- v-model =" modelData.customTitleSetting .title"
99
+ v-if =" modelData.titleSetting .enable"
100
+ v-model =" modelData.titleSetting .title"
101
101
type =" textarea"
102
102
prefix =" {"
103
103
split =" }"
104
104
whole
105
- :options =" formFieldOptions "
106
- placeholder =" 请插入表单字段或输入文本 "
105
+ :options =" formFieldOptions4Title "
106
+ placeholder =" 请插入表单字段(输入 '{' 可以选择表单字段)或输入文本 "
107
107
class =" w-600px!"
108
108
/>
109
109
</div >
110
110
</el-form-item >
111
+ <el-form-item
112
+ v-if =" modelData.summarySetting && modelData.formType === BpmModelFormType.NORMAL"
113
+ class =" mb-20px"
114
+ >
115
+ <template #label >
116
+ <el-text size =" large" tag =" b" >摘要设置</el-text >
117
+ </template >
118
+ <div class =" flex flex-col" >
119
+ <el-radio-group v-model =" modelData.summarySetting.enable" >
120
+ <div class =" flex flex-col" >
121
+ <el-radio :value =" false" >
122
+ 系统默认 <el-text type =" info" > 展示表单前 3 个字段 </el-text >
123
+ </el-radio >
124
+ <el-radio :value =" true" > 自定义摘要 </el-radio >
125
+ </div >
126
+ </el-radio-group >
127
+ <el-select
128
+ class =" w-500px!"
129
+ v-if =" modelData.summarySetting.enable"
130
+ v-model =" modelData.summarySetting.summary"
131
+ multiple
132
+ placeholder =" 请选择要展示的表单字段"
133
+ >
134
+ <el-option
135
+ v-for =" item in formFieldOptions4Summary"
136
+ :key =" item.value"
137
+ :label =" item.lable"
138
+ :value =" item.value"
139
+ />
140
+ </el-select >
141
+ </div >
142
+ </el-form-item >
111
143
</el-form >
112
144
</template >
113
145
@@ -174,21 +206,30 @@ const numberExample = computed(() => {
174
206
})
175
207
176
208
/** 表单选项 */
177
- const formField = ref <Array <{ field: ProcessVariableEnum ; title: string }>>([])
178
- const formFieldOptions = computed (() => {
209
+ const formField = ref <Array <{ field: string ; title: string }>>([])
210
+ const formFieldOptions4Title = computed (() => {
211
+ let cloneFormField = formField .value .map ((item ) => {
212
+ return {
213
+ label: item .title ,
214
+ value: item .field
215
+ }
216
+ })
179
217
// 固定添加发起人 ID 字段
180
- formField . value .unshift ({
181
- field : ProcessVariableEnum .PROCESS_DEFINITION_NAME ,
182
- title : ' 流程名称'
218
+ cloneFormField .unshift ({
219
+ label : ProcessVariableEnum .PROCESS_DEFINITION_NAME ,
220
+ value : ' 流程名称'
183
221
})
184
- formField . value .unshift ({
185
- field : ProcessVariableEnum .START_TIME ,
186
- title : ' 发起时间'
222
+ cloneFormField .unshift ({
223
+ label : ProcessVariableEnum .START_TIME ,
224
+ value : ' 发起时间'
187
225
})
188
- formField . value .unshift ({
189
- field : ProcessVariableEnum .START_USER_ID ,
190
- title : ' 发起人'
226
+ cloneFormField .unshift ({
227
+ label : ProcessVariableEnum .START_USER_ID ,
228
+ value : ' 发起人'
191
229
})
230
+ return cloneFormField
231
+ })
232
+ const formFieldOptions4Summary = computed (() => {
192
233
return formField .value .map ((item ) => {
193
234
return {
194
235
label: item .title ,
@@ -211,22 +252,28 @@ const initData = () => {
211
252
if (! modelData .value .autoApprovalType ) {
212
253
modelData .value .autoApprovalType = BpmAutoApproveType .NONE
213
254
}
214
- if (! modelData .value .customTitleSetting ) {
215
- modelData .value .customTitleSetting = {
255
+ if (! modelData .value .titleSetting ) {
256
+ modelData .value .titleSetting = {
216
257
enable: false ,
217
258
title: ' '
218
259
}
219
260
}
261
+ if (! modelData .value .summarySetting ) {
262
+ modelData .value .summarySetting = {
263
+ enable: false ,
264
+ summary: []
265
+ }
266
+ }
220
267
}
221
268
defineExpose ({ initData })
222
269
223
270
/** 监听表单 ID 变化,加载表单数据 */
224
271
watch (
225
272
() => modelData .value .formId ,
226
273
async (newFormId ) => {
227
- if (newFormId && modelData .value .formType === BpmModelFormType .CUSTOM ) {
274
+ if (newFormId && modelData .value .formType === BpmModelFormType .NORMAL ) {
228
275
const data = await FormApi .getForm (newFormId )
229
- const result: Array <{ field: ProcessVariableEnum ; title: string }> = []
276
+ const result: Array <{ field: string ; title: string }> = []
230
277
if (data .fields ) {
231
278
data .fields .forEach ((fieldStr : string ) => {
232
279
parseFormFields (JSON .parse (fieldStr ), result )
0 commit comments