feat: scroll inside

This commit is contained in:
Methapon2001 2024-07-05 13:10:37 +07:00
parent 52f37e168d
commit d64421f48b

View file

@ -537,7 +537,7 @@ watch(locale, () => {
style="width: 100%" style="width: 100%"
> >
<template v-slot:before> <template v-slot:before>
<div class="rounded surface-1 scroll"> <div class="rounded surface-1 column" style="height: 100%">
<div <div
class="row bordered-b q-pl-sm text-weight-bold surface-2 items-center" class="row bordered-b q-pl-sm text-weight-bold surface-2 items-center"
style="height: 50px" style="height: 50px"
@ -573,174 +573,193 @@ watch(locale, () => {
</q-btn> </q-btn>
</div> </div>
<q-tree <div class="col" style="position: relative">
:nodes="treeData" <div class="scroll" style="position: absolute; inset: 0">
node-key="id" <q-tree
label-key="name" :nodes="treeData"
children-key="branch" node-key="id"
style="color: var(--foreground)" label-key="name"
> children-key="branch"
<template #default-header="{ node }"> style="color: var(--foreground)"
<div
class="row items-center justify-between full-width no-wrap"
> >
<span>{{ node.name }}</span> <template #default-header="{ node }">
<div <div
class="row q-gutter-xs items-center no-wrap" class="row items-center justify-between full-width no-wrap"
@click.stop
>
<q-btn
v-if="node.isHeadOffice"
:id="`create-sub-branch-btn-${node.name}`"
@click.stop="
triggerCreate('subBranch', node.id, node.code)
"
icon="mdi-file-plus-outline"
size="sm"
dense
round
flat
/>
<q-btn
:id="`view-detail-btn-${node.name}`"
icon="mdi-dots-vertical"
size="sm"
dense
round
flat
> >
<q-menu class="bordered"> <span>{{ node.name }}</span>
<q-list v-close-popup> <div
<q-item class="row q-gutter-xs items-center no-wrap"
:id="`view-detail-btn-${node.name}-view`" @click.stop
@click.stop=" >
if (node.isHeadOffice) { <q-btn
triggerEdit( v-if="node.isHeadOffice"
'drawer', :id="`create-sub-branch-btn-${node.name}`"
node.id, @click.stop="
'headOffice', triggerCreate('subBranch', node.id, node.code)
node.code, "
); icon="mdi-file-plus-outline"
} else { size="sm"
triggerEdit('drawer', node.id, 'subBranch'); dense
} round
" flat
clickable />
dense
class="row q-py-sm"
style="white-space: nowrap"
>
<q-icon
name="mdi-eye-outline"
class="col-3"
size="xs"
style="color: hsl(var(--green-6-hsl))"
/>
<span class="col-9 q-px-md flex items-center">
{{ $t('viewDetail') }}
</span>
</q-item>
<q-item <q-btn
:id="`view-detail-btn-${node.name}-edit`" :id="`view-detail-btn-${node.name}`"
clickable icon="mdi-dots-vertical"
dense size="sm"
class="row q-py-sm" dense
style="white-space: nowrap" round
@click=" flat
() => { >
if (node.isHeadOffice) { <q-menu class="bordered">
triggerEdit( <q-list v-close-popup>
'form', <q-item
node.id, :id="`view-detail-btn-${node.name}-view`"
'headOffice', @click.stop="
node.code, if (node.isHeadOffice) {
); triggerEdit(
} else { 'drawer',
triggerEdit('form', node.id, 'subBranch'); node.id,
} 'headOffice',
} node.code,
" );
> } else {
<q-icon triggerEdit(
name="mdi-pencil-outline" 'drawer',
class="col-3" node.id,
size="xs" 'subBranch',
style="color: hsl(var(--cyan-6-hsl))" );
/> }
<span class="col-9 q-px-md flex items-center"> "
{{ $t('edit') }} clickable
</span> dense
</q-item> class="row q-py-sm"
<q-item style="white-space: nowrap"
:id="`view-detail-btn-${node.name}-delete`" >
dense <q-icon
:clickable="node.status === 'CREATED'" name="mdi-eye-outline"
class="row" class="col-3"
:class="{ size="xs"
'surface-3': node.status !== 'CREATED', style="color: hsl(var(--green-6-hsl))"
'app-text-muted': node.status !== 'CREATED',
}"
style="white-space: nowrap"
@click="triggerDelete(node.id)"
>
<q-icon
name="mdi-trash-can-outline"
size="xs"
class="col-3"
:class="{
'app-text-negative':
node.status === 'CREATED',
}"
/>
<span class="col-9 q-px-md flex items-center">
{{ $t('delete') }}
</span>
</q-item>
<q-item dense>
<q-item-section class="q-py-sm">
<div class="q-pa-sm surface-2 rounded">
<q-toggle
:id="`view-detail-btn-${node.name}-status`"
dense
size="sm"
:label="
node.status !== 'INACTIVE'
? $t('switchOnLabel')
: $t('switchOffLabel')
"
@click="
async () => {
const res =
await branchStore.editById(
node.id,
{
status:
node.status !== 'INACTIVE'
? 'INACTIVE'
: 'ACTIVE',
},
);
if (res) node.status = res.status;
}
"
:model-value="
node.status === 'CREATED' ||
node.status === 'ACTIVE'
"
/> />
</div> <span
</q-item-section> class="col-9 q-px-md flex items-center"
</q-item> >
</q-list> {{ $t('viewDetail') }}
</q-menu> </span>
</q-btn> </q-item>
</div>
</div> <q-item
</template> :id="`view-detail-btn-${node.name}-edit`"
</q-tree> clickable
dense
class="row q-py-sm"
style="white-space: nowrap"
@click="
() => {
if (node.isHeadOffice) {
triggerEdit(
'form',
node.id,
'headOffice',
node.code,
);
} else {
triggerEdit(
'form',
node.id,
'subBranch',
);
}
}
"
>
<q-icon
name="mdi-pencil-outline"
class="col-3"
size="xs"
style="color: hsl(var(--cyan-6-hsl))"
/>
<span
class="col-9 q-px-md flex items-center"
>
{{ $t('edit') }}
</span>
</q-item>
<q-item
:id="`view-detail-btn-${node.name}-delete`"
dense
:clickable="node.status === 'CREATED'"
class="row"
:class="{
'surface-3': node.status !== 'CREATED',
'app-text-muted':
node.status !== 'CREATED',
}"
style="white-space: nowrap"
@click="triggerDelete(node.id)"
>
<q-icon
name="mdi-trash-can-outline"
size="xs"
class="col-3"
:class="{
'app-text-negative':
node.status === 'CREATED',
}"
/>
<span
class="col-9 q-px-md flex items-center"
>
{{ $t('delete') }}
</span>
</q-item>
<q-item dense>
<q-item-section class="q-py-sm">
<div class="q-pa-sm surface-2 rounded">
<q-toggle
:id="`view-detail-btn-${node.name}-status`"
dense
size="sm"
:label="
node.status !== 'INACTIVE'
? $t('switchOnLabel')
: $t('switchOffLabel')
"
@click="
async () => {
const res =
await branchStore.editById(
node.id,
{
status:
node.status !== 'INACTIVE'
? 'INACTIVE'
: 'ACTIVE',
},
);
if (res) node.status = res.status;
}
"
:model-value="
node.status === 'CREATED' ||
node.status === 'ACTIVE'
"
/>
</div>
</q-item-section>
</q-item>
</q-list>
</q-menu>
</q-btn>
</div>
</div>
</template>
</q-tree>
</div>
</div>
</div> </div>
</template> </template>