feat: [bpm] 新增流程详情 timeline

This commit is contained in:
jason
2026-01-20 10:35:49 +08:00
parent 23bc5ad5ba
commit 3b9696ac03
6 changed files with 437 additions and 262 deletions

View File

@@ -1,5 +1,24 @@
<template>
<wd-select-picker
v-if="useDefaultSlot"
v-model="selectedId"
:label="label"
:label-width="label ? '180rpx' : '0'"
:columns="userList"
value-key="id"
label-key="nickname"
:type="type"
:prop="prop"
use-default-slot
filterable
:placeholder="placeholder"
@confirm="handleConfirm"
>
<slot />
</wd-select-picker>
<wd-select-picker
v-else
v-model="selectedId"
:label="label"
:label-width="label ? '180rpx' : '0'"
@@ -25,15 +44,18 @@ const props = withDefaults(defineProps<{
label?: string
placeholder?: string
prop?: string
useDefaultSlot?: boolean
}>(), {
type: 'checkbox',
label: '',
placeholder: '请选择',
prop: '',
useDefaultSlot: false,
})
const emit = defineEmits<{
(e: 'update:modelValue', value: number | number[] | undefined): void
(e: 'confirm', users: User[]): void
}>()
const userList = ref<User[]>([])
@@ -74,6 +96,17 @@ async function loadUserList() {
/** 选择确认 */
function handleConfirm({ value }: { value: any }) {
emit('update:modelValue', value)
// 发出包含完整用户对象的 confirm 事件
if (Array.isArray(value)) {
const selectedUsers = userList.value.filter(user => value.includes(user.id))
emit('confirm', selectedUsers)
} else if (value) {
const selectedUser = userList.value.find(user => user.id === value)
emit('confirm', selectedUser ? [selectedUser] : [])
} else {
emit('confirm', [])
}
}
/** 初始化 */