diff --git a/.env.production b/.env.production index 0c77635..e85ca8e 100644 --- a/.env.production +++ b/.env.production @@ -1,5 +1,5 @@ VITE_API_URI_CONFIG=VITE_API_URI_CONFIG VITE_API_PUBLISH_URL=VITE_API_PUBLISH_URL VITE_MANUAL_URL=VITE_MANUAL_URL -VITE_URL_SSO: VITE_URL_SSO +VITE_URL_SSO=VITE_URL_SSO VITE_API_REPORT_URL=VITE_API_REPORT_URL \ No newline at end of file diff --git a/src/api/index.ts b/src/api/index.ts index 90fc5db..a45d8af 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -26,8 +26,6 @@ const config = ref({ production: { API_URI: apiUrlConfig, API_URL_SUPPORT: `${apiUrlConfig}/support`, - API_URI_ORG_TREE: - "https://s3cluster.frappet.com/bma-ehr-fpt/organization/strueture/tree_20230707_115124.json", MEET_URI: "meet.frappet.com", LINK_EVALUATE_PUBLISH: apiUrlConfigPublish, API_REPORT_TEMPLATE_URI: apiUrlConfigReport, diff --git a/src/api/org/api.org.ts b/src/api/org/api.org.ts index 5f8c0d9..8a5839a 100644 --- a/src/api/org/api.org.ts +++ b/src/api/org/api.org.ts @@ -40,7 +40,7 @@ export default { dataUserSalary: `${profileOrg}/salary/user`, dataUserSalaryByType: (type: string) => `${org}/profile${type}/salary/user`, - dataUserHonor: `${profileOrg}/honor/user`, + dataUserAssessments: `${profileOrg}/assessments/user`, dataUserNopaid: `${profileOrg}/nopaid/user`, dataUserNopaidByType: (type: string) => `${org}/profile${type}/nopaid/user`, diff --git a/src/modules/06_evaluate/components/EvaluateStepMain.vue b/src/modules/06_evaluate/components/EvaluateStepMain.vue index 2bd0d2f..572ebde 100644 --- a/src/modules/06_evaluate/components/EvaluateStepMain.vue +++ b/src/modules/06_evaluate/components/EvaluateStepMain.vue @@ -281,6 +281,17 @@ async function saveStep1() { other: e.other, startDate: e.startDate, })); + + const assessments = formDetail.value.assessments.map((e: any) => ({ + date: e.date, + point1: e.point1, + point1Total: e.point1Total, + point2: e.point2, + point2Total: e.point2Total, + pointSum: e.pointSum, + pointSumTotal: e.pointSumTotal, + })); + const evaluateType = route.params.type.toString(); const form = { userId: formDetail.value.id, @@ -308,7 +319,7 @@ async function saveStep1() { certificates: [...formDetail.value.certificates], salaries: [...salaries], trainings: [...formDetail.value.trainings], - assessments: [...formDetail.value.assessments], + assessments: [...assessments], }; await http diff --git a/src/modules/06_evaluate/components/viewstep/tableStep1.vue b/src/modules/06_evaluate/components/viewstep/tableStep1.vue index aab00a3..a19e67b 100644 --- a/src/modules/06_evaluate/components/viewstep/tableStep1.vue +++ b/src/modules/06_evaluate/components/viewstep/tableStep1.vue @@ -25,6 +25,23 @@ const props = defineProps({ class="row col-12" :style="$q.screen.lt.sm ? 'width: 80vw' : 'width: 50vw;'" > + + + diff --git a/src/modules/06_evaluate/components/viewstep/viewStep1.vue b/src/modules/06_evaluate/components/viewstep/viewStep1.vue index cbec102..478b683 100644 --- a/src/modules/06_evaluate/components/viewstep/viewStep1.vue +++ b/src/modules/06_evaluate/components/viewstep/viewStep1.vue @@ -28,6 +28,7 @@ const { columnSalaries, columnTraining, columnProjectsProposed, + columnAssessments, } = store; const props = defineProps({ @@ -125,16 +126,17 @@ async function fetchDetail() { })); }); - http.get(config.API.dataUserHonor).then((res) => { - formDetail.honor = res.data.result.map((e: any) => ({ - receivedDate: e.createdAt, - authority: e.issuer, - detail: e.detail, - orderNumber: e.refCommandNo, - doce: e.refCommandDate, - })); + http.get(config.API.dataUserAssessments).then((res) => { + // formDetail.honor = res.data.result + // res.data.result.map((e: any) => ({ + // receivedDate: e.createdAt, + // authority: e.issuer, + // detail: e.detail, + // orderNumber: e.refCommandNo, + // doce: e.refCommandDate, + formDetail.assessments = res.data.result; }); - // formDetail.assessments = data.assessments; + // })); emit("update:formDeital", formDetail); }) .catch((err) => { @@ -578,8 +580,8 @@ onMounted(async () => {
diff --git a/src/modules/06_evaluate/stores/evaluteDetail.ts b/src/modules/06_evaluate/stores/evaluteDetail.ts index f0c71ee..72558cd 100644 --- a/src/modules/06_evaluate/stores/evaluteDetail.ts +++ b/src/modules/06_evaluate/stores/evaluteDetail.ts @@ -222,7 +222,6 @@ export const useEvaluateDetailStore = defineStore("evaluateDetailStore", () => { name: "receivedDate", align: "center", label: "วันที่ได้รับ", - sortable: true, field: (value) => date2Thai(value), headerStyle: "font-size: 14px", @@ -266,10 +265,125 @@ export const useEvaluateDetailStore = defineStore("evaluateDetailStore", () => { }, ]); + /** ผลงานที่เคยเสนอขอประเมิน (ถ้ามี)*/ + const columnAssessments = ref([ + { + name: "date", + align: "left", + label: "วันที่ได้รับ", + sortable: true, + field: "date", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + format: (v) => date2Thai(v), + }, + { + name: "point1Total", + align: "left", + label: "ส่วนที่1 (น้ำหนัก)", + sortable: true, + field: "point1Total", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + sort: (a: string, b: string) => + a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), + }, + { + name: "point1", + align: "left", + label: "ผลประเมินส่วนที่1 (คะแนน)", + sortable: true, + field: "point1", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + sort: (a: string, b: string) => + a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), + }, + { + name: "point2Total", + align: "left", + label: "ส่วนที่2 (น้ำหนัก)", + sortable: true, + field: "point2Total", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + sort: (a: string, b: string) => + a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), + }, + { + name: "point2", + align: "left", + label: "ผลประเมินส่วนที่2 (คะแนน)", + sortable: true, + 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 { columnsCertificates, columnSalaries, columnTraining, columnProjectsProposed, + columnAssessments, }; }); diff --git a/src/modules/08_KPI/components/Tab/Topic/03_Develop.vue b/src/modules/08_KPI/components/Tab/Topic/03_Develop.vue index 6ebb788..5af0613 100644 --- a/src/modules/08_KPI/components/Tab/Topic/03_Develop.vue +++ b/src/modules/08_KPI/components/Tab/Topic/03_Develop.vue @@ -157,10 +157,12 @@ function getDevelop() { const data = res.data.result; rows.value = data; - store.devScoreVal = rows.value.reduce( + const totalSummary = rows.value.reduce( (sum: number, e: any) => sum + e.summary, 0 ); + + store.devScoreVal = totalSummary / rows.value.length; }); } diff --git a/src/modules/12_organization/views/main.vue b/src/modules/12_organization/views/main.vue index 19744bd..0986604 100644 --- a/src/modules/12_organization/views/main.vue +++ b/src/modules/12_organization/views/main.vue @@ -1,5 +1,5 @@