diff --git a/src/modules/03_recruiting/components/Table.vue b/src/modules/03_recruiting/components/Table.vue
index a6d859297..a696ea11a 100644
--- a/src/modules/03_recruiting/components/Table.vue
+++ b/src/modules/03_recruiting/components/Table.vue
@@ -137,7 +137,6 @@ function resetFilter() {
ref="filterRef"
@update:model-value="updateInput"
outlined
- debounce="300"
placeholder="ค้นหา"
style="max-width: 200px"
>
diff --git a/src/modules/03_recruiting/components/Table1.vue b/src/modules/03_recruiting/components/Table1.vue
index 2a8fe6ebb..3f2ca55b4 100644
--- a/src/modules/03_recruiting/components/Table1.vue
+++ b/src/modules/03_recruiting/components/Table1.vue
@@ -110,7 +110,6 @@ const resetFilter = () => {
ref="filterRef"
@update:model-value="updateInput"
outlined
- debounce="300"
placeholder="ค้นหา"
style="max-width: 200px"
class="q-ml-sm"
diff --git a/src/modules/03_recruiting/components/TableCan.vue b/src/modules/03_recruiting/components/TableCan.vue
index 6e820e1c9..a80691850 100644
--- a/src/modules/03_recruiting/components/TableCan.vue
+++ b/src/modules/03_recruiting/components/TableCan.vue
@@ -114,7 +114,6 @@ function resetFilter() {
ref="filterRef"
@update:model-value="updateInput"
outlined
- debounce="300"
placeholder="ค้นหา"
style="max-width: 200px"
>
diff --git a/src/modules/05_placement/components/PersonalDetail/Information/TableEducation.vue b/src/modules/05_placement/components/PersonalDetail/Information/TableEducation.vue
index f5ccd9c83..b4dd4ae41 100644
--- a/src/modules/05_placement/components/PersonalDetail/Information/TableEducation.vue
+++ b/src/modules/05_placement/components/PersonalDetail/Information/TableEducation.vue
@@ -103,7 +103,6 @@ const resetFilter = () => {
ref="filterRef"
@update:model-value="updateInput"
outlined
- debounce="300"
placeholder="ค้นหา"
style="max-width: 200px"
class="q-ml-sm"
diff --git a/src/modules/05_placement/components/probation/DialogOrder/DialogSendToCommand.vue b/src/modules/05_placement/components/probation/DialogOrder/DialogSendToCommand.vue
index 5464124b1..2f60514ce 100644
--- a/src/modules/05_placement/components/probation/DialogOrder/DialogSendToCommand.vue
+++ b/src/modules/05_placement/components/probation/DialogOrder/DialogSendToCommand.vue
@@ -151,7 +151,6 @@ watchEffect(() => {
borderless
outlined
dense
- debounce="300"
placeholder="ค้นหา"
v-model="filterKeyword"
>
diff --git a/src/modules/05_placement/components/probation/MainAppoint.vue b/src/modules/05_placement/components/probation/MainAppoint.vue
index da5322d31..1d439c40b 100644
--- a/src/modules/05_placement/components/probation/MainAppoint.vue
+++ b/src/modules/05_placement/components/probation/MainAppoint.vue
@@ -202,7 +202,6 @@ onMounted(async () => {
v-model="filterKeyword"
ref="filterRef"
outlined
- debounce="300"
placeholder="ค้นหา"
@keydown.enter="onSearch"
>
diff --git a/src/modules/05_placement/components/probation/ProbationDetail.vue b/src/modules/05_placement/components/probation/ProbationDetail.vue
index 5ad4570d2..5389e3585 100644
--- a/src/modules/05_placement/components/probation/ProbationDetail.vue
+++ b/src/modules/05_placement/components/probation/ProbationDetail.vue
@@ -409,7 +409,6 @@ onMounted(async () => {
v-model="filterKeyword"
ref="filterRef"
outlined
- debounce="300"
placeholder="ค้นหา"
@keydown.enter="onSearch"
>
diff --git a/src/modules/05_placement/views/02_transferMain.vue b/src/modules/05_placement/views/02_transferMain.vue
index 6f03843d3..7cf122b98 100644
--- a/src/modules/05_placement/views/02_transferMain.vue
+++ b/src/modules/05_placement/views/02_transferMain.vue
@@ -240,12 +240,6 @@ const filterAndApply = () => {
>
-
@@ -266,7 +260,6 @@ const filterAndApply = () => {
-
-import { ref, watchEffect, computed } from "vue";
+import { ref, computed, watch } from "vue";
import { useQuasar } from "quasar";
import { useCounterMixin } from "@/stores/mixin";
@@ -30,7 +30,7 @@ const dataMapToSend = computed(() => {
}));
});
const mixin = useCounterMixin();
-const { dialogConfirm, date2Thai } = mixin;
+const { dialogConfirm, date2Thai, onSearchDataTable } = mixin;
/** props*/
const props = defineProps({
@@ -43,6 +43,8 @@ const props = defineProps({
});
//Table
+const rowsData = ref([]);
+const rowsDataMain = ref([]);
const columns = ref([
{
name: "no",
@@ -60,7 +62,10 @@ const columns = ref([
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",
style: "font-size: 14px",
},
@@ -129,7 +134,10 @@ const columns = ref([
align: "left",
label: "สถานะ",
sortable: true,
- field: (row) => statusText(row.status),
+ field: "status",
+ format(val, row) {
+ return statusText(row.status);
+ },
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
@@ -166,20 +174,31 @@ function updateInput(value: any) {
emit("update:filterKeyword2", value);
}
-/** รีเซ็ตค่าในช่องค้นหา */
-function Reset() {
- emit("update:filterKeyword2", "");
+async function onSearch() {
+ rowsData.value = onSearchDataTable(
+ props.filterKeyword2 ? props.filterKeyword2 : "",
+ rowsDataMain.value,
+ columns.value ? columns.value : []
+ );
}
-watchEffect(() => {
- if (props.modal === true) {
- selected.value = [];
+watch(
+ () => props.modal,
+ (val) => {
+ if (val) {
+ selected.value = [];
+ rowsData.value = props.rows ? props.rows : [];
+ rowsDataMain.value = props.rows ? props.rows : [];
+ } else {
+ rowsData.value = [];
+ rowsDataMain.value = [];
+ }
}
-});
+);
-
+
@@ -190,9 +209,9 @@ watchEffect(() => {
borderless
outlined
dense
- debounce="300"
:model-value="filterKeyword2"
@update:model-value="updateInput"
+ @keydown.enter="onSearch"
placeholder="ค้นหา"
>
@@ -218,8 +237,7 @@ watchEffect(() => {
-import { ref, watchEffect, computed } from "vue";
+import { ref, watch, computed } from "vue";
import { useQuasar } from "quasar";
import { useCounterMixin } from "@/stores/mixin";
@@ -30,7 +30,7 @@ const dataMapToSend = computed(() => {
}));
});
const mixin = useCounterMixin();
-const { dialogConfirm, date2Thai } = mixin;
+const { dialogConfirm, date2Thai, onSearchDataTable } = mixin;
/** props*/
const props = defineProps({
@@ -43,6 +43,8 @@ const props = defineProps({
});
//Table
+const rowsData = ref([]);
+const rowsDataMain = ref([]);
const columns = ref([
{
name: "no",
@@ -60,7 +62,10 @@ const columns = ref([
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",
style: "font-size: 14px",
},
@@ -129,7 +134,10 @@ const columns = ref([
align: "left",
label: "สถานะ",
sortable: true,
- field: (row) => statusText(row.status),
+ field: "status",
+ format(val, row) {
+ return statusText(row.status);
+ },
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
@@ -166,15 +174,31 @@ function updateInput(value: any) {
emit("update:filterKeyword2", value);
}
-watchEffect(() => {
- if (props.modal === true) {
- selected.value = [];
+async function onSearch() {
+ rowsData.value = onSearchDataTable(
+ props.filterKeyword2 ? props.filterKeyword2 : "",
+ rowsDataMain.value,
+ columns.value ? columns.value : []
+ );
+}
+
+watch(
+ () => props.modal,
+ (val) => {
+ if (val) {
+ selected.value = [];
+ rowsData.value = props.rows ? props.rows : [];
+ rowsDataMain.value = props.rows ? props.rows : [];
+ } else {
+ rowsData.value = [];
+ rowsDataMain.value = [];
+ }
}
-});
+);
-
+
@@ -185,10 +209,10 @@ watchEffect(() => {
borderless
outlined
dense
- debounce="300"
:model-value="filterKeyword2"
@update:model-value="updateInput"
placeholder="ค้นหา"
+ @keydown.enter="onSearch"
>
@@ -213,8 +237,7 @@ watchEffect(() => {
(false);
const selectedModal = ref([]);
const rows = ref([]);
+const rowsMain = ref([]);
const editRows = ref([]);
/** selcet OPtion */
@@ -59,7 +61,6 @@ const optionSelect = ref([
{ id: 1, name: "อีเมล" },
{ id: 2, name: "กล่องข้อความ" },
]);
-
/** คอลัมน์ที่แสดง */
const visibleColumns = ref([
"no",
@@ -158,6 +159,7 @@ async function getData() {
});
}
rows.value = list;
+ rowsMain.value = list;
})
.catch((e) => {
messageError($q, e);
@@ -189,12 +191,6 @@ async function saveData() {
});
}
-function resetFilter() {
- // reset ค่าที่ค้นหาเมื่อกดปุ่ม X ในกล่องค้นหา
- filter.value = "";
- filterRef.value!.focus();
-}
-
/**
* class จัดรูปแบบแสดงระหว่างข้อมูลที่แก้ไขหรือแสดงเฉยๆ
* @param val ข้อมูล input สำหรับแก้ไขหรือไม่
@@ -257,7 +253,7 @@ async function saveDataCopyOrder() {
//อัพเดทข้อมูลหลัง Save
async function fetchSaveCopyOrder() {
let list: requestSendNoti[] = [];
- rows.value.map((r: DataCopyOrder) => {
+ rowsMain.value.map((r: DataCopyOrder) => {
list.push({
profileId: r.personalId,
isSendMail: r.mutiselect.includes(1),
@@ -285,6 +281,14 @@ function updateData(row: DataCopyOrder) {
editRows.value.push(row);
}
+async function onSearch() {
+ rows.value = onSearchDataTable(
+ filter.value,
+ rowsMain.value,
+ columns.value ? columns.value : []
+ );
+}
+
/** Hook */
onMounted(async () => {
await getData();
@@ -320,9 +324,9 @@ onMounted(async () => {
v-model="filter"
ref="filterRef"
outlined
- debounce="300"
placeholder="ค้นหา"
class="q-ml-sm"
+ @keydown.enter="onSearch"
>
@@ -350,7 +354,6 @@ onMounted(async () => {
:rows="rows"
:columns="columns"
:visible-columns="visibleColumns"
- :filter="filter.trim()"
row-key="idCard"
>
diff --git a/src/modules/09_leave/components/04_SpecialTime/Table.vue b/src/modules/09_leave/components/04_SpecialTime/Table.vue
index 052d8c21a..28eb6c032 100644
--- a/src/modules/09_leave/components/04_SpecialTime/Table.vue
+++ b/src/modules/09_leave/components/04_SpecialTime/Table.vue
@@ -133,7 +133,6 @@ function resetFilter() {
ref="filterRef"
@update:model-value="updateInput"
outlined
- debounce="300"
placeholder="ค้นหา"
style="max-width: 200px"
class="col-xs-12 col-sm-3 col-md-2"
diff --git a/src/modules/11_discipline/components/DialogDuty.vue b/src/modules/11_discipline/components/DialogDuty.vue
index 3e9b093d7..dfd239f5f 100644
--- a/src/modules/11_discipline/components/DialogDuty.vue
+++ b/src/modules/11_discipline/components/DialogDuty.vue
@@ -71,7 +71,6 @@ watch(props, () => {
outlined
dense
class="col-12 q-mb-sm"
- debounce="300"
label="หน้าที่"
:rules="[(val:string) => !!val || `กรุณากรอกหน้าที่`]"
hide-bottom-space
@@ -81,7 +80,6 @@ watch(props, () => {
outlined
dense
class="col-12 q-mb-sm"
- debounce="300"
label="มติ/คำสั่ง"
:rules="[(val:string) => !!val || `กรุณากรอก มติ/คำสั่ง`]"
hide-bottom-space
diff --git a/src/modules/12_evaluatePersonal/components/Detail/viewTab2/DialogDirector.vue b/src/modules/12_evaluatePersonal/components/Detail/viewTab2/DialogDirector.vue
index ba90c55b2..18b5cc45e 100644
--- a/src/modules/12_evaluatePersonal/components/Detail/viewTab2/DialogDirector.vue
+++ b/src/modules/12_evaluatePersonal/components/Detail/viewTab2/DialogDirector.vue
@@ -201,7 +201,6 @@ watch(
outlined
dense
class="col-12 q-mb-sm"
- debounce="300"
:model-value="filterKeyword2"
placeholder="ค้นหารายชื่อ"
style="max-width: 100%"
diff --git a/src/modules/12_evaluatePersonal/components/Detail/viewTab2/DialogMeet.vue b/src/modules/12_evaluatePersonal/components/Detail/viewTab2/DialogMeet.vue
index 23d5bf08b..3ae02ee09 100644
--- a/src/modules/12_evaluatePersonal/components/Detail/viewTab2/DialogMeet.vue
+++ b/src/modules/12_evaluatePersonal/components/Detail/viewTab2/DialogMeet.vue
@@ -201,7 +201,6 @@ watch(
outlined
dense
class="col-12 q-mb-sm"
- debounce="300"
:model-value="filterKeyword"
placeholder="ค้นหารายการประชุม"
style="max-width: 100%"
diff --git a/src/modules/13_salary/components/04_salaryLists/Dashboard.vue b/src/modules/13_salary/components/04_salaryLists/Dashboard.vue
index ef14590c2..9dde8731d 100644
--- a/src/modules/13_salary/components/04_salaryLists/Dashboard.vue
+++ b/src/modules/13_salary/components/04_salaryLists/Dashboard.vue
@@ -541,7 +541,6 @@ watch([() => props?.snapShot, () => props.roundFilter], () => {
props?.snapShot, () => props.roundFilter], () => {
props?.snapShot, () => props.roundFilter], () => {
bordered
dense
class="custom-header-table"
- :filter="filter"
:visible-columns="visibleColumns"
>