add member number of group
This commit is contained in:
@@ -64,7 +64,7 @@
|
|||||||
:td-props="props"
|
:td-props="props"
|
||||||
:permitted="user.isPermittedTo('group', 'write')"
|
:permitted="user.isPermittedTo('group', 'write')"
|
||||||
v-on:onClick="openGroupDialog(props.col.label, props.row)"
|
v-on:onClick="openGroupDialog(props.col.label, props.row)"
|
||||||
:value="props.value"
|
:value="props.value + ' (' + getAmount(props.row.name) + ')'"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:body-cell-option="props">
|
<template v-slot:body-cell-option="props">
|
||||||
@@ -122,6 +122,8 @@ import { i18n } from 'src/boot/lang';
|
|||||||
import type { Group, Groups } from 'src/vueLib/models/group';
|
import type { Group, Groups } from 'src/vueLib/models/group';
|
||||||
import SearchableInput from '../components/SearchableInput.vue';
|
import SearchableInput from '../components/SearchableInput.vue';
|
||||||
import TopButtonGroup from '../components/TopButtonGroup.vue';
|
import TopButtonGroup from '../components/TopButtonGroup.vue';
|
||||||
|
import { getAllMembers } from '../members/MembersTable';
|
||||||
|
import type { Members } from 'src/vueLib/models/member';
|
||||||
|
|
||||||
const { NotifyResponse } = useNotify();
|
const { NotifyResponse } = useNotify();
|
||||||
const groupDialog = ref();
|
const groupDialog = ref();
|
||||||
@@ -135,13 +137,16 @@ const selected = ref<Groups>([]);
|
|||||||
const openSubmenu = ref(false);
|
const openSubmenu = ref(false);
|
||||||
const filter = ref('');
|
const filter = ref('');
|
||||||
const user = useUserStore();
|
const user = useUserStore();
|
||||||
|
const members = ref<Members>([]);
|
||||||
|
|
||||||
const { groups, pagination, loading, columns, updateGroups } = useGroupTable();
|
const { groups, pagination, loading, columns, updateGroups } = useGroupTable();
|
||||||
|
|
||||||
//load on mounting page
|
//load on mounting page
|
||||||
onMounted(() => {
|
onMounted(async () => {
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
|
|
||||||
|
members.value = await getAllMembers();
|
||||||
|
|
||||||
appApi
|
appApi
|
||||||
.post('database/open', { dbPath: databaseName.value, create: true })
|
.post('database/open', { dbPath: databaseName.value, create: true })
|
||||||
.then(() => {
|
.then(() => {
|
||||||
@@ -216,6 +221,11 @@ async function save() {
|
|||||||
})
|
})
|
||||||
.catch((err) => NotifyResponse(err, 'error'));
|
.catch((err) => NotifyResponse(err, 'error'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getAmount(name: string) {
|
||||||
|
const amount = members.value.filter((e) => e.group?.name == name);
|
||||||
|
return amount.length;
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
|||||||
@@ -402,3 +402,27 @@ export function useMemberTable() {
|
|||||||
exportCsv,
|
exportCsv,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function getAllMembers(): Promise<Members> {
|
||||||
|
const { NotifyResponse } = useNotify();
|
||||||
|
|
||||||
|
const allMembers = ref<Members>([]);
|
||||||
|
|
||||||
|
await appApi
|
||||||
|
.get('members')
|
||||||
|
.then((resp) => {
|
||||||
|
if (resp.data === null) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
allMembers.value = resp.data as Members;
|
||||||
|
if (allMembers.value === null) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
.catch((err) => {
|
||||||
|
NotifyResponse(err, 'error');
|
||||||
|
});
|
||||||
|
|
||||||
|
return allMembers.value;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user