50
50
<!-- 主体内容 -->
51
51
<ContentWrap class =" mt-50px" >
52
52
<!-- 第一步:基本信息 -->
53
+ <!-- TODO @goldenzqqq:是不是可以居中哈,1024 -->
54
+ <!-- TODO @goldenzqqq:有必要,把第一步、第二步,拆成独立的 vue 组件哇?主要是,把相关的 html、还有 js 逻辑,可以挪进去,让主的 index.vue 更精简一点 -->
53
55
<div v-show =" currentStep === 0" >
54
56
<el-form
55
57
ref =" formRef"
200
202
201
203
<div v-if =" currentStep === 1" >
202
204
<!-- 第二步:表单设计 -->
205
+ <!-- TODO @goldenzqqq:是不是可以居中哈,1024 -->
203
206
<el-form
204
207
ref =" formRef"
205
208
:model =" formData"
@@ -316,9 +319,7 @@ const router = useRouter()
316
319
const route = useRoute ()
317
320
const userStore = useUserStoreWithOut ()
318
321
319
- // 步骤控制
320
- const currentStep = ref (0 )
321
- // 表单数据
322
+ const currentStep = ref (0 ) // 步骤控制
322
323
const formRef = ref ()
323
324
const formData: any = ref ({
324
325
id: undefined ,
@@ -337,9 +338,7 @@ const formData: any = ref({
337
338
managerUserType: undefined ,
338
339
startUserIds: [],
339
340
managerUserIds: []
340
- })
341
-
342
- // 表单校验规则
341
+ }) // 表单数据
343
342
const formRules = {
344
343
name: [{ required: true , message: ' 流程名称不能为空' , trigger: ' blur' }],
345
344
key: [{ required: true , message: ' 流程标识不能为空' , trigger: ' blur' }],
@@ -352,7 +351,7 @@ const formRules = {
352
351
formCustomViewPath: [{ required: true , message: ' 表单查看地址不能为空' , trigger: ' blur' }],
353
352
visible: [{ required: true , message: ' 是否可见不能为空' , trigger: ' blur' }],
354
353
managerUserIds: [{ required: true , message: ' 流程管理员不能为空' , trigger: ' blur' }]
355
- }
354
+ } // 表单校验规则
356
355
357
356
// 流程设计器相关
358
357
const xmlString = ref (undefined )
@@ -368,19 +367,19 @@ const selectedManagerUsers = ref<UserVO[]>([])
368
367
const userSelectFormRef = ref ()
369
368
const currentSelectType = ref <' start' | ' manager' >(' start' )
370
369
371
- // 打开发起人选择
370
+ /** 打开发起人选择 */
372
371
const openStartUserSelect = () => {
373
372
currentSelectType .value = ' start'
374
373
userSelectFormRef .value .open (0 , selectedStartUsers .value )
375
374
}
376
375
377
- // 打开管理员选择
376
+ /** 打开管理员选择 */
378
377
const openManagerUserSelect = () => {
379
378
currentSelectType .value = ' manager'
380
379
userSelectFormRef .value .open (0 , selectedManagerUsers .value )
381
380
}
382
381
383
- // 处理用户选择确认
382
+ /** 处理用户选择确认 */
384
383
const handleUserSelectConfirm = (_ , users : UserVO []) => {
385
384
if (currentSelectType .value === ' start' ) {
386
385
selectedStartUsers .value = users
@@ -391,35 +390,37 @@ const handleUserSelectConfirm = (_, users: UserVO[]) => {
391
390
}
392
391
}
393
392
394
- // 处理发起人类型变化
393
+ /** 处理发起人类型变化 */
395
394
const handleStartUserTypeChange = (value : number ) => {
396
395
if (value !== 1 ) {
397
396
selectedStartUsers .value = []
398
397
formData .value .startUserIds = []
399
398
}
400
399
}
401
400
402
- // 处理管理员类型变化
401
+ /** 处理管理员类型变化 */
403
402
const handleManagerUserTypeChange = (value : number ) => {
404
403
if (value !== 1 ) {
405
404
selectedManagerUsers .value = []
406
405
formData .value .managerUserIds = []
407
406
}
408
407
}
409
408
410
- // 移除发起人
409
+ /** 移除发起人 */
411
410
const handleRemoveStartUser = (user : UserVO ) => {
412
411
selectedStartUsers .value = selectedStartUsers .value .filter ((u ) => u .id !== user .id )
413
- formData .value .startUserIds = formData .value .startUserIds .filter ((id ) => id !== user .id )
412
+ formData .value .startUserIds = formData .value .startUserIds .filter ((id : number ) => id !== user .id )
414
413
}
415
414
416
- // 移除管理员
415
+ /** 移除管理员 */
417
416
const handleRemoveManagerUser = (user : UserVO ) => {
418
417
selectedManagerUsers .value = selectedManagerUsers .value .filter ((u ) => u .id !== user .id )
419
- formData .value .managerUserIds = formData .value .managerUserIds .filter ((id ) => id !== user .id )
418
+ formData .value .managerUserIds = formData .value .managerUserIds .filter (
419
+ (id : number ) => id !== user .id
420
+ )
420
421
}
421
422
422
- // 保存操作
423
+ /** 保存操作 */
423
424
const handleSave = async () => {
424
425
try {
425
426
if (formData .value .id ) {
@@ -436,7 +437,7 @@ const handleSave = async () => {
436
437
}
437
438
}
438
439
439
- // 发布操作
440
+ /** 发布操作 */
440
441
const handleDeploy = async () => {
441
442
try {
442
443
await message .confirm (' 是否确认发布该流程?' )
@@ -445,7 +446,8 @@ const handleDeploy = async () => {
445
446
await handleSave ()
446
447
await ModelApi .deployModel (formData .value .id )
447
448
message .success (' 发布成功' )
448
- router .push ({ path: ' /bpm/manager/model' })
449
+ // TODO @goldenzqqq:最好使用 name 哈
450
+ await router .push ({ path: ' /bpm/manager/model' })
449
451
} catch (error ) {
450
452
if (error instanceof Error ) {
451
453
// 校验失败时,跳转到对应步骤
@@ -465,7 +467,7 @@ const handleDeploy = async () => {
465
467
}
466
468
}
467
469
468
- // 初始化数据
470
+ /** 初始化数据 */
469
471
const initData = async () => {
470
472
const modelId = route .query .id as unknown as string
471
473
if (modelId ) {
@@ -497,16 +499,12 @@ const initData = async () => {
497
499
userList .value = await UserApi .getSimpleUserList ()
498
500
}
499
501
500
- onMounted (async () => {
501
- await initData ()
502
- })
503
-
504
- // 第一步校验
502
+ /** 第一步校验 */
505
503
const validateStep1 = async () => {
506
504
await formRef .value ?.validate ([' name' , ' key' , ' category' , ' icon' , ' type' , ' visible' ])
507
505
}
508
506
509
- // 第二步校验
507
+ /** 第二步校验 */
510
508
const validateStep2 = async () => {
511
509
await formRef .value ?.validate ([
512
510
' formType' ,
@@ -516,13 +514,14 @@ const validateStep2 = async () => {
516
514
])
517
515
}
518
516
519
- // 第三步校验
517
+ /** 第三步校验 */
520
518
const validateStep3 = async () => {
521
519
if (! xmlString .value ) {
522
520
throw new Error (' 请设计流程' )
523
521
}
524
522
}
525
523
524
+ /** 校验全部 */
526
525
const validateAllSteps = async () => {
527
526
for (const step of steps ) {
528
527
if (step .validator ) {
@@ -531,13 +530,14 @@ const validateAllSteps = async () => {
531
530
}
532
531
}
533
532
533
+ // TODO @goldenzqqq:是不是可以把 step1、step2、step3,改成 basic、form、designer。这样,可读性会好点。
534
534
const steps = [
535
535
{ title: ' 基本信息' , validator: validateStep1 },
536
536
{ title: ' 表单设计' , validator: validateStep2 },
537
537
{ title: ' 流程设计' , validator: validateStep3 }
538
538
]
539
539
540
- // 处理设计器保存成功
540
+ /** 处理设计器保存成功 */
541
541
const handleDesignSuccess = (bpmnXml ? : string ) => {
542
542
if (bpmnXml ) {
543
543
// 新建时,保存设计器生成的XML
@@ -546,7 +546,7 @@ const handleDesignSuccess = (bpmnXml?: string) => {
546
546
message .success (' 保存成功' )
547
547
}
548
548
549
- // 步骤切换处理
549
+ /** 步骤切换处理 */
550
550
const handleStepClick = async (index : number ) => {
551
551
// 如果是切换到第三步(流程设计),需要校验key和name
552
552
if (index === 2 ) {
@@ -555,11 +555,12 @@ const handleStepClick = async (index: number) => {
555
555
return
556
556
}
557
557
}
558
+ // TODO @goldenzqqq:感觉这里可以优化下,切换的时候,必须当前表单填写正确,不然不允许切换。
558
559
559
560
currentStep .value = index
560
561
}
561
562
562
- // 添加一个计算属性来判断是否显示设计器
563
+ /** 添加一个计算属性来判断是否显示设计器 */
563
564
const showDesigner = computed (() => {
564
565
return (
565
566
currentStep .value === 2 &&
@@ -585,6 +586,11 @@ onBeforeUnmount(() => {
585
586
w .bpmnInstances = null
586
587
}
587
588
})
589
+
590
+ /** 初始化 */
591
+ onMounted (async () => {
592
+ await initData ()
593
+ })
588
594
</script >
589
595
590
596
<style lang="scss" scoped>
0 commit comments