แก้ รอ API แก้ไขโครงการ/หลักสูตรการฝึกอบรม

This commit is contained in:
STW_TTTY\stwtt 2024-07-15 17:49:38 +07:00
parent 4419b41a39
commit 645837c6b7

View file

@ -19,12 +19,27 @@ const other1 = ref<boolean>(false);
const other2 = ref<boolean>(false);
const reasonPlanned = ref<string>("");
const reasonActual = ref<string>("");
const checkOtherBox = computed<boolean>(() => {
return formData.developmentProjectTechniquePlanneds.includes("อื่นๆ");
const checkOtherBox11 = computed<boolean>(() => {
return formData.developmentProjectTechniquePlanneds.includes("other1");
});
const checkOtherBox2 = computed<boolean>(() => {
return formData.developmentProjectTechniqueActuals.includes("อื่นๆ");
const checkOtherBox12 = computed<boolean>(() => {
return formData.developmentProjectTechniquePlanneds.includes("other2");
});
const checkOtherBox13 = computed<boolean>(() => {
return formData.developmentProjectTechniquePlanneds.includes("other3");
});
const checkOtherBox21 = computed<boolean>(() => {
return formData.developmentProjectTechniqueActuals.includes("other1");
});
const checkOtherBox22 = computed<boolean>(() => {
return formData.developmentProjectTechniqueActuals.includes("other2");
});
const checkOtherBox23 = computed<boolean>(() => {
return formData.developmentProjectTechniqueActuals.includes("other3");
});
const $q = useQuasar();
const store = useDevelopmentDataStore();
const route = useRoute();
@ -39,17 +54,86 @@ const projectTypeOp = ref<String[]>([
"โครงการต่อเนื่อง",
]);
const projectTechniquesOp = ref<DataOptionTechnique[]>([
{ value: "การอบรม", label: "การอบรม" },
{ value: "การประชุม", label: "การประชุม" },
{ value: "การสัมมนา", label: "การสัมมนา" },
{ value: "การศึกษาดูงาน", label: "การศึกษาดูงาน" },
{ value: "การสัมมนาทางวิชาการ", label: "การสัมมนาทางวิชาการ" },
{ value: "การสัมมนาเชิงปฏิบัติการ", label: "การสัมมนาเชิงปฏิบัติการ" },
{ value: "การบรรยายพิเศษ", label: "การบรรยายพิเศษ" },
{ value: "การฝึกศึกษา", label: "การฝึกศึกษา" },
{ value: "การบรรยาย", label: "การบรรยาย" },
{ value: "อื่นๆ", label: "อื่นๆ" },
const projectTechniquesOp1 = ref<DataOptionTechnique[]>([
{
value: "on_the_job_training",
label: "การฝึกปฏิบัติในงาน (On the job training)",
},
{
value: "job_project_assignment",
label: "การมอบหมายงาน/โครงการ (Job/Project assignment)",
},
{
value: "job_shadowing",
label: "การติดตามเรียนรู้รูปแบบการทำงานของผู้บริหาร (Job shadowing)",
},
{
value: "job_enlargement",
label: "การมอบหมายงานเพิ่มขึ้น (Job enlargement)",
},
{
value: "internal_trainer",
label: "การเป็นวิทยากรภายในหน่วยงาน (Internal trainer)",
},
{
value: "rotation",
label: "การหมุนเวียนงาน (Rotation)",
},
{
value: "activity",
label: "การทำกิจกรรม (Activity)",
},
{
value: "site_visit",
label: "การศึกษาดูงานนอกสถานที่ (Site visit)",
},
{
value: "benchmarking",
label: "การแลกเปลี่ยน เทียบเคียงความรู้ ประสมการณ์ (Benchmarking)",
},
{
value: "problem_solving",
label: "การแก้ปัญหา (Problem-solving)",
},
{
value: "team_working",
label: "การทำงานเป็นทีม (Team working)",
},
{
value: "other1",
label: "อื่น ๆ (ระบุ)",
},
]);
const projectTechniquesOp2 = ref<DataOptionTechnique[]>([
{ value: "coaching", label: "การสอนงาน (Coaching)" },
{ value: "mentoring", label: "การเป็นพี่เลี้ยง (Mentoring)" },
{ value: "team_meeting", label: "การประชุมทีม (Team meeting)" },
{ value: "consulting", label: "การให้คำปรึกษา (Consulting)" },
{ value: "feedback", label: "การให้ข้อคิดเห็น/เสนอแนะ (Feedback)" },
{ value: "other2", label: "อื่น ๆ (ระบุ)" },
]);
const projectTechniquesOp3 = ref<DataOptionTechnique[]>([
{
value: "self_learning",
label: "การเรียนรู้ด้วยตนเอง แบบ online/offline (Self learning)",
},
{ value: "classroom_training", label: "การฝึกอบรม (Classroom training)" },
{
value: "in_house_training",
label: "การฝึกอบรมภายในองค์กร (In house training)",
},
{
value: "public_training",
label: "การฝึกอบรมจากองค์กรภายนอก (Public training)",
},
{
value: "e_training",
label: "การฝึกอบรมผ่าน online (e training / e learning)",
},
{ value: "meeting", label: "การประชุม (Meeting)" },
{ value: "seminar", label: "การสัมมนา (Seminar)" },
{ value: "other3", label: "อื่น ๆ (ระบุ)" },
]);
const formData = reactive<FormProjectDetail>({
@ -108,6 +192,7 @@ function fetchData() {
formData.developmentProjectTechniqueActuals =
data.developmentProjectTechniqueActuals;
formData.projectModalPlanned = data.projectModalPlanned;
formData.projectModalActual = data.projectModalActual;
const arrayExpanded = [
data.strategyChild1Planned,
data.strategyChild2Planned,
@ -137,8 +222,8 @@ function fetchData() {
expanded.value = arrayExpanded.filter((e) => e !== null).slice(0, -1);
expanded2.value = arrayExpanded2.filter((e) => e !== null).slice(0, -1);
reasonPlanned.value = data.reasonPlanned ? data.reasonPlanned:'';
reasonActual.value = data.reasonActual ? data.reasonActual :'';
reasonPlanned.value = data.reasonPlanned ? data.reasonPlanned : "";
reasonActual.value = data.reasonActual ? data.reasonActual : "";
})
.catch((err) => {
messageError($q, err);
@ -223,16 +308,6 @@ function updateSelected(data: DataStrategic, type: string) {
formData.strategyChildActualNode = data.level;
}
}
function checkOther(type: number, val: boolean) {
if (val == false) {
if (type == 1) {
reasonPlanned.value = "";
} else if (type == 2) {
reasonActual.value = "";
}
}
}
/** ดึงข้อมูลเมื่อคอมโพเนนต์โหลดเสร็จสมบูรณ์ */
onMounted(() => {
fetchData();
@ -398,208 +473,306 @@ onMounted(() => {
<q-card-section>
<div class="row col-12 q-col-gutter-sm">
<div class="col-6 q-col-gutter-sm">
<div class="col-12 text-bold">ปแบบโครงการตามแผน</div>
<div class="col-12 text-bold">ปแบบโครงการตามแผน</div>
<div class="row col-12 q-col-gutter-sm">
<div class="col-12 col-md-3">
<q-checkbox
:disable="store.projectStatus === 'FINISH'"
keep-color
color="primary"
dense
value="GO_BLACK"
label="ไป-กลับ"
v-model="formData.isBackPlanned"
></q-checkbox>
</div>
<div class="col-12 col-md-4">
<q-input
:readonly="store.projectStatus === 'FINISH'"
dense
outlined
v-model="formData.projectDayBackPlanned"
label="จำนวน (วัน)"
mask="#"
reverse-fill-mask
class="inputgreen"
/>
</div>
</div>
<div class="row col-12 q-col-gutter-sm">
<div class="col-12 col-md-3">
<q-checkbox
:disable="store.projectStatus === 'FINISH'"
keep-color
color="primary"
dense
value="HOLD"
label="พักค้าง"
v-model="formData.isHoldPlanned"
></q-checkbox>
</div>
<div class="col-12 col-md-4">
<q-input
:readonly="store.projectStatus === 'FINISH'"
dense
outlined
v-model="formData.projectDayHoldPlanned"
label="จำนวน (วัน)"
mask="#"
reverse-fill-mask
class="inputgreen"
/>
</div>
<div class="col-12 col-md-4">
<q-input
:readonly="store.projectStatus === 'FINISH'"
dense
outlined
v-model="formData.projectNigthHoldPlanned"
label="จำนวน (คืน)"
mask="#"
class="inputgreen"
reverse-fill-mask
/>
</div>
</div>
<div class="col-12 q-py-md">
<q-label class="q-mb-sm">เทคนควการทใชในการพฒนา</q-label>
<q-option-group
<div class="row col-12 q-col-gutter-sm">
<div class="col-12 col-md-3">
<q-checkbox
:disable="store.projectStatus === 'FINISH'"
keep-color
color="primary"
dense
v-model="formData.developmentProjectTechniquePlanneds"
:options="projectTechniquesOp"
type="checkbox"
/>
value="GO_BLACK"
label="ไป-กลับ"
v-model="formData.isBackPlanned"
></q-checkbox>
</div>
<div class="col-12">
<div class="row">
<div class="offset-4 col-8 relative-position">
<div class="other_custom_input" v-if="checkOtherBox">
<q-input
v-model="reasonPlanned"
dense
outlined
class="inputgreen"
label="กรุณาระบุ"
></q-input>
</div>
</div>
</div>
</div>
<div class="col-12 col-sm-6 col-md-4">
<div class="col-12 col-md-4">
<q-input
:disable="store.projectStatus === 'FINISH'"
:readonly="store.projectStatus === 'FINISH'"
dense
outlined
v-model="formData.projectModalPlanned"
label="จำนวน (รุ่น)"
v-model="formData.projectDayBackPlanned"
label="จำนวน (วัน)"
mask="#"
reverse-fill-mask
class="inputgreen"
/>
</div>
</div>
<div
v-if="store.projectStatus === 'FINISH'"
class="col-6 q-col-gutter-sm"
>
<div class="col-12 text-bold">ปแบบโครงการตามจร</div>
<div class="row col-12 q-col-gutter-sm">
<div class="col-md-3">
<q-checkbox
keep-color
color="primary"
dense
value="GO_BLACK"
label="ไป-กลับ"
v-model="formData.isBackActual"
></q-checkbox>
</div>
<div class="col-12 col-md-4">
<q-input
dense
outlined
v-model="formData.projectDayBackActual"
label="จำนวน (วัน)"
mask="#"
reverse-fill-mask
/>
</div>
</div>
<div class="row col-12 q-col-gutter-sm">
<div class="col-12 col-md-3">
<q-checkbox
keep-color
color="primary"
dense
value="HOLD"
label="พักค้าง"
v-model="formData.isHoldActual"
></q-checkbox>
</div>
<div class="col-12 col-md-4">
<q-input
dense
outlined
v-model="formData.projectDayHoldActual"
label="จำนวน (วัน)"
mask="#"
reverse-fill-mask
/>
</div>
<div class="col-12 col-md-4">
<q-input
dense
outlined
v-model="formData.projectNigthHoldActual"
label="จำนวน (คืน)"
mask="#"
reverse-fill-mask
/>
</div>
</div>
<div class="col-12 q-py-md">
<q-label class="q-mb-sm">เทคนควการทใชในการพฒนา</q-label>
<q-option-group
<div class="row col-12 q-col-gutter-sm">
<div class="col-12 col-md-3">
<q-checkbox
:disable="store.projectStatus === 'FINISH'"
keep-color
color="primary"
dense
v-model="formData.developmentProjectTechniqueActuals"
:options="projectTechniquesOp"
type="checkbox"
value="HOLD"
label="พักค้าง"
v-model="formData.isHoldPlanned"
></q-checkbox>
</div>
<div class="col-12 col-md-4">
<q-input
:readonly="store.projectStatus === 'FINISH'"
dense
outlined
v-model="formData.projectDayHoldPlanned"
label="จำนวน (วัน)"
mask="#"
reverse-fill-mask
class="inputgreen"
/>
</div>
<div class="col-12">
<div class="row">
<div class="offset-4 col-8 relative-position">
<div class="other_custom_input" v-if="checkOtherBox2">
<q-input
v-model="reasonActual"
dense
outlined
label="กรุณาระบุ"
class="inputgreen"
></q-input>
</div>
<div class="col-12 col-md-4">
<q-input
:readonly="store.projectStatus === 'FINISH'"
dense
outlined
v-model="formData.projectNigthHoldPlanned"
label="จำนวน (คืน)"
mask="#"
class="inputgreen"
reverse-fill-mask
/>
</div>
</div>
<div class="col-12 q-py-md">
<div class="row q-col-gutter-md">
<div class="col-12 col-sm-6 col-md-4 align-top">
<q-label class="q-mb-sm text-weight-medium text-body2"
>การเรยนรและการพฒนาจากการลงมอทำ (70)</q-label
>
<q-option-group
class="check_box q-mt-sm"
:disable="store.projectStatus === 'FINISH'"
keep-color
color="primary"
dense
v-model="formData.developmentProjectTechniquePlanneds"
:options="projectTechniquesOp1"
type="checkbox"
/>
<div class="full-width q-mt-sm" v-if="checkOtherBox11">
<q-input
v-model="reasonPlanned"
dense
outlined
class="inputgreen"
label="กรุณาระบุ"
></q-input>
</div>
</div>
<div class="col-12 col-sm-6 col-md-4">
<q-label class="q-mb-sm text-weight-medium text-body2"
>การเรยนรและการพฒนาจากบคคลอ (20)</q-label
>
<q-option-group
class="check_box q-mt-sm"
:disable="store.projectStatus === 'FINISH'"
keep-color
color="primary"
dense
v-model="formData.developmentProjectTechniquePlanneds"
:options="projectTechniquesOp2"
type="checkbox"
/>
<div class="full-width q-mt-sm" v-if="checkOtherBox12">
<q-input
v-model="reasonPlanned"
dense
outlined
class="inputgreen"
label="กรุณาระบุ"
></q-input>
</div>
</div>
<div class="col-12 col-sm-6 col-md-4">
<q-label class="q-mb-sm text-weight-medium text-body2"
>การเรยนรและการพฒนาจากการฝกอบรม (10)</q-label
>
<q-option-group
class="check_box q-mt-sm"
:disable="store.projectStatus === 'FINISH'"
keep-color
color="primary"
dense
v-model="formData.developmentProjectTechniquePlanneds"
:options="projectTechniquesOp3"
type="checkbox"
/>
<div class="full-width q-mt-sm" v-if="checkOtherBox13">
<q-input
v-model="reasonPlanned"
dense
outlined
class="inputgreen"
label="กรุณาระบุ"
></q-input>
</div>
</div>
</div>
<div class="col-12 col-sm-6 col-md-4">
<q-input
dense
outlined
v-model="formData.projectModalActual"
label="จำนวน (รุ่น)"
mask="#"
reverse-fill-mask
/>
</div>
<div class="col-12 col-sm-6 col-md-4">
<q-input
:disable="store.projectStatus === 'FINISH'"
dense
outlined
v-model="formData.projectModalPlanned"
label="จำนวน (รุ่น)"
mask="#"
reverse-fill-mask
class="inputgreen"
/>
</div>
<div class="col-12" v-if="store.projectStatus === 'FINISH'">
<div class="row col-12 q-col-gutter-sm">
<div class="col-12 q-my-sm">
<q-separator />
</div>
<div class="col-12 text-bold">ปแบบโครงการตามจร</div>
<div class="row col-12 q-col-gutter-sm">
<div class="col-md-3">
<q-checkbox
keep-color
color="primary"
dense
value="GO_BLACK"
label="ไป-กลับ"
v-model="formData.isBackActual"
></q-checkbox>
</div>
<div class="col-12 col-md-4">
<q-input
class="inputgreen"
dense
outlined
v-model="formData.projectDayBackActual"
label="จำนวน (วัน)"
mask="#"
reverse-fill-mask
/>
</div>
</div>
<div class="row col-12 q-col-gutter-sm">
<div class="col-12 col-md-3">
<q-checkbox
keep-color
color="primary"
dense
value="HOLD"
label="พักค้าง"
v-model="formData.isHoldActual"
></q-checkbox>
</div>
<div class="col-12 col-md-4">
<q-input
class="inputgreen"
dense
outlined
v-model="formData.projectDayHoldActual"
label="จำนวน (วัน)"
mask="#"
reverse-fill-mask
/>
</div>
<div class="col-12 col-md-4">
<q-input
class="inputgreen"
dense
outlined
v-model="formData.projectNigthHoldActual"
label="จำนวน (คืน)"
mask="#"
reverse-fill-mask
/>
</div>
</div>
<div class="col-12 q-py-md">
<div class="row q-col-gutter-md">
<div class="col-12 col-sm-6 col-md-4 align-top">
<q-label class="q-mb-sm text-weight-medium text-body2"
>การเรยนรและการพฒนาจากการลงมอทำ (70)</q-label
>
<q-option-group
class="check_box q-mt-sm"
keep-color
color="primary"
dense
v-model="formData.developmentProjectTechniqueActuals"
:options="projectTechniquesOp1"
type="checkbox"
/>
<div class="full-width q-mt-sm" v-if="checkOtherBox21">
<q-input
v-model="reasonActual"
dense
outlined
class="inputgreen"
label="กรุณาระบุ"
></q-input>
</div>
</div>
<div class="col-12 col-sm-6 col-md-4">
<q-label class="q-mb-sm text-weight-medium text-body2"
>การเรยนรและการพฒนาจากบคคลอ (20)</q-label
>
<q-option-group
class="check_box q-mt-sm"
keep-color
color="primary"
dense
v-model="formData.developmentProjectTechniqueActuals"
:options="projectTechniquesOp2"
type="checkbox"
/>
<div class="full-width q-mt-sm" v-if="checkOtherBox22">
<q-input
v-model="reasonActual"
dense
outlined
class="inputgreen"
label="กรุณาระบุ"
></q-input>
</div>
</div>
<div class="col-12 col-sm-6 col-md-4">
<q-label class="q-mb-sm text-weight-medium text-body2"
>การเรยนรและการพฒนาจากการฝกอบรม (10)</q-label
>
<q-option-group
class="check_box q-mt-sm"
keep-color
color="primary"
dense
v-model="formData.developmentProjectTechniqueActuals"
:options="projectTechniquesOp3"
type="checkbox"
/>
<div class="full-width q-mt-sm" v-if="checkOtherBox23">
<q-input
v-model="reasonActual"
dense
outlined
class="inputgreen"
label="กรุณาระบุ"
></q-input>
</div>
</div>
</div>
</div>
<div class="col-12 col-sm-6 col-md-4">
<q-input
dense
class="inputgreen"
outlined
v-model="formData.projectModalActual"
label="จำนวน (รุ่น)"
mask="#"
reverse-fill-mask
/>
</div>
</div>
</div>
</div>
@ -607,6 +780,7 @@ onMounted(() => {
</q-card>
</div>
<q-separator />
<div class="text-right q-pa-sm">
<q-btn
unelevated
@ -640,4 +814,8 @@ onMounted(() => {
top: -45px;
width: 100%;
}
:deep(.check_box .q-checkbox) {
align-items: start;
}
</style>