Merge branch 'client_sync' into v2

# Conflicts:
#	packages/ui/certd-client/CHANGELOG.md
#	packages/ui/certd-client/package.json
#	packages/ui/certd-client/src/api/tools.ts
#	packages/ui/certd-client/src/components/index.ts
#	packages/ui/certd-client/src/main.ts
#	packages/ui/certd-client/src/plugin/fast-crud/index.tsx
#	packages/ui/certd-client/src/plugin/index.ts
#	packages/ui/certd-client/src/router/source/framework.ts
#	packages/ui/certd-client/src/store/modules/page.ts
#	packages/ui/certd-client/src/style/common.less
#	packages/ui/certd-client/src/utils/util.env.ts
#	packages/ui/certd-client/src/views/crud/form/independent/index.vue
#	packages/ui/certd-client/src/views/framework/register/index.vue
#	packages/ui/certd-client/vite.config.ts
This commit is contained in:
xiaojunnuo
2023-10-27 11:54:38 +08:00
483 changed files with 7737 additions and 5075 deletions
+1 -1
View File
@@ -49,7 +49,7 @@ router.beforeEach(async (to, from, next) => {
}
});
router.afterEach((to) => {
router.afterEach((to: any) => {
// 进度条
NProgress.done();
// 多页控制 打开新的页面
+42 -43
View File
@@ -3,11 +3,10 @@ import _ from "lodash-es";
import { outsideResource } from "./source/outside";
import { headerResource } from "./source/header";
import { frameworkResource } from "./source/framework";
// @ts-ignore
const modules = import.meta.glob("/src/views/**/*.vue");
let index = 0;
function transformOneResource(resource) {
function transformOneResource(resource: any, parent: any) {
let menu: any = null;
if (resource.meta == null) {
resource.meta = {};
@@ -22,58 +21,58 @@ function transformOneResource(resource) {
} else {
menu = _.cloneDeep(resource);
delete menu.component;
}
let route;
if (resource.type !== "menu") {
if (resource.path == null || resource.path.startsWith("https://") || resource.path.startsWith("http://")) {
//没有route
route = null;
if (menu.path?.startsWith("/")) {
menu.fullPath = menu.path;
} else {
route = _.cloneDeep(resource);
if (route.component && typeof route.component === "string") {
const path = "/src/views" + route.component;
route.component = modules[path];
}
if (route.component == null) {
route.component = LayoutPass;
}
menu.fullPath = (parent?.fullPath || "") + "/" + menu.path;
}
}
let route;
if (meta.isRoute === false || resource.path == null || resource.path.startsWith("https://") || resource.path.startsWith("http://")) {
//没有route
route = null;
} else {
route = _.cloneDeep(resource);
if (route.component && typeof route.component === "string") {
const path = "/src/views" + route.component;
route.component = modules[path];
}
if (route.component == null) {
route.component = LayoutPass;
}
if (route?.meta?.cache !== false) {
if (route.meta == null) {
route.meta = {};
}
route.meta.cache = true;
}
}
if (resource.children) {
const { menus, routes } = buildMenusAndRouters(resource.children, resource);
if (menu) {
menu.children = menus;
}
if (route) {
route.children = routes;
}
}
return {
menu,
route
};
}
export const buildMenusAndRouters = (resources) => {
export const buildMenusAndRouters = (resources: any, parent: any = null) => {
const routes: Array<any> = [];
const menus: Array<any> = [];
for (const item of resources) {
const { menu, route } = transformOneResource(item);
let menuChildren;
let routeChildren;
if (item.children) {
if (item.children.length > 0) {
const ret = buildMenusAndRouters(item.children);
menuChildren = ret.menus;
routeChildren = ret.routes;
}
}
const { menu, route } = transformOneResource(item, parent);
if (menu) {
menus.push(menu);
menu.children = menuChildren;
}
if (route) {
if (route?.meta?.cache !== false) {
if (route.meta == null) {
route.meta = {};
}
route.meta.cache = true;
}
routes.push(route);
route.children = routeChildren;
}
}
@@ -84,7 +83,7 @@ export const buildMenusAndRouters = (resources) => {
};
};
function setIndex(menus) {
function setIndex(menus: any) {
for (const menu of menus) {
menu.index = "index_" + index;
index++;
@@ -94,7 +93,7 @@ function setIndex(menus) {
}
}
function findMenus(menus, condition) {
function findMenus(menus: any, condition: any) {
const list: any = [];
for (const menu of menus) {
if (condition(menu)) {
@@ -110,8 +109,8 @@ function findMenus(menus, condition) {
return list;
}
function filterMenus(menus, condition) {
const list = menus.filter((item) => {
function filterMenus(menus: any, condition: any) {
const list = menus.filter((item: any) => {
return condition(item);
});
@@ -123,7 +122,7 @@ function filterMenus(menus, condition) {
return list;
}
function flatChildren(list, children) {
function flatChildren(list: any, children: any) {
for (const child of children) {
list.push(child);
if (child.children && child.children.length > 0) {
@@ -132,7 +131,7 @@ function flatChildren(list, children) {
child.children = null;
}
}
function flatSubRouters(routers) {
function flatSubRouters(routers: any) {
for (const router of routers) {
const children: Array<any> = [];
if (router.children && router.children.length > 0) {
@@ -148,7 +147,7 @@ const outsideRet = buildMenusAndRouters(outsideResource);
const headerRet = buildMenusAndRouters(headerResource);
const outsideRoutes = outsideRet.routes;
const frameworkRoutes = flatSubRouters(frameworkRet.routes);
const frameworkRoutes = frameworkRet.routes;
const routes = [...outsideRoutes, ...frameworkRoutes];
const frameworkMenus = frameworkRet.menus;
const headerMenus = headerRet.menus;
@@ -8,6 +8,15 @@ export const crudResources = [
icon: "ion:apps-sharp"
},
children: [
{
title: "debug",
name: "debug",
path: "/crud/debug",
component: "/crud/debug/index.vue",
meta: {
isMenu: false
}
},
{
title: "基本特性",
name: "basis",
@@ -18,11 +27,17 @@ export const crudResources = [
},
children: [
{
title: "HelloWorld",
title: "FirstDemo",
name: "FsCrudFirst",
path: "/crud/basis/first",
component: "/crud/basis/first/index.vue"
},
{
title: "HelloWorld",
name: "FsCrudHelloWorld",
path: "/crud/basis/helloworld",
component: "/crud/basis/helloworld/index.vue"
},
{
title: "动态计算",
name: "BasisCompute",
@@ -59,6 +74,12 @@ export const crudResources = [
path: "/crud/basis/layout-custom",
component: "/crud/basis/layout-custom/index.vue"
},
{
title: "自定义组件",
name: "BasisCustom",
path: "/crud/basis/custom",
component: "/crud/basis/custom/index.vue"
},
{
title: "列设置",
name: "BasisColumnsSet",
@@ -70,6 +91,12 @@ export const crudResources = [
name: "BasisColumnMergePlugin",
path: "/crud/basis/column-merge-plugin",
component: "/crud/basis/column-merge-plugin/index.vue"
},
{
title: "ResetCrudOptions",
name: "BasisReset",
path: "/crud/basis/reset",
component: "/crud/basis/reset/index.vue"
}
]
},
@@ -165,6 +192,12 @@ export const crudResources = [
path: "/crud/component/select",
component: "/crud/component/select/index.vue"
},
{
title: "表格选择(table-select)",
name: "ComponentTableSelect",
path: "/crud/component/table-select",
component: "/crud/component/table-select/index.vue"
},
{
title: "级联(cascader)",
name: "ComponentCascader",
@@ -243,6 +276,12 @@ export const crudResources = [
path: "/crud/component/uploader/qiniu",
component: "/crud/component/uploader/qiniu/index.vue"
},
{
title: "s3上传",
name: "ComponentUploaderS3",
path: "/crud/component/uploader/s3",
component: "/crud/component/uploader/s3/index.vue"
},
{
title: "富文本编辑器",
name: "ComponentEditor",
@@ -260,6 +299,12 @@ export const crudResources = [
name: "ComponentJson",
path: "/crud/component/json",
component: "/crud/component/json/index.vue"
},
{
title: "组件独立使用",
name: "ComponentIndependent",
path: "/crud/component/independent",
component: "/crud/component/independent/index.vue"
}
]
},
@@ -391,6 +436,18 @@ export const crudResources = [
name: "FormNest",
path: "/crud/form/nest",
component: "/crud/form/nest/index.vue"
},
{
title: "字段组件render",
name: "FormRender",
path: "/crud/form/render",
component: "/crud/form/render/index.vue"
},
{
title: "查看表单使用单元格组件",
name: "FormView",
path: "/crud/form/view",
component: "/crud/form/view/index.vue"
}
]
},
@@ -444,6 +501,12 @@ export const crudResources = [
path: "/crud/feature/header-group",
component: "/crud/feature/header-group/index.vue"
},
{
title: "自定义表头",
name: "FeatureHeader",
path: "/crud/feature/header",
component: "/crud/feature/header/index.vue"
},
{
title: "合并单元格",
name: "FeatureMerge",
@@ -498,6 +561,12 @@ export const crudResources = [
path: "/crud/feature/search-multi",
component: "/crud/feature/search-multi/index.vue"
},
{
title: "Tabs快捷查询",
name: "FeatureTabs",
path: "/crud/feature/tabs",
component: "/crud/feature/tabs/index.vue"
},
{
title: "字段排序",
name: "FeatureColumnSort",
@@ -525,9 +594,21 @@ export const crudResources = [
{
title: "v-model",
name: "FeatureVModel",
path: "/crud/feature/v-model",
path: "/crud/feature/local-v-model",
component: "/crud/feature/local-v-model/index.vue"
},
{
title: "导入",
name: "FeatureImport",
path: "/crud/feature/local-import",
component: "/crud/feature/local-import/index.vue"
},
{
title: "导出",
name: "FeatureExport",
path: "/crud/feature/export",
component: "/crud/feature/export/index.vue"
},
{
title: "自定义删除",
name: "FeatureRemove",
@@ -0,0 +1,22 @@
export const integrationResources = [
{
title: "集成",
name: "integration",
path: "/integration",
redirect: "/integration/bpmn",
meta: {
icon: "ion:apps-sharp"
},
children: [
{
title: "FsBpmn",
name: "FsBpmn",
path: "/integration/bpmn",
component: "/integration/bpmn/index.vue",
meta: {
icon: "ion:disc-outline"
}
}
]
}
];
@@ -0,0 +1,30 @@
export const uiResources = [
{
title: "UI示例",
name: "ui",
path: "/ui",
redirect: "/ui/form",
meta: {
icon: "ion:apps-sharp"
},
children: [
{
title: "表单组件",
name: "UIForm",
path: "/ui/form",
redirect: "/ui/form/input",
meta: {
icon: "ion:disc-outline"
},
children: [
{
title: "input",
name: "UIFormInput",
path: "/ui/form/input",
component: "/ui/form/input/index.vue"
}
]
}
]
}
];