fix(manifest): 新增首页的动态组件

This commit is contained in:
chengcheng
2025-08-29 18:02:27 +08:00
parent 6e3253af8c
commit 68d0048393
10 changed files with 1281 additions and 5 deletions
+10 -1
View File
@@ -1,3 +1,5 @@
import type { WorkFlow, WorkFlowApp } from "~/types/workflow";
export enum MaterialTypeEnum {
common = "common", // 公共级别,用户素材
personal = "personal", // 个人级别,用户个人素材
@@ -28,6 +30,7 @@ export interface IMaterial {
export const GlobalInjectKeyConst = {
AllMaterials: "allMaterials",
UploadFileToOSS: "useUtilsUploadFileToOSS",
AllWorkFlowApps: "allWorkFlowApps"
} as const;
export type GlobalInjectKeyEnum =
@@ -39,6 +42,12 @@ export interface GlobalInjectMaterials {
refreshMaterials: () => Promise<void>;
}
/** 全局注入工作流应用状态 */
export interface GlobalInjectWorkflowAppStatus {
workflows: Ref<WorkFlowApp[], WorkFlow[]>
refreshAllWorkflows: () => Promise<void>
}
/** 全局注入函数 */
/**
* 上传文件到OSS函数
@@ -46,6 +55,6 @@ export interface GlobalInjectMaterials {
export interface GlobalInjectUploadFileToOSS {
useUtilsUploadFileToOSS: (
file: File | Blob,
filename?: string,
filename?: string
) => Promise<string>;
}
+274
View File
@@ -0,0 +1,274 @@
export enum WorkFlowTypeEnum {
system = 'system', // 系统级别,内置工作流
common = 'common', // 公共级别,用户共享工作流
personal = 'personal' // 个人级别,创作者工作流
}
/**
* @property _id 工作流id
* @property title 显示名称
* @property name 标准名称,需要保持唯一
* @property params 参数
* @property workflow 工作流
* @property cover 封面图
* @property preview 预览图
* @property is_public 是否公开
* @property description 工作流描述
* @property power 算力消耗
* @property nodeCount 节点数
* @property runTime 运行时间,秒
* @property sortNumber 排序
* @property tags 应用标签
* @property useGuide 使用指导图,显示在工作流的使用页面
* @property includeServers 指定运行的服务器名
* @property excludeServers 排除运行的服务器名
* @property user 用户
* @property type 工作流类型
* @property mainProducts 代表作
* @property comment 评论
* @property organizations 所属组织
* @property salePrice 销售价格
* @property updated_at 更新时间
* @property application_id 所属应用
* @property editor_model 0表示创造新内容, 1表示编辑已有内容
* @property prem_level_min 默认为空,表示无需权限层级,有值时表示需要相应的权限层级才可以访问
* @property category 分类
* @property appType 应用类型
* @property custom_workflow 自定义工作流id
* @property customAccessUrl 自定义访问接口
* @property created_at 创建时间
* @property isLiked 是否喜欢
* @property likeCount 喜欢数
* @property isFavorited 是否喜欢
* @property favoriteCount 喜欢数
* @property useCount 使用次数
*/
export interface WorkFlow {
_id?: string
title?: string // 显示名称
name: string // 标准名称,需要保持唯一
params: any // 参数
workflow: string | object // 工作流
cover?: string // 封面图
preview?: string // 预览图
is_public?: boolean // 是否公开
description?: string // 工作流描述
description_mcp?: string // 描述,用于mcp
power?: number // 算力消耗
nodeCount?: number // 节点数
runTime?: number // 运行时间,秒
timeout_setting: TimeOutConfig
sortNumber?: number // 排序
tags?: string[] // 应用标签
useGuide?: string // 使用指导图,显示在工作流的使用页面
includeServers?: string[] // 指定运行的服务器名
excludeServers?: string[] // 排除运行的服务器名
user?: User
type?: WorkFlowTypeEnum // 工作流类型
mainProducts?: string[] // 代表作
comment?: IComment[] // 评论
organizations?: string[] // 所属组织
salePrice?: number // 销售价格
updated_at?: number // 更新时间
application_id?: string[] // 所属应用
editor_model?: 0 | 1 // editor_model 0表示创造新内容, 1表示编辑已有内容
prem_level_min?: number // 默认为空,表示无需权限层级,有值时表示需要相应的权限层级才可以访问
category?: WorkFlowCategoriesEnum[] // 分类
appType: AppTypeEnum
custom_workflow?: string // 自定义工作流id
template_example_data?: Record<string, any>
customAccessUrl?: string // 自定义访问接口
created_at?: number // 创建时间
isLiked?: boolean // 是否喜欢
likeCount?: number // 喜欢数
isFavorited?: boolean // 是否收藏
favoriteCount?: number // 收藏数
useCount?: number // 使用次数
integrationPlatforms?: { _id: string, code: string, isAuthed: boolean }[] // 集成平台
}
export type WorkFlowApp = Pick<
WorkFlow,
| 'cover'
| 'user'
| 'title'
| 'description'
| '_id'
| 'tags'
| 'name'
| 'type'
| 'category'
| 'customAccessUrl'
| 'params'
| 'appType'
| 'sortNumber'
| 'created_at'
| 'isLiked'
| 'likeCount'
| 'isFavorited'
| 'favoriteCount'
| 'useCount'
| 'power'
>
/** 工作流超时设定 */
export interface TimeOutConfig {
timeout: number
timeoutActions?: TimeOutActionEnum[]
}
export const TimeOutActionConst = {
CANCEL: 'cancel',
CONTINUE: 'continue',
RETRY: 'RETRY'
} as const
export type TimeOutActionEnum =
(typeof TimeOutActionConst)[keyof typeof TimeOutActionConst]
/**
* 用户信息
* @property _id 用户id
* @property nickname 用户名
* @property password 密码
* @property username 用户名
* @property wx_openid 微信openid
* @property wx_unionid 微信unionid
* @property avatar_url 头像url
* @property email 邮箱
* @property inviter_uid 邀请人id
* @property last_login_date 最后一次登录时间
* @property register_date 注册时间
* @property last_login_ip 最后一次登录ip
* @property mobile 手机号
* @property my_invite_code 我的邀请码
* @property role 用户角色
* @property token 登录token
* @property socket_id 用户socket id
* @property status 用户状态
* @property balance 用户余额
*/
export interface User {
_id: string
nickname?: string
password?: string
username: string
wx_openid?: string
wx_unionid?: string
avatar_url?: string
email?: string
inviter_uid?: string | User
last_login_date?: number
register_date?: number
last_login_ip?: string
mobile?: string
my_invite_code?: string[]
role?: RoleEnum[]
token?: string
refresh_token?: string
socket_id?: string
status?: 0 | 1 | 2 // 0:正常,1:禁用,2:删除
balance?: number // 余额
points?: number // 积分
organizations?: Array<Pick<IOrganization, '_id' | 'name' | 'admin_ids'>> // 组织id列表
totalPower?: number // 总积分
}
export interface IComment {
_id?: string
rootId?: string
replyTo?: User | string // 回复的评论ID
content: string // 评论内容
author?: User // 评论者
targetType: CommentTypeEnum // 评论对象的类型 (应用|作品|AI模型|项目)
targetId?: string // 评论对象的ID
deleteFlag?: boolean // 删除标记
created_at?: number // 创建时间
likeCount?: number // 点赞数
authorFlag?: boolean // 作者标记
replies?: IComment[] // 回复评论
}
/**
* 工作流分类
* @description 工作流分类,用于前端展示
* @enum Marketing 营销
* @enum Design 设计
* @enum Development 开发
* @enum CustomerService 客服
* @enum Product 产品
* @enum Operations 运营
*/
export enum WorkFlowCategoriesEnum {
Marketing = 'Marketing',
Design = 'Design',
Development = 'Development',
CustomerService = 'CustomerService',
Product = 'Product',
Operations = 'Operations'
}
/**
* 工作流的类型
* @enum workflow: ComfyUI工作流应用
* @enum custom: 自定义应用,访问链接跳转
* @enum api: 自定义工作流应用,EasyAI 应用
*/
export enum AppTypeEnum {
workflow = 'workflow',
custom = 'custom',
customWorkflow = 'customWorkflow'
}
export enum CommentTypeEnum {
app = 'app', // 应用(工作流)
work = 'work', // 作品
aiModel = 'aiModel', // AI模型
project = 'project' // 项目
}
/**
* 用户权限
* @property PUBLIC 游客
* @property USER 普通用户
* @property CREATOR 创作者
* @property OPERATOR 运营人员
* @property MANAGER 普通管理员
* @property ADMIN 超级管理员
*/
export enum RoleEnum {
// 游客
PUBLIC = 'public',
// 普通用户
USER = 'user',
// 创作者
CREATOR = 'creator',
// 运营人员
OPERATOR = 'operator',
// 普通管理员
MANAGER = 'manager',
// 超级管理员
ADMIN = 'admin'
}
export interface IOrganization {
_id: string
name: string
description?: string
parent?: string
level?: number // 权限等级
workflows?: string[] | WorkFlow[]
users?: string[] | User[]
created_at?: number
children?: IOrganization[]
admin_ids: Array<string>
balance: number
concurrency_limit: number
is_default_register_org: boolean // 是否是默认注册组织
enableExclusive: boolean // 启用独享部署
}