Front end users refactoring

This commit is contained in:
xue jiahao
2024-12-23 17:32:20 +08:00
parent 354abf252b
commit e9fa013d7d
8 changed files with 184 additions and 75 deletions

View File

@@ -14,7 +14,7 @@
<q-item active v-if="allLoading" active-class="menu-active">
<q-item-section class="text-weight-bold"> 読み込み中... </q-item-section>
</q-item>
<q-item v-else v-for="item in roles" :key="item.id" clickable v-ripple :active="selected.id === item.id" @click="roleClicked(item)" active-class="menu-active">
<q-item v-else v-for="item in roles" :key="item.id" clickable v-ripple :active="selected?.id === item.id" @click="roleClicked(item)" active-class="menu-active">
<q-item-section class="text-weight-bold"> {{ item.label }} </q-item-section>
</q-item>
</q-list>
@@ -28,7 +28,7 @@
:pagination="pagination" >
<template v-slot:top>
<q-btn color="primary" :disable="loading" label="追加" @click="showAddRoleDialog" />
<q-btn color="primary" :disable="loading || selected?.id == -2" label="追加" @click="showAddRoleDialog" />
<q-space />
<q-input borderless dense filled debounce="300" v-model="filter" placeholder="検索">
<template v-slot:append>
@@ -153,7 +153,12 @@ const roleClicked = async (role) => {
selected.value = role;
}
const rows = computed(() => allRows.value.filter((item) => item.roles?.includes(selected.value.id) ));
const rows = computed(() => allRows.value.filter((item) => {
if (selected.value.id == -2) {
return !item.roles || item.roles.length == 0;
}
return item.roles?.includes(selected.value.id);
}));
const rowIds = computed(() => new Set(rows.value?.map((item) => item.id)));
const getUsers = async (filter = () => true) => {
@@ -170,7 +175,7 @@ const getRoles = async () => {
const result = await api.get(`api/v1/roles`);
roles.value = result.data.data.map((item) => {
return { id: item.id, label: item.description }
})
}).concat({ id: -2, label: 'ロールなし' })
selected.value = roles.value[0];
}