187 lines
4.7 KiB
Vue
187 lines
4.7 KiB
Vue
|
|
<script setup>
|
||
|
|
import avatar1 from '@images/avatars/avatar-1.png'
|
||
|
|
import avatar2 from '@images/avatars/avatar-2.png'
|
||
|
|
import avatar3 from '@images/avatars/avatar-3.png'
|
||
|
|
import avatar4 from '@images/avatars/avatar-4.png'
|
||
|
|
import avatar5 from '@images/avatars/avatar-5.png'
|
||
|
|
import avatar6 from '@images/avatars/avatar-6.png'
|
||
|
|
import avatar7 from '@images/avatars/avatar-7.png'
|
||
|
|
import avatar8 from '@images/avatars/avatar-8.png'
|
||
|
|
|
||
|
|
const props = defineProps({
|
||
|
|
isDialogVisible: {
|
||
|
|
type: Boolean,
|
||
|
|
required: true,
|
||
|
|
},
|
||
|
|
})
|
||
|
|
|
||
|
|
const emit = defineEmits(['update:isDialogVisible'])
|
||
|
|
|
||
|
|
const dialogVisibleUpdate = val => {
|
||
|
|
emit('update:isDialogVisible', val)
|
||
|
|
}
|
||
|
|
|
||
|
|
const membersList = [
|
||
|
|
{
|
||
|
|
avatar: avatar1,
|
||
|
|
name: 'Lester Palmer',
|
||
|
|
email: 'jerrod98@gmail.com',
|
||
|
|
permission: 'Can Edit',
|
||
|
|
},
|
||
|
|
{
|
||
|
|
avatar: avatar2,
|
||
|
|
name: 'Mattie Blair',
|
||
|
|
email: 'prudence.boehm@yahoo.com',
|
||
|
|
permission: 'Owner',
|
||
|
|
},
|
||
|
|
{
|
||
|
|
avatar: avatar3,
|
||
|
|
name: 'Marvin Wheeler',
|
||
|
|
email: 'rumet@jujpejah.net',
|
||
|
|
permission: 'Can Comment',
|
||
|
|
},
|
||
|
|
{
|
||
|
|
avatar: avatar4,
|
||
|
|
name: 'Nannie Ford',
|
||
|
|
email: 'negza@nuv.io',
|
||
|
|
permission: 'Can View',
|
||
|
|
},
|
||
|
|
{
|
||
|
|
avatar: avatar5,
|
||
|
|
name: 'Julian Murphy',
|
||
|
|
email: 'lunebame@umdomgu.net',
|
||
|
|
permission: 'Can Edit',
|
||
|
|
},
|
||
|
|
{
|
||
|
|
avatar: avatar6,
|
||
|
|
name: 'Sophie Gilbert',
|
||
|
|
email: 'ha@sugit.gov',
|
||
|
|
permission: 'Can View',
|
||
|
|
},
|
||
|
|
{
|
||
|
|
avatar: avatar7,
|
||
|
|
name: 'Chris Watkins',
|
||
|
|
email: 'zokap@mak.org',
|
||
|
|
permission: 'Can Comment',
|
||
|
|
},
|
||
|
|
{
|
||
|
|
avatar: avatar8,
|
||
|
|
name: 'Adelaide Nichols',
|
||
|
|
email: 'ujinomu@jigo.com',
|
||
|
|
permission: 'Can Edit',
|
||
|
|
},
|
||
|
|
]
|
||
|
|
</script>
|
||
|
|
|
||
|
|
<template>
|
||
|
|
<VDialog
|
||
|
|
:model-value="props.isDialogVisible"
|
||
|
|
:width="$vuetify.display.smAndDown ? 'auto' : 900"
|
||
|
|
@update:model-value="dialogVisibleUpdate"
|
||
|
|
>
|
||
|
|
<!-- 👉 Dialog close btn -->
|
||
|
|
<DialogCloseBtn @click="$emit('update:isDialogVisible', false)" />
|
||
|
|
|
||
|
|
<VCard class="share-project-dialog pa-2 pa-sm-10">
|
||
|
|
<VCardText>
|
||
|
|
<h4 class="text-h4 text-center mb-2">
|
||
|
|
Share Project
|
||
|
|
</h4>
|
||
|
|
<p class="text-body-1 text-center mb-6">
|
||
|
|
Share project with a team members
|
||
|
|
</p>
|
||
|
|
|
||
|
|
<AppAutocomplete
|
||
|
|
label="Add Members"
|
||
|
|
:items="membersList"
|
||
|
|
item-title="name"
|
||
|
|
item-value="name"
|
||
|
|
placeholder="Add project members..."
|
||
|
|
>
|
||
|
|
<template #item="{ props: listItemProp, item }">
|
||
|
|
<VListItem v-bind="listItemProp">
|
||
|
|
<template #prepend>
|
||
|
|
<VAvatar
|
||
|
|
:image="item.raw.avatar"
|
||
|
|
size="30"
|
||
|
|
/>
|
||
|
|
</template>
|
||
|
|
</VListItem>
|
||
|
|
</template>
|
||
|
|
</AppAutocomplete>
|
||
|
|
|
||
|
|
<h5 class="text-h5 mb-4 mt-6">
|
||
|
|
8 Members
|
||
|
|
</h5>
|
||
|
|
|
||
|
|
<VList class="card-list">
|
||
|
|
<VListItem
|
||
|
|
v-for="member in membersList"
|
||
|
|
:key="member.name"
|
||
|
|
>
|
||
|
|
<template #prepend>
|
||
|
|
<VAvatar :image="member.avatar" />
|
||
|
|
</template>
|
||
|
|
|
||
|
|
<VListItemTitle>
|
||
|
|
{{ member.name }}
|
||
|
|
</VListItemTitle>
|
||
|
|
<VListItemSubtitle>
|
||
|
|
{{ member.email }}
|
||
|
|
</VListItemSubtitle>
|
||
|
|
|
||
|
|
<template #append>
|
||
|
|
<VBtn
|
||
|
|
variant="text"
|
||
|
|
color="secondary"
|
||
|
|
:icon="$vuetify.display.xs"
|
||
|
|
>
|
||
|
|
<span class="d-none d-sm-block me-1">{{ member.permission }}</span>
|
||
|
|
<VIcon icon="tabler-chevron-down" />
|
||
|
|
|
||
|
|
<VMenu activator="parent">
|
||
|
|
<VList :selected="[member.permission]">
|
||
|
|
<VListItem
|
||
|
|
v-for="(item, index) in ['Owner', 'Can Edit', 'Can Comment', 'Can View']"
|
||
|
|
:key="index"
|
||
|
|
:value="item"
|
||
|
|
>
|
||
|
|
<VListItemTitle>{{ item }}</VListItemTitle>
|
||
|
|
</VListItem>
|
||
|
|
</VList>
|
||
|
|
</VMenu>
|
||
|
|
</VBtn>
|
||
|
|
</template>
|
||
|
|
</VListItem>
|
||
|
|
</VList>
|
||
|
|
|
||
|
|
<div class="d-flex align-center justify-center justify-sm-space-between flex-wrap gap-3 mt-6">
|
||
|
|
<h6 class="text-h6 font-weight-medium d-flex align-start">
|
||
|
|
<VIcon
|
||
|
|
icon="tabler-users"
|
||
|
|
class="me-2"
|
||
|
|
size="20"
|
||
|
|
/>
|
||
|
|
<div>Public to Vuexy - Pixinvent</div>
|
||
|
|
</h6>
|
||
|
|
|
||
|
|
<VBtn
|
||
|
|
class="text-capitalize"
|
||
|
|
prepend-icon="tabler-link"
|
||
|
|
>
|
||
|
|
Copy Project Link
|
||
|
|
</VBtn>
|
||
|
|
</div>
|
||
|
|
</VCardText>
|
||
|
|
</VCard>
|
||
|
|
</VDialog>
|
||
|
|
</template>
|
||
|
|
|
||
|
|
<style lang="scss">
|
||
|
|
.share-project-dialog {
|
||
|
|
.card-list {
|
||
|
|
--v-card-list-gap: 1rem;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
</style>
|