fix filter ==> รายชื่อลูกจ้างชั่วคราว
This commit is contained in:
parent
e7a271dd8e
commit
0796c36f73
2 changed files with 38 additions and 84 deletions
|
|
@ -29,6 +29,7 @@ const {
|
||||||
messageError,
|
messageError,
|
||||||
dialogMessageNotify,
|
dialogMessageNotify,
|
||||||
dialogConfirm,
|
dialogConfirm,
|
||||||
|
onSearchDataTable,
|
||||||
} = useCounterMixin();
|
} = useCounterMixin();
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
|
@ -197,6 +198,8 @@ const visibleColumns = ref<string[]>([
|
||||||
|
|
||||||
/** Position*/
|
/** Position*/
|
||||||
const positionNo = ref<PositionNo[]>([]); //รายการตำแหน่ง
|
const positionNo = ref<PositionNo[]>([]); //รายการตำแหน่ง
|
||||||
|
const positionNoMain = ref<PositionNo[]>([]); //รายการตำแหน่ง
|
||||||
|
|
||||||
const positionId = ref<string>(""); //id ตำแหน่ง
|
const positionId = ref<string>(""); //id ตำแหน่ง
|
||||||
const seletcId = ref<string>(""); // id ที่ตเ้องการ
|
const seletcId = ref<string>(""); // id ที่ตเ้องการ
|
||||||
const selectedPos = ref<any[]>([]); //ตำแหน่ง ที่ต้องการ
|
const selectedPos = ref<any[]>([]); //ตำแหน่ง ที่ต้องการ
|
||||||
|
|
@ -278,6 +281,7 @@ async function fetchDataTable(id: string, level: number = 0) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
positionNo.value = dataMain;
|
positionNo.value = dataMain;
|
||||||
|
positionNoMain.value = dataMain;
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
messageError($q, 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*/
|
/** callback function เมื่อมีการเปิด popup*/
|
||||||
watch(
|
watch(
|
||||||
() => modal.value,
|
() => modal.value,
|
||||||
|
|
@ -489,12 +501,7 @@ onBeforeMount(async () => {
|
||||||
label="ค้นหา"
|
label="ค้นหา"
|
||||||
>
|
>
|
||||||
<template v-slot:append>
|
<template v-slot:append>
|
||||||
<q-icon
|
<q-icon name="search" color="grey-5" />
|
||||||
v-if="filterTree !== ''"
|
|
||||||
name="clear"
|
|
||||||
class="cursor-pointer"
|
|
||||||
@click="filterTree = ''"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
</q-input>
|
</q-input>
|
||||||
<q-tree
|
<q-tree
|
||||||
|
|
@ -503,7 +510,7 @@ onBeforeMount(async () => {
|
||||||
default-expand-all
|
default-expand-all
|
||||||
:nodes="lazy"
|
:nodes="lazy"
|
||||||
node-key="orgTreeId"
|
node-key="orgTreeId"
|
||||||
label-key="orgTreeName"
|
label-key="labelName"
|
||||||
:filter="filterTree.trim()"
|
:filter="filterTree.trim()"
|
||||||
no-results-label="ไม่พบข้อมูลที่ค้นหา"
|
no-results-label="ไม่พบข้อมูลที่ค้นหา"
|
||||||
no-nodes-label="ไม่มีข้อมูล"
|
no-nodes-label="ไม่มีข้อมูล"
|
||||||
|
|
@ -566,7 +573,7 @@ onBeforeMount(async () => {
|
||||||
<div class="col-12"><q-separator /></div>
|
<div class="col-12"><q-separator /></div>
|
||||||
<div class="col-12 q-pa-md">
|
<div class="col-12 q-pa-md">
|
||||||
<q-toolbar style="padding: 0px">
|
<q-toolbar style="padding: 0px">
|
||||||
<div class="row q-gutter-md">
|
<div class="row q-gutter-sm">
|
||||||
<q-checkbox
|
<q-checkbox
|
||||||
keep-color
|
keep-color
|
||||||
v-model="isBlank"
|
v-model="isBlank"
|
||||||
|
|
@ -578,7 +585,7 @@ onBeforeMount(async () => {
|
||||||
</div>
|
</div>
|
||||||
<q-space />
|
<q-space />
|
||||||
|
|
||||||
<div class="row q-gutter-md">
|
<div class="row q-gutter-sm">
|
||||||
<q-checkbox
|
<q-checkbox
|
||||||
keep-color
|
keep-color
|
||||||
v-model="isAll"
|
v-model="isAll"
|
||||||
|
|
@ -595,6 +602,7 @@ onBeforeMount(async () => {
|
||||||
dense
|
dense
|
||||||
v-model="filters"
|
v-model="filters"
|
||||||
label="ค้นหา"
|
label="ค้นหา"
|
||||||
|
@keydown.enter.pervent="serchDataTable"
|
||||||
>
|
>
|
||||||
<template v-slot:append>
|
<template v-slot:append>
|
||||||
<q-icon name="search" color="grey-5" />
|
<q-icon name="search" color="grey-5" />
|
||||||
|
|
@ -613,7 +621,6 @@ onBeforeMount(async () => {
|
||||||
map-options
|
map-options
|
||||||
:options="columns"
|
:options="columns"
|
||||||
option-value="name"
|
option-value="name"
|
||||||
|
|
||||||
style="min-width: 140px"
|
style="min-width: 140px"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -623,7 +630,6 @@ onBeforeMount(async () => {
|
||||||
ref="table"
|
ref="table"
|
||||||
:columns="columns"
|
:columns="columns"
|
||||||
:rows="positionNo"
|
:rows="positionNo"
|
||||||
:filter="filters"
|
|
||||||
row-key="id"
|
row-key="id"
|
||||||
flat
|
flat
|
||||||
bordered
|
bordered
|
||||||
|
|
@ -686,73 +692,6 @@ onBeforeMount(async () => {
|
||||||
</q-tr>
|
</q-tr>
|
||||||
</template>
|
</template>
|
||||||
</d-table>
|
</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>
|
</div>
|
||||||
</q-card>
|
</q-card>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ import DialogCreateCommand from "@/modules/18_command/components/DialogCreateCom
|
||||||
|
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
const {
|
const {
|
||||||
success,
|
onSearchDataTable,
|
||||||
messageError,
|
messageError,
|
||||||
showLoader,
|
showLoader,
|
||||||
hideLoader,
|
hideLoader,
|
||||||
|
|
@ -38,6 +38,7 @@ const props = defineProps({
|
||||||
|
|
||||||
const filter = ref<string>(""); //ค้นหารายชื่อไปออกคำสั่ง
|
const filter = ref<string>(""); //ค้นหารายชื่อไปออกคำสั่ง
|
||||||
const rows = ref<DataEmployee[]>([]); //รายชื่อไปออกคำสั่ง
|
const rows = ref<DataEmployee[]>([]); //รายชื่อไปออกคำสั่ง
|
||||||
|
const rowsMain = ref<DataEmployee[]>([]); //รายชื่อไปออกคำสั่ง
|
||||||
const selected = ref<DataEmployee[]>([]); //รายชื่อที่เลือกไปออกคำสั่ง
|
const selected = ref<DataEmployee[]>([]); //รายชื่อที่เลือกไปออกคำสั่ง
|
||||||
const columns = ref<QTableProps["columns"]>([
|
const columns = ref<QTableProps["columns"]>([
|
||||||
{
|
{
|
||||||
|
|
@ -63,7 +64,10 @@ const columns = ref<QTableProps["columns"]>([
|
||||||
align: "left",
|
align: "left",
|
||||||
label: "ชื่อ-นามสกุล",
|
label: "ชื่อ-นามสกุล",
|
||||||
sortable: true,
|
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",
|
headerStyle: "font-size: 14px; min-width: 200px",
|
||||||
style: "font-size: 14px; ",
|
style: "font-size: 14px; ",
|
||||||
},
|
},
|
||||||
|
|
@ -147,7 +151,10 @@ const columns = ref<QTableProps["columns"]>([
|
||||||
align: "left",
|
align: "left",
|
||||||
label: "สถานะ",
|
label: "สถานะ",
|
||||||
sortable: true,
|
sortable: true,
|
||||||
field: (row) => statusText(row.draftOrgEmployeeStatus),
|
field: "statustext",
|
||||||
|
format(val, row) {
|
||||||
|
return statusText(row.draftOrgEmployeeStatus);
|
||||||
|
},
|
||||||
headerStyle: "font-size: 14px",
|
headerStyle: "font-size: 14px",
|
||||||
style: "font-size: 14px",
|
style: "font-size: 14px",
|
||||||
},
|
},
|
||||||
|
|
@ -195,6 +202,8 @@ function fetchList() {
|
||||||
...e,
|
...e,
|
||||||
profileId: e.id,
|
profileId: e.id,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
rowsMain.value = rows.value;
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
messageError($q, err);
|
messageError($q, err);
|
||||||
|
|
@ -209,6 +218,14 @@ function closeDialog() {
|
||||||
modal.value = false;
|
modal.value = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function serchDataTable() {
|
||||||
|
rows.value = onSearchDataTable(
|
||||||
|
filter.value,
|
||||||
|
rowsMain.value,
|
||||||
|
columns.value ? columns.value : []
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ทำเมื่อ modal เป็น true
|
* ทำเมื่อ modal เป็น true
|
||||||
* ทำการเรียก fetchList เพื่อข้อมูลราชชื่อส่งออกคำสั่ง
|
* ทำการเรียก fetchList เพื่อข้อมูลราชชื่อส่งออกคำสั่ง
|
||||||
|
|
@ -235,10 +252,10 @@ watch(
|
||||||
borderless
|
borderless
|
||||||
outlined
|
outlined
|
||||||
dense
|
dense
|
||||||
debounce="300"
|
|
||||||
v-model="filter"
|
v-model="filter"
|
||||||
ref="filterRef"
|
ref="filterRef"
|
||||||
placeholder="ค้นหา"
|
placeholder="ค้นหา"
|
||||||
|
@keydown.enter.pervent="serchDataTable"
|
||||||
style="max-width: auto"
|
style="max-width: auto"
|
||||||
>
|
>
|
||||||
<template v-slot:append>
|
<template v-slot:append>
|
||||||
|
|
@ -256,7 +273,6 @@ watch(
|
||||||
map-options
|
map-options
|
||||||
:options="columns"
|
:options="columns"
|
||||||
option-value="name"
|
option-value="name"
|
||||||
|
|
||||||
style="min-width: 140px"
|
style="min-width: 140px"
|
||||||
class="gt-xs q-ml-sm"
|
class="gt-xs q-ml-sm"
|
||||||
/>
|
/>
|
||||||
|
|
@ -267,7 +283,6 @@ watch(
|
||||||
:rows="rows"
|
:rows="rows"
|
||||||
:columns="columns"
|
:columns="columns"
|
||||||
:visible-columns="visibleColumns"
|
:visible-columns="visibleColumns"
|
||||||
:filter="filter"
|
|
||||||
row-key="id"
|
row-key="id"
|
||||||
selection="multiple"
|
selection="multiple"
|
||||||
v-model:selected="selected"
|
v-model:selected="selected"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue