From 880219163bece87212c9232360d7ebea711b7c97 Mon Sep 17 00:00:00 2001 From: pdsuwwz Date: Fri, 30 Jun 2023 17:09:18 +0800 Subject: [PATCH] =?UTF-8?q?=E2=98=82=20feat:=20types=20namespace=20member?= =?UTF-8?q?=20team?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc-auto-import.json | 52 ++++++------- .eslintrc.js | 3 + components.d.ts | 1 - src/modules/MemberTeam/data/index.ts | 18 +---- src/modules/MemberTeam/pages/index.vue | 17 +++-- src/modules/MemberTeam/pages/preview.vue | 24 ++++-- src/modules/MemberTeam/types/index.ts | 96 ++++++++++++++++++++++++ 7 files changed, 155 insertions(+), 56 deletions(-) create mode 100644 src/modules/MemberTeam/types/index.ts diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json index c544f15..5be93b0 100644 --- a/.eslintrc-auto-import.json +++ b/.eslintrc-auto-import.json @@ -6,9 +6,16 @@ "ComponentPublicInstance": true, "ComponentPublicInstanceCostom": true, "ComputedRef": true, + "ConfigProviderProps": true, + "DataTableColumns": true, + "DataTableRowKey": true, + "DropdownOption": true, "EffectScope": true, + "FormInst": true, + "GlobalThemeOverrides": true, "InjectionKey": true, "LocationQuery": true, + "MenuOption": true, "NavigationFailure": true, "NavigationGuard": true, "PropType": true, @@ -18,6 +25,7 @@ "RouteParams": true, "RouteRecordName": true, "RouteRecordRaw": true, + "StoreActions": true, "VNode": true, "_": true, "asyncComputed": true, @@ -153,6 +161,10 @@ "useCloned": true, "useColorMode": true, "useConfirmDialog": true, + "useCostAnalysisStore": true, + "useCostBudgetStore": true, + "useCostCollectionStore": true, + "useCostDistributeStore": true, "useCounter": true, "useCssModule": true, "useCssVar": true, @@ -182,6 +194,7 @@ "useEventBus": true, "useEventListener": true, "useEventSource": true, + "useExampleComponentStore": true, "useEyeDropper": true, "useFavicon": true, "useFetch": true, @@ -193,6 +206,7 @@ "useFullscreen": true, "useGamepad": true, "useGeolocation": true, + "useHomeFrontStore": true, "useIdle": true, "useImage": true, "useInfiniteScroll": true, @@ -206,8 +220,13 @@ "useLocalStorage": true, "useMagicKeys": true, "useManualRefHistory": true, + "useMaterialBackupStore": true, + "useMaterialPrepareStore": true, + "useMaterialReviewStore": true, "useMediaControls": true, "useMediaQuery": true, + "useMemberAccessStore": true, + "useMemberTeamStore": true, "useMemoize": true, "useMemory": true, "useMessage": true, @@ -217,6 +236,7 @@ "useMousePressed": true, "useMutationObserver": true, "useNavigatorLanguage": true, + "useNestedLevelStore": true, "useNetwork": true, "useNotification": true, "useNow": true, @@ -237,9 +257,11 @@ "usePreferredLanguages": true, "usePreferredReducedMotion": true, "usePrevious": true, + "useProjectStore": true, "useRafFn": true, "useRefHistory": true, "useResizeObserver": true, + "useResultStore": true, "useRoute": true, "useRouter": true, "useScreenOrientation": true, @@ -279,6 +301,8 @@ "useToggle": true, "useTransition": true, "useUrlSearchParams": true, + "useUserAccountStore": true, + "useUserAccountStoreWithOut": true, "useUserMedia": true, "useVModel": true, "useVModels": true, @@ -292,6 +316,7 @@ "useWindowFocus": true, "useWindowScroll": true, "useWindowSize": true, + "useWorkPlatform": true, "uuidv4": true, "watch": true, "watchArray": true, @@ -308,31 +333,6 @@ "watchThrottled": true, "watchTriggerable": true, "watchWithFilter": true, - "whenever": true, - "DataTableColumns": true, - "useWorkPlatform": true, - "FormInst": true, - "GlobalThemeOverrides": true, - "DropdownOption": true, - "ConfigProviderProps": true, - "MenuOption": true, - "DataTableRowKey": true, - "useCostAnalysisStore": true, - "useCostBudgetStore": true, - "useCostCollectionStore": true, - "useCostDistributeStore": true, - "useExampleComponentStore": true, - "useHomeFrontStore": true, - "useMaterialBackupStore": true, - "useMaterialPrepareStore": true, - "useMaterialReviewStore": true, - "useMemberAccessStore": true, - "useMemberTeamStore": true, - "useNestedLevelStore": true, - "useProjectStore": true, - "useResultStore": true, - "useUserAccountStore": true, - "useUserAccountStoreWithOut": true, - "StoreActions": true + "whenever": true } } diff --git a/.eslintrc.js b/.eslintrc.js index 1b87ead..59fefb7 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -59,6 +59,9 @@ module.exports = { '@typescript-eslint/indent': ['error', 2, { SwitchCase: 1 }], '@typescript-eslint/explicit-module-boundary-types': 'off', '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-namespace': [ + 'off' + ], '@typescript-eslint/member-delimiter-style': [ 'error', { diff --git a/components.d.ts b/components.d.ts index 1317d27..ab840e6 100644 --- a/components.d.ts +++ b/components.d.ts @@ -9,7 +9,6 @@ declare module 'vue' { export interface GlobalComponents { 404: typeof import('./src/components/404.vue')['default'] Avatar: typeof import('./src/components/Navigation/Avatar.vue')['default'] - AvatarUpload: typeof import('./src/components/AvatarUpload/index.vue')['default'] ChangeTheme: typeof import('./src/components/Navigation/ChangeTheme.vue')['default'] Footer: typeof import('./src/components/Footer/index.vue')['default'] FullScreen: typeof import('./src/components/Navigation/FullScreen.vue')['default'] diff --git a/src/modules/MemberTeam/data/index.ts b/src/modules/MemberTeam/data/index.ts index 2e11599..2a99ac4 100644 --- a/src/modules/MemberTeam/data/index.ts +++ b/src/modules/MemberTeam/data/index.ts @@ -5,6 +5,7 @@ import { } from '@vicons/fluent' import memberAvatar from '@/assets/images/member-avatar.png' +import type { TypesMemberTeam } from '@/modules/MemberTeam/types' // 随机获取数组中某一项 function getRandomValueFromArray(arr: Array): T { @@ -105,21 +106,6 @@ export const findUserStatusMapByRankName = (targetStatus) => { } - -export interface TypeMemberPerson { - username: string - roleId: string - userId: string - avatar: string - email: string - phone: string - rank: string - /** - * 1活跃, 0停用 - */ - memberStatus: number | null | undefined -} - /** * 构造一份成员列表的假数据 */ @@ -138,7 +124,7 @@ export const memberTeamList = Array.from({ length: 100 }).map((_, index) => { avatar: memberAvatar, email: `${userId}@admin.com`, memberStatus: Math.random() > 0.5 ? 0 : 1 - } as TypeMemberPerson + } as TypesMemberTeam.TypeMemberPerson }) diff --git a/src/modules/MemberTeam/pages/index.vue b/src/modules/MemberTeam/pages/index.vue index adb341a..6576a88 100755 --- a/src/modules/MemberTeam/pages/index.vue +++ b/src/modules/MemberTeam/pages/index.vue @@ -41,7 +41,8 @@ import { findUserRoleMapByRankName, findUserStatusMapByRankName } from '@/modules/MemberTeam/data' -import type { TypeMemberPerson } from '@/modules/MemberTeam/data' +import type { TypesMemberTeam } from '@/modules/MemberTeam/types' + import { MoreVertical20Regular as IconMoreVertical20Regular, NotepadPerson24Regular as IconNotepadPerson24Regular, @@ -66,16 +67,16 @@ const router = useTabRouter() /** * 构造行唯一 ID */ -const getRowKey = (row: TypeMemberPerson) => row.userId +const getRowKey = (row: TypesMemberTeam.TypeMemberPerson) => row.userId /** * 选中行 */ const checkedRowKeysRef = ref>([]) -const checkedRowsRef = ref>([]) +const checkedRowsRef = ref>([]) const handleUpdateCheckedRows = (keys, rows: Array) => { - checkedRowsRef.value = rows as Array + checkedRowsRef.value = rows as Array } @@ -131,7 +132,7 @@ const renderIcon = (icon: Component, className = '') => { } -const goToMemberTeamPreview = (row: TypeMemberPerson) => { +const goToMemberTeamPreview = (row: TypesMemberTeam.TypeMemberPerson) => { router.push({ name: 'MemberTeamPreview', params: { @@ -140,7 +141,7 @@ const goToMemberTeamPreview = (row: TypeMemberPerson) => { }, `成员查看-${row.username}`) } -const createActionsColumns = (row: TypeMemberPerson) => { +const createActionsColumns = (row: TypesMemberTeam.TypeMemberPerson) => { return h( NDropdown, { @@ -209,7 +210,7 @@ const createActionsColumns = (row: TypeMemberPerson) => { ) } -const columns: DataTableColumns = [ +const columns: DataTableColumns = [ { type: 'selection', fixed: 'left' @@ -337,7 +338,7 @@ const columns: DataTableColumns = [ } ] -const tableData = ref>([]) +const tableData = ref>([]) tableData.value = memberTeamList diff --git a/src/modules/MemberTeam/pages/preview.vue b/src/modules/MemberTeam/pages/preview.vue index 1f266ff..ee666c6 100644 --- a/src/modules/MemberTeam/pages/preview.vue +++ b/src/modules/MemberTeam/pages/preview.vue @@ -74,12 +74,26 @@