fix filter ==> รายชื่อลูกจ้างชั่วคราว

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2024-12-10 13:37:22 +07:00
parent e7a271dd8e
commit 0796c36f73
2 changed files with 38 additions and 84 deletions

View file

@ -29,6 +29,7 @@ const {
messageError,
dialogMessageNotify,
dialogConfirm,
onSearchDataTable,
} = useCounterMixin();
const route = useRoute();
@ -197,6 +198,8 @@ const visibleColumns = ref<string[]>([
/** Position*/
const positionNo = ref<PositionNo[]>([]); //
const positionNoMain = ref<PositionNo[]>([]); //
const positionId = ref<string>(""); //id
const seletcId = ref<string>(""); // id
const selectedPos = ref<any[]>([]); //
@ -278,6 +281,7 @@ async function fetchDataTable(id: string, level: number = 0) {
}
});
positionNo.value = dataMain;
positionNoMain.value = dataMain;
})
.catch((err) => {
messageError($q, err);
@ -416,6 +420,14 @@ async function onClickSelectPos(id: string) {
}
}
function serchDataTable() {
positionNo.value = onSearchDataTable(
filters.value,
positionNoMain.value,
columns.value ? columns.value : []
);
}
/** callback function เมื่อมีการเปิด popup*/
watch(
() => modal.value,
@ -489,12 +501,7 @@ onBeforeMount(async () => {
label="ค้นหา"
>
<template v-slot:append>
<q-icon
v-if="filterTree !== ''"
name="clear"
class="cursor-pointer"
@click="filterTree = ''"
/>
<q-icon name="search" color="grey-5" />
</template>
</q-input>
<q-tree
@ -503,7 +510,7 @@ onBeforeMount(async () => {
default-expand-all
:nodes="lazy"
node-key="orgTreeId"
label-key="orgTreeName"
label-key="labelName"
:filter="filterTree.trim()"
no-results-label="ไม่พบข้อมูลที่ค้นหา"
no-nodes-label="ไม่มีข้อมูล"
@ -566,7 +573,7 @@ onBeforeMount(async () => {
<div class="col-12"><q-separator /></div>
<div class="col-12 q-pa-md">
<q-toolbar style="padding: 0px">
<div class="row q-gutter-md">
<div class="row q-gutter-sm">
<q-checkbox
keep-color
v-model="isBlank"
@ -578,7 +585,7 @@ onBeforeMount(async () => {
</div>
<q-space />
<div class="row q-gutter-md">
<div class="row q-gutter-sm">
<q-checkbox
keep-color
v-model="isAll"
@ -595,6 +602,7 @@ onBeforeMount(async () => {
dense
v-model="filters"
label="ค้นหา"
@keydown.enter.pervent="serchDataTable"
>
<template v-slot:append>
<q-icon name="search" color="grey-5" />
@ -613,7 +621,6 @@ onBeforeMount(async () => {
map-options
:options="columns"
option-value="name"
style="min-width: 140px"
/>
</div>
@ -623,7 +630,6 @@ onBeforeMount(async () => {
ref="table"
:columns="columns"
:rows="positionNo"
:filter="filters"
row-key="id"
flat
bordered
@ -686,73 +692,6 @@ onBeforeMount(async () => {
</q-tr>
</template>
</d-table>
<!-- <d-table
ref="table"
:columns="columns"
:rows="positionNo"
:filter="filters"
row-key="id"
flat
bordered
:paging="true"
dense
:rows-per-page-options="[10, 25, 50, 100]"
:visible-columns="visibleColumns"
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th
v-for="col in props.cols"
:key="col.name"
:props="props"
>
<span class="text-weight-medium">{{
col.label
}}</span>
</q-th>
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="onClickSelectPos(props.row.id)"
:class="
props.row.id === positionId ? 'bg-blue-2' : ''
"
>
<div v-if="col.name == 'no'">
{{ props.rowIndex + 1 }}
</div>
<div v-else-if="col.name === 'posMasterNo'">
{{
props.row.isSit
? col.value + " " + "(นั่งทับตำแหน่ง)"
: col.value
}}
</div>
<div v-else-if="col.name === 'isPosition'">
<div v-if="col.value">
<q-icon
name="done"
color="primary"
size="24px"
>
<q-tooltip>ตรงตามตำแหน </q-tooltip>
</q-icon>
</div>
</div>
<div v-else>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>
</d-table> -->
</div>
</q-card>
</div>

View file

@ -17,7 +17,7 @@ import DialogCreateCommand from "@/modules/18_command/components/DialogCreateCom
const $q = useQuasar();
const {
success,
onSearchDataTable,
messageError,
showLoader,
hideLoader,
@ -38,6 +38,7 @@ const props = defineProps({
const filter = ref<string>(""); //
const rows = ref<DataEmployee[]>([]); //
const rowsMain = ref<DataEmployee[]>([]); //
const selected = ref<DataEmployee[]>([]); //
const columns = ref<QTableProps["columns"]>([
{
@ -63,7 +64,10 @@ const columns = ref<QTableProps["columns"]>([
align: "left",
label: "ชื่อ-นามสกุล",
sortable: true,
field: (row) => `${row.prefix}${row.firstName} ${row.lastName}`,
field: "fullname",
format(val, row) {
return `${row.prefix}${row.firstName} ${row.lastName}`;
},
headerStyle: "font-size: 14px; min-width: 200px",
style: "font-size: 14px; ",
},
@ -147,7 +151,10 @@ const columns = ref<QTableProps["columns"]>([
align: "left",
label: "สถานะ",
sortable: true,
field: (row) => statusText(row.draftOrgEmployeeStatus),
field: "statustext",
format(val, row) {
return statusText(row.draftOrgEmployeeStatus);
},
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
@ -195,6 +202,8 @@ function fetchList() {
...e,
profileId: e.id,
}));
rowsMain.value = rows.value;
})
.catch((err) => {
messageError($q, err);
@ -209,6 +218,14 @@ function closeDialog() {
modal.value = false;
}
function serchDataTable() {
rows.value = onSearchDataTable(
filter.value,
rowsMain.value,
columns.value ? columns.value : []
);
}
/**
* ทำเม modal เป true
* ทำการเรยก fetchList เพอขอมลราชชอสงออกคำส
@ -235,10 +252,10 @@ watch(
borderless
outlined
dense
debounce="300"
v-model="filter"
ref="filterRef"
placeholder="ค้นหา"
@keydown.enter.pervent="serchDataTable"
style="max-width: auto"
>
<template v-slot:append>
@ -256,7 +273,6 @@ watch(
map-options
:options="columns"
option-value="name"
style="min-width: 140px"
class="gt-xs q-ml-sm"
/>
@ -267,7 +283,6 @@ watch(
:rows="rows"
:columns="columns"
:visible-columns="visibleColumns"
:filter="filter"
row-key="id"
selection="multiple"
v-model:selected="selected"