From 8940b3972a68362b8d009593b11541e637ece9e2 Mon Sep 17 00:00:00 2001 From: Cxx0822 <1556464090@qq.com> Date: Thu, 12 Feb 2026 17:27:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0vant=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 +- pnpm-lock.yaml | 50 +++++++++-- src/apis/food.ts | 12 ++- src/components/Common/DraggableButton.vue | 101 ---------------------- src/components/Common/MobileSetting.vue | 14 +++ src/components/Food/FoodCard.vue | 73 ++++++++-------- src/components/Food/FoodQuery.vue | 70 ++++----------- src/components/Password/PasswordCard.vue | 35 ++++---- src/layout/TabBar.vue | 11 --- src/layout/TitleBar.vue | 6 +- src/layout/index.vue | 14 +-- src/main.ts | 4 + src/store/app.ts | 13 ++- src/store/food.ts | 3 +- src/utils/element/elColor.ts | 47 ++++++++++ src/views/anniversary/list.vue | 3 +- src/views/asset/list.vue | 3 +- src/views/bill/data.vue | 6 +- src/views/food/recipe.vue | 3 +- src/views/food/record.vue | 3 +- src/views/journal/record.vue | 3 +- src/views/kpi/record.vue | 3 +- src/views/ledger/list.vue | 3 +- src/views/password/detail[id].vue | 14 ++- src/views/password/list.vue | 3 +- src/views/product/list.vue | 3 +- src/views/travel/record.vue | 3 +- src/views/travel/spot.vue | 3 +- vite.config.ts | 1 - 29 files changed, 241 insertions(+), 269 deletions(-) delete mode 100644 src/components/Common/DraggableButton.vue create mode 100644 src/utils/element/elColor.ts diff --git a/package.json b/package.json index a3126d8..e696cc0 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "dayjs": "^1.11.13", "echarts-liquidfill": "^3.1.0", "element-china-area-data": "^6.1.0", - "element-plus": "~2.9.7", + "element-plus": "^2.9.7", "file-icons-vue": "^1.3.4", "font-awesome": "^4.7.0", "lunar-javascript": "^1.7.2", @@ -31,6 +31,7 @@ "pinia": "^2.3.1", "ua-parser-js": "^2.0.3", "v-calendar": "^3.1.2", + "vant": "^4.9.22", "vue": "3.5.12", "vue3-common": "git+https://gitee.com/Cxx0822/vue3-common", "vue3-emoji-picker": "^1.1.8", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1f2a568..c527f76 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -54,7 +54,7 @@ importers: specifier: ^6.1.0 version: 6.1.0 element-plus: - specifier: ~2.9.7 + specifier: ^2.9.7 version: 2.9.7(vue@3.5.12(typescript@5.8.3)) file-icons-vue: specifier: ^1.3.4 @@ -77,6 +77,9 @@ importers: v-calendar: specifier: ^3.1.2 version: 3.1.2(@popperjs/core@2.11.8)(vue@3.5.12(typescript@5.8.3)) + vant: + specifier: ^4.9.22 + version: 4.9.22(vue@3.5.12(typescript@5.8.3)) vue: specifier: 3.5.12 version: 3.5.12(typescript@5.8.3) @@ -975,6 +978,14 @@ packages: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@vant/popperjs@1.3.0': + resolution: {integrity: sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw==} + + '@vant/use@1.6.0': + resolution: {integrity: sha512-PHHxeAASgiOpSmMjceweIrv2AxDZIkWXyaczksMoWvKV2YAYEhoizRuk/xFnKF+emUIi46TsQ+rvlm/t2BBCfA==} + peerDependencies: + vue: ^3.0.0 + '@vavt/util@2.1.0': resolution: {integrity: sha512-YIfAvArSFVXmWvoF+DEGD0FhkhVNcCtVWWkfYtj76eSrwHh/wuEEFhiEubg1XLNM3tChO8FH8xJCT/hnizjgFQ==} @@ -1043,6 +1054,9 @@ packages: '@vue/shared@3.5.13': resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} + '@vue/shared@3.5.28': + resolution: {integrity: sha512-cfWa1fCGBxrvaHRhvV3Is0MgmrbSCxYTXCSCau2I0a1Xw1N1pHAvkWCiXPRAqjvToILvguNyEwjevUqAuBQWvQ==} + '@vueuse/core@13.1.0': resolution: {integrity: sha512-PAauvdRXZvTWXtGLg8cPUFjiZEddTqmogdwYpnn60t08AA5a8Q4hZokBnpTOnVNqySlFlTcRYIC8OqreV4hv3Q==} peerDependencies: @@ -1075,8 +1089,8 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - acorn@8.14.1: - resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} engines: {node: '>=0.4.0'} hasBin: true @@ -3199,6 +3213,11 @@ packages: v8-compile-cache@2.4.0: resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} + vant@4.9.22: + resolution: {integrity: sha512-P2PDSj3oB6l3W1OpVlQpapeLmI6bXMSvPqPdrw5rutslC0Y6tSkrVB/iSD57weD7K92GsjGkvgDK0eZlOsXGqw==} + peerDependencies: + vue: ^3.0.0 + vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} @@ -4368,6 +4387,12 @@ snapshots: '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 + '@vant/popperjs@1.3.0': {} + + '@vant/use@1.6.0(vue@3.5.12(typescript@5.8.3))': + dependencies: + vue: 3.5.12(typescript@5.8.3) + '@vavt/util@2.1.0': {} '@vitejs/plugin-vue@5.2.1(vite@5.2.0(@types/node@18.19.86)(sass@1.86.3))(vue@3.5.12(typescript@5.8.3))': @@ -4473,6 +4498,8 @@ snapshots: '@vue/shared@3.5.13': {} + '@vue/shared@3.5.28': {} + '@vueuse/core@13.1.0(vue@3.5.12(typescript@5.8.3))': dependencies: '@types/web-bluetooth': 0.0.21 @@ -4509,13 +4536,13 @@ snapshots: dependencies: acorn: 7.4.1 - acorn-jsx@5.3.2(acorn@8.14.1): + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: - acorn: 8.14.1 + acorn: 8.15.0 acorn@7.4.1: {} - acorn@8.14.1: {} + acorn@8.15.0: {} ajv@6.12.6: dependencies: @@ -5378,8 +5405,8 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.14.1 - acorn-jsx: 5.3.2(acorn@8.14.1) + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} @@ -6940,6 +6967,13 @@ snapshots: v8-compile-cache@2.4.0: {} + vant@4.9.22(vue@3.5.12(typescript@5.8.3)): + dependencies: + '@vant/popperjs': 1.3.0 + '@vant/use': 1.6.0(vue@3.5.12(typescript@5.8.3)) + '@vue/shared': 3.5.28 + vue: 3.5.12(typescript@5.8.3) + vary@1.1.2: {} vfonts@0.0.3: {} diff --git a/src/apis/food.ts b/src/apis/food.ts index b3cf37f..8c02f48 100644 --- a/src/apis/food.ts +++ b/src/apis/food.ts @@ -1,5 +1,6 @@ import { cloudService } from './index' import { IFoodQuery, IFoodRecipe, IFoodRecord, IFoodStats } from '@/types/food' +import { IPageRecord } from '@/types' export const addFoodRecipeApi = (foodRecipe: IFoodRecipe): Promise => cloudService({ @@ -21,20 +22,27 @@ export const deleteFoodRecipeApi = (id: number): Promise => method: 'DELETE' }) -export const queryFoodRecipeByIdApi = (id: number): Promise => +export const queryFoodRecipeByIdApi = (id: number): Promise => cloudService({ url: `/home-api/food/recipe/${id}`, method: 'get' }) export const queryFoodRecipeApi = (currentPage: number, pageSize: number, - query: IFoodQuery): Promise => + query: IFoodQuery): Promise> => cloudService({ url: '/home-api/food/recipe/page', method: 'get', params: { currentPage, pageSize, ...query } }) +export const searchFoodRecipeApi = (name: string): Promise => + cloudService({ + url: '/home-api/food/recipe/search', + method: 'get', + params: { name } + }) + export const queryFoodNameListApi = (): Promise => cloudService({ url: '/home-api/food/recipe/name', diff --git a/src/components/Common/DraggableButton.vue b/src/components/Common/DraggableButton.vue deleted file mode 100644 index 4929006..0000000 --- a/src/components/Common/DraggableButton.vue +++ /dev/null @@ -1,101 +0,0 @@ - - - diff --git a/src/components/Common/MobileSetting.vue b/src/components/Common/MobileSetting.vue index 7c84044..2181788 100644 --- a/src/components/Common/MobileSetting.vue +++ b/src/components/Common/MobileSetting.vue @@ -12,13 +12,22 @@ {{ appStore.isDark ? '🌙' : '☀️' }} + +
+ 我的 + +