ประเมินเชี่ยวชาญ
This commit is contained in:
parent
27fb61604f
commit
c45d3f8e6e
4 changed files with 135 additions and 22 deletions
|
|
@ -61,6 +61,9 @@ export default {
|
||||||
dataUserCertificateByType: (emType: string, type: string) =>
|
dataUserCertificateByType: (emType: string, type: string) =>
|
||||||
`${org}/profile${emType}/${type}/user`,
|
`${org}/profile${emType}/${type}/user`,
|
||||||
|
|
||||||
|
dataUserEvaByType: (type: string) =>
|
||||||
|
`${org}/profile/${type}/user`,
|
||||||
|
|
||||||
dataUserOther: `${profileOrg}/other/user`,
|
dataUserOther: `${profileOrg}/other/user`,
|
||||||
dataUserOtherByType: (type: string) => `${org}/profile${type}/other/user`,
|
dataUserOtherByType: (type: string) => `${org}/profile${type}/other/user`,
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,9 @@ interface ProfileData {
|
||||||
citizenId?: string;
|
citizenId?: string;
|
||||||
salary?: number|null;
|
salary?: number|null;
|
||||||
birthDate?: string;
|
birthDate?: string;
|
||||||
|
org?: string;
|
||||||
|
dateStart?: string;
|
||||||
|
dateRetireLaw?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface InformationData {
|
interface InformationData {
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import http from "@/plugins/http";
|
||||||
import config from "@/app.config";
|
import config from "@/app.config";
|
||||||
import genReport from "@/plugins/genreport";
|
import genReport from "@/plugins/genreport";
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
|
import { useDataStore } from "@/stores/data";
|
||||||
|
|
||||||
import type {
|
import type {
|
||||||
FormRef,
|
FormRef,
|
||||||
|
|
@ -17,6 +18,7 @@ import type {
|
||||||
|
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
const mixin = useCounterMixin();
|
const mixin = useCounterMixin();
|
||||||
|
const dataPerson = useDataStore();
|
||||||
const {
|
const {
|
||||||
dialogConfirm,
|
dialogConfirm,
|
||||||
messageError,
|
messageError,
|
||||||
|
|
@ -24,12 +26,13 @@ const {
|
||||||
hideLoader,
|
hideLoader,
|
||||||
date2Thai,
|
date2Thai,
|
||||||
success,
|
success,
|
||||||
|
findOrgName,
|
||||||
} = mixin;
|
} = mixin;
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
const currentYear = new Date().getFullYear();
|
||||||
const evaluateId = ref<string>(route.params.id as string);
|
const evaluateId = ref<string>(route.params.id as string);
|
||||||
const profile = ref<any>();
|
let profile = ref<any>();
|
||||||
|
|
||||||
/** form ผู้เซ็นเอกสาร*/
|
/** form ผู้เซ็นเอกสาร*/
|
||||||
const formCommand = reactive<FormCommand>({
|
const formCommand = reactive<FormCommand>({
|
||||||
|
|
@ -228,17 +231,81 @@ async function onClickDowloadFile(
|
||||||
{ certificates: certificates },
|
{ certificates: certificates },
|
||||||
{ salaries: salaries },
|
{ salaries: salaries },
|
||||||
{ trainings: trainings },
|
{ trainings: trainings },
|
||||||
{ fullName: profile.value == null ? "" : profile.value.fullName },
|
{
|
||||||
{ position: profile.value == null ? "" : profile.value.position },
|
fullName: dataPerson.formData.firstName
|
||||||
{ positionLevel: profile.value == null ? "" : profile.value.positionLevel },
|
? `${dataPerson.formData.prefix}${dataPerson.formData.firstName} ${dataPerson.formData.lastName}`
|
||||||
{ posNo: profile.value == null ? "" : profile.value.posNo },
|
: "",
|
||||||
{ oc: profile.value == null ? "" : profile.value.oc },
|
},
|
||||||
{ birthDate: profile.value == null ? "" : date2Thai(profile.value.birthDate), },
|
{
|
||||||
{ govAge: profile.value == null ? "" : profile.value.govAge },
|
position: dataPerson.formData.position
|
||||||
{ positionLevelNew: profile.value == null ? "" : profile.value.type == "EXPERT" ? "ชำนาญการ" : "ชำนาญการพิเศษ", },
|
? dataPerson.formData.position
|
||||||
tp === "EV1_005" || tp === "EV1_007" ? { organizationName: "-" } : null,
|
: "",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
positionLevel: dataPerson.formData.posLevelName
|
||||||
|
? dataPerson.formData.posLevelName
|
||||||
|
: "",
|
||||||
|
},
|
||||||
|
{ posNo: dataPerson.formData.posNo ? dataPerson.formData.posNo : "" },
|
||||||
|
{ org: dataPerson.formData ? dataPerson.formData.org : "" },
|
||||||
|
{
|
||||||
|
birthDate: dataPerson.formData.birthDate
|
||||||
|
? date2Thai(new Date(dataPerson.formData.birthDate))
|
||||||
|
: "",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
govAge: profile.value.government
|
||||||
|
? `${
|
||||||
|
profile.value.government.govAge.day !== 0
|
||||||
|
? `${profile.value.government.govAge.day} วัน`
|
||||||
|
: ""
|
||||||
|
} ${
|
||||||
|
profile.value.government.govAge.month !== 0
|
||||||
|
? `${profile.value.government.govAge.month} เดือน`
|
||||||
|
: ""
|
||||||
|
} ${
|
||||||
|
profile.value.government.govAge.year !== 0
|
||||||
|
? `${profile.value.government.govAge.year} ปี`
|
||||||
|
: ""
|
||||||
|
}`
|
||||||
|
: ``,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
positionLevelNew:
|
||||||
|
profile.value == null
|
||||||
|
? ""
|
||||||
|
: profile.value.type == "EXPERT"
|
||||||
|
? "ชำนาญการ"
|
||||||
|
: "ชำนาญการพิเศษ",
|
||||||
|
},
|
||||||
|
|
||||||
|
tp === "EV1_005"
|
||||||
|
? { salary: dataPerson.formData.salary ? dataPerson.formData.salary : "" }
|
||||||
|
: null,
|
||||||
|
|
||||||
|
tp === "EV1_006" ? { lastTwoYear: (currentYear - 2).toString() } : null,
|
||||||
|
tp === "EV1_006" ? { lastOneYear: (currentYear - 1).toString() } : null,
|
||||||
|
tp === "EV1_006" ? { currentYear: currentYear.toString() } : null,
|
||||||
|
tp === "EV1_006" ? { commanderFullname: formData.commanderFullname } : null,
|
||||||
|
tp === "EV1_006" ? { commanderPosition: formData.commanderPosition } : null,
|
||||||
|
tp === "EV1_006" ? { commanderOrg: "" } : null,
|
||||||
|
tp === "EV1_006"
|
||||||
|
? { commanderAboveFullname: formData.commanderAboveFullname }
|
||||||
|
: null,
|
||||||
|
tp === "EV1_006"
|
||||||
|
? { commanderAbovePosition: formData.commanderAbovePosition }
|
||||||
|
: null,
|
||||||
|
tp === "EV1_006" ? { commanderAboveOrg: "" } : null,
|
||||||
|
|
||||||
tp === "EV1_007" ? { positionName: "-" } : null,
|
tp === "EV1_007" ? { positionName: "-" } : null,
|
||||||
tp === "EV1_007" ? { positionLeaveName: "-" } : null
|
tp === "EV1_007" ? { positionLeaveName: "-" } : null,
|
||||||
|
|
||||||
|
tp === "EV1_009" ? { dateStart: dataPerson.formData.dateStart } : null,
|
||||||
|
tp === "EV1_009"
|
||||||
|
? { dateRetireLaw: dataPerson.formData.dateRetireLaw }
|
||||||
|
: null,
|
||||||
|
|
||||||
|
tp === "EV1_010" ? { subject: formData.subject } : null
|
||||||
);
|
);
|
||||||
const body = {
|
const body = {
|
||||||
template: tp,
|
template: tp,
|
||||||
|
|
@ -339,16 +406,49 @@ function getData() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getDetail(type: any) {
|
||||||
|
http.get(config.API.dataUserEvaByType(type)).then((res) => {
|
||||||
|
profile.value = {
|
||||||
|
...profile.value, // รักษาข้อมูลเดิมที่เก็บไว้ก่อนหน้านี้
|
||||||
|
[type === "salary"
|
||||||
|
? "salaries"
|
||||||
|
: type === "certificate"
|
||||||
|
? "certificates"
|
||||||
|
: type === "training"
|
||||||
|
? "trainings"
|
||||||
|
: type]: res.data.result, // เก็บข้อมูลตามประเภท (type)
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const keyObject = ref<string[]>([
|
||||||
|
"educations",
|
||||||
|
"certificate",
|
||||||
|
"salary",
|
||||||
|
"training",
|
||||||
|
"assessments",
|
||||||
|
"government",
|
||||||
|
]);
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getData();
|
showLoader();
|
||||||
downloadFile("1-แบบพิจารณาคุณสมบัติบุคคล");
|
Promise.all([getData(), ...keyObject.value.map(getDetail)])
|
||||||
downloadFile("2-แบบแสดงรายละเอียดการเสนอผลงาน");
|
.then(() => {})
|
||||||
downloadFile(
|
.catch((e) => {
|
||||||
"3-แบบตรวจสอบความถูกต้องครบถ้วนของข้อมูลเพื่อประกอบการคัดเลือกบุคคล (เอกสารแบบ ก)"
|
hideLoader();
|
||||||
);
|
messageError($q, e);
|
||||||
downloadFile("4-แบบประเมินคุณลักษณะบุคคล");
|
})
|
||||||
downloadFile("5-แบบสรุปข้อมูลของผู้ขอรับการคัดเลือก (เอกสารหมายเลข 9)");
|
.finally(() => {
|
||||||
downloadFile("6-ผลงานที่จะส่งประเมิน (เอกสารหมายเลข 11)");
|
hideLoader();
|
||||||
|
});
|
||||||
|
|
||||||
|
[
|
||||||
|
"1-แบบพิจารณาคุณสมบัติบุคคล",
|
||||||
|
"2-แบบแสดงรายละเอียดการเสนอผลงาน",
|
||||||
|
"3-แบบตรวจสอบความถูกต้องครบถ้วนของข้อมูลเพื่อประกอบการคัดเลือกบุคคล (เอกสารแบบ ก)",
|
||||||
|
"4-แบบประเมินคุณลักษณะบุคคล",
|
||||||
|
"5-แบบสรุปข้อมูลของผู้ขอรับการคัดเลือก (เอกสารหมายเลข 9)",
|
||||||
|
"6-ผลงานที่จะส่งประเมิน (เอกสารหมายเลข 11)",
|
||||||
|
].forEach((fileName) => downloadFile(fileName));
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
@ -381,6 +481,7 @@ onMounted(() => {
|
||||||
class="text-weight-medium bg-grey-1 col-12 q-py-sm q-px-md"
|
class="text-weight-medium bg-grey-1 col-12 q-py-sm q-px-md"
|
||||||
>
|
>
|
||||||
ผลงาน
|
ผลงาน
|
||||||
|
<br />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12"><q-separator /></div>
|
<div class="col-12"><q-separator /></div>
|
||||||
<div class="col-12 q-pa-sm">
|
<div class="col-12 q-pa-sm">
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ export const useDataStore = defineStore("dataMain", () => {
|
||||||
const storeRegistry = useRegistryInFormationStore();
|
const storeRegistry = useRegistryInFormationStore();
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
const mixin = useCounterMixin();
|
const mixin = useCounterMixin();
|
||||||
const { messageError, showLoader, hideLoader, findPosMasterNo } = mixin;
|
const { messageError, showLoader, hideLoader, findPosMasterNo,findOrgName } = mixin;
|
||||||
// ref() คือการประกาศ state เหมือน vuex
|
// ref() คือการประกาศ state เหมือน vuex
|
||||||
const formData = reactive<ProfileData>({
|
const formData = reactive<ProfileData>({
|
||||||
profileId: "",
|
profileId: "",
|
||||||
|
|
@ -28,6 +28,9 @@ export const useDataStore = defineStore("dataMain", () => {
|
||||||
salary: null,
|
salary: null,
|
||||||
birthDate: '',
|
birthDate: '',
|
||||||
posNo: "",
|
posNo: "",
|
||||||
|
org: "",
|
||||||
|
dateStart: "",
|
||||||
|
dateRetireLaw: "",
|
||||||
});
|
});
|
||||||
const count = ref<number>(0);
|
const count = ref<number>(0);
|
||||||
const loader = ref<boolean>(false);
|
const loader = ref<boolean>(false);
|
||||||
|
|
@ -110,7 +113,10 @@ export const useDataStore = defineStore("dataMain", () => {
|
||||||
formData.posTypeName = data.posTypeName;
|
formData.posTypeName = data.posTypeName;
|
||||||
formData.posExecutiveName = data.posExecutiveName;
|
formData.posExecutiveName = data.posExecutiveName;
|
||||||
formData.posLevelName = data.posLevelName;
|
formData.posLevelName = data.posLevelName;
|
||||||
|
formData.dateStart = data.dateStart;
|
||||||
|
formData.dateRetireLaw = data.dateRetireLaw;
|
||||||
formData.posNo = findPosMasterNo(data);
|
formData.posNo = findPosMasterNo(data);
|
||||||
|
formData.org = findOrgName(data);
|
||||||
storeRegistry.profileId = data.profileId;
|
storeRegistry.profileId = data.profileId;
|
||||||
storeRegistry.citizenId = data.citizenId;
|
storeRegistry.citizenId = data.citizenId;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue