feat: [bpm] 新增流程详情 timeline
This commit is contained in:
@@ -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', [])
|
||||
}
|
||||
}
|
||||
|
||||
/** 初始化 */
|
||||
|
||||
Reference in New Issue
Block a user