diff --git a/.eslintrc-auto-import-costom.json b/.eslintrc-auto-import-costom.json index af7cf41..0a5939b 100644 --- a/.eslintrc-auto-import-costom.json +++ b/.eslintrc-auto-import-costom.json @@ -1,5 +1,6 @@ { "globals": { + "defineModel": true, "PropsOptionsMixed": true } } diff --git a/components.d.ts b/components.d.ts index 97d0e17..1317d27 100644 --- a/components.d.ts +++ b/components.d.ts @@ -9,6 +9,7 @@ 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'] @@ -34,8 +35,10 @@ declare module 'vue' { NDropdown: typeof import('naive-ui')['NDropdown'] NForm: typeof import('naive-ui')['NForm'] NFormItem: typeof import('naive-ui')['NFormItem'] + NFormItemGi: typeof import('naive-ui')['NFormItemGi'] NGi: typeof import('naive-ui')['NGi'] NGrid: typeof import('naive-ui')['NGrid'] + NGridItem: typeof import('naive-ui')['NGridItem'] NIcon: typeof import('naive-ui')['NIcon'] NInput: typeof import('naive-ui')['NInput'] NList: typeof import('naive-ui')['NList'] diff --git a/src/assets/images/member-avatar.png b/src/assets/images/member-avatar.png new file mode 100644 index 0000000..4950093 Binary files /dev/null and b/src/assets/images/member-avatar.png differ diff --git a/src/modules/MemberTeam/components/AvatarUpload.vue b/src/modules/MemberTeam/components/AvatarUpload.vue new file mode 100644 index 0000000..26d241f --- /dev/null +++ b/src/modules/MemberTeam/components/AvatarUpload.vue @@ -0,0 +1,147 @@ + + + + + + diff --git a/src/modules/MemberTeam/data/index.ts b/src/modules/MemberTeam/data/index.ts index 0d851f1..2e11599 100644 --- a/src/modules/MemberTeam/data/index.ts +++ b/src/modules/MemberTeam/data/index.ts @@ -4,6 +4,8 @@ import { PresenceBlocked10Regular } from '@vicons/fluent' +import memberAvatar from '@/assets/images/member-avatar.png' + // 随机获取数组中某一项 function getRandomValueFromArray(arr: Array): T { const randomIndex = Math.floor(Math.random() * arr.length) @@ -108,6 +110,7 @@ export interface TypeMemberPerson { username: string roleId: string userId: string + avatar: string email: string phone: string rank: string @@ -132,6 +135,7 @@ export const memberTeamList = Array.from({ length: 100 }).map((_, index) => { roleId: roleItem.value, rank: rankItem.value, phone: 10000000000 + _index + '', + avatar: memberAvatar, email: `${userId}@admin.com`, memberStatus: Math.random() > 0.5 ? 0 : 1 } as TypeMemberPerson diff --git a/src/modules/MemberTeam/pages/index.vue b/src/modules/MemberTeam/pages/index.vue index 0c13d4a..739245e 100755 --- a/src/modules/MemberTeam/pages/index.vue +++ b/src/modules/MemberTeam/pages/index.vue @@ -131,6 +131,15 @@ const renderIcon = (icon: Component, className = '') => { } +const goToMemberTeamPreview = (row: TypeMemberPerson) => { + router.push({ + name: 'MemberTeamPreview', + params: { + datasetId: row.userId + } + }, `成员查看-${row.username}`) +} + const createActionsColumns = (row: TypeMemberPerson) => { return h( NDropdown, @@ -142,12 +151,7 @@ const createActionsColumns = (row: TypeMemberPerson) => { icon: renderIcon(IconNotepadPerson24Regular), props: { onClick: () => { - router.push({ - name: 'MemberTeamPreview', - params: { - datasetId: row.userId - } - }, `成员查看-${row.username}`) + goToMemberTeamPreview(row) } } }, diff --git a/src/modules/MemberTeam/pages/preview.vue b/src/modules/MemberTeam/pages/preview.vue index 20eb9ad..1f266ff 100644 --- a/src/modules/MemberTeam/pages/preview.vue +++ b/src/modules/MemberTeam/pages/preview.vue @@ -3,6 +3,7 @@ - - - - - - + + + + + + + + + + + + + + + + +