Refactor Code การทดลองปฏิบัติหน้าที่ราชการ

This commit is contained in:
setthawutttty 2023-09-21 16:08:12 +07:00
parent 01f23e51f8
commit a8f24024bf
14 changed files with 898 additions and 1269 deletions

View file

@ -31,6 +31,7 @@ const date_start = ref<Date>();
const date_finish = ref<any>();
const other_desc = ref<object>({});
const other4_desc = ref<string>();
const monthOp: MonthOption[] = [];
const Other5 = ref<string>();
const other5_no1_desc = ref<object>({});
const group = ref<any | null>(null);
@ -48,22 +49,37 @@ const date1 = ref<any>();
const date2 = ref<any>();
const date3 = ref<any>();
const date4 = ref<any>();
const OPmain = ref<
Array<{
id: number;
title: string;
description: string;
level: number;
}>
>([]);
const OPgroup = ref<
Array<{
id: number;
title: string;
description: string;
level: number;
}>
>([]);
const OtherLaw = ref<string>("");
const skill = ref<any>();
const skill2 = ref<any>();
const skill3 = ref<any>();
const skill4 = ref<any>();
const knowledgeCount = ref<number>(3);
const knowledge = ref<any[]>([]);
const position = ref<string>("");
const monthSelect = ref<any>();
const caretaker1 = ref<any>("");
const caretaker2 = ref<any>("");
const productivityCount = ref<number>(1);
const output_desc = ref<string[]>(Array(productivityCount.value).fill(""));
const indicator_desc = ref<string[]>(Array(productivityCount.value).fill(""));
const activityCount = ref<number>(2);
const activity_desc = ref<string[]>(Array(activityCount.value).fill(""));
const goal_desc = ref<string[]>(Array(activityCount.value).fill(""));
const checkRule = ref<CheckboxItem[]>([]);
const OPmain = ref< Array<{ id: number; title: string; description: string; level: number; }> >([]);
const OPgroup = ref< Array<{ id: number; title: string; description: string; level: number; }> >([]);
const OPcomputer = ref< Array<{ id: number; title: string; level: number; level_description: string; }> >([]);
const OPenglish = ref< Array<{ id: number; title: string; level: number; level_description: string; }> >([]);
const OPinfomation = ref< Array<{ id: number; title: string; level: number; level_description: string; }> >([]);
const OPresourse = ref< Array<{ id: number; title: string; level: number; level_description: string; }> >([]);
const OPknowledge = ref< Array<{ id: number; title: number; description: string; level: string; }> >([]);
const OPcaretaker = ref< Array<{ id: string; prefix: string; firstName: string; lastName: string; name: string; citizenId: number; isDirector: boolean; }>[] >([]);
const OPcommander = ref< Array<{ id: string; prefix: string; firstName: string; lastName: string; name: string; citizenId: number; isDirector: boolean; }>[] >([]);
const OPchairman = ref<Array<{ id: string; prefix: string; firstName: string; lastName: string; name: string; citizenId: number; isDirector: boolean; }>[] >([]);
const dataEdit = async (id: string) => {
await myForm.value.validate().then((result: boolean) => {
@ -120,57 +136,13 @@ const isDatePicker2Readonly = computed(() => {
return date_start.value === undefined;
});
const position = ref<string>("");
const monthSelect = ref<any>();
const caretaker1 = ref<any>("");
const caretaker2 = ref<any>("");
const OPcaretaker = ref<
Array<{
id: string;
prefix: string;
firstName: string;
lastName: string;
name: string;
citizenId: number;
isDirector: boolean;
}>[]
>([]);
const OPcommander = ref<
Array<{
id: string;
prefix: string;
firstName: string;
lastName: string;
name: string;
citizenId: number;
isDirector: boolean;
}>[]
>([]);
const OPchairman = ref<
Array<{
id: string;
prefix: string;
firstName: string;
lastName: string;
name: string;
citizenId: number;
isDirector: boolean;
}>[]
>([]);
interface MonthOption {
value: number;
label: string;
}
const monthOp: MonthOption[] = [];
//-----------------(3.1)-----------//
const activityCount = ref<number>(2);
const activityDataArray = ref<any[]>([]);
const activity_desc = ref<string[]>(Array(activityCount.value).fill(""));
const goal_desc = ref<string[]>(Array(activityCount.value).fill(""));
const addActivity = () => {
activityCount.value++;
};
@ -184,23 +156,9 @@ const deleteactivity = (item: number) => {
const activityArray = computed(() => {
return Array(activityCount.value).fill("");
});
const resetActivity = () => {
activityCount.value = 2;
activity_desc.value = Array(activityCount.value).fill("");
goal_desc.value = Array(activityCount.value).fill("");
};
//-----------------(3.2)-----------//
const knowledgeCount = ref<number>(3);
const knowledge = ref<any[]>([]);
const OPknowledge = ref<
Array<{
id: number;
title: number;
description: string;
level: string;
}>
>([]);
const addKnowledge = () => {
if (knowledgeCount.value < 6) {
knowledgeCount.value++;
@ -217,9 +175,7 @@ const deleteknowledge = (item: number) => {
knowledgeCount.value--;
}
};
const productivityCount = ref<number>(1);
const output_desc = ref<string[]>(Array(productivityCount.value).fill(""));
const indicator_desc = ref<string[]>(Array(productivityCount.value).fill(""));
const deleteProductivitys = (item: number) => {
output_desc.value.splice(item, 1);
indicator_desc.value.splice(item, 1);
@ -241,8 +197,6 @@ interface CheckboxItem {
checked: number;
}
const checkRule = ref<CheckboxItem[]>([]);
const getUser = async () => {
await http.get(config.API.userPlacement(personalId)).then((res: any) => {
const data = res.data.result;
@ -455,8 +409,6 @@ const putDataEdit = (id: string) => {
date_finish.value instanceof Date
? dateToISO(date_finish.value)
: dateToISO(new Date(date_finish.value)),
// caretaker_1: caretaker1.value,
// caretaker_2: caretaker2.value,
assign_knowledges: know_ledge,
assign_jobs: assign_job.filter((item) => item !== null),
other_desc: OtherLaw.value,
@ -466,15 +418,9 @@ const putDataEdit = (id: string) => {
other4_desc: Other.value,
other5_no1_desc: Other5.value,
assign_outputs: Productivity_assign.filter((item) => item !== null),
// commander: commander.value,
assign_director: assign_director,
experimenter_dated:
date1.value instanceof Date ? dateToISO(date1.value) : new Date(),
// date_2: date2.value instanceof Date ? dateToISO(date2.value) : new Date(),
// date_3: date3.value instanceof Date ? dateToISO(date3.value) : new Date(),
// date_4: date4.value instanceof Date ? dateToISO(date4.value) : new Date(),
// caretaker_foot: caretakerFoot.value,
// caretaker_foot2: caretakerFoot2.value,
assign_law: checkRule.value
.filter((item) => item.checked === 1)
.map((item) => ({
@ -632,49 +578,11 @@ const DataSave = async (id: string) => {
hideLoader();
});
};
const OtherLaw = ref<string>("");
const skill = ref<any>();
const skill2 = ref<any>();
const skill3 = ref<any>();
const skill4 = ref<any>();
const OPcomputer = ref<
Array<{
id: number;
title: string;
level: number;
level_description: string;
}>
>([]);
const OPenglish = ref<
Array<{
id: number;
title: string;
level: number;
level_description: string;
}>
>([]);
const OPinfomation = ref<
Array<{
id: number;
title: string;
level: number;
level_description: string;
}>
>([]);
const OPresourse = ref<
Array<{
id: number;
title: string;
level: number;
level_description: string;
}>
>([]);
const getAssign = async () => {
await http.get(config.API.probationsGetAssign(assignId.value)).then((res) => {
status.value = false;
const data = res.data.data;
console.log(data);
fullname.value = data.profile.name;
position.value = data.profile.Position;
date_start.value = data.assign.date_start;
@ -764,6 +672,19 @@ const clickdownloadFile = async (type: string) => {
});
};
watch(
() => [monthSelect.value, date_start.value],
() => {
if (monthSelect.value !== undefined && date_start.value !== undefined) {
postDateTime();
}
}
);
watch(knowledge.value, () => {
knowledge.value.forEach((item) => {
OPknowledge.value = OPknowledge.value.filter((e) => e.id != item.id);
});
});
onMounted(async () => {
await getUser();
await getLaw(personalId);
@ -776,25 +697,6 @@ onMounted(async () => {
await getAssign();
}
});
watch(
() => [monthSelect.value, date_start.value],
() => {
if (monthSelect.value !== undefined && date_start.value !== undefined) {
postDateTime();
}
}
);
watch(knowledge.value, () => {
knowledge.value.forEach((item) => {
OPknowledge.value = OPknowledge.value.filter((e) => e.id != item.id);
});
});
const countCheckedItems = checkRule.value.filter(
(item) => item.checked === 1
).length;
console.log(countCheckedItems);
</script>
<template>
@ -1249,10 +1151,10 @@ console.log(countCheckedItems);
<q-card
flat
bordered
class="col-12 q-pa-md q-mt-sm"
class="col-12 q-pa-md q-mt-sm"
style="max-height: 500px; overflow-y: scroll"
>
<div class="example-row-column-width ">
<div class="example-row-column-width">
<div class="bg-grey-3 q-py-xs">
<div
class="row"
@ -2494,5 +2396,4 @@ console.log(countCheckedItems);
overflow: hidden;
text-overflow: ellipsis;
}
</style>

View file

@ -6,7 +6,7 @@ import { useCounterMixin } from "@/stores/mixin";
import { useRouter, useRoute } from "vue-router";
import http from "@/plugins/http";
import config from "@/app.config";
import criterion from "@/modules/05_placement/components/Other/Criterion.vue"
import criterion from "@/modules/05_placement/components/Other/Criterion.vue";
const router = useRouter();
const routeName = router.currentRoute.value.name;
@ -29,15 +29,34 @@ const route = useRoute();
const assignId = ref<string>(route.params.form.toString());
const { assign } = probationStore;
const personalId = ref<string>(route.params.personalId.toString());
const Autherise = ref<any>(null);
const dateAutherise = ref<any>(new Date());
const option = ref<any>([]);
const edit = () => {
status.value = true;
};
const cancel = () => {
status.value = false;
};
// part 1
const knowledge_level = ref<number>(0);
const skill_level = ref<number>(0);
const competency_level = ref<number>(0);
const learn_level = ref<number>(0);
const apply_level = ref<number>(0);
const success_level = ref<number>(0);
const etc = ref<any>(false);
const achievement_other = ref<any>({ text: "", level: 0 });
// part 2
const conduct_level = ref<any>([]);
const moral_level = ref<any>([]);
const discipline_level = ref<any>([]);
const etc2 = ref<any>(false); // checkBox 2.4
const behavio_orther = ref<any>({ text: "", level: 0 });
const behavio_strength_desc = ref<string>("");
const behavior_improve_desc = ref<string>("");
// part 3
const orientation = ref<any>(null);
const self_learning = ref<any>(null);
const training_seminar = ref<any>(null);
const other_training = ref<any>(null);
//rules
const behavio_strengthRef = ref<any>(null);
const person = ref<any>([]);
const evaluate_no = ref<number>();
const evaluate_id = ref<string>("");
@ -47,6 +66,18 @@ const commander = ref<any>([]);
const status = ref<boolean>(true);
const dataArr = ref<any>();
const behavio_strengthRules = [
(val: any) => (val && val.length > 0) || "กรุณากรอกข้อมูลจุดเด่น",
];
const behavio_inproveRef = ref<any>(null);
const edit = () => {
status.value = true;
};
const cancel = () => {
status.value = false;
};
const props = defineProps({
tab: String,
data: Object,
@ -57,23 +88,7 @@ const list2_1 = probationStore.behavior_no1;
const list2_2 = probationStore.behavior_no2;
const list2_3 = probationStore.behavior_no3;
onMounted(async () => {
if (props.tab && props.action == "edit") {
evaluate_no.value = Number(props.tab.charAt(4));
dataArr.value = await props.data;
fecthAssign();
fetchEvaluate();
}
});
watch(props, async () => {
if (props.tab && props.action == "edit") {
evaluate_no.value = Number(props.tab.charAt(4));
dataArr.value = await props.data;
fecthAssign();
fetchEvaluate();
}
});
const fecthAssign = async () => {
showLoader();
@ -83,7 +98,6 @@ const fecthAssign = async () => {
console.log(res);
if (props.action == "add") {
person.value = res.data.data.person;
// assign.value = res.data.data.assign;
commander.value = res.data.data.commander;
option.value.push(commander.value);
Autherise.value = commander.value.name;
@ -104,7 +118,6 @@ const fecthAssign = async () => {
});
};
const fetchEvaluate = async () => {
// showLoader();
try {
let data = await dataArr.value;
evaluate_id.value = data.id;
@ -148,54 +161,14 @@ const fetchEvaluate = async () => {
etc2.value = true;
} else etc2.value = false;
status.value = false;
// setTimeout(() => {
// hideLoader();
// }, 1000);
} catch (error) {
hideLoader();
}
};
const Autherise = ref<any>(null);
const dateAutherise = ref<any>(new Date());
const option = ref<any>([]);
// part 1
const knowledge_level = ref<number>(0);
const skill_level = ref<number>(0);
const competency_level = ref<number>(0);
const learn_level = ref<number>(0);
const apply_level = ref<number>(0);
const success_level = ref<number>(0);
const etc = ref<any>(false);
const achievement_other = ref<any>({ text: "", level: 0 });
// part 2
const conduct_level = ref<any>([]);
const moral_level = ref<any>([]);
const discipline_level = ref<any>([]);
const etc2 = ref<any>(false); // checkBox 2.4
const behavio_orther = ref<any>({ text: "", level: 0 });
const behavio_strength_desc = ref<string>("");
const behavior_improve_desc = ref<string>("");
// part 3
const orientation = ref<any>(null);
const self_learning = ref<any>(null);
const training_seminar = ref<any>(null);
const other_training = ref<any>(null);
//rules
const behavio_strengthRef = ref<any>(null);
const behavio_strengthRules = [
(val: any) => (val && val.length > 0) || "กรุณากรอกข้อมูลจุดเด่น",
];
const behavio_inproveRef = ref<any>(null);
// const behavio_inproveRules = [
// (val: any) => (val && val.length > 0) || "",
// ];
const savaForm = () => {
let hasError = false;
behavio_strengthRef.value.validate();
// behavio_inproveRef.value.validate();
if (
knowledge_level.value === 0 ||
skill_level.value === 0 ||
@ -207,7 +180,6 @@ const savaForm = () => {
moral_level.value.length < 3 ||
discipline_level.value.length < 5 ||
behavio_strength_desc.value === "" ||
// behavior_improve_desc.value === "" ||
orientation.value === null ||
self_learning.value === null ||
training_seminar.value === null
@ -281,13 +253,30 @@ const save = () => {
});
});
};
watch(props, async () => {
if (props.tab && props.action == "edit") {
evaluate_no.value = Number(props.tab.charAt(4));
dataArr.value = await props.data;
fecthAssign();
fetchEvaluate();
}
});
onMounted(async () => {
if (props.tab && props.action == "edit") {
evaluate_no.value = Number(props.tab.charAt(4));
dataArr.value = await props.data;
fecthAssign();
fetchEvaluate();
}
});
</script>
<template>
<div class="row col-12 no-margin q-pa-sm">
<div class="toptitle text-dark col-12 row items-center q-gutter-md">
<div>แบบประเมนผล (งคบบญชา)</div>
<!-- <q-space /> -->
<div v-if="status == false">
<q-btn
dense

View file

@ -6,7 +6,7 @@ import { useCounterMixin } from "@/stores/mixin";
import { useRoute, useRouter } from "vue-router";
import http from "@/plugins/http";
import config from "@/app.config";
import criterion from "@/modules/05_placement/components/Other/Criterion.vue"
import criterion from "@/modules/05_placement/components/Other/Criterion.vue";
const $q = useQuasar();
const probationStore = useProbationDataStore();
@ -36,7 +36,32 @@ const date_finish = ref<Date>(new Date());
const commander = ref<any>([]);
const round = ref<any>();
const status = ref<boolean>(true);
const Autherise = ref<any>(null);
const dateAutherise = ref<any>(new Date());
const option = ref<any>([]);
// part 1
const skill_level = ref<number>(0);
const competency_level = ref<number>(0);
const learn_level = ref<number>(0);
const apply_level = ref<number>(0);
const success_level = ref<number>(0);
const etc = ref<any>(false);
const achievement_other = ref<any>({ text: "", level: 0 });
// part 2
const conduct_level = ref<any>([]);
const moral_level = ref<any>([]);
const discipline_level = ref<any>([]);
const etc2 = ref<any>(false); // checkBox 2.4
const behavio_orther = ref<any>({ text: "", level: 0 });
const behavio_strength_desc = ref<string>("");
const behavior_improve_desc = ref<string>("");
const orientation = ref<any>(null);
const self_learning = ref<any>(null);
const training_seminar = ref<any>(null);
const other_training = ref<any>(null);
const behavio_strengthRef = ref<any>(null);
const props = defineProps({
tab: String,
});
@ -45,9 +70,6 @@ const list2_1 = probationStore.behavior_no1;
const list2_2 = probationStore.behavior_no2;
const list2_3 = probationStore.behavior_no3;
onMounted(async () => {
fecthAssign(assignId.value);
});
const fecthAssign = async (id: string) => {
showLoader();
await http
@ -70,27 +92,7 @@ const fecthAssign = async (id: string) => {
hideLoader();
});
};
const Autherise = ref<any>(null);
const dateAutherise = ref<any>(new Date());
const option = ref<any>([]);
// part 1
const skill_level = ref<number>(0);
const competency_level = ref<number>(0);
const learn_level = ref<number>(0);
const apply_level = ref<number>(0);
const success_level = ref<number>(0);
const etc = ref<any>(false);
const achievement_other = ref<any>({ text: "", level: 0 });
// part 2
const conduct_level = ref<any>([]);
const moral_level = ref<any>([]);
const discipline_level = ref<any>([]);
const etc2 = ref<any>(false); // checkBox 2.4
const behavio_orther = ref<any>({ text: "", level: 0 });
const behavio_strength_desc = ref<string>("");
const behavior_improve_desc = ref<string>("");
// part 3
const alerts = Array(20)
.fill(null)
@ -105,12 +107,9 @@ const lengthmoral_level = computed(() => {
const lengthdiscipline_level = computed(() => {
return discipline_level.value.filter((item: number) => item !== 0).length;
});
const orientation = ref<any>(null);
const self_learning = ref<any>(null);
const training_seminar = ref<any>(null);
const other_training = ref<any>(null);
//rules
const behavio_strengthRef = ref<any>(null);
const behavio_strengthRules = [
(val: any) => (val && val.length > 0) || "กรุณากรอกข้อมูลจุดเด่น",
];
@ -134,7 +133,6 @@ const variablesToWatch = [
const savaForm = () => {
let hasError = false;
behavio_strengthRef.value.validate();
// behavio_inproveRef.value.validate();
if (
knowledge_level.value === 0 ||
skill_level.value === 0 ||
@ -236,6 +234,11 @@ const putformData = () => {
});
};
const getBordered = (i: boolean) => {
return {
border_custom: i,
};
};
variablesToWatch.forEach((variable, index) => {
watch(variable, (item: any) => {
if (item !== 0) {
@ -266,11 +269,9 @@ watch(lengthdiscipline_level, (newLength) => {
alerts[8].value = false;
}
});
const getBordered = (i: boolean) => {
return {
border_custom: i,
};
};
onMounted(async () => {
fecthAssign(assignId.value);
});
</script>
<template>

View file

@ -6,7 +6,7 @@ import { useCounterMixin } from "@/stores/mixin";
import { useRouter, useRoute } from "vue-router";
import http from "@/plugins/http";
import config from "@/app.config";
import criterion from "@/modules/05_placement/components/Other/Criterion.vue"
import criterion from "@/modules/05_placement/components/Other/Criterion.vue";
const router = useRouter();
const routeName = router.currentRoute.value.name;
@ -57,24 +57,41 @@ const director_id2 = ref<any>(null);
const director_id3 = ref<any>(null);
const director1_dated = ref<any>("");
const director2_dated = ref<any>("");
// part 1
const learn_level = ref<number>(0);
const apply_level = ref<number>(0);
const success_level = ref<number>(0);
const etc = ref<any>(false);
const achievement_other = ref<any>({ text: "", level: 0 });
// part 2
const conduct_level = ref<any>([]);
const moral_level = ref<any>([]);
const discipline_level = ref<any>([]);
const etc2 = ref<any>(false); // checkBox 2.4
const behavio_orther = ref<any>({ text: "", level: 0 });
onMounted(async () => {
if (props.tab && props.action == "edit") {
evaluate_no.value = Number(props.tab.charAt(4));
dataArr.value = await props.data;
await fetchEvaluate();
await fecthAssign();
}
});
// part 3
const orientation = ref<number>(0);
const self_learning = ref<number>(0);
const training_seminar = ref<number>(0);
const other_training = ref<number>(0);
const orientation_percent = ref<number>(0);
const self_learning_percent = ref<number>(0);
const training_seminar_percent = ref<number>(0);
const other_training_percent = ref<number>(0);
const develop_result = ref<any>();
const evaluate_result = ref<any>();
const evaluate_result_option = ref<any>([
{ name: "ผ่าน (สูงกว่าร้อยละ 60)", value: 1 },
{ name: "ไม่ผ่าน (ต่ำกว่าร้อยละ 60)", value: 0 },
]);
watch(props, async () => {
if (props.tab && props.action == "edit") {
evaluate_no.value = Number(props.tab.charAt(4));
dataArr.value = await props.data;
await fetchEvaluate();
await fecthAssign();
}
});
const develop_result_option = ref<any>([
{ name: "ผ่าน (สูงกว่าร้อยละ 60)", value: 1 },
{ name: "ไม่ผ่าน (ต่ำกว่าร้อยละ 60)", value: 0 },
]);
// footer
const dateAutherise = ref<any>();
const fecthAssign = async () => {
showLoader();
@ -96,9 +113,9 @@ const fecthAssign = async () => {
director_id3.value = res.data.data.mentors[0].name;
}
dateAutherise.value = res.data.data.chairman_dated
director1_dated.value = res.data.data.director1_dated
director2_dated.value = res.data.data.director2_dated
dateAutherise.value = res.data.data.chairman_dated;
director1_dated.value = res.data.data.director1_dated;
director2_dated.value = res.data.data.director2_dated;
})
.catch((e) => {
messageError($q, e);
@ -157,57 +174,14 @@ const fetchEvaluate = async () => {
if (data.behavior_other_desc !== "" && data.behavior_other_level !== null) {
etc2.value = true;
} else etc2.value = false;
status.value = false;
// setTimeout(() => {
// hideLoader();
// }, 1000);
} catch (error) {
// hideLoader();
}
} catch (error) {}
};
const list2_1 = probationStore.behavior_no1;
const list2_2 = probationStore.behavior_no2;
const list2_3 = probationStore.behavior_no3;
// part 1
const learn_level = ref<number>(0);
const apply_level = ref<number>(0);
const success_level = ref<number>(0);
const etc = ref<any>(false);
const achievement_other = ref<any>({ text: "", level: 0 });
// part 2
const conduct_level = ref<any>([]);
const moral_level = ref<any>([]);
const discipline_level = ref<any>([]);
const etc2 = ref<any>(false); // checkBox 2.4
const behavio_orther = ref<any>({ text: "", level: 0 });
// part 3
const orientation = ref<number>(0);
const self_learning = ref<number>(0);
const training_seminar = ref<number>(0);
const other_training = ref<number>(0);
const orientation_percent = ref<number>(0);
const self_learning_percent = ref<number>(0);
const training_seminar_percent = ref<number>(0);
const other_training_percent = ref<number>(0);
const develop_result = ref<any>();
const evaluate_result = ref<any>();
const evaluate_result_option = ref<any>([
{ name: "ผ่าน (สูงกว่าร้อยละ 60)", value: 1 },
{ name: "ไม่ผ่าน (ต่ำกว่าร้อยละ 60)", value: 0 },
]);
const develop_result_option = ref<any>([
{ name: "ผ่าน (สูงกว่าร้อยละ 60)", value: 1 },
{ name: "ไม่ผ่าน (ต่ำกว่าร้อยละ 60)", value: 0 },
]);
// footer
const dateAutherise = ref<any>();
// const option = ref<any>([]);
// score
const score1 = computed(() => {
if (
@ -412,6 +386,22 @@ const putformData = () => {
});
});
};
watch(props, async () => {
if (props.tab && props.action == "edit") {
evaluate_no.value = Number(props.tab.charAt(4));
dataArr.value = await props.data;
await fetchEvaluate();
await fecthAssign();
}
});
onMounted(async () => {
if (props.tab && props.action == "edit") {
evaluate_no.value = Number(props.tab.charAt(4));
dataArr.value = await props.data;
await fetchEvaluate();
await fecthAssign();
}
});
</script>
<template>
@ -419,9 +409,15 @@ const putformData = () => {
<div class="row col-12 no-margin q-pa-sm">
<div class="toptitle text-dark col-12 row items-center q-gutter-md">
<div>แบบประเมนผล (คณะกรรมการ)</div>
<!-- <q-space /> -->
<div v-if="status == false">
<q-btn dense flat round color="primary" @click="edit()" icon="mdi-pencil-outline">
<q-btn
dense
flat
round
color="primary"
@click="edit()"
icon="mdi-pencil-outline"
>
<q-tooltip>แกไขขอม</q-tooltip>
</q-btn>
</div>
@ -429,7 +425,15 @@ const putformData = () => {
<q-btn dense flat round color="red" @click="cancel()" icon="mdi-undo">
<q-tooltip>ยกเล</q-tooltip>
</q-btn>
<q-btn dense class="q-ml-sm" flat round color="public" @click="savaForm()" icon="mdi-content-save-outline">
<q-btn
dense
class="q-ml-sm"
flat
round
color="public"
@click="savaForm()"
icon="mdi-content-save-outline"
>
<q-tooltip>นทกขอม</q-tooltip>
</q-btn>
</div>
@ -479,11 +483,19 @@ const putformData = () => {
<q-item-section>
<q-item-label>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
1.1. ความสามารถในการเรยนรงาน</q-item-label>
1.1. ความสามารถในการเรยนรงาน</q-item-label
>
</q-item-section>
<q-item-section side>
<q-rating v-model="learn_level" max="5" size="sm" :disable="!status" color="grey"
:color-selected="ratingColors" label="ระดับการประเมินพฤติกรรม">
<q-rating
v-model="learn_level"
max="5"
size="sm"
:disable="!status"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template>
@ -512,11 +524,19 @@ const putformData = () => {
<q-item-label>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
1.2.
ความสามารถในการปรบใชความรบงานในหนาท</q-item-label>
ความสามารถในการปรบใชความรบงานในหนาท</q-item-label
>
</q-item-section>
<q-item-section side>
<q-rating v-model="apply_level" max="5" size="sm" color="grey" :disable="!status"
:color-selected="ratingColors" label="ระดับการประเมินพฤติกรรม">
<q-rating
v-model="apply_level"
max="5"
size="sm"
color="grey"
:disable="!status"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template>
@ -544,11 +564,19 @@ const putformData = () => {
<q-item-section>
<q-item-label>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
1.3. ความสำเรจของงานทไดบมอบหมาย</q-item-label>
1.3. ความสำเรจของงานทไดบมอบหมาย</q-item-label
>
</q-item-section>
<q-item-section side>
<q-rating v-model="success_level" max="5" :disable="!status" size="sm" color="grey"
:color-selected="ratingColors" label="ระดับการประเมินพฤติกรรม">
<q-rating
v-model="success_level"
max="5"
:disable="!status"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template>
@ -577,29 +605,55 @@ const putformData = () => {
<q-item-label>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
1.4 นๆ
<q-checkbox class="q-ml-sm" dense :disable="!status" v-model="etc" @click="
(achievement_other.text = ''),
(achievement_other.level = 0)
" /></q-item-label>
<q-checkbox
class="q-ml-sm"
dense
:disable="!status"
v-model="etc"
@click="
(achievement_other.text = ''),
(achievement_other.level = 0)
"
/></q-item-label>
</q-item-section>
</q-item>
</q-list>
</q-card>
<q-card v-if="etc" class="text-top0 col-xs-12 col-sm-11 q-pa-xs q-pl-lg">
<q-card
v-if="etc"
class="text-top0 col-xs-12 col-sm-11 q-pa-xs q-pl-lg"
>
<q-list dense>
<q-item dense tag="label" v-ripple>
<q-item-section class="q-ml-md">
<q-item-label>
<q-input v-model="achievement_other.text" label="กรอกอื่นๆ" dense lazy-rules autogrow
:disable="!status" hide-bottom-space outlined class="bg-white" :rules="[
<q-input
v-model="achievement_other.text"
label="กรอกอื่นๆ"
dense
lazy-rules
autogrow
:disable="!status"
hide-bottom-space
outlined
class="bg-white"
:rules="[
(val) => (val && val.length > 0) || 'กรุณากรอกข้อความ',
]" />
]"
/>
</q-item-label>
</q-item-section>
<q-item-section side>
<q-rating v-model="achievement_other.level" max="5" size="sm" color="grey" :disable="!status"
:color-selected="ratingColors" label="ระดับการประเมินพฤติกรรม">
<q-rating
v-model="achievement_other.level"
max="5"
size="sm"
color="grey"
:disable="!status"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template>
@ -640,15 +694,27 @@ const putformData = () => {
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
2.1 ความประพฤต
</div>
<q-card flat bordered class="col-xs-12 col-sm-11 col-md-10 offset-md-1 q-pa-sm bg-grey-1">
<q-card
flat
bordered
class="col-xs-12 col-sm-11 col-md-10 offset-md-1 q-pa-sm bg-grey-1"
>
<q-list dense v-for="(list, i) in list2_1" :key="i">
<q-item dense tag="label" v-ripple>
<q-item-section>
<q-item-label>{{ list.label }}</q-item-label>
</q-item-section>
<q-item-section side>
<q-rating v-model="conduct_level[i]" :val="list.id" max="5" size="sm" :disable="!status" color="grey"
:color-selected="ratingColors" label="ระดับการประเมินพฤติกรรม">
<q-rating
v-model="conduct_level[i]"
:val="list.id"
max="5"
size="sm"
:disable="!status"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template>
@ -676,15 +742,27 @@ const putformData = () => {
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
2.2 ความมณธรรมจรยธรรม
</div>
<q-card flat bordered class="col-xs-12 col-sm-11 col-md-10 offset-md-1 q-pa-sm bg-grey-1">
<q-card
flat
bordered
class="col-xs-12 col-sm-11 col-md-10 offset-md-1 q-pa-sm bg-grey-1"
>
<q-list dense v-for="(list, i) in list2_2" :key="i">
<q-item dense tag="label" v-ripple>
<q-item-section>
<q-item-label>{{ list.label }}</q-item-label>
</q-item-section>
<q-item-section side>
<q-rating v-model="moral_level[i]" :val="list.id" :disable="!status" max="5" size="sm" color="grey"
:color-selected="ratingColors" label="ระดับการประเมินพฤติกรรม">
<q-rating
v-model="moral_level[i]"
:val="list.id"
:disable="!status"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template>
@ -712,15 +790,27 @@ const putformData = () => {
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
2.3 การรกษาว
</div>
<q-card flat bordered class="col-xs-12 col-sm-11 col-md-10 offset-md-1 q-pa-sm bg-grey-1">
<q-card
flat
bordered
class="col-xs-12 col-sm-11 col-md-10 offset-md-1 q-pa-sm bg-grey-1"
>
<q-list dense v-for="(list, i) in list2_3" :key="i">
<q-item dense tag="label" v-ripple>
<q-item-section>
<q-item-label>{{ list.label }}</q-item-label>
</q-item-section>
<q-item-section side>
<q-rating v-model="discipline_level[i]" :val="list.id" :disable="!status" max="5" size="sm"
color="grey" :color-selected="ratingColors" label="ระดับการประเมินพฤติกรรม">
<q-rating
v-model="discipline_level[i]"
:val="list.id"
:disable="!status"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template>
@ -747,23 +837,51 @@ const putformData = () => {
<div class="col-12 text-top0 row items-center q-pl-md">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
2.4 นๆ
<q-checkbox class="q-ml-sm" dense v-model="etc2" :disable="!status"
@click="(behavio_orther.text = ''), (behavio_orther.level = 0)" />
<q-checkbox
class="q-ml-sm"
dense
v-model="etc2"
:disable="!status"
@click="(behavio_orther.text = ''), (behavio_orther.level = 0)"
/>
</div>
<q-card v-if="etc2" flat bordered class="col-xs-12 col-sm-11 col-md-10 offset-md-1 q-pa-sm bg-grey-1">
<q-card
v-if="etc2"
flat
bordered
class="col-xs-12 col-sm-11 col-md-10 offset-md-1 q-pa-sm bg-grey-1"
>
<q-list dense>
<q-item dense tag="label" v-ripple>
<q-item-section>
<q-item-label>
<q-input v-model="behavio_orther.text" label="กรอกอื่นๆ" dense lazy-rules :disable="!status"
autogrow hide-bottom-space outlined class="bg-white" :rules="[
(val) => (val && val.length > 0) || 'กรุณากรอกข้อความ',
]" />
<q-input
v-model="behavio_orther.text"
label="กรอกอื่นๆ"
dense
lazy-rules
:disable="!status"
autogrow
hide-bottom-space
outlined
class="bg-white"
:rules="[
(val) =>
(val && val.length > 0) || 'กรุณากรอกข้อความ',
]"
/>
</q-item-label>
</q-item-section>
<q-item-section side>
<q-rating v-model="behavio_orther.level" max="5" size="sm" :disable="!status" color="grey"
:color-selected="ratingColors" label="ระดับการประเมินพฤติกรรม">
<q-rating
v-model="behavio_orther.level"
max="5"
size="sm"
:disable="!status"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template>
@ -810,7 +928,8 @@ const putformData = () => {
<q-item-label>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
3.1.
ผลสมฤทธของการทดลองปฏหนาทราชการ</q-item-label>
ผลสมฤทธของการทดลองปฏหนาทราชการ</q-item-label
>
</q-item-section>
<q-item-section>
<q-item-label style="color: gray">
@ -842,7 +961,9 @@ const putformData = () => {
<q-item-section>
<q-item-label>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
3.2. พฤตกรรมของผทดลองปฏหนาทราชการ</q-item-label>
3.2.
พฤตกรรมของผทดลองปฏหนาทราชการ</q-item-label
>
</q-item-section>
<q-item-section>
<q-item-label style="color: gray">
@ -907,7 +1028,11 @@ const putformData = () => {
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">4</q-avatar>
การพฒนาผทดลองปฏหนาทราชการ
</div>
<q-card flat bordered class="col-xs-12 col-sm-11 col-md-11 q-pa-sm bg-grey-1">
<q-card
flat
bordered
class="col-xs-12 col-sm-11 col-md-11 q-pa-sm bg-grey-1"
>
<div class="col-xs-12 col-sm-11 col-md-11 q-my-sm">
<div class="row q-gutter-md q-pl-md">
<div class="col-8 text-weight-medium">วข</div>
@ -919,30 +1044,66 @@ const putformData = () => {
<div class="row q-gutter-md align-center q-pl-md">
<div class="col-8">1. การปฐมนเทศ</div>
<div class="col">
<q-input outlined dense type="number" :disable="!status" v-model="orientation" />
<q-input
outlined
dense
type="number"
:disable="!status"
v-model="orientation"
/>
</div>
<div class="col">
<q-input outlined dense type="number" :disable="!status" v-model="orientation_percent" />
<q-input
outlined
dense
type="number"
:disable="!status"
v-model="orientation_percent"
/>
</div>
</div>
<q-separator class="q-my-xs" />
<div class="row q-gutter-md align-center q-pl-md">
<div class="col-8">2. การเรยนรวยตนเอง</div>
<div class="col">
<q-input dense outlined type="number" :disable="!status" v-model="self_learning" />
<q-input
dense
outlined
type="number"
:disable="!status"
v-model="self_learning"
/>
</div>
<div class="col">
<q-input outlined dense type="number" :disable="!status" v-model="self_learning_percent" />
<q-input
outlined
dense
type="number"
:disable="!status"
v-model="self_learning_percent"
/>
</div>
</div>
<q-separator class="q-my-xs" />
<div class="row q-gutter-md align-center q-pl-md">
<div class="col-8">3. การอบรมสมนารวมก</div>
<div class="col">
<q-input outlined dense type="number" :disable="!status" v-model="training_seminar" />
<q-input
outlined
dense
type="number"
:disable="!status"
v-model="training_seminar"
/>
</div>
<div class="col">
<q-input outlined dense type="number" :disable="!status" v-model="training_seminar_percent" />
<q-input
outlined
dense
type="number"
:disable="!status"
v-model="training_seminar_percent"
/>
</div>
</div>
<q-separator class="q-my-xs" />
@ -951,10 +1112,22 @@ const putformData = () => {
4. การอบรมอ ตามทหนวยงานกำหนด (าม)
</div>
<div class="col">
<q-input outlined dense type="number" :disable="!status" v-model="other_training" />
<q-input
outlined
dense
type="number"
:disable="!status"
v-model="other_training"
/>
</div>
<div class="col">
<q-input outlined dense type="number" :disable="!status" v-model="other_training_percent" />
<q-input
outlined
dense
type="number"
:disable="!status"
v-model="other_training_percent"
/>
</div>
</div>
<q-separator class="q-my-xs" />
@ -967,105 +1140,6 @@ const putformData = () => {
<div class="col q-pl-md">{{ score5 }}</div>
</div>
</div>
<!-- <q-list dense>
<q-item dense tag="label" v-ripple>
<q-item-section>
<q-item-label>1. การปฐมนเทศ</q-item-label>
</q-item-section>
<q-item-section side>
<div class="row">
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="orientation"
val="1"
label="ดำเนินการเเล้ว"
/>
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="orientation"
val="0"
label=" ยังไม่ได้ดำเนินการ"
/>
</div>
</q-item-section>
</q-item>
<q-separator class="q-my-xs" />
<q-item dense tag="label" v-ripple>
<q-item-section>
<q-item-label>2. การเรยนรวยตนเอง</q-item-label>
</q-item-section>
<q-item-section side>
<div class="row">
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="self_learning"
val="1"
label="ดำเนินการเเล้ว"
/>
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="self_learning"
val="0"
label=" ยังไม่ได้ดำเนินการ"
/>
</div>
</q-item-section>
</q-item>
<q-separator class="q-my-xs" />
<q-item dense tag="label" v-ripple>
<q-item-section>
<q-item-label>3. การอบรมสมนารวมก</q-item-label>
</q-item-section>
<q-item-section side>
<div class="row">
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="training_seminar"
val="1"
label="ดำเนินการเเล้ว"
/>
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="training_seminar"
val="0"
label=" ยังไม่ได้ดำเนินการ"
/>
</div>
</q-item-section>
</q-item>
<q-separator class="q-my-xs" />
<q-item dense tag="label" v-ripple>
<q-item-section>
<q-item-label
>4. การอบรมอ ตามทหนวยงานกำหนด (าม)</q-item-label
>
</q-item-section>
<q-item-section side>
<div class="row">
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="other_training"
val="1"
label="ดำเนินการเเล้ว"
/>
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="other_training"
val="0"
label=" ยังไม่ได้ดำเนินการ"
/>
</div>
</q-item-section>
</q-item>
</q-list> -->
</q-card>
</div>
</div>
@ -1073,13 +1147,22 @@ const putformData = () => {
<div class="row col-12 q-gutter-lg no-margin justify-center">
<div class="col-xs-12 col-sm-11 row justify-center">
<div class="col-12 text-top0 items-center">
<!-- <q-avatar class="bg-grey-2 q-mr-sm" size="28px">5</q-avatar> -->
สรปผลการพฒนา
</div>
<div class="col-12">
<q-select :disable="!status" class="col-xs-12" dense v-model="develop_result" outlined
:options="develop_result_option" option-label="name" option-value="value" label="เลือกสรุปผลการพัฒนา"
map-options emit-value />
<q-select
:disable="!status"
class="col-xs-12"
dense
v-model="develop_result"
outlined
:options="develop_result_option"
option-label="name"
option-value="value"
label="เลือกสรุปผลการพัฒนา"
map-options
emit-value
/>
</div>
</div>
</div>
@ -1087,13 +1170,22 @@ const putformData = () => {
<div class="row col-12 q-gutter-lg no-margin justify-center">
<div class="col-xs-12 col-sm-11 row justify-center">
<div class="col-12 text-top0 items-center">
<!-- <q-avatar class="bg-grey-2 q-mr-sm" size="28px">5</q-avatar> -->
สรปผล การประเมนผลทดลองปฏหนาทราชการ
</div>
<div class="col-12">
<q-select :disable="!status" class="col-xs-12" dense v-model="evaluate_result" outlined
:options="evaluate_result_option" option-label="name" option-value="value"
label="เลือกสรุปผล การประเมินผลทดลองปฏิบัติหน้าที่ราชการ" map-options emit-value />
<q-select
:disable="!status"
class="col-xs-12"
dense
v-model="evaluate_result"
outlined
:options="evaluate_result_option"
option-label="name"
option-value="value"
label="เลือกสรุปผล การประเมินผลทดลองปฏิบัติหน้าที่ราชการ"
map-options
emit-value
/>
</div>
</div>
</div>
@ -1110,11 +1202,26 @@ const putformData = () => {
ประธานคณะกรรมการประเมนผลการปฏหนาทราชการ
</div>
<div class="col-12 row q-col-gutter-md">
<q-select class="col-xs-12 col-sm-8" dense v-model="director_id" outlined label="ชื่อ-นามสกุล"
option-label="name" disable />
<q-select
class="col-xs-12 col-sm-8"
dense
v-model="director_id"
outlined
label="ชื่อ-นามสกุล"
option-label="name"
disable
/>
<div class="col-xs-12 col-sm-4">
<datepicker menu-class-name="modalfix" v-model="dateAutherise" :locale="'th'" :readonly="!status"
autoApply borderless :enableTimePicker="false" week-start="0">
<datepicker
menu-class-name="modalfix"
v-model="dateAutherise"
:locale="'th'"
:readonly="!status"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }">
{{ year + 543 }}
</template>
@ -1122,10 +1229,23 @@ const putformData = () => {
{{ parseInt(value + 543) }}
</template>
<template #trigger>
<q-input outlined dense :disable="!status" class="full-width datepicker col-3" :model-value="dateAutherise != null ? date2Thai(dateAutherise) : null
" :label="`${'ลงวันที่'}`" :rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]">
<q-input
outlined
dense
:disable="!status"
class="full-width datepicker col-3"
:model-value="
dateAutherise != null ? date2Thai(dateAutherise) : null
"
:label="`${'ลงวันที่'}`"
:rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]"
>
<template v-slot:prepend>
<q-icon name="event" class="cursor-pointer" style="color: var(--q-primary)">
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
@ -1141,11 +1261,26 @@ const putformData = () => {
<!-- ความเหนของผอำนาจสงบรรจตามมาตรา 52 -->
</div>
<div class="col-12 row q-col-gutter-md">
<q-select class="col-xs-12 col-sm-8" dense v-model="director_id2" outlined label="ชื่อ-นามสกุล" disable
option-label="name" />
<q-select
class="col-xs-12 col-sm-8"
dense
v-model="director_id2"
outlined
label="ชื่อ-นามสกุล"
disable
option-label="name"
/>
<div class="col-xs-12 col-sm-4">
<datepicker menu-class-name="modalfix" v-model="director1_dated" :locale="'th'" autoApply borderless
:readonly="!status" :enableTimePicker="false" week-start="0">
<datepicker
menu-class-name="modalfix"
v-model="director1_dated"
:locale="'th'"
autoApply
borderless
:readonly="!status"
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }">
{{ year + 543 }}
</template>
@ -1153,12 +1288,25 @@ const putformData = () => {
{{ parseInt(value + 543) }}
</template>
<template #trigger>
<q-input outlined dense :disable="!status" class="full-width datepicker col-3" :model-value="director1_dated != null
? date2Thai(director1_dated)
: null
" :label="`${'ลงวันที่'}`" :rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]">
<q-input
outlined
dense
:disable="!status"
class="full-width datepicker col-3"
:model-value="
director1_dated != null
? date2Thai(director1_dated)
: null
"
:label="`${'ลงวันที่'}`"
:rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]"
>
<template v-slot:prepend>
<q-icon name="event" class="cursor-pointer" style="color: var(--q-primary)">
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
@ -1174,11 +1322,26 @@ const putformData = () => {
<!-- อำนาจสงบรรจตามมาตรา 52 -->
</div>
<div class="col-12 row q-col-gutter-md">
<q-select class="col-xs-12 col-sm-8" dense v-model="director_id3" outlined label="ชื่อ-นามสกุล" disable
option-label="name" />
<q-select
class="col-xs-12 col-sm-8"
dense
v-model="director_id3"
outlined
label="ชื่อ-นามสกุล"
disable
option-label="name"
/>
<div class="col-xs-12 col-sm-4">
<datepicker menu-class-name="modalfix" v-model="director2_dated" :locale="'th'" autoApply
:readonly="!status" borderless :enableTimePicker="false" week-start="0">
<datepicker
menu-class-name="modalfix"
v-model="director2_dated"
:locale="'th'"
autoApply
:readonly="!status"
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }">
{{ year + 543 }}
</template>
@ -1186,12 +1349,25 @@ const putformData = () => {
{{ parseInt(value + 543) }}
</template>
<template #trigger>
<q-input outlined dense :disable="!status" class="full-width datepicker col-3" :model-value="director2_dated != null
? date2Thai(director2_dated)
: null
" :label="`${'ลงวันที่'}`" :rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]">
<q-input
outlined
dense
:disable="!status"
class="full-width datepicker col-3"
:model-value="
director2_dated != null
? date2Thai(director2_dated)
: null
"
:label="`${'ลงวันที่'}`"
:rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]"
>
<template v-slot:prepend>
<q-icon name="event" class="cursor-pointer" style="color: var(--q-primary)">
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
@ -1202,7 +1378,10 @@ const putformData = () => {
</div>
</div>
<q-toolbar class="text-primary" v-if="routeName == 'probationFormAddevaluascore'">
<q-toolbar
class="text-primary"
v-if="routeName == 'probationFormAddevaluascore'"
>
<q-space />
<q-btn label="บันทึก" color="secondary" @click="savaForm" />
</q-toolbar>

View file

@ -42,40 +42,6 @@ const director_id2 = ref<any>(null);
const director_id3 = ref<any>(null);
const myForm = ref<any>(null);
onMounted(() => {
fecthAssign(assignId.value);
});
const fecthAssign = async (id: string) => {
showLoader();
await http
.get(config.API.evaluateChairman(id))
.then(async (res: any) => {
person.value = await res.data.data.person;
assign.value = await res.data.data.assign;
evaluate_no.value = await res.data.data.evaluate_no;
start_date.value = await res.data.data.start_date;
date_finish.value = await res.data.data.end_date;
director_id.value = res.data.data.chairman.name;
director_id2.value = res.data.data.commander.name;
if (res.data.data.mentors.length != 0) {
director_id3.value = res.data.data.mentors[0].name;
}
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
hideLoader();
});
};
const list2_1 = probationStore.behavior_no1;
const list2_2 = probationStore.behavior_no2;
const list2_3 = probationStore.behavior_no3;
const director1_dated = ref<any>("");
const director2_dated = ref<any>("");
@ -114,6 +80,40 @@ const develop_result_option = ref<any>([
]);
// footer
const dateAutherise = ref<any>(null);
onMounted(() => {
fecthAssign(assignId.value);
});
const fecthAssign = async (id: string) => {
showLoader();
await http
.get(config.API.evaluateChairman(id))
.then(async (res: any) => {
person.value = await res.data.data.person;
assign.value = await res.data.data.assign;
evaluate_no.value = await res.data.data.evaluate_no;
start_date.value = await res.data.data.start_date;
date_finish.value = await res.data.data.end_date;
director_id.value = res.data.data.chairman.name;
director_id2.value = res.data.data.commander.name;
if (res.data.data.mentors.length != 0) {
director_id3.value = res.data.data.mentors[0].name;
}
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
hideLoader();
});
};
const list2_1 = probationStore.behavior_no1;
const list2_2 = probationStore.behavior_no2;
const list2_3 = probationStore.behavior_no3;
// score
const score1 = computed(() => {
@ -238,8 +238,6 @@ const variablesToWatch = [learn_level, apply_level, success_level];
const savaForm = async () => {
let hasError = false;
// await selectResult1.value.validate();
// await selectResult2.value.validate();
if (
learn_level.value === 0 ||
apply_level.value === 0 ||
@ -942,105 +940,6 @@ watch(lengthdiscipline_level, (newLength) => {
<q-input outlined dense type="number" v-model="other_training_percent" />
</div>
</div>
<!-- <q-list dense>
<q-item dense tag="label" v-ripple>
<q-item-section>
<q-item-label>1. การปฐมนเทศ</q-item-label>
</q-item-section>
<q-item-section side>
<div class="row">
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="orientation"
val="1"
label="ดำเนินการเเล้ว"
/>
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="orientation"
val="0"
label=" ยังไม่ได้ดำเนินการ"
/>
</div>
</q-item-section>
</q-item>
<q-separator class="q-my-xs" />
<q-item dense tag="label" v-ripple>
<q-item-section>
<q-item-label>2. การเรยนรวยตนเอง</q-item-label>
</q-item-section>
<q-item-section side>
<div class="row">
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="self_learning"
val="1"
label="ดำเนินการเเล้ว"
/>
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="self_learning"
val="0"
label=" ยังไม่ได้ดำเนินการ"
/>
</div>
</q-item-section>
</q-item>
<q-separator class="q-my-xs" />
<q-item dense tag="label" v-ripple>
<q-item-section>
<q-item-label>3. การอบรมสมนารวมก</q-item-label>
</q-item-section>
<q-item-section side>
<div class="row">
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="training_seminar"
val="1"
label="ดำเนินการเเล้ว"
/>
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="training_seminar"
val="0"
label=" ยังไม่ได้ดำเนินการ"
/>
</div>
</q-item-section>
</q-item>
<q-separator class="q-my-xs" />
<q-item dense tag="label" v-ripple>
<q-item-section>
<q-item-label
>4. การอบรมอ ตามทหนวยงานกำหนด (าม)</q-item-label
>
</q-item-section>
<q-item-section side>
<div class="row">
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="other_training"
val="1"
label="ดำเนินการเเล้ว"
/>
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="other_training"
val="0"
label=" ยังไม่ได้ดำเนินการ"
/>
</div>
</q-item-section>
</q-item>
</q-list> -->
<q-separator class="q-my-xs" />
<div class="col-xs-12 col-sm-11 col-md-11 q-my-sm">
<div class="row q-gutter-md q-pl-sm">
@ -1076,7 +975,6 @@ watch(lengthdiscipline_level, (newLength) => {
<div class="row col-12 q-gutter-lg no-margin justify-center">
<div class="col-xs-12 col-sm-11 row justify-center">
<div class="col-12 text-top0 items-center">
<!-- <q-avatar class="bg-grey-2 q-mr-sm" size="28px">5</q-avatar> -->
สรปผล การประเมนผลทดลองปฎหนาทราชการ
</div>
<div class="col-12">
@ -1200,7 +1098,6 @@ watch(lengthdiscipline_level, (newLength) => {
<div class="col-12">
<q-separator size="3px" color="grey-2" />
</div>
<!-- <Footer /> -->
<div class="row col-12">
<q-space />
<q-btn label="บันทึก" color="secondary" @click="savaForm" v-if="status" />

View file

@ -28,26 +28,6 @@ const assign = ref<any>([]);
const mentors = ref<any>([]);
const commander = ref<any>([]);
const status = ref<boolean>(true);
const saveEdit = async (id: string) => {
await myForm.value.validate().then((result: boolean) => {
if (result) {
dialogConfirm($q, async () => await postData("put"));
}else {
dialogMessageNotify($q, "กรุณากรอกข้อมูลให้ครบ");
}
});
};
// const edit = () => {
// status.value = true;
// };
// const cancel = () => {
// status.value = false;
// };
onMounted(() => {
fecthAssign(assignId.value);
fecthResult(assignId.value);
});
const ID = ref<string>('')
const date_start = ref<Date>(new Date());
const date_finish = ref<Date>();
@ -59,13 +39,25 @@ const chairman_dated = ref<Date>();
const director1_dated = ref<any>("");
const director2_dated = ref<any>("");
const fullname = ref<string>("");
const director_id = ref<any>(null);
const director_id2 = ref<any>(null);
const director_id3 = ref<any>(null);
const optionDirector = ref<any>([]);
const saveEdit = async (id: string) => {
await myForm.value.validate().then((result: boolean) => {
if (result) {
dialogConfirm($q, async () => await postData("put"));
}else {
dialogMessageNotify($q, "กรุณากรอกข้อมูลให้ครบ");
}
});
};
const fecthAssign = async (id: string) => {
showLoader();
await http
.get(config.API.evaluateReportcreate(id))
.then((res) => {
// assign.value = res.data.data.assign;
mentors.value = res.data.data.mentors;
date_start.value = res.data.data.assign.date_start;
date_finish.value = res.data.data.assign.date_finish;
@ -96,7 +88,6 @@ const fecthResult = async (id: string) => {
if (res.data.data != null) {
const data = await res.data.data.evaluate;
ID.value = data.id
// fullname.value = res.data.data.profile.name;
date_start.value = data.date_start;
date_finish.value = data.date_finish;
develop.value = await Number(data.develop_complete);
@ -128,11 +119,7 @@ const optionsResult = [
},
];
const director_id = ref<any>(null);
const director_id2 = ref<any>(null);
const director_id3 = ref<any>(null);
const optionDirector = ref<any>([]);
const savaForm = async () => {
await myForm.value.validate().then((result: boolean) => {
@ -203,7 +190,6 @@ const postData = async (action: string) => {
})
.finally(() => {
status.value = false;
// fecthAssign(assignId.value);
fecthResult(assignId.value);
});
}
@ -213,13 +199,17 @@ const selectRuslt = () => {
expand_month.value = "";
}
};
onMounted(() => {
fecthAssign(assignId.value);
fecthResult(assignId.value);
});
</script>
<template>
<div class="row col-12">
<div class="toptitle text-dark col-12 row items-center q-gutter-md">
<div>แบบรายงานการประเมนฯ</div>
<!-- <q-space /> -->
<q-btn
v-if="!status"
size="12px"
@ -246,37 +236,6 @@ const selectRuslt = () => {
</q-list>
</q-menu>
</q-btn>
<!-- <div v-if="action == 'edit'">
<div v-if="status == false">
<q-btn
dense
flat
round
color="primary"
@click="edit()"
icon="mdi-pencil-outline"
>
<q-tooltip>แกไขขอม</q-tooltip>
</q-btn>
</div>
<div v-else>
<q-btn dense flat round color="red" @click="cancel()" icon="mdi-undo">
<q-tooltip>ยกเล</q-tooltip>
</q-btn>
<q-btn
dense
flat
round
class="q-ml-sm"
color="public"
@click="saveEdit(assignId)"
icon="mdi-content-save-outline"
>
<q-tooltip>นทกขอม</q-tooltip>
</q-btn>
</div>
</div> -->
</div>
<q-form ref="myForm">
<div class="row col-12">

View file

@ -2,10 +2,9 @@
import { ref, onMounted, watch } from "vue";
import { useQuasar } from "quasar";
import { useProbationDataStore } from "@/modules/05_placement/storeProbation";
import { useCounterMixin } from "@/stores/mixin";
import { useRouter, useRoute } from "vue-router";
import http from "@/plugins/http";
import config from "@/app.config";
@ -25,7 +24,6 @@ const {
notifyError,
dateToISO,
messageError,
showLoader,
hideLoader,
dialogConfirm,
} = mixin;
@ -41,6 +39,36 @@ const evaluate_no = ref<number>(1);
const dataArr = ref<any>();
const checkArray = ref<number>(0);
const list1_1 = ref<any>([]);
const option = ref<any>([]);
const evaluate_expenct_level = ref<any>([{ id: "1", label: "ผลผลิตของงานที่คาดหวัง 1", level: 0 }]);
const evaluate_ouptut = ref<any>([{ level: 0, text: "" }]);
const knowledge_level = ref<number>(0);
const skill_level = ref<number>(0);
const competency_level = ref<number>(0);
const learn_level = ref<number>(0);
const apply_level = ref<number>(0);
const etc = ref<any>(false); // checkBox 1.8
const achievement_other = ref<any>({ text: "", level: 0 });
const achievement_strength_desc = ref<string>("");
const achievement_improve_desc = ref<string>("");
const conduct_level = ref<any>([]);
const moral_level = ref<any>([]);
const discipline_level = ref<any>([]);
const etc2 = ref<any>(false); // checkBox 2.4
const behavio_orther = ref<any>({ text: "", level: 0 });
const behavior_strength_desc = ref<string>("");
const behavior_improve_desc = ref<string>("");
const orientation = ref<any>(null);
const self_learning = ref<any>(null);
const training_seminar = ref<any>(null);
const other_training = ref<any>(null);
const Autherise = ref<any>(null);
const dateAutherise = ref<any>(new Date());
const achievement_strengthRef = ref<any>(null);
const achievement_inproveRef = ref<any>(null);
const behavio_strengthRef = ref<any>(null);
const behavio_inproveRef = ref<any>(null);
const edit = () => {
status.value = true;
@ -55,50 +83,12 @@ const props = defineProps({
action: String,
});
onMounted(async () => {
if (props.tab && props.action == "edit") {
evaluate_no.value = Number(props.tab.charAt(4));
dataArr.value = await props.data;
fecthFormdata();
}
});
watch(props, async () => {
if (props.tab && props.action == "edit") {
evaluate_no.value = Number(props.tab.charAt(4));
dataArr.value = await props.data;
fectFormfull();
}
});
const fecthFormdata = async () => {
await http
.get(config.API.formevaluateRecord(assignId.value))
.then(async (res: any) => {
await fecthAssignoutput(res.data.data);
await fectFormfull();
// if (props.action == "add") {
// evaluate_no.value = res.data.data.evaluate_no;
// start_date.value = res.data.data.start_date;
// date_finish.value = res.data.data.end_date;
// person.value = res.data.data.person;
// option.value.push(res.data.data.director);
// }
// Autherise.value = res.data.data.director.name;
// list1_1.value = res.data.data.assign_output;
// evaluate_expenct_level.value = await res.data.data.assign_output.map(
// (e: any) => ({
// id: e.id,
// labal: e.output_desc,
// })
// );
// evaluate_ouptut.value = await res.data.data.assign_output.map(
// (e: any) => ({
// id: e.id,
// })
// );
// checkArray.value = list1_1.value.length;
})
.catch((e: any) => {})
.finally(() => {
@ -123,7 +113,6 @@ const fectFormfull = async () => {
fecthFormRound();
};
const fecthFormRound = async () => {
// showLoader();
try {
let data = await dataArr.value;
evaluate_id.value = data.id;
@ -176,15 +165,12 @@ const fecthFormRound = async () => {
}
status.value = false;
// setTimeout(() => {
// hideLoader();
// }, 1000);
} catch (error) {
hideLoader();
}
};
const list1_1 = ref<any>([]);
const list1_2 = [
{ id: "", label: "" },
{ id: "", label: "" },
@ -202,63 +188,18 @@ const list2_1 = probationStore.behavior_no1;
const list2_2 = probationStore.behavior_no2;
const list2_3 = probationStore.behavior_no3;
const option = ref<any>([]);
// part 1
const evaluate_expenct_level = ref<any>([
{ id: "1", label: "ผลผลิตของงานที่คาดหวัง 1", level: 0 },
// { id: "2", label: " 2", level: 0 },
// { id: "3", label: " 3", level: 0 },
// { id: "4", label: " 4", level: 0 },
// { id: "5", label: " 5", level: 0 },
]);
const evaluate_ouptut = ref<any>([
{ level: 0, text: "" },
// { level: 0, text: "" },
// { level: 0, text: "" },
// { level: 0, text: "" },
// { level: 0, text: "" },
]);
const knowledge_level = ref<number>(0);
const skill_level = ref<number>(0);
const competency_level = ref<number>(0);
const learn_level = ref<number>(0);
const apply_level = ref<number>(0);
const etc = ref<any>(false); // checkBox 1.8
const achievement_other = ref<any>({ text: "", level: 0 });
const achievement_strength_desc = ref<string>("");
const achievement_improve_desc = ref<string>("");
// part 2
const conduct_level = ref<any>([]);
const moral_level = ref<any>([]);
const discipline_level = ref<any>([]);
const etc2 = ref<any>(false); // checkBox 2.4
const behavio_orther = ref<any>({ text: "", level: 0 });
const behavior_strength_desc = ref<string>("");
const behavior_improve_desc = ref<string>("");
// part 3
const orientation = ref<any>(null);
const self_learning = ref<any>(null);
const training_seminar = ref<any>(null);
const other_training = ref<any>(null);
// footer
const Autherise = ref<any>(null);
const dateAutherise = ref<any>(new Date());
//rules
const evaluate_ouptutRules = [
(val: any) => (val && val.length > 0) || "กรุณากรอกเหตุผลที่เกิดขึ้น",
];
const achievement_strengthRef = ref<any>(null);
const achievement_strengthRules = [
(val: any) => (val && val.length > 0) || "กรุณากรอกข้อมูลจุดเด่น",
];
const achievement_inproveRef = ref<any>(null);
const behavio_strengthRef = ref<any>(null);
const behavio_strengthRules = [
(val: any) => (val && val.length > 0) || "กรุณากรอกข้อมูลจุดเด่น",
];
const behavio_inproveRef = ref<any>(null);
const savaForm = () => {
achievement_strengthRef.value.validate();
@ -273,14 +214,11 @@ const savaForm = () => {
competency_level.value === 0 ||
learn_level.value === 0 ||
apply_level.value === 0 ||
// success_level.value === 0 ||
achievement_strength_desc.value === "" ||
// achievement_improve_desc.value === "" ||
conduct_level.value.length < 4 ||
moral_level.value.length < 3 ||
discipline_level.value.length < 5 ||
behavior_strength_desc.value === "" ||
// behavior_improve_desc.value === "" ||
orientation.value === null ||
self_learning.value === null ||
training_seminar.value === null
@ -318,10 +256,7 @@ const putformData = () => {
competency_level: competency_level.value,
learn_level: learn_level.value,
apply_level: apply_level.value,
// success_level: success_level.value,
achievement_other: achievement_other.value,
// achievement_other_desc: etc_text.value,
// achievement_other_level: ext_value.value,
achievement_strength_desc: achievement_strength_desc.value,
achievement_improve_desc: achievement_improve_desc.value,
conduct1_level: conduct_level.value[0],
@ -336,8 +271,6 @@ const putformData = () => {
discipline3_level: discipline_level.value[2],
discipline4_level: discipline_level.value[3],
discipline5_level: discipline_level.value[4],
// behavio_orther_desc: etc_text2.value,
// behavio_orther_level: ext_value2.value,
behavio_orther: behavio_orther.value,
behavior_strength_desc: behavior_strength_desc.value,
behavior_improve_desc: behavior_improve_desc.value,
@ -346,7 +279,6 @@ const putformData = () => {
training_seminar: Number(training_seminar.value),
other_training: Number(other_training.value),
assessor_dated: dateToISO(dateAutherise.value),
// commander_dated: dateAutherise.value,
};
dialogConfirm($q, () =>
@ -377,13 +309,28 @@ const editData = async (data: any) => {
messageError($q, e);
});
};
watch(props, async () => {
if (props.tab && props.action == "edit") {
evaluate_no.value = Number(props.tab.charAt(4));
dataArr.value = await props.data;
fectFormfull();
}
});
onMounted(async () => {
if (props.tab && props.action == "edit") {
evaluate_no.value = Number(props.tab.charAt(4));
dataArr.value = await props.data;
fecthFormdata();
}
});
</script>
<template>
<div class="row col-12 no-margin q-pa-sm">
<div class="toptitle text-dark col-12 row items-center q-gutter-md">
<div>แบบบนทกผล (เเล)</div>
<!-- <q-space /> -->
<div v-if="status == false">
<q-btn
dense
@ -418,23 +365,27 @@ const editData = async (data: any) => {
<div class="col-12 text-top0 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
นเรมทดลองปฏหนาทราชการ งแตนท
<span class="text-black q-px-sm">{{
date2Thai(assign.date_start)
}}</span>
<span class="text-black q-px-sm">
{{ date2Thai(assign.date_start) }}
</span>
งวนท
<span class="text-black q-px-sm">{{
date2Thai(assign.date_finish)
}}</span>
<span class="text-black q-px-sm">
{{ date2Thai(assign.date_finish) }}
</span>
</div>
<div class="col-12 text-top0 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
<span class="text-primary q-pr-sm">{{
"ครั้งที่ " + evaluate_no
}}</span>
<span class="text-primary q-pr-sm">
{{ "ครั้งที่ " + evaluate_no }}
</span>
ระหวางวนท
<span class="text-black q-px-sm">{{ date2Thai(start_date) }}</span>
<span class="text-black q-px-sm">
{{ date2Thai(start_date) }}
</span>
งวนท
<span class="text-black q-px-sm">{{ date2Thai(date_finish) }}</span>
<span class="text-black q-px-sm">
{{ date2Thai(date_finish) }}
</span>
</div>
<div class="col-12 q-pt-md">
<q-separator size="3px" color="grey-2" />
@ -512,7 +463,6 @@ const editData = async (data: any) => {
<q-list dense v-for="(list, i) in list1_2" :key="i">
<q-item dense tag="label" v-ripple v-if="i < checkArray">
<q-item-section>
<!-- <q-item-label>{{ list.label }}</q-item-label> -->
<q-input
outlined
dense
@ -554,7 +504,6 @@ const editData = async (data: any) => {
</q-rating>
</q-item-section>
</q-item>
<!-- <q-separator class="q-my-xs" v-if="i + 1 < list1_2.length" /> -->
</q-list>
</q-card>
</div>
@ -760,46 +709,6 @@ const editData = async (data: any) => {
</q-item>
</q-list>
</q-card>
<!-- <q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
<q-list dense>
<q-item dense tag="label" v-ripple>
<q-item-section>
<q-item-label>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
1.7. ความสำเรจของงานทไดบมอบหมาย</q-item-label
>
</q-item-section>
<q-item-section side>
<q-rating
v-model="success_level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก</q-tooltip>
</template>
<template v-slot:tip-2>
<q-tooltip>ำกวาความคาดหวงคอนขางมาก</q-tooltip>
</template>
<template v-slot:tip-3>
<q-tooltip>เปนไปตามความคาดหว</q-tooltip>
</template>
<template v-slot:tip-4>
<q-tooltip>งวาความคาดหวงคอนขางมาก</q-tooltip>
</template>
<template v-slot:tip-5>
<q-tooltip>งกวาความคาดหวงมาก</q-tooltip>
</template>
</q-rating>
</q-item-section>
</q-item>
</q-list>
</q-card> -->
<q-card class="text-top0 col-xs-12 col-sm-11 q-pa-xs q-pl-sm">
<q-list dense>
<q-item dense tag="label" v-ripple>
@ -919,9 +828,6 @@ const editData = async (data: any) => {
/>
</div>
</div>
<!-- Part 2 -->
<!-- <Part2 /> -->
<div class="row col-12 q-gutter-lg no-margin">
<div class="col-12 row">
<div class="col-12 text-top0 items-center">
@ -1140,7 +1046,6 @@ const editData = async (data: any) => {
</q-list>
</q-card>
</div>
<!-- <FormComment /> -->
<div class="row col-12 q-gutter-lg no-margin">
<div class="col-12 row">
<div class="col-12 text-top0 row items-center q-pl-lg">
@ -1183,9 +1088,6 @@ const editData = async (data: any) => {
</div>
</div>
</div>
<!-- Part 3 -->
<!-- <Part3 /> -->
<div class="row col-12 q-gutter-lg no-margin">
<div class="col-12 row justify-center">
<div class="col-12 text-top0 items-center">
@ -1307,9 +1209,6 @@ const editData = async (data: any) => {
</q-card>
</div>
</div>
<!-- Footer -->
<!-- <Footer /> -->
<div class="row col-12 q-gutter-lg no-margin justify-center">
<div class="col-xs-12 col-sm-11 row">
<div class="col-12 text-top2 row items-center">

View file

@ -3,13 +3,12 @@ import { ref, onMounted, watch, computed } from "vue";
import { useQuasar } from "quasar";
import { useProbationDataStore } from "@/modules/05_placement/storeProbation";
import { useCounterMixin } from "@/stores/mixin";
// import { formatDate } from "@fullcalendar/core";
import { useRoute, useRouter } from "vue-router";
import http from "@/plugins/http";
import config from "@/app.config";
import criterion from "@/modules/05_placement/components/Other/Criterion.vue"
import criterion from "@/modules/05_placement/components/Other/Criterion.vue";
const $q = useQuasar();
const route = useRoute();
@ -35,14 +34,57 @@ const evaluate_no = ref<string>("");
const start_date = ref<Date>(new Date());
const date_finish = ref<Date>(new Date());
const round = ref<number>();
const list1_1 = ref<any>([]);
const list1_2 = [{ id: "", label: "" }];
const list2_1 = probationStore.behavior_no1;
const list2_2 = probationStore.behavior_no2;
const list2_3 = probationStore.behavior_no3;
const option = ref<any>([]);
const achievement_strengthRef = ref<any>(null);
const achievement_inproveRef = ref<any>(null);
const behavio_strengthRef = ref<any>(null);
const behavio_inproveRef = ref<any>(null);
const dateToday = ref<Date>(new Date("10-10-2023"));
const dateEnd = ref<Date>(new Date("12-10-2023"));
const period = ref<number>(1);
// part 1
const evaluate_expenct_level = ref<any>([]);
const evaluate_ouptut = ref<any>([]);
const knowledge_level = ref<number>(0);
const skill_level = ref<number>(0);
const competency_level = ref<number>(0);
const learn_level = ref<number>(0);
const apply_level = ref<number>(0);
const success_level = ref<number>(0);
const etc = ref<any>(false); // checkBox 1.8
const achievement_other = ref<any>({ text: "", level: 0 });
const achievement_strength_desc = ref<string>("");
const achievement_improve_desc = ref<string>("");
// part 2
const conduct_level = ref<any>([]);
const moral_level = ref<any>([]);
const discipline_level = ref<any>([]);
const etc2 = ref<any>(false); // checkBox 2.4
const behavio_orther = ref<any>({ text: "", level: 0 });
const behavior_strength_desc = ref<string>("");
const behavior_improve_desc = ref<string>("");
// part 3
const orientation = ref<any>(null);
const self_learning = ref<any>(null);
const training_seminar = ref<any>(null);
const other_training = ref<any>(null);
// footer
const Autherise = ref<any>(null);
const dateAutherise = ref<any>(new Date());
const checkArray = ref<number>(0);
const alerts = Array(20)
.fill(null)
.map(() => ref<boolean>(false));
onMounted(async () => {
await fecthFormdata(assignId.value);
});
const fecthFormdata = async (id: string) => {
await http
.get(config.API.formevaluateRecordCommander(id))
@ -76,83 +118,23 @@ const fecthFormdata = async (id: string) => {
.catch((e: any) => {});
};
const list1_1 = ref<any>([
// { id: "1", label: " 1" },
// { id: "2", label: " 2" },
// { id: "3", label: " 3" },
// { id: "4", label: " 4" },
// { id: "5", label: " 5" },
]);
const list1_2 = [{ id: "", label: "" }];
const list2_1 = probationStore.behavior_no1;
const list2_2 = probationStore.behavior_no2;
const list2_3 = probationStore.behavior_no3;
const option = ref<any>([]);
const dateToday = ref<Date>(new Date("10-10-2023"));
const dateEnd = ref<Date>(new Date("12-10-2023"));
const period = ref<number>(1);
// part 1
const evaluate_expenct_level = ref<any>([]);
const evaluate_ouptut = ref<any>([
// { level: 0, text: "" },
// { level: 0, text: "" },
// { level: 0, text: "" },
// { level: 0, text: "" },
// { level: 0, text: "" },
]);
const knowledge_level = ref<number>(0);
const skill_level = ref<number>(0);
const competency_level = ref<number>(0);
const learn_level = ref<number>(0);
const apply_level = ref<number>(0);
const success_level = ref<number>(0);
const etc = ref<any>(false); // checkBox 1.8
const achievement_other = ref<any>({ text: "", level: 0 });
// const etc_text = ref<string>("");
// const ext_value = ref<number>(0);
const achievement_strength_desc = ref<string>("");
const achievement_improve_desc = ref<string>("");
// part 2
const conduct_level = ref<any>([]);
const moral_level = ref<any>([]);
const discipline_level = ref<any>([]);
const etc2 = ref<any>(false); // checkBox 2.4
const behavio_orther = ref<any>({ text: "", level: 0 });
// const etc_text2 = ref<string>("");
// const ext_value2 = ref<number>(0);
const behavior_strength_desc = ref<string>("");
const behavior_improve_desc = ref<string>("");
// part 3
const orientation = ref<any>(null);
const self_learning = ref<any>(null);
const training_seminar = ref<any>(null);
const other_training = ref<any>(null);
// footer
const Autherise = ref<any>(null);
const dateAutherise = ref<any>(new Date());
//rules
const evaluate_ouptutRules = [
(val: any) => (val && val.length > 0) || "กรุณากรอกเหตุผลที่เกิดขึ้น",
];
const achievement_strengthRef = ref<any>(null);
const achievement_strengthRules = [
(val: any) => (val && val.length > 0) || "กรุณากรอกข้อมูลจุดเด่น",
];
const achievement_inproveRef = ref<any>(null);
const achievement_inproveRules = [
(val: any) => (val && val.length > 0) || "กรุณากรอกข้อมูลสิ่งที่ควรปรับปรุง",
];
const behavio_strengthRef = ref<any>(null);
const behavio_strengthRules = [
(val: any) => (val && val.length > 0) || "กรุณากรอกข้อมูลจุดเด่น",
];
const behavio_inproveRef = ref<any>(null);
const behavio_inproveRules = [
(val: any) => (val && val.length > 0) || "กรุณากรอกข้อมูลสิ่งที่ควรปรับปรุง",
];
@ -186,21 +168,11 @@ const variablesToWatch = [
const ArrayCountbotton = [orientation, self_learning, training_seminar];
const savaForm = () => {
achievement_strengthRef.value.validate();
// achievement_inproveRef.value.validate();
behavio_strengthRef.value.validate();
// behavio_inproveRef.value.validate();
let hasError = false;
// const filterlevel1_1 = evaluate_expenct_level.value.filter(
// (e: any) => e.level == 0
// );
// const filter_ouptut1_2 = evaluate_ouptut.value.filter(
// (e: any) => e.level == 0 || e.text == ""
// );
if (
// filterlevel1_1.length != 0 ||
// filter_ouptut1_2.length != 0 ||
lengthevaluate_expenct_level.value !==
evaluate_expenct_level.value.length ||
lengthevaluate_ouptut.value !== evaluate_ouptut.value.length ||
@ -211,12 +183,10 @@ const savaForm = () => {
apply_level.value === 0 ||
success_level.value === 0 ||
achievement_strength_desc.value === "" ||
// achievement_improve_desc.value === "" ||
lengthconduct.value !== 4 ||
lengthmoral_level.value !== 3 ||
lengthdiscipline_level.value !== 5 ||
behavior_strength_desc.value === "" ||
// behavior_improve_desc.value === "" ||
orientation.value === null ||
self_learning.value === null ||
training_seminar.value === null
@ -287,8 +257,6 @@ const putformData = () => {
apply_level: apply_level.value,
success_level: success_level.value,
achievement_other: achievement_other.value,
// achievement_other_desc: etc_text.value,
// achievement_other_level: ext_value.value,
achievement_strength_desc: achievement_strength_desc.value,
achievement_improve_desc: achievement_improve_desc.value,
conduct1_level: conduct_level.value[0],
@ -303,8 +271,6 @@ const putformData = () => {
discipline3_level: discipline_level.value[2],
discipline4_level: discipline_level.value[3],
discipline5_level: discipline_level.value[4],
// behavio_orther_desc: etc_text2.value,
// behavio_orther_level: ext_value2.value,
behavio_orther: behavio_orther.value,
behavior_strength_desc: behavior_strength_desc.value,
behavior_improve_desc: behavior_improve_desc.value,
@ -313,7 +279,6 @@ const putformData = () => {
training_seminar: Number(training_seminar.value),
other_training: Number(other_training.value),
assessor_dated: dateToISO(dateAutherise.value),
// commander_dated: dateAutherise.value,
};
dialogConfirm($q, async () => await saveformdata(data));
};
@ -376,6 +341,9 @@ const getBordered = (i: boolean) => {
border_custom: i,
};
};
onMounted(async () => {
await fecthFormdata(assignId.value);
});
</script>
<template>
@ -508,7 +476,6 @@ const getBordered = (i: boolean) => {
<q-list dense v-for="(list, i) in list1_2" :key="i">
<q-item dense tag="label" v-ripple v-if="i < checkArray">
<q-item-section>
<!-- <q-item-label>{{ list.label }}</q-item-label> -->
<q-input
outlined
dense
@ -549,7 +516,6 @@ const getBordered = (i: boolean) => {
</q-rating>
</q-item-section>
</q-item>
<!-- <q-separator class="q-my-xs" v-if="i + 1 < list1_2.length" /> -->
</q-list>
</q-card>
</div>

View file

@ -41,6 +41,46 @@ const evaluate_no = ref<number>(1);
const dataArr = ref<any>();
const checkArray = ref<number>(0);
const list1_1 = ref<any>([]);
const option = ref<any>([]);
// part 1
const evaluate_expenct_level = ref<any>([ { id: "1", label: "ผลผลิตของงานที่คาดหวัง 1", level: 0 } ]);
const evaluate_ouptut = ref<any>([ { level: 0, text: "" } ]);
const knowledge_level = ref<number>(0);
const skill_level = ref<number>(0);
const competency_level = ref<number>(0);
const learn_level = ref<number>(0);
const apply_level = ref<number>(0);
const etc = ref<any>(false); // checkBox 1.8
const achievement_other = ref<any>({ text: "", level: 0 });
const achievement_strength_desc = ref<string>("");
const achievement_improve_desc = ref<string>("");
// part 2
const conduct_level = ref<any>([]);
const moral_level = ref<any>([]);
const discipline_level = ref<any>([]);
const etc2 = ref<any>(false); // checkBox 2.4
const behavio_orther = ref<any>({ text: "", level: 0 });
const behavior_strength_desc = ref<string>("");
const behavior_improve_desc = ref<string>("");
// part 3
const orientation = ref<any>(null);
const self_learning = ref<any>(null);
const training_seminar = ref<any>(null);
const other_training = ref<any>(null);
// footer
const Autherise = ref<any>(null);
const dateAutherise = ref<any>(new Date());
//rules
const evaluate_ouptutRules = [
(val: any) => (val && val.length > 0) || "กรุณากรอกเหตุผลที่เกิดขึ้น",
];
const achievement_strengthRef = ref<any>(null);
const achievement_inproveRef = ref<any>(null);
const behavio_strengthRef = ref<any>(null);
const behavio_inproveRef = ref<any>(null);
const edit = () => {
status.value = true;
@ -55,50 +95,12 @@ const props = defineProps({
action: String,
});
onMounted(async () => {
if (props.tab && props.action == "edit") {
evaluate_no.value = Number(props.tab.charAt(4));
dataArr.value = await props.data;
fecthFormdata();
}
});
watch(props, async () => {
if (props.tab && props.action == "edit") {
evaluate_no.value = Number(props.tab.charAt(4));
dataArr.value = await props.data;
fectFormfull();
}
});
const fecthFormdata = async () => {
await http
.get(config.API.formevaluateRecordCommander(assignId.value))
.then(async (res: any) => {
await fecthAssignoutput(res.data.data);
await fectFormfull();
// if (props.action == "add") {
// evaluate_no.value = res.data.data.evaluate_no;
// start_date.value = res.data.data.start_date;
// date_finish.value = res.data.data.end_date;
// person.value = res.data.data.person;
// option.value.push(res.data.data.director);
// }
// Autherise.value = res.data.data.director.name;
// list1_1.value = res.data.data.assign_output;
// evaluate_expenct_level.value = await res.data.data.assign_output.map(
// (e: any) => ({
// id: e.id,
// labal: e.output_desc,
// })
// );
// evaluate_ouptut.value = await res.data.data.assign_output.map(
// (e: any) => ({
// id: e.id,
// })
// );
// checkArray.value = list1_1.value.length;
})
.catch((e: any) => {})
.finally(() => {
@ -123,7 +125,6 @@ const fectFormfull = async () => {
fecthFormRound();
};
const fecthFormRound = async () => {
// showLoader();
try {
let data = await dataArr.value;
evaluate_id.value = data.id;
@ -176,15 +177,11 @@ const fecthFormRound = async () => {
}
status.value = false;
// setTimeout(() => {
// hideLoader();
// }, 1000);
} catch (error) {
hideLoader();
}
};
const list1_1 = ref<any>([]);
const list1_2 = [
{ id: "", label: "" },
{ id: "", label: "" },
@ -202,63 +199,13 @@ const list2_1 = probationStore.behavior_no1;
const list2_2 = probationStore.behavior_no2;
const list2_3 = probationStore.behavior_no3;
const option = ref<any>([]);
// part 1
const evaluate_expenct_level = ref<any>([
{ id: "1", label: "ผลผลิตของงานที่คาดหวัง 1", level: 0 },
// { id: "2", label: " 2", level: 0 },
// { id: "3", label: " 3", level: 0 },
// { id: "4", label: " 4", level: 0 },
// { id: "5", label: " 5", level: 0 },
]);
const evaluate_ouptut = ref<any>([
{ level: 0, text: "" },
// { level: 0, text: "" },
// { level: 0, text: "" },
// { level: 0, text: "" },
// { level: 0, text: "" },
]);
const knowledge_level = ref<number>(0);
const skill_level = ref<number>(0);
const competency_level = ref<number>(0);
const learn_level = ref<number>(0);
const apply_level = ref<number>(0);
const etc = ref<any>(false); // checkBox 1.8
const achievement_other = ref<any>({ text: "", level: 0 });
const achievement_strength_desc = ref<string>("");
const achievement_improve_desc = ref<string>("");
// part 2
const conduct_level = ref<any>([]);
const moral_level = ref<any>([]);
const discipline_level = ref<any>([]);
const etc2 = ref<any>(false); // checkBox 2.4
const behavio_orther = ref<any>({ text: "", level: 0 });
const behavior_strength_desc = ref<string>("");
const behavior_improve_desc = ref<string>("");
// part 3
const orientation = ref<any>(null);
const self_learning = ref<any>(null);
const training_seminar = ref<any>(null);
const other_training = ref<any>(null);
// footer
const Autherise = ref<any>(null);
const dateAutherise = ref<any>(new Date());
//rules
const evaluate_ouptutRules = [
(val: any) => (val && val.length > 0) || "กรุณากรอกเหตุผลที่เกิดขึ้น",
];
const achievement_strengthRef = ref<any>(null);
const achievement_strengthRules = [
(val: any) => (val && val.length > 0) || "กรุณากรอกข้อมูลจุดเด่น",
];
const achievement_inproveRef = ref<any>(null);
const behavio_strengthRef = ref<any>(null);
const behavio_strengthRules = [
(val: any) => (val && val.length > 0) || "กรุณากรอกข้อมูลจุดเด่น",
];
const behavio_inproveRef = ref<any>(null);
const savaForm = () => {
achievement_strengthRef.value.validate();
@ -273,14 +220,11 @@ const savaForm = () => {
competency_level.value === 0 ||
learn_level.value === 0 ||
apply_level.value === 0 ||
// success_level.value === 0 ||
achievement_strength_desc.value === "" ||
// achievement_improve_desc.value === "" ||
conduct_level.value.length < 4 ||
moral_level.value.length < 3 ||
discipline_level.value.length < 5 ||
behavior_strength_desc.value === "" ||
// behavior_improve_desc.value === "" ||
orientation.value === null ||
self_learning.value === null ||
training_seminar.value === null
@ -318,10 +262,7 @@ const putformData = () => {
competency_level: competency_level.value,
learn_level: learn_level.value,
apply_level: apply_level.value,
// success_level: success_level.value,
achievement_other: achievement_other.value,
// achievement_other_desc: etc_text.value,
// achievement_other_level: ext_value.value,
achievement_strength_desc: achievement_strength_desc.value,
achievement_improve_desc: achievement_improve_desc.value,
conduct1_level: conduct_level.value[0],
@ -336,8 +277,6 @@ const putformData = () => {
discipline3_level: discipline_level.value[2],
discipline4_level: discipline_level.value[3],
discipline5_level: discipline_level.value[4],
// behavio_orther_desc: etc_text2.value,
// behavio_orther_level: ext_value2.value,
behavio_orther: behavio_orther.value,
behavior_strength_desc: behavior_strength_desc.value,
behavior_improve_desc: behavior_improve_desc.value,
@ -346,7 +285,6 @@ const putformData = () => {
training_seminar: Number(training_seminar.value),
other_training: Number(other_training.value),
assessor_dated: dateToISO(dateAutherise.value),
// commander_dated: dateAutherise.value,
};
dialogConfirm($q, () =>
@ -380,13 +318,28 @@ const editData = async (data: any) => {
messageError($q, e);
});
};
watch(props, async () => {
if (props.tab && props.action == "edit") {
evaluate_no.value = Number(props.tab.charAt(4));
dataArr.value = await props.data;
fectFormfull();
}
});
onMounted(async () => {
if (props.tab && props.action == "edit") {
evaluate_no.value = Number(props.tab.charAt(4));
dataArr.value = await props.data;
fecthFormdata();
}
});
</script>
<template>
<div class="row col-12 no-margin q-pa-sm">
<div class="toptitle text-dark col-12 row items-center q-gutter-md">
<div>แบบบนทกผล (เเล)</div>
<!-- <q-space /> -->
<div>แบบบนทกผล (งคบบญชา)</div>
<div v-if="status == false">
<q-btn
dense
@ -515,7 +468,6 @@ const editData = async (data: any) => {
<q-list dense v-for="(list, i) in list1_2" :key="i">
<q-item dense tag="label" v-ripple v-if="i < checkArray">
<q-item-section>
<!-- <q-item-label>{{ list.label }}</q-item-label> -->
<q-input
outlined
dense
@ -557,7 +509,6 @@ const editData = async (data: any) => {
</q-rating>
</q-item-section>
</q-item>
<!-- <q-separator class="q-my-xs" v-if="i + 1 < list1_2.length" /> -->
</q-list>
</q-card>
</div>
@ -763,46 +714,6 @@ const editData = async (data: any) => {
</q-item>
</q-list>
</q-card>
<!-- <q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
<q-list dense>
<q-item dense tag="label" v-ripple>
<q-item-section>
<q-item-label>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
1.7. ความสำเรจของงานทไดบมอบหมาย</q-item-label
>
</q-item-section>
<q-item-section side>
<q-rating
v-model="success_level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก</q-tooltip>
</template>
<template v-slot:tip-2>
<q-tooltip>ำกวาความคาดหวงคอนขางมาก</q-tooltip>
</template>
<template v-slot:tip-3>
<q-tooltip>เปนไปตามความคาดหว</q-tooltip>
</template>
<template v-slot:tip-4>
<q-tooltip>งวาความคาดหวงคอนขางมาก</q-tooltip>
</template>
<template v-slot:tip-5>
<q-tooltip>งกวาความคาดหวงมาก</q-tooltip>
</template>
</q-rating>
</q-item-section>
</q-item>
</q-list>
</q-card> -->
<q-card class="text-top0 col-xs-12 col-sm-11 q-pa-xs q-pl-sm">
<q-list dense>
<q-item dense tag="label" v-ripple>

View file

@ -41,7 +41,6 @@ const fecthAssign = async (id: string) => {
await http
.get(config.API.formevaluateCommander(id))
.then(async (res: any) => {
console.log(res);
await fecthdataAssign(res.data.data);
fullname.value = res.data.data.experimentee
? res.data.data.experimentee.name

View file

@ -1,21 +1,51 @@
<script setup lang="ts">
import { ref, useAttrs, onMounted, watch } from "vue";
import { ref, useAttrs, onMounted } from "vue";
import { useCounterMixin } from "@/stores/mixin";
import { useQuasar } from "quasar";
import { useTransferDataStore } from "@/modules/05_placement/store"
import type { QTableProps } from "quasar";
import type {
FormMainProbation,
FormMainProbation2,
} from "@/modules/05_placement/interface/request/Main";
import type { FormMainProbation, FormMainProbation2 } from "@/modules/05_placement/interface/request/Main";
import DialogHeader from "@/modules/04_registry/components/DialogHeader.vue";
import router from "@/router";
import http from "@/plugins/http";
import config from "@/app.config";
import { useCounterMixin } from "@/stores/mixin";
import router from "@/router";
import { useQuasar } from "quasar";
const $q = useQuasar(); // noti quasar
const rows = ref<FormMainProbation[]>([]);
const rows2 = ref<FormMainProbation2[]>([]);
const modal = ref<boolean>(false);
const attrs = ref<any>(useAttrs());
const paging = ref<boolean>(true);
const fillter = ref<number>(0);
const paging2 = ref<boolean>(true);
const Opfillter = ref<any>([{ id: 0, value: "ทั้งหมด" }]);
const filterRef = ref<any>(null);
const filterRef2 = ref<any>(null);
const dataUpdate = ref<any>([]);
const probationlist = ref<any>([]);
const filterKeyword = ref<string>("");
const fillterStatus = ref<any>([]);
const filterKeyword2 = ref<string>("");
const storeFn = useTransferDataStore()
const mixin = useCounterMixin();
const { statusProbationMain } = storeFn
const { messageError, success, showLoader, hideLoader, dialogConfirm } = mixin;
const pagination = ref({
sortBy: "desc",
descending: false,
page: 1,
rowsPerPage: 10,
});
const pagination2 = ref({
sortBy: "desc",
descending: false,
page: 1,
rowsPerPage: 10,
});
const visibleColumns = ref<string[]>([
"no",
"name",
@ -26,6 +56,7 @@ const visibleColumns = ref<string[]>([
"order_number",
"probation_status",
]);
//
const columns = ref<QTableProps["columns"]>([
{
@ -101,8 +132,7 @@ const columns = ref<QTableProps["columns"]>([
style: "font-size: 14px",
},
]);
// ()
const rows = ref<FormMainProbation[]>([]);
// 2
const columns2 = ref<QTableProps["columns"]>([
{
@ -160,18 +190,7 @@ const columns2 = ref<QTableProps["columns"]>([
style: "font-size: 14px",
},
]);
// ()
const rows2 = ref<FormMainProbation2[]>([]);
const modal = ref<boolean>(false);
const probationlist = ref<any>([]);
onMounted(async () => {
getpersonalList();
});
const fillter = ref<number>(0);
const Opfillter = ref<any>([{ id: 0, value: "ทั้งหมด" }]);
const fillterStatus = ref<any>([]);
const ProbationMainFilter = () => {
const useStatus = new Set();
fillterStatus.value.forEach((item: any) => {
@ -187,9 +206,8 @@ const ProbationMainFilter = () => {
});
Opfillter.value.sort((a: any, b: any) => a.id - b.id);
};
const dataUpdate = ref<any>([]);
const updateRows = (body: any) => {
// console.log(body.value);
if (body.value !== "ทั้งหมด") {
const filteredRows = dataUpdate.value.filter(
(item: any) => item.probation_status === body.value
@ -278,7 +296,6 @@ const findlist = async (id: string) => {
response2.forEach((e: any) =>
probationlist.value.push({ ...e, probation: false })
);
// console.log(probationlist.value);
rows2.value = probationlist.value.map((e: any) => ({
id: e.id,
fullname: e.fullname,
@ -318,67 +335,30 @@ const clickAdd = (id: string) => {
const clickClose = async () => {
modal.value = false;
};
const statusProbationMain = (val: number) => {
switch (val) {
case 1:
return "อยู่ระหว่างการทดลองปฏิบัติหน้าที่ราชการ";
case 2:
return "พ้นการทดลองปฏิบัติหน้าที่ราชการ";
case 3:
return "ไม่พ้นการทดลองปฏิบัติหน้าที่ราชการ";
case 4:
return "ยุติการทดลองปฏิบัติหน้าที่ราชการเนื่องจากเปลี่ยนตำแหน่ง";
case 5:
return "ยุติการทดลองปฏิบัติหน้าที่ราชการเนื่องจากลาออก";
case 6:
return "ยุติการทดลองปฏิบัติหน้าที่ราชการเนื่องจากถึงแก่กรรม";
case 7:
return "ขยายระยะเวลาทดลองปฏิบัติหน้าที่ราชการ";
case 8:
return "ดึงรายชื่อไปออกคำสั่งแล้ว";
default:
return " ";
}
};
//
const filterKeyword = ref<string>("");
const filterRef = ref<any>(null);
const resetFilter = () => {
filterKeyword.value = "";
filterRef.value.focus();
};
const filterKeyword2 = ref<string>("");
const filterRef2 = ref<any>(null);
const resetFilter2 = () => {
filterKeyword2.value = "";
filterRef2.value.focus();
};
const pagination = ref({
sortBy: "desc",
descending: false,
page: 1,
rowsPerPage: 10,
});
const pagination2 = ref({
sortBy: "desc",
descending: false,
page: 1,
rowsPerPage: 10,
});
const attrs = ref<any>(useAttrs());
const paging = ref<boolean>(true);
const paginationLabel = (start: string, end: string, total: string) => {
if (paging.value == true) return " " + start + "-" + end + " ใน " + total;
else return start + "-" + end + " ใน " + total;
};
const paging2 = ref<boolean>(true);
const paginationLabel2 = (start: string, end: string, total: string) => {
if (paging2.value == true) return " " + start + "-" + end + " ใน " + total;
else return start + "-" + end + " ใน " + total;
};
onMounted(async () => {
getpersonalList();
});
</script>
<template>
@ -431,43 +411,6 @@ const paginationLabel2 = (start: string, end: string, total: string) => {
<div v-if="col.name == 'no'">
{{ props.rowIndex + 1 }}
</div>
<!-- <div v-else-if="col.name === 'probation_status'">
<q-icon
size="20px"
v-if="props.row.probation_status === 'PENDING'"
name="mdi-timer-sand"
color="deep-orange"
/>
<q-icon
size="20px"
v-else-if="props.row.probation_status === 'PROCESS'"
name="mdi-timer-sand"
color="deep-orange"
/>
<q-icon
size="20px"
v-else-if="props.row.probation_status === 'PASS'"
name="mdi-check"
color="teal"
/>
<q-icon
size="20px"
v-else-if="props.row.probation_status === 'NO-PASS'"
name="mdi-close"
color="red"
/>
{{
props.row.probation_status === "PENDING"
? "รอมอบหมายงาน"
: props.row.probation_status === "PROCESS"
? "อยู่ระหว่างทดลองงาน"
: props.row.probation_status === "PASS"
? "ผ่านการทดลองงาน"
: props.row.probation_status === "NO-PASS"
? "ไม่ผ่านการทดลองงาน"
: ""
}}
</div> -->
<div v-else>
{{ col.value }}
</div>

View file

@ -3,13 +3,30 @@ import { useRouter, useRoute } from "vue-router";
import { ref, useAttrs, onMounted } from "vue";
import type { QTableProps } from "quasar";
import type { FormProbationDetail } from "@/modules/05_placement/interface/request/Main";
// import type { FormProbationPersonal } from "@/modules/05_placement/interface/request/Main";
import { useCounterMixin } from "@/stores/mixin";
import { date, useQuasar } from "quasar";
import { useQuasar } from "quasar";
import http from "@/plugins/http";
import config from "@/app.config";
const router = useRouter();
const route = useRoute();
const personalId = ref<string>(route.params.id as string);
const $q = useQuasar(); // noti quasar
const rows = ref<FormProbationDetail[]>([]);
const name = ref<string>("");
const attrs = ref<any>(useAttrs());
const paging = ref<boolean>(true);
const filterRef = ref<any>(null);
const organization = ref<string>("");
const avatarprofile = ref<string>("");
const filterKeyword = ref<string>("");
const position_line = ref<string>("");
const position_level = ref<string>("");
const probation_status = ref<any>();
const probation_statusold = ref<string>("");
const mixin = useCounterMixin();
const {
messageError,
@ -19,18 +36,6 @@ const {
date2Thai,
dialogConfirm,
} = mixin;
const router = useRouter();
const route = useRoute();
const personalId = ref<string>(route.params.id as string);
const name = ref<string>("");
const position_line = ref<string>("");
const position_level = ref<string>("");
const organization = ref<string>("");
const probation_status = ref<any>();
const probation_statusold = ref<string>("");
const avatarprofile = ref<string>("");
const visibleColumns = ref<string[]>([
"no",
"date_start",
@ -85,7 +90,6 @@ const columns = ref<QTableProps["columns"]>([
style: "font-size: 14px",
},
]);
const rows = ref<FormProbationDetail[]>([]);
const probation_statusOP = ref<any>([
{
@ -126,10 +130,7 @@ const probation_statusOP = ref<any>([
},
]);
onMounted(async () => {
await getpersonalList();
await getAssignList();
});
const getAssignList = async () => {
showLoader();
await http
@ -157,7 +158,6 @@ const getpersonalList = async () => {
.get(config.API.personal(personalId.value))
.then((res) => {
const data = res.data.data;
// console.log(data);
name.value = data.name;
position_line.value = data.position_line;
position_level.value = data.position_level;
@ -199,30 +199,32 @@ const selectStatus = async () => {
}
);
};
//
const clickSelect = (id: string) => {
router.push(`${route.fullPath}/${id}`);
};
//
const filterKeyword = ref<string>("");
const filterRef = ref<any>(null);
// input
const resetFilter = () => {
filterKeyword.value = "";
filterRef.value.focus();
};
const attrs = ref<any>(useAttrs());
const pagination = ref({
sortBy: "desc",
descending: false,
page: 1,
rowsPerPage: 10,
});
const paging = ref<boolean>(true);
const paginationLabel = (start: string, end: string, total: string) => {
if (paging.value == true) return " " + start + "-" + end + " ใน " + total;
else return start + "-" + end + " ใน " + total;
};
onMounted(async () => {
await getpersonalList();
await getAssignList();
});
</script>
<template>
@ -294,42 +296,6 @@ const paginationLabel = (start: string, end: string, total: string) => {
emit-value
map-options
/>
<!-- <q-icon
size="20px"
v-if="probation_status === 'PENDING'"
name="mdi-timer-sand"
color="deep-orange"
/>
<q-icon
size="20px"
v-else-if="probation_status === 'NO-PASS'"
name="mdi-close"
color="red"
/>
<q-icon
size="20px"
v-else-if="probation_status === 'PROCESS'"
name="mdi-timer-sand"
color="deep-orange"
/>
<q-icon
size="20px"
v-else-if="probation_status === 'PASS'"
name="mdi-check"
color="teal"
/>
<q-icon size="20px" v-else name="mdi-check" color="teal" />
{{
probation_status === "PENDING"
? "รอมอบหมายงาน"
: probation_status === "NO-PASS"
? "ไม่ผ่านการทดลองงาน"
: probation_status === "PROCESS"
? "อยู่ในระหว่างการทดลองงาน"
: probation_status === "PASS"
? "ผ่านการทดลองงาน"
: ""
}} -->
</div>
</div>
</div>

View file

@ -307,8 +307,29 @@ export const useTransferDataStore = defineStore("transferDataStore", () => {
return "-";
}
};
const statusProbationMain = (val: number) => {
switch (val) {
case 1:
return "อยู่ระหว่างการทดลองปฏิบัติหน้าที่ราชการ";
case 2:
return "พ้นการทดลองปฏิบัติหน้าที่ราชการ";
case 3:
return "ไม่พ้นการทดลองปฏิบัติหน้าที่ราชการ";
case 4:
return "ยุติการทดลองปฏิบัติหน้าที่ราชการเนื่องจากเปลี่ยนตำแหน่ง";
case 5:
return "ยุติการทดลองปฏิบัติหน้าที่ราชการเนื่องจากลาออก";
case 6:
return "ยุติการทดลองปฏิบัติหน้าที่ราชการเนื่องจากถึงแก่กรรม";
case 7:
return "ขยายระยะเวลาทดลองปฏิบัติหน้าที่ราชการ";
case 8:
return "ดึงรายชื่อไปออกคำสั่งแล้ว";
default:
return " ";
}
};
return {
statusText,
statusText,statusProbationMain
};
});

View file

@ -11,8 +11,6 @@ export const useProbationDataStore = defineStore("probationStore", () => {
const director = ref<any>([])
const fecthdataAssign = async (data: any) => {
console.log(data);
assign.value = await data.assign
evaluate.value = await data.evaluate
tabs.value = await data.evaluate