diff --git a/src/modules/16_positionEmployee/components/DialogFormPosition.vue b/src/modules/16_positionEmployee/components/DialogFormPosition.vue
index 8a9608f5f..ecb5f999e 100644
--- a/src/modules/16_positionEmployee/components/DialogFormPosition.vue
+++ b/src/modules/16_positionEmployee/components/DialogFormPosition.vue
@@ -224,7 +224,7 @@ async function searchInput() {
await http
.get(
config.API.orgEmployeePos +
- `?keyword=${search.value}&type=${type.value}`
+ `?keyword=${search.value.trim()}&type=${type.value}`
)
.then((res) => {
rowsPositionSelect.value = res.data.result;
@@ -556,15 +556,12 @@ watch(
@@ -575,6 +572,7 @@ watch(
icon="search"
label="ค้นหา"
class="full-width q-pa-sm"
+ outline
@click="searchInput()"
>
diff --git a/src/modules/16_positionEmployee/components/DialogMovePos.vue b/src/modules/16_positionEmployee/components/DialogMovePos.vue
index 8fda4b434..6e81ab320 100644
--- a/src/modules/16_positionEmployee/components/DialogMovePos.vue
+++ b/src/modules/16_positionEmployee/components/DialogMovePos.vue
@@ -41,6 +41,7 @@ const {
messageError,
dialogMessageNotify,
success,
+ filterTableQuasar,
} = useCounterMixin();
/**
@@ -79,14 +80,7 @@ const levelTree = ref(0);
const filterTable = ref("");
const selectedFilter = ref([]);
-
-/**
- * function รีเช็ด filter
- */
-function resetFilter() {
- filterTree.value = "";
- filterRef.value.focus();
-}
+const dataMain = ref([...rows.value]);
/**
* function เลือกข้อมูลหน่วยงาน
@@ -155,12 +149,22 @@ const pagination = ref({
rowsPerPage: reqMaster.value.pageSize,
});
+function onSerachDataTable() {
+ rows.value = filterTableQuasar(
+ filterTable.value,
+ dataMain.value,
+ columns.value ?? []
+ );
+}
+
watch(
() => modal.value,
() => {
reqMaster.value.page = 1;
filterTree.value = "";
pagination.value.rowsPerPage = reqMaster.value.pageSize;
+ dataMain.value = rows.value;
+ filterTable.value = "";
title.value = `ย้ายตำแหน่งจากหน่วยงาน/ส่วนราชการปัจจุบัน ${props.mainTree.orgName}`;
if (modal.value && props.type === "SINGER") {
@@ -200,75 +204,85 @@ watch(
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+ {{
+ (reqMaster.page - 1) * Number(reqMaster.pageSize) +
+ props.rowIndex +
+ 1
+ }}
+
-
-
- {{
- (reqMaster.page - 1) * Number(reqMaster.pageSize) +
- props.rowIndex +
- 1
- }}
-
-
-
- {{ col.value }}
-
-
-
-
-
-
-
-
+
+ {{ col.value }}
+
+
+
+
+
+
+
+
+
-
+
-
@@ -113,7 +107,7 @@ watch(
:nodes="lazy"
node-key="orgTreeId"
label-key="labelName"
- :filter="filter"
+ :filter="filter.trim()"
no-results-label="ไม่พบข้อมูลที่ค้นหา"
no-nodes-label="ไม่มีข้อมูล"
v-model:expanded="expanded"
diff --git a/src/modules/16_positionEmployee/views/main.vue b/src/modules/16_positionEmployee/views/main.vue
index 1ec3f4dfa..a8374b0a6 100644
--- a/src/modules/16_positionEmployee/views/main.vue
+++ b/src/modules/16_positionEmployee/views/main.vue
@@ -20,7 +20,7 @@ import type { FilterMaster } from "@/modules/16_positionEmployee/interface/reque
/** importComponents*/
import TreeMain from "@/modules/16_positionEmployee/components/TreeMain.vue";
-import TreeTable from "@/modules/16_positionEmployee/components/TreeTable.vue";
+import TreeTable from "@/modules/16_positionEmployee/components/TableMain.vue";
import LoadView from "@/components/LoadView.vue";
/** use*/
diff --git a/src/stores/mixin.ts b/src/stores/mixin.ts
index ac3e9fc1e..dacfec10b 100644
--- a/src/stores/mixin.ts
+++ b/src/stores/mixin.ts
@@ -1100,6 +1100,26 @@ export const useCounterMixin = defineStore("mixin", () => {
.catch((error) => console.error("ดาวน์โหลดไฟล์ไม่สำเร็จ:", error));
}
+ function filterTableQuasar(keyword: string, data: any[], columns: any[]) {
+ const searchText = keyword.trim().toLowerCase();
+
+ if (!searchText) {
+ return data; // คืนค่าทั้งหมดถ้าไม่มีข้อความค้นหา
+ }
+
+ // คืนค่าข้อมูลที่กรองแล้ว
+ return data.filter((row: any) => {
+ return columns.some((col: any) => {
+ const rawValue = row[col.field];
+ const formattedValue = col.format
+ ? col.format(rawValue, row) // ใช้ `format` ถ้ามี
+ : rawValue;
+
+ return String(formattedValue).toLowerCase().includes(searchText);
+ });
+ });
+ }
+
return {
calAge,
date2Thai,
@@ -1143,5 +1163,7 @@ export const useCounterMixin = defineStore("mixin", () => {
findPosMasterNoOld,
pathRegistryEmp,
downloadRenameFileByLink,
+
+ filterTableQuasar,
};
});