Merge branch 'develop' into devTee
This commit is contained in:
commit
479ffd1e55
13 changed files with 2963 additions and 859 deletions
|
|
@ -1,15 +1,11 @@
|
|||
VITE_S3CLUSTER_PUBLIC_URL: "https://s3cluster.frappet.com/bma-ehr-fpt/organization/strueture/"
|
||||
|
||||
VITE_COMPETITIVE_EXAM_PANEL: "https://hrms-dash.bangkok.go.th/goto/KO0GpSu4z?orgId=1"
|
||||
VITE_QUALIFY_DISABLE_EMAM_PANEL: "https://hrms-dash.bangkok.go.th/goto/dQQzpIX4z?orgId=1"
|
||||
VITE_QUALIFY_EXAM_PANEL: "https://hrms-dash.bangkok.go.th/goto/cj1ZtIX4z?orgId=1"
|
||||
|
||||
VITE_API_PUBLISH_URL: "https://bma-ehr-publish.frappet.synology.me"
|
||||
VITE_API_REPORT_URL: "https://report-server.frappet.synology.me/api/v1/"
|
||||
VITE_MANUAL_URL: "https://bma-ehr-manual.frappet.synology.me"
|
||||
VITE_URL_SSO: "http://localhost:3002/sso"
|
||||
VITE_URL_LANDING: "http://localhost:3002"
|
||||
VITE_API_URI_CONFIG: "https://hrms.chin.in.th/api/v1"
|
||||
VITE_API_URI_REPORT_CONFIG: "https://bma-ehr.frappet.synology.me/api/v2/"
|
||||
|
||||
VITE_DASHBOARD_PANEL: "https://bma-dashboard.frappet.synology.me"
|
||||
VITE_COMPETITIVE_EXAM_PANEL=VITE_COMPETITIVE_EXAM_PANEL
|
||||
VITE_QUALIFY_DISABLE_EMAM_PANEL=VITE_QUALIFY_DISABLE_EMAM_PANEL
|
||||
VITE_QUALIFY_EXAM_PANEL=VITE_QUALIFY_EXAM_PANEL
|
||||
VITE_API_PUBLISH_URL=VITE_API_PUBLISH_URL
|
||||
VITE_API_REPORT_URL=VITE_API_REPORT_URL
|
||||
VITE_MANUAL_URL=VITE_MANUAL_URL
|
||||
VITE_URL_SSO=VITE_URL_SSO
|
||||
VITE_URL_LANDING=VITE_URL_LANDING
|
||||
VITE_API_URI_CONFIG=VITE_API_URI_CONFIG
|
||||
VITE_API_URI_REPORT_CONFIG=VITE_API_URI_REPORT_CONFIG
|
||||
VITE_DASHBOARD_PANEL=VITE_DASHBOARD_PANEL
|
||||
|
|
@ -44,8 +44,7 @@ export default {
|
|||
profileNewInsignByProfileId: (profileId: string, type: string) =>
|
||||
`${registryNew}${type}/insignia/${profileId}`,
|
||||
|
||||
orgInsigniaActive: () =>
|
||||
`${org}/insignia/insignia-type/active`,
|
||||
orgInsigniaActive: () => `${org}/insignia/insignia-type/active`,
|
||||
|
||||
profileNewInsignById: (dataId: string, type: string) =>
|
||||
`${registryNew}${type}/insignia/${dataId}`,
|
||||
|
|
@ -169,6 +168,17 @@ export default {
|
|||
leaveListCard: (id: string, type: string) =>
|
||||
`${registryNew}${type}/leave/admin/${id}`, //noPermission
|
||||
|
||||
/** ตำแหน่ง*/
|
||||
profileSalaryPositionNew: (type: string) => `${registryNew}${type}/salary/position`,
|
||||
profileListSalaryPositionNew: (id: string, type: string) =>
|
||||
`${registryNew}${type}/salary/position/${id}`,
|
||||
profileListSalaryPositionHistoryNew: (profileId: string, type: string) =>
|
||||
`${registryNew}${type}/salary/position/admin/history/${profileId}`,
|
||||
profileSalaryPositionSwapNew: (type: string, id: string, type2: string) =>
|
||||
`${registryNew}${type2}/salary/position/swap/${type}/${id}`,
|
||||
salaryListCardPosition: (id: string, type: string) =>
|
||||
`${registryNew}${type}/salary/position/admin/${id}`, //noPermission
|
||||
|
||||
/** ตำแหน่งเงินเดือน*/
|
||||
profileSalaryNew: (type: string) => `${registryNew}${type}/salary`,
|
||||
profileListSalaryNew: (id: string, type: string) =>
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ const columns = ref<QTableProps["columns"]>([
|
|||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
format(val, row) {
|
||||
return row.status ? "Active" : "-";
|
||||
return row.status ? "ใช้งาน" : "-";
|
||||
},
|
||||
},
|
||||
]);
|
||||
|
|
@ -444,7 +444,7 @@ onMounted(() => {
|
|||
<div class="col-3" v-else>-</div>
|
||||
<div class="col-3 text-grey-6 text-weight-medium">สถานะ</div>
|
||||
<div class="col-3">
|
||||
{{ props.row.status ? "Active" : "-" }}
|
||||
{{ props.row.status ? "ใช้งาน" : "-" }}
|
||||
</div>
|
||||
</div>
|
||||
<q-separator />
|
||||
|
|
@ -572,7 +572,7 @@ onMounted(() => {
|
|||
<q-checkbox
|
||||
disable
|
||||
v-model="formData.status"
|
||||
label="Active"
|
||||
label="ใช้งาน"
|
||||
keep-color="primary"
|
||||
/>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ const columns = ref<QTableProps["columns"]>([
|
|||
sortable: true,
|
||||
field: "status",
|
||||
format(val, row) {
|
||||
return row.status ? "Active" : "-";
|
||||
return row.status ? "ใช้งาน" : "-";
|
||||
},
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,394 @@
|
|||
<script setup lang="ts">
|
||||
import { ref, watch, computed } from "vue";
|
||||
import { useQuasar } from "quasar";
|
||||
|
||||
import { useRoute } from "vue-router";
|
||||
import { useCounterMixin } from "@/stores/mixin";
|
||||
import http from "@/plugins/http";
|
||||
import config from "@/app.config";
|
||||
|
||||
import type { QTableProps } from "quasar";
|
||||
import type { ResListSalary } from "@/modules/04_registryPerson/interface/response/Salary";
|
||||
|
||||
import DialogHeader from "@/components/DialogHeader.vue";
|
||||
|
||||
const $q = useQuasar();
|
||||
const route = useRoute();
|
||||
const {
|
||||
date2Thai,
|
||||
showLoader,
|
||||
hideLoader,
|
||||
messageError,
|
||||
pathRegistryEmp,
|
||||
onSearchDataTable,
|
||||
} = useCounterMixin();
|
||||
|
||||
/** props*/
|
||||
const modal = defineModel<boolean>("modal", { required: true });
|
||||
const salaryId = defineModel<string>("salaryId", { required: true });
|
||||
|
||||
const empType = ref<string>(pathRegistryEmp(route.name?.toString() ?? ""));
|
||||
|
||||
const rows = ref<ResListSalary[]>([]); //รายการข้อมูลประวัติการแก้ไข
|
||||
const rowsMain = ref<ResListSalary[]>([]); //รายการข้อมูลประวัติการแก้ไข
|
||||
const keyword = ref<string>(""); //คำค้นหา
|
||||
const baseColumns = ref<QTableProps["columns"]>([
|
||||
{
|
||||
name: "commandDateAffect",
|
||||
align: "left",
|
||||
label: "วัน เดือน ปี",
|
||||
sortable: true,
|
||||
field: "commandDateAffect",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
format: (v) => date2Thai(v),
|
||||
},
|
||||
{
|
||||
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(),
|
||||
},
|
||||
{
|
||||
name: "positionSalaryAmount",
|
||||
align: "left",
|
||||
label: "เงินประจำตำแหน่ง",
|
||||
sortable: true,
|
||||
field: "positionSalaryAmount",
|
||||
headerStyle: "font-size: 14px",
|
||||
format: (v) => Number(v).toLocaleString(),
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
{
|
||||
name: "mouthSalaryAmount",
|
||||
align: "left",
|
||||
label: "เงินค่าตอบแทนรายเดือน",
|
||||
sortable: true,
|
||||
field: "mouthSalaryAmount",
|
||||
headerStyle: "font-size: 14px",
|
||||
format: (v) => Number(v).toLocaleString(),
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
{
|
||||
name: "oc",
|
||||
align: "left",
|
||||
label: "สังกัด",
|
||||
sortable: true,
|
||||
field: "oc",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
{
|
||||
name: "positionName",
|
||||
align: "left",
|
||||
label: "ตำแหน่ง",
|
||||
sortable: true,
|
||||
field: "positionName",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
{
|
||||
name: "posNo",
|
||||
align: "left",
|
||||
label: "ตำแหน่งเลขที่",
|
||||
sortable: true,
|
||||
field: "posNo",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
format(val, row) {
|
||||
return row.posNoAbb && row.posNo
|
||||
? `${row.posNoAbb}${row.posNo}`
|
||||
: row.posNo
|
||||
? row.posNo
|
||||
: "-";
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "positionLine",
|
||||
align: "left",
|
||||
label: "สายงาน",
|
||||
sortable: true,
|
||||
field: "positionLine",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
{
|
||||
name: "positionPathSide",
|
||||
align: "left",
|
||||
label: "ด้าน/สาขา",
|
||||
sortable: true,
|
||||
field: "positionPathSide",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
{
|
||||
name: "positionType",
|
||||
align: "left",
|
||||
label: "ตำแหน่งประเภท",
|
||||
sortable: true,
|
||||
field: "positionType",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
{
|
||||
name: "positionLevel",
|
||||
align: "left",
|
||||
label: "ระดับ",
|
||||
sortable: true,
|
||||
field: "positionLevel",
|
||||
format(val, row) {
|
||||
return `${
|
||||
row.positionLevel
|
||||
? row.positionLevel
|
||||
: row.positionCee
|
||||
? row.positionCee
|
||||
: "-"
|
||||
}`;
|
||||
},
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
{
|
||||
name: "positionExecutive",
|
||||
align: "left",
|
||||
label: "ตำแหน่งทางการบริหาร",
|
||||
sortable: true,
|
||||
field: "positionExecutive",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
{
|
||||
name: "positionExecutiveSide",
|
||||
align: "left",
|
||||
label: "ด้านทางการบริหาร",
|
||||
sortable: true,
|
||||
field: "positionExecutiveSide",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
{
|
||||
name: "salaryClass",
|
||||
align: "left",
|
||||
label: "ตำแหน่ง (รายละเอียด)",
|
||||
sortable: true,
|
||||
field: "salaryClass",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
{
|
||||
name: "commandName",
|
||||
align: "left",
|
||||
label: "เอกสารอ้างอิง",
|
||||
sortable: true,
|
||||
field: "commandName",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
{
|
||||
name: "refCommandNo",
|
||||
align: "left",
|
||||
label: "เลขที่คำสั่ง",
|
||||
sortable: true,
|
||||
field: "refCommandNo",
|
||||
format(val, row) {
|
||||
return row.commandNo && row.commandYear
|
||||
? `${row.commandNo}/${row.commandYear}`
|
||||
: "";
|
||||
},
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
{
|
||||
name: "remark",
|
||||
align: "left",
|
||||
label: "หมายเหตุ",
|
||||
sortable: true,
|
||||
field: "remark",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
{
|
||||
name: "lastUpdateFullName",
|
||||
align: "left",
|
||||
label: "ผู้ดำเนินการ",
|
||||
sortable: true,
|
||||
field: "lastUpdateFullName",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
{
|
||||
name: "lastUpdatedAt",
|
||||
align: "left",
|
||||
label: "วันที่แก้ไข",
|
||||
sortable: true,
|
||||
field: "lastUpdatedAt",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
format: (v) => date2Thai(v, false, true),
|
||||
},
|
||||
]);
|
||||
const visibleColumns = ref<string[]>([
|
||||
"commandDateAffect",
|
||||
"amount",
|
||||
"positionSalaryAmount",
|
||||
"mouthSalaryAmount",
|
||||
"oc",
|
||||
"positionName",
|
||||
"posNo",
|
||||
"positionLine",
|
||||
"positionPathSide",
|
||||
"positionType",
|
||||
"positionLevel",
|
||||
"positionExecutive",
|
||||
"positionExecutiveSide",
|
||||
"salaryClass",
|
||||
"commandName",
|
||||
"refCommandNo",
|
||||
"remark",
|
||||
"lastUpdateFullName",
|
||||
"lastUpdatedAt",
|
||||
]);
|
||||
const columns = computed(() => {
|
||||
if (empType.value === "-employee") {
|
||||
if (baseColumns.value) {
|
||||
return baseColumns.value.filter(
|
||||
(column) =>
|
||||
column.name !== "positionSalaryAmount" &&
|
||||
column.name !== "mouthSalaryAmount"
|
||||
);
|
||||
}
|
||||
}
|
||||
return baseColumns.value;
|
||||
});
|
||||
const pagination = ref({
|
||||
page: 1,
|
||||
rowsPerPage: 10,
|
||||
});
|
||||
|
||||
/** function fetch ข้อมูลประวัติการแก้ไข*/
|
||||
function fetchListHistory() {
|
||||
showLoader();
|
||||
http
|
||||
.get(
|
||||
config.API.profileListSalaryPositionHistoryNew(
|
||||
salaryId.value,
|
||||
empType.value
|
||||
)
|
||||
)
|
||||
.then((res) => {
|
||||
rows.value = res.data.result;
|
||||
rowsMain.value = res.data.result;
|
||||
})
|
||||
.catch((err) => {
|
||||
messageError($q, err);
|
||||
})
|
||||
.finally(() => {
|
||||
hideLoader();
|
||||
});
|
||||
}
|
||||
|
||||
/** ฟังก์ชันปิด Popup*/
|
||||
function closeDialog() {
|
||||
modal.value = false;
|
||||
keyword.value = "";
|
||||
rows.value = [];
|
||||
}
|
||||
|
||||
/** ฟังก์ค้นหาข้อมูลรายการวินัย */
|
||||
function serchDataTable() {
|
||||
rows.value = onSearchDataTable(
|
||||
keyword.value,
|
||||
rowsMain.value,
|
||||
columns.value ? columns.value : []
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* ดูการเปลี่ยนแปลงของ modal
|
||||
* ถ้า modal เป็น true เรียก getHistory เพิ่อดึงข้อมูลประวัติการแก้ไข
|
||||
*/
|
||||
watch(
|
||||
() => modal.value,
|
||||
() => {
|
||||
modal.value && fetchListHistory();
|
||||
}
|
||||
);
|
||||
</script>
|
||||
<template>
|
||||
<q-dialog v-model="modal" persistent>
|
||||
<q-card style="min-width: 80%">
|
||||
<DialogHeader
|
||||
:tittle="'ประวัติแก้ไขตำแหน่ง/เงินเดือน'"
|
||||
:close="closeDialog"
|
||||
/>
|
||||
<q-separator color="grey-4" />
|
||||
<q-card-section style="max-height: 60vh" class="scroll">
|
||||
<div class="row q-gutter-sm q-mb-sm">
|
||||
<q-space />
|
||||
<q-input
|
||||
dense
|
||||
outlined
|
||||
v-model="keyword"
|
||||
label="ค้นหา"
|
||||
class="q-mr-sm"
|
||||
@keydown.enter.pervent="serchDataTable"
|
||||
>
|
||||
<template v-slot:append>
|
||||
<q-icon name="search" />
|
||||
</template>
|
||||
</q-input>
|
||||
|
||||
<q-select
|
||||
v-model="visibleColumns"
|
||||
multiple
|
||||
outlined
|
||||
dense
|
||||
options-dense
|
||||
:display-value="$q.lang.table.columns"
|
||||
emit-value
|
||||
map-options
|
||||
:options="columns"
|
||||
option-value="name"
|
||||
style="min-width: 140px"
|
||||
/>
|
||||
</div>
|
||||
<d-table
|
||||
ref="table"
|
||||
row-key="id"
|
||||
flat
|
||||
bordered
|
||||
dense
|
||||
:columns="columns"
|
||||
:rows="rows"
|
||||
:paging="true"
|
||||
v-model:pagination="pagination"
|
||||
:rows-per-page-options="[10, 20, 50, 100]"
|
||||
:visible-columns="visibleColumns"
|
||||
>
|
||||
<template v-slot:header="props">
|
||||
<q-tr :props="props">
|
||||
<q-th v-for="col in props.cols" :key="col.name" :props="props">
|
||||
<span class="text-weight-medium">{{ col.label }}</span>
|
||||
</q-th>
|
||||
</q-tr>
|
||||
</template>
|
||||
<template v-slot:body="props">
|
||||
<q-tr :props="props">
|
||||
<q-td v-for="col in props.cols">
|
||||
<div class="table_ellipsis">
|
||||
{{ col.value ? col.value : "-" }}
|
||||
</div>
|
||||
</q-td>
|
||||
</q-tr>
|
||||
</template>
|
||||
</d-table>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
</template>
|
||||
|
||||
<style scoped></style>
|
||||
|
|
@ -1,5 +1,10 @@
|
|||
<script setup lang="ts">
|
||||
import { ref } from "vue";
|
||||
import { useCounterMixin } from "@/stores/mixin";
|
||||
import { useRoute } from "vue-router";
|
||||
|
||||
const { pathRegistryEmp } = useCounterMixin();
|
||||
const route = useRoute();
|
||||
|
||||
/** importComponents*/
|
||||
import Info from "@/modules/04_registryPerson/components/detail/GovernmentInformation/01_Info.vue"; //ข้อมูลราชการ
|
||||
|
|
@ -11,9 +16,12 @@ import HelpGovernmentDetail from "@/modules/04_registryPerson/components/detail/
|
|||
import Postion from "@/modules/04_registryPerson/components/detail/GovernmentInformation/07_Position.vue";
|
||||
import { useRegistryNewDataStore } from "@/modules/04_registryPerson/store";
|
||||
|
||||
const empType = ref<string>(pathRegistryEmp(route.name?.toString() ?? ""));
|
||||
|
||||
const tab = ref<string>("1");
|
||||
const storeRegistry = useRegistryNewDataStore();
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="row items-center q-my-md">
|
||||
<div class="text-dark row items-center q-px-md">
|
||||
|
|
@ -35,11 +43,11 @@ const storeRegistry = useRegistryNewDataStore();
|
|||
>
|
||||
<q-tab name="1" label="ข้อมูลราชการ" />
|
||||
<q-tab name="7" label="ตำแหน่ง" />
|
||||
<q-tab v-if="empType != '-employee'" name="5" label="รักษาการในตำแหน่ง" />
|
||||
<q-tab v-if="empType != '-employee'" name="6" label="ช่วยราชการ" />
|
||||
<q-tab name="2" label="วินัย" />
|
||||
<q-tab name="3" label="การลา" />
|
||||
<q-tab name="4" label="ปฏิบัติราชการพิเศษ" />
|
||||
<q-tab name="5" label="รักษาการในตำแหน่ง" />
|
||||
<q-tab name="6" label="ช่วยราชการ" />
|
||||
</q-tabs>
|
||||
<q-separator />
|
||||
|
||||
|
|
@ -56,10 +64,10 @@ const storeRegistry = useRegistryNewDataStore();
|
|||
<q-tab-panel name="4">
|
||||
<PerformSpecialWork :is-leave="storeRegistry.isLeave" />
|
||||
</q-tab-panel>
|
||||
<q-tab-panel name="5">
|
||||
<q-tab-panel v-if="empType != '-employee'" name="5">
|
||||
<ActingPos :is-leave="storeRegistry.isLeave" />
|
||||
</q-tab-panel>
|
||||
<q-tab-panel name="6">
|
||||
<q-tab-panel v-if="empType != '-employee'" name="6">
|
||||
<HelpGovernmentDetail :is-leave="storeRegistry.isLeave" />
|
||||
</q-tab-panel>
|
||||
<q-tab-panel name="7">
|
||||
|
|
|
|||
|
|
@ -60,11 +60,11 @@ const command = ref<string>("");
|
|||
const commandId = ref<string>("");
|
||||
const baseColumns = ref<QTableProps["columns"]>([
|
||||
{
|
||||
name: "date",
|
||||
name: "commandDateAffect",
|
||||
align: "left",
|
||||
label: "วัน เดือน ปี",
|
||||
sortable: true,
|
||||
field: "date",
|
||||
field: "commandDateAffect",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
format: (v) => date2Thai(v),
|
||||
|
|
@ -108,13 +108,20 @@ const baseColumns = ref<QTableProps["columns"]>([
|
|||
field: "posNo",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
format(val, row) {
|
||||
return row.posNoAbb && row.posNo
|
||||
? `${row.posNoAbb}${row.posNo}`
|
||||
: row.posNo
|
||||
? row.posNo
|
||||
: "-";
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "position",
|
||||
name: "positionName",
|
||||
align: "left",
|
||||
label: "ตำแหน่ง",
|
||||
sortable: true,
|
||||
field: "position",
|
||||
field: "positionName",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
|
|
@ -133,16 +140,24 @@ const baseColumns = ref<QTableProps["columns"]>([
|
|||
label: "ระดับ",
|
||||
sortable: true,
|
||||
field: "positionLevel",
|
||||
format(val, row) {
|
||||
return `${
|
||||
row.positionLevel
|
||||
? row.positionLevel
|
||||
: row.positionCee
|
||||
? row.positionCee
|
||||
: "-"
|
||||
}`;
|
||||
},
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
|
||||
{
|
||||
name: "templateDoc",
|
||||
name: "commandName",
|
||||
align: "left",
|
||||
label: "เอกสารอ้างอิง",
|
||||
sortable: true,
|
||||
field: "templateDoc",
|
||||
field: "commandName",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
|
|
@ -152,6 +167,20 @@ const baseColumns = ref<QTableProps["columns"]>([
|
|||
label: "เลขที่คำสั่ง",
|
||||
sortable: true,
|
||||
field: "refCommandNo",
|
||||
format(val, row) {
|
||||
return row.commandNo && row.commandYear
|
||||
? `${row.commandNo}/${row.commandYear}`
|
||||
: "";
|
||||
},
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
{
|
||||
name: "remark",
|
||||
align: "left",
|
||||
label: "หมายเหตุ",
|
||||
sortable: true,
|
||||
field: "remark",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
|
|
@ -169,16 +198,17 @@ const columns = computed(() => {
|
|||
return baseColumns.value;
|
||||
});
|
||||
const visibleColumns = ref<string[]>([
|
||||
"date",
|
||||
"commandDateAffect",
|
||||
"amount",
|
||||
"positionSalaryAmount",
|
||||
"mouthSalaryAmount",
|
||||
"posNo",
|
||||
"position",
|
||||
"positionName",
|
||||
"positionType",
|
||||
"positionLevel",
|
||||
"templateDoc",
|
||||
"commandName",
|
||||
"refCommandNo",
|
||||
"remark",
|
||||
]);
|
||||
const pagination = ref({
|
||||
page: 1,
|
||||
|
|
|
|||
|
|
@ -34,11 +34,11 @@ const rowsMain = ref<ResListSalary[]>([]); //รายการข้อมู
|
|||
const keyword = ref<string>(""); //คำค้นหา
|
||||
const baseColumns = ref<QTableProps["columns"]>([
|
||||
{
|
||||
name: "date",
|
||||
name: "commandDateAffect",
|
||||
align: "left",
|
||||
label: "วัน เดือน ปี",
|
||||
sortable: true,
|
||||
field: "date",
|
||||
field: "commandDateAffect",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
format: (v) => date2Thai(v),
|
||||
|
|
@ -83,11 +83,11 @@ const baseColumns = ref<QTableProps["columns"]>([
|
|||
style: "font-size: 14px",
|
||||
},
|
||||
{
|
||||
name: "position",
|
||||
name: "positionName",
|
||||
align: "left",
|
||||
label: "ตำแหน่ง",
|
||||
sortable: true,
|
||||
field: "position",
|
||||
field: "positionName",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
|
|
@ -99,6 +99,13 @@ const baseColumns = ref<QTableProps["columns"]>([
|
|||
field: "posNo",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
format(val, row) {
|
||||
return row.posNoAbb && row.posNo
|
||||
? `${row.posNoAbb}${row.posNo}`
|
||||
: row.posNo
|
||||
? row.posNo
|
||||
: "-";
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "positionLine",
|
||||
|
|
@ -133,6 +140,15 @@ const baseColumns = ref<QTableProps["columns"]>([
|
|||
label: "ระดับ",
|
||||
sortable: true,
|
||||
field: "positionLevel",
|
||||
format(val, row) {
|
||||
return `${
|
||||
row.positionLevel
|
||||
? row.positionLevel
|
||||
: row.positionCee
|
||||
? row.positionCee
|
||||
: "-"
|
||||
}`;
|
||||
},
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
|
|
@ -164,11 +180,11 @@ const baseColumns = ref<QTableProps["columns"]>([
|
|||
style: "font-size: 14px",
|
||||
},
|
||||
{
|
||||
name: "templateDoc",
|
||||
name: "commandName",
|
||||
align: "left",
|
||||
label: "เอกสารอ้างอิง",
|
||||
sortable: true,
|
||||
field: "templateDoc",
|
||||
field: "commandName",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
|
|
@ -178,6 +194,20 @@ const baseColumns = ref<QTableProps["columns"]>([
|
|||
label: "เลขที่คำสั่ง",
|
||||
sortable: true,
|
||||
field: "refCommandNo",
|
||||
format(val, row) {
|
||||
return row.commandNo && row.commandYear
|
||||
? `${row.commandNo}/${row.commandYear}`
|
||||
: "";
|
||||
},
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
{
|
||||
name: "remark",
|
||||
align: "left",
|
||||
label: "หมายเหตุ",
|
||||
sortable: true,
|
||||
field: "remark",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
|
|
@ -202,12 +232,12 @@ const baseColumns = ref<QTableProps["columns"]>([
|
|||
},
|
||||
]);
|
||||
const visibleColumns = ref<string[]>([
|
||||
"date",
|
||||
"commandDateAffect",
|
||||
"amount",
|
||||
"positionSalaryAmount",
|
||||
"mouthSalaryAmount",
|
||||
"oc",
|
||||
"position",
|
||||
"positionName",
|
||||
"posNo",
|
||||
"positionLine",
|
||||
"positionPathSide",
|
||||
|
|
@ -216,8 +246,9 @@ const visibleColumns = ref<string[]>([
|
|||
"positionExecutive",
|
||||
"positionExecutiveSide",
|
||||
"salaryClass",
|
||||
"templateDoc",
|
||||
"commandName",
|
||||
"refCommandNo",
|
||||
"remark",
|
||||
"lastUpdateFullName",
|
||||
"lastUpdatedAt",
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -23,7 +23,16 @@ interface ResListSalary {
|
|||
profileId: string;
|
||||
refCommandNo: string;
|
||||
templateDoc: string;
|
||||
commandCode: string;
|
||||
commandDateAffect: string;
|
||||
commandDateSign: string;
|
||||
commandId: string;
|
||||
commandName: string;
|
||||
commandNo: string;
|
||||
commandYear: string;
|
||||
positionName: string;
|
||||
positionCee: string;
|
||||
posNoAbb: string;
|
||||
}
|
||||
|
||||
interface ResType {
|
||||
|
|
|
|||
|
|
@ -458,14 +458,14 @@ onMounted(async () => {
|
|||
</div>
|
||||
</q-form>
|
||||
|
||||
<div class="row q-mt-sm q-gutter-sm justify-center">
|
||||
<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-px-sm"
|
||||
class="q-pl-sm"
|
||||
@click="() => ((selectNode = true), showLoader())"
|
||||
>
|
||||
<template v-slot:label>
|
||||
|
|
@ -493,6 +493,19 @@ onMounted(async () => {
|
|||
</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
|
||||
|
|
@ -581,6 +594,16 @@ onMounted(async () => {
|
|||
</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
|
||||
>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<q-separator
|
||||
inset
|
||||
vertical
|
||||
|
|
@ -597,13 +620,14 @@ onMounted(async () => {
|
|||
/>
|
||||
</div>
|
||||
<div
|
||||
class="row q-gutter-sm justify-center"
|
||||
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
|
||||
|
|
@ -619,7 +643,7 @@ onMounted(async () => {
|
|||
{{
|
||||
store.labelOption.retireType !== "ทั้งหมด"
|
||||
? store.labelOption.retireType
|
||||
: `ประเภท${store.labelOption.retireType}`
|
||||
: `${store.labelOption.retireType}`
|
||||
}}
|
||||
<q-btn
|
||||
v-if="store.labelOption.retireType !== 'ทั้งหมด'"
|
||||
|
|
@ -685,12 +709,13 @@ onMounted(async () => {
|
|||
|
||||
<div
|
||||
v-if="empType === 'officer'"
|
||||
class="row q-gutter-sm justify-center"
|
||||
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"
|
||||
/>
|
||||
|
||||
|
|
@ -700,6 +725,7 @@ onMounted(async () => {
|
|||
v-model="store.formFilter.isShowRetire"
|
||||
color="primary"
|
||||
label="แสดงข้อมูลผู้พ้นจากราชการ"
|
||||
class="q-pr-sm"
|
||||
@update:model-value="getSearch"
|
||||
/>
|
||||
|
||||
|
|
@ -710,13 +736,12 @@ onMounted(async () => {
|
|||
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}`
|
||||
: `${store.labelOption.retireType}`
|
||||
}}
|
||||
<q-btn
|
||||
v-if="store.labelOption.retireType !== 'ทั้งหมด'"
|
||||
|
|
@ -745,13 +770,13 @@ onMounted(async () => {
|
|||
|
||||
<q-separator inset vertical class="lineFil" />
|
||||
|
||||
<q-toggle
|
||||
<!-- <q-toggle
|
||||
v-if="store.formFilter.nodeId"
|
||||
v-model="store.formFilter.isAll"
|
||||
color="primary"
|
||||
label="แสดงตำแหน่งทั้งหมด"
|
||||
@update:model-value="getSearch"
|
||||
/>
|
||||
/> -->
|
||||
|
||||
<q-btn-dropdown
|
||||
rounded
|
||||
|
|
@ -779,6 +804,9 @@ onMounted(async () => {
|
|||
</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>
|
||||
|
|
|
|||
|
|
@ -73,6 +73,15 @@ watch(
|
|||
async () => {
|
||||
if (modal.value) {
|
||||
await fetchTree();
|
||||
|
||||
if (!orgName.value) {
|
||||
nodeData.name = "";
|
||||
nodeData.node = "";
|
||||
nodeData.nodeId = "";
|
||||
store.formFilter.node = null;
|
||||
store.formFilter.nodeId = null;
|
||||
expanded.value = [];
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
|
|
@ -143,8 +152,8 @@ watch(
|
|||
<q-separator />
|
||||
|
||||
<q-card-actions align="right">
|
||||
<q-btn label="ค้นหา" color="secondary" @click="sendNode">
|
||||
<q-tooltip>ค้นหา</q-tooltip></q-btn
|
||||
<q-btn label="เลือก" color="secondary" @click="sendNode">
|
||||
<q-tooltip>เลือก</q-tooltip></q-btn
|
||||
>
|
||||
</q-card-actions>
|
||||
</q-card>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue