diff --git a/src/modules/12_evaluatePersonal/components/Detail/viewstep/tableStep1.vue b/src/modules/12_evaluatePersonal/components/Detail/viewstep/tableStep1.vue
index 73d9001d6..1bb0da6c4 100644
--- a/src/modules/12_evaluatePersonal/components/Detail/viewstep/tableStep1.vue
+++ b/src/modules/12_evaluatePersonal/components/Detail/viewstep/tableStep1.vue
@@ -23,6 +23,23 @@ const props = defineProps({
virtual-scroll
class="row col-12"
>
+
+
+
+ {{ col.label }}
+
+
+
+
+
+
+
+
+ {{ !col.value ? "-" : col.value }}
+
+
+
+
diff --git a/src/modules/12_evaluatePersonal/components/Detail/viewstep/viewStep1.vue b/src/modules/12_evaluatePersonal/components/Detail/viewstep/viewStep1.vue
index 244a78daa..c7759be51 100644
--- a/src/modules/12_evaluatePersonal/components/Detail/viewstep/viewStep1.vue
+++ b/src/modules/12_evaluatePersonal/components/Detail/viewstep/viewStep1.vue
@@ -20,7 +20,7 @@ const {
columnsCertificates,
columnSalaries,
columnTraining,
- columnProjectsProposed,
+ columnAssessments,
} = store;
const { date2Thai, showLoader, hideLoader } = mixin;
@@ -42,7 +42,7 @@ const formDetail = reactive({
position: "", //ตำแหน่ง
oc: "", //สังกัด
salary: "", //เงินเดือน
- positionLevel: "", //ระดับปัจจุบัน,ระดับที่ประเมิน
+ positionLevel: "", //ระดับปัจจุบัน,ระดับที่ประเมิน
posNo: "", //ตำแหน่งเลขที่
birthDate: "", //วันเดือนปีเกิด
govAge: "", //อายุราชการ
@@ -60,20 +60,20 @@ function formattedNumber(x: number) {
onMounted(() => {
if (props.data) {
showLoader();
- formDetail.prefix = props.data.prefix;
- formDetail.fullName = props.data.fullName;
- formDetail.position = props.data.position;
- formDetail.oc = props.data.oc;
+ formDetail.prefix = props.data.prefix ?? "-";
+ formDetail.fullName = props.data.fullName ?? "-";
+ formDetail.position = props.data.position ?? "-";
+ formDetail.oc = props.data.oc ?? "-";
formDetail.salary = props.data.salary
? formattedNumber(props.data.salary)
: "-";
- formDetail.positionLevel = props.data.positionLevel;
- formDetail.posNo = props.data.posNo;
- formDetail.birthDate =
- props.data.birthDate && date2Thai(props.data.birthDate);
- formDetail.govAge = props.data.govAge;
+ formDetail.positionLevel = props.data.positionLevel ?? "-";
+ formDetail.posNo = props.data.posNo ?? "-";
+ formDetail.birthDate = props.data.birthDate
+ ? date2Thai(props.data.birthDate)
+ : "-";
+ formDetail.govAge = props.data.govAge ?? "-";
formDetail.educations = props.data.educations;
-
formDetail.certificates = props.data.certificates
? props.data.certificates.map((e: CertificatesForm) => ({
certificateNo: e.certificateNo,
@@ -255,7 +255,9 @@ onMounted(() => {
@@ -264,7 +266,7 @@ onMounted(() => {
@@ -272,7 +274,9 @@ onMounted(() => {
@@ -282,7 +286,9 @@ onMounted(() => {
@@ -291,7 +297,9 @@ onMounted(() => {
@@ -311,7 +319,7 @@ onMounted(() => {
@@ -320,7 +328,7 @@ onMounted(() => {
@@ -328,7 +336,7 @@ onMounted(() => {
@@ -337,7 +345,7 @@ onMounted(() => {
@@ -346,10 +354,16 @@ onMounted(() => {
+
+
+
ไม่มีประวัติการศึกษา
@@ -403,7 +417,10 @@ onMounted(() => {
diff --git a/src/modules/12_evaluatePersonal/store/EvaluateDetail.ts b/src/modules/12_evaluatePersonal/store/EvaluateDetail.ts
index e349d1a36..2887fdca6 100644
--- a/src/modules/12_evaluatePersonal/store/EvaluateDetail.ts
+++ b/src/modules/12_evaluatePersonal/store/EvaluateDetail.ts
@@ -1,8 +1,13 @@
import { defineStore } from "pinia";
import { ref } from "vue";
+import { useCounterMixin } from "@/stores/mixin";
+
import type { QTableProps } from "quasar";
+const mixin = useCounterMixin();
+const { date2Thai } = mixin;
+
export const useEvaluateDetailStore = defineStore("evaluateDetailStore", () => {
const tabMenu = ref("1");
const step = ref(1);
@@ -237,54 +242,119 @@ export const useEvaluateDetailStore = defineStore("evaluateDetailStore", () => {
]);
/** คอลัมน์ ผลงานที่เคยเสนอขอประเมิน*/
- const columnProjectsProposed = ref([
+ const columnAssessments = ref([
{
- name: "receivedDate",
- align: "center",
+ name: "date",
+ align: "left",
label: "วันที่ได้รับ",
sortable: true,
- field: "receivedDate",
+ field: "date",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
+ format: (v) => date2Thai(v),
},
{
- name: "authority",
+ name: "point1Total",
align: "left",
- label: "ผู้มีอำนาจลงนาม",
+ label: "ส่วนที่1 (น้ำหนัก)",
sortable: true,
- field: "authority",
+ field: "point1Total",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
+ sort: (a: string, b: string) =>
+ a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
},
{
- name: "datail",
+ name: "point1",
align: "left",
- label: "รายละเอียด",
+ label: "ผลประเมินส่วนที่1 (คะแนน)",
sortable: true,
- field: "detail",
+ field: "point1",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
+ sort: (a: string, b: string) =>
+ a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
},
{
- name: "orderNumber",
+ name: "point2Total",
align: "left",
- label: "เลขที่คำสั่ง",
+ label: "ส่วนที่2 (น้ำหนัก)",
sortable: true,
- field: "orderNumber",
+ field: "point2Total",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
+ sort: (a: string, b: string) =>
+ a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
},
{
- name: "doc",
+ name: "point2",
align: "left",
- label: "เอกสารอ้างอิง",
+ label: "ผลประเมินส่วนที่2 (คะแนน)",
sortable: true,
- field: "doc",
+ field: "point2",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
+ sort: (a: string, b: string) =>
+ a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
+ },
+ {
+ name: "pointSumTotal",
+ align: "left",
+ label: "ผลรวม (น้ำหนัก)",
+ sortable: true,
+ field: "pointSumTotal",
+ headerStyle: "font-size: 14px",
+ style: "font-size: 14px",
+ sort: (a: string, b: string) =>
+ a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
+ },
+ {
+ name: "pointSum",
+ align: "left",
+ label: "ผลประเมินรวม (คะแนน)",
+ sortable: true,
+ field: "pointSum",
+ headerStyle: "font-size: 14px",
+ style: "font-size: 14px",
+ sort: (a: string, b: string) =>
+ a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
+ },
+ {
+ name: "name",
+ align: "left",
+ label: "ผลประเมิน",
+ sortable: true,
+ field: "name",
+ format(val, row) {
+ return `${textPoint(row.pointSum)} ${textRangePoint(row.pointSum)}`;
+ },
+ headerStyle: "font-size: 14px",
+ style: "font-size: 14px",
+ sort: (a: string, b: string) =>
+ a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
},
]);
+ function textRangePoint(val: number | undefined) {
+ if (val == undefined) val = -1;
+ if (val < 60.0) return "(คะแนนต่ำกว่าร้อยละ 60.00)";
+ if (val >= 60.0 && val <= 69.99) return "(คะแนนร้อยละ 60.00 - 69.99)";
+ if (val >= 70.0 && val <= 79.99) return "(คะแนนร้อยละ 70.00 - 79.99)";
+ if (val >= 80.0 && val <= 89.99) return " (คะแนนร้อยละ 80.00 - 89.99)";
+ if (val >= 90.0) return " (คะแนนร้อยละ 90.00 ขึ้นไป)";
+ else return "";
+ }
+
+ function textPoint(val: number | undefined) {
+ if (val == undefined) val = -1;
+ if (val < 60.0) return "ต้องปรับปรุง";
+ if (val >= 60.0 && val <= 69.99) return "พอใช้";
+ if (val >= 70.0 && val <= 79.99) return "ดี";
+ if (val >= 80.0 && val <= 89.99) return "ดีมาก";
+ if (val >= 90.0) return "ดีเด่น";
+ else return "-";
+ }
+
return {
tabMenu,
step,
@@ -294,7 +364,7 @@ export const useEvaluateDetailStore = defineStore("evaluateDetailStore", () => {
columnsCertificates,
columnSalaries,
columnTraining,
- columnProjectsProposed,
+ columnAssessments,
pdfSrcStore,
urlDownloadFile,
numOfPagesStore,