แก้ไขประเมิน

This commit is contained in:
Warunee Tamkoo 2023-12-23 10:20:41 +07:00
parent a07cc6d2a2
commit b984caaa3c
10 changed files with 121 additions and 29 deletions

View file

@ -35,6 +35,14 @@ const mixin = useCounterMixin();
const { dialogConfirm } = mixin;
const $q = useQuasar();
const props = defineProps({
data: {
type: Object,
default: {},
},
});
const modalHistory = ref<boolean>(false);
const externalLink =
"https://accreditation.ocsc.go.th/accreditation/search/curriculum";
@ -186,7 +194,7 @@ onMounted(() => {
<div class="row q-col-gutter-md">
<div class="col-xs-12 col-sm-3">
<div class="toptitle">
ประเมนชำนาญการ
{{ props.data && props.data?.type == 'SPECIAL_EXPERT' ? 'ประเมินชำนาญการพิเศษ' : 'ประเมินชำนาญการ' }}
<q-btn
flat
@ -223,7 +231,7 @@ onMounted(() => {
>
<q-card flat bordered class="col-12">
<q-card-section>
<Step1 v-if="store.step === 1" />
<Step1 v-if="store.step === 1" :data="props.data"/>
<Step2 v-if="store.step === 2" @update:form="updateformCommand" />
<Step3 v-if="store.step === 3" :step="store.step" />
<Step4 v-if="store.step === 4" />
@ -241,7 +249,7 @@ onMounted(() => {
>
<q-card flat bordered class="col-12">
<q-card-section>
<ViewStep1 v-if="store.step === 1" />
<ViewStep1 v-if="store.step === 1" :data="data"/>
<ViewStep3 v-if="store.step === 3" />
<ViewStep7 v-if="store.step === 7" /> </q-card-section
></q-card>

View file

@ -22,9 +22,12 @@ const director = ref<any[]>();
const meeting = ref<any[]>();
const $q = useQuasar();
// onMounted(() => {
// store.step = 1;
// });
const props = defineProps({
data: {
type: Object,
default: {},
},
});
function getList() {
showLoader();
@ -42,6 +45,7 @@ function getList() {
hideLoader();
});
}
onMounted(() => {
getList();
});
@ -52,8 +56,8 @@ onMounted(() => {
<div class="toptitle">กรรมการและการประช</div>
<div class="row col-12 q-gutter-md">
<CardDirector :data="director"/>
<CardMeet :data="meeting"/>
<CardDirector :data="director" :fetchdata="getList" />
<CardMeet :data="meeting" :fetchdata="getList" />
</div>
</div>
</template>

View file

@ -1,5 +1,12 @@
<script setup lang="ts">
import { reactive } from "vue";
import { onMounted, reactive, watch } from "vue";
const props = defineProps({
data: {
type: Object,
default: {},
},
});
const formData = reactive<any>({
isEducationalQft: false, //
@ -10,6 +17,18 @@ const formData = reactive<any>({
isHaveProLicense: false, //
isHaveMinPeriodOrHoldPos: false, // ]
});
watch(props, () => {
if (props.data) {
formData.isEducationalQft = props.data.isEducationalQft;
formData.isGovermantServiceHtr = props.data.isGovermantServiceHtr;
formData.isOperatingExp = props.data.isOperatingExp;
formData.isMinPeriodOfTenure = props.data.isMinPeriodOfTenure;
formData.isHaveSpecificQft = props.data.isHaveSpecificQft;
formData.isHaveProLicense = props.data.isHaveProLicense;
formData.isHaveMinPeriodOrHoldPos = props.data.isHaveMinPeriodOrHoldPos;
}
});
</script>
<template>
@ -17,6 +36,7 @@ const formData = reactive<any>({
<q-item v-ripple>
<q-item-section avatar>
<q-checkbox
disable
keep-color
color="primary"
v-model="formData.isEducationalQft"
@ -29,6 +49,7 @@ const formData = reactive<any>({
<q-item v-ripple>
<q-item-section avatar>
<q-checkbox
disable
keep-color
color="primary"
v-model="formData.isGovermantServiceHtr"
@ -41,6 +62,7 @@ const formData = reactive<any>({
<q-item v-ripple>
<q-item-section avatar>
<q-checkbox
disabled
keep-color
color="primary"
v-model="formData.isOperatingExp"
@ -53,6 +75,7 @@ const formData = reactive<any>({
<q-item v-ripple>
<q-item-section avatar>
<q-checkbox
disable
keep-color
color="primary"
v-model="formData.isMinPeriodOfTenure"
@ -67,6 +90,7 @@ const formData = reactive<any>({
<q-item v-ripple>
<q-item-section avatar>
<q-checkbox
disable
keep-color
color="primary"
v-model="formData.isHaveSpecificQft"
@ -82,6 +106,7 @@ const formData = reactive<any>({
<q-item v-ripple>
<q-item-section avatar>
<q-checkbox
disable
keep-color
color="primary"
v-model="formData.isHaveProLicense"
@ -98,6 +123,7 @@ const formData = reactive<any>({
<q-item v-ripple>
<q-item-section avatar>
<q-checkbox
disable
keep-color
color="primary"
v-model="formData.isHaveMinPeriodOrHoldPos"

View file

@ -27,6 +27,10 @@ const props = defineProps({
type: Array,
default: [],
},
fetchdata: {
type: Function,
default: () => "",
}
});
const { showLoader, hideLoader, messageError, dialogConfirm } = mixin;
@ -144,8 +148,6 @@ async function updatePaging(rpp: number, p: number) {
*/
function returnDirector(data: any) {
const dataList = data.map((item: any) => item.id);
console.log(dataList);
dialogConfirm($q, () => {
showLoader();
http
@ -160,6 +162,7 @@ function returnDirector(data: any) {
})
.finally(() => {
hideLoader();
props.fetchdata()
onClickClose();
});
});

View file

@ -17,6 +17,10 @@ const props = defineProps({
type: Array,
default: [],
},
fetchdata: {
type: Function,
default: () => "",
}
});
const { showLoader, hideLoader, messageError, dialogConfirm, date2Thai } =
mixin;
@ -118,6 +122,7 @@ function returnData(data: any) {
})
.finally(() => {
hideLoader();
props.fetchdata()
onClickClose();
});
});

View file

@ -169,7 +169,7 @@ watch(
<template>
<q-dialog v-model="props.Modal" persistent>
<q-card style="width: 1200px; max-width: 80vw">
<DialogHeader title="เลือกรายชื่อกรรมการ" :close="clickClose" />
<DialogHeader tittle="เลือกรายชื่อกรรมการ" :close="clickClose" />
<q-separator />
<q-card-section>
<q-input

View file

@ -171,7 +171,7 @@ watch(
<template>
<q-dialog v-model="props.Modal" persistent>
<q-card style="width: 1200px; max-width: 80vw">
<DialogHeader title="เลือกรายชื่อกรรมการ" :close="clickClose" />
<DialogHeader tittle="เลือกการประชุม" :close="clickClose" />
<q-separator />
<q-card-section>
<q-input

View file

@ -3,6 +3,13 @@ import TableData from "@/modules/12_evaluatePersonal/components/Detail/viewstep/
import { useEvaluateDetailStore } from "@/modules/12_evaluatePersonal/store/EvaluateDetail";
const props = defineProps({
data: {
type: Object,
default: {},
},
});
const store = useEvaluateDetailStore();
const {
columnsLicense,
@ -27,7 +34,7 @@ const {
<q-input
borderless
readonly
model-value="นาย"
:model-value="data.prefix"
label="คำนำหน้าชื่อ"
/>
</div>
@ -36,7 +43,7 @@ const {
<q-input
borderless
readonly
model-value="ธนพนธ์ แสงจันทร์"
:model-value="data.fullName"
label="ชื่อ - นามสกุล"
/>
</div>

View file

@ -1,7 +1,9 @@
<script setup lang="ts">
import { ref, onMounted } from "vue";
import { useQuasar } from "quasar";
import { useRouter } from "vue-router";
import { useRoute, useRouter } from "vue-router";
import { useCounterMixin } from "@/stores/mixin";
import http from "@/plugins/http";
import config from "@/app.config";
@ -10,9 +12,35 @@ import Tab2 from "@/modules/12_evaluatePersonal/components/Detail/Tab2.vue"; //
import { useEvaluateDetailStore } from "@/modules/12_evaluatePersonal/store/EvaluateDetail";
const mixin = useCounterMixin();
const { showLoader, hideLoader, messageError } = mixin;
const store = useEvaluateDetailStore();
const router = useRouter();
const $q = useQuasar();
const route = useRoute();
const id = ref<string>(route.params.id as string);
const data = ref<any>({});
function getData() {
showLoader();
http
.get(config.API.evaluateGetDetail(id.value))
.then((res: any) => {
data.value = res.data.result;
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
hideLoader();
});
}
onMounted(() => {
getData();
});
</script>
<template>
@ -28,7 +56,9 @@ const $q = useQuasar();
class="q-mr-sm"
@click="router.go(-1)"
/>
<div>รายละเอยดการประเมนของ นาวสาววาร แตมค</div>
<div>
รายละเอยดการประเมนบคคลของ {{ `${data.prefix}${data.fullName}` }}
</div>
</div>
</div>
<q-card flat bordered class="col-12 q-mt-sm q-pt-sm q-pa-md">
@ -51,9 +81,9 @@ const $q = useQuasar();
</q-tabs>
<q-separator />
<q-tab-panels v-model="store.tabMenu" animated>
<q-tab-panel name="1"> <Tab1 /></q-tab-panel>
<q-tab-panel name="1"> <Tab1 :data="data" /></q-tab-panel>
<q-tab-panel name="2"> <Tab2 /></q-tab-panel>
<q-tab-panel name="2"> <Tab2 :data="data" /></q-tab-panel>
</q-tab-panels>
</q-card>
</q-card>