update user page

parent ea945e99
...@@ -3,7 +3,7 @@ import { API_PATHS, config } from 'src/assets/configurations'; ...@@ -3,7 +3,7 @@ import { API_PATHS, config } from 'src/assets/configurations';
import { PaginationResponse, UserObject } from 'src/assets/type'; import { PaginationResponse, UserObject } from 'src/assets/type';
import { api, BaseResponseBody } from 'src/boot/axios'; import { api, BaseResponseBody } from 'src/boot/axios';
import { i18n } from 'src/boot/i18n'; import { i18n } from 'src/boot/i18n';
import { defineComponent, onMounted, Ref, ref } from 'vue'; import { computed, defineComponent, onMounted, Ref, ref } from 'vue';
export default defineComponent({ export default defineComponent({
setup() { setup() {
...@@ -69,6 +69,7 @@ export default defineComponent({ ...@@ -69,6 +69,7 @@ export default defineComponent({
}, },
]; ];
const userTableRows: Ref<UserObject[]> = ref([]); const userTableRows: Ref<UserObject[]> = ref([]);
const keyword = ref('');
const getListUsers = async () => { const getListUsers = async () => {
try { try {
...@@ -88,6 +89,12 @@ export default defineComponent({ ...@@ -88,6 +89,12 @@ export default defineComponent({
} catch (error) {} } catch (error) {}
}; };
const filterListUser: Ref<UserObject[]> = computed(() => {
return userTableRows.value.filter((user) =>
user.userName.includes(keyword.value)
);
});
onMounted(() => { onMounted(() => {
void getListUsers(); void getListUsers();
}); });
...@@ -97,6 +104,8 @@ export default defineComponent({ ...@@ -97,6 +104,8 @@ export default defineComponent({
totalPage, totalPage,
pageIndex, pageIndex,
pageSize, pageSize,
keyword,
filterListUser,
}; };
}, },
}); });
...@@ -2,17 +2,29 @@ ...@@ -2,17 +2,29 @@
<div class="row q-col-gutter-sm"> <div class="row q-col-gutter-sm">
<div class="col-12"> <div class="col-12">
<q-table <q-table
:rows="rows" :rows="filterListUser"
:columns="userTableColumns" :columns="userTableColumns"
row-key="name" row-key="name"
separator="cell" separator="cell"
hide-pagination hide-pagination
> >
<template v-slot:top> <template v-slot:top>
<q-th class="row"> <q-th class="full-width">
<div class="col-2 text-h6 text-weight-regular"> <div class="row">
<div
class="col-auto text-h6 text-weight-regular flex flex-center q-mr-md"
>
{{ $t('userPage.title') }} {{ $t('userPage.title') }}
</div> </div>
<q-separator vertical spaced />
<div class="col-5 q-ml-md">
<q-input v-model="keyword" placeholder="Tìm kiếm"></q-input>
</div>
<q-space></q-space>
<div class="col-auto flex flex-center">
<q-btn color="primary" :label="$t('crudActions.add')"></q-btn>
</div>
</div>
</q-th> </q-th>
</template> </template>
<template v-slot:body-cell-status="rowData"> <template v-slot:body-cell-status="rowData">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment