Commit 2774671a886c8a3f898670b6ccc41bef3a561bee

Authored by YunaiV
1 parent f6e03604

bpm:流程详情的初始加载

yudao-ui-admin-vue3/src/api/bpm/processInstance/index.ts
1 1 import request from '@/config/axios'
2 2  
  3 +export type Task = {
  4 + id: string
  5 + name: string
  6 +}
  7 +export type ProcessInstanceVO = {
  8 + id: number
  9 + name: string
  10 + processDefinitionId: string
  11 + category: string
  12 + result: number
  13 + tasks: Task[]
  14 + fields: string[]
  15 + status: number
  16 + remark: string
  17 + businessKey: string
  18 + createTime: string
  19 + endTime: string
  20 +}
  21 +
3 22 export const getMyProcessInstancePageApi = async (params) => {
4 23 return await request.get({ url: '/bpm/process-instance/my-page', params })
5 24 }
... ...
yudao-ui-admin-vue3/src/api/bpm/processInstance/types.ts deleted
1   -export type task = {
2   - id: string
3   - name: string
4   -}
5   -export type ProcessInstanceVO = {
6   - id: number
7   - name: string
8   - processDefinitionId: string
9   - category: string
10   - result: number
11   - tasks: task[]
12   - fields: string[]
13   - status: number
14   - remark: string
15   - businessKey: string
16   - createTime: string
17   - endTime: string
18   -}
yudao-ui-admin-vue3/src/utils/formCreate.ts
... ... @@ -37,9 +37,18 @@ export const setConfAndFields = (designerRef: object, conf: string, fields: stri
37 37 }
38 38  
39 39 // 设置表单的 Conf 和 Fields
40   -export const setConfAndFields2 = (detailPreview: object, conf: string, fields: string) => {
  40 +export const setConfAndFields2 = (
  41 + detailPreview: object,
  42 + conf: string,
  43 + fields: string,
  44 + value: object
  45 +) => {
41 46 // @ts-ignore
42 47 detailPreview.value.option = JSON.parse(conf)
43 48 // @ts-ignore
44 49 detailPreview.value.rule = decodeFields(fields)
  50 + if (value) {
  51 + // @ts-ignore
  52 + detailPreview.value.value = value
  53 + }
45 54 }
... ...
yudao-ui-admin-vue3/src/views/bpm/processInstance/detail.vue
... ... @@ -9,9 +9,12 @@
9 9 </template>
10 10 <!-- 情况一:流程表单 -->
11 11 <el-col v-if="processInstance?.processDefinition?.formType === 10" :span="16" :offset="6">
12   - <div>
13   - <parser :key="new Date().getTime()" :form-conf="detailForm" />
14   - </div>
  12 + <form-create
  13 + :rule="detailForm.rule"
  14 + v-model:api="fApi"
  15 + :option="detailForm.option"
  16 + v-model="detailForm.value"
  17 + />
15 18 </el-col>
16 19 <!-- 情况二:流程表单 -->
17 20 <div v-if="processInstance?.processDefinition?.formType === 20">
... ... @@ -40,6 +43,15 @@ const processInstanceLoading = ref(false) // 流程实例的加载中
40 43 const processInstance = ref({}) // 流程实例
41 44  
42 45 // ========== 申请信息 ==========
  46 +import { setConfAndFields2 } from '@/utils/formCreate'
  47 +import { ApiAttrs } from '@form-create/element-ui/types/config'
  48 +const fApi = ref<ApiAttrs>()
  49 +// 流程表单详情
  50 +const detailForm = ref({
  51 + rule: [],
  52 + option: {},
  53 + value: {}
  54 +})
43 55  
44 56 // ========== 初始化 ==========
45 57 onMounted(() => {
... ... @@ -53,7 +65,20 @@ onMounted(() =&gt; {
53 65 }
54 66 processInstance.value = data
55 67  
56   - // TODO 设置表单信息
  68 + // 设置表单信息
  69 + const processDefinition = data.processDefinition
  70 + if (processDefinition.formType === 10) {
  71 + setConfAndFields2(
  72 + detailForm,
  73 + processDefinition.formConf,
  74 + processDefinition.formFields,
  75 + data.formVariables
  76 + )
  77 + nextTick().then(() => {
  78 + fApi.value.btn.show(false)
  79 + fApi.value.resetBtn.show(false)
  80 + })
  81 + }
57 82  
58 83 // TODO 加载流程图
59 84  
... ...
yudao-ui-admin-vue3/src/views/bpm/processInstance/index.vue
... ... @@ -67,7 +67,7 @@ const handleDetail = (row) =&gt; {
67 67 router.push({
68 68 name: 'BpmProcessInstanceDetail',
69 69 query: {
70   - id: row.processInstanceId
  70 + id: row.id
71 71 }
72 72 })
73 73 }
... ...