optimize(projects): 统一button的添加方式
This commit is contained in:
parent
20b96ac54b
commit
b3f81ba3f0
@ -110,7 +110,7 @@ const {
|
|||||||
if (hasAuth('workflow:category:remove')) buttons.push(deleteBtn());
|
if (hasAuth('workflow:category:remove')) buttons.push(deleteBtn());
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div class="flex-center gap-8px">
|
<div class="flex-center gap-4px">
|
||||||
{buttons.map((btn, index) => (
|
{buttons.map((btn, index) => (
|
||||||
<>
|
<>
|
||||||
{index !== 0 && <NDivider vertical />}
|
{index !== 0 && <NDivider vertical />}
|
||||||
|
@ -168,7 +168,6 @@ const {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 插入分隔符(仅在前后两个按钮之间插入 Divider)
|
|
||||||
const buttonWithDividers = buttons.flatMap((btn, index) => {
|
const buttonWithDividers = buttons.flatMap((btn, index) => {
|
||||||
if (index === 0) return [btn];
|
if (index === 0) return [btn];
|
||||||
return [<NDivider vertical />, btn];
|
return [<NDivider vertical />, btn];
|
||||||
|
@ -176,10 +176,8 @@ const {
|
|||||||
width: 150,
|
width: 150,
|
||||||
fixed: 'right',
|
fixed: 'right',
|
||||||
render: row => {
|
render: row => {
|
||||||
const Divider = <NDivider vertical />;
|
const buttons = [];
|
||||||
|
buttons.push(
|
||||||
const buttons = {
|
|
||||||
edit: (
|
|
||||||
<ButtonIcon
|
<ButtonIcon
|
||||||
text
|
text
|
||||||
type="primary"
|
type="primary"
|
||||||
@ -187,8 +185,8 @@ const {
|
|||||||
tooltipContent={$t('common.edit')}
|
tooltipContent={$t('common.edit')}
|
||||||
onClick={() => edit(row.id)}
|
onClick={() => edit(row.id)}
|
||||||
/>
|
/>
|
||||||
),
|
);
|
||||||
delete: (
|
buttons.push(
|
||||||
<ButtonIcon
|
<ButtonIcon
|
||||||
text
|
text
|
||||||
type="error"
|
type="error"
|
||||||
@ -197,36 +195,8 @@ const {
|
|||||||
popconfirmContent={$t('common.confirmDelete')}
|
popconfirmContent={$t('common.confirmDelete')}
|
||||||
onPositiveClick={() => handleDelete(row.id)}
|
onPositiveClick={() => handleDelete(row.id)}
|
||||||
/>
|
/>
|
||||||
),
|
);
|
||||||
design: (
|
buttons.push(
|
||||||
<ButtonIcon
|
|
||||||
text
|
|
||||||
type="primary"
|
|
||||||
icon="material-symbols:design-services"
|
|
||||||
tooltipContent="流程设计"
|
|
||||||
onClick={() => handleDesign(row.id)}
|
|
||||||
/>
|
|
||||||
),
|
|
||||||
preview: (
|
|
||||||
<ButtonIcon
|
|
||||||
text
|
|
||||||
type="primary"
|
|
||||||
icon="material-symbols:visibility-outline"
|
|
||||||
tooltipContent="查看流程"
|
|
||||||
onClick={() => handlePreview(row.id)}
|
|
||||||
/>
|
|
||||||
),
|
|
||||||
publish: (
|
|
||||||
<ButtonIcon
|
|
||||||
text
|
|
||||||
type="primary"
|
|
||||||
icon="material-symbols:publish"
|
|
||||||
tooltipContent="发布流程"
|
|
||||||
popconfirmContent={`确定要发布 ${row.flowName} 吗?`}
|
|
||||||
onPositiveClick={() => handlePublish(row.id)}
|
|
||||||
/>
|
|
||||||
),
|
|
||||||
copy: (
|
|
||||||
<ButtonIcon
|
<ButtonIcon
|
||||||
text
|
text
|
||||||
type="primary"
|
type="primary"
|
||||||
@ -235,8 +205,16 @@ const {
|
|||||||
popconfirmContent={`确定要复制 ${row.flowName} 吗?`}
|
popconfirmContent={`确定要复制 ${row.flowName} 吗?`}
|
||||||
onPositiveClick={() => handleCopy(row.id)}
|
onPositiveClick={() => handleCopy(row.id)}
|
||||||
/>
|
/>
|
||||||
),
|
);
|
||||||
export: (
|
|
||||||
|
const firstRowButtons = buttons.flatMap((btn, index) => {
|
||||||
|
if (index === 0) return [btn];
|
||||||
|
return [<NDivider vertical />, btn];
|
||||||
|
});
|
||||||
|
|
||||||
|
const secondRowButtons = [];
|
||||||
|
|
||||||
|
secondRowButtons.push(
|
||||||
<ButtonIcon
|
<ButtonIcon
|
||||||
text
|
text
|
||||||
type="primary"
|
type="primary"
|
||||||
@ -244,29 +222,50 @@ const {
|
|||||||
tooltipContent="导出流程"
|
tooltipContent="导出流程"
|
||||||
onClick={() => handleExport(row)}
|
onClick={() => handleExport(row)}
|
||||||
/>
|
/>
|
||||||
|
);
|
||||||
|
|
||||||
|
secondRowButtons.push(
|
||||||
|
isPublish.value ? (
|
||||||
|
<ButtonIcon
|
||||||
|
text
|
||||||
|
type="primary"
|
||||||
|
icon="material-symbols:visibility-outline"
|
||||||
|
tooltipContent="查看流程"
|
||||||
|
onClick={() => handlePreview(row.id)}
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
|
<ButtonIcon
|
||||||
|
text
|
||||||
|
type="primary"
|
||||||
|
icon="material-symbols:design-services"
|
||||||
|
tooltipContent="流程设计"
|
||||||
|
onClick={() => handleDesign(row.id)}
|
||||||
|
/>
|
||||||
)
|
)
|
||||||
};
|
);
|
||||||
|
|
||||||
|
if (!isPublish.value) {
|
||||||
|
secondRowButtons.push(
|
||||||
|
<ButtonIcon
|
||||||
|
text
|
||||||
|
type="primary"
|
||||||
|
icon="material-symbols:publish"
|
||||||
|
tooltipContent="发布流程"
|
||||||
|
popconfirmContent={`确定要发布 ${row.flowName} 吗?`}
|
||||||
|
onPositiveClick={() => handlePublish(row.id)}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const secondRowWithDividers = secondRowButtons.flatMap((btn, index) => {
|
||||||
|
if (index === 0) return [btn];
|
||||||
|
return [<NDivider vertical />, btn];
|
||||||
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div class="flex-col">
|
<div class="flex-col">
|
||||||
<div class="h-[24px] flex-center gap-4px">
|
<div class="h-[24px] flex-center gap-4px">{firstRowButtons}</div>
|
||||||
{buttons.edit}
|
<div class="h-[24px] flex-center gap-4px">{secondRowWithDividers}</div>
|
||||||
{Divider}
|
|
||||||
{buttons.delete}
|
|
||||||
{Divider}
|
|
||||||
{buttons.copy}
|
|
||||||
</div>
|
|
||||||
<div class="h-[24px] flex-center gap-4px">
|
|
||||||
{buttons.export}
|
|
||||||
{Divider}
|
|
||||||
{isPublish.value ? buttons.preview : buttons.design}
|
|
||||||
{!isPublish.value && (
|
|
||||||
<>
|
|
||||||
{Divider}
|
|
||||||
{buttons.publish}
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -153,9 +153,10 @@ const operateColumns = ref<NaiveUI.TableColumn<Api.Workflow.ProcessInstance>[]>(
|
|||||||
render: row => {
|
render: row => {
|
||||||
const id = row.id;
|
const id = row.id;
|
||||||
const showAll = runningStatus.value;
|
const showAll = runningStatus.value;
|
||||||
const Divider = <NDivider vertical />;
|
const buttons = [];
|
||||||
|
|
||||||
const cancelBtn = (
|
if (showAll) {
|
||||||
|
buttons.push(
|
||||||
<ButtonIcon
|
<ButtonIcon
|
||||||
text
|
text
|
||||||
type="error"
|
type="error"
|
||||||
@ -168,8 +169,10 @@ const operateColumns = ref<NaiveUI.TableColumn<Api.Workflow.ProcessInstance>[]>(
|
|||||||
onPositiveClick={() => handleCancel(id)}
|
onPositiveClick={() => handleCancel(id)}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
const deleteBtn = (
|
if (showAll) {
|
||||||
|
buttons.push(
|
||||||
<ButtonIcon
|
<ButtonIcon
|
||||||
text
|
text
|
||||||
type="error"
|
type="error"
|
||||||
@ -179,12 +182,13 @@ const operateColumns = ref<NaiveUI.TableColumn<Api.Workflow.ProcessInstance>[]>(
|
|||||||
onPositiveClick={() => handleDelete(id)}
|
onPositiveClick={() => handleDelete(id)}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
const previewBtn = (
|
buttons.push(
|
||||||
<ButtonIcon text type="info" icon="material-symbols:visibility-outline" tooltipContent="流程预览" />
|
<ButtonIcon text type="info" icon="material-symbols:visibility-outline" tooltipContent="流程预览" />
|
||||||
);
|
);
|
||||||
|
|
||||||
const variableBtn = (
|
buttons.push(
|
||||||
<ButtonIcon
|
<ButtonIcon
|
||||||
text
|
text
|
||||||
type="info"
|
type="info"
|
||||||
@ -194,17 +198,12 @@ const operateColumns = ref<NaiveUI.TableColumn<Api.Workflow.ProcessInstance>[]>(
|
|||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
|
||||||
return (
|
const buttonWithDividers = buttons.flatMap((btn, index) => {
|
||||||
<div class="flex-center gap-1px">
|
if (index === 0) return [btn];
|
||||||
{showAll && cancelBtn}
|
return [<NDivider vertical />, btn];
|
||||||
{showAll && Divider}
|
});
|
||||||
{showAll && deleteBtn}
|
|
||||||
{showAll && Divider}
|
return <div class="flex-center gap-1px">{buttonWithDividers}</div>;
|
||||||
{previewBtn}
|
|
||||||
{Divider}
|
|
||||||
{variableBtn}
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
|
Loading…
Reference in New Issue
Block a user