Merge branch 'develop' into devTee
This commit is contained in:
commit
074b2b86c7
5 changed files with 509 additions and 522 deletions
|
|
@ -26,7 +26,6 @@ import DialogHistory from "@/modules/04_registryPerson/components/detail/Governm
|
|||
import { useCounterMixin } from "@/stores/mixin";
|
||||
import { useSalaryDataStore } from "@/modules/04_registryPerson/stores/salary";
|
||||
import DialogPreviewCommand from "@/modules/18_command/components/DialogPreviewCommand.vue";
|
||||
const { findOrgName } = useCounterMixin();
|
||||
|
||||
const $q = useQuasar();
|
||||
const route = useRoute();
|
||||
|
|
@ -50,6 +49,7 @@ const {
|
|||
pathRegistryEmp,
|
||||
onSearchDataTable,
|
||||
formatDatePosition,
|
||||
findOrgName,
|
||||
} = useCounterMixin();
|
||||
|
||||
const empType = ref<string>(pathRegistryEmp(route.name?.toString() ?? ""));
|
||||
|
|
@ -561,13 +561,13 @@ function onSubmit() {
|
|||
!isStatusEdit.value && empType.value === ""
|
||||
? profileId.value
|
||||
: undefined,
|
||||
date: formDataSalary.date, // วันที่
|
||||
// date: formDataSalary.date, // วันที่
|
||||
posNo: formDataSalary.posNo, //ตำแหน่งเลขที่
|
||||
position: formDataSalary.position, //ตำแหน่ง
|
||||
positionLine:
|
||||
empType.value === "" ? formDataSalary.positionLine : undefined, //สายงาน
|
||||
positionPathSide:
|
||||
empType.value === "" ? formDataSalary.positionPathSide : undefined, // ด้าน/สาขา
|
||||
// position: formDataSalary.position, //ตำแหน่ง
|
||||
// positionLine:
|
||||
// empType.value === "" ? formDataSalary.positionLine : undefined, //สายงาน
|
||||
// positionPathSide:
|
||||
// empType.value === "" ? formDataSalary.positionPathSide : undefined, // ด้าน/สาขา
|
||||
positionExecutive:
|
||||
empType.value === "" ? formDataSalary.positionExecutive : undefined, //ตำแหน่งทางการบริหาร
|
||||
positionType: formDataSalary.positionType, // ประเภทตำแหน่ง
|
||||
|
|
@ -588,8 +588,12 @@ function onSubmit() {
|
|||
typeof formDataSalary.amountSpecial === "number"
|
||||
? formDataSalary.amountSpecial
|
||||
: Number(formDataSalary?.amountSpecial?.replace(/,/g, "")), //เงินค่าตอบแทนพิเศษ
|
||||
refCommandNo: formDataSalary.refCommandNo, // เลขที่คำสั่ง
|
||||
templateDoc: formDataSalary.doc, // เอกสารอ้างอิง
|
||||
// refCommandNo: formDataSalary.refCommandNo, // เลขที่คำสั่ง
|
||||
// templateDoc: formDataSalary.doc, // เอกสารอ้างอิง
|
||||
posNoAbb: null,
|
||||
positionName: "positionName",
|
||||
remark: "remark",
|
||||
commandCode: "1",
|
||||
};
|
||||
|
||||
try {
|
||||
|
|
@ -785,18 +789,26 @@ async function fetchDataTenure() {
|
|||
}));
|
||||
|
||||
// แปลงข้อมูลจาก data
|
||||
const position = formatData(data.position); //ระยะเวลาดำรงตำแหน่งในสายงาน
|
||||
const posLevel = formatData(data.posLevel); //ระยะเวลาดำรงตำแหน่งตามระดับ
|
||||
const posExecutive = formatData(data.posExecutive); //ระยะเวลาดำรงตำแหน่งทางการบริหาร
|
||||
const position = data.position ? formatData(data.position) : []; //ระยะเวลาดำรงตำแหน่งในสายงาน
|
||||
const posLevel = data.posLevel ? formatData(data.posLevel) : []; //ระยะเวลาดำรงตำแหน่งตามระดับ
|
||||
const posExecutive = data.posExecutive
|
||||
? formatData(data.posExecutive)
|
||||
: []; //ระยะเวลาดำรงตำแหน่งทางการบริหาร
|
||||
|
||||
// นำข้อมูลไปใส่ใน cardData
|
||||
cardData.value[0].data = position;
|
||||
cardData.value[1].data = posLevel;
|
||||
cardData.value[2].data = posExecutive;
|
||||
if (empType.value !== "-employee") {
|
||||
cardData.value[2].data = posExecutive;
|
||||
}
|
||||
|
||||
//เช็คค่า ระยะเวลาดำรงตำแหน่งทางการบริหาร ถ้าไม่มีให้ลบออกจาก cardData
|
||||
if (posExecutive.length === 0) {
|
||||
cardData.value.splice(2, 2);
|
||||
if (
|
||||
posExecutive.length === 0 &&
|
||||
empType.value !== "-employee" &&
|
||||
cardData.value.length > 2
|
||||
) {
|
||||
cardData.value.splice(2, 1);
|
||||
}
|
||||
}
|
||||
})
|
||||
|
|
@ -809,9 +821,13 @@ async function fetchDataTenure() {
|
|||
onMounted(async () => {
|
||||
try {
|
||||
showLoader();
|
||||
if (empType.value === "-employee") {
|
||||
cardData.value.splice(2, 1);
|
||||
}
|
||||
await Promise.all([
|
||||
fetchListSalary(),
|
||||
empType.value === "" ? fetchDataTenure() : Promise.resolve(),
|
||||
fetchDataTenure(),
|
||||
// empType.value === "" ? : Promise.resolve(),
|
||||
]);
|
||||
} finally {
|
||||
hideLoader();
|
||||
|
|
@ -820,7 +836,7 @@ onMounted(async () => {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<div class="row q-col-gutter-sm q-pb-sm" v-if="empType === ''">
|
||||
<div class="row q-col-gutter-sm q-pb-sm">
|
||||
<div class="col" v-for="(item, index) in cardData" :key="index">
|
||||
<q-card bordered class="col-12" style="border: 1px solid #d6dee1">
|
||||
<div class="col-12 text-weight-medium bg-grey-1 q-py-xs q-px-md">
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ const {
|
|||
messageError,
|
||||
pathRegistryEmp,
|
||||
onSearchDataTable,
|
||||
findOrgName,
|
||||
} = useCounterMixin();
|
||||
|
||||
/** props*/
|
||||
|
|
@ -36,7 +37,7 @@ const baseColumns = ref<QTableProps["columns"]>([
|
|||
{
|
||||
name: "commandDateAffect",
|
||||
align: "left",
|
||||
label: "วัน เดือน ปี",
|
||||
label: "วันที่คำสั่งมีผล",
|
||||
sortable: true,
|
||||
field: "commandDateAffect",
|
||||
headerStyle: "font-size: 14px",
|
||||
|
|
@ -47,70 +48,6 @@ const baseColumns = ref<QTableProps["columns"]>([
|
|||
.toString()
|
||||
.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "amount",
|
||||
align: "left",
|
||||
label: empType.value === "-employee" ? "ค่าตอบแทนรายเดือน" : "เงินเดือน",
|
||||
sortable: true,
|
||||
field: "amount",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
format: (v) => Number(v).toLocaleString(),
|
||||
sort: (a: string, b: string) =>
|
||||
a
|
||||
.toString()
|
||||
.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "positionSalaryAmount",
|
||||
align: "left",
|
||||
label: "เงินประจำตำแหน่ง",
|
||||
sortable: true,
|
||||
field: "positionSalaryAmount",
|
||||
headerStyle: "font-size: 14px",
|
||||
format: (v) => Number(v).toLocaleString(),
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a
|
||||
.toString()
|
||||
.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "mouthSalaryAmount",
|
||||
align: "left",
|
||||
label: "เงินค่าตอบแทนรายเดือน",
|
||||
sortable: true,
|
||||
field: "mouthSalaryAmount",
|
||||
headerStyle: "font-size: 14px",
|
||||
format: (v) => Number(v).toLocaleString(),
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a
|
||||
.toString()
|
||||
.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "oc",
|
||||
align: "left",
|
||||
label: "สังกัด",
|
||||
sortable: true,
|
||||
field: "oc",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "positionName",
|
||||
align: "left",
|
||||
label: "ตำแหน่ง",
|
||||
sortable: true,
|
||||
field: "positionName",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "posNo",
|
||||
align: "left",
|
||||
|
|
@ -127,45 +64,40 @@ const baseColumns = ref<QTableProps["columns"]>([
|
|||
: "-";
|
||||
},
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
a
|
||||
.toString()
|
||||
.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "positionLine",
|
||||
name: "positionName",
|
||||
align: "left",
|
||||
label: "สายงาน",
|
||||
label: empType.value === "-employee" ? "ตำแหน่ง" : "ตำแหน่งในสายงาน",
|
||||
sortable: true,
|
||||
field: "positionLine",
|
||||
field: "positionName",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "positionPathSide",
|
||||
align: "left",
|
||||
label: "ด้าน/สาขา",
|
||||
sortable: true,
|
||||
field: "positionPathSide",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
a
|
||||
.toString()
|
||||
.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "positionType",
|
||||
align: "left",
|
||||
label: "ตำแหน่งประเภท",
|
||||
label: empType.value === "-employee" ? "กลุ่มงาน" : "ประเภทตำแหน่ง",
|
||||
sortable: true,
|
||||
field: "positionType",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
a
|
||||
.toString()
|
||||
.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "positionLevel",
|
||||
align: "left",
|
||||
label: "ระดับ",
|
||||
label: empType.value === "-employee" ? "ระดับชั้นงาน" : "ระดับ",
|
||||
sortable: true,
|
||||
field: "positionLevel",
|
||||
format(val, row) {
|
||||
|
|
@ -194,38 +126,47 @@ const baseColumns = ref<QTableProps["columns"]>([
|
|||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "positionExecutiveSide",
|
||||
name: "amount",
|
||||
align: "left",
|
||||
label: "ด้านทางการบริหาร",
|
||||
label: empType.value === "-employee" ? "ค่าตอบแทนรายเดือน" : "เงินเดือน",
|
||||
sortable: true,
|
||||
field: "positionExecutiveSide",
|
||||
field: "amount",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
format: (v) => Number(v).toLocaleString(),
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "salaryClass",
|
||||
align: "left",
|
||||
label: "ตำแหน่ง (รายละเอียด)",
|
||||
sortable: true,
|
||||
field: "salaryClass",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "commandName",
|
||||
align: "left",
|
||||
label: "เอกสารอ้างอิง",
|
||||
sortable: true,
|
||||
field: "commandName",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
a
|
||||
.toString()
|
||||
.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
// {
|
||||
// name: "positionSalaryAmount",
|
||||
// align: "left",
|
||||
// label: "เงินประจำตำแหน่ง",
|
||||
// sortable: true,
|
||||
// field: "positionSalaryAmount",
|
||||
// headerStyle: "font-size: 14px",
|
||||
// style: "font-size: 14px",
|
||||
// format: (v) => Number(v).toLocaleString(),
|
||||
// sort: (a: string, b: string) =>
|
||||
// a
|
||||
// .toString()
|
||||
// .localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
// },
|
||||
// {
|
||||
// name: "mouthSalaryAmount",
|
||||
// align: "left",
|
||||
// label: "เงินค่าตอบแทนรายเดือน",
|
||||
// sortable: true,
|
||||
// field: "mouthSalaryAmount",
|
||||
// headerStyle: "font-size: 14px",
|
||||
// style: "font-size: 14px",
|
||||
// format: (v) => Number(v).toLocaleString(),
|
||||
// sort: (a: string, b: string) =>
|
||||
// a
|
||||
// .toString()
|
||||
// .localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
// },
|
||||
{
|
||||
name: "refCommandNo",
|
||||
align: "left",
|
||||
|
|
@ -242,6 +183,51 @@ const baseColumns = ref<QTableProps["columns"]>([
|
|||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "commandName",
|
||||
align: "left",
|
||||
label: "ประเภทคำสั่ง",
|
||||
sortable: true,
|
||||
field: "commandName",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "commandDateSign",
|
||||
align: "left",
|
||||
label: "วันที่ลงนาม",
|
||||
sortable: true,
|
||||
field: "commandDateSign",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
format: (v) => date2Thai(v),
|
||||
sort: (a: string, b: string) =>
|
||||
a
|
||||
.toString()
|
||||
.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "organization",
|
||||
align: "left",
|
||||
label: "สังกัด",
|
||||
sortable: true,
|
||||
field: "organization",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
format(val, row) {
|
||||
return findOrgName({
|
||||
root: row.orgRoot,
|
||||
child1: row.orgChild1,
|
||||
child2: row.orgChild2,
|
||||
child3: row.orgChild3,
|
||||
child4: row.orgChild4,
|
||||
});
|
||||
},
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "remark",
|
||||
align: "left",
|
||||
|
|
@ -253,48 +239,22 @@ const baseColumns = ref<QTableProps["columns"]>([
|
|||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "lastUpdateFullName",
|
||||
align: "left",
|
||||
label: "ผู้ดำเนินการ",
|
||||
sortable: true,
|
||||
field: "lastUpdateFullName",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "lastUpdatedAt",
|
||||
align: "left",
|
||||
label: "วันที่แก้ไข",
|
||||
sortable: true,
|
||||
field: "lastUpdatedAt",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
format: (v) => date2Thai(v, false, true),
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
]);
|
||||
const visibleColumns = ref<string[]>([
|
||||
"commandDateAffect",
|
||||
"amount",
|
||||
"positionSalaryAmount",
|
||||
"mouthSalaryAmount",
|
||||
"oc",
|
||||
"positionName",
|
||||
"posNo",
|
||||
"positionLine",
|
||||
"positionPathSide",
|
||||
"positionName",
|
||||
"positionType",
|
||||
"positionLevel",
|
||||
"positionExecutive",
|
||||
"positionExecutiveSide",
|
||||
"salaryClass",
|
||||
"commandDateSign",
|
||||
"commandName",
|
||||
"refCommandNo",
|
||||
"remark",
|
||||
"organization",
|
||||
"lastUpdateFullName",
|
||||
"lastUpdatedAt",
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -1,12 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import {
|
||||
ref,
|
||||
reactive,
|
||||
onMounted,
|
||||
watch,
|
||||
defineAsyncComponent,
|
||||
computed,
|
||||
} from "vue";
|
||||
import { ref, reactive, onMounted, watch, defineAsyncComponent } from "vue";
|
||||
import { useQuasar } from "quasar";
|
||||
|
||||
import http from "@/plugins/http";
|
||||
|
|
@ -340,9 +333,7 @@ function clearSelect(t: string) {
|
|||
fetchDataPerson();
|
||||
}
|
||||
|
||||
/**
|
||||
* ฟังก์ชันดึงข้อโครงสร้าง
|
||||
*/
|
||||
/** ฟังก์ชันดึงข้อโครงสร้าง*/
|
||||
async function fetchTree() {
|
||||
const data = await fetchStructureTree(route.meta.Key as string);
|
||||
if (store.routerName !== route.name) {
|
||||
|
|
@ -466,366 +457,366 @@ onMounted(async () => {
|
|||
</div>
|
||||
</q-form>
|
||||
|
||||
<div class="row q-mt-sm q-gutter-sm">
|
||||
<q-btn-dropdown
|
||||
flat
|
||||
rounded
|
||||
dense
|
||||
label-color="white"
|
||||
dropdown-icon="mdi-chevron-down"
|
||||
class="q-pl-sm"
|
||||
@click="() => ((selectNode = true), showLoader())"
|
||||
>
|
||||
<template v-slot:label>
|
||||
{{
|
||||
`${
|
||||
store.labelOption.node !== "เลือกหน่วยงาน"
|
||||
? store.labelOption.node
|
||||
: empType === "officer"
|
||||
? "เลือกหน่วยงาน/ส่วนราชการ"
|
||||
: "เลือกหน่วยงาน"
|
||||
}`
|
||||
}}
|
||||
<q-btn
|
||||
v-if="
|
||||
store.labelOption.node !== 'เลือกหน่วยงาน' &&
|
||||
store.labelOption.node !== 'เลือกหน่วยงาน/ส่วนราชการ'
|
||||
<div class="row">
|
||||
<div class="col-10">
|
||||
<div class="row q-mt-sm q-gutter-sm">
|
||||
<q-btn-dropdown
|
||||
flat
|
||||
rounded
|
||||
dense
|
||||
label-color="white"
|
||||
dropdown-icon="mdi-chevron-down"
|
||||
class="q-pl-sm"
|
||||
@click="() => ((selectNode = true), showLoader())"
|
||||
>
|
||||
<template v-slot:label>
|
||||
{{
|
||||
`${
|
||||
store.labelOption.node !== "เลือกหน่วยงาน"
|
||||
? store.labelOption.node
|
||||
: empType === "officer"
|
||||
? "เลือกหน่วยงาน/ส่วนราชการ"
|
||||
: "เลือกหน่วยงาน"
|
||||
}`
|
||||
}}
|
||||
<q-btn
|
||||
v-if="
|
||||
store.labelOption.node !== 'เลือกหน่วยงาน' &&
|
||||
store.labelOption.node !== 'เลือกหน่วยงาน/ส่วนราชการ'
|
||||
"
|
||||
size="10px"
|
||||
flat
|
||||
round
|
||||
color="white"
|
||||
icon="close"
|
||||
@click.stop.prevent="clearSelect('org')"
|
||||
/>
|
||||
</template>
|
||||
</q-btn-dropdown>
|
||||
|
||||
<q-toggle
|
||||
v-if="store.formFilter.nodeId"
|
||||
v-model="store.formFilter.isAll"
|
||||
color="primary"
|
||||
label="แสดงทุกตำแหน่ง"
|
||||
class="q-pr-sm"
|
||||
@update:model-value="getSearch"
|
||||
>
|
||||
<q-tooltip
|
||||
>แสดงทุกตำแหน่งที่อยู่ภายใต้หน่วยงาน/ส่วนราชการที่เลือก</q-tooltip
|
||||
>
|
||||
</q-toggle>
|
||||
|
||||
<q-separator inset vertical class="lineFil" />
|
||||
|
||||
<q-btn-dropdown
|
||||
rounded
|
||||
flat
|
||||
dense
|
||||
label-color="white"
|
||||
dropdown-icon="mdi-chevron-down"
|
||||
class="q-px-sm"
|
||||
>
|
||||
<template v-slot:label>
|
||||
{{
|
||||
store.labelOption.posType !== "ทั้งหมด"
|
||||
? store.labelOption.posType
|
||||
: empType === "officer"
|
||||
? `ตำแหน่งประเภท${store.labelOption.posType}`
|
||||
: `กลุ่มงาน${store.labelOption.posType}`
|
||||
}}
|
||||
<q-btn
|
||||
v-if="store.labelOption.posType !== 'ทั้งหมด'"
|
||||
size="10px"
|
||||
flat
|
||||
round
|
||||
color="white"
|
||||
icon="close"
|
||||
@click.stop.prevent="clearSelect('posType')"
|
||||
/>
|
||||
</template>
|
||||
<q-list>
|
||||
<q-item
|
||||
v-for="(item, index) in store.posTypeOps"
|
||||
:key="index"
|
||||
clickable
|
||||
v-close-popup
|
||||
@click="selectPosType(item)"
|
||||
>
|
||||
<q-item-section>
|
||||
<q-item-label>{{ item.name }}</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-btn-dropdown>
|
||||
|
||||
<!-- <q-separator inset vertical class="lineFil" /> -->
|
||||
<q-btn-dropdown
|
||||
flat
|
||||
dense
|
||||
rounded
|
||||
label-color="white"
|
||||
dropdown-icon="mdi-chevron-down"
|
||||
class="q-px-sm"
|
||||
:disable="
|
||||
store.labelOption.posType === 'ทั้งหมด' ? true : false
|
||||
"
|
||||
size="10px"
|
||||
flat
|
||||
round
|
||||
color="white"
|
||||
icon="close"
|
||||
@click.stop.prevent="clearSelect('org')"
|
||||
/>
|
||||
</template>
|
||||
</q-btn-dropdown>
|
||||
>
|
||||
<template v-slot:label>
|
||||
{{
|
||||
store.labelOption.posLevel !== "ทั้งหมด"
|
||||
? store.labelOption.posLevel
|
||||
: empType === "officer"
|
||||
? `ระดับ${store.labelOption.posLevel}`
|
||||
: `ระดับชั้นงาน${store.labelOption.posLevel}`
|
||||
}}
|
||||
<q-btn
|
||||
size="10px"
|
||||
flat
|
||||
round
|
||||
color="white"
|
||||
icon="close"
|
||||
v-if="store.labelOption.posLevel !== 'ทั้งหมด'"
|
||||
@click.stop.prevent="clearSelect('posLevel')"
|
||||
/>
|
||||
</template>
|
||||
<q-list
|
||||
:style="store.posLevelOps.length > 9 ? 'height: 450px' : ''"
|
||||
>
|
||||
<q-item
|
||||
v-for="(item, index) in store.posLevelOps"
|
||||
:key="index"
|
||||
clickable
|
||||
v-close-popup
|
||||
@click="selectPosLevel(item)"
|
||||
>
|
||||
<q-item-section>
|
||||
<q-item-label>{{ item.name }}</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-btn-dropdown>
|
||||
|
||||
<q-toggle
|
||||
v-if="store.formFilter.nodeId"
|
||||
v-model="store.formFilter.isAll"
|
||||
color="primary"
|
||||
label="แสดงทุกตำแหน่ง"
|
||||
class="q-pr-sm"
|
||||
@update:model-value="getSearch"
|
||||
>
|
||||
<q-tooltip
|
||||
>แสดงทุกตำแหน่งที่อยู่ภายใต้หน่วยงาน/ส่วนราชการที่เลือก</q-tooltip
|
||||
<q-space />
|
||||
|
||||
<!-- <q-separator
|
||||
inset
|
||||
vertical
|
||||
class="lineFil"
|
||||
v-if="empType !== 'officer' && store.formFilter.nodeId"
|
||||
/> -->
|
||||
|
||||
<!-- <q-toggle
|
||||
v-if="empType !== 'officer' && store.formFilter.nodeId"
|
||||
v-model="store.formFilter.isAll"
|
||||
color="primary"
|
||||
label="แสดงตำแหน่งทั้งหมด"
|
||||
@update:model-value="getSearch"
|
||||
/> -->
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="row q-gutter-sm justify-start"
|
||||
v-if="empType !== 'officer'"
|
||||
>
|
||||
</q-toggle>
|
||||
|
||||
<q-separator inset vertical class="lineFil" />
|
||||
|
||||
<q-btn-dropdown
|
||||
rounded
|
||||
flat
|
||||
dense
|
||||
label-color="white"
|
||||
dropdown-icon="mdi-chevron-down"
|
||||
class="q-px-sm"
|
||||
>
|
||||
<template v-slot:label>
|
||||
{{
|
||||
store.labelOption.posType !== "ทั้งหมด"
|
||||
? store.labelOption.posType
|
||||
: empType === "officer"
|
||||
? `ตำแหน่งประเภท${store.labelOption.posType}`
|
||||
: `กลุ่มงาน${store.labelOption.posType}`
|
||||
}}
|
||||
<q-btn
|
||||
v-if="store.labelOption.posType !== 'ทั้งหมด'"
|
||||
size="10px"
|
||||
flat
|
||||
round
|
||||
color="white"
|
||||
icon="close"
|
||||
@click.stop.prevent="clearSelect('posType')"
|
||||
<q-toggle
|
||||
v-model="store.formFilter.isShowRetire"
|
||||
color="primary"
|
||||
label="แสดงข้อมูลผู้พ้นจากราชการ"
|
||||
class="q-pr-sm"
|
||||
@update:model-value="getSearch"
|
||||
/>
|
||||
</template>
|
||||
<q-list>
|
||||
<q-item
|
||||
v-for="(item, index) in store.posTypeOps"
|
||||
:key="index"
|
||||
clickable
|
||||
v-close-popup
|
||||
@click="selectPosType(item)"
|
||||
>
|
||||
<q-item-section>
|
||||
<q-item-label>{{ item.name }}</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-btn-dropdown>
|
||||
|
||||
<!-- <q-separator inset vertical class="lineFil" /> -->
|
||||
<q-btn-dropdown
|
||||
flat
|
||||
dense
|
||||
rounded
|
||||
label-color="white"
|
||||
dropdown-icon="mdi-chevron-down"
|
||||
class="q-px-sm"
|
||||
:disable="store.labelOption.posType === 'ทั้งหมด' ? true : false"
|
||||
>
|
||||
<template v-slot:label>
|
||||
{{
|
||||
store.labelOption.posLevel !== "ทั้งหมด"
|
||||
? store.labelOption.posLevel
|
||||
: empType === "officer"
|
||||
? `ระดับ${store.labelOption.posLevel}`
|
||||
: `ระดับชั้นงาน${store.labelOption.posLevel}`
|
||||
}}
|
||||
<q-btn
|
||||
size="10px"
|
||||
<q-btn-dropdown
|
||||
v-if="store.formFilter.isShowRetire"
|
||||
rounded
|
||||
flat
|
||||
round
|
||||
color="white"
|
||||
icon="close"
|
||||
v-if="store.labelOption.posLevel !== 'ทั้งหมด'"
|
||||
@click.stop.prevent="clearSelect('posLevel')"
|
||||
/>
|
||||
</template>
|
||||
<q-list
|
||||
:style="store.posLevelOps.length > 9 ? 'height: 450px' : ''"
|
||||
>
|
||||
<q-item
|
||||
v-for="(item, index) in store.posLevelOps"
|
||||
:key="index"
|
||||
clickable
|
||||
v-close-popup
|
||||
@click="selectPosLevel(item)"
|
||||
dense
|
||||
label-color="white"
|
||||
dropdown-icon="mdi-chevron-down"
|
||||
class="q-px-sm"
|
||||
>
|
||||
<q-item-section>
|
||||
<q-item-label>{{ item.name }}</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-btn-dropdown>
|
||||
<template v-slot:label>
|
||||
{{
|
||||
store.labelOption.retireType !== "ทั้งหมด"
|
||||
? store.labelOption.retireType
|
||||
: `${store.labelOption.retireType}`
|
||||
}}
|
||||
<q-btn
|
||||
v-if="store.labelOption.retireType !== 'ทั้งหมด'"
|
||||
size="10px"
|
||||
flat
|
||||
round
|
||||
color="white"
|
||||
icon="close"
|
||||
@click.stop.prevent="clearSelect('retireType')"
|
||||
/>
|
||||
</template>
|
||||
<q-list>
|
||||
<q-item
|
||||
v-for="(item, index) in store.retireTypeEmpOps"
|
||||
:key="index"
|
||||
clickable
|
||||
v-close-popup
|
||||
@click="selectRetireType(item)"
|
||||
>
|
||||
<q-item-section>
|
||||
<q-item-label>{{ item.name }}</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-btn-dropdown>
|
||||
|
||||
<q-space />
|
||||
<div class="q-pt-sm q-pr-sm">
|
||||
<!-- <a href="/report/registry" class="text-white">
|
||||
การค้นหาขั้นสูง
|
||||
<q-tooltip
|
||||
>ไปยังหน้าการค้นหาขั้นสูง (Advanced search)</q-tooltip
|
||||
<q-separator inset vertical class="lineFil" />
|
||||
|
||||
<q-btn-dropdown
|
||||
rounded
|
||||
flat
|
||||
dense
|
||||
label-color="white"
|
||||
dropdown-icon="mdi-chevron-down"
|
||||
class="q-px-sm"
|
||||
>
|
||||
</a> -->
|
||||
<q-btn
|
||||
flat
|
||||
@click="goToAdvancedSearch"
|
||||
class="text-white"
|
||||
style="text-decoration: underline"
|
||||
label="การค้นหาขั้นสูง"
|
||||
<template v-slot:label>
|
||||
{{
|
||||
`ลำดับการแสดผล ${
|
||||
store.formFilter.dateAppoint
|
||||
? store.formFilter.dateAppoint === "ASC"
|
||||
? "เก่า-ล่าสุด"
|
||||
: "ล่าสุด-เก่า"
|
||||
: ""
|
||||
}`
|
||||
}}
|
||||
</template>
|
||||
<q-list>
|
||||
<q-item
|
||||
v-for="(item, index) in store.displayOrderOps"
|
||||
:key="index"
|
||||
clickable
|
||||
v-close-popup
|
||||
@click="selectDisplayOrderType(item)"
|
||||
>
|
||||
<q-item-section>
|
||||
<q-item-label>{{ item.name }}</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-btn-dropdown>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-if="empType === 'officer'"
|
||||
class="row q-gutter-sm justify-start"
|
||||
>
|
||||
<q-tooltip
|
||||
>ไปยังหน้าการค้นหาขั้นสูง (Advanced search)</q-tooltip
|
||||
<q-toggle
|
||||
v-model="store.formFilter.isProbation"
|
||||
color="primary"
|
||||
label="ทดลองปฏิบัติหน้าที่ราชการ"
|
||||
class="q-pr-sm"
|
||||
@update:model-value="getSearch"
|
||||
/>
|
||||
|
||||
<q-separator inset vertical class="lineFil" />
|
||||
|
||||
<q-toggle
|
||||
v-model="store.formFilter.isShowRetire"
|
||||
color="primary"
|
||||
label="แสดงข้อมูลผู้พ้นจากราชการ"
|
||||
class="q-pr-sm"
|
||||
@update:model-value="getSearch"
|
||||
/>
|
||||
|
||||
<q-btn-dropdown
|
||||
v-if="store.formFilter.isShowRetire"
|
||||
rounded
|
||||
flat
|
||||
dense
|
||||
label-color="white"
|
||||
dropdown-icon="mdi-chevron-down"
|
||||
>
|
||||
</q-btn>
|
||||
<template v-slot:label>
|
||||
{{
|
||||
store.labelOption.retireType !== "ทั้งหมด"
|
||||
? store.labelOption.retireType
|
||||
: `${store.labelOption.retireType}`
|
||||
}}
|
||||
<q-btn
|
||||
v-if="store.labelOption.retireType !== 'ทั้งหมด'"
|
||||
size="10px"
|
||||
flat
|
||||
round
|
||||
color="white"
|
||||
icon="close"
|
||||
@click.stop.prevent="clearSelect('retireType')"
|
||||
/>
|
||||
</template>
|
||||
<q-list>
|
||||
<q-item
|
||||
v-for="(item, index) in store.retireTypeOps"
|
||||
:key="index"
|
||||
clickable
|
||||
v-close-popup
|
||||
@click="selectRetireType(item)"
|
||||
>
|
||||
<q-item-section>
|
||||
<q-item-label>{{ item.name }}</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-btn-dropdown>
|
||||
|
||||
<q-separator inset vertical class="lineFil" />
|
||||
|
||||
<!-- <q-toggle
|
||||
v-if="store.formFilter.nodeId"
|
||||
v-model="store.formFilter.isAll"
|
||||
color="primary"
|
||||
label="แสดงตำแหน่งทั้งหมด"
|
||||
@update:model-value="getSearch"
|
||||
/> -->
|
||||
|
||||
<q-btn-dropdown
|
||||
rounded
|
||||
flat
|
||||
dense
|
||||
label-color="white"
|
||||
dropdown-icon="mdi-chevron-down"
|
||||
class="q-px-sm"
|
||||
>
|
||||
<template v-slot:label>
|
||||
{{ store.labelOption.sortName }}
|
||||
</template>
|
||||
<q-list>
|
||||
<q-item
|
||||
v-for="(item, index) in store.displayOrderOps"
|
||||
:key="index"
|
||||
clickable
|
||||
v-close-popup
|
||||
@click="selectDisplayOrderType(item)"
|
||||
>
|
||||
<q-item-section>
|
||||
<q-item-label>{{ item.name }}</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-btn-dropdown>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<q-separator
|
||||
inset
|
||||
vertical
|
||||
class="lineFil"
|
||||
v-if="empType !== 'officer' && store.formFilter.nodeId"
|
||||
/>
|
||||
|
||||
<q-toggle
|
||||
v-if="empType !== 'officer' && store.formFilter.nodeId"
|
||||
v-model="store.formFilter.isAll"
|
||||
color="primary"
|
||||
label="แสดงตำแหน่งทั้งหมด"
|
||||
@update:model-value="getSearch"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="row q-gutter-sm justify-start"
|
||||
v-if="empType !== 'officer'"
|
||||
>
|
||||
<q-toggle
|
||||
v-model="store.formFilter.isShowRetire"
|
||||
color="primary"
|
||||
label="แสดงข้อมูลผู้พ้นจากราชการ"
|
||||
class="q-pr-sm"
|
||||
@update:model-value="getSearch"
|
||||
/>
|
||||
<q-btn-dropdown
|
||||
v-if="store.formFilter.isShowRetire"
|
||||
rounded
|
||||
flat
|
||||
dense
|
||||
label-color="white"
|
||||
dropdown-icon="mdi-chevron-down"
|
||||
class="q-px-sm"
|
||||
>
|
||||
<template v-slot:label>
|
||||
{{
|
||||
store.labelOption.retireType !== "ทั้งหมด"
|
||||
? store.labelOption.retireType
|
||||
: `${store.labelOption.retireType}`
|
||||
}}
|
||||
<div class="col-2">
|
||||
<div class="q-pt-sm flex justify-end">
|
||||
<q-btn
|
||||
v-if="store.labelOption.retireType !== 'ทั้งหมด'"
|
||||
size="10px"
|
||||
flat
|
||||
round
|
||||
color="white"
|
||||
icon="close"
|
||||
@click.stop.prevent="clearSelect('retireType')"
|
||||
/>
|
||||
</template>
|
||||
<q-list>
|
||||
<q-item
|
||||
v-for="(item, index) in store.retireTypeEmpOps"
|
||||
:key="index"
|
||||
clickable
|
||||
v-close-popup
|
||||
@click="selectRetireType(item)"
|
||||
@click="goToAdvancedSearch"
|
||||
class="text-white"
|
||||
style="text-decoration: underline"
|
||||
label="การค้นหาขั้นสูง"
|
||||
>
|
||||
<q-item-section>
|
||||
<q-item-label>{{ item.name }}</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-btn-dropdown>
|
||||
|
||||
<q-separator inset vertical class="lineFil" />
|
||||
|
||||
<q-btn-dropdown
|
||||
rounded
|
||||
flat
|
||||
dense
|
||||
label-color="white"
|
||||
dropdown-icon="mdi-chevron-down"
|
||||
class="q-px-sm"
|
||||
>
|
||||
<template v-slot:label>
|
||||
{{
|
||||
`ลำดับการแสดผล ${
|
||||
store.formFilter.dateAppoint
|
||||
? store.formFilter.dateAppoint === "ASC"
|
||||
? "เก่า-ล่าสุด"
|
||||
: "ล่าสุด-เก่า"
|
||||
: ""
|
||||
}`
|
||||
}}
|
||||
</template>
|
||||
<q-list>
|
||||
<q-item
|
||||
v-for="(item, index) in store.displayOrderOps"
|
||||
:key="index"
|
||||
clickable
|
||||
v-close-popup
|
||||
@click="selectDisplayOrderType(item)"
|
||||
>
|
||||
<q-item-section>
|
||||
<q-item-label>{{ item.name }}</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-btn-dropdown>
|
||||
<q-tooltip
|
||||
>ไปยังหน้าการค้นหาขั้นสูง (Advanced search)</q-tooltip
|
||||
>
|
||||
</q-btn>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-if="empType === 'officer'"
|
||||
class="row q-gutter-sm justify-start"
|
||||
>
|
||||
<q-toggle
|
||||
v-model="store.formFilter.isProbation"
|
||||
color="primary"
|
||||
label="ทดลองปฏิบัติหน้าที่ราชการ"
|
||||
class="q-pr-sm"
|
||||
@update:model-value="getSearch"
|
||||
/>
|
||||
|
||||
<q-separator inset vertical class="lineFil" />
|
||||
|
||||
<q-toggle
|
||||
v-model="store.formFilter.isShowRetire"
|
||||
color="primary"
|
||||
label="แสดงข้อมูลผู้พ้นจากราชการ"
|
||||
class="q-pr-sm"
|
||||
@update:model-value="getSearch"
|
||||
/>
|
||||
|
||||
<q-btn-dropdown
|
||||
v-if="store.formFilter.isShowRetire"
|
||||
rounded
|
||||
flat
|
||||
dense
|
||||
label-color="white"
|
||||
dropdown-icon="mdi-chevron-down"
|
||||
>
|
||||
<template v-slot:label>
|
||||
{{
|
||||
store.labelOption.retireType !== "ทั้งหมด"
|
||||
? store.labelOption.retireType
|
||||
: `${store.labelOption.retireType}`
|
||||
}}
|
||||
<q-btn
|
||||
v-if="store.labelOption.retireType !== 'ทั้งหมด'"
|
||||
size="10px"
|
||||
flat
|
||||
round
|
||||
color="white"
|
||||
icon="close"
|
||||
@click.stop.prevent="clearSelect('retireType')"
|
||||
/>
|
||||
</template>
|
||||
<q-list>
|
||||
<q-item
|
||||
v-for="(item, index) in store.retireTypeOps"
|
||||
:key="index"
|
||||
clickable
|
||||
v-close-popup
|
||||
@click="selectRetireType(item)"
|
||||
>
|
||||
<q-item-section>
|
||||
<q-item-label>{{ item.name }}</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-btn-dropdown>
|
||||
|
||||
<q-separator inset vertical class="lineFil" />
|
||||
|
||||
<!-- <q-toggle
|
||||
v-if="store.formFilter.nodeId"
|
||||
v-model="store.formFilter.isAll"
|
||||
color="primary"
|
||||
label="แสดงตำแหน่งทั้งหมด"
|
||||
@update:model-value="getSearch"
|
||||
/> -->
|
||||
|
||||
<q-btn-dropdown
|
||||
rounded
|
||||
flat
|
||||
dense
|
||||
label-color="white"
|
||||
dropdown-icon="mdi-chevron-down"
|
||||
class="q-px-sm"
|
||||
>
|
||||
<template v-slot:label>
|
||||
{{ store.labelOption.sortName }}
|
||||
</template>
|
||||
<q-list>
|
||||
<q-item
|
||||
v-for="(item, index) in store.displayOrderOps"
|
||||
:key="index"
|
||||
clickable
|
||||
v-close-popup
|
||||
@click="selectDisplayOrderType(item)"
|
||||
>
|
||||
<q-item-section>
|
||||
<q-item-label>{{ item.name }}</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-btn-dropdown>
|
||||
</div>
|
||||
<!-- <div class="row justify-center">
|
||||
<a href="/report/registry" class="text-white"> Advanced search </a>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
|
|
|||
|
|
@ -38,8 +38,13 @@ const { fetchStructureTree } = useStructureTree();
|
|||
|
||||
const storeMenu = useMenuDataStore();
|
||||
|
||||
const { messageError, showLoader, hideLoader, date2Thai, formatDatePosition } =
|
||||
useCounterMixin();
|
||||
const {
|
||||
messageError,
|
||||
showLoader,
|
||||
hideLoader,
|
||||
date2Thai,
|
||||
formatDatePositionReport,
|
||||
} = useCounterMixin();
|
||||
|
||||
const loadingBtn = ref<boolean>(false);
|
||||
const total = ref<number>(0);
|
||||
|
|
@ -560,13 +565,13 @@ async function onSearch() {
|
|||
dateAppoint: item.dateAppoint ?? "-",
|
||||
age: item.age ?? "-",
|
||||
positionDate:
|
||||
formatDatePosition(
|
||||
formatDatePositionReport(
|
||||
item.positionDate?.Years,
|
||||
item.positionDate?.Months,
|
||||
item.positionDate?.Days
|
||||
) ?? "-",
|
||||
levelDate:
|
||||
formatDatePosition(
|
||||
formatDatePositionReport(
|
||||
item.levelDate?.posExecutiveYears,
|
||||
item.levelDate?.posExecutiveMonths,
|
||||
item.levelDate?.posExecutiveDays
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue