Merge branch 'develop' into devTee

This commit is contained in:
setthawutttty 2025-01-15 17:00:03 +07:00
commit 4629ec5a01
16 changed files with 82 additions and 64 deletions

View file

@ -107,7 +107,7 @@ async function validateForm() {
nextTostep3();
}
} else {
if (store.statusUpload === false) {
if (store.statusUpload6 === false) {
saveStep6();
} else {
nextTostep7();
@ -458,6 +458,7 @@ async function nextTostep3() {
)
.then(() => {
route.params.id && fetchCheckStep(route.params.id.toString());
store.statusUpload = false;
})
.catch((err) => {
messageError($q, err);
@ -500,6 +501,7 @@ async function saveStep6() {
subjectDoc2: formCommand.subject,
assignedPosition: formCommand.assignedPosition,
};
dialogConfirm(
$q,
async () => {

View file

@ -152,10 +152,10 @@ async function fetcheSigner(id: string) {
formCommand.subject = data.subjectDoc2;
formCommand.assignedPosition = data.assignedPosition;
store.statusUpload = true;
store.statusUpload6 = data.commanderFullnameDoc2 === null ? false : true;
})
.catch(() => {
store.statusUpload = false;
store.statusUpload6 = false;
getCommander();
})
.finally(() => {
@ -234,10 +234,10 @@ watch(
}
);
watch(
() => store.statusUpload,
() => store.statusUpload6,
() => {
setTimeout(() => {
store.statusUpload && updateInput(formCommand);
store.statusUpload6 && updateInput(formCommand);
}, 200);
}
);
@ -249,7 +249,7 @@ onMounted(async () => {
formCommand.author = user.name;
}
checkDoc();
if (store.currentStep > 2) {
if (store.currentStep >= 6) {
fetcheSigner(evaluateId.value);
}
await fetchCheckDate();
@ -433,7 +433,7 @@ onMounted(async () => {
<div class="row q-col-gutter-sm col-12">
<div class="col-12">
<q-file
:disable="!store.statusUpload"
:disable="!store.statusUpload6"
ref="fileEvaluation1Ref"
v-model="fileEvaluation1"
class="col-12"
@ -455,7 +455,7 @@ onMounted(async () => {
<template v-slot:after>
<div>
<q-btn
:disable="!store.statusUpload"
:disable="!store.statusUpload6"
round
dense
flat

View file

@ -42,6 +42,8 @@ export const useEvaluateStore = defineStore("evaluateStore", () => {
const step = ref<number>(1);
const currentStep = ref<number>(1);
const statusUpload = ref<boolean>(false);
const statusUpload6 = ref<boolean>(false);
const title = ref<string[]>([
"ตรวจสอบคุณสมบัติ",
"จัดเตรียมเอกสารเล่ม 1",
@ -100,5 +102,6 @@ export const useEvaluateStore = defineStore("evaluateStore", () => {
tabPanels,
evaluateId,
showLoadStatus,
statusUpload6,
};
});

View file

@ -172,7 +172,7 @@ const columns = ref<QTableProps["columns"]>([
field: "commandNo",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
format: (val) => statusText(val),
},
]);
@ -261,7 +261,7 @@ watch(
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-tr :props="props">
<q-td v-for="col in props.cols" :key="col.id">
<div v-if="col.name === 'no'">
{{ props.rowIndex + 1 }}

View file

@ -67,9 +67,9 @@ async function fetchEvaluation() {
.get(config.API.kpiEvaluation + `/${id.value}`)
.then(async (res) => {
const data = await res.data.result;
store.dataEvaluation = res.data.result;
formProfile.status = await store.convertStatus(data.evaluationStatus);
formProfile.result = await store.convertResults(data.evaluationResults);
store.dataEvaluation = await res.data.result;
formProfile.status = store.convertStatus(data.evaluationStatus);
formProfile.result = store.convertResults(data.evaluationResults);
store.checkCompetencyDefaultCompetencyLevel();
})
.catch((e) => {
@ -88,8 +88,6 @@ async function getProfile() {
if (data.avatarName) {
await fetchProfile(data.profileId, data.avatarName);
}
await store.checkStep();
})
.catch((e) => {
messageError($q, e);
@ -225,6 +223,7 @@ function filterOption(val: string, update: Function, refData: string) {
/** ดึงข้อมูลทั้งหมดในหน้า */
async function getAll() {
await Promise.all([fetchEvaluation(), getProfile(), getOrgOp()]);
await store.checkStep();
}
/** ส่งให้ผู้ประเมิน */
@ -464,7 +463,7 @@ async function fetchProfileEvaluator(id: string) {
onMounted(async () => {
showLoader();
store.isUpdate = await false;
store.isUpdate = false;
await getAll();
});
</script>

View file

@ -362,7 +362,7 @@ onMounted(() => {
<div class="col-12 text-dark text-weight-bold">
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">2</q-avatar>
การพฒนาผทดลองปฏหนาทราชการ
การพฒนาผทดลองปฏหนาทราชการ
</div>
<div class="col-12">
<q-card bordered class="bg-grey-1">

View file

@ -499,7 +499,7 @@ onMounted(async () => {
</div>
<div class="col-12 text-weight-medium">
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">1</q-avatar>
ผลสมฤทธของการทดลองปฏหนาทราชการ
ผลสมฤทธของการทดลองปฏหนาทราชการ
</div>
<div class="col-12">
<div class="row q-col-gutter-sm">
@ -919,7 +919,7 @@ onMounted(async () => {
color="grey-4"
class="q-pr-sm"
/>
1.4. สมรถนะ</q-item-label
1.4. สมรถนะ</q-item-label
>
</q-item-section>
<q-item-section side>
@ -967,7 +967,7 @@ onMounted(async () => {
<q-item dense v-ripple>
<q-item-section>
<q-item-label class="text-start">
1.4. สมรถนะ</q-item-label
1.4. สมรถนะ</q-item-label
>
</q-item-section>
</q-item>
@ -1533,7 +1533,7 @@ onMounted(async () => {
<div class="col-12 text-weight-medium">
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">2</q-avatar>
พฤตกรรมของผทดลองปฏหนาทราชการ
พฤตกรรมของผทดลองปฏหนาทราชการ
</div>
<div class="col-12 row">
<div class="col-12 text-top0 row items-center q-pl-lg">
@ -1882,7 +1882,7 @@ onMounted(async () => {
<div class="col-12 text-weight-medium">
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">3</q-avatar>
การพฒนาผทดลองปฏหนาทราชการ
การพฒนาผทดลองปฏหนาทราชการ
</div>
<div class="col-12">

View file

@ -523,7 +523,7 @@ onMounted(async () => {
<div class="row justify-center">
<div class="col-12 text-top0 items-center">
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">1</q-avatar>
ผลสมฤทธของการทดลองปฏหนาทราชการ
ผลสมฤทธของการทดลองปฏหนาทราชการ
</div>
<div class="col-12 text-top0 row items-center q-pl-lg">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
@ -811,7 +811,7 @@ onMounted(async () => {
<q-item-section>
<q-item-label>
<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 side>
@ -1160,7 +1160,7 @@ onMounted(async () => {
<div class="col-12 row">
<div class="col-12 text-top0 items-center">
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">2</q-avatar>
พฤตกรรมของผทดลองปฏหนาทราชการ
พฤตกรรมของผทดลองปฏหนาทราชการ
</div>
<div class="col-12 text-top0 row items-center q-pl-lg">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
@ -1429,7 +1429,7 @@ onMounted(async () => {
<div class="col-12 row justify-center">
<div class="col-12 text-top0 items-center">
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">3</q-avatar>
การพฒนาผทดลองปฏหนาทราชการ
การพฒนาผทดลองปฏหนาทราชการ
</div>
<q-card
flat

View file

@ -682,7 +682,7 @@ onMounted(async () => {
</div>
<div class="col-12 text-weight-medium">
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">1</q-avatar>
ผลสมฤทธของการทดลองปฏหนาทราชการ
ผลสมฤทธของการทดลองปฏหนาทราชการ
</div>
<div class="col-12">
<div class="row q-col-gutter-sm">
@ -1073,7 +1073,7 @@ onMounted(async () => {
<q-item-section>
<q-item-label>
<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 side>
@ -1118,7 +1118,7 @@ onMounted(async () => {
<q-item dense v-ripple>
<q-item-section>
<q-item-label class="text-start">
1.4. สมรถนะ</q-item-label
1.4. สมรถนะ</q-item-label
>
</q-item-section>
</q-item>
@ -1649,7 +1649,7 @@ onMounted(async () => {
<div class="col-12 text-weight-medium">
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">2</q-avatar>
พฤตกรรมของผทดลองปฏหนาทราชการ
พฤตกรรมของผทดลองปฏหนาทราชการ
</div>
<div class="col-12 row">
<div class="col-12 text-top0 row items-center q-pl-lg">
@ -2001,7 +2001,7 @@ onMounted(async () => {
<div class="col-12 text-weight-medium">
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">3</q-avatar>
การพฒนาผทดลองปฏหนาทราชการ
การพฒนาผทดลองปฏหนาทราชการ
</div>
<div class="col-12">

View file

@ -16,7 +16,7 @@ export const useProbationStore = defineStore("probationStore", () => {
const behavior_no1 = [
{ id: "1", label: "ให้บริการประชาชนหรือผู้รับบริการด้วยอัธยาศัยดี" },
{ id: "2", label: "มีความรับผิดชอบในการปฏิบัติบัติงาน" },
{ id: "2", label: "มีความรับผิดชอบในการปฏิบัติงาน" },
{
id: "3",
label:
@ -24,17 +24,17 @@ export const useProbationStore = defineStore("probationStore", () => {
},
{
id: "4",
label: "ตั้งใจปฏิบัติบัติหน้าที่ราชการด้วยความอุตสาหะ ขยันหมั่นเพียร",
label: "ตั้งใจปฏิบัติหน้าที่ราชการด้วยความอุตสาหะ ขยันหมั่นเพียร",
},
];
const behavior_no2 = [
{
id: "1",
label: "อุทิศตนและเสียสละเวลาในการปฏิบัติบัติงานอย่างเต็มกำลังความสามารถ",
label: "อุทิศตนและเสียสละเวลาในการปฏิบัติงานอย่างเต็มกำลังความสามารถ",
},
{
id: "2",
label: "มีจิตสำนึกที่ดี ปฏิบัติบัติงานด้วยความซื่อสัตย์ สุจริต",
label: "มีจิตสำนึกที่ดี ปฏิบัติงานด้วยความซื่อสัตย์ สุจริต",
},
{
id: "3",
@ -43,10 +43,10 @@ export const useProbationStore = defineStore("probationStore", () => {
},
];
const behavior_no3 = [
{ id: "1", label: "มีความรับรัผิดชอบในการรักษาเวลาทำงาน" },
{ id: "1", label: "มีความรับผิดชอบในการรักษาเวลาทำงาน" },
{
id: "2",
label: "แต่งกายในการปฏิบัติบัติงานได้อย่างเหมาะสมกับการเป็นข้าราชการ",
label: "แต่งกายในการปฏิบัติงานได้อย่างเหมาะสมกับการเป็นข้าราชการ",
},
{
id: "3",
@ -60,7 +60,7 @@ export const useProbationStore = defineStore("probationStore", () => {
},
{
id: "5",
label: "ปฏิบัติบัติหน้าที่อย่างตรงไปตรงมาโดยยึดหลักจรรยาบรรณวิชาชีพ",
label: "ปฏิบัติหน้าที่อย่างตรงไปตรงมาโดยยึดหลักจรรยาบรรณวิชาชีพ",
},
];
const ratingColors = ref<string[]>([

View file

@ -148,7 +148,7 @@ function getList(id: string) {
http
.get(config.API.probationMain(id))
.then((res) => {
const data = res.data.data;
const data = res.data.result;
rows.value = data;
rowsData.value = data;
})

View file

@ -29,6 +29,7 @@ const { messageError, success, dialogConfirm, showLoader, hideLoader } = mixin;
const route = useRoute();
const assignId = ref<string>("baa3d9f6-9d21-4c58-85f2-114abf8de25c");
const isData = defineModel<boolean>("isData", { required: true });
const status = ref<boolean>(true);
const answer1 = ref<string>("");
@ -39,11 +40,13 @@ const classBordered = ref<string>("");
/** ดึง ข้อมูลแบบสำรวจ */
async function getSurveyData() {
isData.value = true;
showLoader();
await http
.get(config.API.summaryDetail())
.then(async (res: any) => {
const data = await res.data.result.data;
isData.value = true;
assignId.value = res.data.result.assignId;
store.assignId = res.data.result.assignId;
if (data !== null) {
@ -55,7 +58,8 @@ async function getSurveyData() {
hideLoader();
})
.catch((e) => {
messageError($q, e);
// messageError($q, e);
isData.value = false;
hideLoader();
});
}

View file

@ -229,7 +229,7 @@ onMounted(async () => {
<div class="col-12 row justify-center">
<div class="col-12 text-top0 items-center">
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">2</q-avatar>
การพฒนาผทดลองปฏหนาทราชการ
การพฒนาผทดลองปฏหนาทราชการ
</div>
<q-card
flat

View file

@ -1,5 +1,9 @@
<script setup lang="ts">
import { onMounted, ref } from "vue";
import { useRouter } from "vue-router";
import http from "@/plugins/http";
import config from "@/app.config";
import { useProbationReport } from "@/modules/15_probationReport/store";
@ -8,6 +12,8 @@ import ResultPage from "@/modules/15_probationReport/components/02_ResultPage.vu
const store = useProbationReport();
const router = useRouter();
const isData = ref<boolean>(true);
</script>
<template>
<div class="col-12 row justify-center">
@ -25,8 +31,19 @@ const router = useRouter();
/>
ผลการทดลองปฏหนาทราชการและแบบสำรวจความคดเห
</div>
<div class="col-12">
<q-card bordered>
<div class="col-12" v-if="!isData">
<q-banner
inline-actions
rounded
class="text-center"
style="min-height: 100px"
>
ไมพบผลการประเมนการทดลองปฏหนาทราชการน
</q-banner>
</div>
<q-card bordered v-else>
<q-tabs
v-model="store.tabMain"
inline-label
@ -43,10 +60,11 @@ const router = useRouter();
<q-tab-panels v-model="store.tabMain" animated>
<q-tab-panel name="SURVEY" class="q-pa-none">
<SurveyPage
/></q-tab-panel>
<q-tab-panel name="RESULT"> <ResultPage /> </q-tab-panel>
<SurveyPage v-model:is-data="isData" />
</q-tab-panel>
<q-tab-panel name="RESULT">
<ResultPage />
</q-tab-panel>
</q-tab-panels>
</q-card>
</div>