修改前端包结构.

This commit is contained in:
lijiahang
2023-10-18 17:11:27 +08:00
parent 284501b3fb
commit 17d11cef21
39 changed files with 107 additions and 36 deletions

View File

@@ -1,16 +1,16 @@
<template> <template>
<a-config-provider :locale="locale"> <a-config-provider :locale="locale">
<router-view /> <router-view />
<global-setting ref="globalSettingRef" /> <app-setting ref="appSettingRef" />
</a-config-provider> </a-config-provider>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { computed, provide, ref } from 'vue'; import { computed, provide, ref } from 'vue';
import zhCN from '@arco-design/web-vue/es/locale/lang/zh-cn'; import zhCN from '@arco-design/web-vue/es/locale/lang/zh-cn';
import GlobalSetting from '@/components/global-setting/index.vue'; import AppSetting from '@/components/app/setting/index.vue';
import useLocale from '@/hooks/locale'; import useLocale from '@/hooks/locale';
import { openGlobalSettingKey } from '@/types/symbol'; import { openAppSettingKey } from '@/types/symbol';
const { currentLocale } = useLocale(); const { currentLocale } = useLocale();
const locale = computed(() => { const locale = computed(() => {
@@ -23,9 +23,9 @@
}); });
// 对外暴露打开配置方法 // 对外暴露打开配置方法
const globalSettingRef = ref(); const appSettingRef = ref();
provide(openGlobalSettingKey, () => { provide(openAppSettingKey, () => {
globalSettingRef.value.open(); appSettingRef.value.open();
}); });
</script> </script>

View File

@@ -42,6 +42,7 @@
align-items: center; align-items: center;
font-size: 16px; font-size: 16px;
font-weight: 600; font-weight: 600;
margin-right: 16px;
} }
} }
} }

View File

@@ -135,7 +135,7 @@
<a-button class="nav-btn" <a-button class="nav-btn"
type="outline" type="outline"
shape="circle" shape="circle"
@click="openGlobalSetting"> @click="openAppSetting">
<template #icon> <template #icon>
<icon-settings /> <icon-settings />
</template> </template>
@@ -188,9 +188,9 @@
import useLocale from '@/hooks/locale'; import useLocale from '@/hooks/locale';
import useUser from '@/hooks/user'; import useUser from '@/hooks/user';
import { triggerMouseEvent } from '@/utils'; import { triggerMouseEvent } from '@/utils';
import Menu from '@/components/menu/tree/index.vue'; import Menu from '@/components/system/menu/tree/index.vue';
import MessageBox from '../message-box/index.vue'; import MessageBox from '@/components/system/message-box/index.vue';
import { openGlobalSettingKey, toggleDrawerMenuKey } from '@/types/symbol'; import { openAppSettingKey, toggleDrawerMenuKey } from '@/types/symbol';
import { preferenceTipsKey } from './const'; import { preferenceTipsKey } from './const';
const tipsStore = useTipsStore(); const tipsStore = useTipsStore();
@@ -230,8 +230,8 @@
useToggle(darkTheme)(); useToggle(darkTheme)();
}; };
// //
const openGlobalSetting = inject(openGlobalSettingKey) as () => void; const openAppSetting = inject(openAppSettingKey) as () => void;
// ref // ref
const refMessageBoxTrigger = ref(); const refMessageBoxTrigger = ref();

View File

@@ -10,9 +10,9 @@ import {
DataZoomComponent, DataZoomComponent,
GraphicComponent, GraphicComponent,
} from 'echarts/components'; } from 'echarts/components';
import Chart from './chart/index.vue'; import Breadcrumb from './app/breadcrumb/index.vue';
import Breadcrumb from './breadcrumb/index.vue'; import Chart from './view/chart/index.vue';
import CardList from './card/list/index.vue'; import CardList from './view/card-list/index.vue';
use([ use([
CanvasRenderer, CanvasRenderer,

View File

@@ -28,7 +28,7 @@
setMessageStatus, setMessageStatus,
MessageRecord, MessageRecord,
MessageListType, MessageListType,
} from '@/api/message/message'; } from '@/api/system/message';
import useLoading from '@/hooks/loading'; import useLoading from '@/hooks/loading';
import List from './list.vue'; import List from './list.vue';

View File

@@ -73,7 +73,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { PropType } from 'vue'; import { PropType } from 'vue';
import { MessageRecord, MessageListType } from '@/api/message/message'; import { MessageRecord, MessageListType } from '@/api/system/message';
const props = defineProps({ const props = defineProps({
renderList: { renderList: {

View File

@@ -47,10 +47,10 @@
import { computed, onMounted, provide, ref } from 'vue'; import { computed, onMounted, provide, ref } from 'vue';
import { useRoute, useRouter } from 'vue-router'; import { useRoute, useRouter } from 'vue-router';
import { useAppStore } from '@/store'; import { useAppStore } from '@/store';
import NavBar from '@/components/navbar/index.vue'; import Menu from '@/components/system/menu/tree/index.vue';
import Menu from '@/components/menu/tree/index.vue'; import NavBar from '@/components/app/navbar/index.vue';
import Footer from '@/components/footer/index.vue'; import Footer from '@/components/app/footer/index.vue';
import TabBar from '@/components/tab-bar/index.vue'; import TabBar from '@/components/app/tab-bar/index.vue';
import useResponsive from '@/hooks/responsive'; import useResponsive from '@/hooks/responsive';
import PageLayout from './page-layout.vue'; import PageLayout from './page-layout.vue';
import { toggleDrawerMenuKey } from '@/types/symbol'; import { toggleDrawerMenuKey } from '@/types/symbol';

View File

@@ -1,4 +1,4 @@
import localeLogin from '@/views/login/locale/zh-CN'; import localeLogin from '@/views/authentication/login/locale/zh-CN';
import localeWorkplace from '@/views/dashboard/workplace/locale/zh-CN'; import localeWorkplace from '@/views/dashboard/workplace/locale/zh-CN';
export default { export default {

View File

@@ -23,7 +23,7 @@ export const ROOT_ROUTER: RouteRecordRaw = {
export const LOGIN_ROUTER: RouteRecordRaw = { export const LOGIN_ROUTER: RouteRecordRaw = {
path: '/login', path: '/login',
name: LOGIN_ROUTE_NAME, name: LOGIN_ROUTE_NAME,
component: () => import('@/views/login/index.vue'), component: () => import('@/views/authentication/login/index.vue'),
}; };
/** /**
@@ -40,7 +40,7 @@ export const REDIRECT_ROUTER: RouteRecordRaw = {
{ {
path: '/redirect/:path', path: '/redirect/:path',
name: REDIRECT_ROUTE_NAME, name: REDIRECT_ROUTE_NAME,
component: () => import('@/views/redirect/index.vue'), component: () => import('@/views/base/redirect/index.vue'),
meta: { meta: {
hideInMenu: true, hideInMenu: true,
noAffix: true noAffix: true
@@ -55,7 +55,7 @@ export const REDIRECT_ROUTER: RouteRecordRaw = {
export const FORBIDDEN_ROUTE: RouteRecordRaw = { export const FORBIDDEN_ROUTE: RouteRecordRaw = {
path: '/403', path: '/403',
name: FORBIDDEN_ROUTER_NAME, name: FORBIDDEN_ROUTER_NAME,
component: () => import('@/views/exception/forbidden/index.vue'), component: () => import('@/views/base/status/forbidden/index.vue'),
}; };
/** /**
@@ -65,7 +65,7 @@ export const NOT_FOUND_ROUTE: RouteRecordRaw = {
// path: '/:pathMatch(.*)*', // path: '/:pathMatch(.*)*',
path: '/404', path: '/404',
name: NOT_FOUND_ROUTER_NAME, name: NOT_FOUND_ROUTER_NAME,
component: () => import('@/views/exception/not-found/index.vue'), component: () => import('@/views/base/status/not-found/index.vue'),
}; };
export default [ export default [

View File

@@ -16,6 +16,11 @@ const USER: AppRouteRecordRaw = {
path: '/user/user', path: '/user/user',
component: () => import('@/views/user/user/index.vue'), component: () => import('@/views/user/user/index.vue'),
}, },
{
name: 'userMine',
path: '/user/mine',
component: () => import('@/views/user/mine/index.vue'),
},
], ],
}; };

View File

@@ -1,4 +1,5 @@
// 切换菜单状态 // 切换菜单状态
export const toggleDrawerMenuKey = Symbol(); export const toggleDrawerMenuKey = Symbol();
// 打开偏好设置 // 打开偏好设置
export const openGlobalSettingKey = Symbol(); export const openAppSettingKey = Symbol();

View File

@@ -149,7 +149,7 @@
import { deleteHost, getHostPage, HostQueryRequest, HostQueryResponse } from '@/api/asset/host'; import { deleteHost, getHostPage, HostQueryRequest, HostQueryResponse } from '@/api/asset/host';
import { Message, Modal } from '@arco-design/web-vue'; import { Message, Modal } from '@arco-design/web-vue';
import { tagColor } from '@/views/asset/host/types/const'; import { tagColor } from '@/views/asset/host/types/const';
import TagMultiSelector from '@/components/tag/tag-multi-selector.vue'; import TagMultiSelector from '@/components/meta/tag/tag-multi-selector.vue';
import useCopy from '@/hooks/copy'; import useCopy from '@/hooks/copy';
const { copy } = useCopy(); const { copy } = useCopy();

View File

@@ -59,7 +59,7 @@
import formRules from '../types/form.rules'; import formRules from '../types/form.rules';
import { createHost, updateHost, HostUpdateRequest } from '@/api/asset/host'; import { createHost, updateHost, HostUpdateRequest } from '@/api/asset/host';
import { Message } from '@arco-design/web-vue'; import { Message } from '@arco-design/web-vue';
import TagMultiSelector from '@/components/tag/tag-multi-selector.vue'; import TagMultiSelector from '@/components/meta/tag/tag-multi-selector.vue';
const { visible, setVisible } = useVisible(); const { visible, setVisible } = useVisible();
const { loading, setLoading } = useLoading(); const { loading, setLoading } = useLoading();

View File

@@ -172,7 +172,7 @@
import useCopy from '@/hooks/copy'; import useCopy from '@/hooks/copy';
import useFavorite from '@/hooks/favorite'; import useFavorite from '@/hooks/favorite';
import { dataColor } from '@/utils'; import { dataColor } from '@/utils';
import TagMultiSelector from '@/components/tag/tag-multi-selector.vue'; import TagMultiSelector from '@/components/meta/tag/tag-multi-selector.vue';
const tagSelector = ref(); const tagSelector = ref();
const tableRenderData = ref<HostQueryResponse[]>([]); const tableRenderData = ref<HostQueryResponse[]>([]);

View File

@@ -23,7 +23,7 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import Footer from '@/components/footer/index.vue'; import Footer from '@/components/app/footer/index.vue';
import LoginBanner from './components/banner.vue'; import LoginBanner from './components/banner.vue';
import LoginForm from './components/login-form.vue'; import LoginForm from './components/login-form.vue';
</script> </script>

View File

@@ -32,6 +32,17 @@
<div class="table-title"> <div class="table-title">
数据字典 数据字典
</div> </div>
<!-- 操作 -->
<a-space>
<a-button type="primary"
v-permission="['infra:dict-key:create']"
@click="emits('openAddKey')">
新增配置项
<template #icon>
<icon-book />
</template>
</a-button>
</a-space>
</div> </div>
<!-- 右侧操作 --> <!-- 右侧操作 -->
<div class="table-right-bar-handle"> <div class="table-right-bar-handle">
@@ -39,7 +50,7 @@
<!-- 新增 --> <!-- 新增 -->
<a-button type="primary" <a-button type="primary"
v-permission="['infra:dict-value:create']" v-permission="['infra:dict-value:create']"
@click="emits('openAdd')"> @click="emits('openAddValue')">
新增字典值 新增字典值
<template #icon> <template #icon>
<icon-plus /> <icon-plus />
@@ -84,14 +95,14 @@
<a-button type="text" <a-button type="text"
size="mini" size="mini"
v-permission="['infra:dict-value:update']" v-permission="['infra:dict-value:update']"
@click="emits('openUpdate', record)"> @click="emits('openValueUpdate', record)">
修改 修改
</a-button> </a-button>
<!-- 历史 --> <!-- 历史 -->
<a-button type="text" <a-button type="text"
size="mini" size="mini"
v-permission="['infra:dict-value:update']" v-permission="['infra:dict-value:update']"
@click="emits('openUpdate', record)"> @click="emits('openValueHistory', record)">
历史 历史
</a-button> </a-button>
<!-- 删除 --> <!-- 删除 -->
@@ -131,7 +142,7 @@
const tableRenderData = ref<DictValueQueryResponse[]>([]); const tableRenderData = ref<DictValueQueryResponse[]>([]);
const { loading, setLoading } = useLoading(); const { loading, setLoading } = useLoading();
const emits = defineEmits(['openAdd', 'openUpdate']); const emits = defineEmits(['openAddKey', 'openAddValue', 'openValueUpdate', 'openValueHistory']);
const pagination = usePagination(); const pagination = usePagination();
const selectedKeys = ref<number[]>([]); const selectedKeys = ref<number[]>([]);

View File

@@ -0,0 +1,53 @@
<template>
<a-row class="layout-container">
<a-col :span="8">
<a-card class="general-card">
<template #title>
用户信息
</template>
<a-spin :loading="loading" style="width: 100%">
<a-form :model="formModel"
ref="formRef"
label-align="right"
:label-col-props="{ span: 6 }"
:wrapper-col-props="{ span: 16 }"
:rules="formRules">
<!-- 用户名 -->
<a-form-item field="username" label="用户名">
<a-input v-model="formModel.username" disabled />
</a-form-item>
<!-- 花名 -->
<a-form-item field="nickname" label="花名">
<a-input v-model="formModel.nickname" placeholder="请输入花名" />
</a-form-item>
<!-- 手机号 -->
<a-form-item field="mobile" label="手机号">
<a-input v-model="formModel.mobile" placeholder="请输入手机号" />
</a-form-item>
<!-- 邮箱 -->
<a-form-item field="email" label="邮箱">
<a-input v-model="formModel.email" placeholder="请输入邮箱" />
</a-form-item>
</a-form>
</a-spin>
</a-card>
</a-col>
</a-row>
</template>
<script lang="ts" setup>
import useLoading from '@/hooks/loading';
import { ref } from 'vue';
import { UserUpdateRequest } from '@/api/user/user';
import formRules from '../user/types/form.rules';
const { loading, setLoading } = useLoading();
const formRef = ref();
const formModel = ref<UserUpdateRequest>({});
</script>
<style lang="less" scoped>
</style>

View File

@@ -51,7 +51,7 @@
import { useCacheStore } from '@/store'; import { useCacheStore } from '@/store';
import { getMenuList } from '@/api/system/menu'; import { getMenuList } from '@/api/system/menu';
import MenuSelectorTree from '@/components/menu/selector/menu-selector-tree.vue'; import MenuSelectorTree from '@/components/system/menu/selector/menu-selector-tree.vue';
const { visible, setVisible } = useVisible(); const { visible, setVisible } = useVisible();
const { loading, setLoading } = useLoading(); const { loading, setLoading } = useLoading();