Skip to content

Commit 019104f

Browse files
committed
【代码评审修改】- 新审批界面部分修改
1 parent 619491b commit 019104f

File tree

3 files changed

+70
-38
lines changed

3 files changed

+70
-38
lines changed

src/api/bpm/processInstance/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export type ApprovalNodeInfo = {
4747
status: number
4848
startTime?: Date
4949
endTime?: Date
50-
candidateUserList?: User[]
50+
candidateUsers?: User[]
5151
tasks: ApprovalTaskInfo[]
5252
}
5353

src/views/bpm/processInstance/detail/ProcessInstanceTimeline.vue

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<div class="flex items-center mt-1">
1515
<!-- 情况一:遍历每个审批节点下的【进行中】task 任务 -->
1616
<div v-for="(task, idx) in activity.tasks" :key="idx" class="flex items-center">
17-
<div class="flex items-center flex-col pr-2">
17+
<div class="flex flex-col pr-2">
1818
<div class="position-relative" v-if="task.assigneeUser || task.ownerUser">
1919
<!-- 信息:头像 -->
2020
<el-avatar
@@ -47,7 +47,7 @@
4747
<!-- 信息:昵称 -->
4848
<div
4949
v-if="task.assigneeUser && task.assigneeUser.nickname"
50-
class="text-10px text-align-center"
50+
class="text-12px text-align-center"
5151
>
5252
{{ task.assigneeUser.nickname }}
5353
</div>
@@ -57,14 +57,20 @@
5757
>
5858
{{ task.ownerUser.nickname }}
5959
</div>
60-
<!-- TODO @jason:审批意见,要展示哈。 -->
61-
<!-- <div v-if="task.reason" :title="task.reason" class="text-13px text-truncate w-150px mt-1"> 审批意见: {{ task.reason }}</div> -->
60+
<div v-if="task.reason" class="text-#a5a5a5 my-4px text-12px flex items-center w-100%">
61+
<div
62+
:title="task.reason"
63+
class="text-truncate w-200px border-1px border-#a5a5a5 border-dashed rounded py-5px px-15px text-#2d2d2d"
64+
>
65+
{{ task.reason }}
66+
</div>
67+
</div>
6268
</div>
6369
</div>
6470
</div>
6571
<!-- 情况二:遍历每个审批节点下的【候选的】task 任务。例如说,1)依次审批,2)未来的审批任务等 -->
6672
<div
67-
v-for="(user, idx1) in activity.candidateUserList"
73+
v-for="(user, idx1) in activity.candidateUsers"
6874
:key="idx1"
6975
class="flex items-center"
7076
>
@@ -91,7 +97,6 @@
9197
<div v-if="user.nickname" class="text-10px text-align-center">
9298
{{ user.nickname }}
9399
</div>
94-
<!-- <div v-if="task.reason" :title="task.reason" class="text-13px text-truncate w-150px mt-1"> 审批意见: {{ task.reason }}</div> -->
95100
</div>
96101
</div>
97102
</div>

src/views/bpm/processInstance/detail/index_new.vue

Lines changed: 58 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -12,37 +12,45 @@
1212
<el-divider class="!my-8px" />
1313
<div class="flex items-center gap-5 mb-10px h-40px">
1414
<div class="text-26px font-bold mb-5px">{{ processInstance.name }}</div>
15-
<dict-tag :type="DICT_TYPE.BPM_PROCESS_INSTANCE_STATUS" :value="processInstance.status" />
15+
<dict-tag
16+
v-if="processInstance.status"
17+
:type="DICT_TYPE.BPM_PROCESS_INSTANCE_STATUS"
18+
:value="processInstance.status"
19+
/>
1620
</div>
1721

1822
<div class="flex items-center gap-5 mb-10px text-13px h-35px">
1923
<div
2024
class="bg-gray-100 h-35px rounded-3xl flex items-center p-8px gap-2 dark:color-gray-600"
2125
>
22-
<img class="rounded-full h-28px" src="@/assets/imgs/avatar.jpg" alt="" />
26+
<!-- <img class="rounded-full h-28px" src="@/assets/imgs/avatar.jpg" alt="" /> -->
27+
<el-avatar
28+
:size="28"
29+
v-if="processInstance?.startUser?.avatar"
30+
:src="processInstance?.startUser?.avatar"
31+
/>
32+
<el-avatar :size="28" v-else-if="processInstance?.startUser?.nickname">
33+
{{ processInstance?.startUser?.nickname.substring(0, 1) }}
34+
</el-avatar>
2335
{{ processInstance?.startUser?.nickname }}
2436
</div>
2537
<div class="text-#878c93"> {{ formatDate(processInstance.startTime) }} 提交 </div>
2638
</div>
2739

28-
<el-tabs v-model="activeTab">
40+
<el-tabs v-model="activeTab" @tab-change="onTabChange">
2941
<!-- 表单信息 -->
3042
<el-tab-pane label="审批详情" name="form">
3143
<div class="form-scroll-area">
3244
<el-scrollbar>
33-
<el-row :gutter="10">
45+
<el-row>
3446
<el-col :span="18" class="!flex !flex-col formCol">
3547
<!-- 表单信息 -->
3648
<div
3749
v-loading="processInstanceLoading"
3850
class="form-box flex flex-col mb-30px flex-1"
3951
>
4052
<!-- 情况一:流程表单 -->
41-
<el-col
42-
v-if="processInstance?.processDefinition?.formType === 10"
43-
:offset="6"
44-
:span="16"
45-
>
53+
<el-col v-if="processInstance?.processDefinition?.formType === 10">
4654
<form-create
4755
v-model="detailForm.value"
4856
v-model:api="fApi"
@@ -64,33 +72,44 @@
6472
</el-scrollbar>
6573
</div>
6674
</el-tab-pane>
75+
6776
<!-- 流程图 -->
6877
<el-tab-pane label="流程图" name="diagram">
69-
<ProcessInstanceBpmnViewer
70-
:id="`${id}`"
71-
:bpmn-xml="bpmnXml"
72-
:loading="processInstanceLoading"
73-
:process-instance="processInstance"
74-
:tasks="tasks"
75-
/>
78+
<div class="form-scroll-area">
79+
<el-scrollbar>
80+
<ProcessInstanceBpmnViewer
81+
:id="`${id}`"
82+
:bpmn-xml="bpmnXml"
83+
:loading="processInstanceLoading"
84+
:process-instance="processInstance"
85+
:tasks="tasks"
86+
/>
87+
</el-scrollbar>
88+
</div>
7689
</el-tab-pane>
90+
7791
<!-- 流转记录 -->
7892
<el-tab-pane label="流转记录" name="record">
79-
<ProcessInstanceTaskList
80-
:loading="tasksLoad"
81-
:process-instance="processInstance"
82-
:tasks="tasks"
83-
@refresh="getTaskList"
84-
/>
93+
<div class="form-scroll-area">
94+
<el-scrollbar>
95+
<ProcessInstanceTaskList
96+
:loading="tasksLoad"
97+
:process-instance="processInstance"
98+
:tasks="tasks"
99+
/>
100+
</el-scrollbar>
101+
</div>
85102
</el-tab-pane>
103+
86104
<!-- 流转评论 TODO 待开发 -->
87-
<el-tab-pane label="流转评论" name="comment"> 流转评论 </el-tab-pane>
105+
<el-tab-pane label="流转评论" name="comment">
106+
<div class="form-scroll-area">
107+
<el-scrollbar> 流转评论 </el-scrollbar>
108+
</div>
109+
</el-tab-pane>
88110
</el-tabs>
89111

90-
<div
91-
class="b-t-solid border-t-1px border-[var(--el-border-color)]"
92-
v-if="activeTab === 'form'"
93-
>
112+
<div class="b-t-solid border-t-1px border-[var(--el-border-color)]">
94113
<!-- 操作栏按钮 -->
95114
<ProcessInstanceOperationButton
96115
ref="operationButtonRef"
@@ -131,6 +150,7 @@ const props = defineProps<{
131150
const message = useMessage() // 消息弹窗
132151
const processInstanceLoading = ref(false) // 流程实例的加载中
133152
const processInstance = ref<any>({}) // 流程实例
153+
let processDefinitionId = undefined // 流程定义 Id
134154
const operationButtonRef = ref()
135155
const timelineRef = ref()
136156
const bpmnXml = ref('') // BPMN XML
@@ -151,10 +171,10 @@ const detailForm = ref({
151171
}) // 流程实例的表单详情
152172
153173
/** 获得详情 */
154-
const getDetail = () => {
174+
const getDetail = async () => {
155175
// 1. 获得流程实例相关
156176
getProcessInstance()
157-
// 2. 获得流程任务列表(审批记录)
177+
// 2. 获得流程任务列表
158178
getTaskList()
159179
}
160180
@@ -202,9 +222,9 @@ const getProcessInstance = async () => {
202222
// 注意:data.processDefinition.formCustomViewPath 是组件的全路径,例如说:/crm/contract/detail/index.vue
203223
BusinessFormComponent.value = registerComponent(data.processDefinition.formCustomViewPath)
204224
}
205-
225+
processDefinitionId = processDefinition.id
206226
// 加载流程图
207-
bpmnXml.value = (await DefinitionApi.getProcessDefinition(processDefinition.id))?.bpmnXml
227+
// bpmnXml.value = (await DefinitionApi.getProcessDefinition(processDefinition.id))?.bpmnXml
208228
} finally {
209229
processInstanceLoading.value = false
210230
}
@@ -273,6 +293,13 @@ const refresh = () => {
273293
/** 当前的Tab */
274294
const activeTab = ref('form')
275295
296+
/** Tab 切换 加载流程图,直接加载显示不出来,不知道啥原因,所以切换以后在加载 */
297+
const onTabChange = async (tabName: string) => {
298+
if (tabName === 'diagram' && processDefinitionId && !bpmnXml.value) {
299+
//加载流程图
300+
bpmnXml.value = (await DefinitionApi.getProcessDefinition(processDefinitionId))?.bpmnXml
301+
}
302+
}
276303
/** 初始化 */
277304
const userOptions = ref<UserApi.UserVO[]>([]) // 用户列表
278305
onMounted(async () => {

0 commit comments

Comments
 (0)