ปรับระบบทดลองงานใหม่

This commit is contained in:
Warunee Tamkoo 2024-03-28 17:23:39 +07:00
parent c8b3863b84
commit 85c755f359
11 changed files with 852 additions and 500 deletions

View file

@ -4,7 +4,7 @@ const personal = `${env.API_PROBATION_URI}/personal`;
const calculate = `${env.API_PROBATION_URI}/calculate`; const calculate = `${env.API_PROBATION_URI}/calculate`;
const finish = `${env.API_PROBATION_URI}/assign`; const finish = `${env.API_PROBATION_URI}/assign`;
const evaluate = `${env.API_PROBATION_URI}`; const evaluate = `${env.API_PROBATION_URI}`;
const orgProfile = `${env.API_URI}/org`;
export default { export default {
competencyOptions: (personalId: string) => competencyOptions: (personalId: string) =>
@ -29,8 +29,10 @@ export default {
personalAdd: () => `${personal}/add`, personalAdd: () => `${personal}/add`,
probationGetAssignList: (personalId: string) => probationGetAssignList: (personalId: string) =>
`${finish}/probation-assign-list?personal_id=${personalId}`, `${finish}/probation-assign-list?personal_id=${personalId}`,
probationsGetAssign: (assignId: string) => `${finish}/probation-assign?assign_id=${assignId}`, probationsGetAssign: (assignId: string) =>
changestatusProbations: (personalId: string) => `${evaluate}/report/change-status?personal_id=${personalId}`, `${finish}/probation-assign?assign_id=${assignId}`,
changestatusProbations: (personalId: string) =>
`${evaluate}/report/change-status?personal_id=${personalId}`,
// probationGetAssignList: (personalId: string) => // probationGetAssignList: (personalId: string) =>
// `${finish}/probation-assign-list?personal_id=${personalId}`, // `${finish}/probation-assign-list?personal_id=${personalId}`,
@ -38,36 +40,48 @@ export default {
// บันทึกผล // บันทึกผล
formevaluate: (id: string) => `${evaluate}/evaluate-record?assign_id=${id}`, formevaluate: (id: string) => `${evaluate}/evaluate-record?assign_id=${id}`,
formevaluateround: (id: string, no: string) => `${evaluate}/evaluate-record?assign_id=${id}&evaluate_no=${no}`, formevaluateround: (id: string, no: string) =>
formevaluateRecord: (id: string) => `${evaluate}/evaluate-record/create?assign_id=${id}`, `${evaluate}/evaluate-record?assign_id=${id}&evaluate_no=${no}`,
createformevaluate: (id: string) => `${evaluate}/evaluate-record?assign_id=${id}`, formevaluateRecord: (id: string) =>
editFormEvaluate: (id: string, evaluate_id: string) => `${evaluate}/evaluate-record?assign_id=${id}&evaluate_id=${evaluate_id}`, `${evaluate}/evaluate-record/create?assign_id=${id}`,
createformevaluate: (id: string) =>
`${evaluate}/evaluate-record?assign_id=${id}`,
editFormEvaluate: (id: string, evaluate_id: string) =>
`${evaluate}/evaluate-record?assign_id=${id}&evaluate_id=${evaluate_id}`,
// บันทึกผล (ผู้บังคับบัญชา) // บันทึกผล (ผู้บังคับบัญชา)
formevaluateCommander: (id: string) => `${evaluate}/evaluate-record/commander?assign_id=${id}`, formevaluateCommander: (id: string) =>
formevaluateRecordCommander: (id: string) => `${evaluate}/evaluate-record/create/commander?assign_id=${id}`, `${evaluate}/evaluate-record/commander?assign_id=${id}`,
editEvaluateCommander: (id: string, evaluate_id: string) => `${evaluate}/evaluate-record/commander?assign_id=${id}&evaluate_id=${evaluate_id}`, formevaluateRecordCommander: (id: string) =>
`${evaluate}/evaluate-record/create/commander?assign_id=${id}`,
editEvaluateCommander: (id: string, evaluate_id: string) =>
`${evaluate}/evaluate-record/commander?assign_id=${id}&evaluate_id=${evaluate_id}`,
//แบบประเมินผล (ผู้บังคับบัญชา) //แบบประเมินผล (ผู้บังคับบัญชา)
evaluateCreate: (id: string) => `${evaluate}/evaluate/create?assign_id=${id}`, evaluateCreate: (id: string) => `${evaluate}/evaluate/create?assign_id=${id}`,
evaluatecommader: (id: string, no: string) => `${evaluate}/evaluate?assign_id=${id}&evaluate_no=${no}`, evaluatecommader: (id: string, no: string) =>
`${evaluate}/evaluate?assign_id=${id}&evaluate_no=${no}`,
createformCommader: (id: string) => `${evaluate}/evaluate?assign_id=${id}`, createformCommader: (id: string) => `${evaluate}/evaluate?assign_id=${id}`,
editFormEvaluateCommader: (id: string, evaluate_id: string) => `${evaluate}/evaluate?assign_id=${id}&evaluate_id=${evaluate_id}`, editFormEvaluateCommader: (id: string, evaluate_id: string) =>
`${evaluate}/evaluate?assign_id=${id}&evaluate_id=${evaluate_id}`,
//แบบประเมินผล (คณะกรรมการ) //แบบประเมินผล (คณะกรรมการ)
evaluateChairman: (id: string) => `${evaluate}/evaluate-chairman/create?assign_id=${id}`, evaluateChairman: (id: string) =>
evaluateRoundChairman: (id: string, no: string) => `${evaluate}/evaluate-chairman?assign_id=${id}&evaluate_no=${no}`, `${evaluate}/evaluate-chairman/create?assign_id=${id}`,
createformChairman: (id: string) => `${evaluate}/evaluate-chairman?assign_id=${id}`, evaluateRoundChairman: (id: string, no: string) =>
editFormEvaluateChairman: (id: string, evaluate_id: string) => `${evaluate}/evaluate-chairman?assign_id=${id}&evaluate_id=${evaluate_id}`, `${evaluate}/evaluate-chairman?assign_id=${id}&evaluate_no=${no}`,
createformChairman: (id: string) =>
`${evaluate}/evaluate-chairman?assign_id=${id}`,
editFormEvaluateChairman: (id: string, evaluate_id: string) =>
`${evaluate}/evaluate-chairman?assign_id=${id}&evaluate_id=${evaluate_id}`,
//แบบรายงาน //แบบรายงาน
evaluateReportcreate: (id: string) => `${evaluate}/evaluate-result/create?assign_id=${id}`, evaluateReportcreate: (id: string) =>
`${evaluate}/evaluate-result/create?assign_id=${id}`,
evaluateReport: (id: string) => `${evaluate}/evaluate-result?assign_id=${id}`, evaluateReport: (id: string) => `${evaluate}/evaluate-result?assign_id=${id}`,
createformReport: (id: string) => `${evaluate}/evaluate-result?assign_id=${id}`, createformReport: (id: string) =>
`${evaluate}/evaluate-result?assign_id=${id}`,
summarySurveyDetail: (id: string) => `${evaluate}/survey?assign_id=${id}`, summarySurveyDetail: (id: string) => `${evaluate}/survey?assign_id=${id}`,
summaryReportDetail: (id: string) => `${evaluate}/report?assign_id=${id}` summaryReportDetail: (id: string) => `${evaluate}/report?assign_id=${id}`,
orgProfilePlacement: (id: string) => `${orgProfile}/profile/placement/${id}`,
}; };

File diff suppressed because it is too large Load diff

View file

@ -66,7 +66,6 @@ const evaluate_no = ref<number>();
const evaluate_id = ref<string>(""); const evaluate_id = ref<string>("");
const start_date = ref<Date>(new Date()); const start_date = ref<Date>(new Date());
const date_finish = ref<Date>(new Date()); const date_finish = ref<Date>(new Date());
const commander = ref<any>([]);
const status = ref<boolean>(true); const status = ref<boolean>(true);
const dataArr = ref<any>(); const dataArr = ref<any>();
@ -94,23 +93,20 @@ const list2_2 = probationStore.behavior_no2;
const list2_3 = probationStore.behavior_no3; const list2_3 = probationStore.behavior_no3;
/** get ข้อมูลมอบหมายงาน */ /** get ข้อมูลมอบหมายงาน */
async function fecthAssign(){ async function fecthAssign() {
showLoader(); showLoader();
await http await http
.get(config.API.evaluateCreate(assignId.value)) .get(config.API.evaluateCreate(assignId.value))
.then(async (res) => { .then(async (res) => {
if (props.action == "add") { // if (props.action == "add") {
person.value = res.data.data.person; person.value = res.data.data.person;
commander.value = res.data.data.commander; // option.value.push(res.data.data.commander);
option.value.push(commander.value); Autherise.value = res.data.data.director;
Autherise.value = commander.value.name; evaluate_no.value = res.data.data.evaluate_no;
evaluate_no.value = res.data.data.evaluate_no; start_date.value = res.data.data.start_date;
start_date.value = res.data.data.start_date; date_finish.value = res.data.data.end_date;
date_finish.value = res.data.data.end_date; // }
} // Autherise.value = probationStore.director;
Autherise.value =
probationStore.director.name +
` (${probationStore.director.PositionLineName}, ${probationStore.director.PositionLevelName}, ${probationStore.director.Oc})`;
}) })
.catch((e) => { .catch((e) => {
messageError($q, e); messageError($q, e);
@ -121,10 +117,10 @@ async function fecthAssign(){
} }
hideLoader(); hideLoader();
}); });
}; }
/** get ข้อมูล แบบ ประเมิน*/ /** get ข้อมูล แบบ ประเมิน*/
async function fetchEvaluate(){ async function fetchEvaluate() {
try { try {
let data = await dataArr.value; let data = await dataArr.value;
evaluate_id.value = data.id; evaluate_id.value = data.id;
@ -158,7 +154,7 @@ async function fetchEvaluate(){
self_learning.value = data.self_learning.toString(); self_learning.value = data.self_learning.toString();
training_seminar.value = data.training_seminar.toString(); training_seminar.value = data.training_seminar.toString();
other_training.value = data.other_training.toString(); other_training.value = data.other_training.toString();
dateAutherise.value = data.commander_dated dateAutherise.value = data.commander_dated;
if ( if (
data.achievement_other_desc !== "" && data.achievement_other_desc !== "" &&
@ -173,10 +169,10 @@ async function fetchEvaluate(){
} catch (error) { } catch (error) {
hideLoader(); hideLoader();
} }
}; }
/** ตรวจเช็คข้อมูล */ /** ตรวจเช็คข้อมูล */
function savaForm(){ function savaForm() {
let hasError = false; let hasError = false;
behavio_strengthRef.value.validate(); behavio_strengthRef.value.validate();
if ( if (
@ -213,10 +209,10 @@ function savaForm(){
if (hasError === true) { if (hasError === true) {
notifyError($q, "กรุณากรอกข้อมูลให้ครบ"); notifyError($q, "กรุณากรอกข้อมูลให้ครบ");
} }
}; }
/** อับเดต ข้อมูล*/ /** อับเดต ข้อมูล*/
function save(){ function save() {
const data = { const data = {
evaluate_no: evaluate_no.value, evaluate_no: evaluate_no.value,
start_date: start_date.value, start_date: start_date.value,
@ -264,7 +260,7 @@ function save(){
messageError($q, e); messageError($q, e);
}); });
}); });
}; }
watch(props, async () => { watch(props, async () => {
if (props.tab && props.action == "edit") { if (props.tab && props.action == "edit") {
@ -324,21 +320,19 @@ onMounted(async () => {
<div class="row col-12 q-gutter-lg"> <div class="row col-12 q-gutter-lg">
<div class="col-12 row"> <div class="col-12 row">
<div class="col-12 text-top0 row items-center"> <div class="col-12 text-top0 row items-center">
<div class="col-12 row text-top0"> <div class="col-12 row text-top0">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" /> <q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
ทดลองปฏหนาทราชการ {{ probationStore.person.name }} ทดลองปฏหนาทราชการ {{ probationStore.person.name }}
</div> </div>
<div class="col-12 q-pl-md q-pb-md"> <div class="col-12 q-pl-md q-pb-md">
<div class="col-12"> <div class="col-12">
<span class="text-top0 q-pl-sm">ตำแหนงในสายงาน</span> <span class="text-top0 q-pl-sm">ตำแหนงในสายงาน</span>
{{ probationStore.person.PositionLineName }} {{ probationStore.person.positionName }}
</div> </div>
<div class="col-12"> <div class="col-12">
<span class="text-top0 q-pl-sm">ระด</span> <span class="text-top0 q-pl-sm">ระดตำแหน</span>
{{ probationStore.person.PositionLevelName }} {{ probationStore.person.positionLevelName }}
</div> </div>
<div class="col-12"> <div class="col-12">
@ -349,8 +343,9 @@ onMounted(async () => {
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" /> <q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
การทดลองปฎหนาทราชการ<span class="text-primary q-pr-sm">{{ การทดลองปฎหนาทราชการ<span class="text-primary q-pr-sm">{{
"ครั้งที่ " + assign.round_no "ครั้งที่ " + assign.round_no
}}</span> งแตนท }}</span>
งแตนท
<span class="text-black q-px-sm">{{ <span class="text-black q-px-sm">{{
date2Thai(assign.date_start) date2Thai(assign.date_start)
}}</span> }}</span>
@ -994,7 +989,6 @@ onMounted(async () => {
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<div class="row"> <div class="row">
<q-radio <q-radio
checked-icon="task_alt" checked-icon="task_alt"
unchecked-icon="panorama_fish_eye" unchecked-icon="panorama_fish_eye"
@ -1011,7 +1005,6 @@ onMounted(async () => {
val="0" val="0"
label=" ยังไม่ได้ดำเนินการ" label=" ยังไม่ได้ดำเนินการ"
/> />
</div> </div>
</q-item-section> </q-item-section>
</q-item> </q-item>
@ -1022,7 +1015,6 @@ onMounted(async () => {
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<div class="row"> <div class="row">
<q-radio <q-radio
checked-icon="task_alt" checked-icon="task_alt"
unchecked-icon="panorama_fish_eye" unchecked-icon="panorama_fish_eye"
@ -1039,7 +1031,6 @@ onMounted(async () => {
val="0" val="0"
label=" ยังไม่ได้ดำเนินการ" label=" ยังไม่ได้ดำเนินการ"
/> />
</div> </div>
</q-item-section> </q-item-section>
</q-item> </q-item>
@ -1050,7 +1041,6 @@ onMounted(async () => {
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<div class="row"> <div class="row">
<q-radio <q-radio
checked-icon="task_alt" checked-icon="task_alt"
:disable="!status" :disable="!status"
@ -1067,7 +1057,6 @@ onMounted(async () => {
val="0" val="0"
label=" ยังไม่ได้ดำเนินการ" label=" ยังไม่ได้ดำเนินการ"
/> />
</div> </div>
</q-item-section> </q-item-section>
</q-item> </q-item>
@ -1080,7 +1069,6 @@ onMounted(async () => {
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<div class="row"> <div class="row">
<q-radio <q-radio
checked-icon="task_alt" checked-icon="task_alt"
unchecked-icon="panorama_fish_eye" unchecked-icon="panorama_fish_eye"
@ -1097,7 +1085,6 @@ onMounted(async () => {
val="0" val="0"
label=" ยังไม่ได้ดำเนินการ" label=" ยังไม่ได้ดำเนินการ"
/> />
</div> </div>
</q-item-section> </q-item-section>
</q-item> </q-item>
@ -1111,13 +1098,13 @@ onMounted(async () => {
<div class="col-xs-12 col-sm-11 row"> <div class="col-xs-12 col-sm-11 row">
<div class="col-12 text-top2 row items-center">งคบบญชา</div> <div class="col-12 text-top2 row items-center">งคบบญชา</div>
<div class="col-12 row q-col-gutter-md"> <div class="col-12 row q-col-gutter-md">
<q-select <q-select
class="col-xs-12 col-sm-8" class="col-xs-12 col-sm-8"
dense dense
v-model="Autherise" v-model="Autherise"
outlined outlined
:options="option" :options="option"
option-label="label"
label="ผู้บังคับบัญชา" label="ผู้บังคับบัญชา"
disable disable
/> />

View file

@ -33,7 +33,6 @@ const assign = ref<any>([]);
const evaluate_no = ref<string>(""); const evaluate_no = ref<string>("");
const start_date = ref<Date>(new Date()); const start_date = ref<Date>(new Date());
const date_finish = ref<Date>(new Date()); const date_finish = ref<Date>(new Date());
const commander = ref<any>([]);
const round = ref<any>(); const round = ref<any>();
const status = ref<boolean>(true); const status = ref<boolean>(true);
const Autherise = ref<any>(null); const Autherise = ref<any>(null);
@ -74,18 +73,15 @@ const list2_3 = probationStore.behavior_no3;
* get ประเม * get ประเม
* @param id * @param id
*/ */
async function fecthAssign(id: string){ async function fecthAssign(id: string) {
showLoader(); showLoader();
await http await http
.get(config.API.evaluateCreate(id)) .get(config.API.evaluateCreate(id))
.then(async (res: any) => { .then(async (res: any) => {
person.value = res.data.data.person; person.value = res.data.data.person;
assign.value = res.data.data.assign; assign.value = res.data.data.assign;
commander.value = res.data.data.commander; // option.value.push(res.data.data.commander);
option.value.push(commander.value); Autherise.value = res.data.data.director;
Autherise.value =
res.data.data.commander.name +
` (${res.data.data.commander.PositionLineName}, ${res.data.data.commander.PositionLevelName}, ${res.data.data.commander.Oc})`;
evaluate_no.value = res.data.data.evaluate_no; evaluate_no.value = res.data.data.evaluate_no;
start_date.value = res.data.data.start_date; start_date.value = res.data.data.start_date;
date_finish.value = res.data.data.end_date; date_finish.value = res.data.data.end_date;
@ -97,7 +93,7 @@ async function fecthAssign(id: string){
.finally(() => { .finally(() => {
hideLoader(); hideLoader();
}); });
}; }
/** part 3 */ /** part 3 */
const alerts = Array(20) const alerts = Array(20)
@ -114,7 +110,6 @@ const lengthdiscipline_level = computed(() => {
return discipline_level.value.filter((item: number) => item !== 0).length; return discipline_level.value.filter((item: number) => item !== 0).length;
}); });
/** rules */ /** rules */
const behavio_strengthRules = [ const behavio_strengthRules = [
(val: any) => (val && val.length > 0) || "กรุณากรอกข้อมูลจุดเด่น", (val: any) => (val && val.length > 0) || "กรุณากรอกข้อมูลจุดเด่น",
@ -195,7 +190,7 @@ const savaForm = () => {
}; };
/** ฟังชั่น post data*/ /** ฟังชั่น post data*/
function putformData(){ function putformData() {
const data = { const data = {
evaluate_no: evaluate_no.value, evaluate_no: evaluate_no.value,
start_date: start_date.value, start_date: start_date.value,
@ -239,14 +234,14 @@ function putformData(){
messageError($q, e); messageError($q, e);
}); });
}); });
}; }
/** ฟังชั่น คลาส css*/ /** ฟังชั่น คลาส css*/
function getBordered(i: boolean){ function getBordered(i: boolean) {
return { return {
border_custom: i, border_custom: i,
}; };
}; }
variablesToWatch.forEach((variable, index) => { variablesToWatch.forEach((variable, index) => {
watch(variable, (item: any) => { watch(variable, (item: any) => {
@ -321,15 +316,14 @@ onMounted(async () => {
ทดลองปฏหนาทราชการ {{ person.name }} ทดลองปฏหนาทราชการ {{ person.name }}
</div> </div>
<div class="col-12 q-pl-md q-pb-md"> <div class="col-12 q-pl-md q-pb-md">
<div class="col-12"> <div class="col-12">
<span class="text-top0 q-pl-sm">ตำแหนงในสายงาน</span> <span class="text-top0 q-pl-sm">ตำแหนงในสายงาน</span>
{{ person.PositionLineName }} {{ person.positionName }}
</div> </div>
<div class="col-12"> <div class="col-12">
<span class="text-top0 q-pl-sm">ระด</span> <span class="text-top0 q-pl-sm">ระดตำแหน</span>
{{ person.PositionLevelName }} {{ person.positionLevelName }}
</div> </div>
<div class="col-12"> <div class="col-12">
@ -1249,6 +1243,7 @@ onMounted(async () => {
v-model="Autherise" v-model="Autherise"
outlined outlined
:options="option" :options="option"
option-label="label"
label="ผู้บังคับบัญชา" label="ผู้บังคับบัญชา"
disable disable
/> />

View file

@ -35,9 +35,9 @@ const evaluate_id = ref<string>("");
const start_date = ref<Date>(new Date()); const start_date = ref<Date>(new Date());
const date_finish = ref<Date>(new Date()); const date_finish = ref<Date>(new Date());
const status = ref<boolean>(true); const status = ref<boolean>(true);
const chairman = ref<any>([]); // const chairman = ref<any>([]);
const commander = ref<any>([]); // const commander = ref<any>([]);
const mentors = ref<any>([{ name: "" }, { name: "" }]); // const mentors = ref<any>([{ name: "" }, { name: "" }]);
const dataArr = ref<any>(); const dataArr = ref<any>();
const props = defineProps({ const props = defineProps({
tab: String, tab: String,
@ -89,35 +89,35 @@ const develop_result_option = ref<any>([
]); ]);
/**set true */ /**set true */
function edit(){ function edit() {
status.value = true; status.value = true;
}; }
/** set false */ /** set false */
function cancel(){ function cancel() {
status.value = false; status.value = false;
fecthAssign(); fecthAssign();
}; }
/** get ข้อมูล */ /** get ข้อมูล */
async function fecthAssign(){ async function fecthAssign() {
showLoader(); showLoader();
await http await http
.get(config.API.evaluateChairman(assignId.value)) .get(config.API.evaluateChairman(assignId.value))
.then(async (res: any) => { .then(async (res: any) => {
if (props.action == "add") { // if (props.action == "add") {
assign.value = res.data.data.assign; assign.value = res.data.data.assign;
evaluate_no.value = res.data.data.evaluate_no; evaluate_no.value = res.data.data.evaluate_no;
start_date.value = res.data.data.start_date; start_date.value = res.data.data.start_date;
date_finish.value = res.data.data.end_date; date_finish.value = res.data.data.end_date;
chairman.value = res.data.data.chairman; // chairman.value = res.data.data.chairman;
commander.value = res.data.data.commander; // commander.value = res.data.data.commander;
mentors.value = res.data.data.mentors; // mentors.value = res.data.data.mentors;
} // }
director_id.value = res.data.data.chairman.name; director_id.value = res.data.data.chairman;
director_id2.value = res.data.data.commander.name; director_id2.value = res.data.data.commander;
if (res.data.data.mentors.length != 0) { if (res.data.data.mentors.length != 0) {
director_id3.value = res.data.data.mentors[0].name; director_id3.value = res.data.data.mentors[0];
} }
// dateAutherise.value = res.data.data.chairman_dated; // dateAutherise.value = res.data.data.chairman_dated;
@ -133,10 +133,10 @@ async function fecthAssign(){
} }
hideLoader(); hideLoader();
}); });
}; }
/** เอาค่าจ่าก ดาต้า เก็บไว้ที่ตัวเเปร */ /** เอาค่าจ่าก ดาต้า เก็บไว้ที่ตัวเเปร */
async function fetchEvaluate(){ async function fetchEvaluate() {
try { try {
let data = await dataArr.value; let data = await dataArr.value;
evaluate_id.value = data.id; evaluate_id.value = data.id;
@ -185,7 +185,7 @@ async function fecthAssign(){
} else etc2.value = false; } else etc2.value = false;
status.value = false; status.value = false;
} catch (error) {} } catch (error) {}
}; }
// score // score
const score1 = computed(() => { const score1 = computed(() => {
@ -295,7 +295,7 @@ const score5 = computed(() => {
}); });
/** ฟังชั่นเช็คค่าไม่ว่าง */ /** ฟังชั่นเช็คค่าไม่ว่าง */
function savaForm(){ function savaForm() {
let hasError = false; let hasError = false;
if ( if (
learn_level.value === 0 || learn_level.value === 0 ||
@ -327,10 +327,10 @@ function savaForm(){
if (hasError === true) { if (hasError === true) {
notifyError($q, "กรุณากรอกข้อมูลให้ครบ"); notifyError($q, "กรุณากรอกข้อมูลให้ครบ");
} }
}; }
/** ฟังชั่น อัพเดต ข้อมูล */ /** ฟังชั่น อัพเดต ข้อมูล */
function putformData(){ function putformData() {
const data = { const data = {
evaluate_no: evaluate_no.value, evaluate_no: evaluate_no.value,
start_date: start_date.value, start_date: start_date.value,
@ -392,7 +392,7 @@ function putformData(){
messageError($q, e); messageError($q, e);
}); });
}); });
}; }
/** ตรวจสอบการเปลี่ยนเเปลงค่า props */ /** ตรวจสอบการเปลี่ยนเเปลงค่า props */
watch(props, async () => { watch(props, async () => {
@ -461,11 +461,11 @@ onMounted(async () => {
<!-- <div class="col-12"><span class="text-top0 q-pl-sm">ตำแหน</span> {{ person.Position }}</div> --> <!-- <div class="col-12"><span class="text-top0 q-pl-sm">ตำแหน</span> {{ person.Position }}</div> -->
<div class="col-12"> <div class="col-12">
<span class="text-top0 q-pl-sm">ตำแหนงในสายงาน</span> <span class="text-top0 q-pl-sm">ตำแหนงในสายงาน</span>
{{ probationStore.person.PositionLineName }} {{ probationStore.person.positionName }}
</div> </div>
<div class="col-12"> <div class="col-12">
<span class="text-top0 q-pl-sm">ระด</span> <span class="text-top0 q-pl-sm">ระดตำแหน</span>
{{ probationStore.person.PositionLevelName }} {{ probationStore.person.positionLevelName }}
</div> </div>
<div class="col-12"> <div class="col-12">
<span class="text-top0 q-pl-sm">งก</span> <span class="text-top0 q-pl-sm">งก</span>
@ -1245,7 +1245,7 @@ onMounted(async () => {
v-model="director_id" v-model="director_id"
outlined outlined
label="ชื่อ-นามสกุล" label="ชื่อ-นามสกุล"
option-label="name" option-label="label"
disable disable
/> />
<div class="col-xs-12 col-sm-4"> <div class="col-xs-12 col-sm-4">
@ -1305,7 +1305,7 @@ onMounted(async () => {
outlined outlined
label="ชื่อ-นามสกุล" label="ชื่อ-นามสกุล"
disable disable
option-label="name" option-label="label"
/> />
<div class="col-xs-12 col-sm-4"> <div class="col-xs-12 col-sm-4">
<datepicker <datepicker
@ -1366,7 +1366,7 @@ onMounted(async () => {
outlined outlined
label="ชื่อ-นามสกุล" label="ชื่อ-นามสกุล"
disable disable
option-label="name" option-label="label"
/> />
<div class="col-xs-12 col-sm-4"> <div class="col-xs-12 col-sm-4">
<datepicker <datepicker

View file

@ -96,10 +96,10 @@ const fecthAssign = async (id: string) => {
start_date.value = await res.data.data.start_date; start_date.value = await res.data.data.start_date;
date_finish.value = await res.data.data.end_date; date_finish.value = await res.data.data.end_date;
director_id.value = res.data.data.chairman.name; director_id.value = res.data.data.chairman;
director_id2.value = res.data.data.commander.name; director_id2.value = res.data.data.commander;
if (res.data.data.mentors.length != 0) { if (res.data.data.mentors.length != 0) {
director_id3.value = res.data.data.mentors[0].name; director_id3.value = res.data.data.mentors[0];
} }
}) })
.catch((e) => { .catch((e) => {
@ -235,7 +235,7 @@ const lengthdiscipline_level = computed(() => {
const variablesToWatch = [learn_level, apply_level, success_level]; const variablesToWatch = [learn_level, apply_level, success_level];
/** ฟังชั่นเช็คค่าไม่ว่าง */ /** ฟังชั่นเช็คค่าไม่ว่าง */
async function savaForm(){ async function savaForm() {
let hasError = false; let hasError = false;
if ( if (
learn_level.value === 0 || learn_level.value === 0 ||
@ -295,7 +295,7 @@ async function savaForm(){
dialogMessageNotify($q, "กรุณากรอกข้อมูลให้ครบ"); dialogMessageNotify($q, "กรุณากรอกข้อมูลให้ครบ");
} }
}; }
/** ฟังชั่น อัพเดต ข้อมูล */ /** ฟังชั่น อัพเดต ข้อมูล */
const putformData = () => { const putformData = () => {
@ -436,11 +436,11 @@ watch(lengthdiscipline_level, (newLength) => {
<!-- <div class="col-12"><span class="text-top0 q-pl-sm">ตำแหน</span> {{ person.Position }}</div> --> <!-- <div class="col-12"><span class="text-top0 q-pl-sm">ตำแหน</span> {{ person.Position }}</div> -->
<div class="col-12"> <div class="col-12">
<span class="text-top0 q-pl-sm">ตำแหนงในสายงาน</span> <span class="text-top0 q-pl-sm">ตำแหนงในสายงาน</span>
{{ person.PositionLineName }} {{ person.positionName }}
</div> </div>
<div class="col-12"> <div class="col-12">
<span class="text-top0 q-pl-sm">ระด</span> <span class="text-top0 q-pl-sm">ระดตำแหน</span>
{{ person.PositionLevelName }} {{ person.positionLevelName }}
</div> </div>
<div class="col-12"> <div class="col-12">
<span class="text-top0 q-pl-sm">งก</span> <span class="text-top0 q-pl-sm">งก</span>
@ -507,7 +507,6 @@ watch(lengthdiscipline_level, (newLength) => {
</q-input> </q-input>
</template> </template>
</datepicker> </datepicker>
</div> </div>
<div class="col-6 q-px-sm"> <div class="col-6 q-px-sm">
<datepicker <datepicker
@ -547,7 +546,6 @@ watch(lengthdiscipline_level, (newLength) => {
</q-input> </q-input>
</template> </template>
</datepicker> </datepicker>
</div> </div>
</div> </div>
<div class="col-12 q-pt-md"> <div class="col-12 q-pt-md">
@ -1378,7 +1376,7 @@ watch(lengthdiscipline_level, (newLength) => {
v-model="director_id" v-model="director_id"
outlined outlined
label="ชื่อ-นามสกุล" label="ชื่อ-นามสกุล"
option-label="name" option-label="label"
disable disable
/> />
@ -1441,7 +1439,7 @@ watch(lengthdiscipline_level, (newLength) => {
outlined outlined
label="ชื่อ-นามสกุล" label="ชื่อ-นามสกุล"
disable disable
option-label="name" option-label="label"
/> />
<div class="col-xs-12 col-sm-4"> <div class="col-xs-12 col-sm-4">
<datepicker <datepicker
@ -1502,7 +1500,7 @@ watch(lengthdiscipline_level, (newLength) => {
outlined outlined
label="ชื่อ-นามสกุล" label="ชื่อ-นามสกุล"
disable disable
option-label="name" option-label="label"
/> />
<div class="col-xs-12 col-sm-4"> <div class="col-xs-12 col-sm-4">
<datepicker <datepicker

View file

@ -41,7 +41,9 @@ const dataArr = ref<any>();
const checkArray = ref<number>(0); const checkArray = ref<number>(0);
const list1_1 = ref<any>([]); const list1_1 = ref<any>([]);
const option = ref<any>([]); const option = ref<any>([]);
const evaluate_expenct_level = ref<any>([{ id: "1", label: "ผลผลิตของงานที่คาดหวัง 1", level: 0 }]); const evaluate_expenct_level = ref<any>([
{ id: "1", label: "ผลผลิตของงานที่คาดหวัง 1", level: 0 },
]);
const evaluate_ouptut = ref<any>([{ level: 0, text: "" }]); const evaluate_ouptut = ref<any>([{ level: 0, text: "" }]);
const knowledge_level = ref<number>(0); const knowledge_level = ref<number>(0);
const skill_level = ref<number>(0); const skill_level = ref<number>(0);
@ -77,34 +79,34 @@ const props = defineProps({
fecthAssign: Function, fecthAssign: Function,
}); });
function edit(){ function edit() {
status.value = true; status.value = true;
}; }
function cancel(){ function cancel() {
status.value = false; status.value = false;
props.fecthAssign?.(assignId.value) props.fecthAssign?.(assignId.value);
}; }
/** get data */ /** get data */
async function fecthFormdata(){ async function fecthFormdata() {
await http await http
.get(config.API.formevaluateRecord(assignId.value)) .get(config.API.formevaluateRecord(assignId.value))
.then(async (res: any) => { .then(async (res: any) => {
await fecthAssignoutput(res.data.data); await fecthAssignoutput(res.data.data);
await fectFormfull(); await fectFormfull();
}) })
.catch((e: any) => { }) .catch((e: any) => {})
.finally(() => { .finally(() => {
if (props.action == "edit") { if (props.action == "edit") {
fecthFormRound(); fecthFormRound();
} }
}); });
}; }
/** get form */ /** get form */
async function fectFormfull(){ async function fectFormfull() {
Autherise.value = probationStore.director.name + ` (${probationStore.director.PositionLineName}, ${probationStore.director.PositionLevelName}, ${probationStore.director.Oc})`; Autherise.value = probationStore.director;
list1_1.value = probationStore.assignOutput; list1_1.value = probationStore.assignOutput;
evaluate_expenct_level.value = await probationStore.assignOutput.map( evaluate_expenct_level.value = await probationStore.assignOutput.map(
@ -118,10 +120,10 @@ async function fectFormfull(){
})); }));
checkArray.value = list1_1.value.length; checkArray.value = list1_1.value.length;
fecthFormRound(); fecthFormRound();
}; }
/** get form รอบ */ /** get form รอบ */
async function fecthFormRound(){ async function fecthFormRound() {
try { try {
let data = await dataArr.value; let data = await dataArr.value;
evaluate_id.value = data.id; evaluate_id.value = data.id;
@ -156,7 +158,7 @@ async function fecthFormRound(){
self_learning.value = data.self_learning.toString(); self_learning.value = data.self_learning.toString();
training_seminar.value = data.training_seminar.toString(); training_seminar.value = data.training_seminar.toString();
other_training.value = data.other_training.toString(); other_training.value = data.other_training.toString();
dateAutherise.value = data.assessor_dated dateAutherise.value = data.assessor_dated;
if ( if (
data.achievement_other_desc !== "" && data.achievement_other_desc !== "" &&
data.achievement_other_level !== null data.achievement_other_level !== null
@ -178,8 +180,7 @@ async function fecthFormRound(){
} catch (error) { } catch (error) {
hideLoader(); hideLoader();
} }
}; }
const list1_2 = [ const list1_2 = [
{ id: "", label: "" }, { id: "", label: "" },
@ -212,7 +213,7 @@ const behavio_strengthRules = [
]; ];
/** เช็ค data */ /** เช็ค data */
function savaForm(){ function savaForm() {
achievement_strengthRef.value.validate(); achievement_strengthRef.value.validate();
achievement_inproveRef.value.validate(); achievement_inproveRef.value.validate();
behavio_strengthRef.value.validate(); behavio_strengthRef.value.validate();
@ -253,10 +254,10 @@ function savaForm(){
if (hasError === true) { if (hasError === true) {
notifyError($q, "กรุณากรอกข้อมูลให้ครบ"); notifyError($q, "กรุณากรอกข้อมูลให้ครบ");
} }
}; }
/** update data */ /** update data */
function putformData(){ function putformData() {
const data = { const data = {
evaluate_no: evaluate_no.value, evaluate_no: evaluate_no.value,
start_date: start_date.value, start_date: start_date.value,
@ -296,12 +297,12 @@ function putformData(){
dialogConfirm($q, () => dialogConfirm($q, () =>
props.action == "edit" ? editData(data) : saveformdata(data) props.action == "edit" ? editData(data) : saveformdata(data)
); );
}; }
/** save data /** save data
* @param data อมลทงไป * @param data อมลทงไป
*/ */
async function saveformdata(data: any){ async function saveformdata(data: any) {
await http await http
.post(config.API.createformevaluate(assignId.value), data) .post(config.API.createformevaluate(assignId.value), data)
.then((res: any) => { .then((res: any) => {
@ -311,13 +312,13 @@ async function saveformdata(data: any){
.catch((e: any) => { .catch((e: any) => {
messageError($q, e); messageError($q, e);
}); });
}; }
/** /**
* แกไขขอม * แกไขขอม
* @param data อมลทปเดต * @param data อมลทปเดต
*/ */
async function editData(data: any){ async function editData(data: any) {
await http await http
.put(config.API.editFormEvaluate(assignId.value, evaluate_id.value), data) .put(config.API.editFormEvaluate(assignId.value, evaluate_id.value), data)
.then((res: any) => { .then((res: any) => {
@ -327,7 +328,7 @@ async function editData(data: any){
.catch((e: any) => { .catch((e: any) => {
messageError($q, e); messageError($q, e);
}); });
}; }
/** เช็คค่า props */ /** เช็คค่า props */
watch(props, async () => { watch(props, async () => {
@ -352,7 +353,14 @@ onMounted(async () => {
<div class="toptitle text-dark col-12 row items-center q-gutter-md"> <div class="toptitle text-dark col-12 row items-center q-gutter-md">
<div>แบบบนทกผล (เเล)</div> <div>แบบบนทกผล (เเล)</div>
<div v-if="status == false"> <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-tooltip>แกไขขอม</q-tooltip>
</q-btn> </q-btn>
</div> </div>
@ -360,7 +368,15 @@ onMounted(async () => {
<q-btn dense flat round color="red" @click="cancel()" icon="mdi-undo"> <q-btn dense flat round color="red" @click="cancel()" icon="mdi-undo">
<q-tooltip>ยกเล</q-tooltip> <q-tooltip>ยกเล</q-tooltip>
</q-btn> </q-btn>
<q-btn dense flat round class="q-ml-md" color="public" @click="savaForm()" icon="mdi-content-save-outline"> <q-btn
dense
flat
round
class="q-ml-md"
color="public"
@click="savaForm()"
icon="mdi-content-save-outline"
>
<q-tooltip>นทกขอม</q-tooltip> <q-tooltip>นทกขอม</q-tooltip>
</q-btn> </q-btn>
</div> </div>
@ -374,18 +390,26 @@ onMounted(async () => {
<div class="col-12 q-pl-md q-pb-md"> <div class="col-12 q-pl-md q-pb-md">
<!-- <div class="col-12"><span class="text-top0 q-pl-sm">ตำแหน</span> {{ person.Position }}</div> --> <!-- <div class="col-12"><span class="text-top0 q-pl-sm">ตำแหน</span> {{ person.Position }}</div> -->
<div class="col-12"><span class="text-top0 q-pl-sm">ตำแหนงในสายงาน</span> {{ <div class="col-12">
probationStore.person.PositionLineName }}</div> <span class="text-top0 q-pl-sm">ตำแหนงในสายงาน</span>
<div class="col-12"><span class="text-top0 q-pl-sm">ระด</span> {{ probationStore.person.PositionLevelName }} {{ probationStore.person.positionName }}
</div>
<div class="col-12">
<span class="text-top0 q-pl-sm">ระดบตำแหน</span>
{{ probationStore.person.positionLevelName }}
</div>
<div class="col-12">
<span class="text-top0 q-pl-sm">งก</span>
{{ probationStore.person.Oc }}
</div> </div>
<div class="col-12"><span class="text-top0 q-pl-sm">งก</span> {{ probationStore.person.Oc }}</div>
</div> </div>
<div class="col-12 text-top0 row items-center"> <div class="col-12 text-top0 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" /> <q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
การทดลองปฎหนาทราชการ<span class="text-primary q-pr-sm">{{ การทดลองปฎหนาทราชการ<span class="text-primary q-pr-sm">{{
"ครั้งที่ " + assign.round_no "ครั้งที่ " + assign.round_no
}}</span> งแตนท }}</span>
งแตนท
<span class="text-black q-px-sm"> <span class="text-black q-px-sm">
{{ date2Thai(assign.date_start) }} {{ date2Thai(assign.date_start) }}
</span> </span>
@ -430,15 +454,27 @@ onMounted(async () => {
ผลผลตของงานทคาดหว ผลผลตของงานทคาดหว
</div> </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 list1_1" :key="i"> <q-list dense v-for="(list, i) in list1_1" :key="i">
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
<q-item-label>{{ list.output_desc }}</q-item-label> <q-item-label>{{ list.output_desc }}</q-item-label>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-rating v-model="evaluate_expenct_level[i].level" :val="list.id" max="5" size="sm" color="grey" <q-rating
:color-selected="ratingColors" label="ระดับการประเมินพฤติกรรม" :disable="!status"> v-model="evaluate_expenct_level[i].level"
:val="list.id"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1> <template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip> <q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template> </template>
@ -466,16 +502,37 @@ onMounted(async () => {
<div class="col-xs-12 col-sm-11 col-md-10 offset-md-1 text-top2"> <div class="col-xs-12 col-sm-11 col-md-10 offset-md-1 text-top2">
ผลผลตของงานทเกดขนจร ผลผลตของงานทเกดขนจร
</div> </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 list1_2" :key="i"> <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 dense tag="label" v-ripple v-if="i < checkArray">
<q-item-section> <q-item-section>
<q-input outlined dense v-model="evaluate_ouptut[i].text" lazy-rules autogrow hide-bottom-space :row="1" <q-input
:rules="evaluate_ouptutRules" :disable="!status" /> outlined
dense
v-model="evaluate_ouptut[i].text"
lazy-rules
autogrow
hide-bottom-space
:row="1"
:rules="evaluate_ouptutRules"
:disable="!status"
/>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-rating v-model="evaluate_ouptut[i].level" :val="list.id" max="5" size="sm" color="grey" <q-rating
:color-selected="ratingColors" label="ระดับการประเมินพฤติกรรม" :disable="!status"> v-model="evaluate_ouptut[i].level"
:val="list.id"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1> <template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip> <q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template> </template>
@ -505,11 +562,19 @@ onMounted(async () => {
<q-item-section> <q-item-section>
<q-item-label> <q-item-label>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" /> <q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
1.2. ความรความสามารถ</q-item-label> 1.2. ความรความสามารถ</q-item-label
>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-rating v-model="knowledge_level" max="5" size="sm" color="grey" :color-selected="ratingColors" <q-rating
label="ระดับการประเมินพฤติกรรม" :disable="!status"> v-model="knowledge_level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1> <template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip> <q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template> </template>
@ -537,11 +602,19 @@ onMounted(async () => {
<q-item-section> <q-item-section>
<q-item-label> <q-item-label>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" /> <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>
<q-item-section side> <q-item-section side>
<q-rating v-model="skill_level" max="5" size="sm" color="grey" :color-selected="ratingColors" <q-rating
label="ระดับการประเมินพฤติกรรม" :disable="!status"> v-model="skill_level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1> <template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip> <q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template> </template>
@ -569,11 +642,19 @@ onMounted(async () => {
<q-item-section> <q-item-section>
<q-item-label> <q-item-label>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" /> <q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
1.4. สมมรถนะ</q-item-label> 1.4. สมมรถนะ</q-item-label
>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-rating v-model="competency_level" max="5" size="sm" color="grey" :color-selected="ratingColors" <q-rating
label="ระดับการประเมินพฤติกรรม" :disable="!status"> v-model="competency_level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1> <template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip> <q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template> </template>
@ -601,11 +682,19 @@ onMounted(async () => {
<q-item-section> <q-item-section>
<q-item-label> <q-item-label>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" /> <q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
1.5. ความสามารถในการเรยนรงาน</q-item-label> 1.5. ความสามารถในการเรยนรงาน</q-item-label
>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-rating v-model="learn_level" max="5" size="sm" color="grey" :color-selected="ratingColors" <q-rating
label="ระดับการประเมินพฤติกรรม" :disable="!status"> v-model="learn_level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1> <template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip> <q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template> </template>
@ -634,11 +723,19 @@ onMounted(async () => {
<q-item-label> <q-item-label>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" /> <q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
1.6. 1.6.
ความสามารถในการปรบใชความรบงานในหนาท</q-item-label> ความสามารถในการปรบใชความรบงานในหนาท</q-item-label
>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-rating v-model="apply_level" max="5" size="sm" color="grey" :color-selected="ratingColors" <q-rating
label="ระดับการประเมินพฤติกรรม" :disable="!status"> v-model="apply_level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1> <template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip> <q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template> </template>
@ -666,29 +763,55 @@ onMounted(async () => {
<q-item-label> <q-item-label>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" /> <q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
1.7 นๆ 1.7 นๆ
<q-checkbox class="q-ml-sm" dense v-model="etc" @click=" <q-checkbox
(achievement_other.text = ''), class="q-ml-sm"
(achievement_other.level = 0) dense
" :disable="!status" /></q-item-label> v-model="etc"
@click="
(achievement_other.text = ''),
(achievement_other.level = 0)
"
:disable="!status"
/></q-item-label>
</q-item-section> </q-item-section>
</q-item> </q-item>
</q-list> </q-list>
</q-card> </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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section class="q-ml-md"> <q-item-section class="q-ml-md">
<q-item-label> <q-item-label>
<q-input v-model="achievement_other.text" label="กรอกอื่นๆ" dense lazy-rules autogrow hide-bottom-space <q-input
outlined class="bg-white" :rules="[ v-model="achievement_other.text"
label="กรอกอื่นๆ"
dense
lazy-rules
autogrow
hide-bottom-space
outlined
class="bg-white"
:rules="[
(val) => (val && val.length > 0) || 'กรุณากรอกข้อความ', (val) => (val && val.length > 0) || 'กรุณากรอกข้อความ',
]" :disable="!status" /> ]"
:disable="!status"
/>
</q-item-label> </q-item-label>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-rating v-model="achievement_other.level" max="5" size="sm" color="grey" :color-selected="ratingColors" <q-rating
label="ระดับการประเมินพฤติกรรม" :disable="!status"> v-model="achievement_other.level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1> <template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip> <q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template> </template>
@ -717,18 +840,39 @@ onMounted(async () => {
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" /> <q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
ดเด (ไมเก 5 บรรท) ดเด (ไมเก 5 บรรท)
</div> </div>
<q-input outlined dense v-model="achievement_strength_desc" class="col-xs-12 col-sm-11 col-md-10 offset-md-1" <q-input
lazy-rules type="textarea" label="กรอกจุดเด่น" hide-bottom-space :row="5" :rules="achievement_strengthRules" outlined
ref="achievement_strengthRef" :disable="!status" /> dense
v-model="achievement_strength_desc"
class="col-xs-12 col-sm-11 col-md-10 offset-md-1"
lazy-rules
type="textarea"
label="กรอกจุดเด่น"
hide-bottom-space
:row="5"
:rules="achievement_strengthRules"
ref="achievement_strengthRef"
:disable="!status"
/>
</div> </div>
<div class="col-12 row"> <div class="col-12 row">
<div class="col-12 text-top0 row items-center q-pl-lg"> <div class="col-12 text-top0 row items-center q-pl-lg">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" /> <q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
งทควรปรบปร (ไมเก 5 บรรท) งทควรปรบปร (ไมเก 5 บรรท)
</div> </div>
<q-input outlined dense v-model="achievement_improve_desc" class="col-xs-12 col-sm-11 col-md-10 offset-md-1" <q-input
lazy-rules type="textarea" hide-bottom-space label="กรอกสิ่งที่ควรปรับปรุง" :row="5" outlined
ref="achievement_inproveRef" :disable="!status" /> dense
v-model="achievement_improve_desc"
class="col-xs-12 col-sm-11 col-md-10 offset-md-1"
lazy-rules
type="textarea"
hide-bottom-space
label="กรอกสิ่งที่ควรปรับปรุง"
:row="5"
ref="achievement_inproveRef"
:disable="!status"
/>
</div> </div>
</div> </div>
<div class="row col-12 q-gutter-lg no-margin"> <div class="row col-12 q-gutter-lg no-margin">
@ -742,15 +886,27 @@ onMounted(async () => {
2.1 ความประพฤต 2.1 ความประพฤต
</div> </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-list dense v-for="(list, i) in list2_1" :key="i">
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
<q-item-label>{{ list.label }}</q-item-label> <q-item-label>{{ list.label }}</q-item-label>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-rating v-model="conduct_level[i]" :val="list.id" max="5" size="sm" color="grey" <q-rating
:color-selected="ratingColors" label="ระดับการประเมินพฤติกรรม" :disable="!status"> v-model="conduct_level[i]"
:val="list.id"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1> <template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip> <q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template> </template>
@ -779,15 +935,27 @@ onMounted(async () => {
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" /> <q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
2.2 ความมณธรรมจรยธรรม 2.2 ความมณธรรมจรยธรรม
</div> </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-list dense v-for="(list, i) in list2_2" :key="i">
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
<q-item-label>{{ list.label }}</q-item-label> <q-item-label>{{ list.label }}</q-item-label>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-rating v-model="moral_level[i]" :val="list.id" max="5" size="sm" color="grey" <q-rating
:color-selected="ratingColors" label="ระดับการประเมินพฤติกรรม" :disable="!status"> v-model="moral_level[i]"
:val="list.id"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1> <template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip> <q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template> </template>
@ -816,15 +984,27 @@ onMounted(async () => {
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" /> <q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
2.3 การรกษาว 2.3 การรกษาว
</div> </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-list dense v-for="(list, i) in list2_3" :key="i">
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
<q-item-label>{{ list.label }}</q-item-label> <q-item-label>{{ list.label }}</q-item-label>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-rating v-model="discipline_level[i]" :val="list.id" max="5" size="sm" color="grey" <q-rating
:color-selected="ratingColors" label="ระดับการประเมินพฤติกรรม" :disable="!status"> v-model="discipline_level[i]"
:val="list.id"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1> <template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip> <q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template> </template>
@ -852,23 +1032,50 @@ onMounted(async () => {
<div class="col-12 text-top0 row items-center q-pl-lg"> <div class="col-12 text-top0 row items-center q-pl-lg">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" /> <q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
2.4 นๆ 2.4 นๆ
<q-checkbox class="q-ml-sm" dense v-model="etc2" <q-checkbox
@click="(behavio_orther.text = ''), (behavio_orther.level = 0)" :disable="!status" /> class="q-ml-sm"
dense
v-model="etc2"
@click="(behavio_orther.text = ''), (behavio_orther.level = 0)"
:disable="!status"
/>
</div> </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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
<q-item-label> <q-item-label>
<q-input v-model="behavio_orther.text" label="กรอกอื่นๆ" dense lazy-rules autogrow hide-bottom-space <q-input
outlined class="bg-white" :rules="[ v-model="behavio_orther.text"
label="กรอกอื่นๆ"
dense
lazy-rules
autogrow
hide-bottom-space
outlined
class="bg-white"
:rules="[
(val) => (val && val.length > 0) || 'กรุณากรอกข้อความ', (val) => (val && val.length > 0) || 'กรุณากรอกข้อความ',
]" :disable="!status" /> ]"
:disable="!status"
/>
</q-item-label> </q-item-label>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-rating v-model="behavio_orther.level" max="5" size="sm" color="grey" :color-selected="ratingColors" <q-rating
label="ระดับการประเมินพฤติกรรม" :disable="!status"> v-model="behavio_orther.level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1> <template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip> <q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template> </template>
@ -897,18 +1104,39 @@ onMounted(async () => {
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" /> <q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
ดเด (ไมเก 5 บรรท) ดเด (ไมเก 5 บรรท)
</div> </div>
<q-input outlined dense v-model="behavior_strength_desc" class="col-xs-12 col-sm-11 col-md-10 offset-md-1" <q-input
lazy-rules type="textarea" label="กรอกจุดเด่น" hide-bottom-space :row="5" :rules="behavio_strengthRules" outlined
ref="behavio_strengthRef" :disable="!status" /> dense
v-model="behavior_strength_desc"
class="col-xs-12 col-sm-11 col-md-10 offset-md-1"
lazy-rules
type="textarea"
label="กรอกจุดเด่น"
hide-bottom-space
:row="5"
:rules="behavio_strengthRules"
ref="behavio_strengthRef"
:disable="!status"
/>
</div> </div>
<div class="col-12 row"> <div class="col-12 row">
<div class="col-12 text-top0 row items-center q-pl-lg"> <div class="col-12 text-top0 row items-center q-pl-lg">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" /> <q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
งทควรปรบปร (ไมเก 5 บรรท) งทควรปรบปร (ไมเก 5 บรรท)
</div> </div>
<q-input outlined dense v-model="behavior_improve_desc" class="col-xs-12 col-sm-11 col-md-10 offset-md-1" <q-input
lazy-rules type="textarea" hide-bottom-space label="กรอกสิ่งที่ควรปรับปรุง" :row="5" outlined
ref="behavio_inproveRef" :disable="!status" /> dense
v-model="behavior_improve_desc"
class="col-xs-12 col-sm-11 col-md-10 offset-md-1"
lazy-rules
type="textarea"
hide-bottom-space
label="กรอกสิ่งที่ควรปรับปรุง"
:row="5"
ref="behavio_inproveRef"
:disable="!status"
/>
</div> </div>
</div> </div>
</div> </div>
@ -919,7 +1147,11 @@ onMounted(async () => {
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">3</q-avatar> <q-avatar class="bg-grey-2 q-mr-sm" size="28px">3</q-avatar>
การพฒนาผทดลองปฏหนาทราชการ การพฒนาผทดลองปฏหนาทราชการ
</div> </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"
>
<q-list dense> <q-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
@ -927,10 +1159,22 @@ onMounted(async () => {
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<div class="row"> <div class="row">
<q-radio checked-icon="task_alt" unchecked-icon="panorama_fish_eye" v-model="orientation" val="1" <q-radio
label="ดำเนินการเเล้ว" :disable="!status" /> checked-icon="task_alt"
<q-radio checked-icon="task_alt" unchecked-icon="panorama_fish_eye" v-model="orientation" val="0" unchecked-icon="panorama_fish_eye"
label=" ยังไม่ได้ดำเนินการ" :disable="!status" /> v-model="orientation"
val="1"
label="ดำเนินการเเล้ว"
:disable="!status"
/>
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="orientation"
val="0"
label=" ยังไม่ได้ดำเนินการ"
:disable="!status"
/>
</div> </div>
</q-item-section> </q-item-section>
</q-item> </q-item>
@ -941,10 +1185,22 @@ onMounted(async () => {
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<div class="row"> <div class="row">
<q-radio checked-icon="task_alt" unchecked-icon="panorama_fish_eye" v-model="self_learning" val="1" <q-radio
label="ดำเนินการเเล้ว" :disable="!status" /> checked-icon="task_alt"
<q-radio checked-icon="task_alt" unchecked-icon="panorama_fish_eye" v-model="self_learning" val="0" unchecked-icon="panorama_fish_eye"
label=" ยังไม่ได้ดำเนินการ" :disable="!status" /> v-model="self_learning"
val="1"
label="ดำเนินการเเล้ว"
:disable="!status"
/>
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="self_learning"
val="0"
label=" ยังไม่ได้ดำเนินการ"
:disable="!status"
/>
</div> </div>
</q-item-section> </q-item-section>
</q-item> </q-item>
@ -955,24 +1211,50 @@ onMounted(async () => {
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<div class="row"> <div class="row">
<q-radio checked-icon="task_alt" unchecked-icon="panorama_fish_eye" v-model="training_seminar" val="1" <q-radio
label="ดำเนินการเเล้ว" :disable="!status" /> checked-icon="task_alt"
<q-radio checked-icon="task_alt" unchecked-icon="panorama_fish_eye" v-model="training_seminar" val="0" unchecked-icon="panorama_fish_eye"
label=" ยังไม่ได้ดำเนินการ" :disable="!status" /> v-model="training_seminar"
val="1"
label="ดำเนินการเเล้ว"
:disable="!status"
/>
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="training_seminar"
val="0"
label=" ยังไม่ได้ดำเนินการ"
:disable="!status"
/>
</div> </div>
</q-item-section> </q-item-section>
</q-item> </q-item>
<q-separator class="q-my-xs" /> <q-separator class="q-my-xs" />
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
<q-item-label>4. การอบรมอ ตามทหนวยงานกำหนด (าม)</q-item-label> <q-item-label
>4. การอบรมอ ตามทหนวยงานกำหนด (าม)</q-item-label
>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<div class="row"> <div class="row">
<q-radio checked-icon="task_alt" unchecked-icon="panorama_fish_eye" v-model="other_training" val="1" <q-radio
label="ดำเนินการเเล้ว" :disable="!status" /> checked-icon="task_alt"
<q-radio checked-icon="task_alt" unchecked-icon="panorama_fish_eye" v-model="other_training" val="0" unchecked-icon="panorama_fish_eye"
label=" ยังไม่ได้ดำเนินการ" :disable="!status" /> v-model="other_training"
val="1"
label="ดำเนินการเเล้ว"
:disable="!status"
/>
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="other_training"
val="0"
label=" ยังไม่ได้ดำเนินการ"
:disable="!status"
/>
</div> </div>
</q-item-section> </q-item-section>
</q-item> </q-item>
@ -987,11 +1269,27 @@ onMounted(async () => {
งคบบญชา/มอบหมายงาน งคบบญชา/มอบหมายงาน
</div> </div>
<div class="col-12 row q-col-gutter-md"> <div class="col-12 row q-col-gutter-md">
<q-select class="col-xs-12 col-sm-8" dense v-model="Autherise" outlined :options="option" <q-select
label="ผู้บังคับบัญชา" option-label="name" disable /> class="col-xs-12 col-sm-8"
dense
v-model="Autherise"
outlined
:options="option"
label="ผู้บังคับบัญชา"
option-label="label"
disable
/>
<div class="col-xs-12 col-sm-4"> <div class="col-xs-12 col-sm-4">
<datepicker menu-class-name="modalfix" v-model="dateAutherise" :locale="'th'" autoApply borderless <datepicker
:enableTimePicker="false" week-start="0" :readonly="!status"> menu-class-name="modalfix"
v-model="dateAutherise"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
:readonly="!status"
>
<template #year="{ year }"> <template #year="{ year }">
{{ year + 543 }} {{ year + 543 }}
</template> </template>
@ -999,11 +1297,23 @@ onMounted(async () => {
{{ parseInt(value + 543) }} {{ parseInt(value + 543) }}
</template> </template>
<template #trigger> <template #trigger>
<q-input outlined dense class="full-width datepicker col-3" :model-value="dateAutherise != null ? date2Thai(dateAutherise) : null <q-input
" :label="`${'ลงวันที่'}`" :rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]" outlined
:disable="!status"> dense
class="full-width datepicker col-3"
:model-value="
dateAutherise != null ? date2Thai(dateAutherise) : null
"
:label="`${'ลงวันที่'}`"
:rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]"
:disable="!status"
>
<template v-slot:prepend> <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> </q-icon>
</template> </template>
</q-input> </q-input>
@ -1013,7 +1323,10 @@ onMounted(async () => {
</div> </div>
</div> </div>
</div> </div>
<q-toolbar class="text-primary" v-if="routeName == 'probationFormAddresult'"> <q-toolbar
class="text-primary"
v-if="routeName == 'probationFormAddresult'"
>
<q-space /> <q-space />
<q-btn label="บันทึก" color="secondary" @click="savaForm" /> <q-btn label="บันทึก" color="secondary" @click="savaForm" />
</q-toolbar> </q-toolbar>

View file

@ -139,9 +139,7 @@ async function fecthFormdata(id: string) {
person.value = res.data.data.person; person.value = res.data.data.person;
assign.value = res.data.data.assign; assign.value = res.data.data.assign;
option.value.push(res.data.data.director); option.value.push(res.data.data.director);
Autherise.value = Autherise.value = res.data.data.director;
res.data.data.director.name +
` (${res.data.data.director.PositionLineName}, ${res.data.data.director.PositionLevelName}, ${res.data.data.director.Oc})`;
list1_1.value = res.data.data.assign_output; list1_1.value = res.data.data.assign_output;
res.data.data.assign_output.forEach((e: any) => { res.data.data.assign_output.forEach((e: any) => {
@ -388,11 +386,11 @@ onMounted(async () => {
<div class="col-12 q-pl-md q-pb-md"> <div class="col-12 q-pl-md q-pb-md">
<div class="col-12"> <div class="col-12">
<span class="text-top0 q-pl-sm">ตำแหนงในสายงาน</span> <span class="text-top0 q-pl-sm">ตำแหนงในสายงาน</span>
{{ person.PositionLineName }} {{ person.positionName }}
</div> </div>
<div class="col-12"> <div class="col-12">
<span class="text-top0 q-pl-sm">ระด</span> <span class="text-top0 q-pl-sm">ระดตำแหน</span>
{{ person.PositionLevelName }} {{ person.positionLevelName }}
</div> </div>
<div class="col-12"> <div class="col-12">
<span class="text-top0 q-pl-sm">งก</span> {{ person.Oc }} <span class="text-top0 q-pl-sm">งก</span> {{ person.Oc }}
@ -1370,7 +1368,6 @@ onMounted(async () => {
/> />
</div> </div>
</q-item-section> </q-item-section>
</q-item> </q-item>
<q-separator class="q-my-xs" /> <q-separator class="q-my-xs" />
@ -1413,7 +1410,6 @@ onMounted(async () => {
> >
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<div class="row"> <div class="row">
<q-radio <q-radio
checked-icon="task_alt" checked-icon="task_alt"
@ -1430,7 +1426,6 @@ onMounted(async () => {
label=" ยังไม่ได้ดำเนินการ" label=" ยังไม่ได้ดำเนินการ"
/> />
</div> </div>
</q-item-section> </q-item-section>
</q-item> </q-item>
</q-list> </q-list>
@ -1451,7 +1446,7 @@ onMounted(async () => {
outlined outlined
:options="option" :options="option"
label="ผู้บังคับบัญชา" label="ผู้บังคับบัญชา"
option-label="name" option-label="label"
disable disable
/> />
<div class="col-xs-12 col-sm-4"> <div class="col-xs-12 col-sm-4">

View file

@ -137,7 +137,7 @@ const variablesToWatch = [
const ArrayCountbotton = [orientation, self_learning, training_seminar]; const ArrayCountbotton = [orientation, self_learning, training_seminar];
/** เช็คข้อมูลก่อน save */ /** เช็คข้อมูลก่อน save */
function savaForm(){ function savaForm() {
achievement_strengthRef.value.validate(); achievement_strengthRef.value.validate();
behavio_strengthRef.value.validate(); behavio_strengthRef.value.validate();
@ -209,7 +209,7 @@ function savaForm(){
} else { } else {
putformData(); putformData();
} }
}; }
/** /**
* get data เกฐในตวแปร * get data เกฐในตวแปร
@ -227,9 +227,7 @@ async function fecthFormdata(id: string) {
person.value = res.data.data.person; person.value = res.data.data.person;
assign.value = res.data.data.assign; assign.value = res.data.data.assign;
option.value.push(res.data.data.director); option.value.push(res.data.data.director);
Autherise.value = Autherise.value = res.data.data.director;
res.data.data.director.name +
` (${res.data.data.director.PositionLineName}, ${res.data.data.director.PositionLevelName}, ${res.data.data.director.Oc})`;
list1_1.value = res.data.data.assign_output; list1_1.value = res.data.data.assign_output;
res.data.data.assign_output.forEach((e: any) => { res.data.data.assign_output.forEach((e: any) => {
@ -399,11 +397,11 @@ onMounted(async () => {
<div class="col-12 q-pl-md q-pb-md"> <div class="col-12 q-pl-md q-pb-md">
<div class="col-12"> <div class="col-12">
<span class="text-top0 q-pl-sm">ตำแหนงในสายงาน</span> <span class="text-top0 q-pl-sm">ตำแหนงในสายงาน</span>
{{ person.PositionLineName }} {{ person.positionName }}
</div> </div>
<div class="col-12"> <div class="col-12">
<span class="text-top0 q-pl-sm">ระด</span> <span class="text-top0 q-pl-sm">ระดตำแหน</span>
{{ person.PositionLevelName }} {{ person.positionLevelName }}
</div> </div>
<div class="col-12"> <div class="col-12">
<span class="text-top0 q-pl-sm">งก</span> {{ person.Oc }} <span class="text-top0 q-pl-sm">งก</span> {{ person.Oc }}
@ -1453,8 +1451,8 @@ onMounted(async () => {
v-model="Autherise" v-model="Autherise"
outlined outlined
:options="option" :options="option"
option-label="label"
label="ผู้บังคับบัญชา" label="ผู้บังคับบัญชา"
option-label="name"
disable disable
/> />
<div class="col-xs-12 col-sm-4"> <div class="col-xs-12 col-sm-4">

View file

@ -109,7 +109,6 @@ const behavio_strengthRules = [
(val: any) => (val && val.length > 0) || "กรุณากรอกข้อมูลจุดเด่น", (val: any) => (val && val.length > 0) || "กรุณากรอกข้อมูลจุดเด่น",
]; ];
/** รับค่า props มาจากหน้าหลัก */ /** รับค่า props มาจากหน้าหลัก */
const props = defineProps({ const props = defineProps({
tab: String, tab: String,
@ -119,20 +118,20 @@ const props = defineProps({
}); });
/** ให้ status true */ /** ให้ status true */
function edit(){ function edit() {
status.value = true; status.value = true;
}; }
/** status false /** status false
* เรยกใช งช จากหนาหล * เรยกใช งช จากหนาหล
*/ */
function cancel(){ function cancel() {
status.value = false; status.value = false;
props.fecthAssign?.(assignId.value); props.fecthAssign?.(assignId.value);
}; }
/** get data */ /** get data */
async function fecthFormdata(){ async function fecthFormdata() {
await http await http
.get(config.API.formevaluateRecordCommander(assignId.value)) .get(config.API.formevaluateRecordCommander(assignId.value))
.then(async (res: any) => { .then(async (res: any) => {
@ -145,13 +144,11 @@ async function fecthFormdata(){
fecthFormRound(); fecthFormRound();
} }
}); });
}; }
/** get data */ /** get data */
async function fectFormfull(){ async function fectFormfull() {
Autherise.value = Autherise.value = probationStore.director;
probationStore.director.name +
` (${probationStore.director.PositionLineName}, ${probationStore.director.PositionLevelName}, ${probationStore.director.Oc})`;
list1_1.value = probationStore.assignOutput; list1_1.value = probationStore.assignOutput;
evaluate_expenct_level.value = await probationStore.assignOutput.map( evaluate_expenct_level.value = await probationStore.assignOutput.map(
(e: any) => ({ (e: any) => ({
@ -164,10 +161,10 @@ async function fectFormfull(){
})); }));
checkArray.value = list1_1.value.length; checkArray.value = list1_1.value.length;
fecthFormRound(); fecthFormRound();
}; }
/** get data */ /** get data */
async function fecthFormRound(){ async function fecthFormRound() {
try { try {
let data = await dataArr.value; let data = await dataArr.value;
evaluate_id.value = data.id; evaluate_id.value = data.id;
@ -225,10 +222,10 @@ async function fecthFormRound(){
} catch (error) { } catch (error) {
hideLoader(); hideLoader();
} }
}; }
/** เช็คก่อน save */ /** เช็คก่อน save */
function savaForm(){ function savaForm() {
achievement_strengthRef.value.validate(); achievement_strengthRef.value.validate();
achievement_inproveRef.value.validate(); achievement_inproveRef.value.validate();
behavio_strengthRef.value.validate(); behavio_strengthRef.value.validate();
@ -269,10 +266,10 @@ function savaForm(){
if (hasError === true) { if (hasError === true) {
notifyError($q, "กรุณากรอกข้อมูลให้ครบ"); notifyError($q, "กรุณากรอกข้อมูลให้ครบ");
} }
}; }
/** ยืนยัน save data */ /** ยืนยัน save data */
function putformData(){ function putformData() {
const data = { const data = {
evaluate_no: evaluate_no.value, evaluate_no: evaluate_no.value,
start_date: start_date.value, start_date: start_date.value,
@ -312,10 +309,10 @@ function putformData(){
dialogConfirm($q, () => dialogConfirm($q, () =>
props.action == "edit" ? editData(data) : saveformdata(data) props.action == "edit" ? editData(data) : saveformdata(data)
); );
}; }
/** save data */ /** save data */
async function saveformdata(data: any){ async function saveformdata(data: any) {
await http await http
.post(config.API.formevaluateCommander(assignId.value), data) .post(config.API.formevaluateCommander(assignId.value), data)
.then((res: any) => { .then((res: any) => {
@ -325,10 +322,10 @@ async function saveformdata(data: any){
.catch((e: any) => { .catch((e: any) => {
messageError($q, e); messageError($q, e);
}); });
}; }
/** update data */ /** update data */
async function editData(data: any){ async function editData(data: any) {
await http await http
.put( .put(
config.API.editEvaluateCommander(assignId.value, evaluate_id.value), config.API.editEvaluateCommander(assignId.value, evaluate_id.value),
@ -341,7 +338,7 @@ async function editData(data: any){
.catch((e: any) => { .catch((e: any) => {
messageError($q, e); messageError($q, e);
}); });
}; }
watch(props, async () => { watch(props, async () => {
if (props.tab && props.action == "edit") { if (props.tab && props.action == "edit") {
@ -405,11 +402,11 @@ onMounted(async () => {
<!-- <div class="col-12"><span class="text-top0 q-pl-sm">ตำแหน</span> {{ person.Position }}</div> --> <!-- <div class="col-12"><span class="text-top0 q-pl-sm">ตำแหน</span> {{ person.Position }}</div> -->
<div class="col-12"> <div class="col-12">
<span class="text-top0 q-pl-sm">ตำแหนงในสายงาน</span> <span class="text-top0 q-pl-sm">ตำแหนงในสายงาน</span>
{{ probationStore.person.PositionLineName }} {{ probationStore.person.positionName }}
</div> </div>
<div class="col-12"> <div class="col-12">
<span class="text-top0 q-pl-sm">ระด</span> <span class="text-top0 q-pl-sm">ระดตำแหน</span>
{{ probationStore.person.PositionLevelName }} {{ probationStore.person.positionLevelName }}
</div> </div>
<div class="col-12"> <div class="col-12">
<span class="text-top0 q-pl-sm">งก</span> <span class="text-top0 q-pl-sm">งก</span>
@ -1294,8 +1291,8 @@ onMounted(async () => {
v-model="Autherise" v-model="Autherise"
outlined outlined
:options="option" :options="option"
option-label="label"
label="ผู้บังคับบัญชา" label="ผู้บังคับบัญชา"
option-label="name"
disable disable
/> />
<div class="col-xs-12 col-sm-4"> <div class="col-xs-12 col-sm-4">

View file

@ -7,7 +7,7 @@ import { useCounterMixin } from "@/stores/mixin";
import { useQuasar } from "quasar"; import { useQuasar } from "quasar";
import http from "@/plugins/http"; import http from "@/plugins/http";
import config from "@/app.config"; import config from "@/app.config";
import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue"; import PopupPersonal from "@/components/Dialogs/PopupPersonalNew.vue";
const modalPersonal = ref<boolean>(false); const modalPersonal = ref<boolean>(false);
const personId = ref<string>(""); const personId = ref<string>("");
@ -22,7 +22,7 @@ const attrs = ref<any>(useAttrs());
const paging = ref<boolean>(true); const paging = ref<boolean>(true);
const filterRef = ref<any>(null); const filterRef = ref<any>(null);
const organization = ref<string>(""); const organization = ref<string>("");
const avatarprofile = ref<string>(""); const avatarProfile = ref<string>("");
const filterKeyword = ref<string>(""); const filterKeyword = ref<string>("");
const position_line = ref<string>(""); const position_line = ref<string>("");
const position_level = ref<string>(""); const position_level = ref<string>("");
@ -178,7 +178,6 @@ async function getpersonalList() {
organization.value = data.organization; organization.value = data.organization;
probation_status.value = data.probation_status; probation_status.value = data.probation_status;
probation_statusold.value = data.probation_status; probation_statusold.value = data.probation_status;
avatarprofile.value = data.avatar;
}) })
.catch(() => {}) .catch(() => {})
.finally(() => { .finally(() => {
@ -230,10 +229,10 @@ function resetFilter() {
filterRef.value.focus(); filterRef.value.focus();
} }
function paginationLabel(start: string, end: string, total: string){ function paginationLabel(start: string, end: string, total: string) {
if (paging.value == true) return " " + start + "-" + end + " ใน " + total; if (paging.value == true) return " " + start + "-" + end + " ใน " + total;
else return start + "-" + end + " ใน " + total; else return start + "-" + end + " ใน " + total;
}; }
function onclickViewinfo(id: string) { function onclickViewinfo(id: string) {
modalPersonal.value = true; modalPersonal.value = true;
@ -244,10 +243,26 @@ function updatemodalPersonal(modal: boolean) {
modalPersonal.value = modal; modalPersonal.value = modal;
} }
async function fetchProfilePhoto() {
await http
.get(
config.API.fileByFile(
"ทะเบียนประวัติ",
"โปรไฟล์",
personalId.value,
`profile-${personalId.value}`
)
)
.then(async (res) => {
avatarProfile.value = res.data.downloadUrl;
});
}
/** get ค่า เมื่อโหลดหน้า */ /** get ค่า เมื่อโหลดหน้า */
onMounted(async () => { onMounted(async () => {
await getpersonalList(); await getpersonalList();
await getAssignList(); await getAssignList();
fetchProfilePhoto();
}); });
</script> </script>
@ -283,7 +298,7 @@ onMounted(async () => {
<div class="row col-12 q-pa-md"> <div class="row col-12 q-pa-md">
<div class="col-12 row bg-white q-col-gutter-md"> <div class="col-12 row bg-white q-col-gutter-md">
<div class="col-xs-3 col-sm-2 col-md-1 row"> <div class="col-xs-3 col-sm-2 col-md-1 row">
<q-img :src="avatarprofile" v-if="avatarprofile !== null" /> <q-img :src="avatarProfile" v-if="avatarProfile !== ''" />
<q-img src="@/assets/avatar_user.jpg" v-else /> <q-img src="@/assets/avatar_user.jpg" v-else />
</div> </div>
@ -349,7 +364,6 @@ onMounted(async () => {
> >
<q-tooltip>เพมงานทไดบมอบหมาย</q-tooltip> <q-tooltip>เพมงานทไดบมอบหมาย</q-tooltip>
</q-btn> </q-btn>
</div> </div>
<q-space /> <q-space />
<q-input <q-input
@ -448,7 +462,6 @@ onMounted(async () => {
</div> </div>
</q-card> </q-card>
<PopupPersonal <PopupPersonal
:modal="modalPersonal" :modal="modalPersonal"
:id="personId" :id="personId"