แก้ ผลการทดลองปฏิบัติหน้าที่ราชการและแบบสำรวจความคิดเห็น
This commit is contained in:
parent
07cba8bb70
commit
adfbe1a2f8
4 changed files with 188 additions and 78 deletions
|
|
@ -3,7 +3,7 @@ import env from "./index";
|
||||||
const development = `${env.API_URI}/development`;
|
const development = `${env.API_URI}/development`;
|
||||||
const urlFile = `${env.API_URI}/salary`;
|
const urlFile = `${env.API_URI}/salary`;
|
||||||
const orgProfile = `${env.API_URI}/org/profile`;
|
const orgProfile = `${env.API_URI}/org/profile`;
|
||||||
|
const url = `${env.API_URI}/salary`;
|
||||||
export default {
|
export default {
|
||||||
// portfolio
|
// portfolio
|
||||||
portfolio: `${development}/portfolio`,
|
portfolio: `${development}/portfolio`,
|
||||||
|
|
@ -21,5 +21,7 @@ export default {
|
||||||
subId: string,
|
subId: string,
|
||||||
fileName: string
|
fileName: string
|
||||||
) => `${urlFile}/sub-file/${name}/${group}/${id}/${subId}/${fileName}`,
|
) => `${urlFile}/sub-file/${name}/${group}/${id}/${subId}/${fileName}`,
|
||||||
developmentRequest:`${orgProfile}/development-request`
|
developmentRequest:`${orgProfile}/development-request`,
|
||||||
|
|
||||||
|
fileByPath:(path:string)=> `${url}/file/${path}`,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,170 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from "vue";
|
import { onMounted, ref } from "vue";
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
|
import http from "@/plugins/http";
|
||||||
|
import config from "@/app.config";
|
||||||
|
import { useProbationReport } from "@/modules/15_probationReport/store";
|
||||||
|
|
||||||
|
import type {
|
||||||
|
FileType,
|
||||||
|
ProbationReportType,
|
||||||
|
} from "@/modules/15_probationReport/interface/Main";
|
||||||
|
import { useQuasar } from "quasar";
|
||||||
|
|
||||||
|
const $q = useQuasar();
|
||||||
|
const store = useProbationReport();
|
||||||
|
|
||||||
|
const dataResult1 = defineModel<FileType[]>("dataResult1", { required: true });
|
||||||
|
const dataResult2 = defineModel<FileType[]>("dataResult2", { required: true });
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
page: Number,
|
||||||
|
});
|
||||||
const mixin = useCounterMixin();
|
const mixin = useCounterMixin();
|
||||||
const { date2Thai } = mixin;
|
const {
|
||||||
|
date2Thai,
|
||||||
|
dateToISO,
|
||||||
|
success,
|
||||||
|
messageError,
|
||||||
|
showLoader,
|
||||||
|
hideLoader,
|
||||||
|
dialogConfirm,
|
||||||
|
} = mixin;
|
||||||
|
|
||||||
const formData = defineModel<any>("formData", { required: true });
|
|
||||||
const dev_options = defineModel<any>("dev_options", { required: true });
|
const dev_options = defineModel<any>("dev_options", { required: true });
|
||||||
const result_option = defineModel<any>("result_option", { required: true });
|
const result_option = defineModel<any>("result_option", { required: true });
|
||||||
const status = ref<boolean>(false);
|
const status = ref<boolean>(false);
|
||||||
|
|
||||||
|
const formData = ref<ProbationReportType>({
|
||||||
|
develop_orientation_score: 0,
|
||||||
|
develop_self_learning_score: 0,
|
||||||
|
develop_training_seminar_score: 0,
|
||||||
|
develop_other_training_score: 0,
|
||||||
|
develop_total_score: 0,
|
||||||
|
develop_orientation_percent: 0,
|
||||||
|
develop_self_learning_percent: 0,
|
||||||
|
develop_training_seminar_percent: 0,
|
||||||
|
develop_other_training_percent: 0,
|
||||||
|
develop_total_percent: 0,
|
||||||
|
develop_result: 0,
|
||||||
|
achievement_score: 0,
|
||||||
|
achievement_score_total: 0,
|
||||||
|
achievement_percent: 0,
|
||||||
|
achievement_result: 0,
|
||||||
|
behavior_score: 0,
|
||||||
|
behavior_score_total: 0,
|
||||||
|
behavior_percent: 0,
|
||||||
|
behavior_result: 0,
|
||||||
|
sum_score: 0,
|
||||||
|
sum_percent: 0,
|
||||||
|
reason: "",
|
||||||
|
pass_result: 0,
|
||||||
|
evaluate_date: new Date(),
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* download file
|
||||||
|
* @param type type file
|
||||||
|
*/
|
||||||
|
async function clickdownloadFile() {
|
||||||
|
console.log(props.page);
|
||||||
|
showLoader();
|
||||||
|
await http
|
||||||
|
.get(
|
||||||
|
config.API.fileByPath(
|
||||||
|
props.page == 1
|
||||||
|
? dataResult1.value[0].pathname
|
||||||
|
: dataResult2.value[0].pathname
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.then(async (res) => {
|
||||||
|
const data = res.data.downloadUrl;
|
||||||
|
window.open(data);
|
||||||
|
hideLoader();
|
||||||
|
})
|
||||||
|
.catch(async (e) => {
|
||||||
|
messageError($q, JSON.parse(await e.response.data.text()));
|
||||||
|
hideLoader();
|
||||||
|
})
|
||||||
|
.finally(() => {});
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getData() {
|
||||||
|
showLoader();
|
||||||
|
http
|
||||||
|
.get(
|
||||||
|
config.API.summaryReportDetail(store.assignId) +
|
||||||
|
`&evaluate_no=${props.page}`
|
||||||
|
)
|
||||||
|
.then((res) => {
|
||||||
|
const data = res.data.result;
|
||||||
|
formData.value.develop_orientation_score = data.develop_orientation_score;
|
||||||
|
formData.value.develop_self_learning_score =
|
||||||
|
data.develop_self_learning_score;
|
||||||
|
formData.value.develop_training_seminar_score =
|
||||||
|
data.develop_training_seminar_score;
|
||||||
|
formData.value.develop_other_training_score =
|
||||||
|
data.develop_other_training_score;
|
||||||
|
formData.value.develop_total_score = data.develop_total_score;
|
||||||
|
formData.value.develop_orientation_percent =
|
||||||
|
data.develop_orientation_percent;
|
||||||
|
formData.value.develop_self_learning_percent =
|
||||||
|
data.develop_self_learning_percent;
|
||||||
|
formData.value.develop_training_seminar_percent =
|
||||||
|
data.develop_training_seminar_percent;
|
||||||
|
formData.value.develop_other_training_percent =
|
||||||
|
data.develop_other_training_percent;
|
||||||
|
formData.value.develop_total_percent = data.develop_total_percent;
|
||||||
|
formData.value.develop_result =
|
||||||
|
data.develop_result == 0 ? 2 : data.develop_result;
|
||||||
|
|
||||||
|
formData.value.achievement_score = data.achievement_score;
|
||||||
|
formData.value.achievement_score_total = data.achievement_score_total;
|
||||||
|
formData.value.achievement_percent = data.achievement_percent;
|
||||||
|
formData.value.achievement_result = data.achievement_result;
|
||||||
|
|
||||||
|
formData.value.behavior_score = data.behavior_score;
|
||||||
|
formData.value.behavior_score_total = data.behavior_score_total;
|
||||||
|
formData.value.behavior_percent = data.behavior_percent;
|
||||||
|
formData.value.behavior_result = data.behavior_result;
|
||||||
|
|
||||||
|
formData.value.sum_score = data.sum_score;
|
||||||
|
formData.value.sum_percent = data.sum_percent;
|
||||||
|
|
||||||
|
formData.value.reason = data.reason;
|
||||||
|
formData.value.pass_result = data.pass_result;
|
||||||
|
formData.value.evaluate_date = data.evaluate_date;
|
||||||
|
hideLoader();
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
messageError($q, e);
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
hideLoader();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(async () => {
|
||||||
|
await getData();
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="row col-12 q-ma-xs">
|
<div class="row col-12 q-ma-xs">
|
||||||
<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>
|
||||||
|
<q-btn
|
||||||
|
icon="download"
|
||||||
|
color="primary"
|
||||||
|
clickable
|
||||||
|
v-close-popup
|
||||||
|
outlined
|
||||||
|
flat
|
||||||
|
round
|
||||||
|
dense
|
||||||
|
@click="clickdownloadFile()"
|
||||||
|
>
|
||||||
|
<q-tooltip>ดาวน์โหลด</q-tooltip>
|
||||||
|
</q-btn>
|
||||||
</div>
|
</div>
|
||||||
<div class="row col-12 q-pt-lg q-px-lg no-margin">
|
<div class="row col-12 q-pt-lg q-px-lg no-margin">
|
||||||
<div class="col-12 row justify-center">
|
<div class="col-12 row justify-center">
|
||||||
|
|
|
||||||
|
|
@ -12,10 +12,15 @@ import { useDataStore } from "@/stores/data";
|
||||||
import type {
|
import type {
|
||||||
AppointTopic,
|
AppointTopic,
|
||||||
AppointTopicMain,
|
AppointTopicMain,
|
||||||
|
FileType,
|
||||||
} from "@/modules/15_probationReport/interface/Main";
|
} from "@/modules/15_probationReport/interface/Main";
|
||||||
|
|
||||||
import genReport from "@/plugins/genreport";
|
import genReport from "@/plugins/genreport";
|
||||||
|
|
||||||
|
const dataProbation = defineModel<FileType[]>("dataProbation", {
|
||||||
|
required: true,
|
||||||
|
});
|
||||||
|
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
const isEdit = ref<boolean>(false);
|
const isEdit = ref<boolean>(false);
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
@ -871,17 +876,13 @@ function downloadFile(response: any, filename: string) {
|
||||||
* download file
|
* download file
|
||||||
* @param type type file
|
* @param type type file
|
||||||
*/
|
*/
|
||||||
async function clickdownloadFile(type: string) {
|
async function clickdownloadFile() {
|
||||||
showLoader();
|
showLoader();
|
||||||
await http
|
await http
|
||||||
.get(config.API.reportAssign(type, probationStore.assignId))
|
.get(config.API.fileByPath(dataProbation.value[0].pathname))
|
||||||
.then(async (res) => {
|
.then(async (res) => {
|
||||||
const data = res.data.result;
|
const data = res.data.downloadUrl;
|
||||||
await genReport(
|
window.open(data);
|
||||||
data,
|
|
||||||
`แบบมอบหมายงานการทดลองปฏิบัติหน้าที่ราชการ-${fullname.value}`,
|
|
||||||
type
|
|
||||||
);
|
|
||||||
hideLoader();
|
hideLoader();
|
||||||
})
|
})
|
||||||
.catch(async (e) => {
|
.catch(async (e) => {
|
||||||
|
|
@ -1099,32 +1100,18 @@ onMounted(async () => {
|
||||||
<div class="toptitle text-dark col-12 row items-center">
|
<div class="toptitle text-dark col-12 row items-center">
|
||||||
<div class="col-12 row q-gutter-md">
|
<div class="col-12 row q-gutter-md">
|
||||||
<div>แบบมอบหมายงานการทดลองปฏิบัติหน้าที่ราชการ</div>
|
<div>แบบมอบหมายงานการทดลองปฏิบัติหน้าที่ราชการ</div>
|
||||||
<q-btn size="12px" flat dense icon="mdi-download" color="primary">
|
<q-btn
|
||||||
|
icon="download"
|
||||||
|
color="primary"
|
||||||
|
clickable
|
||||||
|
v-close-popup
|
||||||
|
outlined
|
||||||
|
flat
|
||||||
|
round
|
||||||
|
dense
|
||||||
|
@click="clickdownloadFile()"
|
||||||
|
>
|
||||||
<q-tooltip>ดาวน์โหลด</q-tooltip>
|
<q-tooltip>ดาวน์โหลด</q-tooltip>
|
||||||
<q-menu>
|
|
||||||
<q-list style="min-width: 150px">
|
|
||||||
<q-item
|
|
||||||
clickable
|
|
||||||
v-close-popup
|
|
||||||
@click="clickdownloadFile('pdf')"
|
|
||||||
>
|
|
||||||
<q-item-section avatar
|
|
||||||
><q-icon color="red" name="mdi-file-pdf" />
|
|
||||||
</q-item-section>
|
|
||||||
<q-item-section>ไฟล์ .pdf</q-item-section>
|
|
||||||
</q-item>
|
|
||||||
<q-item
|
|
||||||
clickable
|
|
||||||
v-close-popup
|
|
||||||
@click="clickdownloadFile('docx')"
|
|
||||||
>
|
|
||||||
<q-item-section avatar
|
|
||||||
><q-icon color="blue" name="mdi-file-word"
|
|
||||||
/></q-item-section>
|
|
||||||
<q-item-section>ไฟล์ .docx</q-item-section>
|
|
||||||
</q-item>
|
|
||||||
</q-list>
|
|
||||||
</q-menu>
|
|
||||||
</q-btn>
|
</q-btn>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,7 @@ import config from "@/app.config";
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
import { useProbationReport } from "@/modules/15_probationReport/store";
|
import { useProbationReport } from "@/modules/15_probationReport/store";
|
||||||
|
|
||||||
import type {
|
import type { FileType } from "@/modules/15_probationReport/interface/Main";
|
||||||
DataSurvey,
|
|
||||||
ProbationReportType,
|
|
||||||
FileType,
|
|
||||||
} from "@/modules/15_probationReport/interface/Main";
|
|
||||||
|
|
||||||
import SurveyPage from "@/modules/15_probationReport/components/01_SurveyPage.vue";
|
import SurveyPage from "@/modules/15_probationReport/components/01_SurveyPage.vue";
|
||||||
import ResultPage from "@/modules/15_probationReport/components/02_ResultPage.vue";
|
import ResultPage from "@/modules/15_probationReport/components/02_ResultPage.vue";
|
||||||
|
|
@ -29,36 +25,6 @@ const isData = ref<boolean>(true);
|
||||||
const dataProbation = ref<FileType[]>([]);
|
const dataProbation = ref<FileType[]>([]);
|
||||||
const dataResult1 = ref<FileType[]>([]);
|
const dataResult1 = ref<FileType[]>([]);
|
||||||
const dataResult2 = ref<FileType[]>([]);
|
const dataResult2 = ref<FileType[]>([]);
|
||||||
// const dataProbation = ref<string>("");
|
|
||||||
// const dataResult1 = ref<string>("");
|
|
||||||
// const dataResult2 = ref<string>("");
|
|
||||||
|
|
||||||
const formDataResult = ref<ProbationReportType>({
|
|
||||||
develop_orientation_score: 0,
|
|
||||||
develop_self_learning_score: 0,
|
|
||||||
develop_training_seminar_score: 0,
|
|
||||||
develop_other_training_score: 0,
|
|
||||||
develop_total_score: 0,
|
|
||||||
develop_orientation_percent: 0,
|
|
||||||
develop_self_learning_percent: 0,
|
|
||||||
develop_training_seminar_percent: 0,
|
|
||||||
develop_other_training_percent: 0,
|
|
||||||
develop_total_percent: 0,
|
|
||||||
develop_result: 0,
|
|
||||||
achievement_score: 0,
|
|
||||||
achievement_score_total: 0,
|
|
||||||
achievement_percent: 0,
|
|
||||||
achievement_result: 0,
|
|
||||||
behavior_score: 0,
|
|
||||||
behavior_score_total: 0,
|
|
||||||
behavior_percent: 0,
|
|
||||||
behavior_result: 0,
|
|
||||||
sum_score: 0,
|
|
||||||
sum_percent: 0,
|
|
||||||
reason: "",
|
|
||||||
pass_result: 0,
|
|
||||||
evaluate_date: new Date(),
|
|
||||||
});
|
|
||||||
|
|
||||||
const dev_options = reactive([
|
const dev_options = reactive([
|
||||||
{ value: 1, label: "พัฒนาครบ 3 ส่วน" },
|
{ value: 1, label: "พัฒนาครบ 3 ส่วน" },
|
||||||
|
|
@ -92,13 +58,13 @@ async function getSurveyData() {
|
||||||
getSalary(
|
getSalary(
|
||||||
res.data.result.assignId,
|
res.data.result.assignId,
|
||||||
"ทดลองงาน",
|
"ทดลองงาน",
|
||||||
"รายงานผลครั้งที่ 1",
|
"ประเมินผลคณะกรรมการครั้งที่ 1",
|
||||||
dataResult1
|
dataResult1
|
||||||
),
|
),
|
||||||
getSalary(
|
getSalary(
|
||||||
res.data.result.assignId,
|
res.data.result.assignId,
|
||||||
"ทดลองงาน",
|
"ทดลองงาน",
|
||||||
"รายงานผลครั้งที่ 2",
|
"ประเมินผลคณะกรรมการครั้งที่ 2",
|
||||||
dataResult2
|
dataResult2
|
||||||
),
|
),
|
||||||
]);
|
]);
|
||||||
|
|
@ -202,20 +168,24 @@ onMounted(async () => {
|
||||||
</q-tab-panel>
|
</q-tab-panel>
|
||||||
<q-tab-panel name="RESULT1" class="q-pa-sm">
|
<q-tab-panel name="RESULT1" class="q-pa-sm">
|
||||||
<ResultPage
|
<ResultPage
|
||||||
v-model:form-data="formDataResult"
|
:page="1"
|
||||||
v-model:dev_options="dev_options"
|
v-model:dev_options="dev_options"
|
||||||
v-model:result_option="result_option"
|
v-model:result_option="result_option"
|
||||||
|
v-model:dataResult1="dataResult1"
|
||||||
|
v-model:dataResult2="dataResult2"
|
||||||
/>
|
/>
|
||||||
</q-tab-panel>
|
</q-tab-panel>
|
||||||
<q-tab-panel name="RESULT2" class="q-pa-sm">
|
<q-tab-panel name="RESULT2" class="q-pa-sm">
|
||||||
<ResultPage
|
<ResultPage
|
||||||
v-model:form-data="formDataResult"
|
:page="2"
|
||||||
v-model:dev_options="dev_options"
|
v-model:dev_options="dev_options"
|
||||||
v-model:result_option="result_option"
|
v-model:result_option="result_option"
|
||||||
|
v-model:dataResult1="dataResult1"
|
||||||
|
v-model:dataResult2="dataResult2"
|
||||||
/>
|
/>
|
||||||
</q-tab-panel>
|
</q-tab-panel>
|
||||||
<q-tab-panel name="ASSIGN">
|
<q-tab-panel name="ASSIGN">
|
||||||
<AssignPage />
|
<AssignPage v-model:dataProbation="dataProbation" />
|
||||||
</q-tab-panel>
|
</q-tab-panel>
|
||||||
</q-tab-panels>
|
</q-tab-panels>
|
||||||
</q-card>
|
</q-card>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue