2024-03-25 18:01:33 +07:00
|
|
|
|
<script setup lang="ts">
|
2024-08-08 11:53:58 +07:00
|
|
|
|
import { onMounted, reactive, ref, computed, watch } from "vue";
|
2024-04-11 08:33:35 +07:00
|
|
|
|
import { useQuasar } from "quasar";
|
|
|
|
|
|
import { useRoute } from "vue-router";
|
|
|
|
|
|
import { useCounterMixin } from "@/stores/mixin";
|
2024-04-09 13:03:18 +07:00
|
|
|
|
|
|
|
|
|
|
/**importType*/
|
2024-04-11 16:13:19 +07:00
|
|
|
|
import type {
|
2024-04-17 18:06:15 +07:00
|
|
|
|
DataOptionTechnique,
|
2024-04-11 16:13:19 +07:00
|
|
|
|
FormProjectDetail,
|
2024-08-08 11:53:58 +07:00
|
|
|
|
DataOption,
|
2024-04-11 16:13:19 +07:00
|
|
|
|
} from "@/modules/15_development/interface/index/Main";
|
2024-04-17 18:06:15 +07:00
|
|
|
|
import type { DataStrategic } from "@/modules/15_development/interface/response/Main";
|
2024-04-09 13:03:18 +07:00
|
|
|
|
|
|
|
|
|
|
import { useDevelopmentDataStore } from "@/modules/15_development/store/developmentStore";
|
2024-07-23 11:23:50 +07:00
|
|
|
|
|
2024-04-11 16:13:19 +07:00
|
|
|
|
import http from "@/plugins/http";
|
|
|
|
|
|
import config from "@/app.config";
|
2024-04-09 13:03:18 +07:00
|
|
|
|
|
2024-08-08 11:53:58 +07:00
|
|
|
|
const isChangeData = defineModel<boolean>("isChangeData", { required: true });
|
2024-08-06 16:04:29 +07:00
|
|
|
|
const props = defineProps({
|
|
|
|
|
|
prevStep: { type: Function, required: true },
|
|
|
|
|
|
nextStep: { type: Function, required: true },
|
2024-08-08 11:53:58 +07:00
|
|
|
|
onCheckChangeData: { type: Function, required: true },
|
2024-08-06 16:04:29 +07:00
|
|
|
|
});
|
2024-08-08 11:53:58 +07:00
|
|
|
|
|
2024-08-06 16:04:29 +07:00
|
|
|
|
const step = ref<string>("");
|
2024-07-16 09:39:57 +07:00
|
|
|
|
const reasonPlanned70 = ref<string>("");
|
|
|
|
|
|
const reasonPlanned20 = ref<string>("");
|
|
|
|
|
|
const reasonPlanned10 = ref<string>("");
|
|
|
|
|
|
const reasonActual70 = ref<string>("");
|
|
|
|
|
|
const reasonActual20 = ref<string>("");
|
|
|
|
|
|
const reasonActual10 = ref<string>("");
|
2024-07-15 17:49:38 +07:00
|
|
|
|
|
|
|
|
|
|
const checkOtherBox11 = computed<boolean>(() => {
|
|
|
|
|
|
return formData.developmentProjectTechniquePlanneds.includes("other1");
|
|
|
|
|
|
});
|
|
|
|
|
|
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");
|
2024-07-09 16:22:18 +07:00
|
|
|
|
});
|
2024-07-15 17:49:38 +07:00
|
|
|
|
const checkOtherBox22 = computed<boolean>(() => {
|
|
|
|
|
|
return formData.developmentProjectTechniqueActuals.includes("other2");
|
2024-07-09 16:22:18 +07:00
|
|
|
|
});
|
2024-07-15 17:49:38 +07:00
|
|
|
|
const checkOtherBox23 = computed<boolean>(() => {
|
|
|
|
|
|
return formData.developmentProjectTechniqueActuals.includes("other3");
|
|
|
|
|
|
});
|
|
|
|
|
|
|
2024-04-11 08:33:35 +07:00
|
|
|
|
const $q = useQuasar();
|
2024-04-09 13:03:18 +07:00
|
|
|
|
const store = useDevelopmentDataStore();
|
2024-04-11 08:33:35 +07:00
|
|
|
|
const route = useRoute();
|
|
|
|
|
|
const projectId = ref<string>(route.params.id.toLocaleString());
|
2024-08-08 11:53:58 +07:00
|
|
|
|
const { showLoader, hideLoader, messageError, date2Thai, diffDay } =
|
2024-04-11 16:13:19 +07:00
|
|
|
|
useCounterMixin();
|
2024-08-05 16:33:05 +07:00
|
|
|
|
const checkRoutePermission = ref<boolean>(
|
|
|
|
|
|
route.name == "developmentDetailPage"
|
|
|
|
|
|
);
|
2024-08-08 11:53:58 +07:00
|
|
|
|
const projectTypeOp = ref<any[]>([
|
|
|
|
|
|
{ label: "โครงการตามยุทธศาสตร์", value: "โครงการตามยุทธศาสตร์" },
|
|
|
|
|
|
{
|
|
|
|
|
|
label: "โครงการตามภารกิจประจำของหน่วยงาน",
|
|
|
|
|
|
value: "โครงการตามภารกิจประจำของหน่วยงาน",
|
|
|
|
|
|
},
|
|
|
|
|
|
{ label: "โครงการใหม่", value: "โครงการใหม่" },
|
|
|
|
|
|
{ label: "โครงการต่อเนื่อง", value: "โครงการต่อเนื่อง" },
|
2024-04-09 13:03:18 +07:00
|
|
|
|
]);
|
2024-04-11 12:43:50 +07:00
|
|
|
|
|
2024-07-23 11:23:50 +07:00
|
|
|
|
/** option */
|
2024-07-15 17:49:38 +07:00
|
|
|
|
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: "อื่น ๆ (ระบุ)",
|
|
|
|
|
|
},
|
|
|
|
|
|
]);
|
2024-07-23 11:23:50 +07:00
|
|
|
|
|
2024-07-15 17:49:38 +07:00
|
|
|
|
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: "อื่น ๆ (ระบุ)" },
|
2024-04-09 13:03:18 +07:00
|
|
|
|
]);
|
2024-04-11 08:33:35 +07:00
|
|
|
|
|
2024-04-11 16:13:19 +07:00
|
|
|
|
const formData = reactive<FormProjectDetail>({
|
|
|
|
|
|
developmentProjectTypes: [],
|
|
|
|
|
|
projectModal: null,
|
|
|
|
|
|
isBackPlanned: false,
|
|
|
|
|
|
isHoldPlanned: false,
|
|
|
|
|
|
projectDayBackPlanned: null,
|
|
|
|
|
|
projectDayHoldPlanned: null,
|
|
|
|
|
|
projectNigthHoldPlanned: null,
|
|
|
|
|
|
developmentProjectTechniquePlanneds: [],
|
|
|
|
|
|
isBackActual: false,
|
|
|
|
|
|
isHoldActual: false,
|
|
|
|
|
|
projectDayBackActual: null,
|
|
|
|
|
|
projectDayHoldActual: null,
|
|
|
|
|
|
projectNigthHoldActual: null,
|
|
|
|
|
|
developmentProjectTechniqueActuals: [],
|
2024-04-17 13:34:11 +07:00
|
|
|
|
projectModalActual: null,
|
2024-04-17 18:06:15 +07:00
|
|
|
|
projectModalPlanned: null,
|
2024-04-17 15:07:21 +07:00
|
|
|
|
strategyChildPlannedId: null, //id ยุทธศาสตร์เป้าหมายตามแผน
|
|
|
|
|
|
strategyChildPlannedNode: 0, //node ยุทธศาสตร์เป้าหมายตามแผน
|
|
|
|
|
|
strategyChildActualId: null, //id ยุทธศาสตร์เป้าหมายตามจริง
|
|
|
|
|
|
strategyChildActualNode: 0, //node ยุทธศาสตร์เป้าหมายตามจริง
|
2024-08-08 11:53:58 +07:00
|
|
|
|
dateStart: null, //วันที่เริ่มต้น
|
|
|
|
|
|
dateEnd: null, //วันที่สิ้นสุด
|
|
|
|
|
|
totalDate: null, //รวมระยะเวลา (วัน)
|
|
|
|
|
|
developmentAddresss: [{ address: "", provinceId: "" }], //ที่อยู่ ,จังหวัด
|
2024-04-11 16:13:19 +07:00
|
|
|
|
});
|
|
|
|
|
|
|
2024-04-17 15:07:21 +07:00
|
|
|
|
const nodes = ref<any>([]);
|
2024-04-11 17:32:49 +07:00
|
|
|
|
const filter = ref<string>("");
|
|
|
|
|
|
const filter2 = ref<string>("");
|
|
|
|
|
|
const notFound = ref<string>("ไม่พบข้อมูลที่ค้นหา");
|
|
|
|
|
|
const noData = ref<string>("ไม่มีข้อมูล");
|
2024-04-17 18:06:15 +07:00
|
|
|
|
const expanded = ref<Array<string | null>>([]);
|
|
|
|
|
|
const expanded2 = ref<Array<string | null>>([]);
|
2024-04-30 14:31:55 +07:00
|
|
|
|
|
2024-08-08 11:53:58 +07:00
|
|
|
|
/**
|
|
|
|
|
|
* ดึงข้อมูล จังหวัด
|
|
|
|
|
|
*/
|
|
|
|
|
|
function fetchProvince() {
|
|
|
|
|
|
http
|
|
|
|
|
|
.get(config.API.province)
|
|
|
|
|
|
.then((res) => {
|
|
|
|
|
|
const data = res.data.result;
|
|
|
|
|
|
provinceOp.value = data.map((item: DataOption) => ({
|
|
|
|
|
|
id: item.id,
|
|
|
|
|
|
name: item.name,
|
|
|
|
|
|
}));
|
|
|
|
|
|
provinceOpMain.value = provinceOp.value;
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch((e) => {
|
|
|
|
|
|
messageError($q, e);
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-04-30 14:31:55 +07:00
|
|
|
|
/** ดึงข้อมูลทั้งหมด */
|
2024-04-17 15:07:21 +07:00
|
|
|
|
function fetchData() {
|
2024-04-11 16:13:19 +07:00
|
|
|
|
showLoader();
|
2024-04-17 15:07:21 +07:00
|
|
|
|
http
|
2024-04-11 16:13:19 +07:00
|
|
|
|
.get(config.API.developmentMainTab("tab3", projectId.value))
|
|
|
|
|
|
.then((res) => {
|
|
|
|
|
|
const data = res.data.result;
|
|
|
|
|
|
formData.developmentProjectTypes = data.developmentProjectTypes;
|
|
|
|
|
|
formData.projectModal = data.projectModal;
|
|
|
|
|
|
formData.isBackPlanned = data.isBackPlanned;
|
|
|
|
|
|
formData.isHoldPlanned = data.isHoldPlanned;
|
|
|
|
|
|
formData.projectDayBackPlanned = data.projectDayBackPlanned;
|
|
|
|
|
|
formData.projectDayHoldPlanned = data.projectDayHoldPlanned;
|
|
|
|
|
|
formData.projectNigthHoldPlanned = data.projectNigthHoldPlanned;
|
2024-08-05 16:33:05 +07:00
|
|
|
|
formData.developmentProjectTechniquePlanneds =
|
|
|
|
|
|
data.developmentProjectTechniquePlanneds;
|
2024-04-11 16:13:19 +07:00
|
|
|
|
formData.isBackActual = data.isBackActual;
|
|
|
|
|
|
formData.isHoldActual = data.isHoldActual;
|
|
|
|
|
|
formData.projectDayBackActual = data.projectDayBackActual;
|
|
|
|
|
|
formData.projectDayHoldActual = data.projectDayHoldActual;
|
|
|
|
|
|
formData.projectNigthHoldActual = data.projectNigthHoldActual;
|
2024-08-05 16:33:05 +07:00
|
|
|
|
formData.developmentProjectTechniqueActuals =
|
|
|
|
|
|
data.developmentProjectTechniqueActuals;
|
2024-04-17 18:06:15 +07:00
|
|
|
|
formData.projectModalPlanned = data.projectModalPlanned;
|
2024-07-15 17:49:38 +07:00
|
|
|
|
formData.projectModalActual = data.projectModalActual;
|
2024-08-08 13:41:34 +07:00
|
|
|
|
formData.dateStart = data.dateStart;
|
|
|
|
|
|
formData.dateEnd = data.dateEnd;
|
|
|
|
|
|
formData.totalDate = data.totalDate;
|
|
|
|
|
|
formData.developmentAddresss = data.developmentAddresss.map((e: any) => ({
|
|
|
|
|
|
address: e.address,
|
|
|
|
|
|
provinceId: e.provinceId,
|
|
|
|
|
|
}));
|
2024-07-23 11:23:50 +07:00
|
|
|
|
|
2024-05-01 10:45:40 +07:00
|
|
|
|
const arrayExpanded = [
|
2024-04-17 18:06:15 +07:00
|
|
|
|
data.strategyChild1Planned,
|
|
|
|
|
|
data.strategyChild2Planned,
|
|
|
|
|
|
data.strategyChild3Planned,
|
|
|
|
|
|
data.strategyChild4Planned,
|
|
|
|
|
|
data.strategyChild5Planned,
|
|
|
|
|
|
];
|
2024-07-23 11:23:50 +07:00
|
|
|
|
|
2024-05-01 10:45:40 +07:00
|
|
|
|
const arrayExpanded2 = [
|
2024-04-17 18:06:15 +07:00
|
|
|
|
data.strategyChild1Actual,
|
|
|
|
|
|
data.strategyChild2Actual,
|
|
|
|
|
|
data.strategyChild3Actual,
|
|
|
|
|
|
data.strategyChild4Actual,
|
|
|
|
|
|
data.strategyChild5Actual,
|
|
|
|
|
|
];
|
2024-07-23 11:23:50 +07:00
|
|
|
|
|
2024-05-01 10:45:40 +07:00
|
|
|
|
const filteredArray = arrayExpanded.filter((item) => item !== null);
|
|
|
|
|
|
const filteredArray2 = arrayExpanded2.filter((item) => item !== null);
|
2024-04-17 18:06:15 +07:00
|
|
|
|
const lastItem = filteredArray[filteredArray.length - 1];
|
|
|
|
|
|
const lastItem2 = filteredArray2[filteredArray2.length - 1];
|
2024-07-23 11:23:50 +07:00
|
|
|
|
|
2024-04-17 18:06:15 +07:00
|
|
|
|
formData.strategyChildPlannedId =
|
|
|
|
|
|
lastItem !== undefined ? lastItem : null;
|
|
|
|
|
|
formData.strategyChildPlannedNode =
|
|
|
|
|
|
lastItem !== undefined ? filteredArray.length : null;
|
|
|
|
|
|
formData.strategyChildActualId =
|
|
|
|
|
|
lastItem2 !== undefined ? lastItem2 : null;
|
|
|
|
|
|
formData.strategyChildActualNode =
|
|
|
|
|
|
lastItem2 !== undefined ? filteredArray2.length : null;
|
2024-05-01 10:45:40 +07:00
|
|
|
|
|
|
|
|
|
|
expanded.value = arrayExpanded.filter((e) => e !== null).slice(0, -1);
|
|
|
|
|
|
expanded2.value = arrayExpanded2.filter((e) => e !== null).slice(0, -1);
|
2024-07-16 09:39:57 +07:00
|
|
|
|
reasonPlanned70.value = data.reasonPlanned70 ? data.reasonPlanned70 : "";
|
|
|
|
|
|
reasonPlanned20.value = data.reasonPlanned20 ? data.reasonPlanned20 : "";
|
|
|
|
|
|
reasonPlanned10.value = data.reasonPlanned10 ? data.reasonPlanned10 : "";
|
|
|
|
|
|
reasonActual70.value = data.reasonActual70 ? data.reasonActual70 : "";
|
|
|
|
|
|
reasonActual20.value = data.reasonActual20 ? data.reasonActual20 : "";
|
|
|
|
|
|
reasonActual10.value = data.reasonActual10 ? data.reasonActual10 : "";
|
2024-04-17 15:07:21 +07:00
|
|
|
|
})
|
|
|
|
|
|
.catch((err) => {
|
|
|
|
|
|
messageError($q, err);
|
|
|
|
|
|
})
|
|
|
|
|
|
.finally(() => {
|
|
|
|
|
|
hideLoader();
|
2024-08-08 11:53:58 +07:00
|
|
|
|
isChangeData.value = false;
|
2024-04-17 15:07:21 +07:00
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-04-30 14:31:55 +07:00
|
|
|
|
/** ดึงข้อมูล ยุทธศาสตร์/แผน */
|
2024-04-17 15:07:21 +07:00
|
|
|
|
function fetchTree() {
|
|
|
|
|
|
showLoader();
|
|
|
|
|
|
http
|
|
|
|
|
|
.get(config.API.devStrategy)
|
|
|
|
|
|
.then((res) => {
|
|
|
|
|
|
const data = res.data.result;
|
|
|
|
|
|
nodes.value = data;
|
2024-04-11 16:13:19 +07:00
|
|
|
|
})
|
|
|
|
|
|
.catch((err) => {
|
|
|
|
|
|
messageError($q, err);
|
|
|
|
|
|
})
|
|
|
|
|
|
.finally(() => {
|
|
|
|
|
|
hideLoader();
|
2024-08-08 11:53:58 +07:00
|
|
|
|
isChangeData.value = false;
|
2024-04-11 16:13:19 +07:00
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-04-30 14:31:55 +07:00
|
|
|
|
/** Main save */
|
2024-08-08 11:53:58 +07:00
|
|
|
|
function onSubmit() {
|
2024-08-06 16:04:29 +07:00
|
|
|
|
showLoader();
|
2024-08-08 11:53:58 +07:00
|
|
|
|
http
|
2024-08-06 16:04:29 +07:00
|
|
|
|
.put(config.API.developmentMainTab("tab3", projectId.value), {
|
2024-08-08 11:53:58 +07:00
|
|
|
|
...formData,
|
2024-08-06 16:04:29 +07:00
|
|
|
|
reasonPlanned70: reasonPlanned70.value,
|
|
|
|
|
|
reasonPlanned20: reasonPlanned20.value,
|
|
|
|
|
|
reasonPlanned10: reasonPlanned10.value,
|
|
|
|
|
|
reasonActual70: reasonActual70.value,
|
|
|
|
|
|
reasonActual20: reasonActual20.value,
|
|
|
|
|
|
reasonActual10: reasonActual10.value,
|
|
|
|
|
|
})
|
2024-08-08 11:53:58 +07:00
|
|
|
|
.then(() => {})
|
2024-08-06 16:04:29 +07:00
|
|
|
|
.catch((err) => {
|
|
|
|
|
|
messageError($q, err);
|
|
|
|
|
|
hideLoader();
|
2024-08-08 11:53:58 +07:00
|
|
|
|
})
|
|
|
|
|
|
.finally(() => {
|
|
|
|
|
|
isChangeData.value = false;
|
2024-08-06 16:04:29 +07:00
|
|
|
|
});
|
2024-04-11 08:33:35 +07:00
|
|
|
|
}
|
2024-04-11 16:13:19 +07:00
|
|
|
|
|
2024-04-30 14:31:55 +07:00
|
|
|
|
/**
|
|
|
|
|
|
* update data
|
|
|
|
|
|
* @param data ข้อมูลยุทธศาสตร์/แผน
|
|
|
|
|
|
* @param type 1/2 เพื่อเเยก ยุทธศาสตร์1 ยุทธศาสตร์2
|
|
|
|
|
|
*/
|
2024-04-17 18:06:15 +07:00
|
|
|
|
function updateSelected(data: DataStrategic, type: string) {
|
2024-04-11 17:32:49 +07:00
|
|
|
|
if (type === "1") {
|
2024-04-17 15:07:21 +07:00
|
|
|
|
formData.strategyChildPlannedId = data.id;
|
|
|
|
|
|
formData.strategyChildPlannedNode = data.level;
|
2024-04-11 17:32:49 +07:00
|
|
|
|
} else if (type === "2") {
|
2024-04-17 15:07:21 +07:00
|
|
|
|
formData.strategyChildActualId = data.id;
|
|
|
|
|
|
formData.strategyChildActualNode = data.level;
|
2024-04-11 17:32:49 +07:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-08-08 11:53:58 +07:00
|
|
|
|
|
|
|
|
|
|
const provinceOp = ref<DataOption[]>([]);
|
|
|
|
|
|
const provinceOpMain = ref<DataOption[]>([]);
|
|
|
|
|
|
|
|
|
|
|
|
/** เพิ่มข้อมูลสถานที่ดำเนินการ */
|
|
|
|
|
|
function onClickAddLocation() {
|
|
|
|
|
|
const data = {
|
|
|
|
|
|
address: "",
|
|
|
|
|
|
provinceId: "",
|
|
|
|
|
|
};
|
|
|
|
|
|
formData.developmentAddresss.push(data);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/** ลบข้อมูล */
|
|
|
|
|
|
function onClickDeleteLocation(index: number) {
|
|
|
|
|
|
formData.developmentAddresss.splice(index, 1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Fuction Filter จังหวัด
|
|
|
|
|
|
* @param val ค่าตัวพิมพ์ค้นหา
|
|
|
|
|
|
* @param update ทุกครั้งที่พิมพ์ค่า
|
|
|
|
|
|
*/
|
|
|
|
|
|
const filterSelector = (val: string, update: Function) => {
|
|
|
|
|
|
update(() => {
|
|
|
|
|
|
provinceOp.value = provinceOpMain.value.filter(
|
|
|
|
|
|
(v: DataOption) => v.name.indexOf(val) > -1
|
|
|
|
|
|
);
|
|
|
|
|
|
});
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
watch(
|
|
|
|
|
|
() => [formData.dateStart, formData.dateEnd],
|
|
|
|
|
|
() => {
|
|
|
|
|
|
if (formData.dateStart && formData.dateEnd) {
|
|
|
|
|
|
formData.totalDate = diffDay(formData.dateStart, formData.dateEnd);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* function ไปยัง Tab ค่อไป
|
|
|
|
|
|
*/
|
|
|
|
|
|
function onNextTab() {
|
|
|
|
|
|
step.value == "next" ? props.nextStep() : props.prevStep();
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
|
|
|
* ดึงข้อมูลเมื่อคอมโพเนนต์โหลดเสร็จสมบูรณ์
|
|
|
|
|
|
*/
|
|
|
|
|
|
onMounted(async () => {
|
|
|
|
|
|
fetchProvince();
|
2024-04-11 16:13:19 +07:00
|
|
|
|
fetchData();
|
2024-04-17 15:07:21 +07:00
|
|
|
|
fetchTree();
|
2024-04-11 16:13:19 +07:00
|
|
|
|
});
|
2024-08-08 11:53:58 +07:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* เรียก function ไปใช่หน้าหลัก
|
|
|
|
|
|
*/
|
|
|
|
|
|
defineExpose({
|
|
|
|
|
|
onSubmit,
|
|
|
|
|
|
});
|
2024-03-25 18:01:33 +07:00
|
|
|
|
</script>
|
2024-04-11 08:33:35 +07:00
|
|
|
|
|
2024-03-25 18:01:33 +07:00
|
|
|
|
<template>
|
2024-08-08 11:53:58 +07:00
|
|
|
|
<q-form greedy @submit.prevent @validation-success="onNextTab">
|
2024-06-12 13:40:51 +07:00
|
|
|
|
<div class="row q-pa-sm">
|
2024-04-11 12:43:50 +07:00
|
|
|
|
<div class="col-12">
|
2024-08-08 11:53:58 +07:00
|
|
|
|
<div class="col-12 text-bold">ประเภทโครงการ</div>
|
|
|
|
|
|
<q-option-group
|
|
|
|
|
|
:disable="checkRoutePermission"
|
2024-04-11 08:33:35 +07:00
|
|
|
|
:options="projectTypeOp"
|
2024-08-08 11:53:58 +07:00
|
|
|
|
type="checkbox"
|
|
|
|
|
|
v-model="formData.developmentProjectTypes"
|
|
|
|
|
|
color="primary"
|
|
|
|
|
|
keep-color
|
|
|
|
|
|
@update:model-value="props.onCheckChangeData()"
|
2024-04-11 08:33:35 +07:00
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
2024-06-12 13:40:51 +07:00
|
|
|
|
|
2024-08-08 11:53:58 +07:00
|
|
|
|
<!-- ความสอดคล้องหรือเชื่อมโยงกับยุทธศาสตร์/แผน -->
|
2024-07-03 14:47:53 +07:00
|
|
|
|
<q-card bordered class="col-12 q-my-sm">
|
|
|
|
|
|
<div
|
2024-08-08 11:53:58 +07:00
|
|
|
|
class="col-xs-12 col-sm-12 text-weight-medium bg-grey-1 q-py-xs q-px-md"
|
2024-07-03 14:47:53 +07:00
|
|
|
|
>
|
|
|
|
|
|
ความสอดคล้องหรือเชื่อมโยงกับยุทธศาสตร์/แผน
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<q-separator />
|
2024-04-11 12:43:50 +07:00
|
|
|
|
|
2024-07-03 14:47:53 +07:00
|
|
|
|
<q-card-section>
|
|
|
|
|
|
<div class="row col-12 q-col-gutter-sm">
|
|
|
|
|
|
<div class="col-6">
|
|
|
|
|
|
<q-card bordered class="col-12">
|
|
|
|
|
|
<div
|
2024-08-08 11:53:58 +07:00
|
|
|
|
class="col-xs-12 col-sm-12 text-weight-medium bg-grey-3 q-py-xs q-px-md"
|
2024-04-26 12:13:35 +07:00
|
|
|
|
>
|
2024-07-03 14:47:53 +07:00
|
|
|
|
ยุทธศาสตร์/แผน
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<q-separator />
|
|
|
|
|
|
|
|
|
|
|
|
<q-card-section class="q-pa-sm">
|
|
|
|
|
|
<q-input
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:readonly="checkRoutePermission"
|
2024-07-03 14:47:53 +07:00
|
|
|
|
dense
|
|
|
|
|
|
outlined
|
|
|
|
|
|
v-model="filter"
|
|
|
|
|
|
label="ค้นหา"
|
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
>
|
|
|
|
|
|
<template v-slot:append>
|
|
|
|
|
|
<q-icon
|
|
|
|
|
|
v-if="filter !== ''"
|
|
|
|
|
|
name="clear"
|
|
|
|
|
|
class="cursor-pointer"
|
|
|
|
|
|
@click="filter = ''"
|
|
|
|
|
|
/>
|
|
|
|
|
|
<q-icon v-else name="search" color="grey-5" />
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</q-input>
|
|
|
|
|
|
<q-tree
|
|
|
|
|
|
dense
|
|
|
|
|
|
:nodes="nodes"
|
|
|
|
|
|
selected-color="primary"
|
|
|
|
|
|
node-key="id"
|
|
|
|
|
|
label-key="name"
|
|
|
|
|
|
:filter="filter"
|
|
|
|
|
|
:no-results-label="notFound"
|
|
|
|
|
|
:no-nodes-label="noData"
|
|
|
|
|
|
v-model:expanded="expanded"
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:style="checkRoutePermission ? 'pointer-events: none;' : ''"
|
2024-07-03 14:47:53 +07:00
|
|
|
|
>
|
|
|
|
|
|
<template v-slot:default-header="prop">
|
|
|
|
|
|
<q-item
|
|
|
|
|
|
clickable
|
2024-08-08 11:53:58 +07:00
|
|
|
|
@click.stop="
|
|
|
|
|
|
updateSelected(prop.node, '1'),
|
|
|
|
|
|
props.onCheckChangeData()
|
|
|
|
|
|
"
|
2024-07-09 10:39:49 +07:00
|
|
|
|
:active="
|
|
|
|
|
|
formData.strategyChildPlannedId == prop.node.id
|
|
|
|
|
|
"
|
2024-07-03 14:47:53 +07:00
|
|
|
|
active-class="my-list-link text-primary text-weight-medium"
|
|
|
|
|
|
class="row col-12 items-center text-dark q-py-xs q-pl-sm rounded-borders my-list"
|
|
|
|
|
|
>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<div class="text-weight-medium">
|
|
|
|
|
|
{{ prop.node.name }}
|
|
|
|
|
|
</div>
|
2024-04-17 13:34:11 +07:00
|
|
|
|
</div>
|
2024-07-03 14:47:53 +07:00
|
|
|
|
</q-item>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</q-tree>
|
|
|
|
|
|
</q-card-section>
|
|
|
|
|
|
</q-card>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-6">
|
|
|
|
|
|
<q-card bordered class="col-12">
|
|
|
|
|
|
<div
|
2024-08-08 11:53:58 +07:00
|
|
|
|
class="col-xs-12 col-sm-12 text-weight-medium bg-grey-3 q-py-xs q-px-md"
|
2024-04-17 13:34:11 +07:00
|
|
|
|
>
|
2024-07-03 14:47:53 +07:00
|
|
|
|
ยุทธศาสตร์/แผน
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<q-separator />
|
|
|
|
|
|
|
|
|
|
|
|
<q-card-section class="q-pa-sm">
|
|
|
|
|
|
<q-input
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:readonly="checkRoutePermission"
|
2024-07-03 14:47:53 +07:00
|
|
|
|
dense
|
|
|
|
|
|
outlined
|
|
|
|
|
|
v-model="filter2"
|
|
|
|
|
|
label="ค้นหา"
|
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
>
|
|
|
|
|
|
<template v-slot:append>
|
|
|
|
|
|
<q-icon
|
|
|
|
|
|
v-if="filter2 !== ''"
|
|
|
|
|
|
name="clear"
|
|
|
|
|
|
class="cursor-pointer"
|
|
|
|
|
|
@click="filter2 = ''"
|
|
|
|
|
|
/>
|
|
|
|
|
|
<q-icon v-else name="search" color="grey-5" />
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</q-input>
|
|
|
|
|
|
<q-tree
|
|
|
|
|
|
dense
|
|
|
|
|
|
:nodes="nodes"
|
|
|
|
|
|
node-key="id"
|
|
|
|
|
|
label-key="name"
|
|
|
|
|
|
:filter="filter2"
|
|
|
|
|
|
:no-results-label="notFound"
|
|
|
|
|
|
:no-nodes-label="noData"
|
|
|
|
|
|
v-model:expanded="expanded2"
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:style="checkRoutePermission ? 'pointer-events: none;' : ''"
|
2024-07-03 14:47:53 +07:00
|
|
|
|
>
|
|
|
|
|
|
<template v-slot:default-header="prop">
|
|
|
|
|
|
<q-item
|
|
|
|
|
|
clickable
|
2024-08-08 11:53:58 +07:00
|
|
|
|
@click.stop="
|
|
|
|
|
|
updateSelected(prop.node, '2'),
|
|
|
|
|
|
props.onCheckChangeData()
|
|
|
|
|
|
"
|
2024-07-03 14:47:53 +07:00
|
|
|
|
:active="formData.strategyChildActualId == prop.node.id"
|
|
|
|
|
|
active-class="my-list-link text-primary text-weight-medium"
|
|
|
|
|
|
class="row col-12 items-center text-dark q-py-xs q-pl-sm rounded-borders my-list"
|
|
|
|
|
|
>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<div class="text-weight-medium">
|
|
|
|
|
|
{{ prop.node.name }}
|
|
|
|
|
|
</div>
|
2024-04-17 13:34:11 +07:00
|
|
|
|
</div>
|
2024-07-03 14:47:53 +07:00
|
|
|
|
</q-item>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</q-tree>
|
|
|
|
|
|
</q-card-section>
|
|
|
|
|
|
</q-card>
|
|
|
|
|
|
</div>
|
2024-04-11 16:13:19 +07:00
|
|
|
|
</div>
|
2024-07-03 14:47:53 +07:00
|
|
|
|
</q-card-section>
|
|
|
|
|
|
</q-card>
|
2024-04-11 17:03:50 +07:00
|
|
|
|
|
2024-08-08 11:53:58 +07:00
|
|
|
|
<!-- เวลาและสถานที่ดำเนินการ -->
|
2024-07-03 14:47:53 +07:00
|
|
|
|
<q-card bordered class="col-12 q-my-sm">
|
|
|
|
|
|
<div
|
2024-08-08 11:53:58 +07:00
|
|
|
|
class="col-xs-12 col-sm-12 text-weight-medium bg-grey-1 q-py-xs q-px-md"
|
|
|
|
|
|
>
|
|
|
|
|
|
เวลาและสถานที่ดำเนินการ
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<q-separator />
|
|
|
|
|
|
<q-card-section>
|
|
|
|
|
|
<div class="row col-12 q-col-gutter-sm">
|
|
|
|
|
|
<div class="col-12 text-bold">ระยะเวลาดำเนินการ</div>
|
|
|
|
|
|
<div class="row col-12 q-col-gutter-sm">
|
|
|
|
|
|
<div class="col-12 col-sm-6 col-md-3">
|
|
|
|
|
|
<datepicker
|
|
|
|
|
|
menu-class-name="modalfix"
|
|
|
|
|
|
v-model="formData.dateStart"
|
|
|
|
|
|
:locale="'th'"
|
|
|
|
|
|
autoApply
|
|
|
|
|
|
:readonly="checkRoutePermission"
|
|
|
|
|
|
:enableTimePicker="false"
|
|
|
|
|
|
week-start="0"
|
|
|
|
|
|
:max-date="formData.dateEnd"
|
|
|
|
|
|
@update:model-value="props.onCheckChangeData()"
|
|
|
|
|
|
>
|
|
|
|
|
|
<template #year="{ year }">{{ year + 543 }}</template>
|
|
|
|
|
|
<template #year-overlay-value="{ value }">{{
|
|
|
|
|
|
parseInt(value + 543)
|
|
|
|
|
|
}}</template>
|
|
|
|
|
|
<template #trigger>
|
|
|
|
|
|
<q-input
|
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
dense
|
|
|
|
|
|
:readonly="checkRoutePermission"
|
|
|
|
|
|
outlined
|
|
|
|
|
|
:model-value="
|
|
|
|
|
|
formData.dateStart
|
|
|
|
|
|
? date2Thai(formData.dateStart)
|
|
|
|
|
|
: null
|
|
|
|
|
|
"
|
|
|
|
|
|
:label="`${'วันที่เริ่มต้น'}`"
|
|
|
|
|
|
>
|
|
|
|
|
|
<template v-slot:prepend>
|
|
|
|
|
|
<q-icon
|
|
|
|
|
|
name="event"
|
|
|
|
|
|
class="cursor-pointer"
|
|
|
|
|
|
style="color: var(--q-primary)"
|
|
|
|
|
|
>
|
|
|
|
|
|
</q-icon>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</q-input>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</datepicker>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="col-12 col-sm-6 col-md-3">
|
|
|
|
|
|
<datepicker
|
|
|
|
|
|
menu-class-name="modalfix"
|
|
|
|
|
|
v-model="formData.dateEnd"
|
|
|
|
|
|
:locale="'th'"
|
|
|
|
|
|
:readonly="checkRoutePermission"
|
|
|
|
|
|
autoApply
|
|
|
|
|
|
:enableTimePicker="false"
|
|
|
|
|
|
week-start="0"
|
|
|
|
|
|
:min-date="formData.dateStart"
|
|
|
|
|
|
@update:model-value="props.onCheckChangeData()"
|
|
|
|
|
|
>
|
|
|
|
|
|
<template #year="{ year }">{{ year + 543 }}</template>
|
|
|
|
|
|
<template #year-overlay-value="{ value }">{{
|
|
|
|
|
|
parseInt(value + 543)
|
|
|
|
|
|
}}</template>
|
|
|
|
|
|
<template #trigger>
|
|
|
|
|
|
<q-input
|
|
|
|
|
|
dense
|
|
|
|
|
|
:readonly="checkRoutePermission"
|
|
|
|
|
|
outlined
|
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
:model-value="
|
|
|
|
|
|
formData.dateEnd ? date2Thai(formData.dateEnd) : null
|
|
|
|
|
|
"
|
|
|
|
|
|
:label="`${'วันที่สิ้นสุด'}`"
|
|
|
|
|
|
>
|
|
|
|
|
|
<template v-slot:prepend>
|
|
|
|
|
|
<q-icon
|
|
|
|
|
|
name="event"
|
|
|
|
|
|
class="cursor-pointer"
|
|
|
|
|
|
style="color: var(--q-primary)"
|
|
|
|
|
|
>
|
|
|
|
|
|
</q-icon>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</q-input>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</datepicker>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="col-12 col-sm-6 col-md-3">
|
|
|
|
|
|
<q-input
|
|
|
|
|
|
dense
|
|
|
|
|
|
:readonly="checkRoutePermission"
|
|
|
|
|
|
outlined
|
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
label="รวมระยะเวลา (วัน)"
|
|
|
|
|
|
v-model="formData.totalDate"
|
|
|
|
|
|
mask="#"
|
|
|
|
|
|
reverse-fill-mask
|
|
|
|
|
|
@update:model-value="props.onCheckChangeData()"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="col-12 q-mt-md">
|
|
|
|
|
|
<span class="text-bold">สถานที่ดำเนินการ</span>
|
|
|
|
|
|
<q-btn
|
|
|
|
|
|
v-if="!checkRoutePermission"
|
|
|
|
|
|
dense
|
|
|
|
|
|
flat
|
|
|
|
|
|
round
|
|
|
|
|
|
color="primary"
|
|
|
|
|
|
icon="add"
|
|
|
|
|
|
@click="onClickAddLocation"
|
|
|
|
|
|
>
|
|
|
|
|
|
<q-tooltip>เพิ่มสถานที่ดำเนินการ</q-tooltip>
|
|
|
|
|
|
</q-btn>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div
|
|
|
|
|
|
class="col-12"
|
|
|
|
|
|
v-for="(item, index) in formData.developmentAddresss"
|
|
|
|
|
|
>
|
|
|
|
|
|
<div class="row q-col-gutter-sm">
|
|
|
|
|
|
<div class="col-8">
|
|
|
|
|
|
<q-input
|
|
|
|
|
|
:readonly="checkRoutePermission"
|
|
|
|
|
|
outlined
|
|
|
|
|
|
dense
|
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
v-model="formData.developmentAddresss[index].address"
|
|
|
|
|
|
label="ชื่อสถานที่"
|
|
|
|
|
|
@update:model-value="props.onCheckChangeData()"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-3">
|
|
|
|
|
|
<q-select
|
|
|
|
|
|
:readonly="checkRoutePermission"
|
|
|
|
|
|
outlined
|
|
|
|
|
|
dense
|
|
|
|
|
|
v-model="formData.developmentAddresss[index].provinceId"
|
|
|
|
|
|
label="จังหวัด"
|
|
|
|
|
|
:options="provinceOp"
|
|
|
|
|
|
option-label="name"
|
|
|
|
|
|
option-value="id"
|
|
|
|
|
|
emit-value
|
|
|
|
|
|
map-options
|
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
use-input
|
|
|
|
|
|
@update:model-value="props.onCheckChangeData()"
|
|
|
|
|
|
@filter="
|
|
|
|
|
|
(inputValue:string, doneFn:Function) =>
|
|
|
|
|
|
filterSelector(inputValue, doneFn, )
|
|
|
|
|
|
|
|
|
|
|
|
"
|
|
|
|
|
|
>
|
|
|
|
|
|
<template v-slot:no-option>
|
|
|
|
|
|
<q-item>
|
|
|
|
|
|
<q-item-section class="text-grey">
|
|
|
|
|
|
ไม่พบข้อมูล
|
|
|
|
|
|
</q-item-section>
|
|
|
|
|
|
</q-item>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</q-select>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-1 text-center">
|
|
|
|
|
|
<q-btn
|
|
|
|
|
|
v-if="index !== 0 && !checkRoutePermission"
|
|
|
|
|
|
dense
|
|
|
|
|
|
flat
|
|
|
|
|
|
round
|
|
|
|
|
|
color="red"
|
|
|
|
|
|
icon="delete"
|
|
|
|
|
|
@click="
|
|
|
|
|
|
onClickDeleteLocation(index), props.onCheckChangeData()
|
|
|
|
|
|
"
|
|
|
|
|
|
>
|
|
|
|
|
|
<q-tooltip>ลบ</q-tooltip></q-btn
|
|
|
|
|
|
>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</q-card-section>
|
|
|
|
|
|
</q-card>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- รูปแบบโครงการ -->
|
|
|
|
|
|
<q-card bordered class="col-12 q-my-sm">
|
|
|
|
|
|
<div
|
|
|
|
|
|
class="col-xs-12 col-sm-12 text-weight-medium bg-grey-1 q-py-xs q-px-md"
|
2024-07-03 14:47:53 +07:00
|
|
|
|
>
|
|
|
|
|
|
รูปแบบโครงการ
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<q-separator />
|
2024-04-17 13:34:11 +07:00
|
|
|
|
|
2024-07-03 14:47:53 +07:00
|
|
|
|
<q-card-section>
|
|
|
|
|
|
<div class="row col-12 q-col-gutter-sm">
|
2024-07-15 17:49:38 +07:00
|
|
|
|
<div class="col-12 text-bold">รูปแบบโครงการตามแผน</div>
|
2024-07-03 14:47:53 +07:00
|
|
|
|
|
2024-07-15 17:49:38 +07:00
|
|
|
|
<div class="row col-12 q-col-gutter-sm">
|
|
|
|
|
|
<div class="col-12 col-md-3">
|
|
|
|
|
|
<q-checkbox
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:disable="
|
|
|
|
|
|
store.projectStatus === 'FINISH' || checkRoutePermission
|
|
|
|
|
|
"
|
2024-04-17 13:34:11 +07:00
|
|
|
|
keep-color
|
|
|
|
|
|
color="primary"
|
|
|
|
|
|
dense
|
2024-07-15 17:49:38 +07:00
|
|
|
|
value="GO_BLACK"
|
|
|
|
|
|
label="ไป-กลับ"
|
|
|
|
|
|
v-model="formData.isBackPlanned"
|
2024-08-08 11:53:58 +07:00
|
|
|
|
@update:model-value="props.onCheckChangeData()"
|
2024-07-15 17:49:38 +07:00
|
|
|
|
></q-checkbox>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-12 col-md-4">
|
|
|
|
|
|
<q-input
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:readonly="
|
|
|
|
|
|
store.projectStatus === 'FINISH' || checkRoutePermission
|
|
|
|
|
|
"
|
2024-07-15 17:49:38 +07:00
|
|
|
|
dense
|
|
|
|
|
|
outlined
|
|
|
|
|
|
v-model="formData.projectDayBackPlanned"
|
|
|
|
|
|
label="จำนวน (วัน)"
|
|
|
|
|
|
mask="#"
|
|
|
|
|
|
reverse-fill-mask
|
|
|
|
|
|
class="inputgreen"
|
2024-08-08 11:53:58 +07:00
|
|
|
|
@update:model-value="props.onCheckChangeData()"
|
2024-04-17 13:34:11 +07:00
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
2024-07-15 17:49:38 +07:00
|
|
|
|
</div>
|
|
|
|
|
|
<div class="row col-12 q-col-gutter-sm">
|
|
|
|
|
|
<div class="col-12 col-md-3">
|
|
|
|
|
|
<q-checkbox
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:disable="
|
|
|
|
|
|
store.projectStatus === 'FINISH' || checkRoutePermission
|
|
|
|
|
|
"
|
2024-07-15 17:49:38 +07:00
|
|
|
|
keep-color
|
|
|
|
|
|
color="primary"
|
|
|
|
|
|
dense
|
|
|
|
|
|
value="HOLD"
|
|
|
|
|
|
label="พักค้าง"
|
|
|
|
|
|
v-model="formData.isHoldPlanned"
|
2024-08-08 11:53:58 +07:00
|
|
|
|
@update:model-value="props.onCheckChangeData()"
|
2024-07-15 17:49:38 +07:00
|
|
|
|
></q-checkbox>
|
2024-07-09 10:39:49 +07:00
|
|
|
|
</div>
|
2024-07-15 17:49:38 +07:00
|
|
|
|
<div class="col-12 col-md-4">
|
2024-04-17 13:34:11 +07:00
|
|
|
|
<q-input
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:readonly="
|
|
|
|
|
|
store.projectStatus === 'FINISH' || checkRoutePermission
|
|
|
|
|
|
"
|
2024-04-17 13:34:11 +07:00
|
|
|
|
dense
|
|
|
|
|
|
outlined
|
2024-07-15 17:49:38 +07:00
|
|
|
|
v-model="formData.projectDayHoldPlanned"
|
|
|
|
|
|
label="จำนวน (วัน)"
|
2024-04-17 13:34:11 +07:00
|
|
|
|
mask="#"
|
|
|
|
|
|
reverse-fill-mask
|
2024-07-03 14:47:53 +07:00
|
|
|
|
class="inputgreen"
|
2024-08-08 11:53:58 +07:00
|
|
|
|
@update:model-value="props.onCheckChangeData()"
|
2024-04-17 13:34:11 +07:00
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
2024-07-15 17:49:38 +07:00
|
|
|
|
<div class="col-12 col-md-4">
|
|
|
|
|
|
<q-input
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:readonly="
|
|
|
|
|
|
store.projectStatus === 'FINISH' || checkRoutePermission
|
|
|
|
|
|
"
|
2024-07-15 17:49:38 +07:00
|
|
|
|
dense
|
|
|
|
|
|
outlined
|
|
|
|
|
|
v-model="formData.projectNigthHoldPlanned"
|
|
|
|
|
|
label="จำนวน (คืน)"
|
|
|
|
|
|
mask="#"
|
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
reverse-fill-mask
|
2024-08-08 11:53:58 +07:00
|
|
|
|
@update:model-value="props.onCheckChangeData()"
|
2024-07-15 17:49:38 +07:00
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
2024-04-11 17:03:50 +07:00
|
|
|
|
</div>
|
2024-07-15 17:49:38 +07:00
|
|
|
|
<div class="col-12 q-py-md">
|
|
|
|
|
|
<div class="row q-col-gutter-md">
|
2024-07-19 13:10:14 +07:00
|
|
|
|
<div class="col-12">
|
2024-07-23 11:23:50 +07:00
|
|
|
|
<q-label class="text-bold"
|
|
|
|
|
|
>เทคนิควิธีการที่ใช้ในการพัฒนา</q-label
|
|
|
|
|
|
>
|
2024-07-19 13:10:14 +07:00
|
|
|
|
</div>
|
2024-07-15 17:49:38 +07:00
|
|
|
|
<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"
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:disable="
|
|
|
|
|
|
store.projectStatus === 'FINISH' || checkRoutePermission
|
|
|
|
|
|
"
|
2024-07-03 14:47:53 +07:00
|
|
|
|
keep-color
|
|
|
|
|
|
color="primary"
|
|
|
|
|
|
dense
|
2024-07-15 17:49:38 +07:00
|
|
|
|
v-model="formData.developmentProjectTechniquePlanneds"
|
|
|
|
|
|
:options="projectTechniquesOp1"
|
|
|
|
|
|
type="checkbox"
|
2024-08-08 11:53:58 +07:00
|
|
|
|
@update:model-value="props.onCheckChangeData()"
|
2024-07-03 14:47:53 +07:00
|
|
|
|
/>
|
2024-07-16 13:52:34 +07:00
|
|
|
|
<div class="row" v-if="checkOtherBox11">
|
|
|
|
|
|
<div class="offset-4 col-8 q-mt-sm relative-position">
|
|
|
|
|
|
<div class="other_custom_input">
|
|
|
|
|
|
<q-input
|
2024-08-08 11:53:58 +07:00
|
|
|
|
@update:model-value="props.onCheckChangeData()"
|
2024-07-16 13:52:34 +07:00
|
|
|
|
v-model="reasonPlanned70"
|
|
|
|
|
|
dense
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:readonly="
|
|
|
|
|
|
store.projectStatus === 'FINISH' ||
|
|
|
|
|
|
checkRoutePermission
|
|
|
|
|
|
"
|
2024-07-16 13:52:34 +07:00
|
|
|
|
outlined
|
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
label="กรุณาระบุ"
|
|
|
|
|
|
></q-input>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-07-15 17:49:38 +07:00
|
|
|
|
</div>
|
2024-07-03 14:47:53 +07:00
|
|
|
|
</div>
|
2024-07-15 17:49:38 +07:00
|
|
|
|
<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"
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:disable="
|
|
|
|
|
|
store.projectStatus === 'FINISH' || checkRoutePermission
|
|
|
|
|
|
"
|
2024-07-03 14:47:53 +07:00
|
|
|
|
keep-color
|
|
|
|
|
|
color="primary"
|
|
|
|
|
|
dense
|
2024-07-15 17:49:38 +07:00
|
|
|
|
v-model="formData.developmentProjectTechniquePlanneds"
|
|
|
|
|
|
:options="projectTechniquesOp2"
|
|
|
|
|
|
type="checkbox"
|
2024-08-08 11:53:58 +07:00
|
|
|
|
@update:model-value="props.onCheckChangeData()"
|
2024-07-15 17:49:38 +07:00
|
|
|
|
/>
|
2024-07-16 13:52:34 +07:00
|
|
|
|
<div class="row" v-if="checkOtherBox12">
|
|
|
|
|
|
<div class="offset-4 col-8 q-mt-sm relative-position">
|
|
|
|
|
|
<div class="other_custom_input">
|
|
|
|
|
|
<q-input
|
|
|
|
|
|
v-model="reasonPlanned20"
|
|
|
|
|
|
dense
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:readonly="
|
|
|
|
|
|
store.projectStatus === 'FINISH' ||
|
|
|
|
|
|
checkRoutePermission
|
|
|
|
|
|
"
|
2024-07-16 13:52:34 +07:00
|
|
|
|
outlined
|
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
label="กรุณาระบุ"
|
2024-08-08 11:53:58 +07:00
|
|
|
|
@update:model-value="props.onCheckChangeData()"
|
2024-07-16 13:52:34 +07:00
|
|
|
|
></q-input>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-07-15 17:49:38 +07:00
|
|
|
|
</div>
|
2024-07-03 14:47:53 +07:00
|
|
|
|
</div>
|
2024-07-15 17:49:38 +07:00
|
|
|
|
<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"
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:disable="
|
|
|
|
|
|
store.projectStatus === 'FINISH' || checkRoutePermission
|
|
|
|
|
|
"
|
2024-07-15 17:49:38 +07:00
|
|
|
|
keep-color
|
|
|
|
|
|
color="primary"
|
2024-07-03 14:47:53 +07:00
|
|
|
|
dense
|
2024-07-15 17:49:38 +07:00
|
|
|
|
v-model="formData.developmentProjectTechniquePlanneds"
|
|
|
|
|
|
:options="projectTechniquesOp3"
|
|
|
|
|
|
type="checkbox"
|
2024-08-08 11:53:58 +07:00
|
|
|
|
@update:model-value="props.onCheckChangeData()"
|
2024-07-03 14:47:53 +07:00
|
|
|
|
/>
|
2024-07-16 13:52:34 +07:00
|
|
|
|
<div class="row" v-if="checkOtherBox13">
|
|
|
|
|
|
<div class="offset-4 col-8 q-mt-sm relative-position">
|
|
|
|
|
|
<div class="other_custom_input">
|
|
|
|
|
|
<q-input
|
|
|
|
|
|
v-model="reasonPlanned10"
|
|
|
|
|
|
dense
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:readonly="
|
|
|
|
|
|
store.projectStatus === 'FINISH' ||
|
|
|
|
|
|
checkRoutePermission
|
|
|
|
|
|
"
|
2024-07-16 13:52:34 +07:00
|
|
|
|
outlined
|
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
label="กรุณาระบุ"
|
2024-08-08 11:53:58 +07:00
|
|
|
|
@update:model-value="props.onCheckChangeData()"
|
2024-07-16 13:52:34 +07:00
|
|
|
|
></q-input>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-07-15 17:49:38 +07:00
|
|
|
|
</div>
|
2024-07-03 14:47:53 +07:00
|
|
|
|
</div>
|
2024-07-15 17:49:38 +07:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-12 col-sm-6 col-md-4">
|
|
|
|
|
|
<q-input
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:readonly="
|
|
|
|
|
|
store.projectStatus === 'FINISH' || checkRoutePermission
|
|
|
|
|
|
"
|
2024-07-15 17:49:38 +07:00
|
|
|
|
dense
|
|
|
|
|
|
outlined
|
|
|
|
|
|
v-model="formData.projectModalPlanned"
|
|
|
|
|
|
label="จำนวน (รุ่น)"
|
|
|
|
|
|
mask="#"
|
|
|
|
|
|
reverse-fill-mask
|
|
|
|
|
|
class="inputgreen"
|
2024-08-08 11:53:58 +07:00
|
|
|
|
@update:model-value="props.onCheckChangeData()"
|
2024-07-15 17:49:38 +07:00
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
2024-07-16 13:52:34 +07:00
|
|
|
|
|
2024-07-15 17:49:38 +07:00
|
|
|
|
<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
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:disable="checkRoutePermission"
|
2024-07-15 17:49:38 +07:00
|
|
|
|
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
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:readonly="checkRoutePermission"
|
2024-07-15 17:49:38 +07:00
|
|
|
|
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
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:disable="checkRoutePermission"
|
2024-07-15 17:49:38 +07:00
|
|
|
|
keep-color
|
|
|
|
|
|
color="primary"
|
|
|
|
|
|
dense
|
|
|
|
|
|
value="HOLD"
|
|
|
|
|
|
label="พักค้าง"
|
|
|
|
|
|
v-model="formData.isHoldActual"
|
|
|
|
|
|
></q-checkbox>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-12 col-md-4">
|
|
|
|
|
|
<q-input
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:readonly="checkRoutePermission"
|
2024-07-15 17:49:38 +07:00
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
dense
|
|
|
|
|
|
outlined
|
|
|
|
|
|
v-model="formData.projectDayHoldActual"
|
|
|
|
|
|
label="จำนวน (วัน)"
|
|
|
|
|
|
mask="#"
|
|
|
|
|
|
reverse-fill-mask
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-12 col-md-4">
|
|
|
|
|
|
<q-input
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:readonly="checkRoutePermission"
|
2024-07-15 17:49:38 +07:00
|
|
|
|
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">
|
2024-07-16 13:52:34 +07:00
|
|
|
|
<div class="col-12 col-sm-6 col-md-6 col-lg-4">
|
2024-07-15 17:49:38 +07:00
|
|
|
|
<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
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:disable="checkRoutePermission"
|
2024-07-15 17:49:38 +07:00
|
|
|
|
color="primary"
|
|
|
|
|
|
dense
|
|
|
|
|
|
v-model="formData.developmentProjectTechniqueActuals"
|
|
|
|
|
|
:options="projectTechniquesOp1"
|
|
|
|
|
|
type="checkbox"
|
|
|
|
|
|
/>
|
2024-07-16 13:52:34 +07:00
|
|
|
|
<div class="row" v-if="checkOtherBox21">
|
|
|
|
|
|
<div class="offset-4 col-8 q-mt-sm relative-position">
|
|
|
|
|
|
<div class="other_custom_input">
|
|
|
|
|
|
<q-input
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:readonly="checkRoutePermission"
|
2024-07-16 13:52:34 +07:00
|
|
|
|
v-model="reasonActual70"
|
|
|
|
|
|
dense
|
|
|
|
|
|
outlined
|
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
label="กรุณาระบุ"
|
|
|
|
|
|
></q-input>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-07-15 17:49:38 +07:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-07-16 13:52:34 +07:00
|
|
|
|
<div class="col-12 col-sm-6 col-md-6 col-lg-4">
|
2024-07-15 17:49:38 +07:00
|
|
|
|
<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"
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:disable="checkRoutePermission"
|
2024-07-15 17:49:38 +07:00
|
|
|
|
dense
|
|
|
|
|
|
v-model="formData.developmentProjectTechniqueActuals"
|
|
|
|
|
|
:options="projectTechniquesOp2"
|
|
|
|
|
|
type="checkbox"
|
|
|
|
|
|
/>
|
2024-07-16 13:52:34 +07:00
|
|
|
|
<div class="row" v-if="checkOtherBox22">
|
|
|
|
|
|
<div class="offset-4 col-8 q-mt-sm relative-position">
|
|
|
|
|
|
<div class="other_custom_input">
|
|
|
|
|
|
<q-input
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:readonly="checkRoutePermission"
|
2024-07-16 13:52:34 +07:00
|
|
|
|
v-model="reasonActual20"
|
|
|
|
|
|
dense
|
|
|
|
|
|
outlined
|
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
label="กรุณาระบุ"
|
|
|
|
|
|
></q-input>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-07-15 17:49:38 +07:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-07-16 13:52:34 +07:00
|
|
|
|
<div class="col-12 col-sm-6 col-md-6 col-lg-4">
|
2024-07-15 17:49:38 +07:00
|
|
|
|
<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
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:disable="checkRoutePermission"
|
2024-07-15 17:49:38 +07:00
|
|
|
|
color="primary"
|
|
|
|
|
|
dense
|
|
|
|
|
|
v-model="formData.developmentProjectTechniqueActuals"
|
|
|
|
|
|
:options="projectTechniquesOp3"
|
|
|
|
|
|
type="checkbox"
|
|
|
|
|
|
/>
|
2024-07-16 13:52:34 +07:00
|
|
|
|
<div class="row" v-if="checkOtherBox23">
|
|
|
|
|
|
<div class="offset-4 col-8 q-mt-sm relative-position">
|
|
|
|
|
|
<div class="other_custom_input">
|
|
|
|
|
|
<q-input
|
|
|
|
|
|
v-model="reasonActual10"
|
|
|
|
|
|
dense
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:readonly="checkRoutePermission"
|
2024-07-16 13:52:34 +07:00
|
|
|
|
outlined
|
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
label="กรุณาระบุ"
|
2024-08-08 11:53:58 +07:00
|
|
|
|
@update:model-value="props.onCheckChangeData()"
|
2024-07-16 13:52:34 +07:00
|
|
|
|
></q-input>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-07-15 17:49:38 +07:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-12 col-sm-6 col-md-4">
|
2024-07-03 14:47:53 +07:00
|
|
|
|
<q-input
|
|
|
|
|
|
dense
|
2024-07-15 17:49:38 +07:00
|
|
|
|
class="inputgreen"
|
2024-08-05 16:33:05 +07:00
|
|
|
|
:readonly="checkRoutePermission"
|
2024-07-03 14:47:53 +07:00
|
|
|
|
outlined
|
2024-07-15 17:49:38 +07:00
|
|
|
|
v-model="formData.projectModalActual"
|
|
|
|
|
|
label="จำนวน (รุ่น)"
|
2024-07-03 14:47:53 +07:00
|
|
|
|
mask="#"
|
|
|
|
|
|
reverse-fill-mask
|
2024-08-08 11:53:58 +07:00
|
|
|
|
@update:model-value="props.onCheckChangeData()"
|
2024-07-03 14:47:53 +07:00
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
2024-04-17 13:34:11 +07:00
|
|
|
|
</div>
|
2024-04-11 17:03:50 +07:00
|
|
|
|
</div>
|
2024-04-11 16:13:19 +07:00
|
|
|
|
</div>
|
2024-07-03 14:47:53 +07:00
|
|
|
|
</q-card-section>
|
|
|
|
|
|
</q-card>
|
|
|
|
|
|
</div>
|
2024-08-06 16:04:29 +07:00
|
|
|
|
|
|
|
|
|
|
<q-separator />
|
|
|
|
|
|
<div class="text-center q-pa-sm" v-if="!checkRoutePermission">
|
|
|
|
|
|
<q-btn
|
|
|
|
|
|
rounded
|
|
|
|
|
|
label="ก่อนหน้า"
|
|
|
|
|
|
icon="mdi-chevron-left"
|
|
|
|
|
|
id="onSubmit"
|
|
|
|
|
|
type="submit"
|
|
|
|
|
|
color="public"
|
|
|
|
|
|
class="q-mr-xs"
|
|
|
|
|
|
style="width: 120px"
|
|
|
|
|
|
@click="step = 'prev'"
|
|
|
|
|
|
>
|
|
|
|
|
|
</q-btn>
|
|
|
|
|
|
<q-btn
|
|
|
|
|
|
rounded
|
|
|
|
|
|
label="ถัดไป"
|
|
|
|
|
|
icon-right="mdi-chevron-right"
|
|
|
|
|
|
id="onSubmit"
|
|
|
|
|
|
type="submit"
|
|
|
|
|
|
color="public"
|
|
|
|
|
|
class="q-ml-xs"
|
|
|
|
|
|
style="width: 120px"
|
|
|
|
|
|
@click="step = 'next'"
|
|
|
|
|
|
>
|
|
|
|
|
|
</q-btn>
|
|
|
|
|
|
</div>
|
2024-04-11 08:33:35 +07:00
|
|
|
|
</q-form>
|
2024-03-25 18:01:33 +07:00
|
|
|
|
</template>
|
|
|
|
|
|
|
2024-04-17 15:07:21 +07:00
|
|
|
|
<style scoped>
|
|
|
|
|
|
.my-list-link {
|
|
|
|
|
|
color: rgb(118, 168, 222);
|
|
|
|
|
|
border-radius: 5px;
|
|
|
|
|
|
background: #a3d3fb48 !important;
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
border: 1px solid rgba(175, 185, 196, 0.217);
|
|
|
|
|
|
}
|
2024-07-09 10:39:49 +07:00
|
|
|
|
.other_custom {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
left: -7px;
|
|
|
|
|
|
top: -29px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.other_custom_input {
|
|
|
|
|
|
position: absolute;
|
2024-07-16 13:52:34 +07:00
|
|
|
|
top: -25px;
|
2024-07-09 10:39:49 +07:00
|
|
|
|
width: 100%;
|
|
|
|
|
|
}
|
2024-07-15 17:49:38 +07:00
|
|
|
|
|
|
|
|
|
|
:deep(.check_box .q-checkbox) {
|
|
|
|
|
|
align-items: start;
|
|
|
|
|
|
}
|
2024-04-17 15:07:21 +07:00
|
|
|
|
</style>
|