diff --git a/nginx.conf b/nginx.conf index 2ca68bb..8525415 100644 --- a/nginx.conf +++ b/nginx.conf @@ -8,17 +8,18 @@ server { server_name _; - #location /admin-service/ { - #proxy_pass http://admin-service:8080/; - #} + location /sweet-hut/ { + alias /usr/share/nginx/html/; + try_files $uri $uri/ /sweet-hut/index.html; + } - location /home-service/ { - proxy_pass http://home-service:8081/; + location /home-api/ { + proxy_pass http://host.docker.internal:8081/; } - #location /blog-service/ { - #proxy_pass http://blog-service:8082/; - #} + location /blog-api/ { + proxy_pass http://host.docker.internal:8082/; + } location / { try_files $uri $uri/ =404; diff --git a/src/App.vue b/src/App.vue index a06e34a..b4fce8b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -4,7 +4,7 @@ diff --git a/src/components/Home/Anniversary/AnniversaryQuery.vue b/src/components/Anniversary/AnniversaryQuery.vue similarity index 100% rename from src/components/Home/Anniversary/AnniversaryQuery.vue rename to src/components/Anniversary/AnniversaryQuery.vue diff --git a/src/components/Home/Anniversary/CategoryCard.vue b/src/components/Anniversary/CategoryCard.vue similarity index 87% rename from src/components/Home/Anniversary/CategoryCard.vue rename to src/components/Anniversary/CategoryCard.vue index ab126e9..df34af3 100644 --- a/src/components/Home/Anniversary/CategoryCard.vue +++ b/src/components/Anniversary/CategoryCard.vue @@ -9,8 +9,8 @@ diff --git a/src/components/Home/Asset/AssetCard.vue b/src/components/Asset/AssetCard.vue similarity index 84% rename from src/components/Home/Asset/AssetCard.vue rename to src/components/Asset/AssetCard.vue index 1ac50a1..cd9ce3b 100644 --- a/src/components/Home/Asset/AssetCard.vue +++ b/src/components/Asset/AssetCard.vue @@ -33,11 +33,9 @@ diff --git a/src/components/Home/Asset/AssetQuery.vue b/src/components/Asset/AssetQuery.vue similarity index 100% rename from src/components/Home/Asset/AssetQuery.vue rename to src/components/Asset/AssetQuery.vue diff --git a/src/components/Home/Bill/BillBook.vue b/src/components/Bill/BillBook.vue similarity index 95% rename from src/components/Home/Bill/BillBook.vue rename to src/components/Bill/BillBook.vue index dd85af5..081ea55 100644 --- a/src/components/Home/Bill/BillBook.vue +++ b/src/components/Bill/BillBook.vue @@ -62,13 +62,13 @@ + + diff --git a/src/components/Blog/Category/BlogCategory.vue b/src/components/Blog/Category/BlogCategory.vue new file mode 100644 index 0000000..8bc51e9 --- /dev/null +++ b/src/components/Blog/Category/BlogCategory.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/src/components/Blog/Category/BlogCategoryDetail.vue b/src/components/Blog/Category/BlogCategoryDetail.vue new file mode 100644 index 0000000..35b3ad1 --- /dev/null +++ b/src/components/Blog/Category/BlogCategoryDetail.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/src/components/Blog/Comment/BlogComment.vue b/src/components/Blog/Comment/BlogComment.vue new file mode 100644 index 0000000..b938181 --- /dev/null +++ b/src/components/Blog/Comment/BlogComment.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/src/components/Blog/Comment/BlogCommentEdit.vue b/src/components/Blog/Comment/BlogCommentEdit.vue new file mode 100644 index 0000000..ef79107 --- /dev/null +++ b/src/components/Blog/Comment/BlogCommentEdit.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/src/components/Blog/Comment/BlogCommentItem.vue b/src/components/Blog/Comment/BlogCommentItem.vue new file mode 100644 index 0000000..bdf051a --- /dev/null +++ b/src/components/Blog/Comment/BlogCommentItem.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/src/components/Blog/Content/BlogDetail.vue b/src/components/Blog/Content/BlogDetail.vue new file mode 100644 index 0000000..51f8fd4 --- /dev/null +++ b/src/components/Blog/Content/BlogDetail.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/src/components/Blog/Content/BlogLabel.vue b/src/components/Blog/Content/BlogLabel.vue new file mode 100644 index 0000000..9936a4c --- /dev/null +++ b/src/components/Blog/Content/BlogLabel.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/src/components/Blog/Content/BlogOverview.vue b/src/components/Blog/Content/BlogOverview.vue new file mode 100644 index 0000000..bd6a152 --- /dev/null +++ b/src/components/Blog/Content/BlogOverview.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/src/components/AppLoading.vue b/src/components/Common/AppLoading.vue similarity index 91% rename from src/components/AppLoading.vue rename to src/components/Common/AppLoading.vue index a756d29..6de3893 100644 --- a/src/components/AppLoading.vue +++ b/src/components/Common/AppLoading.vue @@ -16,5 +16,5 @@ const appStore = useAppStore() diff --git a/src/components/Mobile/ArriveButton.vue b/src/components/Common/ArriveButton.vue similarity index 100% rename from src/components/Mobile/ArriveButton.vue rename to src/components/Common/ArriveButton.vue diff --git a/src/components/Mobile/DraggableButton.vue b/src/components/Common/DraggableButton.vue similarity index 100% rename from src/components/Mobile/DraggableButton.vue rename to src/components/Common/DraggableButton.vue diff --git a/src/components/Mobile/MobileSetting.vue b/src/components/Common/MobileSetting.vue similarity index 100% rename from src/components/Mobile/MobileSetting.vue rename to src/components/Common/MobileSetting.vue diff --git a/src/components/Mobile/WeatherIcon.vue b/src/components/Common/WeatherIcon.vue similarity index 100% rename from src/components/Mobile/WeatherIcon.vue rename to src/components/Common/WeatherIcon.vue diff --git a/src/components/Mobile/WeatherTimeCard.vue b/src/components/Common/WeatherTimeCard.vue similarity index 99% rename from src/components/Mobile/WeatherTimeCard.vue rename to src/components/Common/WeatherTimeCard.vue index f608b64..6fa43d0 100644 --- a/src/components/Mobile/WeatherTimeCard.vue +++ b/src/components/Common/WeatherTimeCard.vue @@ -50,7 +50,7 @@ diff --git a/src/components/Home/Food/FoodDailyItem.vue b/src/components/Food/FoodDailyItem.vue similarity index 93% rename from src/components/Home/Food/FoodDailyItem.vue rename to src/components/Food/FoodDailyItem.vue index d18dc70..205d75a 100644 --- a/src/components/Home/Food/FoodDailyItem.vue +++ b/src/components/Food/FoodDailyItem.vue @@ -22,8 +22,8 @@ diff --git a/src/components/Home/Budget/BudgetDialog.vue b/src/components/Home/Budget/BudgetDialog.vue deleted file mode 100644 index 8a9dcb3..0000000 --- a/src/components/Home/Budget/BudgetDialog.vue +++ /dev/null @@ -1,114 +0,0 @@ - - - diff --git a/src/components/Home/Budget/BudgetQuery.vue b/src/components/Home/Budget/BudgetQuery.vue deleted file mode 100644 index 4468083..0000000 --- a/src/components/Home/Budget/BudgetQuery.vue +++ /dev/null @@ -1,54 +0,0 @@ - - - diff --git a/src/components/Home/Budget/BudgetTable.vue b/src/components/Home/Budget/BudgetTable.vue deleted file mode 100644 index 86b6650..0000000 --- a/src/components/Home/Budget/BudgetTable.vue +++ /dev/null @@ -1,98 +0,0 @@ - - - diff --git a/src/components/Home/HomeQuery.vue b/src/components/HomeQuery.vue similarity index 100% rename from src/components/Home/HomeQuery.vue rename to src/components/HomeQuery.vue diff --git a/src/components/Home/Journal/JournalCalendar.vue b/src/components/Journal/JournalCalendar.vue similarity index 95% rename from src/components/Home/Journal/JournalCalendar.vue rename to src/components/Journal/JournalCalendar.vue index 4996cab..8336c5a 100644 --- a/src/components/Home/Journal/JournalCalendar.vue +++ b/src/components/Journal/JournalCalendar.vue @@ -13,11 +13,11 @@ diff --git a/src/components/Home/Ledger/LedgerQuery.vue b/src/components/Ledger/LedgerQuery.vue similarity index 100% rename from src/components/Home/Ledger/LedgerQuery.vue rename to src/components/Ledger/LedgerQuery.vue diff --git a/src/components/Home/Login/CommonLogin.vue b/src/components/Login/CommonLogin.vue similarity index 88% rename from src/components/Home/Login/CommonLogin.vue rename to src/components/Login/CommonLogin.vue index af29d94..8eab6ea 100644 --- a/src/components/Home/Login/CommonLogin.vue +++ b/src/components/Login/CommonLogin.vue @@ -45,12 +45,6 @@ :loading="authStore.loginLoading" @click.prevent="handleLogin('common')">登录 -
- 登录管理系统 -
手机号登录 @@ -76,15 +70,15 @@ diff --git a/src/components/Home/Product/ProductQuery.vue b/src/components/Product/ProductQuery.vue similarity index 100% rename from src/components/Home/Product/ProductQuery.vue rename to src/components/Product/ProductQuery.vue diff --git a/src/components/Home/Profile/ProfileAccount.vue b/src/components/Profile/ProfileAccount.vue similarity index 100% rename from src/components/Home/Profile/ProfileAccount.vue rename to src/components/Profile/ProfileAccount.vue diff --git a/src/components/Home/Profile/ProfileInfo.vue b/src/components/Profile/ProfileInfo.vue similarity index 100% rename from src/components/Home/Profile/ProfileInfo.vue rename to src/components/Profile/ProfileInfo.vue diff --git a/src/components/Home/Profile/ProfilePassword.vue b/src/components/Profile/ProfilePassword.vue similarity index 100% rename from src/components/Home/Profile/ProfilePassword.vue rename to src/components/Profile/ProfilePassword.vue diff --git a/src/components/Home/Server/ServerCard.vue b/src/components/Server/ServerCard.vue similarity index 100% rename from src/components/Home/Server/ServerCard.vue rename to src/components/Server/ServerCard.vue diff --git a/src/components/Home/Server/ServerProgress.vue b/src/components/Server/ServerProgress.vue similarity index 100% rename from src/components/Home/Server/ServerProgress.vue rename to src/components/Server/ServerProgress.vue diff --git a/src/components/Home/StatsCard.vue b/src/components/StatsCard.vue similarity index 100% rename from src/components/Home/StatsCard.vue rename to src/components/StatsCard.vue diff --git a/src/components/Test/SliderCaptcha.vue b/src/components/Test/SliderCaptcha.vue deleted file mode 100644 index 4685b3e..0000000 --- a/src/components/Test/SliderCaptcha.vue +++ /dev/null @@ -1,241 +0,0 @@ - - - - - diff --git a/src/components/Home/Travel/Data/TravelBasicData.vue b/src/components/Travel/Data/TravelBasicData.vue similarity index 100% rename from src/components/Home/Travel/Data/TravelBasicData.vue rename to src/components/Travel/Data/TravelBasicData.vue diff --git a/src/components/Home/Travel/Data/TravelConsumeData.vue b/src/components/Travel/Data/TravelConsumeData.vue similarity index 93% rename from src/components/Home/Travel/Data/TravelConsumeData.vue rename to src/components/Travel/Data/TravelConsumeData.vue index a7b2724..7f4fb0b 100644 --- a/src/components/Home/Travel/Data/TravelConsumeData.vue +++ b/src/components/Travel/Data/TravelConsumeData.vue @@ -14,7 +14,7 @@ diff --git a/src/components/Home/Travel/TravelDailyItem.vue b/src/components/Travel/TravelDailyItem.vue similarity index 77% rename from src/components/Home/Travel/TravelDailyItem.vue rename to src/components/Travel/TravelDailyItem.vue index 25dc197..e4b4195 100644 --- a/src/components/Home/Travel/TravelDailyItem.vue +++ b/src/components/Travel/TravelDailyItem.vue @@ -22,17 +22,15 @@ diff --git a/src/components/Home/Travel/TravelDailyList.vue b/src/components/Travel/TravelDailyList.vue similarity index 94% rename from src/components/Home/Travel/TravelDailyList.vue rename to src/components/Travel/TravelDailyList.vue index 8990fba..fd41482 100644 --- a/src/components/Home/Travel/TravelDailyList.vue +++ b/src/components/Travel/TravelDailyList.vue @@ -14,7 +14,7 @@ diff --git a/src/layout/admin/components/SideBar/Logo.vue b/src/layout/admin/components/SideBar/Logo.vue deleted file mode 100644 index d61dd70..0000000 --- a/src/layout/admin/components/SideBar/Logo.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - - diff --git a/src/layout/admin/components/SideBar/index.vue b/src/layout/admin/components/SideBar/index.vue deleted file mode 100644 index 20bb74d..0000000 --- a/src/layout/admin/components/SideBar/index.vue +++ /dev/null @@ -1,23 +0,0 @@ - - - - diff --git a/src/layout/admin/index.vue b/src/layout/admin/index.vue deleted file mode 100644 index 20c6385..0000000 --- a/src/layout/admin/index.vue +++ /dev/null @@ -1,37 +0,0 @@ - - - - - diff --git a/src/layout/home/components/HomeTitle.vue b/src/layout/home/components/HomeTitle.vue deleted file mode 100644 index bafe956..0000000 --- a/src/layout/home/components/HomeTitle.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/src/layout/home/components/Navbar/HomeMenu.vue b/src/layout/home/components/Navbar/HomeMenu.vue deleted file mode 100644 index 2d7f972..0000000 --- a/src/layout/home/components/Navbar/HomeMenu.vue +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/src/layout/home/components/Navbar/index.vue b/src/layout/home/components/Navbar/index.vue deleted file mode 100644 index d09e9c5..0000000 --- a/src/layout/home/components/Navbar/index.vue +++ /dev/null @@ -1,43 +0,0 @@ - - - diff --git a/src/layout/home/index.vue b/src/layout/home/index.vue deleted file mode 100644 index 18853f2..0000000 --- a/src/layout/home/index.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - - diff --git a/src/layout/mobile-home/index.vue b/src/layout/index.vue similarity index 55% rename from src/layout/mobile-home/index.vue rename to src/layout/index.vue index 41ab38c..fd27359 100644 --- a/src/layout/mobile-home/index.vue +++ b/src/layout/index.vue @@ -9,10 +9,10 @@ diff --git a/src/main.ts b/src/main.ts index e3e977f..43eb012 100644 --- a/src/main.ts +++ b/src/main.ts @@ -16,10 +16,6 @@ import zhCn from 'element-plus/es/locale/lang/zh-cn' import VCalendar from 'v-calendar' import 'v-calendar/style.css' -// 引入粒子特效 -// import Particles from '@tsparticles/vue3' -// import { loadSlim } from '@tsparticles/slim' - // 引入font-awesome import 'font-awesome/css/font-awesome.min.css' import '@fortawesome/fontawesome-free/css/all.css' @@ -37,12 +33,6 @@ app.use(router) app.use(createPinia()) // 使用Element UI Plus app.use(ElementPlus, { locale: zhCn }) -// app.use(Particles, { -// init: async (engine: any) => { -// // 加载精简版 -// await loadSlim(engine) -// } -// }) app.use(VCalendar, {}) // 挂载到根组件上 app.mount('#app') diff --git a/src/router/admin.ts b/src/router/admin.ts deleted file mode 100644 index 9ce65bd..0000000 --- a/src/router/admin.ts +++ /dev/null @@ -1,7 +0,0 @@ -import AdminLayout from '@/layout/admin/index.vue' -import { adminMeta } from '@/views/admin/meta' -import { getRoutersByModules, sortRoutesByOrder } from 'vue3-common/utils/routerUtil' - -const adminRoutes = getRoutersByModules(import.meta.glob('@/views/admin/**/*.vue'), AdminLayout, adminMeta) - -export default sortRoutesByOrder(adminRoutes) diff --git a/src/router/constant.ts b/src/router/constant.ts index c7bfec1..b5070d1 100644 --- a/src/router/constant.ts +++ b/src/router/constant.ts @@ -10,31 +10,9 @@ const constantRoutes: RouteRecordRaw[] = [ component: () => import('@/views/login/index.vue'), meta: { hidden: true } }, - { - path: '/home/profile', - component: () => import('@/layout/home/index.vue'), - redirect: '/home/profile/index', - meta: { hidden: true }, - children: [ - { - path: '/home/profile/index', - component: () => import('@/views/profile/index.vue'), - name: 'Profile', - meta: { title: '个人中心', hidden: true } - } - ] - }, { path: '/home', - redirect: '/home/property' - }, - { - path: '/admin', - redirect: '/admin/dashboard' - }, - { - path: '/mobile-home', - component: () => import('@/views/mobile/index.vue'), + component: () => import('@/views/home/index.vue'), meta: { hidden: true } } ] diff --git a/src/router/home.ts b/src/router/home.ts index be9dca1..5745bba 100644 --- a/src/router/home.ts +++ b/src/router/home.ts @@ -1,7 +1,8 @@ -import MobileHomeLayout from '@/layout/mobile-home/index.vue' +import MobileHomeLayout from '@/layout/index.vue' import { getRoutersByModules, sortRoutesByOrder } from 'vue3-common/utils/routerUtil' -import { mobileHomeMeta } from '@/views/mobile-home/meta.ts' +import { mobileHomeMeta } from '@/views/meta.ts' -const homeRoutes = getRoutersByModules(import.meta.glob('@/views/mobile-home/**/*.vue'), MobileHomeLayout, mobileHomeMeta) +// TODO 参考CCRT +const homeRoutes = getRoutersByModules(import.meta.glob('@/views/**/*.vue'), MobileHomeLayout, mobileHomeMeta) export default sortRoutesByOrder(homeRoutes) diff --git a/src/store/blog.ts b/src/store/blog.ts index eb1337a..fe7f5dd 100644 --- a/src/store/blog.ts +++ b/src/store/blog.ts @@ -4,7 +4,7 @@ import { IBlogLatest, IBlogNestedComment, IBlogStats, INewBlog, IQueryBlog } from '@/types/blog' import { - addBlogApi, addBlogCommentApi, deleteBlogApi, queryAdminBlogApi, queryAdminBlogByIdApi, queryAdminBlogCategoryApi, + addBlogApi, addBlogCommentApi, deleteBlogApi, queryBlogApi, queryBlogByConditionApi, queryBlogByIdApi, queryBlogCategoryApi, queryBlogCommentApi, queryBlogStatsApi, queryLatestBlogApi, updateBlogApi } from '@/apis/blog.ts' @@ -79,12 +79,6 @@ export const useBlogStore = defineStore('blog', { this.blogList.push(...result.records) this.pageInfo.totalSize = result.total }, - async queryAdminBlog() { - const { currentPage, pageSize } = this.adminPageInfo - const result = await queryAdminBlogApi(currentPage, pageSize) - this.blogList = result.records - this.pageInfo.totalSize = result.total - }, async queryBlogByCondition(query: IQueryBlog) { this.blogList = await queryBlogByConditionApi(query) }, @@ -93,9 +87,6 @@ export const useBlogStore = defineStore('blog', { await this.queryBlogComment(this.currentBlogId) this.blogNestedCommentList = flattenToTwoLevel(this.blogCommentList) }, - async queryAdminBlogById(id: number) { - this.currentBlog = await queryAdminBlogByIdApi(id) - }, async queryBlogComment(blogId: number) { this.blogCommentList = await queryBlogCommentApi(blogId) }, @@ -106,9 +97,6 @@ export const useBlogStore = defineStore('blog', { async queryBlogCategory() { this.blogCategoryList = await queryBlogCategoryApi() }, - async queryAdminBlogCategory() { - this.blogCategoryList = await queryAdminBlogCategoryApi() - }, async queryBlogStats() { this.blogStats = await queryBlogStatsApi() }, @@ -140,16 +128,6 @@ export const useBlogStore = defineStore('blog', { await this.queryBlogStats() await this.queryLatestBlog() }, - getEmptyBlog(): INewBlog { - return { - id: 0, - category: '', - content: '', - isGreat: false, - title: '', - topValue: 0 - } - }, getEmptyBlogComment(): IBlogComment { return { blogId: 0, diff --git a/src/styles/blog/blog.archive.module.scss b/src/styles/blog/blog.archive.module.scss new file mode 100644 index 0000000..cf4726f --- /dev/null +++ b/src/styles/blog/blog.archive.module.scss @@ -0,0 +1,51 @@ +@use "blog.variable.module.scss" as blog; + +.blog-archive { + display: flex; + flex-direction: column; + gap: 3vh; + padding: 10vh 2vw; + + ::v-deep(.el-date-editor) { + align-self: center; + } + + .total { + align-self: center; + font-size: blog.$normal-font-size; + color: blog.$normal-text-color; + } + + .time-line { + height: 100%; + padding: 10px; + overflow: auto; + + .item { + height: 5vh; + + .date { + color: blog.$normal-text-color; + margin-right: 5px; + } + + .title { + font-size: blog.$normal-font-size; + color: blog.$normal-text-color; + cursor: pointer; + text-decoration: underline; + text-underline-offset: 0.2rem; + } + + .title:hover { + color: var(--color-text); + } + } + } +} + +@media screen and (max-width: 768px) { + .blog-archive { + padding: 20px 10px; + } +} diff --git a/src/styles/blog/blog.category.detail.module.scss b/src/styles/blog/blog.category.detail.module.scss new file mode 100644 index 0000000..e7cfb8f --- /dev/null +++ b/src/styles/blog/blog.category.detail.module.scss @@ -0,0 +1,59 @@ +@use "blog.variable.module.scss" as blog; + +.blog-category-detail { + padding: 10vh 2vw; + + display: flex; + flex-direction: column; + gap: 3vh; + + .name { + font-weight: bold; + text-align: center; + font-size: blog.$large-font-size; + } + + .category-detail-list { + height: 100%; + padding: 10px; + display: flex; + flex-direction: column; + gap: 2vh; + + .item { + display: grid; + grid-template-columns: 40px 200px 1fr; + justify-items: center; + align-items: center; + gap: 10px; + cursor: pointer; + color: blog.$normal-text-color; + + padding-bottom: 0.5vh; + border: none; + border-bottom: 1px dashed blog.$gray-text-color; + + .number, .date { + text-align: center; + } + + .title { + justify-self: start; + } + + span { + padding: 0.2vw; + } + } + + .item:hover { + color: var(--color-text); + } + } +} + +@media screen and (max-width: 768px) { + .blog-category-detail { + padding: 20px 10px; + } +} diff --git a/src/styles/blog/blog.category.module.scss b/src/styles/blog/blog.category.module.scss new file mode 100644 index 0000000..710f5ea --- /dev/null +++ b/src/styles/blog/blog.category.module.scss @@ -0,0 +1,69 @@ +@use "blog.variable.module.scss" as blog; + +.blog-category { + display: flex; + flex-direction: column; + gap: 3vh; + padding: 10vh 2vw; + + .total { + text-align: center; + font-size: blog.$normal-font-size; + color: blog.$normal-text-color; + } + + .category-list { + height: 100%; + padding: 10px; + display: flex; + flex-direction: column; + gap: 15px; + overflow: auto; + + .item { + display: flex; + align-items: center; + gap: 5px; + padding-bottom: 5px; + border-bottom: 1px dashed blog.$gray-text-color; + color: blog.$normal-text-color; + + i { + font-size:28px; + color: #0f8bc7; + } + + .content { + display: flex; + flex-direction: column; + gap: 5px; + + .label { + cursor: pointer; + color: blog.$normal-text-color; + font-size: blog.$normal-font-size; + } + + .label:hover { + color: blog.$hover-text-color; + } + + .value { + font-size: blog.$normal-font-size; + color: blog.$gray-text-color; + } + } + } + + .item:hover { + color: var(--color-text); + cursor: pointer; + } + } +} + +@media screen and (max-width: 768px) { + .blog-category { + padding: 20px 10px; + } +} diff --git a/src/styles/blog/blog.detail.module.scss b/src/styles/blog/blog.detail.module.scss new file mode 100644 index 0000000..3b8c66b --- /dev/null +++ b/src/styles/blog/blog.detail.module.scss @@ -0,0 +1,71 @@ +@use "blog.variable.module.scss" as blog; + +.blog-detail { + min-height: 100vh; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 2vh; + padding: 10vh 2vw 3vh 2vw; + + .blog-md { + height: 100%; + width: 100%; + padding: 10px; + overflow: auto; + + .md-editor { + height: 100%; + } + } +} + +.blog-title { + width: 100%; + display: grid; + grid-template-rows: 1fr 1fr; + align-items: center; + gap: 1vh; + + .title { + background-color: blog.$theme-color; + padding: 5px; + border: 2px solid blog.$theme-color; + border-radius: 10px; + text-align: center; + font-size: blog.$blog-title-font-size; + font-family: "华文楷体", serif; + } +} + +.blog-copyright { + width: 100%; + background-color: var(--color-copyright-bg); + + padding: 10px; + border-left: 3px solid #FD2C17; + font-size: blog.$small-font-size; + + display: flex; + flex-direction: column; + gap: 1vh; + + strong { + margin-right: 0.2vw; + } +} + +.blog-ending { + span { + color: #CFCFCF; + } +} + +.blog-detail-mobile { + padding: 10px; + + display: flex; + flex-direction: column; + gap: 2vh; +} diff --git a/src/styles/blog/blog.footbar.module.scss b/src/styles/blog/blog.footbar.module.scss new file mode 100644 index 0000000..856461d --- /dev/null +++ b/src/styles/blog/blog.footbar.module.scss @@ -0,0 +1,15 @@ +@use "blog.variable.module.scss" as blog; + +.blog-site-footer { + padding: 10px 0; + + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 10px; + + span { + font-size: blog.$small-font-size; + } +} diff --git a/src/styles/blog/blog.label.module.scss b/src/styles/blog/blog.label.module.scss new file mode 100644 index 0000000..bdb1270 --- /dev/null +++ b/src/styles/blog/blog.label.module.scss @@ -0,0 +1,57 @@ +@use "blog.variable.module.scss" as blog; + +.label-list { + width: 100%; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 1vh; + + margin-bottom: 1vh; + + .container { + display: flex; + align-items: center; + gap: 5px; + + .item { + font-size: blog.$small-font-size; + color: blog.$gray-text-color; + display: flex; + align-items: center; + gap: 5px; + + span { + font-size: blog.$small-font-size; + font-family: "Times New Roman", serif; + } + } + } + + .top-value { + color: #7d26cd !important; + } + + .great { + color: #FFFFFF !important; + background-color: #7d26cd; + padding: 2px; + } + + .date { + text-decoration: underline dotted; + text-underline-offset: 0.2em; + } + + .category { + text-decoration: underline; + text-underline-offset: 0.2em; + color: blog.$normal-text-color; + cursor: pointer; + } + + .category:hover { + color: blog.$hover-text-color; + } +} diff --git a/src/styles/blog/blog.module.scss b/src/styles/blog/blog.module.scss new file mode 100644 index 0000000..9d30e96 --- /dev/null +++ b/src/styles/blog/blog.module.scss @@ -0,0 +1,60 @@ +@use "blog.variable.module.scss" as blog; + +.blog-container { + // height: 100%; + background-color: var(--color-bg); + padding: 0 5vw; + + display: grid; + grid-template-columns: minmax(13vw, 200px) 1fr; + column-gap: 2vw; + + aside { + display: grid; + grid-template-rows: 40vh 60vh; + row-gap: 2vh; + z-index: 2; + + .blog-summary { + // 滚动到顶部固定 + position: sticky; + top: 0; + } + } + + section { + z-index: 2; + + display: flex; + flex-direction: column; + gap: 2vh; + + .blog-section { + // height: 100%; + min-height: 100vh; + box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), + 0 3px 1px -2px rgba(0,0,0,0.06), + 0 1px 5px 0 rgba(0,0,0,0.12), + 0 -1px 0.5px 0 rgba(0,0,0,0.09); + + .module-title { + background-color: blog.$theme-color; + padding: 5px; + border: 2px solid blog.$theme-color; + border-radius: 10px; + text-align: center; + font-size: blog.$large-font-size; + font-family: "华文楷体", serif; + } + } + } + + .card-item { + background-color: var(--color-card-bg); + border: 1px solid var(--color-border-bg); + border-radius: blog.$border-radius; + // box-shadow: 3px 3px 3px #CFCFCF; + } +} + + diff --git a/src/styles/blog/blog.overview.module.scss b/src/styles/blog/blog.overview.module.scss new file mode 100644 index 0000000..7759d56 --- /dev/null +++ b/src/styles/blog/blog.overview.module.scss @@ -0,0 +1,87 @@ +@use "blog.variable.module.scss" as blog; + +$blog-content-list-item-height: 38vh; +$blog-content-title-font-size: 1.6rem; +$hr-color: #CFCFCF; + +.blog-content-list { + display: flex; + flex-direction: column; + align-items: center; + gap: 5vh; + padding: 10vh 2vw 2vh 2vw; + position: relative; + + .blog-content { + width: 100%; + height: $blog-content-list-item-height; + padding: 4vh 1vw; + + border: 1px solid blog.$border-color; + border-radius: 15px; + box-shadow: 0 0 5px blog.$border-color; + } + + .blog-content-empty { + display: flex; + justify-content: center; + align-items: center; + } + + .blog-content-summary { + display: grid; + grid-template-rows: 1fr 1fr 8vh 1fr 1fr; + justify-items: center; + align-items: center; + gap: 2vh; + + .title { + font-size: $blog-content-title-font-size; + font-family: "华文楷体", serif; + font-weight: bolder; + position: relative; + } + + // 自动展开下划线 + .title:after { + content: ""; + width: 0; + height: 2px; + background: blog.$theme-color; + // 初始位置在底部中间 + position: absolute; + top: 100%; + left: 50%; + // 动画时间 + transition: all .8s; + } + + // 悬浮式展开到100% + .title:hover::after { + width: 100%; + left: 0; + } + + .content { + font-size: blog.$normal-font-size; + line-height: 150%; + } + + hr { + width: 10%; + height: 1px; + background-color: $hr-color; + border: none; + } + + span, p { + font-family: '华为行楷',serif; + } + } +} + +@media screen and (max-width: 768px) { + .blog-content-list { + padding: 10px; + } +} diff --git a/src/styles/blog/blog.sidebar.module.scss b/src/styles/blog/blog.sidebar.module.scss new file mode 100644 index 0000000..657968b --- /dev/null +++ b/src/styles/blog/blog.sidebar.module.scss @@ -0,0 +1,281 @@ +@use "blog.variable.module.scss" as blog; + +$title-font-color: #FFFFFF; +$title-font-size: 1.8rem; +$sub-title-font-size: 1rem; + +.blog-aside { + .top-container { + width: 100%; + display: grid; + grid-template-rows: 2fr 3fr; + + .title-container { + background-color: blog.$theme-color; + border-top-left-radius: 15px; + border-top-right-radius: 15px; + + display: grid; + grid-template-rows: 1fr 1fr; + justify-items: center; + align-items: center; + + padding: 10px; + + .title { + color: $title-font-color; + font-size: $title-font-size; + } + + .sub-title { + font-family: "华文楷体", serif; + font-size: $sub-title-font-size; + text-align: center; + line-height: 150%; + } + } + + .blog-menu-container { + align-self: center; + height: 90%; + display: grid; + grid-template-rows: repeat(4, 1fr); + align-items: center; + + .el-menu-item { + height: 5vh; + gap: 0.5vw; + font-size: blog.$normal-font-size; + + .menu-title { + + } + + .value { + position: absolute; + right: 10%; + line-height: 2vh; + + background-color: blog.$normal-bg-color; + padding: 2px; + border: solid 1px blog.$normal-bg-color; + border-radius: 15px; + + color: var(--color-bg); + font-size: blog.$small-font-size; + font-family: "Times New Roman",serif; + } + } + } + + .el-menu { + border: none; + } + } + + .blog-summary { + display: flex; + flex-direction: column; + align-items: center; + gap: 1vh; + + .blog-summary-tab { + margin-top: 1vh; + height: 5vh; + display: flex; + align-items: center; + gap: 1vw; + + span { + font-size: blog.$small-font-size; + } + + span:hover { + color: #FC6423; + cursor: pointer; + } + + .tab-active { + color: #FC6423; + text-decoration: underline; + text-underline-offset: 0.5em; + } + } + + .blog-brief { + height: 100%; + width: 100%; + display: grid; + grid-template-rows: 150px 50px 50px 1fr; + justify-items: center; + align-items: center; + gap: 1vh; + + .avatar { + padding: 1vh 1vw; + display: grid; + grid-template-rows: 100px 1fr; + justify-items: center; + align-items: center; + gap: 1vh; + + img { + width: 100px; + height: 100px; + border-radius: 50%; + transition: all 2.0s; + cursor: pointer; + } + + img:hover { + transform: rotate(360deg); + } + + span { + font-weight: bold; + } + } + + .info { + display: grid; + grid-template-columns: 1fr 1fr; + justify-items: center; + align-items: center; + gap: 1vw; + + .item { + display: grid; + grid-template-rows: 1fr 1fr; + justify-items: center; + align-items: center; + gap: 5px; + cursor: pointer; + + .name { + color: blog.$gray-text-color; + } + + .name:hover { + color: var(--color-text); + } + } + } + + .social { + width: 100%; + display: grid; + grid-template-columns: 1fr 1fr; + cursor: pointer; + + .item { + width: 100%; + padding: 5px; + display: flex; + justify-content: center; + align-items: center; + gap: 5px; + color: blog.$normal-text-color; + font-size: blog.$small-font-size; + + .name { + font-size: blog.$small-font-size; + } + } + + .item:hover { + background-color: var(--color-card-bg); + color: var(--color-text); + } + } + + .latest-blog { + height: 100%; + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + gap: 1vh; + + .title { + span { + margin-left: 5px; + font-weight: bold; + } + } + + .blog-list { + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + gap: 1.5vh; + cursor: pointer; + + span { + text-align: center; + text-decoration: underline; + text-underline-offset: 0.1em; + font-size: blog.$small-font-size; + color: blog.$normal-text-color; + + width: 80%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + span:hover { + color: var(--color-text); + } + } + } + + .blog-time { + width: 10vw; + height: 100%; + } + + span { + font-size: blog.$normal-font-size; + } + } + + .md-editor-catalog { + height: 100%; + width: 100%; + overflow: auto; + + span { + word-break: break-all; + white-space: normal; + font-size: blog.$smaller-font-size; + color: #666666; + } + } + + .scroll-container { + padding: 2px 0; + width: 100%; + border-color: blog.$border-color; + border-bottom-left-radius: blog.$border-radius; + border-bottom-right-radius: blog.$border-radius; + background-color: var(--color-scroll-card-bg); + + text-align: center; + + .fa-arrow-up { + color: blog.$theme-color; + margin-right: 0.2vw; + } + + span { + font-size: blog.$small-font-size; + color: #A19FA0; + } + } + + .scroll-container:hover { + cursor: pointer; + } + } +} diff --git a/src/styles/blog/blog.tools.module.scss b/src/styles/blog/blog.tools.module.scss new file mode 100644 index 0000000..73e949b --- /dev/null +++ b/src/styles/blog/blog.tools.module.scss @@ -0,0 +1,129 @@ +@use "blog.variable.module.scss" as blog; + +.blog-tools { + position: absolute; + + .book-mark-link { + border-bottom: none; + display: block; + position: fixed; + top: -2px; + left: 20px; + color: #222; + font-size: 26px; + transition: .3s; + z-index: 2; + } + + .github-corner { + border-bottom: none; + display: block; + position: fixed; + top: 0; + right: 0; + color: #222; + font-size: 26px; + transition: .3s; + z-index: 2; + } + + .github-corner:hover .octo-arm { + animation: octocat-wave 560ms ease-in-out + } + + @keyframes octocat-wave { + 0%, 100% { + transform: rotate(0) + } + 20%, 60% { + transform: rotate(-25deg) + } + 40%, 80% { + transform: rotate(10deg) + } + } + + @media (max-width: 500px) { + .github-corner:hover .octo-arm { + animation: none + } + .github-corner .octo-arm { + animation: octocat-wave 560ms ease-in-out + } + } + + #particles { + position: absolute; + z-index: 0; + } + + .heart { + position: fixed; + opacity: 1; + scale: 1; + width: 10px; + height: 10px; + background: red; + transform: rotate(45deg); + z-index: 2; + } + + .heart:after, .heart:before { + content: ""; + width: inherit; + height: inherit; + background: inherit; + border-radius: 50%; + position: absolute; + } + + .heart:after { + top: -5px; + } + + .heart:before { + left: -5px; + } + + @keyframes move { + 100% { + transform: translateY(-20px) rotate(45deg); + opacity: 0; + } + } + + .blog-progress { + /* Positioning */ + position: fixed; + left: 0; + top: 0; + width: 100%; + height: 3px; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; + background-color: transparent; + color: blog.$theme-color; + z-index: 3; + } + + .blog-progress::-webkit-progress-bar { + background-color: transparent; + } + + .blog-progress::-webkit-progress-value { + background-color: blog.$theme-color; + } + + .blog-progress::-moz-progress-bar { + background-color: blog.$theme-color; + } + + .theme-button { + position: fixed; + top: -2px; + left: 50px; + z-index: 10; + } +} diff --git a/src/styles/blog/blog.variable.module.scss b/src/styles/blog/blog.variable.module.scss new file mode 100644 index 0000000..383b7f5 --- /dev/null +++ b/src/styles/blog/blog.variable.module.scss @@ -0,0 +1,23 @@ +$bg-color: #EEEEEE; +$card-bg-color: #FFFFFF; + +// 主题颜色 +$theme-color: #009FA8; +// 正常文本颜色 +$normal-text-color: #555555; +// 悬浮文本颜色 +$hover-text-color: #000000; +// 灰色文本颜色 +$gray-text-color: #9C9C9C; + +$normal-bg-color: #CCCCCC; +$hover-bg-color: #F9F9F9; + +$blog-title-font-size: 1.6rem; +$large-font-size: 1.3rem; +$normal-font-size: 1rem; +$small-font-size: 0.9rem; +$smaller-font-size: 0.8rem; + +$border-color: #EEEEEE; +$border-radius: 15px; diff --git a/src/styles/index.module.scss b/src/styles/index.module.scss index b629794..866b589 100644 --- a/src/styles/index.module.scss +++ b/src/styles/index.module.scss @@ -77,7 +77,7 @@ span, input { @font-face { font-family: 'CustomFont'; - src: url('@/assets/font/custom.ttf') format('truetype'); + src: url('@/assets/font/custom.woff2') format('truetype'); font-weight: normal; font-style: normal; } diff --git a/src/utils/blog/blogUtil.ts b/src/utils/blog/blogUtil.ts new file mode 100644 index 0000000..21b7e1d --- /dev/null +++ b/src/utils/blog/blogUtil.ts @@ -0,0 +1,35 @@ +import { IBasicBlog, IBlog, IBlogComment, IBlogNestedComment } from '@/types/blog.ts' + +export const getBasicBlog = (blog: IBlog): IBasicBlog => { + return { + category: blog.category, + isGreat: blog.isGreat, + readDuration: blog.readDuration, + topValue: blog.topValue, + wordCount: blog.wordCount, + visitCount: blog.visitCount, + createTime: blog.createTime, + updateTime: blog.updateTime + } +} + +// 扁平化数据转两层嵌套结构 +export function flattenToTwoLevel(comments: IBlogComment[]): IBlogNestedComment[] { + // 创建评论映射表,快速查找评论 + const commentMap = new Map() + comments.forEach((comment) => commentMap.set(comment.id, comment)) + + // 结果数组 + const result: IBlogNestedComment[] = [] + + // 遍历所有评论,构建两层结构 + comments.forEach((comment) => { + if (comment.parentId === 0) { + // 顶层评论 + const replies = comments.filter((reply) => reply.parentId === comment.id) + result.push({ comment, replies }) + } + }) + + return result +} diff --git a/src/utils/index.ts b/src/utils/index.ts index 96fb8be..3673f35 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -21,12 +21,12 @@ export const setActiveClass = (parentClassName: string, elementTag: string, /** * 文件服务器地址 */ -export const fileServiceUrl = '/home-service/file' +export const fileServiceUrl = '/home-api/file' /** * 服务器文件路径根地址 */ -export const serviceFileRootPath = '/home-service/' +export const serviceFileRootPath = '/home-api/' /** * 获取assets静态资源 diff --git a/src/views/admin/account/index.vue b/src/views/admin/account/index.vue deleted file mode 100644 index 4428782..0000000 --- a/src/views/admin/account/index.vue +++ /dev/null @@ -1,181 +0,0 @@ - - - diff --git a/src/views/admin/blog/article.vue b/src/views/admin/blog/article.vue deleted file mode 100644 index 2ac2da6..0000000 --- a/src/views/admin/blog/article.vue +++ /dev/null @@ -1,109 +0,0 @@ - - - diff --git a/src/views/admin/blog/category.vue b/src/views/admin/blog/category.vue deleted file mode 100644 index 4e1fa31..0000000 --- a/src/views/admin/blog/category.vue +++ /dev/null @@ -1,82 +0,0 @@ - - - diff --git a/src/views/admin/blog/detail[id].vue b/src/views/admin/blog/detail[id].vue deleted file mode 100644 index c268230..0000000 --- a/src/views/admin/blog/detail[id].vue +++ /dev/null @@ -1,149 +0,0 @@ - - - - - diff --git a/src/views/admin/blog/preview[id].vue b/src/views/admin/blog/preview[id].vue deleted file mode 100644 index 6bba992..0000000 --- a/src/views/admin/blog/preview[id].vue +++ /dev/null @@ -1,34 +0,0 @@ - - - diff --git a/src/views/admin/blog/visit.vue b/src/views/admin/blog/visit.vue deleted file mode 100644 index 49f7e4d..0000000 --- a/src/views/admin/blog/visit.vue +++ /dev/null @@ -1,69 +0,0 @@ - - - diff --git a/src/views/admin/dashboard/index.vue b/src/views/admin/dashboard/index.vue deleted file mode 100644 index 16d0d82..0000000 --- a/src/views/admin/dashboard/index.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - - - diff --git a/src/views/admin/meta.ts b/src/views/admin/meta.ts deleted file mode 100644 index f1aee86..0000000 --- a/src/views/admin/meta.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { IRouteMetaConfig } from 'vue3-common/types' - -export const adminMeta: IRouteMetaConfig = { - '/admin/dashboard': { - title: '首页', - icon: 'admin-dashboard', - order: 1, - redirect: '/admin/dashboard/index' - }, - '/admin/dashboard/index': { - title: '首页', - icon: '' - }, - '/admin/blog': { - title: '博客管理', - icon: 'admin-blog', - order: 2, - redirect: '/admin/blog/article' - }, - '/admin/blog/article': { - title: '文章管理', - icon: '' - }, - '/admin/blog/category': { - title: '类别管理', - icon: '' - }, - '/admin/blog/visit': { - title: '访问记录', - icon: '' - }, - '/admin/blog/detail/:id': { - title: '详细', - icon: '', - hidden: true - }, - '/admin/blog/preview/:id': { - title: '详细', - icon: '', - hidden: true - }, - '/admin/quartz': { - title: '定时任务', - icon: 'admin-quartz', - order: 3, - redirect: '/admin/quartz/index' - }, - '/admin/quartz/index': { - title: '定时任务', - icon: '' - }, - '/admin/account': { - title: '账号管理', - icon: 'admin-account', - order: 4, - redirect: '/admin/account/index' - }, - '/admin/account/index': { - title: '账号管理', - icon: '' - } -} diff --git a/src/views/admin/quartz/index.vue b/src/views/admin/quartz/index.vue deleted file mode 100644 index 0cc028d..0000000 --- a/src/views/admin/quartz/index.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - diff --git a/src/views/mobile-home/anniversary/category.vue b/src/views/anniversary/category.vue similarity index 88% rename from src/views/mobile-home/anniversary/category.vue rename to src/views/anniversary/category.vue index 55e5192..4b9499c 100644 --- a/src/views/mobile-home/anniversary/category.vue +++ b/src/views/anniversary/category.vue @@ -9,10 +9,10 @@ diff --git a/src/views/mobile-home/asset/detail[id].vue b/src/views/asset/detail[id].vue similarity index 97% rename from src/views/mobile-home/asset/detail[id].vue rename to src/views/asset/detail[id].vue index 2db9761..345fb0f 100644 --- a/src/views/mobile-home/asset/detail[id].vue +++ b/src/views/asset/detail[id].vue @@ -53,10 +53,10 @@ diff --git a/src/views/mobile-home/bill/chart.vue b/src/views/bill/chart.vue similarity index 79% rename from src/views/mobile-home/bill/chart.vue rename to src/views/bill/chart.vue index bf71056..20fe6b7 100644 --- a/src/views/mobile-home/bill/chart.vue +++ b/src/views/bill/chart.vue @@ -18,9 +18,9 @@ diff --git a/src/views/mobile-home/bill/data.vue b/src/views/bill/data.vue similarity index 73% rename from src/views/mobile-home/bill/data.vue rename to src/views/bill/data.vue index ab3a170..53caf76 100644 --- a/src/views/mobile-home/bill/data.vue +++ b/src/views/bill/data.vue @@ -10,9 +10,9 @@ diff --git a/src/views/mobile-home/bill/detail[id].vue b/src/views/bill/detail[id].vue similarity index 98% rename from src/views/mobile-home/bill/detail[id].vue rename to src/views/bill/detail[id].vue index 9a8e49d..0406de3 100644 --- a/src/views/mobile-home/bill/detail[id].vue +++ b/src/views/bill/detail[id].vue @@ -106,13 +106,13 @@ diff --git a/src/views/mobile-home/blog/archive.vue b/src/views/blog/archive.vue similarity index 91% rename from src/views/mobile-home/blog/archive.vue rename to src/views/blog/archive.vue index 1dc63a2..6318568 100644 --- a/src/views/mobile-home/blog/archive.vue +++ b/src/views/blog/archive.vue @@ -51,10 +51,10 @@ const changeDateEvent = async (value: Date) => { */ const viewBlogClick = async (index: number) => { const blogId = blogStore.blogList[index].id - await router.push({ name: 'MobileHomeBlogDetailId', params: { id: blogId } }) + await router.push({ name: 'BlogDetailId', params: { id: blogId } }) } diff --git a/src/views/mobile-home/blog/category.vue b/src/views/blog/category.vue similarity index 90% rename from src/views/mobile-home/blog/category.vue rename to src/views/blog/category.vue index bc41274..b95a43f 100644 --- a/src/views/mobile-home/blog/category.vue +++ b/src/views/blog/category.vue @@ -35,10 +35,10 @@ onMounted(() => { */ const viewBlogCategoryClick = async (name: string) => { appStore.isShowMobileBack = true - await router.push({ name: 'MobileHomeBlogCategoryName', params: { name } }) + await router.push({ name: 'BlogCategoryName', params: { name } }) } diff --git a/src/views/mobile-home/blog/category[name].vue b/src/views/blog/category[name].vue similarity index 95% rename from src/views/mobile-home/blog/category[name].vue rename to src/views/blog/category[name].vue index e0e5b47..2918d49 100644 --- a/src/views/mobile-home/blog/category[name].vue +++ b/src/views/blog/category[name].vue @@ -37,5 +37,5 @@ const viewBlogClick = async (index: number) => { diff --git a/src/views/mobile-home/blog/detail[id].vue b/src/views/blog/detail[id].vue similarity index 97% rename from src/views/mobile-home/blog/detail[id].vue rename to src/views/blog/detail[id].vue index b915d16..1b4c793 100644 --- a/src/views/mobile-home/blog/detail[id].vue +++ b/src/views/blog/detail[id].vue @@ -51,5 +51,5 @@ onMounted(async () => { diff --git a/src/views/mobile-home/blog/overview.vue b/src/views/blog/overview.vue similarity index 91% rename from src/views/mobile-home/blog/overview.vue rename to src/views/blog/overview.vue index 8c91cc3..97ecd9c 100644 --- a/src/views/mobile-home/blog/overview.vue +++ b/src/views/blog/overview.vue @@ -24,7 +24,7 @@ diff --git a/src/views/mobile-home/food/detail[id].vue b/src/views/food/detail[id].vue similarity index 66% rename from src/views/mobile-home/food/detail[id].vue rename to src/views/food/detail[id].vue index cd890eb..d165906 100644 --- a/src/views/mobile-home/food/detail[id].vue +++ b/src/views/food/detail[id].vue @@ -24,11 +24,11 @@ import { useFoodStore } from '@/store/food.ts' import { useAppStore } from '@/store/app.ts' import { useRoute } from 'vue-router' -import FoodBasicData from '@/components/Home/Food/Data/FoodBasicData.vue' -import FoodMaterialData from '@/components/Home/Food/Data/FoodMaterialData.vue' -import FoodStepData from '@/components/Home/Food/Data/FoodStepData.vue' -import FoodOthersData from '@/components/Home/Food/Data/FoodOthersData.vue' -import FoodRecordData from '@/components/Home/Food/Data/FoodRecordData.vue' +import FoodBasicData from '@/components/Food/Data/FoodBasicData.vue' +import FoodMaterialData from '@/components/Food/Data/FoodMaterialData.vue' +import FoodStepData from '@/components/Food/Data/FoodStepData.vue' +import FoodOthersData from '@/components/Food/Data/FoodOthersData.vue' +import FoodRecordData from '@/components/Food/Data/FoodRecordData.vue' import { onMounted } from 'vue' const foodStore = useFoodStore() @@ -42,5 +42,5 @@ onMounted(() => { diff --git a/src/views/mobile-home/food/recipe.vue b/src/views/food/recipe.vue similarity index 86% rename from src/views/mobile-home/food/recipe.vue rename to src/views/food/recipe.vue index 9ce5ca5..a80022c 100644 --- a/src/views/mobile-home/food/recipe.vue +++ b/src/views/food/recipe.vue @@ -16,9 +16,9 @@ diff --git a/src/views/mobile-home/food/record.vue b/src/views/food/record.vue similarity index 67% rename from src/views/mobile-home/food/record.vue rename to src/views/food/record.vue index 4706b17..8293f4d 100644 --- a/src/views/mobile-home/food/record.vue +++ b/src/views/food/record.vue @@ -9,9 +9,9 @@ diff --git a/src/views/mobile-home/food/recordForm.vue b/src/views/food/recordForm.vue similarity index 98% rename from src/views/mobile-home/food/recordForm.vue rename to src/views/food/recordForm.vue index e994436..7ededec 100644 --- a/src/views/mobile-home/food/recordForm.vue +++ b/src/views/food/recordForm.vue @@ -55,7 +55,7 @@ import { UploadImage } from 'vue3-common' import { useFoodStore } from '@/store/food.ts' import { ref, reactive } from 'vue' import { FormRules } from 'element-plus' -import { foodRecordRules } from '@/utils/element/elRules' +import { foodRecordRules } from '@/utils/element/elRules.ts' import { fileServiceUrl, serviceFileRootPath } from '@/utils' import { commonElMessageBox } from 'vue3-common/utils/elUtil' diff --git a/src/views/home/calendar/date.vue b/src/views/home/calendar/date.vue deleted file mode 100644 index 6ba5833..0000000 --- a/src/views/home/calendar/date.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - diff --git a/src/views/home/calendar/plan.vue b/src/views/home/calendar/plan.vue deleted file mode 100644 index 0474a1b..0000000 --- a/src/views/home/calendar/plan.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - - - diff --git a/src/views/mobile/index.vue b/src/views/home/index.vue similarity index 83% rename from src/views/mobile/index.vue rename to src/views/home/index.vue index fd96557..54a9a13 100644 --- a/src/views/mobile/index.vue +++ b/src/views/home/index.vue @@ -22,59 +22,59 @@
+ router="/blog/overview"/> + router="/bill/data"/> + router="/food/recipe"/> + router="/travel/spot"/> + router="/product/list"/> + router="/plan/calendar"/> + router="/anniversary/list"/> + router="/period/calendar"/> + router="/journal/record"/> + router="/kpi/record"/> + router="/asset/list"/> + router="/ledger/list"/> + router="/password/list"/> + router="/server/monitor"/>
@@ -91,8 +91,8 @@ - - diff --git a/src/views/home/life/food[id].vue b/src/views/home/life/food[id].vue deleted file mode 100644 index 80be1d8..0000000 --- a/src/views/home/life/food[id].vue +++ /dev/null @@ -1,50 +0,0 @@ - - - - - diff --git a/src/views/home/life/travel.vue b/src/views/home/life/travel.vue deleted file mode 100644 index bb16584..0000000 --- a/src/views/home/life/travel.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - - - diff --git a/src/views/home/life/travel[id].vue b/src/views/home/life/travel[id].vue deleted file mode 100644 index 2043430..0000000 --- a/src/views/home/life/travel[id].vue +++ /dev/null @@ -1,44 +0,0 @@ - - - - - diff --git a/src/views/home/meta.ts b/src/views/home/meta.ts deleted file mode 100644 index 44d60d1..0000000 --- a/src/views/home/meta.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { IRouteMetaConfig } from 'vue3-common/types' - -export const homeMeta: IRouteMetaConfig = { - '/home/property': { - title: '家庭资产', - icon: 'home-property', - order: 1, - redirect: '/home/property/bill' - }, - '/home/property/bill': { - title: '收支记录', - icon: '' - }, - '/home/life': { - title: '生活记录', - icon: 'home-life', - order: 2, - redirect: '/home/life/food' - }, - '/home/life/food': { - title: '美食记录', - icon: '' - }, - '/home/life/food/:id': { - title: '美食展示', - icon: '', - hidden: true - }, - '/home/life/travel': { - title: '旅行记录', - icon: '' - }, - '/home/life/travel/:id': { - title: '旅行展示', - icon: '', - hidden: true - }, - '/home/calendar': { - title: '时程印记', - icon: 'home-calendar', - order: 3, - redirect: '/home/calendar/plan' - }, - '/home/calendar/plan': { - title: '日程计划', - icon: '' - }, - '/home/calendar/date': { - title: '纪念日', - icon: '' - }, - '/home/others': { - title: '友情链接', - icon: 'home-link', - order: 4, - redirect: '/home/others/admin' - }, - '/home/others/blog': { - title: '个人博客', - icon: '', - redirect: '/blog' - } -} diff --git a/src/views/home/others/blog.vue b/src/views/home/others/blog.vue deleted file mode 100644 index eeb5956..0000000 --- a/src/views/home/others/blog.vue +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/src/views/home/property/bill.vue b/src/views/home/property/bill.vue deleted file mode 100644 index 9fad8fa..0000000 --- a/src/views/home/property/bill.vue +++ /dev/null @@ -1,56 +0,0 @@ - - - - - diff --git a/src/views/mobile-home/journal/detail[id].vue b/src/views/journal/detail[id].vue similarity index 98% rename from src/views/mobile-home/journal/detail[id].vue rename to src/views/journal/detail[id].vue index 1fa66fb..596cbbd 100644 --- a/src/views/mobile-home/journal/detail[id].vue +++ b/src/views/journal/detail[id].vue @@ -99,7 +99,7 @@ import { Location } from '@element-plus/icons-vue' import { useJournalStore } from '@/store/journal.ts' import { useAppStore } from '@/store/app.ts' import { FormRules } from 'element-plus' -import { journalRules } from '@/utils/element/elRules' +import { journalRules } from '@/utils/element/elRules.ts' import { onMounted, reactive, ref } from 'vue' import { commonElMessageBox } from 'vue3-common/utils/elUtil' import { fileServiceUrl, serviceFileRootPath } from '@/utils' diff --git a/src/views/mobile-home/journal/record.vue b/src/views/journal/record.vue similarity index 81% rename from src/views/mobile-home/journal/record.vue rename to src/views/journal/record.vue index d766611..c3de534 100644 --- a/src/views/mobile-home/journal/record.vue +++ b/src/views/journal/record.vue @@ -7,8 +7,8 @@ diff --git a/src/views/mobile-home/journal/timeline.vue b/src/views/journal/timeline.vue similarity index 95% rename from src/views/mobile-home/journal/timeline.vue rename to src/views/journal/timeline.vue index fcdbf0f..5a11b22 100644 --- a/src/views/mobile-home/journal/timeline.vue +++ b/src/views/journal/timeline.vue @@ -19,7 +19,7 @@ diff --git a/src/views/mobile-home/ledger/detail[id].vue b/src/views/ledger/detail[id].vue similarity index 97% rename from src/views/mobile-home/ledger/detail[id].vue rename to src/views/ledger/detail[id].vue index 30017d9..376c302 100644 --- a/src/views/mobile-home/ledger/detail[id].vue +++ b/src/views/ledger/detail[id].vue @@ -74,10 +74,10 @@ diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 8e83522..c56bdc1 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -18,9 +18,9 @@ - - diff --git a/src/views/mobile-home/password/detail[id].vue b/src/views/password/detail[id].vue similarity index 98% rename from src/views/mobile-home/password/detail[id].vue rename to src/views/password/detail[id].vue index f8c37af..0c108a5 100644 --- a/src/views/mobile-home/password/detail[id].vue +++ b/src/views/password/detail[id].vue @@ -72,7 +72,7 @@ import { usePasswordStore } from '@/store/password.ts' import { useAppStore } from '@/store/app.ts' import { FormRules } from 'element-plus' -import { passwordRules } from '@/utils/element/elRules' +import { passwordRules } from '@/utils/element/elRules.ts' import { onMounted, reactive, ref } from 'vue' const formRef = ref() diff --git a/src/views/mobile-home/password/list.vue b/src/views/password/list.vue similarity index 79% rename from src/views/mobile-home/password/list.vue rename to src/views/password/list.vue index 43a5b86..d0ce7e3 100644 --- a/src/views/mobile-home/password/list.vue +++ b/src/views/password/list.vue @@ -14,9 +14,9 @@ diff --git a/src/views/mobile-home/period/calendar.vue b/src/views/period/calendar.vue similarity index 95% rename from src/views/mobile-home/period/calendar.vue rename to src/views/period/calendar.vue index 25d9e0a..3e25c1b 100644 --- a/src/views/mobile-home/period/calendar.vue +++ b/src/views/period/calendar.vue @@ -11,14 +11,14 @@ diff --git a/src/views/mobile-home/plan/detail[id].vue b/src/views/plan/detail[id].vue similarity index 98% rename from src/views/mobile-home/plan/detail[id].vue rename to src/views/plan/detail[id].vue index c976f38..4256077 100644 --- a/src/views/mobile-home/plan/detail[id].vue +++ b/src/views/plan/detail[id].vue @@ -93,9 +93,9 @@ diff --git a/src/views/mobile-home/product/detail[id].vue b/src/views/product/detail[id].vue similarity index 97% rename from src/views/mobile-home/product/detail[id].vue rename to src/views/product/detail[id].vue index 9cf2fd5..b288e7b 100644 --- a/src/views/mobile-home/product/detail[id].vue +++ b/src/views/product/detail[id].vue @@ -78,10 +78,10 @@ diff --git a/src/views/profile/index.vue b/src/views/profile/index.vue index 025ea20..f0052da 100644 --- a/src/views/profile/index.vue +++ b/src/views/profile/index.vue @@ -1,154 +1,226 @@ diff --git a/src/views/mobile-home/profile/info.vue b/src/views/profile/info.vue similarity index 100% rename from src/views/mobile-home/profile/info.vue rename to src/views/profile/info.vue diff --git a/src/views/mobile-home/profile/password.vue b/src/views/profile/password.vue similarity index 100% rename from src/views/mobile-home/profile/password.vue rename to src/views/profile/password.vue diff --git a/src/views/mobile-home/server/file.vue b/src/views/server/file.vue similarity index 97% rename from src/views/mobile-home/server/file.vue rename to src/views/server/file.vue index 7cb3ec5..17c077c 100644 --- a/src/views/mobile-home/server/file.vue +++ b/src/views/server/file.vue @@ -35,10 +35,10 @@ diff --git a/src/views/mobile-home/travel/record.vue b/src/views/travel/record.vue similarity index 67% rename from src/views/mobile-home/travel/record.vue rename to src/views/travel/record.vue index 247581c..6a441fa 100644 --- a/src/views/mobile-home/travel/record.vue +++ b/src/views/travel/record.vue @@ -9,9 +9,9 @@ diff --git a/src/views/mobile-home/travel/recordForm.vue b/src/views/travel/recordForm.vue similarity index 97% rename from src/views/mobile-home/travel/recordForm.vue rename to src/views/travel/recordForm.vue index beac203..2ba0392 100644 --- a/src/views/mobile-home/travel/recordForm.vue +++ b/src/views/travel/recordForm.vue @@ -63,10 +63,10 @@ diff --git a/src/views/mobile-home/travel/spotForm.vue b/src/views/travel/spotForm.vue similarity index 98% rename from src/views/mobile-home/travel/spotForm.vue rename to src/views/travel/spotForm.vue index 9744c35..f094fef 100644 --- a/src/views/mobile-home/travel/spotForm.vue +++ b/src/views/travel/spotForm.vue @@ -79,7 +79,7 @@