updated format code & eslint rule
This commit is contained in:
parent
67c6810def
commit
8a31554f38
102 changed files with 6271 additions and 6164 deletions
21
.eslintrc.cjs
Normal file
21
.eslintrc.cjs
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
/* eslint-env node */
|
||||
require("@rushstack/eslint-patch/modern-module-resolution");
|
||||
|
||||
module.exports = {
|
||||
root: true,
|
||||
extends: [
|
||||
"plugin:vue/vue3-essential",
|
||||
"eslint:recommended",
|
||||
"@vue/eslint-config-typescript/recommended",
|
||||
"@vue/eslint-config-prettier/recommended",
|
||||
],
|
||||
overrides: [
|
||||
{
|
||||
files: ["cypress/e2e/**/*.{cy,spec}.{js,ts,jsx,tsx}"],
|
||||
extends: ["plugin:cypress/recommended"],
|
||||
},
|
||||
],
|
||||
parserOptions: {
|
||||
ecmaVersion: "latest",
|
||||
},
|
||||
};
|
||||
|
|
@ -11,7 +11,8 @@
|
|||
"test:e2e:dev": "start-server-and-test 'vite dev --port 4173' :4173 'cypress open --e2e'",
|
||||
"build-only": "vite build",
|
||||
"type-check": "vue-tsc --noEmit -p tsconfig.vitest.json --composite false",
|
||||
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore"
|
||||
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
|
||||
"format": "prettier ./src --write"
|
||||
},
|
||||
"dependencies": {
|
||||
"@fullcalendar/core": "^6.0.1",
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
/**config api */
|
||||
import { ref } from "vue"
|
||||
import { ref } from "vue";
|
||||
|
||||
const env = ref<string>(process.env.NODE_ENV || "development")
|
||||
export const apiUrlConfig = import.meta.env.VITE_API_URI_CONFIG
|
||||
export const apiUrlConfigPublish = import.meta.env.VITE_API_PUBLISH_URL
|
||||
const env = ref<string>(process.env.NODE_ENV || "development");
|
||||
export const apiUrlConfig = import.meta.env.VITE_API_URI_CONFIG;
|
||||
export const apiUrlConfigPublish = import.meta.env.VITE_API_PUBLISH_URL;
|
||||
|
||||
// if (process.env.VUE_APP_TEST) {
|
||||
// env = "test";
|
||||
|
|
@ -23,16 +23,19 @@ const config = ref<any>({
|
|||
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",
|
||||
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,
|
||||
},
|
||||
})
|
||||
});
|
||||
|
||||
const API_URI = ref<string>(config.value[env.value].API_URI)
|
||||
const API_URL_SUPPORT = ref<string>(config.value[env.value].API_URL_SUPPORT)
|
||||
const MEET_URI = ref<string>(config.value[env.value].MEET_URI)
|
||||
const LINK_EVALUATE_PUBLISH = ref<string>(config.value[env.value].LINK_EVALUATE_PUBLISH)
|
||||
const API_URI = ref<string>(config.value[env.value].API_URI);
|
||||
const API_URL_SUPPORT = ref<string>(config.value[env.value].API_URL_SUPPORT);
|
||||
const MEET_URI = ref<string>(config.value[env.value].MEET_URI);
|
||||
const LINK_EVALUATE_PUBLISH = ref<string>(
|
||||
config.value[env.value].LINK_EVALUATE_PUBLISH
|
||||
);
|
||||
|
||||
export default {
|
||||
env: env.value,
|
||||
|
|
@ -41,4 +44,4 @@ export default {
|
|||
API_URL_SUPPORT: API_URL_SUPPORT.value,
|
||||
MEET_URI: MEET_URI.value,
|
||||
LINK_EVALUATE_PUBLISH: LINK_EVALUATE_PUBLISH.value,
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -3,11 +3,10 @@ const probation = `${env.API_URI}/probation`;
|
|||
const org = `${env.API_URI}/org`;
|
||||
const kpiCapacity = `${env.API_URI}/kpi/capacity`;
|
||||
|
||||
|
||||
const reportProbation = `${env.API_URI}/report/probation`;
|
||||
export default {
|
||||
probationMain:(id:string)=>`${probation}/assign/probation-assign-list?personal_id=${id}`,
|
||||
|
||||
probationMain: (id: string) =>
|
||||
`${probation}/assign/probation-assign-list?personal_id=${id}`,
|
||||
|
||||
orgProfilePlacement: (id: string) => `${org}/profile/placement/${id}`,
|
||||
calculateDate: () => `${probation}/calculate/assign-finish`,
|
||||
|
|
@ -56,5 +55,5 @@ export default {
|
|||
reportEvaluateRecord1: (type: string, id: string) =>
|
||||
`${reportProbation}/14/${type}/${id}`,
|
||||
|
||||
kpiCapacity
|
||||
kpiCapacity,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -7,5 +7,6 @@ const developmentSalaryFile = `${env.API_URI}/salary/file`;
|
|||
export default {
|
||||
developmentScholarshipReport,
|
||||
developmentScholarship: `${development}/scholarship`,
|
||||
developmentSalaryFile: (name: string, group: string, id: string) => `${developmentSalaryFile}/${name}/${group}/${id}`,
|
||||
developmentSalaryFile: (name: string, group: string, id: string) =>
|
||||
`${developmentSalaryFile}/${name}/${group}/${id}`,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,13 +1,11 @@
|
|||
/**
|
||||
* API Structure + Org Chart
|
||||
*/
|
||||
import env from "../index"
|
||||
|
||||
const tttt = `${env.API_URI}/test`
|
||||
import env from "../index";
|
||||
|
||||
const tttt = `${env.API_URI}/test`;
|
||||
|
||||
export default {
|
||||
gettttt: `${tttt}`,
|
||||
puttttt: (id: string) => `${tttt}/${id}`,
|
||||
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import env from "../index"
|
||||
import env from "../index";
|
||||
|
||||
const placementTransfer = `${env.API_URI}/placement`
|
||||
const placementTransfer = `${env.API_URI}/placement`;
|
||||
|
||||
export default {
|
||||
listUserTransfer: () => `${placementTransfer}/transfer/user`,
|
||||
listtransfer: () => `${placementTransfer}/transfer`,
|
||||
transferByid: (id: string) => `${placementTransfer}/transfer/user/${id}`,
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -3,7 +3,13 @@
|
|||
<q-card class="q-pa-sm">
|
||||
<q-card-section class="row">
|
||||
<div class="q-pr-md">
|
||||
<q-avatar :icon="icon" size="lg" font-size="25px" color="blue-1" :text-color="color" />
|
||||
<q-avatar
|
||||
:icon="icon"
|
||||
size="lg"
|
||||
font-size="25px"
|
||||
color="blue-1"
|
||||
:text-color="color"
|
||||
/>
|
||||
</div>
|
||||
<div class="col text-dark">
|
||||
<span class="text-bold">{{ title }}</span>
|
||||
|
|
@ -12,7 +18,11 @@
|
|||
</div>
|
||||
</q-card-section>
|
||||
|
||||
<q-card-actions align="right" class="bg-white text-teal" v-if="onlycancel">
|
||||
<q-card-actions
|
||||
align="right"
|
||||
class="bg-white text-teal"
|
||||
v-if="onlycancel"
|
||||
>
|
||||
<q-btn label="ตกลง" flat color="grey-8" @click="onDialogCancel" />
|
||||
<!-- <q-btn :label="textOk" :color="color" @click="onOKClick" /> -->
|
||||
</q-card-actions>
|
||||
|
|
@ -25,7 +35,7 @@
|
|||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { useDialogPluginComponent } from "quasar"
|
||||
import { useDialogPluginComponent } from "quasar";
|
||||
|
||||
const props = defineProps({
|
||||
color: {
|
||||
|
|
@ -52,15 +62,16 @@ const props = defineProps({
|
|||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
})
|
||||
});
|
||||
|
||||
defineEmits([
|
||||
// REQUIRED; need to specify some events that your
|
||||
// component will emit through useDialogPluginComponent()
|
||||
...useDialogPluginComponent.emits,
|
||||
])
|
||||
]);
|
||||
|
||||
const { dialogRef, onDialogHide, onDialogOK, onDialogCancel } = useDialogPluginComponent()
|
||||
const { dialogRef, onDialogHide, onDialogOK, onDialogCancel } =
|
||||
useDialogPluginComponent();
|
||||
// dialogRef - Vue ref to be applied to QDialog
|
||||
// onDialogHide - Function to be used as handler for @hide on QDialog
|
||||
// onDialogOK - Function to call to settle dialog with "ok" outcome
|
||||
|
|
@ -72,7 +83,7 @@ const { dialogRef, onDialogHide, onDialogOK, onDialogCancel } = useDialogPluginC
|
|||
function onOKClick() {
|
||||
// on OK, it is REQUIRED to
|
||||
// call onDialogOK (with optional payload)
|
||||
onDialogOK()
|
||||
onDialogOK();
|
||||
// or with payload: onDialogOK({ ... })
|
||||
// ...and it will also hide the dialog automatically
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,7 +52,10 @@ watch(searchData, () => {
|
|||
<q-card bordered>
|
||||
<div class="row" style="flex-wrap: nowrap">
|
||||
<!-- Left -->
|
||||
<div v-if="!store.openChat || $q.screen.gt.xs" class="col-xs-12 col-sm-4 col-md-4">
|
||||
<div
|
||||
v-if="!store.openChat || $q.screen.gt.xs"
|
||||
class="col-xs-12 col-sm-4 col-md-4"
|
||||
>
|
||||
<!-- New -->
|
||||
<div class="q-pt-md">
|
||||
<div class="q-px-md q-pb-md">
|
||||
|
|
@ -105,7 +108,7 @@ watch(searchData, () => {
|
|||
$q.screen.gt.xs ? '' : (store.openChat = true);
|
||||
store.currentIssue = item.id;
|
||||
store.currentTitle = item.title;
|
||||
store.currentIssueDate = item.createdAt
|
||||
store.currentIssueDate = item.createdAt;
|
||||
store.issue
|
||||
? (store.issue.result = store.issue.result.map(
|
||||
(v) => {
|
||||
|
|
|
|||
|
|
@ -1,27 +1,27 @@
|
|||
import { defineStore } from "pinia"
|
||||
import { defineStore } from "pinia";
|
||||
|
||||
export const useTransferDataStore = defineStore("transfer", () => {
|
||||
const statusText = (val: string) => {
|
||||
switch (val) {
|
||||
case "WAITTING":
|
||||
return "รอดำเนินการ"
|
||||
return "รอดำเนินการ";
|
||||
case "PENDING":
|
||||
return "เลือกตำแหน่งแล้ว"
|
||||
return "เลือกตำแหน่งแล้ว";
|
||||
case "APPROVE":
|
||||
return "อนุมัติ"
|
||||
return "อนุมัติ";
|
||||
case "REJECT":
|
||||
return "ไม่อนุมัติ"
|
||||
return "ไม่อนุมัติ";
|
||||
case "REPORT":
|
||||
return "ส่งรายชื่อไปออกคำสั่ง"
|
||||
return "ส่งรายชื่อไปออกคำสั่ง";
|
||||
case "DONE":
|
||||
return "ออกคำสั่งเสร็จแล้ว"
|
||||
return "ออกคำสั่งเสร็จแล้ว";
|
||||
|
||||
default:
|
||||
return "-"
|
||||
}
|
||||
return "-";
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
statusText,
|
||||
}
|
||||
})
|
||||
};
|
||||
});
|
||||
|
|
|
|||
|
|
@ -21,9 +21,4 @@ interface OptionQuestions2 {
|
|||
value: boolean;
|
||||
}
|
||||
|
||||
|
||||
export type {
|
||||
QuestionDescription,
|
||||
OptionQuestions,
|
||||
OptionQuestions2
|
||||
};
|
||||
export type { QuestionDescription, OptionQuestions, OptionQuestions2 };
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@
|
|||
* Router ขอโอน
|
||||
*/
|
||||
|
||||
const MainRetire = () => import("@/modules/03_retire/views/main.vue")
|
||||
const MainRetire = () => import("@/modules/03_retire/views/main.vue");
|
||||
|
||||
const AddRetire = () => import("@/modules/03_retire/views/addRetire.vue")
|
||||
const AddRetire = () => import("@/modules/03_retire/views/addRetire.vue");
|
||||
|
||||
const ResultQuestionair = () => import("@/modules/03_retire/views/result.vue")
|
||||
const ResultQuestionair = () => import("@/modules/03_retire/views/result.vue");
|
||||
|
||||
export default [
|
||||
{
|
||||
|
|
@ -46,4 +46,4 @@ export default [
|
|||
Key: [7],
|
||||
},
|
||||
},
|
||||
]
|
||||
];
|
||||
|
|
|
|||
|
|
@ -573,7 +573,6 @@ onMounted(() => {
|
|||
id="onSubmit"
|
||||
type="submit"
|
||||
unelevated
|
||||
|
||||
class="q-px-md items-center btnBlue"
|
||||
label="บันทึก"
|
||||
><q-tooltip>บันทึกแบบร่าง</q-tooltip></q-btn
|
||||
|
|
@ -583,7 +582,6 @@ onMounted(() => {
|
|||
id="onSubmit"
|
||||
type="button"
|
||||
unelevated
|
||||
|
||||
class="q-px-md items-center q-ml-sm"
|
||||
color="primary"
|
||||
label="ยื่นใบลา"
|
||||
|
|
@ -591,6 +589,5 @@ onMounted(() => {
|
|||
><q-tooltip>ยื่นใบลา</q-tooltip></q-btn
|
||||
>
|
||||
</q-card-actions>
|
||||
|
||||
</form>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -195,11 +195,17 @@ watch(props, () => {
|
|||
}
|
||||
});
|
||||
|
||||
watch(()=>formDataWorkInternational.leaveEndDate,()=>{
|
||||
if(formDataWorkInternational.leaveStartDate !== null && formDataWorkInternational.leaveEndDate !== null){
|
||||
fetchCheck()
|
||||
watch(
|
||||
() => formDataWorkInternational.leaveEndDate,
|
||||
() => {
|
||||
if (
|
||||
formDataWorkInternational.leaveStartDate !== null &&
|
||||
formDataWorkInternational.leaveEndDate !== null
|
||||
) {
|
||||
fetchCheck();
|
||||
}
|
||||
})
|
||||
}
|
||||
);
|
||||
/**Hook */
|
||||
onMounted(() => {
|
||||
if (props.data) {
|
||||
|
|
|
|||
|
|
@ -1,48 +1,54 @@
|
|||
interface OptionData {
|
||||
id: string | undefined
|
||||
name: string | undefined
|
||||
code: string | undefined
|
||||
id: string | undefined;
|
||||
name: string | undefined;
|
||||
code: string | undefined;
|
||||
}
|
||||
|
||||
interface FormLeavetMainData {
|
||||
type: string
|
||||
numDate: string
|
||||
extend: string
|
||||
use: string
|
||||
numAll: string
|
||||
numDone: string
|
||||
numNot: string
|
||||
numCancel: string
|
||||
type: string;
|
||||
numDate: string;
|
||||
extend: string;
|
||||
use: string;
|
||||
numAll: string;
|
||||
numDone: string;
|
||||
numNot: string;
|
||||
numCancel: string;
|
||||
}
|
||||
|
||||
interface formListLeaveData {
|
||||
no: string
|
||||
date: string | null
|
||||
type: string
|
||||
status: string
|
||||
year: string
|
||||
no: string;
|
||||
date: string | null;
|
||||
type: string;
|
||||
status: string;
|
||||
year: string;
|
||||
}
|
||||
|
||||
interface TypeLeave {
|
||||
code: string
|
||||
createdAt: Date
|
||||
createdFullName: string
|
||||
createdUserId: string
|
||||
id: string
|
||||
lastUpdateFullName: string
|
||||
lastUpdateUserId: string
|
||||
lastUpdatedAt: Date | null
|
||||
limit: number
|
||||
name: string
|
||||
code: string;
|
||||
createdAt: Date;
|
||||
createdFullName: string;
|
||||
createdUserId: string;
|
||||
id: string;
|
||||
lastUpdateFullName: string;
|
||||
lastUpdateUserId: string;
|
||||
lastUpdatedAt: Date | null;
|
||||
limit: number;
|
||||
name: string;
|
||||
}
|
||||
|
||||
interface LeaveItem {
|
||||
text: string
|
||||
color: string
|
||||
value: number
|
||||
all: number
|
||||
use: number
|
||||
remain: number
|
||||
text: string;
|
||||
color: string;
|
||||
value: number;
|
||||
all: number;
|
||||
use: number;
|
||||
remain: number;
|
||||
}
|
||||
|
||||
export type { OptionData, FormLeavetMainData, formListLeaveData, TypeLeave, LeaveItem }
|
||||
export type {
|
||||
OptionData,
|
||||
FormLeavetMainData,
|
||||
formListLeaveData,
|
||||
TypeLeave,
|
||||
LeaveItem,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,83 +1,91 @@
|
|||
interface FormData {
|
||||
dateStart: Date
|
||||
subject: string
|
||||
who: string
|
||||
requestName: string
|
||||
position: string
|
||||
level: string
|
||||
ocRequest: string
|
||||
leaveabsentDaySummon: string
|
||||
leaveUse: string
|
||||
leaveRemaining: string
|
||||
dateStart: Date;
|
||||
subject: string;
|
||||
who: string;
|
||||
requestName: string;
|
||||
position: string;
|
||||
level: string;
|
||||
ocRequest: string;
|
||||
leaveabsentDaySummon: string;
|
||||
leaveUse: string;
|
||||
leaveRemaining: string;
|
||||
}
|
||||
interface OrdinationForm {
|
||||
leaveWrote: object | null
|
||||
leavegovernmentDate: object | null
|
||||
leavebirthDate: object | null
|
||||
leaveStartDate: object | null
|
||||
leaveEndDate: object | null
|
||||
totalLeave: object | null
|
||||
ordainDayOrdination: object | null
|
||||
ordainDayLocationName: object | null
|
||||
ordainDayLocationNumber: object | null
|
||||
ordainDayLocationAddress: object | null
|
||||
ordainDayBuddhistLentName: object | null
|
||||
ordainDayBuddhistLentAddress: object | null
|
||||
[key: string]: any
|
||||
leaveWrote: object | null;
|
||||
leavegovernmentDate: object | null;
|
||||
leavebirthDate: object | null;
|
||||
leaveStartDate: object | null;
|
||||
leaveEndDate: object | null;
|
||||
totalLeave: object | null;
|
||||
ordainDayOrdination: object | null;
|
||||
ordainDayLocationName: object | null;
|
||||
ordainDayLocationNumber: object | null;
|
||||
ordainDayLocationAddress: object | null;
|
||||
ordainDayBuddhistLentName: object | null;
|
||||
ordainDayBuddhistLentAddress: object | null;
|
||||
[key: string]: any;
|
||||
}
|
||||
interface HajiForm {
|
||||
leaveWrote: object | null
|
||||
leavegovernmentDate: object | null
|
||||
leaveStartDate: object | null
|
||||
leaveEndDate: object | null
|
||||
[key: string]: any
|
||||
leaveWrote: object | null;
|
||||
leavegovernmentDate: object | null;
|
||||
leaveStartDate: object | null;
|
||||
leaveEndDate: object | null;
|
||||
[key: string]: any;
|
||||
}
|
||||
interface MilitaryForm {
|
||||
leaveStartDate: object | null
|
||||
leaveEndDate: object | null
|
||||
leaveWrote: object | null
|
||||
absentDaySummon: object | null
|
||||
absentDayLocation: object | null
|
||||
absentDayRegistorDate: object | null
|
||||
absentDayGetIn: object | null
|
||||
absentDayAt: object | null
|
||||
leaveDetail: object | null
|
||||
[key: string]: any
|
||||
leaveStartDate: object | null;
|
||||
leaveEndDate: object | null;
|
||||
leaveWrote: object | null;
|
||||
absentDaySummon: object | null;
|
||||
absentDayLocation: object | null;
|
||||
absentDayRegistorDate: object | null;
|
||||
absentDayGetIn: object | null;
|
||||
absentDayAt: object | null;
|
||||
leaveDetail: object | null;
|
||||
[key: string]: any;
|
||||
}
|
||||
interface studyDaySubjectForm {
|
||||
leaveStartDate: object | null
|
||||
leaveEndDate: object | null
|
||||
leavebirthDate: object | null
|
||||
leavegovernmentDate: object | null
|
||||
leaveSalary: object | null
|
||||
leaveNumber: object | null
|
||||
leaveAddress: object | null
|
||||
studyDayScholarship: object | null
|
||||
studyDayCountry: object | null
|
||||
studyDayUniversityName: object | null
|
||||
studyDayDegreeLevel: object | null
|
||||
studyDaySubject: object | null
|
||||
leaveWrote: object | null
|
||||
[key: string]: any
|
||||
leaveStartDate: object | null;
|
||||
leaveEndDate: object | null;
|
||||
leavebirthDate: object | null;
|
||||
leavegovernmentDate: object | null;
|
||||
leaveSalary: object | null;
|
||||
leaveNumber: object | null;
|
||||
leaveAddress: object | null;
|
||||
studyDayScholarship: object | null;
|
||||
studyDayCountry: object | null;
|
||||
studyDayUniversityName: object | null;
|
||||
studyDayDegreeLevel: object | null;
|
||||
studyDaySubject: object | null;
|
||||
leaveWrote: object | null;
|
||||
[key: string]: any;
|
||||
}
|
||||
interface TrainForm {
|
||||
leaveStartDate: object | null
|
||||
leaveEndDate: object | null
|
||||
leavebirthDate: object | null
|
||||
leavegovernmentDate: object | null
|
||||
leaveNumber: object | null
|
||||
leaveAddress: object | null
|
||||
studyDayScholarship: object | null
|
||||
studyDayCountry: object | null
|
||||
studyDayTrainingSubject: object | null
|
||||
studyDayTrainingName: object | null
|
||||
leaveWrote: object | null
|
||||
[key: string]: any
|
||||
leaveStartDate: object | null;
|
||||
leaveEndDate: object | null;
|
||||
leavebirthDate: object | null;
|
||||
leavegovernmentDate: object | null;
|
||||
leaveNumber: object | null;
|
||||
leaveAddress: object | null;
|
||||
studyDayScholarship: object | null;
|
||||
studyDayCountry: object | null;
|
||||
studyDayTrainingSubject: object | null;
|
||||
studyDayTrainingName: object | null;
|
||||
leaveWrote: object | null;
|
||||
[key: string]: any;
|
||||
}
|
||||
interface RehabilitationForm {
|
||||
leaveStartDate: object | null
|
||||
leaveEndDate: object | null
|
||||
leaveWrote: object | null
|
||||
[key: string]: any
|
||||
leaveStartDate: object | null;
|
||||
leaveEndDate: object | null;
|
||||
leaveWrote: object | null;
|
||||
[key: string]: any;
|
||||
}
|
||||
export type { FormData, OrdinationForm, HajiForm, MilitaryForm, studyDaySubjectForm, TrainForm, RehabilitationForm }
|
||||
export type {
|
||||
FormData,
|
||||
OrdinationForm,
|
||||
HajiForm,
|
||||
MilitaryForm,
|
||||
studyDaySubjectForm,
|
||||
TrainForm,
|
||||
RehabilitationForm,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,25 +1,25 @@
|
|||
interface FormData {
|
||||
leaveWrote: string //เขียนที่***
|
||||
leaveStartDate: Date | null //*วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: Date | null //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveTotal: string //จำนวนวันลา
|
||||
leaveNumber: string //หมายเลขที่ติดต่อขณะลา
|
||||
leaveDetail: string //รายละเอียดการลา
|
||||
leaveAddress: string //สถานที่ติดต่อขณะลา
|
||||
leaveDocument: File[] | null //เอกสารปะกอบ
|
||||
[key: string]: any
|
||||
leaveWrote: string; //เขียนที่***
|
||||
leaveStartDate: Date | null; //*วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: Date | null; //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveTotal: string; //จำนวนวันลา
|
||||
leaveNumber: string; //หมายเลขที่ติดต่อขณะลา
|
||||
leaveDetail: string; //รายละเอียดการลา
|
||||
leaveAddress: string; //สถานที่ติดต่อขณะลา
|
||||
leaveDocument: File[] | null; //เอกสารปะกอบ
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
interface FormRef {
|
||||
leaveWrote: object | null //เขียนที่***
|
||||
leaveStartDate: object | null //*วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: object | null //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveTotal: object | null //จำนวนวันลา
|
||||
leaveNumber: object | null //หมายเลขที่ติดต่อขณะลา
|
||||
leaveDetail: object | null //รายละเอียดการลา
|
||||
leaveAddress: object | null //สถานที่ติดต่อขณะลา
|
||||
leaveDocument: object | null //เอกสารปะกอบ
|
||||
[key: string]: any
|
||||
leaveWrote: object | null; //เขียนที่***
|
||||
leaveStartDate: object | null; //*วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: object | null; //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveTotal: object | null; //จำนวนวันลา
|
||||
leaveNumber: object | null; //หมายเลขที่ติดต่อขณะลา
|
||||
leaveDetail: object | null; //รายละเอียดการลา
|
||||
leaveAddress: object | null; //สถานที่ติดต่อขณะลา
|
||||
leaveDocument: object | null; //เอกสารปะกอบ
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
export type { FormData, FormRef }
|
||||
export type { FormData, FormRef };
|
||||
|
|
|
|||
|
|
@ -1,40 +1,40 @@
|
|||
interface FormData {
|
||||
leaveWrote: string //เขียนที่***
|
||||
leaveStartDate: Date | null //*วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: Date | null //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveTotal: string //จำนวนวันลา
|
||||
leaveSalary: number //เงินเดือนปัจจุบัน
|
||||
salaryText: number //เงินเดือนคำอ่าน
|
||||
coupleDayName: string //ชื่อคู่สมรส
|
||||
coupleDayPosition: string //ตำแหน่งคู่สมรส
|
||||
coupleDayLevel: string //ระดับคู่สมรส
|
||||
coupleDayLevelCountry: string //ไปปฏิบัติราชการ ณ ประเทศ
|
||||
followHistoryCountry: string //ประวัติการลาติดตามคู่สมรสประเทศ
|
||||
followHistoryTime: string //ประวัติการลาติดตามคู่สมรสประเทศ
|
||||
followHistoryStart: Date | null //ประวัติการลาติดตามคู่สมรสประเทศ
|
||||
followHistoryEnd: Date | null //ประวัติการลาติดตามคู่สมรสประเทศ
|
||||
leaveDetail: string //รายละเอียดการลา
|
||||
leaveDocument: File[] | null //เอกสารปะกอบ
|
||||
leaveWrote: string; //เขียนที่***
|
||||
leaveStartDate: Date | null; //*วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: Date | null; //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveTotal: string; //จำนวนวันลา
|
||||
leaveSalary: number; //เงินเดือนปัจจุบัน
|
||||
salaryText: number; //เงินเดือนคำอ่าน
|
||||
coupleDayName: string; //ชื่อคู่สมรส
|
||||
coupleDayPosition: string; //ตำแหน่งคู่สมรส
|
||||
coupleDayLevel: string; //ระดับคู่สมรส
|
||||
coupleDayLevelCountry: string; //ไปปฏิบัติราชการ ณ ประเทศ
|
||||
followHistoryCountry: string; //ประวัติการลาติดตามคู่สมรสประเทศ
|
||||
followHistoryTime: string; //ประวัติการลาติดตามคู่สมรสประเทศ
|
||||
followHistoryStart: Date | null; //ประวัติการลาติดตามคู่สมรสประเทศ
|
||||
followHistoryEnd: Date | null; //ประวัติการลาติดตามคู่สมรสประเทศ
|
||||
leaveDetail: string; //รายละเอียดการลา
|
||||
leaveDocument: File[] | null; //เอกสารปะกอบ
|
||||
}
|
||||
|
||||
interface FormRef {
|
||||
leaveWrote: object | null //เขียนที่***
|
||||
leaveStartDate: object | null //*วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: object | null //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveTotal: object | null //จำนวนวันลา
|
||||
leaveSalary: object | null //เงินเดือนปัจจุบัน
|
||||
coupleDayName: object | null //หมายเลขที่ติดต่อขณะลา
|
||||
coupleDayPosition: object | null //ตำแหน่งคู่สมรส
|
||||
coupleDayLevel: object | null //ระดับคู่สมรส
|
||||
coupleDayLevelCountry: object | null //ไปปฏิบัติราชการ ณ ประเทศ
|
||||
leaveWrote: object | null; //เขียนที่***
|
||||
leaveStartDate: object | null; //*วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: object | null; //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveTotal: object | null; //จำนวนวันลา
|
||||
leaveSalary: object | null; //เงินเดือนปัจจุบัน
|
||||
coupleDayName: object | null; //หมายเลขที่ติดต่อขณะลา
|
||||
coupleDayPosition: object | null; //ตำแหน่งคู่สมรส
|
||||
coupleDayLevel: object | null; //ระดับคู่สมรส
|
||||
coupleDayLevelCountry: object | null; //ไปปฏิบัติราชการ ณ ประเทศ
|
||||
// followHistoryCountry: object | null //ประวัติการลาติดตามคู่สมรสประเทศ
|
||||
// followHistoryTime: object | null //ประวัติการลาติดตามคู่สมรสประเทศ
|
||||
// followHistoryStart: object | null //ประวัติการลาติดตามคู่สมรสประเทศ
|
||||
// followHistoryEnd: object | null //ประวัติการลาติดตามคู่สมรสประเทศ
|
||||
leaveDetail: object | null //รายละเอียดการลา
|
||||
leaveAddress: object | null //สถานที่ติดต่อขณะลา
|
||||
leaveDocument: object | null //เอกสารปะกอบ
|
||||
[key: string]: any
|
||||
leaveDetail: object | null; //รายละเอียดการลา
|
||||
leaveAddress: object | null; //สถานที่ติดต่อขณะลา
|
||||
leaveDocument: object | null; //เอกสารปะกอบ
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
export type { FormData, FormRef }
|
||||
export type { FormData, FormRef };
|
||||
|
|
|
|||
|
|
@ -1,29 +1,29 @@
|
|||
interface FormData {
|
||||
leaveWrote: string //เขียนที่***
|
||||
wifeDayName: string //ชื่อภรรยา
|
||||
wifeDayDateBorn: Date | null //วันที่คลอด
|
||||
leaveStartDate: Date | null //*วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: Date | null //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveTotal: string //จำนวนวันลา
|
||||
leaveNumber: string //หมายเลขที่ติดต่อขณะลา
|
||||
leaveDetail: string //รายละเอียดการลา
|
||||
leaveAddress: string //สถานที่ติดต่อขณะลา
|
||||
leaveDocument: File[] | null //เอกสารปะกอบ
|
||||
[key: string]: any
|
||||
leaveWrote: string; //เขียนที่***
|
||||
wifeDayName: string; //ชื่อภรรยา
|
||||
wifeDayDateBorn: Date | null; //วันที่คลอด
|
||||
leaveStartDate: Date | null; //*วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: Date | null; //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveTotal: string; //จำนวนวันลา
|
||||
leaveNumber: string; //หมายเลขที่ติดต่อขณะลา
|
||||
leaveDetail: string; //รายละเอียดการลา
|
||||
leaveAddress: string; //สถานที่ติดต่อขณะลา
|
||||
leaveDocument: File[] | null; //เอกสารปะกอบ
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
interface FormRef {
|
||||
leaveWrote: object | null //เขียนที่***
|
||||
leaveStartDate: object | null //*วัน เดือน ปีเริ่มต้นลา
|
||||
wifeDayName: object | null //ชื่อภรรยา
|
||||
wifeDayDateBorn: object | null //วันที่คลอด
|
||||
leaveEndDate: object | null //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveTotal: object | null //จำนวนวันลา
|
||||
leaveNumber: object | null //หมายเลขที่ติดต่อขณะลา
|
||||
leaveDetail: object | null //รายละเอียดการลา
|
||||
leaveAddress: object | null //สถานที่ติดต่อขณะลา
|
||||
leaveDocument: object | null //เอกสารปะกอบ
|
||||
[key: string]: any
|
||||
leaveWrote: object | null; //เขียนที่***
|
||||
leaveStartDate: object | null; //*วัน เดือน ปีเริ่มต้นลา
|
||||
wifeDayName: object | null; //ชื่อภรรยา
|
||||
wifeDayDateBorn: object | null; //วันที่คลอด
|
||||
leaveEndDate: object | null; //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveTotal: object | null; //จำนวนวันลา
|
||||
leaveNumber: object | null; //หมายเลขที่ติดต่อขณะลา
|
||||
leaveDetail: object | null; //รายละเอียดการลา
|
||||
leaveAddress: object | null; //สถานที่ติดต่อขณะลา
|
||||
leaveDocument: object | null; //เอกสารปะกอบ
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
export type { FormData, FormRef }
|
||||
export type { FormData, FormRef };
|
||||
|
|
|
|||
|
|
@ -1,28 +1,28 @@
|
|||
interface FormData {
|
||||
leaveWrote: string //เขียนที่***
|
||||
leaveStartDate: Date | null //*วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: Date | null //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveRange: string
|
||||
leaveTotal: string //จำนวนวันลา
|
||||
contractTel: string //หมายเลขโทรศัพท์ที่ติดต่อได้
|
||||
leaveNumber: string //หมายเลขที่ติดต่อขณะลา
|
||||
leaveDetail: string //รายละเอียดการลา
|
||||
leaveAddress: string //สถานที่ติดต่อขณะลา
|
||||
leaveDocument: File[] | null //เอกสารปะกอบ
|
||||
[key: string]: any
|
||||
leaveWrote: string; //เขียนที่***
|
||||
leaveStartDate: Date | null; //*วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: Date | null; //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveRange: string;
|
||||
leaveTotal: string; //จำนวนวันลา
|
||||
contractTel: string; //หมายเลขโทรศัพท์ที่ติดต่อได้
|
||||
leaveNumber: string; //หมายเลขที่ติดต่อขณะลา
|
||||
leaveDetail: string; //รายละเอียดการลา
|
||||
leaveAddress: string; //สถานที่ติดต่อขณะลา
|
||||
leaveDocument: File[] | null; //เอกสารปะกอบ
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
interface FormRef {
|
||||
leaveWrote: object | null //เขียนที่***
|
||||
leaveStartDate: object | null //*วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: object | null //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveRange: object | null
|
||||
leaveTotal: object | null //จำนวนวันลา
|
||||
leaveNumber: object | null //หมายเลขที่ติดต่อขณะลา
|
||||
leaveDetail: object | null //รายละเอียดการลา
|
||||
leaveAddress: object | null //สถานที่ติดต่อขณะลา
|
||||
leaveWrote: object | null; //เขียนที่***
|
||||
leaveStartDate: object | null; //*วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: object | null; //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveRange: object | null;
|
||||
leaveTotal: object | null; //จำนวนวันลา
|
||||
leaveNumber: object | null; //หมายเลขที่ติดต่อขณะลา
|
||||
leaveDetail: object | null; //รายละเอียดการลา
|
||||
leaveAddress: object | null; //สถานที่ติดต่อขณะลา
|
||||
|
||||
[key: string]: any
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
export type { FormData, FormRef }
|
||||
export type { FormData, FormRef };
|
||||
|
|
|
|||
|
|
@ -1,31 +1,31 @@
|
|||
interface FormData {
|
||||
leaveWrote: string //เขียนที่***
|
||||
leaveRange: string
|
||||
restDayOldTotal: string //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา
|
||||
restDayCurrentTotal: string //จำนวนวันลาพักผ่อนประจำปีปัจจุบัน
|
||||
leaveStartDate: Date | null //*วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: Date | null //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveTotal: string //จำนวนวันลา
|
||||
leaveNumber: string //หมายเลขที่ติดต่อขณะลา
|
||||
leaveDetail: string //รายละเอียดการลา
|
||||
leaveAddress: string //สถานที่ติดต่อขณะลา
|
||||
leaveDocument: File[] | null //เอกสารปะกอบ
|
||||
[key: string]: any
|
||||
leaveWrote: string; //เขียนที่***
|
||||
leaveRange: string;
|
||||
restDayOldTotal: string; //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา
|
||||
restDayCurrentTotal: string; //จำนวนวันลาพักผ่อนประจำปีปัจจุบัน
|
||||
leaveStartDate: Date | null; //*วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: Date | null; //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveTotal: string; //จำนวนวันลา
|
||||
leaveNumber: string; //หมายเลขที่ติดต่อขณะลา
|
||||
leaveDetail: string; //รายละเอียดการลา
|
||||
leaveAddress: string; //สถานที่ติดต่อขณะลา
|
||||
leaveDocument: File[] | null; //เอกสารปะกอบ
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
interface FormRef {
|
||||
leaveWrote: object | null //เขียนที่***
|
||||
leaveRange: object | null
|
||||
leaveStartDate: object | null //*วัน เดือน ปีเริ่มต้นลา
|
||||
restDayOldTotal: object | null //ชื่อภรรยา
|
||||
restDayCurrentTotal: object | null //วันที่คลอด
|
||||
leaveEndDate: object | null //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveTotal: object | null //จำนวนวันลา
|
||||
leaveNumber: object | null //หมายเลขที่ติดต่อขณะลา
|
||||
leaveDetail: object | null //รายละเอียดการลา
|
||||
leaveAddress: object | null //สถานที่ติดต่อขณะลา
|
||||
leaveDocument: object | null //เอกสารปะกอบ
|
||||
[key: string]: any
|
||||
leaveWrote: object | null; //เขียนที่***
|
||||
leaveRange: object | null;
|
||||
leaveStartDate: object | null; //*วัน เดือน ปีเริ่มต้นลา
|
||||
restDayOldTotal: object | null; //ชื่อภรรยา
|
||||
restDayCurrentTotal: object | null; //วันที่คลอด
|
||||
leaveEndDate: object | null; //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveTotal: object | null; //จำนวนวันลา
|
||||
leaveNumber: object | null; //หมายเลขที่ติดต่อขณะลา
|
||||
leaveDetail: object | null; //รายละเอียดการลา
|
||||
leaveAddress: object | null; //สถานที่ติดต่อขณะลา
|
||||
leaveDocument: object | null; //เอกสารปะกอบ
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
export type { FormData, FormRef }
|
||||
export type { FormData, FormRef };
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
interface FormData {
|
||||
type: string
|
||||
leaveWrote: string //เขียนที่***
|
||||
leaveStartDate: Date | null //*วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: Date | null //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveDetail: string //รายละเอียดการลา
|
||||
leaveDocument: File[] | null //เอกสารปะกอบ
|
||||
leaveDraftDocument: File[]
|
||||
type: string;
|
||||
leaveWrote: string; //เขียนที่***
|
||||
leaveStartDate: Date | null; //*วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: Date | null; //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveDetail: string; //รายละเอียดการลา
|
||||
leaveDocument: File[] | null; //เอกสารปะกอบ
|
||||
leaveDraftDocument: File[];
|
||||
}
|
||||
|
||||
interface FormRef {
|
||||
leaveWrote: object | null //เขียนที่***
|
||||
leaveStartDate: object | null //*วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: object | null //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveDetail: object | null //รายละเอียดการลา
|
||||
leaveDocument: object | null //เอกสารปะกอบ
|
||||
[key: string]: any
|
||||
leaveWrote: object | null; //เขียนที่***
|
||||
leaveStartDate: object | null; //*วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: object | null; //*วัน เดือน ปีสิ้นสุดลา
|
||||
leaveDetail: object | null; //รายละเอียดการลา
|
||||
leaveDocument: object | null; //เอกสารปะกอบ
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
export type { FormData, FormRef }
|
||||
export type { FormData, FormRef };
|
||||
|
|
|
|||
|
|
@ -1,146 +1,156 @@
|
|||
interface ListLeave {
|
||||
id: string //*Id การยื่นขอลา
|
||||
leaveTypeName: string //Name ประเภทการลา
|
||||
leaveTypeId: string //Id ประเภทการลา
|
||||
leaveStartDate: Date
|
||||
leaveEndDate: Date
|
||||
fullName: string //คำนำหน้า ชื่อ นามสกุล คนขอลา
|
||||
dateSendLeave: Date | null //วันที่ยื่นใบลา
|
||||
status: string //สถานะการของลา
|
||||
isDelete: boolean //ขอยกเลิกคำขอลา ถ้าเคยขอแล้วจะเป็น true ไม่เคยเป็น false
|
||||
hajjDayStatus: boolean
|
||||
id: string; //*Id การยื่นขอลา
|
||||
leaveTypeName: string; //Name ประเภทการลา
|
||||
leaveTypeId: string; //Id ประเภทการลา
|
||||
leaveStartDate: Date;
|
||||
leaveEndDate: Date;
|
||||
fullName: string; //คำนำหน้า ชื่อ นามสกุล คนขอลา
|
||||
dateSendLeave: Date | null; //วันที่ยื่นใบลา
|
||||
status: string; //สถานะการของลา
|
||||
isDelete: boolean; //ขอยกเลิกคำขอลา ถ้าเคยขอแล้วจะเป็น true ไม่เคยเป็น false
|
||||
hajjDayStatus: boolean;
|
||||
}
|
||||
|
||||
interface ListLeaveTable {
|
||||
id: string
|
||||
leaveTypeName: string
|
||||
leaveTypeId: string
|
||||
fullName: string
|
||||
dateSendLeave: string | null
|
||||
status: string
|
||||
isDelete: boolean
|
||||
hajjDayStatus: boolean
|
||||
id: string;
|
||||
leaveTypeName: string;
|
||||
leaveTypeId: string;
|
||||
fullName: string;
|
||||
dateSendLeave: string | null;
|
||||
status: string;
|
||||
isDelete: boolean;
|
||||
hajjDayStatus: boolean;
|
||||
}
|
||||
|
||||
interface FremDetail {
|
||||
id: string //Id การยื่นขอลา
|
||||
leaveTypeName: string // Name ประเภทการลา
|
||||
leaveTypeId: string //Id ประเภทการลา
|
||||
fullname: string //คำนำหน้า ชื่อ นามสกุล คนขอลา
|
||||
dateSendLeave: Date // วันที่ยืนใบลา
|
||||
status: string //สถานะการของลา
|
||||
leaveDateStart: Date //วันเริ่มการลา
|
||||
leaveDateEnd: Date //วันสิ้นสุดการลา
|
||||
leaveCount: string //จำนวนวันลา
|
||||
leaveWrote: string //เขียนที่
|
||||
leaveAddress: string //สถานที่ติดต่อขณะลา
|
||||
leaveNumber: string //หมายเลขที่ติดต่อขณะลา
|
||||
leaveDetail: string //รายละเอียดการลา
|
||||
leaveDocument: string //อัปโหลดเอกสารประกอบรายละเอียด
|
||||
leaveDraftDocument: string //อัปโหลดแบบฟอร์มการลา
|
||||
leaveLastStart: Date //ลาครั้งสุดท้ายในประเภทนั้น ๆ เริ่มเมื่อวันที่(ลาป่วย ลาคลอดบุตร และลากิจส่วนตัว)(Auto)
|
||||
leaveLastEnd: Date //ลาครั้งสุดท้ายในประเภทนั้น ๆ สิ้นสุดเมื่อวันที่(ลาป่วย ลาคลอดบุตร และลากิจส่วนตัว)(Auto)
|
||||
leaveTotal: string //จำนวนวันที่ลา(Auto)
|
||||
leavebirthDate: Date //วันเดือนปีเกิด(Auto)
|
||||
leavegovernmentDate: Date //วันที่เข้ารับราชการ(Auto)
|
||||
leaveSalary: number //เงินเดือนปัจจุบัน(Auto)
|
||||
leaveSalaryText: string //เงินเดือนปัจจุบัน(เขียนเป็นคำอ่าน)
|
||||
leaveTypeDay: string //ประเภทการลาในวันนั้นเช่น
|
||||
wifeDayName: string //ชื่อภรรยา(ลาไปช่วยเหลือภริยาที่คลอดบุตร)
|
||||
wifeDayDateBorn: Date //วันที่คลอด(ลาไปช่วยเหลือภริยาที่คลอดบุตร)
|
||||
restDayOldTotal: number //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา(ลาพักผ่อน)(Auto)
|
||||
restDayCurrentTotal: number //จำนวนวันลาพักผ่อนประจำปีปัจจุบัน(ลาพักผ่อน)(Auto)
|
||||
ordainDayStatus: string //เคย/ไม่เคยบวช (ให้เลือก) (ลาอุปสมบท)
|
||||
ordainDayLocationName: string //สถานที่บวช ชื่อวัด(ลาอุปสมบท)
|
||||
ordainDayLocationAddress: string //สถานที่บวช ที่อยู่(ลาอุปสมบท)
|
||||
ordainDayLocationNumber: string //สถานที่บวช หมายเลขโทรศัพท์(ลาอุปสมบท)
|
||||
ordainDayOrdination: Date //สถานที่บวช วันอุปสมบท(ลาอุปสมบท)
|
||||
ordainDayBuddhistLentName: string //สถานที่จำพรรษา ชื่อวัด(ลาอุปสมบท)
|
||||
ordainDayBuddhistLentAddress: string //สถานที่จำพรรษา ที่อยู่(ลาอุปสมบท)
|
||||
hajjDayStatus: string //เคย/ไม่เคยไปประกอบพิธีฮัจญ์ (ให้เลือก) (ลาประกอบพิธีฮัจญ์)
|
||||
absentDaySummon: string //ได้รับหมายเรียกของ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล)
|
||||
absentDayLocation: string //ที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล)
|
||||
absentDayRegistorDate: Date //ลงวันที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล)
|
||||
absentDayGetIn: string //ให้เข้ารับการ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล)
|
||||
absentDayAt: string //ณ ที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล)
|
||||
studyDaySubject: string //กรณีลาไปศึกษาต่อ ศึกษาวิชา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
|
||||
studyDayDegreeLevel: string //กรณีลาไปศึกษาต่อ ขั้นปริญญา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
|
||||
studyDayUniversityName: string //กรณีลาไปศึกษาต่อ ชื่อสถานศึกษา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
|
||||
studyDayTrainingSubject: string //กรณีลาไปฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน ด้าน/หลักสูตร (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
|
||||
studyDayTrainingName: string //กรณีลาไปฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน ณ สถานที่ (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
|
||||
studyDayCountry: string //ประเทศ (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
|
||||
studyDayScholarship: string //ด้วยทุน (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
|
||||
coupleDayName: string //ชื่อคู่สมรส (ลาติดตามคู่สมรส)
|
||||
coupleDayPosition: string //ตำแหน่งคู่สมรส (ลาติดตามคู่สมรส)
|
||||
coupleDayLevel: string //ระดับคู่สมรส (ลาติดตามคู่สมรส)
|
||||
coupleDayLevelCountry: string //ไปปฏิบัติราชการ ณ ประเทศ (ลาติดตามคู่สมรส)
|
||||
coupleDayCountryHistory: string //ประวัติ ประเทศ (ลาติดตามคู่สมรส)
|
||||
coupleDayTotalHistory: string //ประวัติ เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส)
|
||||
coupleDayStartDateHistory: Date //ประวัติ ตั้งแต่วันที่ (ลาติดตามคู่สมรส)
|
||||
coupleDayEndDateHistory: Date //ประวัติ ถึงวันที่ (ลาติดตามคู่สมรส)
|
||||
coupleDaySumTotalHistory: string //ประวัติ ในกรณีลาติดต่อกับครั้งก่อน รวมทั้งนี้ด้วย เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส)
|
||||
approveStep: string
|
||||
dear: string
|
||||
leaveRange: string
|
||||
id: string; //Id การยื่นขอลา
|
||||
leaveTypeName: string; // Name ประเภทการลา
|
||||
leaveTypeId: string; //Id ประเภทการลา
|
||||
fullname: string; //คำนำหน้า ชื่อ นามสกุล คนขอลา
|
||||
dateSendLeave: Date; // วันที่ยืนใบลา
|
||||
status: string; //สถานะการของลา
|
||||
leaveDateStart: Date; //วันเริ่มการลา
|
||||
leaveDateEnd: Date; //วันสิ้นสุดการลา
|
||||
leaveCount: string; //จำนวนวันลา
|
||||
leaveWrote: string; //เขียนที่
|
||||
leaveAddress: string; //สถานที่ติดต่อขณะลา
|
||||
leaveNumber: string; //หมายเลขที่ติดต่อขณะลา
|
||||
leaveDetail: string; //รายละเอียดการลา
|
||||
leaveDocument: string; //อัปโหลดเอกสารประกอบรายละเอียด
|
||||
leaveDraftDocument: string; //อัปโหลดแบบฟอร์มการลา
|
||||
leaveLastStart: Date; //ลาครั้งสุดท้ายในประเภทนั้น ๆ เริ่มเมื่อวันที่(ลาป่วย ลาคลอดบุตร และลากิจส่วนตัว)(Auto)
|
||||
leaveLastEnd: Date; //ลาครั้งสุดท้ายในประเภทนั้น ๆ สิ้นสุดเมื่อวันที่(ลาป่วย ลาคลอดบุตร และลากิจส่วนตัว)(Auto)
|
||||
leaveTotal: string; //จำนวนวันที่ลา(Auto)
|
||||
leavebirthDate: Date; //วันเดือนปีเกิด(Auto)
|
||||
leavegovernmentDate: Date; //วันที่เข้ารับราชการ(Auto)
|
||||
leaveSalary: number; //เงินเดือนปัจจุบัน(Auto)
|
||||
leaveSalaryText: string; //เงินเดือนปัจจุบัน(เขียนเป็นคำอ่าน)
|
||||
leaveTypeDay: string; //ประเภทการลาในวันนั้นเช่น
|
||||
wifeDayName: string; //ชื่อภรรยา(ลาไปช่วยเหลือภริยาที่คลอดบุตร)
|
||||
wifeDayDateBorn: Date; //วันที่คลอด(ลาไปช่วยเหลือภริยาที่คลอดบุตร)
|
||||
restDayOldTotal: number; //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา(ลาพักผ่อน)(Auto)
|
||||
restDayCurrentTotal: number; //จำนวนวันลาพักผ่อนประจำปีปัจจุบัน(ลาพักผ่อน)(Auto)
|
||||
ordainDayStatus: string; //เคย/ไม่เคยบวช (ให้เลือก) (ลาอุปสมบท)
|
||||
ordainDayLocationName: string; //สถานที่บวช ชื่อวัด(ลาอุปสมบท)
|
||||
ordainDayLocationAddress: string; //สถานที่บวช ที่อยู่(ลาอุปสมบท)
|
||||
ordainDayLocationNumber: string; //สถานที่บวช หมายเลขโทรศัพท์(ลาอุปสมบท)
|
||||
ordainDayOrdination: Date; //สถานที่บวช วันอุปสมบท(ลาอุปสมบท)
|
||||
ordainDayBuddhistLentName: string; //สถานที่จำพรรษา ชื่อวัด(ลาอุปสมบท)
|
||||
ordainDayBuddhistLentAddress: string; //สถานที่จำพรรษา ที่อยู่(ลาอุปสมบท)
|
||||
hajjDayStatus: string; //เคย/ไม่เคยไปประกอบพิธีฮัจญ์ (ให้เลือก) (ลาประกอบพิธีฮัจญ์)
|
||||
absentDaySummon: string; //ได้รับหมายเรียกของ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล)
|
||||
absentDayLocation: string; //ที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล)
|
||||
absentDayRegistorDate: Date; //ลงวันที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล)
|
||||
absentDayGetIn: string; //ให้เข้ารับการ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล)
|
||||
absentDayAt: string; //ณ ที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล)
|
||||
studyDaySubject: string; //กรณีลาไปศึกษาต่อ ศึกษาวิชา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
|
||||
studyDayDegreeLevel: string; //กรณีลาไปศึกษาต่อ ขั้นปริญญา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
|
||||
studyDayUniversityName: string; //กรณีลาไปศึกษาต่อ ชื่อสถานศึกษา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
|
||||
studyDayTrainingSubject: string; //กรณีลาไปฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน ด้าน/หลักสูตร (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
|
||||
studyDayTrainingName: string; //กรณีลาไปฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน ณ สถานที่ (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
|
||||
studyDayCountry: string; //ประเทศ (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
|
||||
studyDayScholarship: string; //ด้วยทุน (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน)
|
||||
coupleDayName: string; //ชื่อคู่สมรส (ลาติดตามคู่สมรส)
|
||||
coupleDayPosition: string; //ตำแหน่งคู่สมรส (ลาติดตามคู่สมรส)
|
||||
coupleDayLevel: string; //ระดับคู่สมรส (ลาติดตามคู่สมรส)
|
||||
coupleDayLevelCountry: string; //ไปปฏิบัติราชการ ณ ประเทศ (ลาติดตามคู่สมรส)
|
||||
coupleDayCountryHistory: string; //ประวัติ ประเทศ (ลาติดตามคู่สมรส)
|
||||
coupleDayTotalHistory: string; //ประวัติ เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส)
|
||||
coupleDayStartDateHistory: Date; //ประวัติ ตั้งแต่วันที่ (ลาติดตามคู่สมรส)
|
||||
coupleDayEndDateHistory: Date; //ประวัติ ถึงวันที่ (ลาติดตามคู่สมรส)
|
||||
coupleDaySumTotalHistory: string; //ประวัติ ในกรณีลาติดต่อกับครั้งก่อน รวมทั้งนี้ด้วย เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส)
|
||||
approveStep: string;
|
||||
dear: string;
|
||||
leaveRange: string;
|
||||
}
|
||||
|
||||
interface FromCancelDetail {
|
||||
id: string //*Id การยื่นขอลา
|
||||
leaveTypeName: String //Name ประเภทการลา
|
||||
fullname: String //คำนำหน้า ชื่อ นามสกุล คนขอลา
|
||||
status: String //สถานะการของลา
|
||||
leaveDocDelete: string //เอกสารการยกเลิกการลา
|
||||
leaveResonDelete: String //เหตุผลการยกเลิกการลา
|
||||
leaveWrote: String //เขียนที่
|
||||
leaveAddress: String //สถานที่ติดต่อขณะลา
|
||||
leaveNumber: String //หมายเลขที่ติดต่อขณะลา
|
||||
leaveDetail: String //รายละเอียดการลา
|
||||
leaveTotal: number //จำนวนวันที่ลา
|
||||
leaveStartDate: Date //วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: Date //วัน เดือน ปีสิ้นสุดลา
|
||||
id: string; //*Id การยื่นขอลา
|
||||
leaveTypeName: String; //Name ประเภทการลา
|
||||
fullname: String; //คำนำหน้า ชื่อ นามสกุล คนขอลา
|
||||
status: String; //สถานะการของลา
|
||||
leaveDocDelete: string; //เอกสารการยกเลิกการลา
|
||||
leaveResonDelete: String; //เหตุผลการยกเลิกการลา
|
||||
leaveWrote: String; //เขียนที่
|
||||
leaveAddress: String; //สถานที่ติดต่อขณะลา
|
||||
leaveNumber: String; //หมายเลขที่ติดต่อขณะลา
|
||||
leaveDetail: String; //รายละเอียดการลา
|
||||
leaveTotal: number; //จำนวนวันที่ลา
|
||||
leaveStartDate: Date; //วัน เดือน ปีเริ่มต้นลา
|
||||
leaveEndDate: Date; //วัน เดือน ปีสิ้นสุดลา
|
||||
}
|
||||
|
||||
interface FormDelete {
|
||||
writeAt: string
|
||||
reason: string
|
||||
doc: any
|
||||
writeAt: string;
|
||||
reason: string;
|
||||
doc: any;
|
||||
}
|
||||
interface FormDeleteRef {
|
||||
writeAt: object | null
|
||||
reason: object | null
|
||||
doc: object | null
|
||||
[key: string]: any
|
||||
writeAt: object | null;
|
||||
reason: object | null;
|
||||
doc: object | null;
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
interface DataCalendar {
|
||||
dateSendLeave: Date
|
||||
fullName: string
|
||||
id: string
|
||||
leaveEndDate: Date
|
||||
leaveStartDate: Date
|
||||
leaveTypeId: string
|
||||
leaveTypeName: string
|
||||
status: string
|
||||
keycloakId: string
|
||||
dateSendLeave: Date;
|
||||
fullName: string;
|
||||
id: string;
|
||||
leaveEndDate: Date;
|
||||
leaveStartDate: Date;
|
||||
leaveTypeId: string;
|
||||
leaveTypeName: string;
|
||||
status: string;
|
||||
keycloakId: string;
|
||||
}
|
||||
|
||||
interface LeaveType {
|
||||
code: string
|
||||
createdAt: Date
|
||||
createdFullName: string
|
||||
createdUserId: string
|
||||
id: string
|
||||
lastUpdateFullName: string
|
||||
lastUpdateUserId: string
|
||||
lastUpdatedAt: Date | null
|
||||
limit: Number
|
||||
name: string
|
||||
code: string;
|
||||
createdAt: Date;
|
||||
createdFullName: string;
|
||||
createdUserId: string;
|
||||
id: string;
|
||||
lastUpdateFullName: string;
|
||||
lastUpdateUserId: string;
|
||||
lastUpdatedAt: Date | null;
|
||||
limit: Number;
|
||||
name: string;
|
||||
}
|
||||
|
||||
interface FilterList {
|
||||
id: string
|
||||
name: string | null
|
||||
color: string
|
||||
id: string;
|
||||
name: string | null;
|
||||
color: string;
|
||||
}
|
||||
|
||||
export type { ListLeave, ListLeaveTable, FremDetail, FormDelete, FormDeleteRef, DataCalendar, LeaveType, FilterList, FromCancelDetail }
|
||||
export type {
|
||||
ListLeave,
|
||||
ListLeaveTable,
|
||||
FremDetail,
|
||||
FormDelete,
|
||||
FormDeleteRef,
|
||||
DataCalendar,
|
||||
LeaveType,
|
||||
FilterList,
|
||||
FromCancelDetail,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
/**
|
||||
* Router leave
|
||||
*/
|
||||
const leave = () => import("@/modules/05_leave/views/Main.vue")
|
||||
const leave = () => import("@/modules/05_leave/views/Main.vue");
|
||||
|
||||
const addAbsence = () => import("@/modules/05_leave/views/AddPage.vue")
|
||||
const addAbsence = () => import("@/modules/05_leave/views/AddPage.vue");
|
||||
|
||||
const editAbsence = () => import("@/modules/05_leave/views/EditPage.vue")
|
||||
const editAbsence = () => import("@/modules/05_leave/views/EditPage.vue");
|
||||
|
||||
/* const Checkout = () => import("@/modules/04_checkin/views/Checkout.vue");
|
||||
*/
|
||||
|
|
@ -37,4 +37,4 @@ export default [
|
|||
Key: [7],
|
||||
},
|
||||
},
|
||||
]
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,26 +1,32 @@
|
|||
import { defineStore } from "pinia"
|
||||
import { ref } from "vue"
|
||||
import { useQuasar } from "quasar"
|
||||
import { defineStore } from "pinia";
|
||||
import { ref } from "vue";
|
||||
import { useQuasar } from "quasar";
|
||||
|
||||
import type { QTableProps } from "quasar"
|
||||
import type { OptionData, TypeLeave } from "@/modules/05_leave/interface/index/main"
|
||||
import type { ListLeave, ListLeaveTable } from "@/modules/05_leave/interface/response/leave"
|
||||
import http from "@/plugins/http"
|
||||
import config from "@/app.config"
|
||||
import type { QTableProps } from "quasar";
|
||||
import type {
|
||||
OptionData,
|
||||
TypeLeave,
|
||||
} from "@/modules/05_leave/interface/index/main";
|
||||
import type {
|
||||
ListLeave,
|
||||
ListLeaveTable,
|
||||
} from "@/modules/05_leave/interface/response/leave";
|
||||
import http from "@/plugins/http";
|
||||
import config from "@/app.config";
|
||||
|
||||
import { useCounterMixin } from "@/stores/mixin"
|
||||
const mixin = useCounterMixin()
|
||||
const { date2Thai, messageError } = mixin
|
||||
const $q = useQuasar()
|
||||
import { useCounterMixin } from "@/stores/mixin";
|
||||
const mixin = useCounterMixin();
|
||||
const { date2Thai, messageError } = mixin;
|
||||
const $q = useQuasar();
|
||||
const type = ref<string>("00000000-0000-0000-0000-000000000000");
|
||||
const status = ref<string>("ALL");
|
||||
export const useLeaveStore = defineStore("Leave", () => {
|
||||
const tabValue = ref<string>("calendar")
|
||||
const typeLeave = ref<string | undefined>("")
|
||||
const LeaveType = ref<string | null>("0")
|
||||
const LeaveStatus = ref<string | null>("0")
|
||||
const fiscalYearyear = ref<Number | null>(new Date().getFullYear())
|
||||
const rows = ref<ListLeaveTable[]>([])
|
||||
const tabValue = ref<string>("calendar");
|
||||
const typeLeave = ref<string | undefined>("");
|
||||
const LeaveType = ref<string | null>("0");
|
||||
const LeaveStatus = ref<string | null>("0");
|
||||
const fiscalYearyear = ref<Number | null>(new Date().getFullYear());
|
||||
const rows = ref<ListLeaveTable[]>([]);
|
||||
|
||||
/**
|
||||
* function เรียกข้อมูลรายการลา Table
|
||||
|
|
@ -33,40 +39,41 @@ export const useLeaveStore = defineStore("Leave", () => {
|
|||
leaveTypeId: e.leaveTypeId,
|
||||
fullName: e.fullName,
|
||||
dateSendLeave: e.dateSendLeave && date2Thai(e.dateSendLeave),
|
||||
dateLeave: date2Thai(e.leaveStartDate) + " - " + date2Thai(e.leaveEndDate),
|
||||
dateLeave:
|
||||
date2Thai(e.leaveStartDate) + " - " + date2Thai(e.leaveEndDate),
|
||||
status: e.status,
|
||||
hajjDayStatus: e.hajjDayStatus,
|
||||
statusConvert: convertStatud(e.status),
|
||||
isDelete: e.isDelete,
|
||||
}))
|
||||
rows.value = datalist
|
||||
}));
|
||||
rows.value = datalist;
|
||||
}
|
||||
|
||||
//ฟังก์ชั่นแปลง Status
|
||||
function convertStatud(val: string) {
|
||||
switch (val) {
|
||||
case "DRAFT":
|
||||
return "แบบร่าง"
|
||||
return "แบบร่าง";
|
||||
case "NEW":
|
||||
return "ใหม่"
|
||||
return "ใหม่";
|
||||
case "PENDING":
|
||||
return "กำลังดำเนินการ"
|
||||
return "กำลังดำเนินการ";
|
||||
case "APPROVE":
|
||||
return "อนุมัติ"
|
||||
return "อนุมัติ";
|
||||
case "REJECT":
|
||||
return "ไม่อนุมัติ"
|
||||
return "ไม่อนุมัติ";
|
||||
case "DELETE":
|
||||
return "ยกเลิก"
|
||||
return "ยกเลิก";
|
||||
}
|
||||
}
|
||||
|
||||
/** ประเภทการลา */
|
||||
const typeOptions = ref<OptionData[]>([])
|
||||
const typeId = ref<string | undefined>("")
|
||||
const typeOptionsMain = ref<OptionData[]>([])
|
||||
const typeOptionsAdd = ref<OptionData[]>([])
|
||||
const typeOptions = ref<OptionData[]>([]);
|
||||
const typeId = ref<string | undefined>("");
|
||||
const typeOptionsMain = ref<OptionData[]>([]);
|
||||
const typeOptionsAdd = ref<OptionData[]>([]);
|
||||
/** รายการข้อมูลประเภทใบลา */
|
||||
const options = ref<OptionData[]>([])
|
||||
const options = ref<OptionData[]>([]);
|
||||
/**
|
||||
* function เรียกข้อมูลประเภทการลา
|
||||
* @param data ประเภทการลา
|
||||
|
|
@ -78,20 +85,20 @@ export const useLeaveStore = defineStore("Leave", () => {
|
|||
name: "ทั้งหมด",
|
||||
code: "LV-000",
|
||||
},
|
||||
]
|
||||
];
|
||||
|
||||
const optionType = data.map((e: TypeLeave) => ({
|
||||
id: e.id,
|
||||
name: e.name,
|
||||
code: e.code,
|
||||
}))
|
||||
}));
|
||||
|
||||
typeOptionsMain.value.push(...optionType)
|
||||
typeOptions.value = typeOptionsMain.value
|
||||
typeOptionsMain.value.push(...optionType);
|
||||
typeOptions.value = typeOptionsMain.value;
|
||||
|
||||
typeOptionsAdd.value = []
|
||||
typeOptionsAdd.value.push(...optionType)
|
||||
options.value = typeOptionsAdd.value
|
||||
typeOptionsAdd.value = [];
|
||||
typeOptionsAdd.value.push(...optionType);
|
||||
options.value = typeOptionsAdd.value;
|
||||
}
|
||||
|
||||
/** สถานะของการลา */
|
||||
|
|
@ -103,8 +110,8 @@ export const useLeaveStore = defineStore("Leave", () => {
|
|||
{ id: "APPROVE", name: "อนุมัติ " },
|
||||
{ id: "REJECT", name: "ไม่อนุมัติ" },
|
||||
{ id: "DELETE", name: "ยกเลิก" },
|
||||
])
|
||||
const statusOptions = ref<any[]>(statusOptionsMain.value)
|
||||
]);
|
||||
const statusOptions = ref<any[]>(statusOptionsMain.value);
|
||||
|
||||
/**
|
||||
* function ต้นหาข้อมูลของ Option
|
||||
|
|
@ -115,19 +122,23 @@ export const useLeaveStore = defineStore("Leave", () => {
|
|||
function filterOption(val: any, update: Function, refData: string) {
|
||||
switch (refData) {
|
||||
case "LeaveTypeOption":
|
||||
type.value = ''
|
||||
type.value = "";
|
||||
update(() => {
|
||||
typeOptions.value = typeOptionsMain.value.filter((v: any) => v.name.indexOf(val) > -1)
|
||||
})
|
||||
break
|
||||
typeOptions.value = typeOptionsMain.value.filter(
|
||||
(v: any) => v.name.indexOf(val) > -1
|
||||
);
|
||||
});
|
||||
break;
|
||||
case "LeaveStatusOption":
|
||||
status.value = ''
|
||||
status.value = "";
|
||||
update(() => {
|
||||
statusOptions.value = statusOptionsMain.value.filter((v: any) => v.name.indexOf(val) > -1)
|
||||
})
|
||||
break
|
||||
statusOptions.value = statusOptionsMain.value.filter(
|
||||
(v: any) => v.name.indexOf(val) > -1
|
||||
);
|
||||
});
|
||||
break;
|
||||
default:
|
||||
break
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -135,16 +146,22 @@ export const useLeaveStore = defineStore("Leave", () => {
|
|||
const optionsSpecific = ref<OptionData[]>([
|
||||
{ id: "s1", name: "ลาไปศึกษาต่อ", code: "s1" },
|
||||
{ id: "s2", name: "ลาฝึกอบรม/ปฎิบัติการวิจัย/ดูงาน", code: "s2" },
|
||||
])
|
||||
]);
|
||||
|
||||
/** รายการประเภทการลาของ ลาอุปสมบทหรือลาประกอบพิธีฮัจญ์*/
|
||||
const optionsOrdination = ref<OptionData[]>([
|
||||
{ id: "b1", name: "ลาอุปสมบท", code: "b1" },
|
||||
{ id: "b2", name: "ลาประกอบพิธีฮัจญ์", code: "b2" },
|
||||
])
|
||||
]);
|
||||
|
||||
/** data table filter & column ของรายการลา */
|
||||
const visibleColumns = ref<string[]>(["no", "leaveTypeName", "dateSendLeave", "status", "dateLeave"])
|
||||
const visibleColumns = ref<string[]>([
|
||||
"no",
|
||||
"leaveTypeName",
|
||||
"dateSendLeave",
|
||||
"status",
|
||||
"dateLeave",
|
||||
]);
|
||||
|
||||
const columns = ref<QTableProps["columns"]>([
|
||||
{
|
||||
|
|
@ -193,7 +210,7 @@ export const useLeaveStore = defineStore("Leave", () => {
|
|||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px; width:10%;",
|
||||
},
|
||||
])
|
||||
]);
|
||||
|
||||
/**
|
||||
*ฟังก์ชั่นแปลงประเภทแบบฟอร์มลา
|
||||
|
|
@ -203,13 +220,13 @@ export const useLeaveStore = defineStore("Leave", () => {
|
|||
function typeConvert(item: string, subitem: any) {
|
||||
// console.log('first',item)
|
||||
// if (item !== "LV-006" && item !== "LV-008") {
|
||||
typeLeave.value = convertSubtitle(item)
|
||||
typeLeave.value = convertSubtitle(item);
|
||||
// } else if (item === "LV-006") {
|
||||
// typeLeave.value = convertSubtitleInfo(subitem);
|
||||
// } else if (item === "LV-008") {
|
||||
// typeLeave.value = convertSubtitleInfo2(subitem);
|
||||
// }
|
||||
typeId.value = convertId(item)
|
||||
typeId.value = convertId(item);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -218,7 +235,7 @@ export const useLeaveStore = defineStore("Leave", () => {
|
|||
* @returns ส่งค่าที่แปลงแล้ว
|
||||
*/
|
||||
function convertSubtitle(val: string) {
|
||||
return options.value.find(x => x.code == val)?.name
|
||||
return options.value.find((x) => x.code == val)?.name;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -227,7 +244,7 @@ export const useLeaveStore = defineStore("Leave", () => {
|
|||
* @returns ส่งค่าที่แปลงแล้ว
|
||||
*/
|
||||
function convertSubtitleInfo(val: string) {
|
||||
return optionsOrdination.value.find(x => x.id == val)?.name
|
||||
return optionsOrdination.value.find((x) => x.id == val)?.name;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -236,7 +253,7 @@ export const useLeaveStore = defineStore("Leave", () => {
|
|||
* @returns ส่งค่าที่แปลงแล้ว
|
||||
*/
|
||||
function convertSubtitleInfo2(val: string) {
|
||||
return optionsSpecific.value.find(x => x.id == val)?.name
|
||||
return optionsSpecific.value.find((x) => x.id == val)?.name;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -245,107 +262,113 @@ export const useLeaveStore = defineStore("Leave", () => {
|
|||
* @returns ส่งค่าที่แปลงแล้ว
|
||||
*/
|
||||
function convertId(val: string) {
|
||||
return options.value.find(x => x.code == val)?.id
|
||||
return options.value.find((x) => x.code == val)?.id;
|
||||
}
|
||||
|
||||
/**
|
||||
*ตัวแปร profile ที่จะส่งออก
|
||||
*/
|
||||
const dateSendLeave = ref<Date>() //วันที่ยื่นใบลา
|
||||
const leaveTypeName = ref<string>("") //Name ประเภทการลา
|
||||
const dear = ref<string>("") //เรียน
|
||||
const fullName = ref<string>("") //คำนำหน้า ชื่อ นามสกุล ผู้ยื่นขอ
|
||||
const positionName = ref<string>("") //ตำแหน่งผู้ยื่นขอ
|
||||
const positionLevelName = ref<string>("") //ระดับผู้ยื่นขอ
|
||||
const organizationName = ref<string>("") //สังกัดผู้ยื่นขอ
|
||||
const leaveLimit = ref<number>(0) //โควต้าลา(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
|
||||
const leaveTotal = ref<number>(0) //ลาไปแล้ว(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
|
||||
const leaveRemain = ref<number>(0) //คงเหลือโควต้า(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
|
||||
const restDayTotalOld = ref<number>(0) //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา
|
||||
const birthDate = ref<Date>() //วันเกิด
|
||||
const dateAppoint = ref<Date>() //วันที่เข้ารับราชการ
|
||||
const salary = ref<number>(0) //เงินเดือนปัจจุบัน
|
||||
const salaryText = ref<string>("") //เงินเดือนปัจจุบัน(ภาษาไทย)
|
||||
const leaveLast = ref<any>()
|
||||
const restDayCurrentTotal = ref<number>(0)
|
||||
const dateSendLeave = ref<Date>(); //วันที่ยื่นใบลา
|
||||
const leaveTypeName = ref<string>(""); //Name ประเภทการลา
|
||||
const dear = ref<string>(""); //เรียน
|
||||
const fullName = ref<string>(""); //คำนำหน้า ชื่อ นามสกุล ผู้ยื่นขอ
|
||||
const positionName = ref<string>(""); //ตำแหน่งผู้ยื่นขอ
|
||||
const positionLevelName = ref<string>(""); //ระดับผู้ยื่นขอ
|
||||
const organizationName = ref<string>(""); //สังกัดผู้ยื่นขอ
|
||||
const leaveLimit = ref<number>(0); //โควต้าลา(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
|
||||
const leaveTotal = ref<number>(0); //ลาไปแล้ว(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
|
||||
const leaveRemain = ref<number>(0); //คงเหลือโควต้า(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
|
||||
const restDayTotalOld = ref<number>(0); //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา
|
||||
const birthDate = ref<Date>(); //วันเกิด
|
||||
const dateAppoint = ref<Date>(); //วันที่เข้ารับราชการ
|
||||
const salary = ref<number>(0); //เงินเดือนปัจจุบัน
|
||||
const salaryText = ref<string>(""); //เงินเดือนปัจจุบัน(ภาษาไทย)
|
||||
const leaveLast = ref<any>();
|
||||
const restDayCurrentTotal = ref<number>(0);
|
||||
|
||||
//ดึงข้อมูล profile จาก API
|
||||
async function fetchProfile() {
|
||||
await http
|
||||
.post(config.API.leaveProfile(), { type: typeId.value })
|
||||
.then((res: any) => {
|
||||
const data = res.data.result
|
||||
dateSendLeave.value = data.dateSendLeave
|
||||
leaveTypeName.value = data.leaveTypeName
|
||||
dear.value = data.dear
|
||||
fullName.value = data.fullName
|
||||
positionName.value = data.positionName
|
||||
positionLevelName.value = data.positionLevelName
|
||||
organizationName.value = data.organizationName
|
||||
leaveLimit.value = data.leaveLimit
|
||||
leaveTotal.value = data.leaveTotal
|
||||
leaveRemain.value = data.leaveRemain
|
||||
restDayTotalOld.value = data.restDayTotalOld
|
||||
birthDate.value = data.birthDate
|
||||
dateAppoint.value = data.dateAppoint
|
||||
salary.value = data.salary ? data.salary.toLocaleString("th-TH") : ""
|
||||
salaryText.value = data.salaryText
|
||||
leaveLast.value = data.leaveLast != "0001-01-01T00:00:00" ? date2Thai(data.leaveLast) : "-"
|
||||
restDayCurrentTotal.value = Number(data.leaveLimit) - Number(data.restDayTotalOld)
|
||||
const data = res.data.result;
|
||||
dateSendLeave.value = data.dateSendLeave;
|
||||
leaveTypeName.value = data.leaveTypeName;
|
||||
dear.value = data.dear;
|
||||
fullName.value = data.fullName;
|
||||
positionName.value = data.positionName;
|
||||
positionLevelName.value = data.positionLevelName;
|
||||
organizationName.value = data.organizationName;
|
||||
leaveLimit.value = data.leaveLimit;
|
||||
leaveTotal.value = data.leaveTotal;
|
||||
leaveRemain.value = data.leaveRemain;
|
||||
restDayTotalOld.value = data.restDayTotalOld;
|
||||
birthDate.value = data.birthDate;
|
||||
dateAppoint.value = data.dateAppoint;
|
||||
salary.value = data.salary ? data.salary.toLocaleString("th-TH") : "";
|
||||
salaryText.value = data.salaryText;
|
||||
leaveLast.value =
|
||||
data.leaveLast != "0001-01-01T00:00:00"
|
||||
? date2Thai(data.leaveLast)
|
||||
: "-";
|
||||
restDayCurrentTotal.value =
|
||||
Number(data.leaveLimit) - Number(data.restDayTotalOld);
|
||||
})
|
||||
.catch((e: any) => {
|
||||
messageError($q, e)
|
||||
})
|
||||
messageError($q, e);
|
||||
});
|
||||
}
|
||||
|
||||
async function fetchProfileOld(data: any) {
|
||||
await http
|
||||
.post(config.API.leaveProfile(), { type: typeId.value })
|
||||
.then((res: any) => {
|
||||
const data = res.data.result
|
||||
leaveLimit.value = data.leaveLimit
|
||||
leaveTotal.value = data.leaveTotal
|
||||
leaveRemain.value = data.leaveRemain
|
||||
restDayTotalOld.value = data.restDayTotalOld //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา
|
||||
birthDate.value = data.birthDate // วันเกิด
|
||||
dateAppoint.value = data.dateAppoint // วันที่รับราชการ
|
||||
salary.value = data.salary ? data.salary.toLocaleString("th-TH") : ""
|
||||
salaryText.value = data.salaryText
|
||||
restDayCurrentTotal.value = Number(data.leaveLimit) - Number(data.restDayTotalOld)
|
||||
const data = res.data.result;
|
||||
leaveLimit.value = data.leaveLimit;
|
||||
leaveTotal.value = data.leaveTotal;
|
||||
leaveRemain.value = data.leaveRemain;
|
||||
restDayTotalOld.value = data.restDayTotalOld; //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา
|
||||
birthDate.value = data.birthDate; // วันเกิด
|
||||
dateAppoint.value = data.dateAppoint; // วันที่รับราชการ
|
||||
salary.value = data.salary ? data.salary.toLocaleString("th-TH") : "";
|
||||
salaryText.value = data.salaryText;
|
||||
restDayCurrentTotal.value =
|
||||
Number(data.leaveLimit) - Number(data.restDayTotalOld);
|
||||
})
|
||||
.catch((e: any) => {
|
||||
messageError($q, e)
|
||||
})
|
||||
messageError($q, e);
|
||||
});
|
||||
|
||||
dateSendLeave.value = data.dateSendLeave
|
||||
typeLeave.value = data.leaveTypeName
|
||||
dear.value = data.dear
|
||||
fullName.value = data.fullName
|
||||
positionName.value = data.positionName
|
||||
positionLevelName.value = data.positionLevelName
|
||||
organizationName.value = data.organizationName
|
||||
leaveLast.value = data.leaveLast != "0001-01-01T00:00:00" ? date2Thai(data.leaveLast) : "-"
|
||||
restDayCurrentTotal.value = data.restDayCurrentTotal
|
||||
dateSendLeave.value = data.dateSendLeave;
|
||||
typeLeave.value = data.leaveTypeName;
|
||||
dear.value = data.dear;
|
||||
fullName.value = data.fullName;
|
||||
positionName.value = data.positionName;
|
||||
positionLevelName.value = data.positionLevelName;
|
||||
organizationName.value = data.organizationName;
|
||||
leaveLast.value =
|
||||
data.leaveLast != "0001-01-01T00:00:00" ? date2Thai(data.leaveLast) : "-";
|
||||
restDayCurrentTotal.value = data.restDayCurrentTotal;
|
||||
}
|
||||
|
||||
function resetForm2() {
|
||||
dateSendLeave.value = undefined
|
||||
leaveTypeName.value = ""
|
||||
dear.value = ""
|
||||
fullName.value = ""
|
||||
positionName.value = ""
|
||||
positionLevelName.value = ""
|
||||
organizationName.value = ""
|
||||
leaveLimit.value = 0
|
||||
leaveTotal.value = 0
|
||||
leaveRemain.value = 0
|
||||
restDayTotalOld.value = 0
|
||||
birthDate.value = undefined
|
||||
dateAppoint.value = undefined
|
||||
salary.value = 0
|
||||
salaryText.value = ""
|
||||
leaveLast.value = undefined
|
||||
restDayCurrentTotal.value = 0
|
||||
dateSendLeave.value = undefined;
|
||||
leaveTypeName.value = "";
|
||||
dear.value = "";
|
||||
fullName.value = "";
|
||||
positionName.value = "";
|
||||
positionLevelName.value = "";
|
||||
organizationName.value = "";
|
||||
leaveLimit.value = 0;
|
||||
leaveTotal.value = 0;
|
||||
leaveRemain.value = 0;
|
||||
restDayTotalOld.value = 0;
|
||||
birthDate.value = undefined;
|
||||
dateAppoint.value = undefined;
|
||||
salary.value = 0;
|
||||
salaryText.value = "";
|
||||
leaveLast.value = undefined;
|
||||
restDayCurrentTotal.value = 0;
|
||||
}
|
||||
|
||||
return {
|
||||
|
|
@ -396,6 +419,6 @@ export const useLeaveStore = defineStore("Leave", () => {
|
|||
type,
|
||||
typeOptionsMain,
|
||||
status,
|
||||
statusOptionsMain
|
||||
}
|
||||
})
|
||||
statusOptionsMain,
|
||||
};
|
||||
});
|
||||
|
|
|
|||
|
|
@ -158,7 +158,8 @@ onMounted(async () => {
|
|||
ไม่มีข้อมูล
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</template></q-select>
|
||||
</template></q-select
|
||||
>
|
||||
</div>
|
||||
|
||||
<div class="row q-mt-sm">
|
||||
|
|
|
|||
|
|
@ -152,7 +152,9 @@ async function fetchDataDetail(id: string) {
|
|||
formData.leaveSalary = data.leaveSalary ?? "-";
|
||||
formData.leaveSalaryText = data.leaveSalaryText ?? "-";
|
||||
formData.wifeDayName = data.wifeDayName ?? "-";
|
||||
formData.wifeDayDateBorn = data.wifeDayDateBorn ? data.wifeDayDateBorn:null;
|
||||
formData.wifeDayDateBorn = data.wifeDayDateBorn
|
||||
? data.wifeDayDateBorn
|
||||
: null;
|
||||
formData.restDayOldTotal = data.restDayOldTotal ?? "-";
|
||||
formData.restDayCurrentTotal = data.restDayCurrentTotal ?? "-";
|
||||
formData.ordainDayStatus = data.ordainDayStatus;
|
||||
|
|
|
|||
|
|
@ -262,7 +262,8 @@ watch(props, () => {
|
|||
</div>
|
||||
ผู้ประเมินทำการอัปโหลดเอกสารเล่ม 2
|
||||
โดยมีระยะเวลาการส่งผลงานหลังจากประกาศบนเว็บไซต์แล้ว 6 เดือน<br />
|
||||
กรณีผู้จะเกษียณอายุราชการให้ส่งผลงาน ก่อนวันที่จะเกษียณอายุราชการไม่น้อยกว่า 90 วัน
|
||||
กรณีผู้จะเกษียณอายุราชการให้ส่งผลงาน
|
||||
ก่อนวันที่จะเกษียณอายุราชการไม่น้อยกว่า 90 วัน
|
||||
</q-card-actions>
|
||||
</q-card>
|
||||
</q-carousel-slide>
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import { useCounterMixin } from "@/stores/mixin";
|
|||
const mixin = useCounterMixin();
|
||||
const $q = useQuasar();
|
||||
const route = useRoute();
|
||||
const router = useRouter()
|
||||
const router = useRouter();
|
||||
|
||||
const evaluateId = ref<string>(route.params.id.toString());
|
||||
|
||||
|
|
@ -31,8 +31,10 @@ function copyLink() {
|
|||
<template>
|
||||
<div class="row q-pa-md">
|
||||
<div class="col-12 row items-center justify-center">
|
||||
<div class="row"><strong>Public URL : </strong>
|
||||
<a :href="`${link}/${evaluateId}`" class="q-pl-sm"> {{link}}/{{ evaluateId }}
|
||||
<div class="row">
|
||||
<strong>Public URL : </strong>
|
||||
<a :href="`${link}/${evaluateId}`" class="q-pl-sm">
|
||||
{{ link }}/{{ evaluateId }}
|
||||
</a>
|
||||
</div>
|
||||
<q-space />
|
||||
|
|
@ -43,7 +45,8 @@ function copyLink() {
|
|||
color="primary"
|
||||
@click="copyLink"
|
||||
>
|
||||
<q-tooltip> คัดลอกลิงก์ </q-tooltip></q-btn>
|
||||
<q-tooltip> คัดลอกลิงก์ </q-tooltip></q-btn
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -163,7 +163,6 @@ function backPage() {
|
|||
</div>
|
||||
</template>
|
||||
</q-splitter>
|
||||
|
||||
</template>
|
||||
|
||||
<style scoped></style>
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ const props = defineProps({
|
|||
const modalPerview = ref<boolean>(false);
|
||||
|
||||
const store = useEvaluateStore();
|
||||
const tabPanels = store.tabPanels
|
||||
const tabPanels = store.tabPanels;
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
|
@ -46,7 +46,13 @@ const tabPanels = store.tabPanels
|
|||
</div>
|
||||
<div class="col-12"><q-separator /></div>
|
||||
|
||||
<q-tab-panels v-model="store.tabPanels" animated swipeable vertical class="col-12 row">
|
||||
<q-tab-panels
|
||||
v-model="store.tabPanels"
|
||||
animated
|
||||
swipeable
|
||||
vertical
|
||||
class="col-12 row"
|
||||
>
|
||||
<q-tab-panel name="1">
|
||||
<ViewPDF :pdfSrc="props.pdfSrc" class="col-12" />
|
||||
</q-tab-panel>
|
||||
|
|
|
|||
|
|
@ -192,7 +192,7 @@ export const useEvaluateDetailStore = defineStore("evaluateDetailStore", () => {
|
|||
sortable: true,
|
||||
field: "yearly",
|
||||
format(val, row) {
|
||||
return row.yearly + 543
|
||||
return row.yearly + 543;
|
||||
},
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
interface DataOption {
|
||||
id:string
|
||||
name:string
|
||||
id: string;
|
||||
name: string;
|
||||
}
|
||||
|
||||
export type {
|
||||
DataOption
|
||||
}
|
||||
export type { DataOption };
|
||||
|
|
|
|||
|
|
@ -8,7 +8,4 @@ interface MyObjectAppealRef {
|
|||
[key: string]: any;
|
||||
}
|
||||
|
||||
|
||||
export type {
|
||||
MyObjectAppealRef
|
||||
}
|
||||
export type { MyObjectAppealRef };
|
||||
|
|
|
|||
|
|
@ -1,68 +1,71 @@
|
|||
interface FormType {
|
||||
status: string
|
||||
type: string
|
||||
year: number
|
||||
status: string;
|
||||
type: string;
|
||||
year: number;
|
||||
}
|
||||
|
||||
interface RowList {
|
||||
id: string
|
||||
title: string
|
||||
description: string
|
||||
status: string
|
||||
type: string
|
||||
year: number
|
||||
caseType: string
|
||||
caseNumber: string
|
||||
fullname: string
|
||||
citizenId: string
|
||||
profileId: string
|
||||
lastUpdatedAt: string | null
|
||||
id: string;
|
||||
title: string;
|
||||
description: string;
|
||||
status: string;
|
||||
type: string;
|
||||
year: number;
|
||||
caseType: string;
|
||||
caseNumber: string;
|
||||
fullname: string;
|
||||
citizenId: string;
|
||||
profileId: string;
|
||||
lastUpdatedAt: string | null;
|
||||
}
|
||||
|
||||
interface MainList {
|
||||
id: string
|
||||
title: string
|
||||
description: string
|
||||
status: string
|
||||
type: string
|
||||
year: number
|
||||
caseType: string
|
||||
caseNumber: string
|
||||
fullname: string
|
||||
citizenId: string
|
||||
profileId: string
|
||||
lastUpdatedAt: Date
|
||||
id: string;
|
||||
title: string;
|
||||
description: string;
|
||||
status: string;
|
||||
type: string;
|
||||
year: number;
|
||||
caseType: string;
|
||||
caseNumber: string;
|
||||
fullname: string;
|
||||
citizenId: string;
|
||||
profileId: string;
|
||||
lastUpdatedAt: Date;
|
||||
}
|
||||
|
||||
interface EditDataList {
|
||||
id: string
|
||||
title: string
|
||||
description: string
|
||||
status: string
|
||||
type: string
|
||||
year: number
|
||||
caseType: string
|
||||
caseNumber: string
|
||||
fullname: string
|
||||
citizenId: string
|
||||
profileId: string
|
||||
lastUpdatedAt: string
|
||||
historyStatus: object | null
|
||||
disciplineComplaint_Appeal_Docs: object | null
|
||||
id: string;
|
||||
title: string;
|
||||
description: string;
|
||||
status: string;
|
||||
type: string;
|
||||
year: number;
|
||||
caseType: string;
|
||||
caseNumber: string;
|
||||
fullname: string;
|
||||
citizenId: string;
|
||||
profileId: string;
|
||||
lastUpdatedAt: string;
|
||||
historyStatus: object | null;
|
||||
disciplineComplaint_Appeal_Docs: object | null;
|
||||
}
|
||||
|
||||
interface HistoryStatusType {
|
||||
status: string
|
||||
createdAt: string
|
||||
status: string;
|
||||
createdAt: string;
|
||||
}
|
||||
interface FileObType {
|
||||
id: string
|
||||
pathName: string
|
||||
fileName: string
|
||||
id: string;
|
||||
pathName: string;
|
||||
fileName: string;
|
||||
}
|
||||
|
||||
export type {
|
||||
FormType, RowList, MainList, EditDataList,
|
||||
FormType,
|
||||
RowList,
|
||||
MainList,
|
||||
EditDataList,
|
||||
HistoryStatusType,
|
||||
FileObType
|
||||
}
|
||||
FileObType,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,15 +1,16 @@
|
|||
import { defineStore } from "pinia";
|
||||
import { ref } from 'vue'
|
||||
import { ref } from "vue";
|
||||
|
||||
import { useCounterMixin } from "@/stores/mixin";
|
||||
import type { DataOption } from "@/modules/07_appealComplain/interface/index/main";
|
||||
import type { QTableProps } from "quasar";
|
||||
import type { RowList, MainList } from '@/modules/07_appealComplain/interface/response/mainType'
|
||||
import type {
|
||||
RowList,
|
||||
MainList,
|
||||
} from "@/modules/07_appealComplain/interface/response/mainType";
|
||||
export const useAppealComplainStore = defineStore("appealComplainStore", () => {
|
||||
|
||||
|
||||
const mixin = useCounterMixin()
|
||||
const { date2Thai } = mixin
|
||||
const mixin = useCounterMixin();
|
||||
const { date2Thai } = mixin;
|
||||
|
||||
const rows = ref<RowList[]>([]);
|
||||
const visibleColumns = ref<string[]>([]);
|
||||
|
|
@ -93,7 +94,7 @@ export const useAppealComplainStore = defineStore("appealComplainStore", () => {
|
|||
default:
|
||||
return "-";
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
visibleColumns,
|
||||
|
|
@ -102,7 +103,6 @@ export const useAppealComplainStore = defineStore("appealComplainStore", () => {
|
|||
rows,
|
||||
typeOptions,
|
||||
statusOptions,
|
||||
statusTothai
|
||||
|
||||
statusTothai,
|
||||
};
|
||||
});
|
||||
|
|
|
|||
|
|
@ -424,15 +424,14 @@ function onSubmit(data: any) {
|
|||
</div>
|
||||
</div>
|
||||
<q-separator v-if="!isReadOnly" />
|
||||
<q-card-actions align="right" class="bg-white text-teal" v-if="!isReadOnly">
|
||||
<q-btn
|
||||
id="onSubmit"
|
||||
type="submit"
|
||||
label="บันทึก"
|
||||
color="secondary"
|
||||
<q-card-actions
|
||||
align="right"
|
||||
class="bg-white text-teal"
|
||||
v-if="!isReadOnly"
|
||||
>
|
||||
<q-btn id="onSubmit" type="submit" label="บันทึก" color="secondary"
|
||||
><q-tooltip>บันทึก</q-tooltip></q-btn
|
||||
>
|
||||
|
||||
</q-card-actions>
|
||||
</q-card>
|
||||
</form>
|
||||
|
|
|
|||
|
|
@ -995,7 +995,11 @@ const title = computed(() => {
|
|||
</q-card-section>
|
||||
<q-separator v-if="!checkDetail" />
|
||||
|
||||
<q-card-actions v-if="!checkDetail" align="right" class="bg-white text-teal">
|
||||
<q-card-actions
|
||||
v-if="!checkDetail"
|
||||
align="right"
|
||||
class="bg-white text-teal"
|
||||
>
|
||||
<q-btn label="บันทึก" color="secondary" type="submit"
|
||||
><q-tooltip>บันทึกข้อมูล</q-tooltip></q-btn
|
||||
>
|
||||
|
|
|
|||
|
|
@ -574,9 +574,15 @@ watch(
|
|||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
<q-separator v-if="competencyType !== 'HEAD' && competencyType !== 'GROUP'"/>
|
||||
<q-separator
|
||||
v-if="competencyType !== 'HEAD' && competencyType !== 'GROUP'"
|
||||
/>
|
||||
|
||||
<q-card-actions v-if="competencyType !== 'HEAD' && competencyType !== 'GROUP'" align="right" class="bg-white text-teal">
|
||||
<q-card-actions
|
||||
v-if="competencyType !== 'HEAD' && competencyType !== 'GROUP'"
|
||||
align="right"
|
||||
class="bg-white text-teal"
|
||||
>
|
||||
<q-btn label="บันทึก" color="secondary" type="submit"
|
||||
><q-tooltip>บันทึกข้อมูล</q-tooltip></q-btn
|
||||
>
|
||||
|
|
|
|||
|
|
@ -53,7 +53,10 @@ watch(
|
|||
<template>
|
||||
<q-dialog v-model="modal" persistent>
|
||||
<q-card class="col-12" style="width: 85%">
|
||||
<DialogHeader :tittle="`พฤติกรรมที่คาดหวัง/พฤติกรรมย่อย`" :close="closeDialog" />
|
||||
<DialogHeader
|
||||
:tittle="`พฤติกรรมที่คาดหวัง/พฤติกรรมย่อย`"
|
||||
:close="closeDialog"
|
||||
/>
|
||||
<q-separator />
|
||||
|
||||
<q-card-section class="q-pa-sm scroll" style="max-height: 80vh">
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ const dataRows = ref<any[]>([]);
|
|||
|
||||
const visibleColumns = ref<String[]>(["description"]);
|
||||
const columns = ref<QTableProps["columns"]>([
|
||||
|
||||
{
|
||||
name: "description",
|
||||
align: "left",
|
||||
|
|
@ -30,13 +29,15 @@ function closeDialog() {
|
|||
rows.value = [];
|
||||
dataRows.value = [];
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<q-dialog v-model="modal" persistent>
|
||||
<q-card class="col-12" style="width: 85%">
|
||||
<DialogHeader :tittle="`ข้อมูลพฤติกรรมที่คาดหวัง/พฤติกรรมย่อย`" :close="closeDialog" />
|
||||
<DialogHeader
|
||||
:tittle="`ข้อมูลพฤติกรรมที่คาดหวัง/พฤติกรรมย่อย`"
|
||||
:close="closeDialog"
|
||||
/>
|
||||
<q-separator />
|
||||
|
||||
<q-card-section class="q-pa-sm scroll" style="max-height: 80vh">
|
||||
|
|
|
|||
|
|
@ -16,7 +16,9 @@ const $q = useQuasar();
|
|||
const dataList = ref<ListCriteria[]>([]);
|
||||
const { showLoader, hideLoader, messageError } = useCounterMixin();
|
||||
const modal = defineModel<boolean>("modal", { required: true });
|
||||
const dataListCriteria = defineModel<ListCriteria[]>("dataListCriteria", { required: true });
|
||||
const dataListCriteria = defineModel<ListCriteria[]>("dataListCriteria", {
|
||||
required: true,
|
||||
});
|
||||
|
||||
function close() {
|
||||
modal.value = false;
|
||||
|
|
@ -40,7 +42,9 @@ function close() {
|
|||
<div v-for="(item, index) in dataListCriteria" :key="item.id">
|
||||
<div :class="`row q-pa-sm ${index % 2 !== 0 && 'bg-grey-2'}`">
|
||||
<div class="col-8"><span v-html="item.description"></span></div>
|
||||
<div class="col-4 text-center self-center text-body1 text-weight-bold">
|
||||
<div
|
||||
class="col-4 text-center self-center text-body1 text-weight-bold"
|
||||
>
|
||||
<span>{{ item.level }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -111,8 +111,8 @@ const columns = ref<QTableProps["columns"]>([
|
|||
|
||||
const visibleColumns = ref<string[]>(
|
||||
store.tabOpen === 3 && store.tabMain === "3"
|
||||
? ['no',"name", "develop", "target", "achievement", "summary"]
|
||||
: ['no',"name", "develop", "target"]
|
||||
? ["no", "name", "develop", "target", "achievement", "summary"]
|
||||
: ["no", "name", "develop", "target"]
|
||||
);
|
||||
|
||||
function onAdd() {
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ interface FormCommentByRole {
|
|||
topic: string;
|
||||
reason: string;
|
||||
createdFullName: string;
|
||||
score:string
|
||||
score: string;
|
||||
reasonEvaluator: string;
|
||||
reasonCommander: string;
|
||||
reasonCommanderHigh: string;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,8 @@
|
|||
|
||||
const KPIPage = () => import("@/modules/08_KPI/views/main.vue");
|
||||
const FormPage = () => import("@/modules/08_KPI/views/form.vue");
|
||||
const KPIMainEvaluator = () => import("@/modules/08_KPI/views/mainEvaluator.vue");
|
||||
const KPIMainEvaluator = () =>
|
||||
import("@/modules/08_KPI/views/mainEvaluator.vue");
|
||||
|
||||
export default [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
interface DataOptions {
|
||||
id:string
|
||||
name:string
|
||||
id: string;
|
||||
name: string;
|
||||
}
|
||||
|
||||
export type {
|
||||
DataOptions
|
||||
}
|
||||
export type { DataOptions };
|
||||
|
|
|
|||
|
|
@ -129,4 +129,3 @@ interface FormsSholarship {
|
|||
}
|
||||
|
||||
export type { FormsSholarship, DataSholarship };
|
||||
|
||||
|
|
@ -3,7 +3,8 @@
|
|||
*/
|
||||
|
||||
const scholarshipPage = () => import("@/modules/09_scholarship/views/main.vue");
|
||||
const scholarshipDetail = () => import('@/modules/09_scholarship/views/detail.vue')
|
||||
const scholarshipDetail = () =>
|
||||
import("@/modules/09_scholarship/views/detail.vue");
|
||||
export default [
|
||||
{
|
||||
path: "/scholarship",
|
||||
|
|
|
|||
|
|
@ -13,7 +13,8 @@ const registryOther = () => import("@/modules/10_registry/tabs/05_other.vue");
|
|||
/**
|
||||
* คำร้องแก้ไข
|
||||
*/
|
||||
const requestEditMain = () => import("@/modules/10_registry/views/requestEditMain.vue");
|
||||
const requestEditMain = () =>
|
||||
import("@/modules/10_registry/views/requestEditMain.vue");
|
||||
|
||||
export default [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,14 +1,15 @@
|
|||
import { defineStore } from "pinia";
|
||||
import type { DataOptionInsignia, ResponseObject } from '@/modules/10_registry/interface/index/Achievement'
|
||||
import type {
|
||||
DataOptionInsignia,
|
||||
ResponseObject,
|
||||
} from "@/modules/10_registry/interface/index/Achievement";
|
||||
import { ref } from "vue";
|
||||
|
||||
|
||||
export const useRegistryInFormationStore = defineStore(
|
||||
"registryInFormationStore",
|
||||
() => {
|
||||
const typeProfile = ref<string>("OFFICER");
|
||||
const profileId = ref<string>('')
|
||||
|
||||
const profileId = ref<string>("");
|
||||
|
||||
function typeChangeName(val: string) {
|
||||
switch (val) {
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ import Educations from "@/modules/10_registry/01_Information/05_Educations.vue";
|
|||
import Ability from "@/modules/10_registry/01_Information/06_Ability.vue";
|
||||
|
||||
const router = useRouter();
|
||||
|
||||
</script>
|
||||
<template>
|
||||
<div v-if="!$q.screen.gt.xs" class="col-xs-12 col-sm-12 col-md-11">
|
||||
|
|
|
|||
|
|
@ -7,9 +7,7 @@ import Discipline from "@/modules/10_registry/02_Government/02_Discipline.vue";
|
|||
import Leave from "@/modules/10_registry/02_Government/03_Leave.vue";
|
||||
import Duty from "@/modules/10_registry/02_Government/04_Duty.vue";
|
||||
|
||||
|
||||
const router = useRouter();
|
||||
|
||||
</script>
|
||||
<template>
|
||||
<div v-if="!$q.screen.gt.xs" class="col-xs-12 col-sm-12 col-md-11">
|
||||
|
|
|
|||
|
|
@ -5,9 +5,7 @@ import { useRouter } from "vue-router";
|
|||
import Salary from "@/modules/10_registry/03_Salary/01_Salary.vue";
|
||||
import Nopaid from "@/modules/10_registry/03_Salary/02_Nopaid.vue";
|
||||
|
||||
|
||||
const router = useRouter();
|
||||
|
||||
</script>
|
||||
<template>
|
||||
<div v-if="!$q.screen.gt.xs" class="col-xs-12 col-sm-12 col-md-11">
|
||||
|
|
@ -29,7 +27,6 @@ const router = useRouter();
|
|||
<div :class="`row q-my-sm ${$q.screen.gt.xs ? '' : 'mobileClass'}`">
|
||||
<Salary />
|
||||
<Nopaid />
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<style scoped>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import { useRouter } from "vue-router";
|
|||
import Other from "@/modules/10_registry/05_Other/01_Other.vue";
|
||||
import File from "@/modules/10_registry/05_Other/02_File.vue";
|
||||
|
||||
|
||||
const router = useRouter();
|
||||
</script>
|
||||
<template>
|
||||
|
|
|
|||
|
|
@ -24,7 +24,15 @@ const knowledge = ref<any[]>([]);
|
|||
const commander = ref<any>("");
|
||||
const chairman = ref<any>("");
|
||||
const mixin = useCounterMixin();
|
||||
const { date2Thai, dateToISO, hideLoader, messageError,dialogConfirm,showLoader ,success} = mixin;
|
||||
const {
|
||||
date2Thai,
|
||||
dateToISO,
|
||||
hideLoader,
|
||||
messageError,
|
||||
dialogConfirm,
|
||||
showLoader,
|
||||
success,
|
||||
} = mixin;
|
||||
const date_start = ref<Date>();
|
||||
const group = ref<any | null>(null);
|
||||
const group2 = ref<any | null>(null);
|
||||
|
|
@ -629,7 +637,6 @@ function filterFnChairman(val: string, update: any) {
|
|||
*/
|
||||
async function saveData(id: string) {
|
||||
dialogConfirm($q, async () => await DataSave(id));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -1005,7 +1012,7 @@ function filterFnChairman(val: string, update: any) {
|
|||
}
|
||||
|
||||
onMounted(async () => {
|
||||
await showLoader()
|
||||
await showLoader();
|
||||
await getUser();
|
||||
await getAssignNew(profileId.value);
|
||||
await getLaw(profileId.value);
|
||||
|
|
@ -1016,7 +1023,7 @@ onMounted(async () => {
|
|||
if (id.value !== undefined) {
|
||||
await getAssign();
|
||||
}
|
||||
await hideLoader()
|
||||
await hideLoader();
|
||||
});
|
||||
</script>
|
||||
<template>
|
||||
|
|
@ -1038,7 +1045,11 @@ onMounted(async () => {
|
|||
<div>แบบมอบหมายงาน ฯ</div>
|
||||
</div>
|
||||
</div>
|
||||
<q-form greedy @submit.prevent @validation-success="id !== undefined ? saveEdit(id) : saveData(profileId)">
|
||||
<q-form
|
||||
greedy
|
||||
@submit.prevent
|
||||
@validation-success="id !== undefined ? saveEdit(id) : saveData(profileId)"
|
||||
>
|
||||
<div
|
||||
:class="
|
||||
$q.screen.gt.xs
|
||||
|
|
@ -1090,25 +1101,14 @@ onMounted(async () => {
|
|||
</q-list>
|
||||
</q-menu>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
flat
|
||||
icon="edit"
|
||||
dense
|
||||
color="edit"
|
||||
round
|
||||
@click="edit"
|
||||
<q-btn flat icon="edit" dense color="edit" round @click="edit">
|
||||
<q-tooltip>แก้ไขข้อมูล</q-tooltip></q-btn
|
||||
>
|
||||
<q-tooltip>แก้ไขข้อมูล</q-tooltip></q-btn>
|
||||
</div>
|
||||
<div v-else>
|
||||
<q-btn
|
||||
flat
|
||||
icon="mdi-undo"
|
||||
dense
|
||||
color="red"
|
||||
round
|
||||
@click="cancel"
|
||||
><q-tooltip>ยกเลิก</q-tooltip></q-btn>
|
||||
<q-btn flat icon="mdi-undo" dense color="red" round @click="cancel"
|
||||
><q-tooltip>ยกเลิก</q-tooltip></q-btn
|
||||
>
|
||||
<q-btn
|
||||
flat
|
||||
icon="mdi-content-save-outline"
|
||||
|
|
@ -1116,7 +1116,8 @@ onMounted(async () => {
|
|||
color="public"
|
||||
round
|
||||
type="submit"
|
||||
><q-tooltip>บันทึกข้อมูล</q-tooltip></q-btn>
|
||||
><q-tooltip>บันทึกข้อมูล</q-tooltip></q-btn
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -2810,7 +2811,11 @@ onMounted(async () => {
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="routeName == 'probationAdd'" class="full-width" align="right">
|
||||
<div
|
||||
v-if="routeName == 'probationAdd'"
|
||||
class="full-width"
|
||||
align="right"
|
||||
>
|
||||
<q-btn label="บันทึก" color="secondary" type="submit"
|
||||
><q-tooltip>บันทึกข้อมูล</q-tooltip></q-btn
|
||||
>
|
||||
|
|
|
|||
|
|
@ -85,14 +85,12 @@ onMounted(async () => {
|
|||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
|
||||
<ResultPage
|
||||
:fullname="fullname"
|
||||
v-model:dataArrayNumber="dataArrayNumber"
|
||||
:fecthAssign="fecthAssign"
|
||||
:data="evaluate.find((x: any) => x.no === dataArrayNumber)"
|
||||
/>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -9,12 +9,11 @@ import { useCounterMixin } from "@/stores/mixin";
|
|||
import http from "@/plugins/http";
|
||||
import config from "@/app.config";
|
||||
|
||||
|
||||
|
||||
const mixin = useCounterMixin();
|
||||
const { showLoader, hideLoader, messageError, dialogConfirm, success } = mixin;
|
||||
const Evaluacommander = defineAsyncComponent(
|
||||
() => import("@/modules/11_probation/component/editPage/02_evaluacommander.vue")
|
||||
() =>
|
||||
import("@/modules/11_probation/component/editPage/02_evaluacommander.vue")
|
||||
);
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
|
|
@ -28,9 +27,10 @@ const store = useProbationStore();
|
|||
const $q = useQuasar();
|
||||
const mode = ref<any>($q.screen.gt.xs);
|
||||
|
||||
|
||||
function addData() {
|
||||
router.push(`/probation/detail/addevaluacommander/${profileId.value}/${id.value}`);
|
||||
router.push(
|
||||
`/probation/detail/addevaluacommander/${profileId.value}/${id.value}`
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -54,12 +54,11 @@ function addData() {
|
|||
.finally(() => {
|
||||
hideLoader();
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
onMounted(async () => {
|
||||
await fecthAssign(id.value);
|
||||
});
|
||||
|
||||
</script>
|
||||
<template>
|
||||
<div v-if="!$q.screen.gt.xs" class="col-xs-12 col-sm-12 col-md-11">
|
||||
|
|
@ -89,11 +88,7 @@ onMounted(async () => {
|
|||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
|
||||
<Evaluacommander
|
||||
|
||||
/>
|
||||
|
||||
<Evaluacommander />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@ const mode = ref<any>($q.screen.gt.xs);
|
|||
function addData() {
|
||||
router.push(`/probation/detail/addevalua/${profileId.value}/${id.value}`);
|
||||
}
|
||||
|
||||
</script>
|
||||
<template>
|
||||
<div v-if="!$q.screen.gt.xs" class="col-xs-12 col-sm-12 col-md-11">
|
||||
|
|
@ -52,11 +51,7 @@ function addData() {
|
|||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
|
||||
<Evalua
|
||||
|
||||
/>
|
||||
|
||||
<Evalua />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -19,7 +19,9 @@ const $q = useQuasar();
|
|||
const mode = ref<any>($q.screen.gt.xs);
|
||||
|
||||
function addData() {
|
||||
router.push(`/probation/detail/addevaluascore/${profileId.value}/${id.value}`);
|
||||
router.push(
|
||||
`/probation/detail/addevaluascore/${profileId.value}/${id.value}`
|
||||
);
|
||||
}
|
||||
</script>
|
||||
<template>
|
||||
|
|
@ -50,10 +52,7 @@ function addData() {
|
|||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
|
||||
<Evaluascore
|
||||
/>
|
||||
|
||||
<Evaluascore />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -64,7 +64,6 @@ function onSubmit() {
|
|||
dialogConfirm($q, async () => await postData("post"));
|
||||
}
|
||||
|
||||
|
||||
/** post/put data
|
||||
* @param action post put
|
||||
*/
|
||||
|
|
@ -527,7 +526,9 @@ onMounted(async () => {
|
|||
lazy-rules
|
||||
label="ความเห็นของผู้มีอํานาจสั่งบรรจุตามมาตรา 52"
|
||||
:rules="[
|
||||
(val) => (!!val && val.length > 0) || 'กรุณาความเห็นของผู้มีอํานาจสั่งบรรจุตามมาตรา 52',
|
||||
(val) =>
|
||||
(!!val && val.length > 0) ||
|
||||
'กรุณาความเห็นของผู้มีอํานาจสั่งบรรจุตามมาตรา 52',
|
||||
]"
|
||||
/>
|
||||
</div>
|
||||
|
|
@ -719,7 +720,6 @@ onMounted(async () => {
|
|||
<q-btn label="บันทึก" color="secondary" type="submit"
|
||||
><q-tooltip>บันทึกข้อมูล</q-tooltip></q-btn
|
||||
>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</q-form>
|
||||
|
|
|
|||
|
|
@ -38,12 +38,12 @@ function onSubmit() {
|
|||
})
|
||||
.then((res) => {
|
||||
success($q, "บันทึกสำเร็จ");
|
||||
getData()
|
||||
}).catch((e)=>{
|
||||
messageError($q,e)
|
||||
}).finally(()=>{
|
||||
|
||||
getData();
|
||||
})
|
||||
.catch((e) => {
|
||||
messageError($q, e);
|
||||
})
|
||||
.finally(() => {});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@
|
|||
<div v-else class="col-12">
|
||||
<div class="row q-col-gutter-sm">
|
||||
<div class="col-12">
|
||||
<q-card bordered style="border-radius: 20px;">
|
||||
<q-card bordered style="border-radius: 20px">
|
||||
<div class="q-pa-sm text-center bg-blue-1">
|
||||
<span class="text-weight-medium">
|
||||
<i
|
||||
|
|
@ -156,7 +156,7 @@
|
|||
</q-card>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<q-card bordered style="border-radius: 20px;">
|
||||
<q-card bordered style="border-radius: 20px">
|
||||
<div class="q-pa-sm text-center bg-blue-1">
|
||||
<span class="text-weight-medium">
|
||||
<i
|
||||
|
|
@ -190,7 +190,7 @@
|
|||
</q-card>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<q-card bordered style="border-radius: 20px;">
|
||||
<q-card bordered style="border-radius: 20px">
|
||||
<div class="q-pa-sm text-center bg-blue-1">
|
||||
<span class="text-weight-medium">
|
||||
<i
|
||||
|
|
@ -230,7 +230,7 @@
|
|||
</q-card>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<q-card bordered style="border-radius: 20px;">
|
||||
<q-card bordered style="border-radius: 20px">
|
||||
<div class="q-pa-sm text-center bg-blue-1">
|
||||
<span class="text-weight-medium">
|
||||
<i
|
||||
|
|
@ -276,7 +276,7 @@
|
|||
</q-card>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<q-card bordered style="border-radius: 20px;">
|
||||
<q-card bordered style="border-radius: 20px">
|
||||
<div class="q-pa-sm text-center bg-blue-1">
|
||||
<span class="text-weight-medium">
|
||||
<i
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ const props = defineProps({
|
|||
/** เรียกใช้ฟังชั่นจากหน้าหลัก */
|
||||
function downloadFile(type: string) {
|
||||
props.FileDownload(type);
|
||||
};
|
||||
}
|
||||
|
||||
watch(tabHead, () => {
|
||||
props.changeTab(tabHead.value);
|
||||
|
|
@ -44,7 +44,7 @@ function nextPage(){
|
|||
props.addData();
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
|
|
|||
|
|
@ -2052,7 +2052,10 @@ onMounted(async () => {
|
|||
</q-item>
|
||||
</q-list>
|
||||
<q-separator class="q-my-xs" />
|
||||
<q-list dense :class="[getBordered(alerts[11].value), 'item-custom']">
|
||||
<q-list
|
||||
dense
|
||||
:class="[getBordered(alerts[11].value), 'item-custom']"
|
||||
>
|
||||
<q-item dense>
|
||||
<q-item-section>
|
||||
<q-item-label>2. การเรียนรู้ด้วยตนเอง</q-item-label>
|
||||
|
|
@ -2088,7 +2091,10 @@ onMounted(async () => {
|
|||
</q-item>
|
||||
</q-list>
|
||||
<q-separator class="q-my-xs" />
|
||||
<q-list dense :class="[getBordered(alerts[11].value), 'item-custom']">
|
||||
<q-list
|
||||
dense
|
||||
:class="[getBordered(alerts[11].value), 'item-custom']"
|
||||
>
|
||||
<q-item dense>
|
||||
<q-item-section>
|
||||
<q-item-label>3. การอบรมสัมนาร่วมกัน</q-item-label>
|
||||
|
|
|
|||
|
|
@ -1552,9 +1552,7 @@ onMounted(async () => {
|
|||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
<div v-else class="">
|
||||
|
||||
</div>
|
||||
<div v-else class=""></div>
|
||||
<q-list dense>
|
||||
<q-item
|
||||
dense
|
||||
|
|
|
|||
|
|
@ -1,3 +1 @@
|
|||
<template>
|
||||
03
|
||||
</template>
|
||||
<template>03</template>
|
||||
|
|
|
|||
|
|
@ -1,3 +1 @@
|
|||
<template>
|
||||
04
|
||||
</template>
|
||||
<template>04</template>
|
||||
|
|
|
|||
|
|
@ -614,7 +614,8 @@ onMounted(async () => {
|
|||
<div class="row text-weight-medium">
|
||||
<div class="col-12 text-grey-7 text-bold">
|
||||
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
|
||||
ผู้ทดลองปฏิบัติหน้าที่ราชการ {{ store.person.name ? store.person.name : "-" }}
|
||||
ผู้ทดลองปฏิบัติหน้าที่ราชการ
|
||||
{{ store.person.name ? store.person.name : "-" }}
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<span class="text-grey-7 text-weight-bold q-pl-lg"
|
||||
|
|
@ -624,7 +625,9 @@ onMounted(async () => {
|
|||
</div>
|
||||
<div class="col-12">
|
||||
<span class="text-grey-7 text-weight-bold q-pl-lg">ระดับตำแหน่ง</span>
|
||||
{{ store.person.positionLevelName ? store.person.positionLevelName : "-" }}
|
||||
{{
|
||||
store.person.positionLevelName ? store.person.positionLevelName : "-"
|
||||
}}
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<span class="text-grey-7 text-weight-bold q-pl-lg">สังกัด</span>
|
||||
|
|
|
|||
|
|
@ -1,3 +1 @@
|
|||
<template>
|
||||
02
|
||||
</template>
|
||||
<template>02</template>
|
||||
|
|
|
|||
|
|
@ -1,3 +1 @@
|
|||
<template>
|
||||
03
|
||||
</template>
|
||||
<template>03</template>
|
||||
|
|
|
|||
|
|
@ -1,3 +1 @@
|
|||
<template>
|
||||
04
|
||||
</template>
|
||||
<template>04</template>
|
||||
|
|
|
|||
|
|
@ -1,13 +1,11 @@
|
|||
interface ListMain {
|
||||
id: string
|
||||
id: string;
|
||||
round_no: number;
|
||||
date_start: string
|
||||
date_finish: string
|
||||
mentors: string
|
||||
commander: string
|
||||
chairman: string
|
||||
date_start: string;
|
||||
date_finish: string;
|
||||
mentors: string;
|
||||
commander: string;
|
||||
chairman: string;
|
||||
}
|
||||
|
||||
export type {
|
||||
ListMain
|
||||
}
|
||||
export type { ListMain };
|
||||
|
|
|
|||
|
|
@ -2,11 +2,9 @@
|
|||
import { useRouter } from "vue-router";
|
||||
|
||||
/** component */
|
||||
import Assign from '@/modules/11_probation/component/01_Assign.vue'
|
||||
|
||||
import Assign from "@/modules/11_probation/component/01_Assign.vue";
|
||||
|
||||
const router = useRouter();
|
||||
|
||||
</script>
|
||||
<template>
|
||||
<div class="col-xs-12 col-sm-12 col-md-11">
|
||||
|
|
@ -27,7 +25,6 @@ const router = useRouter();
|
|||
<q-card class="q-pa-md">
|
||||
<Assign />
|
||||
</q-card>
|
||||
|
||||
</template>
|
||||
<style scoped>
|
||||
.mobileClass {
|
||||
|
|
@ -35,7 +32,4 @@ const router = useRouter();
|
|||
border-radius: 10px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -12,15 +12,14 @@ import EvaluateResult from "@/modules/11_probation/component/06_EvaluateResult.v
|
|||
import EvaluateReport from "@/modules/11_probation/component/07_EvaluateReport.vue";
|
||||
import SurveyComment from "@/modules/11_probation/component/08_SurveyComment.vue";
|
||||
|
||||
|
||||
const drawer = ref<boolean>(true);
|
||||
const activeTab = ref<string>("tab1");
|
||||
const store = useProbationStore();
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
|
||||
const id = ref<string>(route.params.id as string)
|
||||
const profileId = ref<string>(route.params.profileId as string)
|
||||
const id = ref<string>(route.params.id as string);
|
||||
const profileId = ref<string>(route.params.profileId as string);
|
||||
|
||||
/**
|
||||
* เปลี่ยน tab เมนู
|
||||
|
|
@ -39,7 +38,7 @@ function onMobile(type: string) {
|
|||
function clickBack() {
|
||||
router.push(`/probation`);
|
||||
store.mainTab = "tab1";
|
||||
};
|
||||
}
|
||||
|
||||
/** เมื่อเริ่มโหลดหน้า ให้ tab เป็น tab1 */
|
||||
onMounted(() => {
|
||||
|
|
@ -64,7 +63,7 @@ onMounted(() => {
|
|||
<div>การทดลองปฏิบัติหน้าที่ราชการ</div>
|
||||
</div>
|
||||
</div>
|
||||
<q-card bordered :class='!$q.screen.gt.xs ? `borderRadius`:``'>
|
||||
<q-card bordered :class="!$q.screen.gt.xs ? `borderRadius` : ``">
|
||||
<q-layout
|
||||
v-if="$q.screen.gt.xs"
|
||||
view="hHh Lpr lff"
|
||||
|
|
@ -226,13 +225,17 @@ onMounted(() => {
|
|||
<q-tab-panel name="tab8">
|
||||
<SurveyComment />
|
||||
</q-tab-panel>
|
||||
|
||||
</q-tab-panels>
|
||||
</q-layout>
|
||||
</q-page-container>
|
||||
</q-layout>
|
||||
<q-list v-else separator>
|
||||
<q-item clickable v-ripple @click="onMobile('assign-work')" style="border-radius: 20px 20px 0 0;">
|
||||
<q-item
|
||||
clickable
|
||||
v-ripple
|
||||
@click="onMobile('assign-work')"
|
||||
style="border-radius: 20px 20px 0 0"
|
||||
>
|
||||
<q-item-section>แบบมอบหมายงาน ฯ</q-item-section>
|
||||
<q-item-section avatar>
|
||||
<q-avatar text-color="info" icon="mdi-chevron-right" />
|
||||
|
|
@ -286,7 +289,12 @@ onMounted(() => {
|
|||
<q-avatar text-color="info" icon="mdi-chevron-right" />
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item clickable v-ripple @click="onMobile('survey-comment')" style="border-radius: 0 0 20px 20px;">
|
||||
<q-item
|
||||
clickable
|
||||
v-ripple
|
||||
@click="onMobile('survey-comment')"
|
||||
style="border-radius: 0 0 20px 20px"
|
||||
>
|
||||
<q-item-section>แบบสํารวจความคิดเห็น</q-item-section>
|
||||
<q-item-section avatar>
|
||||
<q-avatar text-color="info" icon="mdi-chevron-right" />
|
||||
|
|
@ -304,6 +312,4 @@ onMounted(() => {
|
|||
.borderRadius {
|
||||
border-radius: 20px !important;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -1,23 +1,37 @@
|
|||
// registry
|
||||
const probationPage = () => import("@/modules/11_probation/views/main.vue");
|
||||
const probationDetail = () => import("@/modules/11_probation/views/mainDetail.vue");
|
||||
const probationDetail = () =>
|
||||
import("@/modules/11_probation/views/mainDetail.vue");
|
||||
|
||||
const probationAdd = () => import("@/modules/11_probation/pages/addPage.vue");
|
||||
const probationDetailPage = () => import("@/modules/11_probation/pages/detailPage.vue");
|
||||
const probationDetailPage = () =>
|
||||
import("@/modules/11_probation/pages/detailPage.vue");
|
||||
|
||||
const probationAssign = () => import('@/modules/11_probation/component/01_Assign.vue')
|
||||
const probationRecordCareker = () => import('@/modules/11_probation/component/02_RecordCareker.vue')
|
||||
const probationRecordCommander = () => import('@/modules/11_probation/component/03_RecordCommander.vue')
|
||||
const probationEvaluateCommander = () => import('@/modules/11_probation/component/04_EvaluateCommander.vue')
|
||||
const probationEvaluateChairman = () => import('@/modules/11_probation/component/05_EvaluateChairman.vue')
|
||||
const probationEvaluateResult = () => import('@/modules/11_probation/component/06_EvaluateResult.vue')
|
||||
const probationEvaluateReport = () => import('@/modules/11_probation/component/07_EvaluateReport.vue')
|
||||
const probationSurveyComment = () => import('@/modules/11_probation/component/08_SurveyComment.vue')
|
||||
const probationAssign = () =>
|
||||
import("@/modules/11_probation/component/01_Assign.vue");
|
||||
const probationRecordCareker = () =>
|
||||
import("@/modules/11_probation/component/02_RecordCareker.vue");
|
||||
const probationRecordCommander = () =>
|
||||
import("@/modules/11_probation/component/03_RecordCommander.vue");
|
||||
const probationEvaluateCommander = () =>
|
||||
import("@/modules/11_probation/component/04_EvaluateCommander.vue");
|
||||
const probationEvaluateChairman = () =>
|
||||
import("@/modules/11_probation/component/05_EvaluateChairman.vue");
|
||||
const probationEvaluateResult = () =>
|
||||
import("@/modules/11_probation/component/06_EvaluateResult.vue");
|
||||
const probationEvaluateReport = () =>
|
||||
import("@/modules/11_probation/component/07_EvaluateReport.vue");
|
||||
const probationSurveyComment = () =>
|
||||
import("@/modules/11_probation/component/08_SurveyComment.vue");
|
||||
|
||||
const probationAddresult = () => import('@/modules/11_probation/component/addPage/01_addresult.vue')
|
||||
const probationAddevaluacommander = () => import('@/modules/11_probation/component/addPage/02_addevaluacommander.vue')
|
||||
const probationAddevalua = () => import('@/modules/11_probation/component/addPage/03_addevalua.vue')
|
||||
const probationAddevaluascore = () => import('@/modules/11_probation/component/addPage/04_addevaluascore.vue')
|
||||
const probationAddresult = () =>
|
||||
import("@/modules/11_probation/component/addPage/01_addresult.vue");
|
||||
const probationAddevaluacommander = () =>
|
||||
import("@/modules/11_probation/component/addPage/02_addevaluacommander.vue");
|
||||
const probationAddevalua = () =>
|
||||
import("@/modules/11_probation/component/addPage/03_addevalua.vue");
|
||||
const probationAddevaluascore = () =>
|
||||
import("@/modules/11_probation/component/addPage/04_addevaluascore.vue");
|
||||
|
||||
export default [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -221,7 +221,6 @@ onMounted(async () => {
|
|||
</template>
|
||||
</q-breadcrumbs>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<q-separator />
|
||||
|
|
|
|||
|
|
@ -163,9 +163,7 @@ function fetchFile() {
|
|||
function fileOpen(fileName: string) {
|
||||
showLoader();
|
||||
http
|
||||
.get(
|
||||
config.API.fileByFile("ระบบผลงาน", "เอกสารผลงาน", id.value, fileName)
|
||||
)
|
||||
.get(config.API.fileByFile("ระบบผลงาน", "เอกสารผลงาน", id.value, fileName))
|
||||
.then((res) => {
|
||||
const data = res.data.downloadUrl;
|
||||
window.open(data, "_blank");
|
||||
|
|
|
|||
|
|
@ -3,9 +3,7 @@
|
|||
* - ไฟล์นี้จะไว้เก็บฟังก์ชันง่าย ๆ พวก Helper Functions ทั้งหลาย
|
||||
*/
|
||||
|
||||
|
||||
const filters = {
|
||||
|
||||
/**
|
||||
* ฟังก์ชัน compactNumber ใช้แปลงตัวเลขยาว ๆ ให้กลายเป็นเลขสั้น ๆ แบบที่พวก Social Media ชอบใช้กัน เช่น 1,000 แปลงเป็น 1K หรือ 1,000,000 แปลงเป็น 1M
|
||||
* วิธีใช้ : {{ $filters.compactNumber(value) }}
|
||||
|
|
@ -14,9 +12,9 @@ const filters = {
|
|||
* @returns คืนค่าเป็นตัวเลขที่แปลงค่าแล้ว
|
||||
*/
|
||||
compactNumber(val: number) {
|
||||
const formatter = Intl.NumberFormat('en', { notation: 'compact'})
|
||||
return formatter.format(val)
|
||||
}
|
||||
}
|
||||
const formatter = Intl.NumberFormat("en", { notation: "compact" });
|
||||
return formatter.format(val);
|
||||
},
|
||||
};
|
||||
|
||||
export default filters;
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
// import "./styles/quasar.scss"
|
||||
import "@quasar/extras/material-icons/material-icons.css"
|
||||
import "@quasar/extras/material-icons-outlined/material-icons-outlined.css"
|
||||
import "@quasar/extras/fontawesome-v5/fontawesome-v5.css"
|
||||
import "@quasar/extras/mdi-v4/mdi-v4.css"
|
||||
import "@quasar/extras/material-icons/material-icons.css";
|
||||
import "@quasar/extras/material-icons-outlined/material-icons-outlined.css";
|
||||
import "@quasar/extras/fontawesome-v5/fontawesome-v5.css";
|
||||
import "@quasar/extras/mdi-v4/mdi-v4.css";
|
||||
|
||||
// To be used on app.use(Quasar, { ... })
|
||||
export default {
|
||||
config: {},
|
||||
plugins: {},
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -10,4 +10,3 @@ export function load(view: string, folder: string = "views") {
|
|||
// console.log(`@/${folder}/${view}.vue`);
|
||||
return async () => await import(`@/${folder}/${view}.vue`);
|
||||
}
|
||||
|
||||
|
|
@ -9,6 +9,8 @@
|
|||
"@/*": ["./src/*"]
|
||||
},
|
||||
"target": "es2018",
|
||||
"lib": ["dom", "es2015", "es2018", "es2018.promise"]
|
||||
"lib": ["dom", "es2015", "es2018", "es2018.promise"],
|
||||
"ignoreDeprecations": "5.0",
|
||||
"verbatimModuleSyntax": true
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,15 @@
|
|||
{
|
||||
"extends": "@vue/tsconfig/tsconfig.node.json",
|
||||
"include": ["vite.config.*", "vitest.config.*", "cypress.config.*", "playwright.config.*"],
|
||||
"include": [
|
||||
"vite.config.*",
|
||||
"vitest.config.*",
|
||||
"cypress.config.*",
|
||||
"playwright.config.*"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"composite": true,
|
||||
"types": ["node"]
|
||||
"types": ["node"],
|
||||
"ignoreDeprecations": "5.0",
|
||||
"verbatimModuleSyntax": true
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue