Merge remote-tracking branch 'yudao/dev' into dev

This commit is contained in:
jason
2025-06-27 23:20:20 +08:00
185 changed files with 6101 additions and 1366 deletions

View File

@@ -21,7 +21,7 @@ const props = defineProps<{
type: 'copy' | 'create' | 'edit';
}>();
// 流程表单详情
/** 流程表单详情 */
const flowFormConfig = ref();
const [FormModal, formModalApi] = useVbenModal({
@@ -31,7 +31,7 @@ const [FormModal, formModalApi] = useVbenModal({
const designerRef = ref<InstanceType<typeof FcDesigner>>();
// 表单设计器配置
/** 表单设计器配置 */
const designerConfig = ref({
switchType: [], // 是否可以切换组件类型,或者可以相互切换的字段
autoActive: true, // 是否自动选中拖入的组件
@@ -80,7 +80,7 @@ const currentFormId = computed(() => {
});
// 加载表单配置
async function loadFormConfig(id: number | string) {
async function loadFormConfig(id: number) {
try {
const formDetail = await getFormDetail(id);
flowFormConfig.value = formDetail;
@@ -106,8 +106,7 @@ async function initializeDesigner() {
}
}
// TODO @ziye注释使用 /** */ 风格,高亮更明显哈,方法注释;
// 保存表单
/** 保存表单 */
function handleSave() {
formModalApi
.setData({
@@ -118,7 +117,7 @@ function handleSave() {
.open();
}
// 返回列表页
/** 返回列表页 */
function onBack() {
router.push({
path: '/bpm/manager/form',
@@ -137,7 +136,11 @@ onMounted(() => {
<Page auto-content-height>
<FormModal @success="onBack" />
<FcDesigner class="my-designer" ref="designerRef" :config="designerConfig">
<FcDesigner
class="h-full min-h-[500px]"
ref="designerRef"
:config="designerConfig"
>
<template #handle>
<Button size="small" type="primary" @click="handleSave">
<IconifyIcon icon="mdi:content-save" />
@@ -147,10 +150,3 @@ onMounted(() => {
</FcDesigner>
</Page>
</template>
<style scoped>
.my-designer {
height: 100%;
min-height: 500px;
}
</style>

View File

@@ -20,7 +20,13 @@ export function useGridColumns(): VxeTableGridOptions<BpmProcessDefinitionApi.Pr
field: 'icon',
title: '流程图标',
minWidth: 100,
slots: { default: 'icon' },
cellRender: {
name: 'CellImage',
props: {
width: 24,
height: 24,
},
},
},
{
field: 'startUsers',
@@ -47,7 +53,9 @@ export function useGridColumns(): VxeTableGridOptions<BpmProcessDefinitionApi.Pr
field: 'version',
title: '流程版本',
minWidth: 80,
slots: { default: 'version' },
cellRender: {
name: 'CellTag',
},
},
{
field: 'deploymentTime',

View File

@@ -6,7 +6,7 @@ import { useRoute, useRouter } from 'vue-router';
import { DocAlert, Page, useVbenModal } from '@vben/common-ui';
import { Button, Image, Tag, Tooltip } from 'ant-design-vue';
import { Button, Tooltip } from 'ant-design-vue';
import { TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
import { getProcessDefinitionPage } from '#/api/bpm/definition';
@@ -93,16 +93,6 @@ onMounted(() => {
<DocAlert title="工作流手册" url="https://doc.iocoder.cn/bpm/" />
</template>
<Grid table-title="流程定义列表">
<template #icon="{ row }">
<Image
v-if="row.icon"
:src="row.icon"
:width="24"
:height="24"
class="rounded"
/>
<span v-else> 无图标 </span>
</template>
<template #startUsers="{ row }">
<template v-if="!row.startUsers?.length">全部可见</template>
<template v-else-if="row.startUsers.length === 1">
@@ -135,9 +125,6 @@ onMounted(() => {
</Button>
<span v-else>暂无表单</span>
</template>
<template #version="{ row }">
<Tag>v{{ row.version }}</Tag>
</template>
<template #actions="{ row }">
<TableAction
:actions="[

View File

@@ -102,7 +102,7 @@ defineExpose({ validate });
DICT_TYPE.BPM_MODEL_FORM_TYPE,
'number',
)"
:key="dict.value as string"
:key="dict.value"
:value="dict.value"
>
{{ dict.label }}

View File

@@ -4,7 +4,7 @@ import type { DescriptionItemSchema } from '#/components/description';
import { h } from 'vue';
import dayjs from 'dayjs';
import { formatDateTime } from '@vben/utils';
import { DictTag } from '#/components/dict-tag';
import { DICT_TYPE, getDictOptions, getRangePickerDefaultProps } from '#/utils';
@@ -186,12 +186,12 @@ export function useDetailFormSchema(): DescriptionItemSchema[] {
{
label: '开始时间',
field: 'startTime',
content: (data) => dayjs(data?.startTime).format('YYYY-MM-DD HH:mm:ss'),
content: (data) => formatDateTime(data?.startTime) as string,
},
{
label: '结束时间',
field: 'endTime',
content: (data) => dayjs(data?.endTime).format('YYYY-MM-DD HH:mm:ss'),
content: (data) => formatDateTime(data?.endTime) as string,
},
{
label: '原因',

View File

@@ -88,6 +88,12 @@ export function useGridColumns(
onTaskClick: (task: BpmProcessInstanceApi.Task) => void,
): VxeTableGridOptions['columns'] {
return [
{
field: 'id',
title: '流程编号',
minWidth: 320,
fixed: 'left',
},
{
field: 'name',
title: '流程名称',
@@ -167,12 +173,6 @@ export function useGridColumns(
},
},
},
{
field: 'id',
title: '流程编号',
minWidth: 320,
},
{
title: '操作',
width: 180,

View File

@@ -41,12 +41,6 @@ export function useGridColumns(): VxeTableGridOptions['columns'] {
title: '发起人',
minWidth: 120,
},
{
field: 'createTime',
title: '发起时间',
minWidth: 180,
formatter: 'formatDateTime',
},
{
field: 'name',
title: '当前任务',