Commit d2d7b6eddb46b785dac0b2554d17b560112de2c9
Merge branch 'ft-dev' into 'main'
fix:修复bug See merge request huang/yun-teng-iot-front!28
Showing
17 changed files
with
102 additions
and
482 deletions
1 | +// import { getMenuList } from '/@/api/sys/menu'; | ||
2 | +// import { reactive } from 'vue'; | ||
3 | + | ||
4 | +// const isDolang = reactive({ | ||
5 | +// key: 1, | ||
6 | +// value: '', | ||
7 | +// }); | ||
8 | +// //这里判断是否含有首页 | ||
9 | +// async function doMenu() { | ||
10 | +// const routeList = await getMenuList(); | ||
11 | +// const getHomePage = routeList.find((f) => { | ||
12 | +// return f.path == '/dashboard'; | ||
13 | +// }); | ||
14 | +// if (getHomePage?.path == '/dashboard') { | ||
15 | +// // router.push('/dashboard'); | ||
16 | +// } else { | ||
17 | +// const route = routeList[0].path + ''; | ||
18 | +// isDolang.key = 1; | ||
19 | +// isDolang.value = route; | ||
20 | +// return isDolang; | ||
21 | +// // router.push(route); | ||
22 | +// } | ||
23 | +// } | ||
24 | + | ||
25 | +// setTimeout(() => { | ||
26 | +// doMenu(); | ||
27 | +// }, 1000); | ||
28 | + | ||
29 | +// console.log(isDolang.value); | ||
30 | +// console.log(typeof isDolang.value); | ||
31 | + | ||
32 | +// setTimeout(() => { | ||
33 | +// console.log(isDolang); | ||
34 | +// }, 1500); | ||
35 | + | ||
1 | export enum PageEnum { | 36 | export enum PageEnum { |
2 | // basic login path | 37 | // basic login path |
3 | BASE_LOGIN = '/login', | 38 | BASE_LOGIN = '/login', |
4 | // basic home path | 39 | // basic home path |
5 | - BASE_HOME = '/dashboard', | 40 | + BASE_HOME = '/system/account', |
41 | + // BASE_HOME = '/dashboard', | ||
6 | // error page path | 42 | // error page path |
7 | ERROR_PAGE = '/exception', | 43 | ERROR_PAGE = '/exception', |
8 | // error log page path | 44 | // error log page path |
1 | -import type { AppRouteModule } from '/@/router/types'; | 1 | +// import type { AppRouteModule } from '/@/router/types'; |
2 | 2 | ||
3 | -import { LAYOUT } from '/@/router/constant'; | ||
4 | -import { t } from '/@/hooks/web/useI18n'; | 3 | +// import { LAYOUT } from '/@/router/constant'; |
4 | +// import { t } from '/@/hooks/web/useI18n'; | ||
5 | 5 | ||
6 | -const dashboard: AppRouteModule = { | ||
7 | - path: '/dashboard', | ||
8 | - name: 'Dashboard', | ||
9 | - component: LAYOUT, | ||
10 | - redirect: '/dashboard/analysis', | ||
11 | - meta: { | ||
12 | - orderNo: 10, | ||
13 | - icon: 'ion:grid-outline', | ||
14 | - title: t('routes.dashboard.dashboard'), | ||
15 | - }, | ||
16 | - children: [ | ||
17 | - { | ||
18 | - path: 'analysis', | ||
19 | - name: 'Analysis', | ||
20 | - component: () => import('/@/views/dashboard/analysis/index.vue'), | ||
21 | - meta: { | ||
22 | - // affix: true, | ||
23 | - title: t('routes.dashboard.analysis'), | ||
24 | - }, | ||
25 | - }, | ||
26 | - { | ||
27 | - path: 'workbench', | ||
28 | - name: 'Workbench', | ||
29 | - component: () => import('/@/views/dashboard/workbench/index.vue'), | ||
30 | - meta: { | ||
31 | - title: t('routes.dashboard.workbench'), | ||
32 | - }, | ||
33 | - }, | ||
34 | - ], | ||
35 | -}; | 6 | +// const dashboard: AppRouteModule = { |
7 | +// path: '/dashboard', | ||
8 | +// name: 'Dashboard', | ||
9 | +// component: LAYOUT, | ||
10 | +// redirect: '/dashboard/analysis', | ||
11 | +// meta: { | ||
12 | +// orderNo: 10, | ||
13 | +// icon: 'ion:grid-outline', | ||
14 | +// title: t('routes.dashboard.dashboard'), | ||
15 | +// }, | ||
16 | +// children: [ | ||
17 | +// { | ||
18 | +// path: 'analysis', | ||
19 | +// name: 'Analysis', | ||
20 | +// component: () => import('/@/views/dashboard/analysis/index.vue'), | ||
21 | +// meta: { | ||
22 | +// // affix: true, | ||
23 | +// title: t('routes.dashboard.analysis'), | ||
24 | +// }, | ||
25 | +// }, | ||
26 | +// { | ||
27 | +// path: 'workbench', | ||
28 | +// name: 'Workbench', | ||
29 | +// component: () => import('/@/views/dashboard/workbench/index.vue'), | ||
30 | +// meta: { | ||
31 | +// title: t('routes.dashboard.workbench'), | ||
32 | +// }, | ||
33 | +// }, | ||
34 | +// ], | ||
35 | +// }; | ||
36 | 36 | ||
37 | -export default dashboard; | 37 | +// export default dashboard; |
@@ -96,7 +96,7 @@ export const useMultipleTabStore = defineStore({ | @@ -96,7 +96,7 @@ export const useMultipleTabStore = defineStore({ | ||
96 | const len = this.tabList.length; | 96 | const len = this.tabList.length; |
97 | const { path } = unref(router.currentRoute); | 97 | const { path } = unref(router.currentRoute); |
98 | 98 | ||
99 | - let toPath: PageEnum | string = PageEnum.BASE_HOME; | 99 | + let toPath: PageEnum | string = BASE_HOME; |
100 | 100 | ||
101 | if (len > 0) { | 101 | if (len > 0) { |
102 | const page = this.tabList[len - 1]; | 102 | const page = this.tabList[len - 1]; |
1 | import type { AppRouteRecordRaw, Menu } from '/@/router/types'; | 1 | import type { AppRouteRecordRaw, Menu } from '/@/router/types'; |
2 | - | ||
3 | import { defineStore } from 'pinia'; | 2 | import { defineStore } from 'pinia'; |
4 | import { store } from '/@/store'; | 3 | import { store } from '/@/store'; |
5 | import { useI18n } from '/@/hooks/web/useI18n'; | 4 | import { useI18n } from '/@/hooks/web/useI18n'; |
@@ -8,22 +7,16 @@ import { useAppStoreWithOut } from './app'; | @@ -8,22 +7,16 @@ import { useAppStoreWithOut } from './app'; | ||
8 | import { toRaw } from 'vue'; | 7 | import { toRaw } from 'vue'; |
9 | import { transformObjToRoute, flatMultiLevelRoutes } from '/@/router/helper/routeHelper'; | 8 | import { transformObjToRoute, flatMultiLevelRoutes } from '/@/router/helper/routeHelper'; |
10 | import { transformRouteToMenu } from '/@/router/helper/menuHelper'; | 9 | import { transformRouteToMenu } from '/@/router/helper/menuHelper'; |
11 | - | ||
12 | import projectSetting from '/@/settings/projectSetting'; | 10 | import projectSetting from '/@/settings/projectSetting'; |
13 | - | ||
14 | import { PermissionModeEnum } from '/@/enums/appEnum'; | 11 | import { PermissionModeEnum } from '/@/enums/appEnum'; |
15 | - | ||
16 | import { asyncRoutes } from '/@/router/routes'; | 12 | import { asyncRoutes } from '/@/router/routes'; |
17 | import { ERROR_LOG_ROUTE, PAGE_NOT_FOUND_ROUTE } from '/@/router/routes/basic'; | 13 | import { ERROR_LOG_ROUTE, PAGE_NOT_FOUND_ROUTE } from '/@/router/routes/basic'; |
18 | - | ||
19 | import { filter } from '/@/utils/helper/treeHelper'; | 14 | import { filter } from '/@/utils/helper/treeHelper'; |
20 | - | ||
21 | import { getMenuList } from '/@/api/sys/menu'; | 15 | import { getMenuList } from '/@/api/sys/menu'; |
22 | import { getPermCode } from '/@/api/sys/user'; | 16 | import { getPermCode } from '/@/api/sys/user'; |
23 | - | ||
24 | import { useMessage } from '/@/hooks/web/useMessage'; | 17 | import { useMessage } from '/@/hooks/web/useMessage'; |
25 | import { PageEnum } from '/@/enums/pageEnum'; | 18 | import { PageEnum } from '/@/enums/pageEnum'; |
26 | - | 19 | +import { router } from '/@/router'; |
27 | interface PermissionState { | 20 | interface PermissionState { |
28 | // Permission code list | 21 | // Permission code list |
29 | permCodeList: string[] | number[]; | 22 | permCodeList: string[] | number[]; |
@@ -177,7 +170,7 @@ export const usePermissionStore = defineStore({ | @@ -177,7 +170,7 @@ export const usePermissionStore = defineStore({ | ||
177 | 170 | ||
178 | createMessage.loading({ | 171 | createMessage.loading({ |
179 | content: t('sys.app.menuLoading'), | 172 | content: t('sys.app.menuLoading'), |
180 | - duration: 1, | 173 | + duration: 0.5, |
181 | }); | 174 | }); |
182 | 175 | ||
183 | // !Simulate to obtain permission codes from the background, | 176 | // !Simulate to obtain permission codes from the background, |
@@ -186,6 +179,16 @@ export const usePermissionStore = defineStore({ | @@ -186,6 +179,16 @@ export const usePermissionStore = defineStore({ | ||
186 | try { | 179 | try { |
187 | this.changePermissionCode(); | 180 | this.changePermissionCode(); |
188 | routeList = (await getMenuList()) as AppRouteRecordRaw[]; | 181 | routeList = (await getMenuList()) as AppRouteRecordRaw[]; |
182 | + //这里判断是否含有首页 | ||
183 | + const getHomePage = routeList.find((f) => { | ||
184 | + return f.path == '/dashboard'; | ||
185 | + }); | ||
186 | + if (getHomePage?.path == '/dashboard') { | ||
187 | + router.push('/dashboard'); | ||
188 | + } else { | ||
189 | + const route = routeList[0].path + ''; | ||
190 | + router.push(route); | ||
191 | + } | ||
189 | } catch (error) { | 192 | } catch (error) { |
190 | console.error(error); | 193 | console.error(error); |
191 | } // Dynamically introduce components | 194 | } // Dynamically introduce components |
@@ -203,7 +206,7 @@ export const usePermissionStore = defineStore({ | @@ -203,7 +206,7 @@ export const usePermissionStore = defineStore({ | ||
203 | routes = [PAGE_NOT_FOUND_ROUTE, ...routeList]; | 206 | routes = [PAGE_NOT_FOUND_ROUTE, ...routeList]; |
204 | break; | 207 | break; |
205 | } | 208 | } |
206 | - | 209 | + console.log('错误页'); |
207 | routes.push(ERROR_LOG_ROUTE); | 210 | routes.push(ERROR_LOG_ROUTE); |
208 | patchHomeAffix(routes); | 211 | patchHomeAffix(routes); |
209 | return routes; | 212 | return routes; |
@@ -26,14 +26,7 @@ import { router } from '/@/router'; | @@ -26,14 +26,7 @@ import { router } from '/@/router'; | ||
26 | const globSetting = useGlobSetting(); | 26 | const globSetting = useGlobSetting(); |
27 | const urlPrefix = globSetting.urlPrefix; | 27 | const urlPrefix = globSetting.urlPrefix; |
28 | const { createMessage, createErrorModal } = useMessage(); | 28 | const { createMessage, createErrorModal } = useMessage(); |
29 | - | ||
30 | const getJwtTokenInfo = getAuthCache(REFRESH_TOKEN_KEY); | 29 | const getJwtTokenInfo = getAuthCache(REFRESH_TOKEN_KEY); |
31 | -const getRefreshTokenInfo = getAuthCache(JWT_TOKEN_KEY); | ||
32 | -// console.log(getJwtTokenInfo); | ||
33 | -// console.log(getRefreshTokenInfo); | ||
34 | -const getRefreshTokenInfo1 = getAuthCache(PROJ_CFG_KEY); | ||
35 | - | ||
36 | -// console.log(getRefreshTokenInfo1); | ||
37 | 30 | ||
38 | /** | 31 | /** |
39 | * @description: 数据处理,方便区分多种处理方式 | 32 | * @description: 数据处理,方便区分多种处理方式 |
1 | -import { BasicColumn } from '/@/components/Table'; | ||
2 | -import { FormSchema } from '/@/components/Table'; | 1 | +import { BasicColumn, FormSchema } from '/@/components/Table'; |
3 | import { getOrganizationList } from '/@/api/system/system'; | 2 | import { getOrganizationList } from '/@/api/system/system'; |
4 | import { copyTransFun } from '/@/utils/fnUtils'; | 3 | import { copyTransFun } from '/@/utils/fnUtils'; |
4 | + | ||
5 | // 表格列数据 | 5 | // 表格列数据 |
6 | export const columns: BasicColumn[] = [ | 6 | export const columns: BasicColumn[] = [ |
7 | { | 7 | { |
@@ -67,6 +67,7 @@ | @@ -67,6 +67,7 @@ | ||
67 | const [registerTable, { reload }] = useTable({ | 67 | const [registerTable, { reload }] = useTable({ |
68 | api: getAlarmContact, | 68 | api: getAlarmContact, |
69 | columns, | 69 | columns, |
70 | + clickToRowSelect: false, | ||
70 | formConfig: { | 71 | formConfig: { |
71 | labelWidth: 120, | 72 | labelWidth: 120, |
72 | schemas: searchFormSchema, | 73 | schemas: searchFormSchema, |
src/views/dashboard/analysis/components/DynamicInfo.vue
deleted
100644 → 0
1 | -<template> | ||
2 | - <Card title="最新动态" v-bind="$attrs"> | ||
3 | - <template #extra> | ||
4 | - <a-button type="link" size="small">更多</a-button> | ||
5 | - </template> | ||
6 | - <List item-layout="horizontal" :data-source="dynamicInfoItems"> | ||
7 | - <template #renderItem="{ item }"> | ||
8 | - <ListItem> | ||
9 | - <ListItemMeta> | ||
10 | - <template #description> | ||
11 | - {{ item.date }} | ||
12 | - </template> | ||
13 | - <!-- eslint-disable-next-line --> | ||
14 | - <template #title> {{ item.name }} <span v-html="item.desc"> </span> </template> | ||
15 | - <template #avatar> | ||
16 | - <Icon :icon="item.avatar" :size="30" /> | ||
17 | - </template> | ||
18 | - </ListItemMeta> | ||
19 | - </ListItem> | ||
20 | - </template> | ||
21 | - </List> | ||
22 | - </Card> | ||
23 | -</template> | ||
24 | -<script lang="ts" setup> | ||
25 | - import { Card, List } from 'ant-design-vue'; | ||
26 | - import { dynamicInfoItems } from './data'; | ||
27 | - import { Icon } from '/@/components/Icon'; | ||
28 | - | ||
29 | - const ListItem = List.Item; | ||
30 | - const ListItemMeta = List.Item.Meta; | ||
31 | -</script> |
src/views/dashboard/analysis/components/ProjectCard.vue
deleted
100644 → 0
1 | -<template> | ||
2 | - <Card title="项目" v-bind="$attrs"> | ||
3 | - <template #extra> | ||
4 | - <a-button type="link" size="small">更多</a-button> | ||
5 | - </template> | ||
6 | - | ||
7 | - <template v-for="item in items" :key="item"> | ||
8 | - <CardGrid class="!md:w-1/3 !w-full"> | ||
9 | - <span class="flex"> | ||
10 | - <Icon :icon="item.icon" :color="item.color" size="30" /> | ||
11 | - <span class="text-lg ml-4">{{ item.title }}</span> | ||
12 | - </span> | ||
13 | - <div class="flex mt-2 h-10 text-secondary"> {{ item.desc }} </div> | ||
14 | - <div class="flex justify-between text-secondary"> | ||
15 | - <span>{{ item.group }}</span> | ||
16 | - <span>{{ item.date }}</span> | ||
17 | - </div> | ||
18 | - </CardGrid> | ||
19 | - </template> | ||
20 | - </Card> | ||
21 | -</template> | ||
22 | -<script lang="ts"> | ||
23 | - import { defineComponent } from 'vue'; | ||
24 | - import { Card } from 'ant-design-vue'; | ||
25 | - import { Icon } from '/@/components/Icon'; | ||
26 | - import { groupItems } from './data'; | ||
27 | - | ||
28 | - export default defineComponent({ | ||
29 | - components: { Card, CardGrid: Card.Grid, Icon }, | ||
30 | - setup() { | ||
31 | - return { items: groupItems }; | ||
32 | - }, | ||
33 | - }); | ||
34 | -</script> |
src/views/dashboard/analysis/components/QuickNav.vue
deleted
100644 → 0
1 | -<template> | ||
2 | - <Card title="快捷导航" v-bind="$attrs"> | ||
3 | - <template v-for="item in navItems" :key="item"> | ||
4 | - <CardGrid> | ||
5 | - <span class="flex flex-col items-center"> | ||
6 | - <Icon :icon="item.icon" :color="item.color" size="20" /> | ||
7 | - <span class="text-md mt-2">{{ item.title }}</span> | ||
8 | - </span> | ||
9 | - </CardGrid> | ||
10 | - </template> | ||
11 | - </Card> | ||
12 | -</template> | ||
13 | -<script lang="ts" setup> | ||
14 | - import { Card } from 'ant-design-vue'; | ||
15 | - import { navItems } from './data'; | ||
16 | - import { Icon } from '/@/components/Icon'; | ||
17 | - | ||
18 | - const CardGrid = Card.Grid; | ||
19 | -</script> |
src/views/dashboard/analysis/components/SaleRadar.vue
deleted
100644 → 0
1 | -<template> | ||
2 | - <Card title="销售统计" :loading="loading"> | ||
3 | - <div ref="chartRef" :style="{ width, height }"></div> | ||
4 | - </Card> | ||
5 | -</template> | ||
6 | -<script lang="ts" setup> | ||
7 | - import { Ref, ref, watch } from 'vue'; | ||
8 | - import { Card } from 'ant-design-vue'; | ||
9 | - import { useECharts } from '/@/hooks/web/useECharts'; | ||
10 | - | ||
11 | - const props = defineProps({ | ||
12 | - loading: Boolean, | ||
13 | - width: { | ||
14 | - type: String as PropType<string>, | ||
15 | - default: '100%', | ||
16 | - }, | ||
17 | - height: { | ||
18 | - type: String as PropType<string>, | ||
19 | - default: '400px', | ||
20 | - }, | ||
21 | - }); | ||
22 | - | ||
23 | - const chartRef = ref<HTMLDivElement | null>(null); | ||
24 | - const { setOptions } = useECharts(chartRef as Ref<HTMLDivElement>); | ||
25 | - watch( | ||
26 | - () => props.loading, | ||
27 | - () => { | ||
28 | - if (props.loading) { | ||
29 | - return; | ||
30 | - } | ||
31 | - setOptions({ | ||
32 | - legend: { | ||
33 | - bottom: 0, | ||
34 | - data: ['Visits', 'Sales'], | ||
35 | - }, | ||
36 | - tooltip: {}, | ||
37 | - radar: { | ||
38 | - radius: '60%', | ||
39 | - splitNumber: 8, | ||
40 | - indicator: [ | ||
41 | - { | ||
42 | - text: '2017', | ||
43 | - max: 100, | ||
44 | - }, | ||
45 | - { | ||
46 | - text: '2017', | ||
47 | - max: 100, | ||
48 | - }, | ||
49 | - { | ||
50 | - text: '2018', | ||
51 | - max: 100, | ||
52 | - }, | ||
53 | - { | ||
54 | - text: '2019', | ||
55 | - max: 100, | ||
56 | - }, | ||
57 | - { | ||
58 | - text: '2020', | ||
59 | - max: 100, | ||
60 | - }, | ||
61 | - { | ||
62 | - text: '2021', | ||
63 | - max: 100, | ||
64 | - }, | ||
65 | - ], | ||
66 | - }, | ||
67 | - series: [ | ||
68 | - { | ||
69 | - type: 'radar', | ||
70 | - symbolSize: 0, | ||
71 | - areaStyle: { | ||
72 | - shadowBlur: 0, | ||
73 | - shadowColor: 'rgba(0,0,0,.2)', | ||
74 | - shadowOffsetX: 0, | ||
75 | - shadowOffsetY: 10, | ||
76 | - opacity: 1, | ||
77 | - }, | ||
78 | - data: [ | ||
79 | - { | ||
80 | - value: [90, 50, 86, 40, 50, 20], | ||
81 | - name: 'Visits', | ||
82 | - itemStyle: { | ||
83 | - color: '#b6a2de', | ||
84 | - }, | ||
85 | - }, | ||
86 | - { | ||
87 | - value: [70, 75, 70, 76, 20, 85], | ||
88 | - name: 'Sales', | ||
89 | - itemStyle: { | ||
90 | - color: '#67e0e3', | ||
91 | - }, | ||
92 | - }, | ||
93 | - ], | ||
94 | - }, | ||
95 | - ], | ||
96 | - }); | ||
97 | - }, | ||
98 | - { immediate: true } | ||
99 | - ); | ||
100 | -</script> |
src/views/dashboard/analysis/components/data.ts
deleted
100644 → 0
1 | -interface GroupItem { | ||
2 | - title: string; | ||
3 | - icon: string; | ||
4 | - color: string; | ||
5 | - desc: string; | ||
6 | - date: string; | ||
7 | - group: string; | ||
8 | -} | ||
9 | - | ||
10 | -interface NavItem { | ||
11 | - title: string; | ||
12 | - icon: string; | ||
13 | - color: string; | ||
14 | -} | ||
15 | - | ||
16 | -interface DynamicInfoItem { | ||
17 | - avatar: string; | ||
18 | - name: string; | ||
19 | - date: string; | ||
20 | - desc: string; | ||
21 | -} | ||
22 | - | ||
23 | -export const navItems: NavItem[] = [ | ||
24 | - { | ||
25 | - title: '首页', | ||
26 | - icon: 'ion:home-outline', | ||
27 | - color: '#1fdaca', | ||
28 | - }, | ||
29 | - { | ||
30 | - title: '仪表盘', | ||
31 | - icon: 'ion:grid-outline', | ||
32 | - color: '#bf0c2c', | ||
33 | - }, | ||
34 | - { | ||
35 | - title: '组件', | ||
36 | - icon: 'ion:layers-outline', | ||
37 | - color: '#e18525', | ||
38 | - }, | ||
39 | - { | ||
40 | - title: '系统管理', | ||
41 | - icon: 'ion:settings-outline', | ||
42 | - color: '#3fb27f', | ||
43 | - }, | ||
44 | - { | ||
45 | - title: '权限管理', | ||
46 | - icon: 'ion:key-outline', | ||
47 | - color: '#4daf1bc9', | ||
48 | - }, | ||
49 | - { | ||
50 | - title: '图表', | ||
51 | - icon: 'ion:bar-chart-outline', | ||
52 | - color: '#00d8ff', | ||
53 | - }, | ||
54 | -]; | ||
55 | - | ||
56 | -export const dynamicInfoItems: DynamicInfoItem[] = [ | ||
57 | - { | ||
58 | - avatar: 'dynamic-avatar-1|svg', | ||
59 | - name: '威廉', | ||
60 | - date: '刚刚', | ||
61 | - desc: `在 <a>开源组</a> 创建了项目 <a>Vue</a>`, | ||
62 | - }, | ||
63 | - { | ||
64 | - avatar: 'dynamic-avatar-2|svg', | ||
65 | - name: '艾文', | ||
66 | - date: '1个小时前', | ||
67 | - desc: `关注了 <a>威廉</a> `, | ||
68 | - }, | ||
69 | - { | ||
70 | - avatar: 'dynamic-avatar-3|svg', | ||
71 | - name: '克里斯', | ||
72 | - date: '1天前', | ||
73 | - desc: `发布了 <a>个人动态</a> `, | ||
74 | - }, | ||
75 | - { | ||
76 | - avatar: 'dynamic-avatar-4|svg', | ||
77 | - name: 'Vben', | ||
78 | - date: '2天前', | ||
79 | - desc: `发表文章 <a>如何编写一个Vite插件</a> `, | ||
80 | - }, | ||
81 | - { | ||
82 | - avatar: 'dynamic-avatar-5|svg', | ||
83 | - name: '皮特', | ||
84 | - date: '3天前', | ||
85 | - desc: `回复了 <a>杰克</a> 的问题 <a>如何进行项目优化?</a>`, | ||
86 | - }, | ||
87 | - { | ||
88 | - avatar: 'dynamic-avatar-6|svg', | ||
89 | - name: '杰克', | ||
90 | - date: '1周前', | ||
91 | - desc: `关闭了问题 <a>如何运行项目</a> `, | ||
92 | - }, | ||
93 | - { | ||
94 | - avatar: 'dynamic-avatar-1|svg', | ||
95 | - name: '威廉', | ||
96 | - date: '1周前', | ||
97 | - desc: `发布了 <a>个人动态</a> `, | ||
98 | - }, | ||
99 | - { | ||
100 | - avatar: 'dynamic-avatar-1|svg', | ||
101 | - name: '威廉', | ||
102 | - date: '2021-04-01 20:00', | ||
103 | - desc: `推送了代码到 <a>Github</a>`, | ||
104 | - }, | ||
105 | -]; | ||
106 | - | ||
107 | -export const groupItems: GroupItem[] = [ | ||
108 | - { | ||
109 | - title: 'Github', | ||
110 | - icon: 'carbon:logo-github', | ||
111 | - color: '', | ||
112 | - desc: '不要等待机会,而要创造机会。', | ||
113 | - group: '开源组', | ||
114 | - date: '2021-04-01', | ||
115 | - }, | ||
116 | - { | ||
117 | - title: 'Vue', | ||
118 | - icon: 'ion:logo-vue', | ||
119 | - color: '#3fb27f', | ||
120 | - desc: '现在的你决定将来的你。', | ||
121 | - group: '算法组', | ||
122 | - date: '2021-04-01', | ||
123 | - }, | ||
124 | - { | ||
125 | - title: 'Html5', | ||
126 | - icon: 'ion:logo-html5', | ||
127 | - color: '#e18525', | ||
128 | - desc: '没有什么才能比努力更重要。', | ||
129 | - group: '上班摸鱼', | ||
130 | - date: '2021-04-01', | ||
131 | - }, | ||
132 | - { | ||
133 | - title: 'Angular', | ||
134 | - icon: 'ion:logo-angular', | ||
135 | - color: '#bf0c2c', | ||
136 | - desc: '热情和欲望可以突破一切难关。', | ||
137 | - group: 'UI', | ||
138 | - date: '2021-04-01', | ||
139 | - }, | ||
140 | - { | ||
141 | - title: 'React', | ||
142 | - icon: 'bx:bxl-react', | ||
143 | - color: '#00d8ff', | ||
144 | - desc: '健康的身体是实目标的基石。', | ||
145 | - group: '技术牛', | ||
146 | - date: '2021-04-01', | ||
147 | - }, | ||
148 | - { | ||
149 | - title: 'Js', | ||
150 | - icon: 'ion:logo-javascript', | ||
151 | - color: '#4daf1bc9', | ||
152 | - desc: '路是走出来的,而不是空想出来的。', | ||
153 | - group: '架构组', | ||
154 | - date: '2021-04-01', | ||
155 | - }, | ||
156 | -]; |
src/views/dashboard/analysis/index.vue
deleted
100644 → 0
1 | -<template> | ||
2 | - <PageWrapper> | ||
3 | - <template #headerContent> <WorkbenchHeader /> </template> | ||
4 | - <div class="lg:flex"> | ||
5 | - <div class="lg:w-7/10 w-full !mr-4 enter-y"> | ||
6 | - <ProjectCard :loading="loading" class="enter-y" /> | ||
7 | - <DynamicInfo :loading="loading" class="!my-4 enter-y" /> | ||
8 | - </div> | ||
9 | - <div class="lg:w-3/10 w-full enter-y"> | ||
10 | - <QuickNav :loading="loading" class="enter-y" /> | ||
11 | - | ||
12 | - <Card class="!my-4 enter-y" :loading="loading"> | ||
13 | - <img class="xl:h-50 h-30 mx-auto" src="../../../assets/svg/illustration.svg" /> | ||
14 | - </Card> | ||
15 | - | ||
16 | - <SaleRadar :loading="loading" class="enter-y" /> | ||
17 | - </div> | ||
18 | - </div> | ||
19 | - <BasicModal | ||
20 | - @register="register" | ||
21 | - v-bind="$attrs" | ||
22 | - :mask="true" | ||
23 | - :showCancelBtn="false" | ||
24 | - :showOkBtn="false" | ||
25 | - :canFullscreen="false" | ||
26 | - :closable="false" | ||
27 | - :maskStyle="maskColor" | ||
28 | - :height="600" | ||
29 | - :width="1500" | ||
30 | - :maskClosable="false" | ||
31 | - title="请修改密码" | ||
32 | - :helpMessage="['请您修改密码']" | ||
33 | - > | ||
34 | - <PasswordDialog /> | ||
35 | - </BasicModal> | ||
36 | - </PageWrapper> | ||
37 | -</template> | ||
38 | -<script lang="ts" setup> | ||
39 | - import PasswordDialog from '/@/views/system/password/index.vue'; | ||
40 | - import { BasicModal, useModal } from '/@/components/Modal'; | ||
41 | - import { getAuthCache } from '/@/utils/auth'; | ||
42 | - import { USER_INFO_KEY } from '/@/enums/cacheEnum'; | ||
43 | - import { ref, onMounted } from 'vue'; | ||
44 | - import { Card } from 'ant-design-vue'; | ||
45 | - import { PageWrapper } from '/@/components/Page'; | ||
46 | - import WorkbenchHeader from './components/WorkbenchHeader.vue'; | ||
47 | - import ProjectCard from './components/ProjectCard.vue'; | ||
48 | - import QuickNav from './components/QuickNav.vue'; | ||
49 | - import DynamicInfo from './components/DynamicInfo.vue'; | ||
50 | - import SaleRadar from './components/SaleRadar.vue'; | ||
51 | - | ||
52 | - const maskColor = ref({ backgroundColor: 'grey' }); | ||
53 | - const statusModel = ref(false); | ||
54 | - const [register, { openModal }] = useModal(); | ||
55 | - onMounted(() => { | ||
56 | - const userInfo: object = getAuthCache(USER_INFO_KEY); | ||
57 | - if (userInfo.needSetPwd == true) { | ||
58 | - statusModel.value = true; | ||
59 | - openModal(statusModel.value); | ||
60 | - } else if (userInfo.needSetPwd == false) { | ||
61 | - openModal(statusModel.value); | ||
62 | - } | ||
63 | - }); | ||
64 | - //Yunteng123456!!! | ||
65 | - //Password123456! | ||
66 | - //System123456! | ||
67 | - //Testrole123456! | ||
68 | - const loading = ref(false); | ||
69 | - setTimeout(() => { | ||
70 | - loading.value = false; | ||
71 | - }, 1500); | ||
72 | -</script> |
@@ -25,8 +25,8 @@ | @@ -25,8 +25,8 @@ | ||
25 | :height="600" | 25 | :height="600" |
26 | :width="1500" | 26 | :width="1500" |
27 | :maskClosable="false" | 27 | :maskClosable="false" |
28 | - title="请修改密码" | ||
29 | - :helpMessage="['请您修改密码']" | 28 | + title="请您修改初始密码" |
29 | + :helpMessage="['请您修改初始密码']" | ||
30 | > | 30 | > |
31 | <PasswordDialog /> | 31 | <PasswordDialog /> |
32 | </BasicModal> | 32 | </BasicModal> |
@@ -47,7 +47,7 @@ | @@ -47,7 +47,7 @@ | ||
47 | const statusModel = ref(false); | 47 | const statusModel = ref(false); |
48 | const [register, { openModal }] = useModal(); | 48 | const [register, { openModal }] = useModal(); |
49 | onMounted(() => { | 49 | onMounted(() => { |
50 | - const userInfo: object = getAuthCache(USER_INFO_KEY); | 50 | + const userInfo = getAuthCache(USER_INFO_KEY); |
51 | if (userInfo.needSetPwd == true) { | 51 | if (userInfo.needSetPwd == true) { |
52 | statusModel.value = true; | 52 | statusModel.value = true; |
53 | openModal(statusModel.value); | 53 | openModal(statusModel.value); |
@@ -47,26 +47,27 @@ | @@ -47,26 +47,27 @@ | ||
47 | const getTitle = computed(() => (!unref(isUpdate) ? '新增设备配置' : '编辑设备配置')); | 47 | const getTitle = computed(() => (!unref(isUpdate) ? '新增设备配置' : '编辑设备配置')); |
48 | const [register] = useModalInner((data) => { | 48 | const [register] = useModalInner((data) => { |
49 | isUpdate.value = !!data?.isUpdate; | 49 | isUpdate.value = !!data?.isUpdate; |
50 | + if (!unref(isUpdate)) { | ||
51 | + current.value = 0; | ||
52 | + } | ||
50 | }); | 53 | }); |
51 | function handleStepPrev() { | 54 | function handleStepPrev() { |
52 | current.value--; | 55 | current.value--; |
53 | } | 56 | } |
54 | - function handleStep1Next(step1Values: any) { | 57 | + function handleStep1Next() { |
55 | current.value++; | 58 | current.value++; |
56 | - console.log(step1Values); | ||
57 | } | 59 | } |
58 | - function handleStep2Next(step2Values: any) { | 60 | + function handleStep2Next() { |
59 | current.value++; | 61 | current.value++; |
60 | - console.log(step2Values); | ||
61 | } | 62 | } |
62 | function handleRedo() { | 63 | function handleRedo() { |
63 | current.value = 0; | 64 | current.value = 0; |
64 | } | 65 | } |
65 | const handleSubmit = () => { | 66 | const handleSubmit = () => { |
66 | - console.log(1); | 67 | + console.log(); |
67 | }; | 68 | }; |
68 | const handleCancel = () => { | 69 | const handleCancel = () => { |
69 | - console.log(1); | 70 | + console.log(); |
70 | }; | 71 | }; |
71 | return { | 72 | return { |
72 | handleSubmit, | 73 | handleSubmit, |
@@ -46,7 +46,6 @@ | @@ -46,7 +46,6 @@ | ||
46 | }, | 46 | }, |
47 | setup(props) { | 47 | setup(props) { |
48 | const statusMapRef = ref(new Map<string | number, MapValue>()); | 48 | const statusMapRef = ref(new Map<string | number, MapValue>()); |
49 | - | ||
50 | const { query } = useRoute(); | 49 | const { query } = useRoute(); |
51 | const go = useGo(); | 50 | const go = useGo(); |
52 | const redo = useRedo(); | 51 | const redo = useRedo(); |
@@ -97,12 +97,11 @@ | @@ -97,12 +97,11 @@ | ||
97 | // console.log(record); | 97 | // console.log(record); |
98 | try { | 98 | try { |
99 | let ids = [record.id]; | 99 | let ids = [record.id]; |
100 | - await delOrganization(ids).then(() => { | ||
101 | - createMessage.success('删除组织成功'); | ||
102 | - handleSuccess(); | ||
103 | - }); | 100 | + await delOrganization(ids); |
101 | + createMessage.success('删除组织成功'); | ||
102 | + handleSuccess(); | ||
104 | } catch (e) { | 103 | } catch (e) { |
105 | - return Promise.reject(e); | 104 | + return e; |
106 | } | 105 | } |
107 | } | 106 | } |
108 | 107 |