แก้ข้อมูลตำแหน่ง

This commit is contained in:
Warunee Tamkoo 2024-02-02 16:56:20 +07:00
parent 2d715f772c
commit 8d1901e2b8
2 changed files with 90 additions and 72 deletions

View file

@ -4,12 +4,15 @@ import { useCounterMixin } from "@/stores/mixin";
import http from "@/plugins/http"; import http from "@/plugins/http";
import config from "@/app.config"; import config from "@/app.config";
import { useQuasar } from "quasar"; import { useQuasar } from "quasar";
import type { DataOption,FormPositionSelect,ListMenu,RowDetailPositions } from "@/modules/01_metadataNew/interface/request/position/index"; import type {
DataOption,
FormPositionSelect,
ListMenu,
RowDetailPositions,
} from "@/modules/01_metadataNew/interface/request/position/index";
import type { QTableProps } from "quasar"; import type { QTableProps } from "quasar";
import DialogAddPosition from "@/modules/01_metadataNew/components/position/DialogAddPosition.vue"; import DialogAddPosition from "@/modules/01_metadataNew/components/position/DialogAddPosition.vue";
const modalAddPosition = ref<boolean>(false); const modalAddPosition = ref<boolean>(false);
const levelOpsMain = ref<DataOption[]>([]); const levelOpsMain = ref<DataOption[]>([]);
const dataLevel = ref<any>(); const dataLevel = ref<any>();
@ -168,11 +171,9 @@ function copyDetiail(data: RowDetailPositions) {
formPositionSelect.positionExecutive = data.posExecutiveId; formPositionSelect.positionExecutive = data.posExecutiveId;
formPositionSelect.positionExecutiveField = data.positionExecutiveField; formPositionSelect.positionExecutiveField = data.positionExecutiveField;
formPositionSelect.positionArea = data.positionArea; formPositionSelect.positionArea = data.positionArea;
modalAddPosition.value = true modalAddPosition.value = true;
} }
/** /**
* งค css ออกไปตามเงอนไข * งค css ออกไปตามเงอนไข
* @param val true/false * @param val true/false
@ -185,24 +186,20 @@ function inputEdit(val: boolean) {
} }
async function searchInput() { async function searchInput() {
searchRef.value.validate(); showLoader();
if (!searchRef.value.hasError) { await http
showLoader(); .get(
await http config.API.orgPosPosition + `?keyword=${search.value}&type=${type.value}`
.get( )
config.API.orgPosPosition + .then((res) => {
`?keyword=${search.value}&type=${type.value}` rowsPositionSelect.value = res.data.result;
) })
.then((res) => { .catch((err) => {
rowsPositionSelect.value = res.data.result; messageError($q, err);
}) })
.catch((err) => { .finally(() => {
messageError($q, err); hideLoader();
}) });
.finally(() => {
hideLoader();
});
}
} }
function addPosition(data: RowDetailPositions) { function addPosition(data: RowDetailPositions) {
@ -234,10 +231,30 @@ function deletePos(id: string) {
function popupAdd() { function popupAdd() {
modalAddPosition.value = true; modalAddPosition.value = true;
} }
async function fetchData() {
search.value = "";
showLoader();
await http
.get(config.API.orgPosPosition + `?keyword=&type=ALL`)
.then((res) => {
rowsPositionSelect.value = res.data.result;
})
.catch((err) => {
messageError($q, err);
})
.finally(() => {
hideLoader();
});
}
onMounted(() => {
fetchData();
});
</script> </script>
<template> <template>
<div class="row col-12 q-mb-sm"> <div class="row col-12 q-mb-sm">
<div class="col-12 col-md-5"> <div class="col-md-2">
<q-btn <q-btn
id="addComplaints" id="addComplaints"
for="addComplaints" for="addComplaints"
@ -250,50 +267,55 @@ function popupAdd() {
><q-tooltip>เพมตำเเหน </q-tooltip></q-btn ><q-tooltip>เพมตำเเหน </q-tooltip></q-btn
> >
</div> </div>
<q-space />
<div class="row col-12 col-md-7 q-col-gutter-sm justify-start">
<div class="col-12 col-sm-6 col-md-4">
<q-select
label="ค้นหาจาก"
v-model="type"
:options="optionFilter"
emit-value
dense
map-options
outlined
option-label="name"
option-value="id"
/>
</div>
<div class="col-12 col-sm-6 col-md-4"> <div class="row col-md-10 q-col-gutter-sm">
<q-input <div class="col-md-4">
ref="searchRef" <q-select
:class="inputEdit(isReadonly)" label="ค้นหาจาก"
v-model="search" v-model="type"
outlined :options="optionFilter"
clearable emit-value
dense dense
lazy-rules map-options
label="คำค้น" outlined
hide-bottom-space option-label="name"
:rules="[(val) => !!val || `กรุณากรอกคำค้น`]" option-value="id"
/> />
</div> </div>
<div class="col-12 col-sm-6 col-md-4"> <div class="col-md-6">
<q-btn <q-input
color="primary" ref="searchRef"
icon="search" :class="inputEdit(isReadonly)"
label="ค้นหา" v-model="search"
class="full-width q-pa-sm" outlined
@click="searchInput()" dense
> lazy-rules
</q-btn> label="คำค้น"
hide-bottom-space
>
<template v-slot:append>
<q-icon
v-if="search"
name="cancel"
@click="fetchData()"
class="cursor-pointer"
></q-icon>
</template>
</q-input>
</div>
<div class="row col-md-2">
<q-btn
color="primary"
icon="search"
label="ค้นหา"
class="full-width"
@click="searchInput()"
/>
</div>
</div> </div>
</div> </div>
</div>
<div class="full-width q-mt-sm"> <div class="full-width q-mt-sm">
<d-table <d-table
@ -368,9 +390,8 @@ function popupAdd() {
</template> </template>
</d-table> </d-table>
</div> </div>
<DialogAddPosition <DialogAddPosition
v-model:add-position="modalAddPosition" v-model:add-position="modalAddPosition"
v-model:form-data="formPositionSelect" v-model:form-data="formPositionSelect"
/> />
</template> </template>

View file

@ -130,9 +130,6 @@ onMounted(() => {
</script> </script>
<template> <template>
<div class="toptitle text-dark col-12 row items-center">
รายการตำแหนงทางการบรหาร
</div>
<div class="row col-12 q-col-gutter-x-sm"> <div class="row col-12 q-col-gutter-x-sm">
<div class="col-2"> <div class="col-2">
<q-btn <q-btn