From 7efa04759c462647a6c89f47069817c14d9514f6 Mon Sep 17 00:00:00 2001 From: Bunny <1319900154@qq.com> Date: Sun, 29 Sep 2024 23:47:08 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=A7=A9=20=E5=A4=9A=E8=AF=AD?= =?UTF-8?q?=E8=A8=80=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mock/i18n.ts | 26 +-- src/api/v1/i18n.ts | 10 +- src/enums/index.ts | 19 ++- src/store/i18n/i18n.ts | 29 ++-- src/store/i18n/i18nType.ts | 12 +- src/views/i18n/i18n-setting/i18n-dialog.vue | 39 +++++ src/views/i18n/i18n-setting/index.vue | 73 +++++++-- src/views/i18n/i18n-setting/language-add.vue | 67 -------- .../i18n/i18n-setting/language-dialog.vue | 64 -------- .../i18n/i18n-setting/language-update.vue | 37 ----- src/views/i18n/i18n-setting/utils/columns.tsx | 21 +-- src/views/i18n/i18n-setting/utils/hook.ts | 150 ++++++++---------- src/views/i18n/i18n-setting/utils/types.ts | 11 ++ .../i18n/i18n-type-setting/add-i18n-type.vue | 81 ---------- .../i18n-type-setting/i18n-type-dialog.vue | 37 +++++ src/views/i18n/i18n-type-setting/index.vue | 92 +++++------ .../i18n/i18n-type-setting/utils/columns.tsx | 85 ++-------- .../i18n/i18n-type-setting/utils/hook.tsx | 97 +++++++++++ .../i18n/i18n-type-setting/utils/rules.ts | 12 -- .../i18n/i18n-type-setting/utils/types.ts | 11 ++ src/views/menu/index.vue | 5 +- src/views/menu/utils/hook.tsx | 35 ++-- 22 files changed, 458 insertions(+), 555 deletions(-) create mode 100644 src/views/i18n/i18n-setting/i18n-dialog.vue delete mode 100644 src/views/i18n/i18n-setting/language-add.vue delete mode 100644 src/views/i18n/i18n-setting/language-dialog.vue delete mode 100644 src/views/i18n/i18n-setting/language-update.vue create mode 100644 src/views/i18n/i18n-setting/utils/types.ts delete mode 100644 src/views/i18n/i18n-type-setting/add-i18n-type.vue create mode 100644 src/views/i18n/i18n-type-setting/i18n-type-dialog.vue create mode 100644 src/views/i18n/i18n-type-setting/utils/hook.tsx delete mode 100644 src/views/i18n/i18n-type-setting/utils/rules.ts create mode 100644 src/views/i18n/i18n-type-setting/utils/types.ts diff --git a/mock/i18n.ts b/mock/i18n.ts index 52525c7..317f818 100644 --- a/mock/i18n.ts +++ b/mock/i18n.ts @@ -1,16 +1,16 @@ -import { defineFakeRoute } from "vite-plugin-fake-server/client"; -import en from "./i18n/en"; -import zh from "./i18n/zh"; +import { defineFakeRoute } from 'vite-plugin-fake-server/client'; +import en from './i18n/en'; +import zh from './i18n/zh'; export default defineFakeRoute([ - { - url: "/mock/getI18n", - method: "get", - response: () => { - return { - code: 200, - data: { zh, en, local: "zh" } - }; - } - } + { + url: '/mock/getI18n', + method: 'get', + response: () => { + return { + code: 200, + data: { zh, en, local: 'zh' }, + }; + }, + }, ]); diff --git a/src/api/v1/i18n.ts b/src/api/v1/i18n.ts index ec5d74d..d6295a0 100644 --- a/src/api/v1/i18n.ts +++ b/src/api/v1/i18n.ts @@ -1,5 +1,5 @@ -import { http } from '@/api/service/mockRequest'; -import type { BaseResult } from '@/api/service/types'; +import { http } from '@/api/service/request'; +import type { BaseResult, ResultTable } from '@/api/service/types'; /** * * 获取多语言内容 @@ -12,7 +12,7 @@ export const fetchGetI18n = () => { * 多语言管理---获取多语言列表 */ export const fetchGetI18nList = (data: any) => { - return http.request>('get', `i18n/getI18nList/${data.page}/${data.pageSize}`, { data }); + return http.request>('get', `i18n/getI18nList/${data.currentPage}/${data.pageSize}`, { data }); }; /** @@ -40,7 +40,7 @@ export const fetchDeleteI18n = (data: any) => { * 多语言类型管理---获取多语言类型列表 */ export const fetchGetI18nTypeList = () => { - return http.request>('get', 'i18nType/getI18nTypeList'); + return http.request>('get', 'i18nType/getI18nTypeList'); }; /** @@ -61,5 +61,5 @@ export const fetchUpdateI18nType = (data: any) => { * 多语言类型管理---删除多语言类型 */ export const fetchDeleteI18nType = (data: any) => { - return http.request>('put', 'i18nType/deleteI18nType', { data }); + return http.request>('delete', 'i18nType/deleteI18nType', { data }); }; diff --git a/src/enums/index.ts b/src/enums/index.ts index 95a66ac..28387f1 100644 --- a/src/enums/index.ts +++ b/src/enums/index.ts @@ -1,12 +1,12 @@ import type { OptionsType } from '@/components/ReSegmented'; -const menuTypeOptions: Array = [ +export const menuTypeOptions: Array = [ { label: '菜单', value: 0 }, { label: 'iframe', value: 1 }, { label: '外链', value: 2 }, ]; -const showLinkOptions: Array = [ +export const showLinkOptions: Array = [ { label: '显示', tip: '会在菜单中显示', value: true }, { label: '隐藏', @@ -15,7 +15,7 @@ const showLinkOptions: Array = [ }, ]; -const fixedTagOptions: Array = [ +export const fixedTagOptions: Array = [ { label: '固定', tip: '当前菜单名称固定显示在标签页且不可关闭', @@ -28,7 +28,7 @@ const fixedTagOptions: Array = [ }, ]; -const keepAliveOptions: Array = [ +export const keepAliveOptions: Array = [ { label: '缓存', tip: '会保存该页面的整体状态,刷新后会清空状态', value: true }, { label: '不缓存', @@ -37,7 +37,7 @@ const keepAliveOptions: Array = [ }, ]; -const hiddenTagOptions: Array = [ +export const hiddenTagOptions: Array = [ { label: '允许', tip: '当前菜单名称或自定义信息允许添加到标签页', value: false }, { label: '禁止', @@ -46,14 +46,17 @@ const hiddenTagOptions: Array = [ }, ]; -const showParentOptions: Array = [ +export const showParentOptions: Array = [ { label: '显示', tip: '会显示父级菜单', value: true }, { label: '隐藏', tip: '不会显示父级菜单', value: false }, ]; -const frameLoadingOptions: Array = [ +export const frameLoadingOptions: Array = [ { label: '开启', tip: '有首次加载动画', value: true }, { label: '关闭', tip: '无首次加载动画', value: false }, ]; -export { menuTypeOptions, showLinkOptions, fixedTagOptions, keepAliveOptions, hiddenTagOptions, showParentOptions, frameLoadingOptions }; +export const frameSureOptions: Array = [ + { label: '是', tip: '有首次加载动画', value: true }, + { label: '否', tip: '无首次加载动画', value: false }, +]; diff --git a/src/store/i18n/i18n.ts b/src/store/i18n/i18n.ts index d0e6810..306a275 100644 --- a/src/store/i18n/i18n.ts +++ b/src/store/i18n/i18n.ts @@ -1,7 +1,7 @@ import { defineStore } from 'pinia'; import { fetchAddI18n, fetchDeleteI18n, fetchGetI18n, fetchGetI18nList, fetchUpdateI18n } from '@/api/v1/i18n'; import { pageSizes } from '@/enums/baseConstant'; -import { storeMessage } from '@/utils/message'; +import { message, storeMessage } from '@/utils/message'; export const userI18nStore = defineStore('i18nStore', { persist: true, @@ -10,9 +10,9 @@ export const userI18nStore = defineStore('i18nStore', { // ? 多语言内容 i18n: {}, // 多语言列表 - i18nDataList: [], - // 多语言类型 - i18nTypeList: [], + datalist: [], + // 查询表单 + form: { keyName: undefined, translation: undefined }, isAddShown: false, // ? 分页查询结果 pagination: { @@ -20,13 +20,10 @@ export const userI18nStore = defineStore('i18nStore', { pageSize: 150, total: 100, pageSizes, + background: true, }, // 加载 loading: false, - // 添加弹窗 - addDialogVisible: false, - // 更新弹窗 - updateDialogVisible: false, }; }, getters: {}, @@ -51,9 +48,21 @@ export const userI18nStore = defineStore('i18nStore', { /** * * 获取多语言列表 */ - async getI18nMangeList(data: any) { + async getI18nMangeList() { + const data = { ...this.pagination, ...this.form }; const result = await fetchGetI18nList(data); - return storeMessage(result); + + // 如果成功赋值内容 + if (result.code === 200) { + this.datalist = result.data.list; + this.pagination.currentPage = result.data.pageNo; + this.pagination.pageSize = result.data.pageSize; + this.pagination.total = result.data.total; + return true; + } + + message(result.message, { type: 'error' }); + return false; }, /** diff --git a/src/store/i18n/i18nType.ts b/src/store/i18n/i18nType.ts index d5a0114..af58ed5 100644 --- a/src/store/i18n/i18nType.ts +++ b/src/store/i18n/i18nType.ts @@ -9,6 +9,8 @@ export const userI18nTypeStore = defineStore('i18nTypeStore', { return { // 多语言列表 datalist: [], + // 查询表单 + form: { typeName: undefined, summary: undefined }, isAddShown: false, // ? 分页查询结果 pagination: { @@ -19,10 +21,6 @@ export const userI18nTypeStore = defineStore('i18nTypeStore', { }, // 加载 loading: false, - // 添加弹窗 - addDialogVisible: false, - // 更新弹窗 - updateDialogVisible: false, }; }, getters: {}, @@ -32,7 +30,11 @@ export const userI18nTypeStore = defineStore('i18nTypeStore', { */ async getI18nTypeList() { const result = await fetchGetI18nTypeList(); - return storeMessage(result); + if (result.code === 200) { + this.datalist = result.data; + return true; + } + return false; }, /** diff --git a/src/views/i18n/i18n-setting/i18n-dialog.vue b/src/views/i18n/i18n-setting/i18n-dialog.vue new file mode 100644 index 0000000..5bc22d2 --- /dev/null +++ b/src/views/i18n/i18n-setting/i18n-dialog.vue @@ -0,0 +1,39 @@ + + + diff --git a/src/views/i18n/i18n-setting/index.vue b/src/views/i18n/i18n-setting/index.vue index f51946f..06d3085 100644 --- a/src/views/i18n/i18n-setting/index.vue +++ b/src/views/i18n/i18n-setting/index.vue @@ -1,54 +1,103 @@