diff --git a/src/api/service/request.ts b/src/api/service/request.ts index 0a5ae8c..0e021c2 100644 --- a/src/api/service/request.ts +++ b/src/api/service/request.ts @@ -130,7 +130,7 @@ class PureHttp { message(data.message, { type: 'warning' }); router.push('/').then(); removeToken(); - } else if (data.code >= 209 && data.code < 300) { + } else if (data.code >= 201 && data.code < 300) { message(data.message, { type: 'warning' }); } else if (data.code > 300) { message(data.message, { type: 'error' }); diff --git a/src/api/v1/i18n.ts b/src/api/v1/i18n.ts index bc461a7..5c01685 100644 --- a/src/api/v1/i18n.ts +++ b/src/api/v1/i18n.ts @@ -33,7 +33,7 @@ export const fetchUpdateI18n = (data: any) => { * 多语言管理---删除多语言 */ export const fetchDeleteI18n = (data: any) => { - return http.request>('put', 'i18n/deleteI18n', { data }); + return http.request>('delete', 'i18n/deleteI18n', { data }); }; /** diff --git a/src/api/v1/user.ts b/src/api/v1/user.ts index 2d2173e..82fe4d0 100644 --- a/src/api/v1/user.ts +++ b/src/api/v1/user.ts @@ -56,3 +56,10 @@ export const refreshTokenApi = (data?: object) => { export const fetchLogout = (data?: object) => { return http.request>('post', 'user/logout', { data }); }; + +/** + * 获取用户信息 + */ +export const fetchGetUserinfoById = (data?: object) => { + return http.request>('get', 'user/getUserinfoById', { params: data }); +}; diff --git a/src/assets/svg/back.svg b/src/assets/svg/back.svg new file mode 100644 index 0000000..e1cda58 --- /dev/null +++ b/src/assets/svg/back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg/calendar.svg b/src/assets/svg/calendar.svg new file mode 100644 index 0000000..d61313c --- /dev/null +++ b/src/assets/svg/calendar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg/hot.svg b/src/assets/svg/hot.svg new file mode 100644 index 0000000..d285f6f --- /dev/null +++ b/src/assets/svg/hot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg/laptop.svg b/src/assets/svg/laptop.svg new file mode 100644 index 0000000..7d2a736 --- /dev/null +++ b/src/assets/svg/laptop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg/service.svg b/src/assets/svg/service.svg new file mode 100644 index 0000000..11d8803 --- /dev/null +++ b/src/assets/svg/service.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg/shop.svg b/src/assets/svg/shop.svg new file mode 100644 index 0000000..941b336 --- /dev/null +++ b/src/assets/svg/shop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg/user_avatar.svg b/src/assets/svg/user_avatar.svg new file mode 100644 index 0000000..3606d01 --- /dev/null +++ b/src/assets/svg/user_avatar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/ReIcon/src/LocalSelect.vue b/src/components/ReIcon/src/LocalSelect.vue deleted file mode 100644 index f19c6a8..0000000 --- a/src/components/ReIcon/src/LocalSelect.vue +++ /dev/null @@ -1,161 +0,0 @@ - - - - - diff --git a/src/components/ReIcon/src/Select.vue b/src/components/ReIcon/src/Select.vue index 37abdeb..2da2bf2 100644 --- a/src/components/ReIcon/src/Select.vue +++ b/src/components/ReIcon/src/Select.vue @@ -1,23 +1,183 @@ diff --git a/src/components/Table/Userinfo/UserStatusTag.vue b/src/components/Table/Userinfo/UserStatusTag.vue new file mode 100644 index 0000000..a34c0e1 --- /dev/null +++ b/src/components/Table/Userinfo/UserStatusTag.vue @@ -0,0 +1,14 @@ + + + diff --git a/src/components/Table/Userinfo/UserinfoDialog.vue b/src/components/Table/Userinfo/UserinfoDialog.vue new file mode 100644 index 0000000..5d37916 --- /dev/null +++ b/src/components/Table/Userinfo/UserinfoDialog.vue @@ -0,0 +1,134 @@ + + + + + diff --git a/src/components/Table/Userinfo/columns.tsx b/src/components/Table/Userinfo/columns.tsx new file mode 100644 index 0000000..e76c754 --- /dev/null +++ b/src/components/Table/Userinfo/columns.tsx @@ -0,0 +1,29 @@ +import { $t } from '@/plugins/i18n'; +import UserinfoDialog from '@/components/Table/Userinfo/UserinfoDialog.vue'; +import { addDialog } from '@/components/BaseDialog/index'; // 表格列字段 + +// 表格列字段 +export const columns = [ + { label: $t('id'), prop: 'id' }, + { label: $t('avatar'), prop: 'avatar', slot: 'avatar' }, + { label: $t('nickName'), prop: 'nickName' }, + { label: $t('username'), prop: 'username' }, + { label: $t('email'), prop: 'email', width: 180 }, + { label: $t('phone'), prop: 'phone', width: 180 }, + { label: $t('sex'), prop: 'sex' }, + { label: $t('personDescription'), prop: 'personDescription', width: 180 }, + { label: $t('table.createTime'), prop: 'createTime', width: '160' }, + { label: $t('table.updateTime'), prop: 'updateTime', width: '160' }, +]; + +/** + * * 查看用户信息 + * @param userId + */ +export const selectUserinfo = async (userId: string) => { + addDialog({ + title: '查看用户信息', + draggable: true, + contentRenderer: (): JSX.Element => , + }); +}; diff --git a/src/store/modules/router.ts b/src/store/modules/router.ts index 7aebea6..128c9d9 100644 --- a/src/store/modules/router.ts +++ b/src/store/modules/router.ts @@ -1,13 +1,29 @@ import { defineStore } from 'pinia'; -import { addMenu, deletedMenuByIds, updateMenu } from '@/api/v1/system'; +import { addMenu, deletedMenuByIds, getMenuList, updateMenu } from '@/api/v1/system'; import { storeMessage } from '@/utils/message'; +import { handleTree } from '@/utils/tree'; export const userRouterStore = defineStore('routerStore', { state() { - return {}; + return { + datalist: [], + loading: false, + }; }, getters: {}, actions: { + /** + * * 获取菜单列表 + */ + async getMenuList() { + const result = await getMenuList(); + if (result.code === 200) { + this.datalist = handleTree(result.data as any); + return true; + } + return false; + }, + /** * * 添加菜单 * @param data diff --git a/src/utils/message.ts b/src/utils/message.ts index c8a1e93..b2e9922 100644 --- a/src/utils/message.ts +++ b/src/utils/message.ts @@ -95,7 +95,6 @@ export const closeAllMessage = (): void => ElMessage.closeAll(); */ export const storeMessage = (result: BaseResult) => { if (result.code !== 200) { - message(result.message, { type: 'warning' }); return false; } message(result.message, { type: 'success' }); diff --git a/src/views/i18n/i18n-setting/i18n-dialog.vue b/src/views/i18n/i18n-setting/i18n-dialog.vue index d49b777..0514951 100644 --- a/src/views/i18n/i18n-setting/i18n-dialog.vue +++ b/src/views/i18n/i18n-setting/i18n-dialog.vue @@ -27,7 +27,7 @@ defineExpose({ ruleFormRef }); - + diff --git a/src/views/i18n/i18n-setting/index.vue b/src/views/i18n/i18n-setting/index.vue index 62e6ee6..18d6ff8 100644 --- a/src/views/i18n/i18n-setting/index.vue +++ b/src/views/i18n/i18n-setting/index.vue @@ -11,6 +11,7 @@ import PureTable from '@pureadmin/table'; import { columns } from '@/views/i18n/i18n-setting/utils/columns'; import Refresh from '@iconify-icons/ep/refresh'; import { $t } from '@/plugins/i18n'; +import { selectUserinfo } from '@/components/Table/Userinfo/columns'; const tableRef = ref(); const pageFormRef = ref(); @@ -43,14 +44,6 @@ const onPageSizeChange = async (value: number) => { await onSearch(); }; -/** - * * 选择框点击的行 - * @param row - */ -const onSelectionChange = (row: any) => { - ids.value = row.map((item: any) => item.id); -}; - onMounted(() => { onSearch(); }); @@ -95,10 +88,17 @@ onMounted(() => { row-key="id" showOverflowTooltip table-layout="auto" - @selection-change="onSelectionChange" @page-size-change="onPageSizeChange" @page-current-change="onCurrentPageChange" > + + + + + + + +