diff --git a/src/modules/05_placement/components/probation/DialogOrder.vue b/src/modules/05_placement/components/probation/DialogOrder.vue index 8f1735150..5af556315 100644 --- a/src/modules/05_placement/components/probation/DialogOrder.vue +++ b/src/modules/05_placement/components/probation/DialogOrder.vue @@ -201,7 +201,7 @@ async function getList() { commandType.value ? (commandType.value == "C-PM-11" ? 2 : 3) : "" }&page=${pagination.value.page}&pageSize=${ pagination.value.rowsPerPage - }&keyword=${filter.value}` + }&keyword=${filter.value.trim()}` ) .then(async (res) => { const data = await res.data.result.data; diff --git a/src/modules/05_placement/components/probation/DialogOrder/DialogSendToCommand.vue b/src/modules/05_placement/components/probation/DialogOrder/DialogSendToCommand.vue index 8a924175f..5464124b1 100644 --- a/src/modules/05_placement/components/probation/DialogOrder/DialogSendToCommand.vue +++ b/src/modules/05_placement/components/probation/DialogOrder/DialogSendToCommand.vue @@ -179,7 +179,7 @@ watchEffect(() => { { const data = await res.data.result.data; diff --git a/src/modules/05_placement/components/probation/MainAppoint.vue b/src/modules/05_placement/components/probation/MainAppoint.vue index 0653421ca..1e9e3c6c3 100644 --- a/src/modules/05_placement/components/probation/MainAppoint.vue +++ b/src/modules/05_placement/components/probation/MainAppoint.vue @@ -214,7 +214,7 @@ onMounted(async () => { ref="table" :columns="columns" :rows="rows" - :filter="filterKeyword" + :filter="filterKeyword.trim()" row-key="Order" flat :visible-columns="visibleColumns" diff --git a/src/modules/05_placement/components/probation/MainProbation.vue b/src/modules/05_placement/components/probation/MainProbation.vue index f714f0964..e0ae168f0 100644 --- a/src/modules/05_placement/components/probation/MainProbation.vue +++ b/src/modules/05_placement/components/probation/MainProbation.vue @@ -246,9 +246,9 @@ async function getpersonalList() { config.API.probationPersonalList() + `?status=${!fillter.value ? "" : fillter.value}&page=${ pagination.value.page - }&pageSize=${pagination.value.rowsPerPage}&keyword=${ - filterKeyword.value - }` + }&pageSize=${ + pagination.value.rowsPerPage + }&keyword=${filterKeyword.value.trim()}` ) .then(async (res) => { const data = await res.data.result.data; diff --git a/src/modules/07_insignia/components/2_Manage/Tab1.vue b/src/modules/07_insignia/components/2_Manage/Tab1.vue index 808e2c9bc..5791f47de 100644 --- a/src/modules/07_insignia/components/2_Manage/Tab1.vue +++ b/src/modules/07_insignia/components/2_Manage/Tab1.vue @@ -750,12 +750,10 @@ function filterSelector(val: string, update: Function, name: string) { update(() => { const needle = val.toLowerCase(); if (name === "typeinsigniaOptions") { - DataStore.typeinsignia = ""; typeinsigniaOptions.value = DataStore.typeinsigniaOptions.filter( (v: OptionData) => v.name.toLowerCase().indexOf(needle) > -1 ); } else if (name === "employeeClassOps") { - DataStore.employeeClass = ""; employeeClassOps.value = DataStore.employeeClassOps.filter( (v: OptionData) => v.name.toLowerCase().indexOf(needle) > -1 ); @@ -832,6 +830,8 @@ onMounted(async () => { option-label="name" lazy-rules use-input + hide-selected + fill-input hide-bottom-space :readonly="false" :borderless="false" @@ -846,7 +846,6 @@ onMounted(async () => { { placeholder="ค้นหา" > @@ -878,7 +871,6 @@ onMounted(async () => { :options="columns" option-value="name" style="min-width: 140px" - class="col-xs-12 col-sm-3 col-md-2" /> @@ -896,6 +888,8 @@ onMounted(async () => { lazy-rules hide-bottom-space use-input + hide-selected + fill-input :readonly="false" :borderless="false" :outlined="true" @@ -940,6 +934,8 @@ onMounted(async () => { emit-value use-input map-options + hide-selected + fill-input option-label="name" :options="employeeClassOps" option-value="id" diff --git a/src/modules/07_insignia/components/2_Manage/Tab2.vue b/src/modules/07_insignia/components/2_Manage/Tab2.vue index 891837cbf..c8e60c436 100644 --- a/src/modules/07_insignia/components/2_Manage/Tab2.vue +++ b/src/modules/07_insignia/components/2_Manage/Tab2.vue @@ -32,7 +32,6 @@ const props = defineProps({ }); const organization = ref("1"); -const organizationOptions = ref([{ id: "1", name: "ทั้งหมด" }]); const filterOrganizationOP = ref([]); //หน่วยงาน const typeinsigniaOptions = ref(DataStore.typeinsigniaOptions); //ประเภทเครื่องราย const employeeClassOps = ref(DataStore.employeeClassOps); //ประเภทข้ารายกาช @@ -226,12 +225,10 @@ function filterSelector(val: string, update: Function, name: string) { update(() => { const needle = val.toLowerCase(); if (name === "typeinsigniaOptions") { - DataStore.typeinsignia = ""; typeinsigniaOptions.value = DataStore.typeinsigniaOptions.filter( (v: OptionData) => v.name.toLowerCase().indexOf(needle) > -1 ); } else if (name === "employeeClassOps") { - DataStore.employeeClass = ""; employeeClassOps.value = DataStore.employeeClassOps.filter( (v: OptionData) => v.name.toLowerCase().indexOf(needle) > -1 ); @@ -312,7 +309,6 @@ watch( @@ -344,7 +334,6 @@ watch( :options="columns" option-value="name" style="min-width: 140px" - class="col-xs-12 col-sm-3 col-md-2" /> @@ -361,6 +350,8 @@ watch( lazy-rules hide-bottom-space use-input + hide-selected + fill-input :readonly="false" :borderless="false" :outlined="true" @@ -404,6 +395,8 @@ watch( :label="`${'สถานภาพ'}`" emit-value use-input + hide-selected + fill-input map-options option-label="name" :options="employeeClassOps" diff --git a/src/modules/07_insignia/components/2_Manage/Tab3.vue b/src/modules/07_insignia/components/2_Manage/Tab3.vue index d0344e55d..0912e1ffb 100644 --- a/src/modules/07_insignia/components/2_Manage/Tab3.vue +++ b/src/modules/07_insignia/components/2_Manage/Tab3.vue @@ -3,7 +3,6 @@ import { onMounted, ref, watch } from "vue"; import { checkPermission } from "@/utils/permissions"; import { useInsigniaDataStore } from "@/modules/07_insignia/store"; -import { useroleUserDataStore } from "@/stores/roleUser"; /** import Type*/ import type { QTableProps } from "quasar"; @@ -15,7 +14,6 @@ import PopupPersonal from "@/components/Dialogs/PopupPersonalNew.vue"; /** useStore*/ const DataStore = useInsigniaDataStore(); -const roleDataStore = useroleUserDataStore(); const props = defineProps({ tab: { @@ -151,6 +149,7 @@ const visibleColumns = ref([ "insigniaType", "insigniaSend", "insigniaLevel", + "dateSend", ]); /** function เลือกหน่วยงาน */ @@ -185,10 +184,7 @@ function updatemodalPersonal(modal: boolean) { /** ข้อมูล Table*/ const filterKeyword = ref(""); const filterRef = ref(null); -const resetFilter = () => { - filterKeyword.value = ""; - filterRef.value.focus(); -}; + const pagination = ref({ sortBy: "name", descending: false, @@ -226,12 +222,10 @@ function filterSelector(val: string, update: Function, name: string) { update(() => { const needle = val.toLowerCase(); if (name === "typeinsigniaOptions") { - DataStore.typeinsignia = ""; typeinsigniaOptions.value = DataStore.typeinsigniaOptions.filter( (v: OptionData) => v.name.toLowerCase().indexOf(needle) > -1 ); } else if (name === "employeeClassOps") { - DataStore.employeeClass = ""; employeeClassOps.value = DataStore.employeeClassOps.filter( (v: OptionData) => v.name.toLowerCase().indexOf(needle) > -1 ); @@ -313,7 +307,6 @@ watch( @@ -345,7 +332,6 @@ watch( :options="columns" option-value="name" style="min-width: 140px" - class="col-xs-12 col-sm-3 col-md-2" /> diff --git a/src/modules/07_insignia/views/01_RoundMain.vue b/src/modules/07_insignia/views/01_RoundMain.vue index ca98bbef4..1e6d551db 100644 --- a/src/modules/07_insignia/views/01_RoundMain.vue +++ b/src/modules/07_insignia/views/01_RoundMain.vue @@ -183,6 +183,7 @@ onMounted(async () => { await fetchData(); }); + - + diff --git a/src/modules/07_insignia/views/02_ManageMain.vue b/src/modules/07_insignia/views/02_ManageMain.vue index 40262a22e..2700db34d 100644 --- a/src/modules/07_insignia/views/02_ManageMain.vue +++ b/src/modules/07_insignia/views/02_ManageMain.vue @@ -5,7 +5,6 @@ import { useQuasar } from "quasar"; import { useRoute } from "vue-router"; import { useCounterMixin } from "@/stores/mixin"; import { useInsigniaDataStore } from "@/modules/07_insignia/store"; -import { useroleUserDataStore } from "@/stores/roleUser"; import { checkPermission } from "@/utils/permissions"; import http from "@/plugins/http"; import config from "@/app.config"; diff --git a/src/modules/14_KPI/components/Tab/Dialog/01_FormIndicator.vue b/src/modules/14_KPI/components/Tab/Dialog/01_FormIndicator.vue index 9afdba143..1a24bb6c7 100644 --- a/src/modules/14_KPI/components/Tab/Dialog/01_FormIndicator.vue +++ b/src/modules/14_KPI/components/Tab/Dialog/01_FormIndicator.vue @@ -108,6 +108,7 @@ function fetchListPlan() { formFilter.nodeId = store.dataProfile.nodeId; formFilter.node = store.dataProfile.node; formFilter.year = formFilter?.year ? formFilter.year.toString() : ""; + formFilter.keyword = formFilter.keyword.trim(); // const kpiPeriodId = store.dataEvaluation.kpiPeriodId; showLoader(); @@ -164,6 +165,8 @@ function fetchListRole() { formFilter.node = store.dataProfile.node; formFilter.year = formFilter?.year ? formFilter.year.toString() : ""; formFilter.position = store.dataProfile.position; + formFilter.keyword = formFilter.keyword.trim(); + showLoader(); http .post(config.API.kpiRole + `/search-kpi-role`, formFilter) @@ -218,8 +221,10 @@ function fetchListSpecial() { formFilter.node = store.dataProfile.node; formFilter.year = formFilter?.year ? formFilter.year.toString() : ""; + showLoader(); + const body = { - keyword: formFilter.keyword, + keyword: formFilter.keyword.trim(), period: formFilter.period, year: formFilter.year, pageSize: formFilter.pageSize, @@ -575,13 +580,7 @@ watch( @keydown.enter.prevent="fetchNewList()" > diff --git a/src/modules/14_KPI/components/Tab/Dialog/04_FormCompetency.vue b/src/modules/14_KPI/components/Tab/Dialog/04_FormCompetency.vue index dd518c9dc..4e760635d 100644 --- a/src/modules/14_KPI/components/Tab/Dialog/04_FormCompetency.vue +++ b/src/modules/14_KPI/components/Tab/Dialog/04_FormCompetency.vue @@ -212,7 +212,7 @@ function getData() { } /** ฟิลเตอร์ */ -function filterTxt(val: any) { +function filterTxt(val: string) { listTarget.value = listTargetMain.value.filter( (v: any) => v.name.indexOf(val) > -1 ); @@ -320,13 +320,7 @@ watch( @update:model-value="filterTxt" > diff --git a/src/modules/14_KPI/components/Tab/Dialog/DialogEvalute.vue b/src/modules/14_KPI/components/Tab/Dialog/DialogEvalute.vue index 2da533f73..6faac6049 100644 --- a/src/modules/14_KPI/components/Tab/Dialog/DialogEvalute.vue +++ b/src/modules/14_KPI/components/Tab/Dialog/DialogEvalute.vue @@ -36,14 +36,12 @@ const searchRules = ref(false); const selected = ref([]); const personId = ref(""); const modalPersonal = ref(false); -const searchRef = ref(null); const rows = ref([]); const type = ref("citizenId"); const search = ref(""); const typeOps = ref([ { id: "citizenId", name: "เลขประจำตัวประชาชน" }, - { id: "firstname", name: "ชื่อ" }, - { id: "lastname", name: "นามสกุล" }, + { id: "fullName", name: "ชื่อ-นามสกุล" }, ]); const modalDialog = defineModel("modal", { required: true }); @@ -152,6 +150,11 @@ function onCloseDialog() { selected.value = []; search.value = ""; type.value = "citizenId"; + roundDialgOp.value = []; + evaluatorIdMainOp.value = []; + commanderIdMainOp.value = []; + commanderHighMainOp.value = []; + isRoundClose.value = false; } /** ดึงข้อมูลตามรอบการประเมิน */ @@ -192,26 +195,26 @@ function fetchRoundOption() { * @param update function Quasar * @param refData เเยกประเภท */ -function filterOption(val: any, update: Function, refData: string) { +function filterOption(val: string, update: Function, refData: string) { switch (refData) { case "evaluatorIdOp": update(() => { evaluatorIdOp.value = evaluatorIdMainOp.value.filter( - (v: any) => v.name.indexOf(val) > -1 + (v: DataOption) => v.name.indexOf(val) > -1 ); }); break; case "commanderIdOp": update(() => { commanderIdOp.value = commanderIdMainOp.value.filter( - (v: any) => v.name.indexOf(val) > -1 + (v: DataOption) => v.name.indexOf(val) > -1 ); }); break; case "commanderHighOp": update(() => { commanderHighOp.value = commanderHighMainOp.value.filter( - (v: any) => v.name.indexOf(val) > -1 + (v: DataOption) => v.name.indexOf(val) > -1 ); }); break; @@ -229,37 +232,35 @@ function checkClosed() { async function searchInput(check: boolean) { if (check) { searchRules.value = check; - searchRef.value.validate(); - if (!searchRef.value.hasError) { - showLoader(); - const body = { - fieldName: type.value, - keyword: search.value, - }; - await http - .post( - config.API.orgSearchPersonal() + - `?page=${query.page}&pageSize=${query.pageSize}`, - body - ) - .then((res) => { - const data = res.data.result; - maxPage.value = Math.ceil(data.total / query.pageSize); - total.value = data.total; - rows.value = data.data; - }) - .catch((err) => { - messageError($q, err); - }) - .finally(() => { - hideLoader(); - }); - } - setTimeout(() => { - searchRules.value = false; - }, 100); + showLoader(); + const body = { + fieldName: type.value, + keyword: search.value.trim(), + }; + await http + .post( + config.API.orgSearchPersonal() + + `?page=${query.page}&pageSize=${query.pageSize}`, + body + ) + .then((res) => { + const data = res.data.result; + maxPage.value = Math.ceil(data.total / query.pageSize); + total.value = data.total; + + rows.value = data.data; + }) + .catch((err) => { + messageError($q, err); + }) + .finally(() => { + hideLoader(); + }); } + setTimeout(() => { + searchRules.value = false; + }, 100); } /** update เมื่อเปลี่ยน option */ @@ -356,6 +357,17 @@ async function updatePagination(initialPagination: NewPagination) { query.pageSize = initialPagination.rowsPerPage; } +/** + * class input + * @param val + */ +function classInput(val: boolean) { + return { + "full-width cursor-pointer ": val, + "full-width cursor-pointer inputgreen": !val, + }; +} + watch( () => modalDialog.value, (n) => { @@ -380,6 +392,7 @@ watch(
+
@@ -399,19 +412,16 @@ watch(
+
filterOption(inputValue, doneFn,'commanderHighOp' ) " > @@ -683,7 +714,7 @@ watch( รอบการประเมินนี้ปิดแล้ว
{ if (n == true) { getData(); - } + } else rows.value = []; } ); diff --git a/src/modules/14_KPI/components/results/tableResults.vue b/src/modules/14_KPI/components/results/tableResults.vue index 379097c81..d7d92ec88 100644 --- a/src/modules/14_KPI/components/results/tableResults.vue +++ b/src/modules/14_KPI/components/results/tableResults.vue @@ -387,6 +387,8 @@ onMounted(async () => { outlined @clear="(result = ''), (resultOp = store.resultsOptions)" use-input + hide-selected + fill-input :clearable="result !== ''" @update:model-value="onSearchData()" input-debounce="0" diff --git a/src/modules/14_KPI/views/01_kpiRound.vue b/src/modules/14_KPI/views/01_kpiRound.vue index b4b8d30c2..2bfe6573f 100644 --- a/src/modules/14_KPI/views/01_kpiRound.vue +++ b/src/modules/14_KPI/views/01_kpiRound.vue @@ -356,9 +356,9 @@ onMounted(async () => {
รายการรอบการประเมินผลการปฏิบัติหน้าที่ราชการ
- - -
+ +
+
{ + เพิ่ม -
- -
+ + { style="min-width: 140px" />
- -
- - - - - +
+ + + + + +
diff --git a/src/modules/14_KPI/views/detailView.vue b/src/modules/14_KPI/views/detailView.vue index ced26c6e5..7a87cd9c0 100644 --- a/src/modules/14_KPI/views/detailView.vue +++ b/src/modules/14_KPI/views/detailView.vue @@ -409,7 +409,6 @@ async function fetchProfileEvaluator(id: string) { http .get(config.API.profilePosition + `/${id}`) .then((res) => { - console.log(res.data.result); const data = res.data.result; evaluator.value.fullName = data.prefix + data.firstName + " " + data.lastName; @@ -892,7 +891,9 @@ onUnmounted(() => { :rules="[ (val:string) => !!val || `${'กรุณาเลือกผู้ประเมิน'}`, ]" use-input - @filter="(inputValue:any, + hide-selected + fill-input + @filter="(inputValue:string, doneFn:Function) => filterOption(inputValue, doneFn,'evaluatorIdOp' ) " /> @@ -930,7 +931,9 @@ onUnmounted(() => { map-options class="inputgreen" use-input - @filter="(inputValue:any, + hide-selected + fill-input + @filter="(inputValue:string, doneFn:Function) => filterOption(inputValue, doneFn,'commanderIdOp' ) " > @@ -983,7 +986,9 @@ onUnmounted(() => { map-options use-input class="inputgreen" - @filter="(inputValue:any, + hide-selected + fill-input + @filter="(inputValue:string, doneFn:Function) => filterOption(inputValue, doneFn,'commanderHighOp' ) " > diff --git a/src/modules/14_KPI/views/report.vue b/src/modules/14_KPI/views/report.vue index 9fabdfa2b..11cfc7c8d 100644 --- a/src/modules/14_KPI/views/report.vue +++ b/src/modules/14_KPI/views/report.vue @@ -429,6 +429,7 @@ function onCloseModal() { * function fetch รายชื่อข้อมูลทะเบียนประวัติ */ function fetchListPerson() { + rowsPerson.value = [] showLoader(); let queryParams = { page: formFilter.page, @@ -796,13 +797,13 @@ onMounted(() => { class="bg-white" v-model="formFilter.searchKeyword" outlined - clearable hide-bottom-space dense label="คำค้น" > +