{{ item.title }}
+{{ item.description }}
+diff --git a/.env.production b/.env.production
index 9e73a2b..0c9e272 100644
--- a/.env.production
+++ b/.env.production
@@ -9,7 +9,7 @@
# 只在生产模式中被载入
# 网站前缀
-VITE_BASE_API_URL = http://192.168.3.118:10010/server/
+VITE_BASE_API_URL = http://43.137.2.78:8082/server/
# base api
VITE_BASE_API = '/server/'
diff --git a/components.d.ts b/components.d.ts
index 3228ba0..60deb63 100644
--- a/components.d.ts
+++ b/components.d.ts
@@ -9,16 +9,27 @@ declare module '@vue/runtime-core' {
export interface GlobalComponents {
AButton: typeof import('ant-design-vue/es')['Button']
ACard: typeof import('ant-design-vue/es')['Card']
+ ACardMeta: typeof import('ant-design-vue/es')['CardMeta']
ACol: typeof import('ant-design-vue/es')['Col']
+ AEmpty: typeof import('ant-design-vue/es')['Empty']
AForm: typeof import('ant-design-vue/es')['Form']
AFormItem: typeof import('ant-design-vue/es')['FormItem']
AInput: typeof import('ant-design-vue/es')['Input']
+ AInputSearch: typeof import('ant-design-vue/es')['InputSearch']
ALayout: typeof import('ant-design-vue/es')['Layout']
ALayoutContent: typeof import('ant-design-vue/es')['LayoutContent']
ALayoutSider: typeof import('ant-design-vue/es')['LayoutSider']
ApiSelect: typeof import('./src/components/core/schema-form/src/components/ApiSelect.vue')['default']
ARow: typeof import('ant-design-vue/es')['Row']
+ ASpace: typeof import('ant-design-vue/es')['Space']
+ ASpin: typeof import('ant-design-vue/es')['Spin']
+ AStep: typeof import('ant-design-vue/es')['Step']
+ ASteps: typeof import('ant-design-vue/es')['Steps']
+ ATabPane: typeof import('ant-design-vue/es')['TabPane']
+ ATabs: typeof import('ant-design-vue/es')['Tabs']
ATag: typeof import('ant-design-vue/es')['Tag']
+ ATooltip: typeof import('ant-design-vue/es')['Tooltip']
+ ATree: typeof import('ant-design-vue/es')['Tree']
ATypographyText: typeof import('ant-design-vue/es')['TypographyText']
BasicArrow: typeof import('./src/components/basic/basic-arrow/index.vue')['default']
BasicDrawer: typeof import('./src/components/core/Drawer/src/BasicDrawer.vue')['default']
diff --git a/package.json b/package.json
index ba99d66..c6ef2d7 100644
--- a/package.json
+++ b/package.json
@@ -45,6 +45,7 @@
"vite": "^4.3.2",
"vite-plugin-svg-icons": "~2.0.1",
"vite-tsconfig-paths": "^4.2.0",
- "vue-tsc": "^1.4.2"
+ "vue-tsc": "^1.4.2",
+ "vite-plugin-top-level-await": "^1.5.0"
}
}
diff --git a/src/api/issue/model.d.ts b/src/api/issue/model.d.ts
index 3f26455..8b5807f 100644
--- a/src/api/issue/model.d.ts
+++ b/src/api/issue/model.d.ts
@@ -24,6 +24,8 @@ declare namespace API {
updateUserid?: number; // 更新人ID
version?: string; // 版本
fileList?: any[]; // 附件列表
+ tags?: string[] | string; // 标签
+ solution?: string; // 解决方案
};
type CreateIssueParams = {
@@ -47,6 +49,8 @@ declare namespace API {
updateUserid?: number; // 更新人ID
version?: string; // 版本
fileList?: any[]; // 附件列表
+ tags?: string[] | string; // 标签
+ solution?: string; // 解决方案
};
type DeleteIssueParams = {
diff --git a/src/api/user/model.d.ts b/src/api/user/model.d.ts
index d8b4109..1840ca4 100644
--- a/src/api/user/model.d.ts
+++ b/src/api/user/model.d.ts
@@ -19,6 +19,7 @@ declare namespace API {
remark: string;
createTime: string;
isAdmin: number;
+ email: string;
pendingStatus?: boolean;
};
@@ -31,6 +32,7 @@ declare namespace API {
state: number;
remark: string;
isAdmin: number;
+ email: string;
};
type DeleteUserParams = {
diff --git a/src/assets/icons/logo.png b/src/assets/icons/logo.png
new file mode 100644
index 0000000..0002e23
Binary files /dev/null and b/src/assets/icons/logo.png differ
diff --git a/src/assets/images/background.jpg b/src/assets/images/background.jpg
new file mode 100644
index 0000000..ceb66a0
Binary files /dev/null and b/src/assets/images/background.jpg differ
diff --git a/src/enums/dictEnum.ts b/src/enums/dictEnum.ts
index 4b60c06..d0a6a9f 100644
--- a/src/enums/dictEnum.ts
+++ b/src/enums/dictEnum.ts
@@ -1,3 +1,4 @@
export enum DictEnum {
QUESTION_TYPE = '问题属性',
+ TAG_TYPE = '标签',
}
diff --git a/src/layout/logo/index.vue b/src/layout/logo/index.vue
index 4864565..28a43e0 100644
--- a/src/layout/logo/index.vue
+++ b/src/layout/logo/index.vue
@@ -54,7 +54,7 @@
.title-text {
font-size: 18px;
font-weight: 600;
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
+ background: @primary-color;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
letter-spacing: 1px;
@@ -64,7 +64,7 @@
height: 2px;
width: 24px;
margin-top: 4px;
- background: linear-gradient(90deg, #667eea, #764ba2);
+ background: @primary-color;
transition: width 0.3s ease;
}
diff --git a/src/router/constant.ts b/src/router/constant.ts
index 7a24a0b..e984796 100644
--- a/src/router/constant.ts
+++ b/src/router/constant.ts
@@ -2,6 +2,10 @@ export const LOGIN_NAME = 'Login';
export const KNOWLEDGE_NAME = 'Knowledge';
+export const ISSUE_NAME = 'issue';
+
+export const ENTRANCE_NAME = 'entrance';
+
export const REDIRECT_NAME = 'Redirect';
export const PARENT_LAYOUT_NAME = 'ParentLayout';
@@ -13,4 +17,4 @@ export const whiteNameList = [LOGIN_NAME, 'icons', 'error', 'error-404'] as cons
export type WhiteNameList = typeof whiteNameList;
-export type WhiteName = typeof whiteNameList[number];
+export type WhiteName = (typeof whiteNameList)[number];
diff --git a/src/router/outsideLayout.ts b/src/router/outsideLayout.ts
index a380e04..dd5558b 100644
--- a/src/router/outsideLayout.ts
+++ b/src/router/outsideLayout.ts
@@ -1,5 +1,5 @@
import type { RouteRecordRaw } from 'vue-router';
-import { LOGIN_NAME, KNOWLEDGE_NAME } from '@/router/constant';
+import { LOGIN_NAME, KNOWLEDGE_NAME, ISSUE_NAME, ENTRANCE_NAME } from '@/router/constant';
/**
* layout布局之外的路由
@@ -16,10 +16,28 @@ export const LoginRoute: RouteRecordRaw = {
export const KnowledgeRoute: RouteRecordRaw = {
path: '/knowledge',
name: KNOWLEDGE_NAME,
- component: () => import(/* webpackChunkName: "login" */ '@/views/knowledgeBase/index.vue'),
+ component: () => import(/* webpackChunkName: "login" */ '@/views/client/knowledgeBase/index.vue'),
meta: {
title: '知识库',
},
};
-export default [LoginRoute, KnowledgeRoute];
+export const Issue: RouteRecordRaw = {
+ path: '/issue',
+ name: ISSUE_NAME,
+ component: () => import(/* webpackChunkName: "login" */ '@/views/client/issue/index.vue'),
+ meta: {
+ title: '问题工单',
+ },
+};
+
+export const Entrance: RouteRecordRaw = {
+ path: '/entrance',
+ name: ENTRANCE_NAME,
+ component: () => import(/* webpackChunkName: "login" */ '@/views/client/entrance/index.vue'),
+ meta: {
+ title: '入口',
+ },
+};
+
+export default [LoginRoute, KnowledgeRoute, Issue, Entrance];
diff --git a/src/store/modules/projectConfig.ts b/src/store/modules/projectConfig.ts
index 116c3a4..514c2c9 100644
--- a/src/store/modules/projectConfig.ts
+++ b/src/store/modules/projectConfig.ts
@@ -60,7 +60,7 @@ export type ThemeState = {
export const defaultConfig: ThemeState = {
navTheme: 'dark', // theme for nav menu
- primaryColor: 'rgb(24, 144, 255)', // '#F5222D', // primary color of ant design
+ primaryColor: 'rgb(250, 84, 28)', // '#F5222D', // primary color of ant design
layout: 'sidemenu', // nav menu position: `sidemenu` or `topmenu`
contentWidth: 'Fluid', // layout of content: `Fluid` or `Fixed`, only works when layout is topmenu
fixedHeader: false, // sticky header
diff --git a/src/views/client/entrance/index.vue b/src/views/client/entrance/index.vue
new file mode 100644
index 0000000..bc94ef6
--- /dev/null
+++ b/src/views/client/entrance/index.vue
@@ -0,0 +1,333 @@
+
+ {{ item.description }}👋 嗨,有什么可以帮你?
+ {{ item.title }}
+