เงินเดือน,รายงาน KPI

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2024-07-11 18:10:59 +07:00
parent 45aac3b5a5
commit 4462ee6bee
9 changed files with 1034 additions and 206 deletions

View file

@ -13,6 +13,7 @@ import DialogFormEdit from "@/modules/13_salary/components/SalaryEmployeeLists/D
import DialogMoveGroup from "@/modules/13_salary/components/SalaryEmployeeLists/DialogMoveGroup.vue";
import DialogMoveLevel from "@/modules/13_salary/components/SalaryEmployeeLists/DialogMoveLevel.vue";
import DialogProperties from "@/modules/13_salary/components/SalaryEmployeeLists/DialogProperties.vue";
import DialogInfo from "@/modules/13_salary/components/DialogInfoMain.vue";
/** importStore*/
import { useCounterMixin } from "@/stores/mixin";
@ -137,24 +138,6 @@ const columns = ref<QTableProps["columns"]>([
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "duration",
align: "center",
label: "ระยะเวลาการปฏิบัติราชการในรอบครึ่งปี",
sortable: false,
field: "duration",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "isPunish",
align: "center",
label: "ไม่ถูกลงโทษทางวินัย",
sortable: false,
field: "isPunish",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "isSuspension",
align: "center",
@ -165,20 +148,29 @@ const columns = ref<QTableProps["columns"]>([
style: "font-size: 14px",
},
{
name: "isAbsent",
name: "posSalary",
align: "center",
label: "ไม่ขาดราชการ",
label: "ประวัติตำแหน่ง/เงินเดือน",
sortable: false,
field: "isAbsent",
field: "posSalary",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "isLeave",
name: "discipline",
align: "center",
label: "วันลาไม่เกิน",
label: "วินัย",
sortable: false,
field: "isLeave",
field: "discipline",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "leave",
align: "center",
label: "การลา",
sortable: false,
field: "leave",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
@ -192,13 +184,12 @@ const visibleColumns = ref<string[]>([
"amount",
"organization",
"result",
"duration",
"isPunish",
"isSuspension",
"isAbsent",
"isLeave",
"group",
"salaryLevel",
"posSalary",
"discipline",
"leave",
]);
/** modalDialog*/
@ -207,6 +198,7 @@ const modalDialogForm = ref<boolean>(false);
const modalDialogMoveGroup = ref<boolean>(false);
const modalDialogMoveLeve = ref<boolean>(false);
const modalDialogProperties = ref<boolean>(false);
const modalDialogInfo = ref<boolean>(false);
/** ตัวแปร*/
const profileId = ref<string>("");
@ -311,6 +303,13 @@ watch(
updatePagePagination();
}
);
const infoType = ref<string>("");
function onClickViewInfo(type: string, id: string) {
infoType.value = type;
profileId.value = id;
modalDialogInfo.value = true;
}
</script>
<template>
@ -410,58 +409,7 @@ watch(
}${props.row.root ? props.row.root : ""}`
}}
</div>
<!-- <div v-else-if="col.name === 'isResult'">
<q-checkbox
disable
keep-color
color="primary"
v-model="props.row.isResult"
/>
</div>
<div v-else-if="col.name === 'isDuration'">
<q-checkbox
disable
keep-color
color="primary"
v-model="props.row.isDuration"
/>
</div>
<div v-else-if="col.name === 'isPunish'">
<q-checkbox
disable
keep-color
color="primary"
v-model="props.row.isPunish"
/>
</div>
<div v-else-if="col.name === 'isRetired'">
<q-checkbox
disable
keep-color
color="primary"
v-model="props.row.isRetired"
/>
</div>
<div v-else-if="col.name === 'isRetired2'">
<q-checkbox
disable
keep-color
color="primary"
v-model="props.row.isRetired2"
false
/>
</div> -->
<div v-else-if="col.name == 'isPunish'">
<q-icon
v-if="props.row.isPunish !== null"
:name="props.row.isPunish ? 'done' : 'close'"
:color="props.row.isPunish ? 'primary' : 'red'"
size="24px"
/>
<div v-else-if="props.row.isPunish == null">
{{ props.row.isPunish == null ? "-" : "" }}
</div>
</div>
<div v-else-if="col.name == 'isSuspension'">
<q-icon
v-if="props.row.isSuspension !== null"
@ -473,31 +421,30 @@ watch(
{{ props.row.isSuspension == null ? "-" : "" }}
</div>
</div>
<div v-else-if="col.name == 'isAbsent'">
<q-icon
v-if="props.row.isAbsent !== null"
:name="props.row.isAbsent ? 'done' : 'close'"
:color="props.row.isAbsent ? 'primary' : 'red'"
size="24px"
/>
<div v-else-if="props.row.isAbsent == null">
{{ props.row.isAbsent == null ? "-" : "" }}
</div>
</div>
<div v-else-if="col.name == 'amount'">
{{ Number(props.row.amount).toLocaleString() }}
</div>
<div v-else-if="col.name == 'isLeave'">
<q-icon
v-if="props.row.isLeave !== null"
:name="props.row.isLeave ? 'done' : 'close'"
:color="props.row.isLeave ? 'primary' : 'red'"
size="24px"
/>
<div v-else-if="props.row.isLeave == null">
{{ props.row.isLeave == null ? "-" : "" }}
</div>
<div
v-else-if="
col.name == 'posSalary' ||
col.name == 'discipline' ||
col.name == 'leave'
"
>
<q-btn
flat
dense
icon="info"
class="q-pa-none q-ml-xs"
color="info"
size="12px"
@click.pervent="onClickViewInfo(col.name, props.row.profileId)"
>
</q-btn>
</div>
<div v-else>
{{ col.value ? col.value : "-" }}
</div>
@ -593,6 +540,7 @@ watch(
v-model:modal="modalDialogMoveLeve"
v-model:profileId="profileId"
:fetchData="props.fetchDataTable"
:remark="''"
/>
<DialogProperties
v-model:modal="modalDialogProperties"
@ -603,6 +551,13 @@ watch(
:is-leave="isLeave"
:fetch-data="props.fetchDataTable"
/>
<DialogInfo
v-model:modal="modalDialogInfo"
v-model:profileId="profileId"
:type="infoType"
:employeeClass="'-employee'"
/>
</template>
<style scoped></style>