diff --git a/src/modules/05_leave/components/FormLeave/01_SickForm.vue b/src/modules/05_leave/components/FormLeave/01_SickForm.vue index 7786ab7..188effb 100644 --- a/src/modules/05_leave/components/FormLeave/01_SickForm.vue +++ b/src/modules/05_leave/components/FormLeave/01_SickForm.vue @@ -48,8 +48,6 @@ const formDataSick = reactive({ leaveRange: "ALL", leaveTotal: "", leaveLast: null, - leaveNumber: "", - leaveAddress: "", leaveDetail: "", leaveDocument: [], }); @@ -132,8 +130,8 @@ function onValidate() { convertDateToAPI(formDataSick.leaveEndDate) ?? "" ); formData.append("leaveWrote", formDataSick.leaveWrote); - formData.append("leaveAddress", formDataSick.leaveAddress); - formData.append("leaveNumber", formDataSick.leaveNumber); + formData.append("leaveAddress", dataStore.currentAddress); + formData.append("leaveNumber", dataStore.telephoneNumber); formData.append("leaveDetail", formDataSick.leaveDetail); formData.append("leaveTotal", formDataSick.leaveTotal); props.onSubmit(formData, isLeave.value); @@ -212,11 +210,9 @@ watch(props.data, () => { formDataSick.leaveEndDate = new Date(props.data.leaveEndDate); formDataSick.contractTel = props.data.contractTel; formDataSick.leaveTotal = props.data.leaveTotal; - formDataSick.leaveNumber = props.data.leaveNumber; formDataSick.leaveDetail = props.data.leaveDetail; formDataSick.leaveRange = props.data.leaveRange; leaveDocumentList.value = props.data.leaveDocument; - formDataSick.leaveAddress = props.data.leaveAddress; statusCheck.value = props.data.status; formDataSick.leaveDocument = []; } @@ -230,11 +226,9 @@ onMounted(() => { formDataSick.leaveEndDate = new Date(props.data.leaveEndDate); formDataSick.contractTel = props.data.contractTel; formDataSick.leaveTotal = props.data.leaveTotal; - formDataSick.leaveNumber = props.data.leaveNumber; formDataSick.leaveDetail = props.data.leaveDetail; formDataSick.leaveRange = props.data.leaveRange; leaveDocumentList.value = props.data.leaveDocument; - formDataSick.leaveAddress = props.data.leaveAddress; statusCheck.value = props.data.status; leaveId.value = props.data.id; } @@ -432,10 +426,11 @@ onMounted(() => { outlined ref="leaveNumberRef" for="leaveNumberRef" - v-model="formDataSick.leaveNumber" + v-model="dataStore.telephoneNumber" mask="(###)-###-####" hide-bottom-space bg-color="white" + lazy-rules unmasked-value label="หมายเลขโทรศัพท์ที่ติดต่อได้" :readonly="!edit || statusCheck === 'NEW'" @@ -450,7 +445,7 @@ onMounted(() => { outlined ref="leaveAddressRef" for="leaveAddressRef" - v-model="formDataSick.leaveAddress" + v-model="dataStore.currentAddress" label="ที่อยู่ที่ติดต่อได้ระหว่างลา" :readonly="!edit || statusCheck === 'NEW'" :rules="[ diff --git a/src/modules/05_leave/components/FormLeave/03_Birth.vue b/src/modules/05_leave/components/FormLeave/03_Birth.vue index fd0a334..9f481de 100644 --- a/src/modules/05_leave/components/FormLeave/03_Birth.vue +++ b/src/modules/05_leave/components/FormLeave/03_Birth.vue @@ -46,8 +46,6 @@ const formDataBirth = reactive({ leaveEndDate: null, leaveTotal: "", leaveLast: "", - leaveNumber: "", - leaveAddress: "", leaveDetail: "", leaveDocument: [], }); @@ -113,8 +111,8 @@ function onValidate() { convertDateToAPI(formDataBirth.leaveEndDate) ?? "" ); formData.append("leaveWrote", formDataBirth.leaveWrote); - formData.append("leaveAddress", formDataBirth.leaveAddress); - formData.append("leaveNumber", formDataBirth.leaveNumber); + formData.append("leaveAddress", dataStore.currentAddress); + formData.append("leaveNumber", dataStore.telephoneNumber); formData.append("leaveDetail", formDataBirth.leaveDetail); formData.append("leaveTotal", formDataBirth.leaveTotal); @@ -162,8 +160,6 @@ watch(props.data, () => { formDataBirth.leaveStartDate = props.data.leaveStartDate; formDataBirth.leaveEndDate = props.data.leaveEndDate; formDataBirth.leaveTotal = props.data.leaveTotal; - formDataBirth.leaveNumber = props.data.leaveNumber; - formDataBirth.leaveAddress = props.data.leaveAddress; formDataBirth.leaveDetail = props.data.leaveDetail; leaveDocumentList.value = props.data.leaveDocument; statusCheck.value = props.data.status; @@ -178,8 +174,6 @@ onMounted(() => { formDataBirth.leaveStartDate = props.data.leaveStartDate; formDataBirth.leaveEndDate = props.data.leaveEndDate; formDataBirth.leaveTotal = props.data.leaveTotal; - formDataBirth.leaveNumber = props.data.leaveNumber; - formDataBirth.leaveAddress = props.data.leaveAddress; formDataBirth.leaveDetail = props.data.leaveDetail; leaveDocumentList.value = props.data.leaveDocument; statusCheck.value = props.data.status; @@ -352,9 +346,10 @@ onMounted(() => { bg-color="white" ref="leaveNumberRef" for="leaveNumberRef" - v-model="formDataBirth.leaveNumber" + v-model="dataStore.telephoneNumber" mask="(###)-###-####" unmasked-value + lazy-rules label="หมายเลขโทรศัพท์ที่ติดต่อได้" :readonly="!edit || statusCheck === 'NEW'" :rules="[ @@ -370,7 +365,7 @@ onMounted(() => { bg-color="white" ref="leaveAddressRef" for="leaveAddressRef" - v-model="formDataBirth.leaveAddress" + v-model="dataStore.currentAddress" label="ที่อยู่ที่ติดต่อได้ระหว่างลา" :readonly="!edit || statusCheck === 'NEW'" :rules="[ diff --git a/src/modules/05_leave/components/FormLeave/04_HelpWifeBirthForm.vue b/src/modules/05_leave/components/FormLeave/04_HelpWifeBirthForm.vue index 31de76b..8dca57c 100644 --- a/src/modules/05_leave/components/FormLeave/04_HelpWifeBirthForm.vue +++ b/src/modules/05_leave/components/FormLeave/04_HelpWifeBirthForm.vue @@ -48,8 +48,6 @@ const formDataHelpWife = reactive({ leaveStartDate: null, leaveEndDate: null, leaveTotal: "", - leaveNumber: "", - leaveAddress: "", leaveDetail: "", leaveDocument: [], }); @@ -124,8 +122,8 @@ function onValidate() { convertDateToAPI(formDataHelpWife.leaveEndDate)??'' ); formData.append("leaveWrote", formDataHelpWife.leaveWrote); - formData.append("leaveAddress", formDataHelpWife.leaveAddress); - formData.append("leaveNumber", formDataHelpWife.leaveNumber); + formData.append("leaveAddress", dataStore.currentAddress); + formData.append("leaveNumber", dataStore.telephoneNumber); formData.append("leaveDetail", formDataHelpWife.leaveDetail); formData.append("wifeDayName", formDataHelpWife.wifeDayName); formData.append( @@ -187,8 +185,6 @@ watch(props.data, () => { formDataHelpWife.leaveStartDate = props.data.leaveStartDate; formDataHelpWife.leaveEndDate = props.data.leaveEndDate; formDataHelpWife.leaveTotal = props.data.leaveTotal; - formDataHelpWife.leaveNumber = props.data.leaveNumber; - formDataHelpWife.leaveAddress = props.data.leaveAddress; formDataHelpWife.leaveDetail = props.data.leaveDetail; formDataHelpWife.leaveDocument = []; leaveDocumentList.value = props.data.leaveDocument; @@ -205,8 +201,6 @@ onMounted(() => { formDataHelpWife.leaveStartDate = props.data.leaveStartDate; formDataHelpWife.leaveEndDate = props.data.leaveEndDate; formDataHelpWife.leaveTotal = props.data.leaveTotal; - formDataHelpWife.leaveNumber = props.data.leaveNumber; - formDataHelpWife.leaveAddress = props.data.leaveAddress; formDataHelpWife.leaveDetail = props.data.leaveDetail; leaveDocumentList.value = props.data.leaveDocument; statusCheck.value = props.data.status; @@ -426,10 +420,11 @@ onMounted(() => { outlined ref="leaveNumberRef" for="leaveNumberRef" - v-model="formDataHelpWife.leaveNumber" + v-model="dataStore.telephoneNumber" mask="(###)-###-####" unmasked-value hide-bottom-space + lazy-rules bg-color="white" label="หมายเลขโทรศัพท์ที่ติดต่อได้" :readonly="!edit || statusCheck === 'NEW'" @@ -446,7 +441,7 @@ onMounted(() => { bg-color="white" ref="leaveAddressRef" for="leaveAddressRef" - v-model="formDataHelpWife.leaveAddress" + v-model="dataStore.currentAddress" label="ที่อยู่ที่ติดต่อได้ระหว่างลา" :readonly="!edit || statusCheck === 'NEW'" :rules="[ diff --git a/src/modules/05_leave/components/FormLeave/05_VacationForm.vue b/src/modules/05_leave/components/FormLeave/05_VacationForm.vue index 08fae56..1844424 100644 --- a/src/modules/05_leave/components/FormLeave/05_VacationForm.vue +++ b/src/modules/05_leave/components/FormLeave/05_VacationForm.vue @@ -49,8 +49,6 @@ const formDataVacation = reactive({ leaveStartDate: null, leaveEndDate: null, leaveTotal: "", - leaveNumber: "", - leaveAddress: "", leaveDetail: "", leaveDocument: [], }); @@ -145,8 +143,8 @@ function onValidate() { convertDateToAPI(formDataVacation.leaveEndDate)??'' ); formData.append("leaveWrote", formDataVacation.leaveWrote); - formData.append("leaveAddress", formDataVacation.leaveAddress); - formData.append("leaveNumber", formDataVacation.leaveNumber); + formData.append("leaveAddress", dataStore.currentAddress); + formData.append("leaveNumber", dataStore.telephoneNumber); formData.append("leaveDetail", formDataVacation.leaveDetail); formData.append("leaveTotal", formDataVacation.leaveTotal); props.onSubmit(formData, isLeave.value); @@ -203,8 +201,7 @@ watch(props.data, () => { formDataVacation.leaveStartDate = props.data.leaveStartDate; formDataVacation.leaveEndDate = props.data.leaveEndDate; formDataVacation.leaveTotal = props.data.leaveTotal; - formDataVacation.leaveNumber = props.data.leaveNumber; - formDataVacation.leaveAddress = props.data.leaveAddress; + formDataVacation.leaveDetail = props.data.leaveDetail; leaveDocumentList.value = props.data.leaveDocument; statusCheck.value = props.data.status; @@ -222,8 +219,7 @@ onMounted(() => { formDataVacation.leaveStartDate = props.data.leaveStartDate; formDataVacation.leaveEndDate = props.data.leaveEndDate; formDataVacation.leaveTotal = props.data.leaveTotal; - formDataVacation.leaveNumber = props.data.leaveNumber; - formDataVacation.leaveAddress = props.data.leaveAddress; + formDataVacation.leaveDetail = props.data.leaveDetail; leaveDocumentList.value = props.data.leaveDocument; statusCheck.value = props.data.status; @@ -431,8 +427,9 @@ onMounted(() => { bg-color="white" ref="leaveNumberRef" for="leaveNumberRef" - v-model="formDataVacation.leaveNumber" + v-model="dataStore.telephoneNumber" mask="(###)-###-####" + lazy-rules unmasked-value label="หมายเลขโทรศัพท์ที่ติดต่อได้" :readonly="!edit || statusCheck === 'NEW'" @@ -449,7 +446,7 @@ onMounted(() => { bg-color="white" ref="leaveAddressRef" for="leaveAddressRef" - v-model="formDataVacation.leaveAddress" + v-model="dataStore.currentAddress" label="ที่อยู่ที่ติดต่อได้ระหว่างลา" :readonly="!edit || statusCheck === 'NEW'" :rules="[ diff --git a/src/modules/05_leave/components/FormLeave/06_OrdinationForm.vue b/src/modules/05_leave/components/FormLeave/06_OrdinationForm.vue index 5a4d401..0111e95 100644 --- a/src/modules/05_leave/components/FormLeave/06_OrdinationForm.vue +++ b/src/modules/05_leave/components/FormLeave/06_OrdinationForm.vue @@ -138,7 +138,7 @@ function onValidate() { ); formData.append( "ordainDayLocationNumber", - formDataOrdination.ordainDayLocationNumber + dataStore.telephoneNumber ); formData.append( "ordainDayLocationAddress", @@ -214,8 +214,7 @@ watch(props.data, () => { formDataOrdination.leaveTotal = props.data.leaveTotal; formDataOrdination.ordainDayOrdination = props.data.ordainDayOrdination; formDataOrdination.ordainDayLocationName = props.data.ordainDayLocationName; - formDataOrdination.ordainDayLocationNumber = - props.data.ordainDayLocationNumber; + formDataOrdination.ordainDayLocationAddress = props.data.ordainDayLocationAddress; formDataOrdination.ordainDayBuddhistLentName = @@ -239,8 +238,7 @@ onMounted(() => { formDataOrdination.leaveTotal = props.data.leaveTotal; formDataOrdination.ordainDayOrdination = props.data.ordainDayOrdination; formDataOrdination.ordainDayLocationName = props.data.ordainDayLocationName; - formDataOrdination.ordainDayLocationNumber = - props.data.ordainDayLocationNumber; + formDataOrdination.ordainDayLocationAddress = props.data.ordainDayLocationAddress; formDataOrdination.ordainDayBuddhistLentName = @@ -583,9 +581,10 @@ onMounted(() => { dense full-width outlined - v-model="formDataOrdination.ordainDayLocationNumber" + v-model="dataStore.telephoneNumber" bg-color="white" mask="(###)-###-####" + lazy-rules unmasked-value :readonly="!edit || statusCheck === 'NEW'" hide-bottom-space diff --git a/src/modules/05_leave/components/FormLeave/09_StudyForm.vue b/src/modules/05_leave/components/FormLeave/09_StudyForm.vue index e53954c..2fa2a10 100644 --- a/src/modules/05_leave/components/FormLeave/09_StudyForm.vue +++ b/src/modules/05_leave/components/FormLeave/09_StudyForm.vue @@ -68,8 +68,6 @@ const formDataStudy = reactive({ leavegovernmentDate: new Date(), leaveSalary: 10000, leaveSalaryText: arabicNumberToText(10000), - leaveNumber: "", - leaveAddress: "", studyDayScholarship: "", studyDayCountry: "", studyDayUniversityName: "", // @@ -155,8 +153,8 @@ function onValidate() { formData.append("leaveWrote", formDataStudy.leaveWrote); // formData.append("leaveDetail", formDataStudy.leaveDetail); // formData.append("studyDayScholarship", formDataStudy.studyDayScholarship); - formData.append("leaveAddress", formDataStudy.leaveAddress); // - formData.append("leaveNumber", formDataStudy.leaveNumber); // + formData.append("leaveAddress", dataStore.currentAddress); // + formData.append("leaveNumber", dataStore.telephoneNumber); // formData.append("leaveTotal", formDataStudy.leaveTotalDay); // props.onSubmit(formData, isLeave.value); } @@ -206,8 +204,7 @@ watch(props.data, async () => { formDataStudy.leavegovernmentDate = props.data.leavegovernmentDate; formDataStudy.leaveSalary = props.data.leaveSalary; formDataStudy.leaveSalaryText = props.data.leaveSalaryText; - formDataStudy.leaveNumber = props.data.leaveNumber; - formDataStudy.leaveAddress = props.data.leaveAddress; + formDataStudy.studyDayScholarship = props.data.studyDayScholarship; formDataStudy.studyDayCountry = props.data.studyDayCountry; formDataStudy.studyDayUniversityName = props.data.studyDayUniversityName; @@ -236,8 +233,7 @@ onMounted(async () => { formDataStudy.leavegovernmentDate = props.data.leavegovernmentDate; formDataStudy.leaveSalary = props.data.leaveSalary; formDataStudy.leaveSalaryText = props.data.leaveSalaryText; - formDataStudy.leaveNumber = props.data.leaveNumber; - formDataStudy.leaveAddress = props.data.leaveAddress; + formDataStudy.studyDayScholarship = props.data.studyDayScholarship; formDataStudy.studyDayCountry = props.data.studyDayCountry; formDataStudy.studyDayUniversityName = props.data.studyDayUniversityName; @@ -583,7 +579,7 @@ onMounted(async () => { /> { /> ({ leavegovernmentDate: new Date(), leaveSalary: 10000, leaveSalaryText: arabicNumberToText(10000), - leaveNumber: "", - leaveAddress: "", studyDayScholarship: "", studyDayCountry: "", studyDayTrainingSubject: "", @@ -140,8 +138,8 @@ function onValidate() { formData.append("leaveWrote", formDataTrain.leaveWrote); // formData.append("leaveDetail", formDataTrain.leaveDetail); // formData.append("studyDayScholarship", formDataTrain.studyDayScholarship); - formData.append("leaveAddress", formDataTrain.leaveAddress); // - formData.append("leaveNumber", formDataTrain.leaveNumber); // + formData.append("leaveAddress", dataStore.currentAddress); // + formData.append("leaveNumber", dataStore.telephoneNumber); // formData.append("leaveSalaryText", formDataTrain.leaveSalaryText); // formData.append("leaveSalary", formDataTrain.leaveSalary); // formData.append("leaveTotal", formDataTrain.leaveTotalDay); // @@ -193,8 +191,6 @@ watch(props.data, async () => { formDataTrain.leavegovernmentDate = props.data.leavegovernmentDate; formDataTrain.leaveSalary = props.data.leaveSalary; formDataTrain.leaveSalaryText = props.data.leaveSalaryText; - formDataTrain.leaveNumber = props.data.leaveNumber; - formDataTrain.leaveAddress = props.data.leaveAddress; formDataTrain.studyDayScholarship = props.data.studyDayScholarship; formDataTrain.studyDayCountry = props.data.studyDayCountry; formDataTrain.studyDayTrainingSubject = props.data.studyDayTrainingSubject; @@ -222,8 +218,6 @@ onMounted(async () => { formDataTrain.leavegovernmentDate = props.data.leavegovernmentDate; formDataTrain.leaveSalary = props.data.leaveSalary; formDataTrain.leaveSalaryText = props.data.leaveSalaryText; - formDataTrain.leaveNumber = props.data.leaveNumber; - formDataTrain.leaveAddress = props.data.leaveAddress; formDataTrain.studyDayScholarship = props.data.studyDayScholarship; formDataTrain.studyDayCountry = props.data.studyDayCountry; formDataTrain.studyDayTrainingSubject = props.data.studyDayTrainingSubject; @@ -554,7 +548,7 @@ onMounted(async () => { /> { /> { label="เรียน" /> { label="ชื่อผู้ยื่นขอ" /> { label="ตำแหน่งผู้ยื่นขอ" /> { label="ระดับผู้ยื่นขอ" /> { leaveTypeName: e.leaveTypeName, leaveTypeId: e.leaveTypeId, fullName: e.fullName, - dateSendLeave: e.dateSendLeave && date2Thai(e.dateSendLeave,false,true), + dateSendLeave: e.dateSendLeave && date2Thai(e.dateSendLeave, false, true), dateLeave: date2Thai(e.leaveStartDate) + " - " + date2Thai(e.leaveEndDate), status: e.status, @@ -281,6 +281,9 @@ export const useLeaveStore = defineStore("Leave", () => { const leaveLast = ref(); const restDayCurrentTotal = ref(0); + const telephoneNumber = ref(""); + const currentAddress = ref(""); + //ดึงข้อมูล profile จาก API async function fetchProfile() { showLoader(); @@ -301,6 +304,14 @@ export const useLeaveStore = defineStore("Leave", () => { restDayTotalOld.value = data.restDayTotalOld; birthDate.value = data.birthDate; dateAppoint.value = data.dateAppoint; + + telephoneNumber.value = + data.telephoneNumber && data.telephoneNumber !== "-" + ? data.telephoneNumber + : null; + currentAddress.value = data.currentSubDistrict + ? `${data.currentAddress} ${data.currentSubDistrict} ${data.currentDistrict} ${data.currentProvince} ${data.currentZipCode}` + : ""; salary.value = data.salary ? data.salary.toLocaleString("th-TH") : ""; salaryText.value = data.salaryText; leaveLast.value = @@ -419,5 +430,7 @@ export const useLeaveStore = defineStore("Leave", () => { typeOptionsMain, status, statusOptionsMain, + telephoneNumber, + currentAddress, }; }); diff --git a/src/modules/05_leave/views/EditPage.vue b/src/modules/05_leave/views/EditPage.vue index 1e76977..d2648c3 100644 --- a/src/modules/05_leave/views/EditPage.vue +++ b/src/modules/05_leave/views/EditPage.vue @@ -208,6 +208,11 @@ async function fetchDataDetail(id: string) { formData.dear = data.dear ?? "-"; formData.leaveLast = data.leaveLast ?? "-"; formData.leaveRange = data.leaveRange; + + dataStore.telephoneNumber = + data.leaveNumber && data.leaveNumber !== "-" ? data.leaveNumber : null; + dataStore.currentAddress = data.leaveAddress ? data.leaveAddress : ""; + await dataStore.fetchProfileOld(data); }) .catch((err) => { diff --git a/src/modules/06_evaluate/components/viewstep/viewStep1.vue b/src/modules/06_evaluate/components/viewstep/viewStep1.vue index 99cebc2..1867f87 100644 --- a/src/modules/06_evaluate/components/viewstep/viewStep1.vue +++ b/src/modules/06_evaluate/components/viewstep/viewStep1.vue @@ -22,7 +22,8 @@ const mixin = useCounterMixin(); const store = useEvaluateDetailStore(); const $q = useQuasar(); const route = useRoute(); -const { showLoader, hideLoader, messageError, date2Thai } = mixin; +const { showLoader, hideLoader, messageError, date2Thai, findOrgNameHtml } = + mixin; const { columnsCertificates, columnSalaries, @@ -183,8 +184,6 @@ async function fetchCheckSpec(data: any) { position: e.position, positionSalaryAmount: e.positionSalaryAmount ? e.positionSalaryAmount : 0, refCommandDate: e.refCommandDate ? e.refCommandDate : "", - - refCommandNo: e.refCommandNo ? e.refCommandNo : "", salaryClass: e.salaryClass ? e.salaryClass : "", salaryRef: e.salaryRef ? e.salaryRef : "", salaryStatus: e.salaryStatus ? e.salariesStatus : "", @@ -548,7 +547,20 @@ onMounted(async () => { :key="col.id" class="vertical-top" > -
+
+ {{ + props.row + ? findOrgNameHtml({ + root: props.row.orgRoot, + child1: props.row.orgChild1, + child2: props.row.orgChild2, + child3: props.row.orgChild3, + child4: props.row.orgChild4, + }) + : "-" + }} +
+
{{ col.value ? col.value : "-" }}
diff --git a/src/modules/06_evaluate/stores/evaluteDetail.ts b/src/modules/06_evaluate/stores/evaluteDetail.ts index 86d83b1..fa815fa 100644 --- a/src/modules/06_evaluate/stores/evaluteDetail.ts +++ b/src/modules/06_evaluate/stores/evaluteDetail.ts @@ -7,7 +7,7 @@ import { useCounterMixin } from "@/stores/mixin"; export const useEvaluateDetailStore = defineStore("evaluateDetailStore", () => { /** columns TableViewStep1*/ const mixin = useCounterMixin(); - const { date2Thai } = mixin; + const { date2Thai, findOrgNameHtml } = mixin; const columnsCertificates = ref([ { @@ -59,14 +59,163 @@ export const useEvaluateDetailStore = defineStore("evaluateDetailStore", () => { const columnSalaries = ref([ { - name: "date", + name: "commandDateAffect", align: "left", - label: "วัน เดือน ปี", + label: "วันที่คำสั่งมีผล", sortable: true, - field: "date", + field: "commandDateAffect", headerStyle: "font-size: 14px", style: "font-size: 14px", format: (v) => date2Thai(v), + sort: (a: string, b: string) => + a + .toString() + .localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), + }, + { + name: "commandDateSign", + align: "left", + label: "วันที่ลงนาม", + sortable: true, + field: "commandDateSign", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + format: (v) => date2Thai(v), + sort: (a: string, b: string) => + a + .toString() + .localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), + }, + { + name: "posNumCodeSit", + align: "left", + label: "หน่วยงานที่ออกคำสั่ง", + sortable: false, + field: "posNumCodeSit", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + format(val, row) { + return row.posNumCodeSitAbb && row.posNumCodeSit + ? `${row.posNumCodeSit} (${row.posNumCodeSitAbb})` + : row.posNumCodeSit + ? row.posNumCodeSit + : "-"; + }, + }, + { + 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 + : "-"; + }, + sort: (a: string, b: string) => + a + .toString() + .localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), + }, + { + name: "positionName", + align: "left", + label: "ตำแหน่งในสายงาน", + sortable: true, + field: "positionName", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + sort: (a: string, b: string) => + a + .toString() + .localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), + }, + { + name: "positionType", + align: "left", + label: "ตำแหน่งประเภท", + sortable: true, + field: "positionType", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + sort: (a: string, b: string) => + a + .toString() + .localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), + }, + { + 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", + sort: (a: string, b: string) => + a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), + }, + { + name: "positionExecutive", + align: "left", + label: "ตำแหน่งทางการบริหาร", + sortable: true, + field: "positionExecutive", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + sort: (a: string, b: string) => + a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), + }, + { + name: "commandNo", + align: "left", + label: "เลขที่คำสั่ง", + sortable: true, + field: "commandNo", + format(val, row) { + return row.commandNo && row.commandYear + ? `${row.commandNo}/${Number(row.commandYear) + 543}` + : ""; + }, + headerStyle: "font-size: 14px", + style: "font-size: 14px", + sort: (a: string, b: string) => + a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), + }, + { + name: "commandCode", + align: "left", + label: "ประเภทคำสั่ง", + sortable: true, + field: "commandCode", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + sort: (a: string, b: string) => + a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), + }, + { + name: "organization", + align: "left", + label: "สังกัด", + sortable: true, + field: "organization", + headerStyle: "font-size: 14px;min-width:280px", + style: "font-size: 14px", + sort: (a: string, b: string) => + a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), }, { name: "amount", @@ -76,17 +225,19 @@ export const useEvaluateDetailStore = defineStore("evaluateDetailStore", () => { 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", - style: "font-size: 14px", - format: (v) => Number(v).toLocaleString(), + format(v, row) { + return row.amount + ? `${row.amount.toLocaleString()}${ + row.amountSpecial !== 0 && row.amountSpecial + ? ` (${row.amountSpecial.toLocaleString()})` + : "" + }` + : "-"; + }, + sort: (a: string, b: string) => + a + .toString() + .localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), }, { name: "mouthSalaryAmount", @@ -97,54 +248,38 @@ export const useEvaluateDetailStore = defineStore("evaluateDetailStore", () => { headerStyle: "font-size: 14px", style: "font-size: 14px", format: (v) => Number(v).toLocaleString(), + sort: (a: string, b: string) => + a + .toString() + .localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), + }, + { + name: "positionSalaryAmount", + align: "left", + label: "เงินประจำตำแหน่ง", + sortable: true, + field: "positionSalaryAmount", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + format: (v) => Number(v).toLocaleString(), + sort: (a: string, b: string) => + a + .toString() + .localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), }, { - name: "posNo", + name: "remark", align: "left", - label: "เลขที่ตำแหน่ง", + label: "หมายเหตุ", sortable: true, - field: "posNo", - 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", - headerStyle: "font-size: 14px", - style: "font-size: 14px", - }, - - { - name: "templateDoc", - align: "left", - label: "เอกสารอ้างอิง", - sortable: true, - field: "templateDoc", - headerStyle: "font-size: 14px", - style: "font-size: 14px", - }, - { - name: "refCommandNo", - align: "left", - label: "เลขที่คำสั่ง", - sortable: true, - field: "refCommandNo", + field: "remark", headerStyle: "font-size: 14px", style: "font-size: 14px", + sort: (a: string, b: string) => + a + .toString() + .localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), }, ]);