+
-
+
@@ -78,5 +79,6 @@ onMounted(async () => {
diff --git a/packages/ui/certd-client/src/main.ts b/packages/ui/certd-client/src/main.ts
index 137746fa..95f0cc59 100644
--- a/packages/ui/certd-client/src/main.ts
+++ b/packages/ui/certd-client/src/main.ts
@@ -3,7 +3,8 @@ import App from "./App.vue";
// import Antd from "ant-design-vue";
import Antd from "./plugin/antdv-async/index";
import "./style/common.less";
-import i18n from "./i18n";
+import { loadMessages } from "./i18n";
+import { i18n } from "/@/vben/locales";
import components from "./components";
import router from "./router";
import plugin from "./plugin/";
@@ -17,9 +18,9 @@ async function bootstrap() {
const app = createApp(App);
// app.use(Antd);
app.use(Antd);
- await setupVben(app);
+ await setupVben(app, { loadMessages });
app.use(router);
- app.use(i18n);
+ // app.use(i18n);
// app.use(store);
app.use(components);
app.use(plugin, { i18n });
diff --git a/packages/ui/certd-client/src/plugin/antdv-async/index.ts b/packages/ui/certd-client/src/plugin/antdv-async/index.ts
index 73194b84..1dff37b2 100644
--- a/packages/ui/certd-client/src/plugin/antdv-async/index.ts
+++ b/packages/ui/certd-client/src/plugin/antdv-async/index.ts
@@ -7,15 +7,17 @@ import Empty from "ant-design-vue/es/empty";
import Avatar from "ant-design-vue/es/avatar";
import Steps from "ant-design-vue/es/steps";
import Select from "ant-design-vue/es/select";
+import PageHeader from "ant-design-vue/es/page-header";
export default {
install(app: any) {
app.use(Input);
app.use(Button);
- app.component("ADivider", Divider);
- app.component("ABadge", Badge);
- app.component("AEmpty", Empty);
- app.component("AAvatar", Avatar);
+ app.use(Divider);
+ app.use(Badge);
+ app.use(Empty);
+ app.use(Avatar);
+ app.use(PageHeader);
app.use(Steps);
app.use(Select);
@@ -165,8 +167,8 @@ export default {
defineAsyncComponent(() => import("ant-design-vue/es/tree-select"))
);
app.component(
- "AToar",
- defineAsyncComponent(() => import("ant-design-vue/es/tree-select"))
+ "ATour",
+ defineAsyncComponent(() => import("ant-design-vue/es/tour"))
);
app.component(
@@ -186,5 +188,40 @@ export default {
"AProgress",
defineAsyncComponent(() => import("ant-design-vue/es/progress"))
);
+ app.component(
+ "ATimelineItem",
+ defineAsyncComponent(() => import("ant-design-vue/es/timeline/TimelineItem"))
+ );
+ app.component(
+ "ATimeline",
+ defineAsyncComponent(() => import("ant-design-vue/es/timeline/Timeline"))
+ );
+ app.component(
+ "APageHeader",
+ defineAsyncComponent(() => import("ant-design-vue/es/page-header/index"))
+ );
+ app.component(
+ "APopover",
+ defineAsyncComponent(() => import("ant-design-vue/es/popover"))
+ );
+ app.component(
+ "APopconfirm",
+ defineAsyncComponent(() => import("ant-design-vue/es/popconfirm"))
+ );
+ app.component(
+ "ACollapse",
+ defineAsyncComponent(() => import("ant-design-vue/es/collapse"))
+ );
+ app.component(
+ "ADescriptions",
+ defineAsyncComponent(() => import("ant-design-vue/es/descriptions"))
+ );
+ app.component(
+ "ADescriptionsItem",
+ defineAsyncComponent(async () => {
+ const m = await import("ant-design-vue/es/descriptions/");
+ return m.DescriptionsItem;
+ })
+ );
}
};
diff --git a/packages/ui/certd-client/src/plugin/permission/hook.ts b/packages/ui/certd-client/src/plugin/permission/hook.ts
index cdddd54a..009f01a8 100644
--- a/packages/ui/certd-client/src/plugin/permission/hook.ts
+++ b/packages/ui/certd-client/src/plugin/permission/hook.ts
@@ -28,7 +28,6 @@ export function registerRouterHook() {
if (!token || token === "undefined") {
return true;
}
-
// 初始化权限列表
try {
console.log("permission is enabled");
diff --git a/packages/ui/certd-client/src/plugin/permission/store.permission.ts b/packages/ui/certd-client/src/plugin/permission/store.permission.ts
index 69a152ec..a26bdc2a 100644
--- a/packages/ui/certd-client/src/plugin/permission/store.permission.ts
+++ b/packages/ui/certd-client/src/plugin/permission/store.permission.ts
@@ -4,17 +4,25 @@ import { getPermissions } from "./api";
import { mitter } from "/@/utils/util.mitt";
import { env } from "/@/utils/util.env";
import { useAccessStore } from "/@/vben/stores";
+import { eachTree } from "/@/utils/util.tree";
+import util from "/@/plugin/permission/util.permission";
//监听注销事件
mitter.on("app.logout", () => {
const permissionStore = usePermissionStore();
permissionStore.clear();
+ const accessStore = useAccessStore();
+ accessStore.setIsAccessChecked(false);
});
mitter.on("app.login", () => {
- const permissionStore = useResourceStore();
+ const accessStore = useAccessStore();
+ accessStore.setIsAccessChecked(false);
+ const permissionStore = usePermissionStore();
permissionStore.clear();
- permissionStore.init();
+ // const accessStore = useAccessStore();
+ // accessStore.setAccessCode([]);
+ // permissionStore.init();
});
interface PermissionState {
@@ -28,7 +36,7 @@ interface PermissionState {
* @param permissionList
* @returns {*}
*/
-function formatPermissions(menuTree: Array
, permissionList: any[] = []) {
+export function formatPermissions(menuTree: Array, permissionList: any[] = []) {
if (menuTree == null) {
menuTree = [];
}
diff --git a/packages/ui/certd-client/src/router/guard.ts b/packages/ui/certd-client/src/router/guard.ts
index 435a2496..76b9f202 100644
--- a/packages/ui/certd-client/src/router/guard.ts
+++ b/packages/ui/certd-client/src/router/guard.ts
@@ -6,7 +6,32 @@ import { useAccessStore } from "/@/vben/stores";
import { generateMenus, startProgress, stopProgress } from "/@/vben/utils";
import { frameworkRoutes } from "/@/router/resolve";
import { useSettingStore } from "/@/store/modules/settings";
+import { usePermissionStore } from "/@/plugin/permission/store.permission";
+import util from "/@/plugin/permission/util.permission";
+import { useUserStore } from "/@/store/modules/user";
+function buildAccessedMenus(menus: any) {
+ if (menus == null) {
+ return;
+ }
+ const list: any = [];
+ for (const sub of menus) {
+ if (sub.meta?.permission != null) {
+ if (!util.hasPermissions(sub.meta.permission)) {
+ continue;
+ }
+ }
+ const item: any = {
+ ...sub
+ };
+
+ list.push(item);
+ if (sub.children && sub.children.length > 0) {
+ item.children = buildAccessedMenus(sub.children);
+ }
+ }
+ return list;
+}
/**
* 通用守卫配置
* @param router
@@ -70,7 +95,15 @@ function setupAccessGuard(router: Router) {
// 是否已经生成过动态路由
if (!accessStore.isAccessChecked) {
- const accessibleMenus = await generateMenus(frameworkRoutes[0].children, router);
+ if (accessStore.accessToken) {
+ const permissionStore = usePermissionStore();
+ await permissionStore.loadFromRemote();
+ const userStore = useUserStore();
+ await userStore.getUserInfoAction();
+ }
+
+ const allMenus = await generateMenus(frameworkRoutes[0].children, router);
+ const accessibleMenus = buildAccessedMenus(allMenus);
accessStore.setAccessRoutes(frameworkRoutes);
accessStore.setAccessMenus(accessibleMenus);
accessStore.setIsAccessChecked(true);
diff --git a/packages/ui/certd-client/src/router/source/modules/certd.ts b/packages/ui/certd-client/src/router/source/modules/certd.ts
index 6dcbf0e4..56b76d1a 100644
--- a/packages/ui/certd-client/src/router/source/modules/certd.ts
+++ b/packages/ui/certd-client/src/router/source/modules/certd.ts
@@ -66,7 +66,8 @@ export const certdResources = [
{
title: "设置",
name: "MineSetting",
- path: "/certd/mine",
+ path: "/certd/setting",
+ redirect: "/certd/cname/record",
meta: {
icon: "ion:settings-outline",
auth: true,
diff --git a/packages/ui/certd-client/src/store/modules/settings.ts b/packages/ui/certd-client/src/store/modules/settings.ts
index cf28a63f..824cc34c 100644
--- a/packages/ui/certd-client/src/store/modules/settings.ts
+++ b/packages/ui/certd-client/src/store/modules/settings.ts
@@ -9,7 +9,7 @@ import { HeaderMenus, PlusInfo, SiteEnv, SiteInfo, SuiteSetting, SysInstallInfo,
import { useUserStore } from "/@/store/modules/user";
import { mitter } from "/@/utils/util.mitt";
import { env } from "/@/utils/util.env";
-import { preferences } from "/@/vben/preferences";
+import { updatePreferences } from "/@/vben/preferences";
export interface SettingState {
sysPublic?: SysPublicSetting;
@@ -140,7 +140,11 @@ export const useSettingStore = defineStore({
this.siteInfo = _.merge({}, defaultSiteInfo, siteInfo);
if (this.siteInfo.logo) {
- preferences.logo.source = this.siteInfo.logo;
+ updatePreferences({
+ logo: {
+ source: this.siteInfo.logo
+ }
+ });
}
},
async checkUrlBound() {
diff --git a/packages/ui/certd-client/src/store/modules/user.ts b/packages/ui/certd-client/src/store/modules/user.ts
index 500da15c..b2b5635e 100644
--- a/packages/ui/certd-client/src/store/modules/user.ts
+++ b/packages/ui/certd-client/src/store/modules/user.ts
@@ -13,6 +13,8 @@ import { useI18n } from "vue-i18n";
import { mitter } from "/src/utils/util.mitt";
import { resetAllStores, useAccessStore } from "/@/vben/stores";
+import { useUserStore as vbenUserStore } from "/@/vben/stores/modules/user";
+
interface UserState {
userInfo: Nullable;
token?: string;
@@ -48,6 +50,8 @@ export const useUserStore = defineStore({
},
setUserInfo(info: UserInfoRes) {
this.userInfo = info;
+ const userStore = vbenUserStore();
+ userStore.setUserInfo(info);
LocalStorage.set(USER_INFO_KEY, info);
},
resetState() {
@@ -81,6 +85,7 @@ export const useUserStore = defineStore({
// get user info
return await this.onLoginSuccess(loginRes);
} catch (error) {
+ console.error(error);
return null;
}
},
diff --git a/packages/ui/certd-client/src/vben/index.ts b/packages/ui/certd-client/src/vben/index.ts
index c3e652f5..0493f18c 100644
--- a/packages/ui/certd-client/src/vben/index.ts
+++ b/packages/ui/certd-client/src/vben/index.ts
@@ -11,8 +11,8 @@ import "./styles/antd/index.css";
import { useTitle } from "@vueuse/core";
import { setupI18n } from "/@/vben/locales";
-export async function setupVben(app: any) {
- await setupI18n(app);
+export async function setupVben(app: any, { loadMessages }: any) {
+ await setupI18n(app, { loadMessages });
const store = await initStores(app, { namespace: "fs" });
return { store };
diff --git a/packages/ui/certd-client/src/vben/layouts/basic/content/content.vue b/packages/ui/certd-client/src/vben/layouts/basic/content/content.vue
index 72a217ac..5cd94c28 100644
--- a/packages/ui/certd-client/src/vben/layouts/basic/content/content.vue
+++ b/packages/ui/certd-client/src/vben/layouts/basic/content/content.vue
@@ -78,7 +78,7 @@ function transformComponent(component: VNode, route: RouteLocationNormalizedLoad
-
+
diff --git a/packages/ui/certd-client/src/vben/layouts/basic/menu/use-mixed-menu.ts b/packages/ui/certd-client/src/vben/layouts/basic/menu/use-mixed-menu.ts
index 9c5907f4..1cdc4566 100644
--- a/packages/ui/certd-client/src/vben/layouts/basic/menu/use-mixed-menu.ts
+++ b/packages/ui/certd-client/src/vben/layouts/basic/menu/use-mixed-menu.ts
@@ -73,7 +73,7 @@ function useMixedMenu() {
if (!needSplit.value) {
return menus.value;
}
- return menus.value.map((item) => {
+ return menus.value.map((item: any) => {
return {
...item,
children: []
@@ -85,6 +85,10 @@ function useMixedMenu() {
* 侧边菜单
*/
const sidebarMenus = computed(() => {
+ if (preferences.app.isMobile) {
+ return [...holdMenus.value, ...menus.value];
+ }
+
const sideMenus = needSplit.value ? splitSideMenus.value : menus.value;
return [...holdMenus.value, ...sideMenus];
});
@@ -116,7 +120,7 @@ function useMixedMenu() {
}
if (!splitSideMenus.value || splitSideMenus.value.length === 0) {
//仍然为空,从所有菜单中查找
- const hasChildren = allMenus.value.find((item) => {
+ const hasChildren = allMenus.value.find((item: any) => {
return item.children && item.children.length > 0;
});
if (hasChildren) {
@@ -136,7 +140,7 @@ function useMixedMenu() {
return;
}
- const rootMenu = menus.value.find((item) => item.path === key);
+ const rootMenu = menus.value.find((item: any) => item.path === key);
rootMenuPath.value = rootMenu?.path ?? "";
splitSideMenus.value = rootMenu?.children ?? [];
saveLastSplitSideMenus();
@@ -165,7 +169,7 @@ function useMixedMenu() {
function calcSideMenus(path: string = route.path) {
let { rootMenu } = findRootMenuByPath(menus.value, path);
if (!rootMenu) {
- rootMenu = menus.value.find((item) => item.path === path);
+ rootMenu = menus.value.find((item: any) => item.path === path);
}
const result = findRootMenuByPath(rootMenu?.children || [], path, 1);
mixedRootMenuPath.value = result.rootMenuPath ?? "";
diff --git a/packages/ui/certd-client/src/vben/preferences/config.ts b/packages/ui/certd-client/src/vben/preferences/config.ts
index 5df49128..610724b9 100644
--- a/packages/ui/certd-client/src/vben/preferences/config.ts
+++ b/packages/ui/certd-client/src/vben/preferences/config.ts
@@ -9,9 +9,9 @@ const defaultPreferences: Preferences = {
colorWeakMode: false,
compact: false,
contentCompact: "wide",
- defaultAvatar: "https://unpkg.com/@vbenjs/static-source@0.1.7/source/avatar-v1.webp",
+ defaultAvatar: "./static/images/logo/logo.svg",
dynamicTitle: true,
- enableCheckUpdates: true,
+ enableCheckUpdates: false,
enablePreferences: true,
enableRefreshToken: false,
isMobile: false,
@@ -65,7 +65,7 @@ const defaultPreferences: Preferences = {
globalSearch: true
},
sidebar: {
- autoActivateChild: false,
+ autoActivateChild: true,
collapsed: false,
collapsedShowTitle: false,
enable: true,
@@ -108,9 +108,9 @@ const defaultPreferences: Preferences = {
widget: {
fullscreen: true,
globalSearch: true,
- languageToggle: true,
+ languageToggle: false,
lockScreen: true,
- notification: true,
+ notification: false,
refresh: true,
sidebarToggle: true,
themeToggle: true
diff --git a/packages/ui/certd-client/src/vben/tabs-ui/tabs-view.vue b/packages/ui/certd-client/src/vben/tabs-ui/tabs-view.vue
index 553330c9..4db63ac0 100644
--- a/packages/ui/certd-client/src/vben/tabs-ui/tabs-view.vue
+++ b/packages/ui/certd-client/src/vben/tabs-ui/tabs-view.vue
@@ -1,40 +1,32 @@
-
+
-
-
+
+
@@ -95,7 +72,7 @@ useTabsDrag(props, emit);
v-show="showScrollButton"
:class="{
'hover:bg-muted text-muted-foreground cursor-pointer': !scrollIsAtRight,
- 'pointer-events-none opacity-30': scrollIsAtRight,
+ 'pointer-events-none opacity-30': scrollIsAtRight
}"
class="hover:bg-muted text-muted-foreground cursor-pointer border-l px-2"
@click="scrollDirection('right')"
diff --git a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue
index b09488d4..074c1692 100644
--- a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue
+++ b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue
@@ -18,7 +18,7 @@
-
+
@@ -95,19 +95,10 @@
-
- {{ index + 1 }}. {{ item.title }}
-
+
{{ index + 1 }}. {{ item.title }}
-
+
@@ -231,7 +222,7 @@