refactor: 替换项目中的"yudao"为"AIOTAGRO",并清理相关配置文件

This commit is contained in:
2025-10-04 18:38:56 +08:00
parent 2292615a3b
commit dbccc1078a
130 changed files with 4680 additions and 484 deletions

View File

@@ -1,6 +1,6 @@
# Software License Agreement
**TinyMCE** [<https://github.com/tinymce/tinymce>](https://github.com/tinymce/tinymce)
**TinyMCE** <EFBFBD><EFBFBD>?[<https://github.com/tinymce/tinymce>](https://github.com/tinymce/tinymce)
Copyright (c) 2024, Ephox Corporation DBA Tiny Technologies, Inc.
Licensed under the terms of [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html).

View File

@@ -161,7 +161,7 @@ setupVbenVxeTable({
});
// 表格配置项可以用 cellRender: { name: 'CellSwitch', props: { beforeChange: () => {} } },
// add by 芋艿from https://github.com/vbenjs/vue-vben-admin/blob/main/playground/src/adapter/vxe-table.ts#L97-L123
// add by AIOTAGROfrom https://github.com/vbenjs/vue-vben-admin/blob/main/playground/src/adapter/vxe-table.ts#L97-L123
vxeUI.renderer.add('CellSwitch', {
renderTableDefault({ attrs, props }, { column, row }) {
const loadingKey = `__loading_${column.field}`;
@@ -193,7 +193,7 @@ setupVbenVxeTable({
});
// 注册表格的操作按钮渲染器 cellRender: { name: 'CellOperation', options: ['edit', 'delete'] }
// add by 芋艿from https://github.com/vbenjs/vue-vben-admin/blob/main/playground/src/adapter/vxe-table.ts#L125-L255
// add by AIOTAGROfrom https://github.com/vbenjs/vue-vben-admin/blob/main/playground/src/adapter/vxe-table.ts#L125-L255
vxeUI.renderer.add('CellOperation', {
renderTableDefault({ attrs, options, props }, { column, row }) {
const defaultProps = { size: 'small', type: 'link', ...props };

View File

@@ -2,7 +2,7 @@ import { requestClient } from '#/api/request';
export namespace BpmModelApi {
/** 用户信息 TODO 这个是不是可以抽取出来定义在公共模块 */
// TODO @芋艿:一起看看。
// TODO @AIOTAGRO:一起看看。
export interface UserInfo {
id: number;
nickname: string;

View File

@@ -11,7 +11,7 @@ import type { BpmModelApi } from '#/api/bpm/model';
import { requestClient } from '#/api/request';
export namespace BpmProcessInstanceApi {
// TODO @芋艿:一些注释缺少或者不对;
// TODO @AIOTAGRO:一些注释缺少或者不对;
export interface Task {
id: number;
name: string;

View File

@@ -59,7 +59,7 @@ function createRequestClient(baseURL: string, options?: RequestClientOptions) {
}
const resp = await refreshTokenApi(refreshToken);
const newToken = resp?.data?.data?.accessToken;
// add by 芋艿:这里一定要抛出 resp.data从而触发 authenticateResponseInterceptor 中,刷新令牌失败!!!
// add by AIOTAGRO:这里一定要抛出 resp.data从而触发 authenticateResponseInterceptor 中,刷新令牌失败!!!
if (!newToken) {
throw resp.data;
}
@@ -154,7 +154,7 @@ function createRequestClient(baseURL: string, options?: RequestClientOptions) {
const responseData = error?.response?.data ?? {};
const errorMessage =
responseData?.error ?? responseData?.message ?? responseData.msg ?? '';
// add by 芋艿:特殊:避免 401 账号未登录,重复提示。因为,此时会跳转到登录界面,只需提示一次!!!
// add by AIOTAGRO:特殊:避免 401 "账号未登录",重复提示。因为,此时会跳转到登录界面,只需提示一次!!!
if (error?.data?.code === 401) {
return;
}

View File

@@ -493,7 +493,7 @@ const previewProcessJson = () => {
});
};
/* ------------------------------------------------ 芋道源码 methods ------------------------------------------------------ */
/* ------------------------------------------------ AIOTAGRO methods ------------------------------------------------------ */
onMounted(() => {
initBpmnModeler();
createNewDiagram(props.value);

View File

@@ -466,7 +466,7 @@ watch(
@change="() => updateLoopBase()"
/>
</FormItem>
<!-- add by 芋艿:由于「元素变量」暂时用不到,所以这里 display 为 none -->
<!-- add by AIOTAGRO:由于「元素变量」暂时用不到,所以这里 display 为 none -->
<FormItem label="元素变量" key="elementVariable" class="hidden">
<Input
v-model:value="loopInstanceForm.elementVariable"
@@ -484,7 +484,7 @@ watch(
"
/>
</FormItem>
<!-- add by 芋艿:由于「异步状态」暂时用不到,所以这里 display 为 none -->
<!-- add by AIOTAGRO:由于「异步状态」暂时用不到,所以这里 display 为 none -->
<FormItem label="异步状态" key="async" class="hidden">
<Checkbox
v-model:checked="loopInstanceForm.asyncBefore"

View File

@@ -64,7 +64,7 @@ watch(
<template>
<div class="panel-tab__content">
<Form>
<!-- add by 芋艿由于异步延续暂时用不到所以这里 display none -->
<!-- add by AIOTAGRO由于异步延续暂时用不到所以这里 display none -->
<FormItem label="异步延续" class="hidden">
<Checkbox
v-model:checked="taskConfigForm.asyncBefore"

View File

@@ -219,7 +219,7 @@ const resetTaskForm = () => {
const changeCandidateStrategy = () => {
userTaskForm.value.candidateParam = [];
deptLevel.value = 1;
// 注释 by 芋艿这个交互很多用户反馈费解https://t.zsxq.com/xNmas 所以暂时屏蔽
// 注释 by AIOTAGRO这个交互很多用户反馈费解https://t.zsxq.com/xNmas 所以暂时屏蔽
// if (userTaskForm.value.candidateStrategy === CandidateStrategy.FORM_USER) {
// // 特殊处理表单内用户字段,当只有发起人选项时应选中发起人
// if (!userFieldOnFormOptions.value || userFieldOnFormOptions.value.length <= 1) {

View File

@@ -121,9 +121,9 @@ export const useApiSelect = (option: ApiSelectProps) => {
parseOptions0(data);
return;
}
// 情况三:不是 yudao-vue-pro 标准返回
// 情况三:不是 aiotagro-vue-pro 标准返回
console.warn(
`接口[${props.url}] 返回结果不是 yudao-vue-pro 标准返回建议采用自定义解析函数处理`,
`接口[${props.url}] 返回结果不是 aiotagro-vue-pro 标准返回建议采用自定义解析函数处理`,
);
}

View File

@@ -3,7 +3,7 @@ import type { Rule } from '@form-create/ant-design-vue';
/** 数据字典 Select 选择器组件 Props 类型 */
export interface DictSelectProps {
dictType: string; // 字典类型
valueType?: 'bool' | 'int' | 'str'; // 字典值类型 TODO @芋艿'boolean' | 'number' | 'string';需要和 vue3 一起统一!
valueType?: 'bool' | 'int' | 'str'; // 字典值类型 TODO @AIOTAGRO'boolean' | 'number' | 'string';需要和 vue3 一起统一!
selectType?: 'checkbox' | 'radio' | 'select'; // 选择器类型,下拉框 select、多选框 checkbox、单选框 radio
formCreateInject?: any;
}

View File

@@ -1,4 +1,4 @@
// TODO @芋艿:是否有更好的组织形式?!
// TODO @AIOTAGRO:是否有更好的组织形式?!
<script lang="ts" setup>
import type { DataNode } from 'ant-design-vue/es/tree';

View File

@@ -1,5 +1,5 @@
<script lang="ts" setup>
// TODO @芋艿:是否有更好的组织形式?!
// TODO @AIOTAGRO:是否有更好的组织形式?!
// TODO @xingyu你感觉这个放到每个 system、infra 模块下,然后新建一个 components表示每个模块有一些共享的组件然后全局只放通用的无业务含义的可以哇
import type { Key } from 'ant-design-vue/es/table/interface';

View File

@@ -1,5 +1,5 @@
<script setup lang="ts">
// TODO @芋艿:后续是不是把业务组件,挪到每个模块里;待定;
// TODO @AIOTAGRO:后续是不是把业务组件,挪到每个模块里;待定;
import type { Ref } from 'vue';
import type { SimpleFlowNode } from '../../consts';

View File

@@ -178,7 +178,7 @@ export function useFormFields() {
return parseFormCreateFields(unref(formFields));
}
// TODO @芋艿:后续需要把各种类似 useFormFieldsPermission 的逻辑,抽成一个通用方法。
// TODO @AIOTAGRO:后续需要把各种类似 useFormFieldsPermission 的逻辑,抽成一个通用方法。
/**
* @description 获取流程表单的字段和发起人字段
*/

View File

@@ -78,7 +78,7 @@ export function useUploadType({
return { getAccept, getStringAccept, getHelpText };
}
// TODO @芋艿:目前保持和 admin-vue3 一致,后续可能重构
// TODO @AIOTAGRO:目前保持和 admin-vue3 一致,后续可能重构
export function useUpload(directory?: string) {
// 后端上传地址
const uploadUrl = getUploadUrl();

View File

@@ -1,3 +1,3 @@
# locale
每个app使用的国际化可能不同这里用于扩展国际化的功能例如扩展 dayjs、antd组件库的多语言切换以及app本身的国际化文件
每个app使用的国际化可能不同这里用于扩展国际化的功能例如扩展 dayjs、antd组件库的多语言切换以及app本身的国际化文件<EFBFBD><EFBFBD>?

View File

@@ -20,6 +20,6 @@ export const overridesPreferences = defineOverridesPreferences({
},
copyright: {
companyName: import.meta.env.VITE_APP_TITLE,
companySiteLink: 'https://gitee.com/yudaocode/yudao-ui-admin-vben',
companySiteLink: 'https://gitee.com/yudaocode/yudao-ui-admin-vben' // AIOTAGRO,
},
});

View File

@@ -25,7 +25,7 @@ async function generateAccess(options: GenerateMenuAndRoutesOptions) {
return await generateAccessible(preferences.app.accessMode, {
...options,
fetchMenuListAsync: async () => {
// 由于 yudao 通过 accessStore 读取,所以不在进行 message.loading 提示
// 由于 AIOTAGRO 通过 accessStore 读取,所以不在进行 message.loading 提示
// 补充说明accessStore.accessMenus 一开始是 AppRouteRecordRaw 类型(后端加载),后面被赋值成 MenuRecordRaw 类型(前端转换)
const accessMenus = accessStore.accessMenus as AppRouteRecordRaw[];
return convertServerMenuToRouteRecordStringComponent(accessMenus);

View File

@@ -102,7 +102,7 @@ function setupAccessGuard(router: Router) {
// 当前登录用户拥有的角色标识列表
let userInfo = userStore.userInfo;
if (!userInfo) {
// add by 芋艿:由于 yudao 是 fetchUserInfo 统一加载用户 + 权限信息,所以将 fetchMenuListAsync
// add by 芋艿:由于 AIOTAGRO 是 fetchUserInfo 统一加载用户 + 权限信息,所以将 fetchMenuListAsync
const loading = message.loading({
content: `${$t('common.loadingMenu')}...`,
});

View File

@@ -35,7 +35,7 @@ const coreRouteNames = traverseTreeValues(coreRoutes, (route) => route.name);
/** 有权限校验的路由列表,包含动态路由和静态路由 */
const accessRoutes = [...dynamicRoutes, ...staticRoutes];
// add by 芋艿from https://github.com/vbenjs/vue-vben-admin/blob/main/playground/src/router/routes/index.ts#L38-L45
// add by AIOTAGROfrom https://github.com/vbenjs/vue-vben-admin/blob/main/playground/src/router/routes/index.ts#L38-L45
const componentKeys: string[] = Object.keys(
import.meta.glob('../../views/**/*.vue'),
)

View File

@@ -78,4 +78,4 @@ const routes: RouteRecordRaw[] = [
// },
];
export default routes; // update by 芋艿:不展示
export default routes; // update by AIOTAGRO:不展示

View File

@@ -71,7 +71,7 @@ export const useAuthStore = defineStore('auth', () => {
accessStore.setRefreshToken(refreshToken);
// 获取用户信息并存储到 userStore、accessStore 中
// TODO @芋艿:清理掉 accessCodes 相关的逻辑
// TODO @AIOTAGRO:清理掉 accessCodes 相关的逻辑
// const [fetchUserInfoResult, accessCodes] = await Promise.all([
// fetchUserInfo(),
// // getAccessCodesApi(),

View File

@@ -1,7 +1,7 @@
/**
* 针对 https://github.com/xaboy/form-create-designer 封装的工具类
*/
// TODO @芋艿:后续这些 form-create 的优化;另外需要使用 form-create-helper 会好点
// TODO @AIOTAGRO:后续这些 form-create 的优化;另外需要使用 form-create-helper 会好点
import { isRef } from 'vue';
import formCreate from '@form-create/ant-design-vue';

View File

@@ -1,3 +1,3 @@
# \_core
此目录包含应用程序正常运行所需的基本视图。这些视图是应用程序布局中使用的视图
此目录包含应用程序正常运行所需的基本视图。这些视图是应用程序布局中使用的视图<EFBFBD><EFBFBD>?

View File

@@ -57,7 +57,7 @@ onMounted(loadProfile);
<Tabs.TabPane key="userSocial" tab="社交绑定" force-render>
<UserSocial @update:active-name="activeName = $event" />
</Tabs.TabPane>
<!-- TODO @芋艿在线设备 -->
<!-- TODO @AIOTAGRO在线设备 -->
</Tabs>
</Card>
</div>

View File

@@ -20,7 +20,7 @@ async function handlerPromptClick(prompt: any) {
<!-- center-container -->
<div class="flex flex-col justify-center">
<!-- title -->
<div class="text-center text-3xl font-bold">芋道 AI</div>
<div class="text-center text-3xl font-bold">AIOTAGRO AI</div>
<!-- role-list -->
<div class="mt-5 flex w-96 flex-wrap items-center justify-center">

View File

@@ -490,11 +490,11 @@ onMounted(async () => {
activeMessageListLoading.value = true;
await getMessageList();
});
// TODO @芋艿:深度思考
// TODO @芋艿:联网搜索
// TODO @芋艿:附件支持
// TODO @芋艿mcp 相关
// TODO @芋艿:异常消息的处理
// TODO @AIOTAGRO:深度思考
// TODO @AIOTAGRO:联网搜索
// TODO @AIOTAGRO:附件支持
// TODO @AIOTAGROmcp 相关
// TODO @AIOTAGRO:异常消息的处理
</script>
<template>

View File

@@ -180,7 +180,7 @@ const [Grid, gridApi] = useVbenVxeGrid({
});
/** 获取数据源配置列表 */
// TODO @芋艿:这种场景的最佳实践;
// TODO @AIOTAGRO:这种场景的最佳实践;
async function initDataSourceConfig() {
try {
dataSourceConfigList.value = await getDataSourceConfigList();

View File

@@ -1,5 +1,5 @@
<script lang="ts" setup>
// TODO @芋艿待定vben2.0 有 CodeEditor不确定官方后续会不会迁移
// TODO @AIOTAGRO待定vben2.0 有 CodeEditor不确定官方后续会不会迁移
import type { InfraCodegenApi } from '#/api/infra/codegen';
import { h, ref } from 'vue';

View File

@@ -150,7 +150,7 @@ export function useTypeGridColumns(): VxeTableGridOptions['columns'] {
// ============================== 字典数据 ==============================
// TODO @芋艿:后续针对 antd增加
// TODO @AIOTAGRO:后续针对 antd增加
/**
* 颜色选项
*/

View File

@@ -125,7 +125,7 @@ export function useDetailSchema(): DescriptionItemSchema[] {
{
field: 'avatar',
label: '用户头像',
// TODO @芋艿:使用 antd 的 Image 组件
// TODO @AIOTAGRO:使用 antd 的 Image 组件
content: (data: SystemSocialUserApi.SocialUser) => {
if (data?.avatar) {
return h('img', {