feat: 归档L03与L09审批发布能力

- 新增统一审批中心与审批管理页面,支持流程配置、审批详情与角色/用户审批对象

- 接入聊天助手、知识库、工作流的发布与删除审批,并补齐发布态校验与快照展示
This commit is contained in:
2026-04-07 14:41:52 +08:00
parent 7e7c236c2a
commit 3f128e977a
138 changed files with 13035 additions and 346 deletions

View File

@@ -0,0 +1,27 @@
<template>
<div class="ai-resource-corner-meta">
<div class="ai-resource-corner-meta__item">
<slot name="publish"></slot>
</div>
<div class="ai-resource-corner-meta__item">
<slot name="scope"></slot>
</div>
</div>
</template>
<style scoped>
.ai-resource-corner-meta {
display: flex;
gap: 6px;
align-items: center;
justify-content: flex-end;
}
.ai-resource-corner-meta__item {
display: flex;
align-items: center;
display: flex;
justify-content: flex-end;
min-width: 0;
}
</style>

View File

@@ -0,0 +1,51 @@
export type AiPublishStatus =
| 'DELETE_PENDING'
| 'DRAFT'
| 'PUBLISHED'
| 'PUBLISH_PENDING';
/**
* 规范化发布状态,避免页面散落默认值判断。
*/
export function normalizeAiPublishStatus(
value?: null | string,
): AiPublishStatus {
switch (value) {
case 'PUBLISHED':
case 'PUBLISH_PENDING':
case 'DELETE_PENDING':
return value;
default:
return 'DRAFT';
}
}
/**
* 当前资源是否已有正式线上版本。
*/
export function isAiResourcePublished(value?: null | string) {
return normalizeAiPublishStatus(value) === 'PUBLISHED';
}
/**
* 当前资源是否允许对外可见。
*/
export function isAiResourceExternallyVisible(value?: null | string) {
const normalized = normalizeAiPublishStatus(value);
return normalized === 'PUBLISHED' || normalized === 'DELETE_PENDING';
}
/**
* 当前资源是否允许作为新的 Bot 引用候选。
*/
export function isAiResourceSelectableForBot(value?: null | string) {
return normalizeAiPublishStatus(value) === 'PUBLISHED';
}
/**
* 当前资源是否处于审批处理中。
*/
export function isAiResourceApprovalPending(value?: null | string) {
const normalized = normalizeAiPublishStatus(value);
return normalized === 'PUBLISH_PENDING' || normalized === 'DELETE_PENDING';
}