สิทธ์ ทดลองงาน
This commit is contained in:
parent
d363b1838a
commit
dcfd784c17
17 changed files with 749 additions and 637 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -35,6 +35,7 @@ const {
|
|||
dialogConfirm,
|
||||
} = mixin;
|
||||
const route = useRoute();
|
||||
const checkRoutePermisson = ref<boolean>(route.name == "probationFormDetail");
|
||||
const assignId = ref<string>(route.params.form.toString());
|
||||
const personalId = ref<string>(route.params.personalId.toString());
|
||||
const myForm = ref<any>(null);
|
||||
|
|
@ -430,6 +431,7 @@ onMounted(async () => {
|
|||
<div>แบบประเมินผล (คณะกรรมการ)</div>
|
||||
<div v-if="status == false">
|
||||
<q-btn
|
||||
v-if="!checkRoutePermisson"
|
||||
dense
|
||||
flat
|
||||
round
|
||||
|
|
@ -442,10 +444,19 @@ onMounted(async () => {
|
|||
</div>
|
||||
|
||||
<div v-else>
|
||||
<q-btn dense flat round color="red" @click="cancel()" icon="mdi-undo">
|
||||
<q-btn
|
||||
v-if="!checkRoutePermisson"
|
||||
dense
|
||||
flat
|
||||
round
|
||||
color="red"
|
||||
@click="cancel()"
|
||||
icon="mdi-undo"
|
||||
>
|
||||
<q-tooltip>ยกเลิก</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
v-if="!checkRoutePermisson"
|
||||
dense
|
||||
class="q-ml-sm"
|
||||
flat
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ const {
|
|||
dialogMessageNotify,
|
||||
} = mixin;
|
||||
const route = useRoute();
|
||||
const checkRoutePermisson = ref<boolean>(route.name == "probationFormDetail");
|
||||
const assignId = ref<string>(route.params.form.toString());
|
||||
const personalId = ref<string>(route.params.personalId.toString());
|
||||
const action = ref<string>("add");
|
||||
|
|
@ -332,7 +333,7 @@ onMounted(() => {
|
|||
:locale="'th'"
|
||||
autoApply
|
||||
borderless
|
||||
:readonly="!status"
|
||||
:readonly="!status || checkRoutePermisson"
|
||||
:enableTimePicker="false"
|
||||
week-start="0"
|
||||
>
|
||||
|
|
@ -346,7 +347,7 @@ onMounted(() => {
|
|||
<q-input
|
||||
outlined
|
||||
dense
|
||||
:disable="!status"
|
||||
:disable="!status || checkRoutePermisson"
|
||||
class="full-width datepicker"
|
||||
:model-value="
|
||||
date_start != null ? date2Thai(date_start) : null
|
||||
|
|
@ -373,7 +374,7 @@ onMounted(() => {
|
|||
v-model="date_finish"
|
||||
:locale="'th'"
|
||||
autoApply
|
||||
:readonly="!status"
|
||||
:readonly="!status || checkRoutePermisson"
|
||||
borderless
|
||||
:enableTimePicker="false"
|
||||
week-start="0"
|
||||
|
|
@ -388,7 +389,7 @@ onMounted(() => {
|
|||
<q-input
|
||||
outlined
|
||||
dense
|
||||
:disable="!status"
|
||||
:disable="!status || checkRoutePermisson"
|
||||
class="full-width datepicker"
|
||||
:model-value="
|
||||
date_finish != null ? date2Thai(date_finish) : null
|
||||
|
|
@ -425,7 +426,7 @@ onMounted(() => {
|
|||
class="col-xs-12 col-sm-6"
|
||||
dense
|
||||
borderless
|
||||
:disable="!status"
|
||||
:disable="!status || checkRoutePermisson"
|
||||
emit-value
|
||||
map-options
|
||||
option-label="label"
|
||||
|
|
@ -454,7 +455,7 @@ onMounted(() => {
|
|||
]"
|
||||
hide-bottom-space
|
||||
:options="optionsResult"
|
||||
:disable="!status"
|
||||
:disable="!status || checkRoutePermisson"
|
||||
dense
|
||||
borderless
|
||||
emit-value
|
||||
|
|
@ -497,7 +498,7 @@ onMounted(() => {
|
|||
dense
|
||||
borderless
|
||||
outlined
|
||||
:disable="!status"
|
||||
:disable="!status || checkRoutePermisson"
|
||||
class="bg-white"
|
||||
type="textarea"
|
||||
v-model="reson"
|
||||
|
|
@ -550,7 +551,7 @@ onMounted(() => {
|
|||
menu-class-name="modalfix"
|
||||
v-model="chairman_dated"
|
||||
:locale="'th'"
|
||||
:readonly="!status"
|
||||
:readonly="!status || checkRoutePermisson"
|
||||
autoApply
|
||||
borderless
|
||||
:enableTimePicker="false"
|
||||
|
|
@ -566,7 +567,7 @@ onMounted(() => {
|
|||
<q-input
|
||||
outlined
|
||||
dense
|
||||
:disable="!status"
|
||||
:disable="!status || checkRoutePermisson"
|
||||
class="full-width datepicker col-3"
|
||||
:model-value="
|
||||
chairman_dated != null ? date2Thai(chairman_dated) : null
|
||||
|
|
@ -612,7 +613,7 @@ onMounted(() => {
|
|||
:locale="'th'"
|
||||
autoApply
|
||||
borderless
|
||||
:readonly="!status"
|
||||
:readonly="!status || checkRoutePermisson"
|
||||
:enableTimePicker="false"
|
||||
week-start="0"
|
||||
>
|
||||
|
|
@ -626,7 +627,7 @@ onMounted(() => {
|
|||
<q-input
|
||||
outlined
|
||||
dense
|
||||
:disable="!status"
|
||||
:disable="!status || checkRoutePermisson"
|
||||
class="full-width datepicker col-3"
|
||||
:model-value="
|
||||
director1_dated != null
|
||||
|
|
@ -675,7 +676,7 @@ onMounted(() => {
|
|||
v-model="director2_dated"
|
||||
:locale="'th'"
|
||||
autoApply
|
||||
:readonly="!status"
|
||||
:readonly="!status || checkRoutePermisson"
|
||||
borderless
|
||||
:enableTimePicker="false"
|
||||
week-start="0"
|
||||
|
|
@ -690,7 +691,7 @@ onMounted(() => {
|
|||
<q-input
|
||||
outlined
|
||||
dense
|
||||
:disable="!status"
|
||||
:disable="!status || checkRoutePermisson"
|
||||
class="full-width datepicker col-3"
|
||||
:model-value="
|
||||
director2_dated != null
|
||||
|
|
@ -717,7 +718,7 @@ onMounted(() => {
|
|||
</div>
|
||||
</q-form>
|
||||
|
||||
<q-toolbar class="text-primary" v-if="action == 'add'">
|
||||
<q-toolbar class="text-primary" v-if="action == 'add' && !checkRoutePermisson">
|
||||
<q-space />
|
||||
<q-btn label="บันทึก" color="secondary" @click="savaForm" />
|
||||
</q-toolbar>
|
||||
|
|
|
|||
|
|
@ -12,9 +12,11 @@ import criterion from "@/modules/05_placement/components/Other/Criterion.vue";
|
|||
import type { ListDataText } from "@/modules/05_placement/interface/index/Main";
|
||||
|
||||
const router = useRouter();
|
||||
|
||||
const routeName = router.currentRoute.value.name;
|
||||
const $q = useQuasar();
|
||||
const route = useRoute();
|
||||
const checkRoutePermisson = ref<boolean>(route.name == "probationFormDetail");
|
||||
const probationStore = useProbationDataStore();
|
||||
const { fecthAssignoutput, assign } = probationStore;
|
||||
|
||||
|
|
@ -362,6 +364,7 @@ onMounted(async () => {
|
|||
<div>แบบบันทึกผล (ผู้ดูเเล)</div>
|
||||
<div v-if="status == false">
|
||||
<q-btn
|
||||
v-if="!checkRoutePermisson"
|
||||
dense
|
||||
flat
|
||||
round
|
||||
|
|
@ -373,11 +376,12 @@ onMounted(async () => {
|
|||
</q-btn>
|
||||
</div>
|
||||
<div v-else>
|
||||
<q-btn dense flat round color="red" @click="cancel()" icon="mdi-undo">
|
||||
<q-btn dense flat round color="red" @click="cancel()" icon="mdi-undo" v-if="!checkRoutePermisson">
|
||||
<q-tooltip>ยกเลิก</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
dense
|
||||
v-if="!checkRoutePermisson"
|
||||
flat
|
||||
round
|
||||
class="q-ml-md"
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ const router = useRouter();
|
|||
const routeName = router.currentRoute.value.name;
|
||||
const $q = useQuasar();
|
||||
const route = useRoute();
|
||||
const checkRoutePermisson = ref<boolean>(route.name == "probationFormDetail");
|
||||
const probationStore = useProbationDataStore();
|
||||
const { fecthAssignoutput, assign } = probationStore;
|
||||
|
||||
|
|
@ -373,6 +374,7 @@ onMounted(async () => {
|
|||
<div>แบบบันทึกผล (ผู้บังคับบัญชา)</div>
|
||||
<div v-if="status == false">
|
||||
<q-btn
|
||||
v-if="!checkRoutePermisson"
|
||||
dense
|
||||
flat
|
||||
round
|
||||
|
|
@ -384,10 +386,19 @@ onMounted(async () => {
|
|||
</q-btn>
|
||||
</div>
|
||||
<div v-else>
|
||||
<q-btn dense flat round color="red" @click="cancel()" icon="mdi-undo">
|
||||
<q-btn
|
||||
v-if="!checkRoutePermisson"
|
||||
dense
|
||||
flat
|
||||
round
|
||||
color="red"
|
||||
@click="cancel()"
|
||||
icon="mdi-undo"
|
||||
>
|
||||
<q-tooltip>ยกเลิก</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
v-if="!checkRoutePermisson"
|
||||
dense
|
||||
flat
|
||||
round
|
||||
|
|
@ -854,24 +865,24 @@ onMounted(async () => {
|
|||
<q-item-label>{{ list.label }}</q-item-label>
|
||||
</q-item-section>
|
||||
<q-item-section side>
|
||||
<q-btn-group outline>
|
||||
<q-btn
|
||||
v-for="(item, index) in 5"
|
||||
:disable="!status"
|
||||
:class="conduct_level[i] == item && 'active'"
|
||||
outline
|
||||
color="grey-6"
|
||||
:label="item"
|
||||
@click="conduct_level[i] = item"
|
||||
>
|
||||
<q-tooltip>
|
||||
<div class="text-body2">
|
||||
<span>{{ optionText[index].label }}</span>
|
||||
</div>
|
||||
</q-tooltip>
|
||||
</q-btn>
|
||||
</q-btn-group>
|
||||
</q-item-section>
|
||||
<q-btn-group outline>
|
||||
<q-btn
|
||||
v-for="(item, index) in 5"
|
||||
:disable="!status"
|
||||
:class="conduct_level[i] == item && 'active'"
|
||||
outline
|
||||
color="grey-6"
|
||||
:label="item"
|
||||
@click="conduct_level[i] = item"
|
||||
>
|
||||
<q-tooltip>
|
||||
<div class="text-body2">
|
||||
<span>{{ optionText[index].label }}</span>
|
||||
</div>
|
||||
</q-tooltip>
|
||||
</q-btn>
|
||||
</q-btn-group>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-separator class="q-my-xs" v-if="i + 1 < list2_1.length" />
|
||||
</q-list>
|
||||
|
|
@ -894,24 +905,24 @@ onMounted(async () => {
|
|||
<q-item-label>{{ list.label }}</q-item-label>
|
||||
</q-item-section>
|
||||
<q-item-section side>
|
||||
<q-btn-group outline>
|
||||
<q-btn
|
||||
v-for="(item, index) in 5"
|
||||
:disable="!status"
|
||||
:class="moral_level[i] == item && 'active'"
|
||||
outline
|
||||
color="grey-6"
|
||||
:label="item"
|
||||
@click="moral_level[i] = item"
|
||||
>
|
||||
<q-tooltip>
|
||||
<div class="text-body2">
|
||||
<span>{{ optionText[index].label }}</span>
|
||||
</div>
|
||||
</q-tooltip>
|
||||
</q-btn>
|
||||
</q-btn-group>
|
||||
</q-item-section>
|
||||
<q-btn-group outline>
|
||||
<q-btn
|
||||
v-for="(item, index) in 5"
|
||||
:disable="!status"
|
||||
:class="moral_level[i] == item && 'active'"
|
||||
outline
|
||||
color="grey-6"
|
||||
:label="item"
|
||||
@click="moral_level[i] = item"
|
||||
>
|
||||
<q-tooltip>
|
||||
<div class="text-body2">
|
||||
<span>{{ optionText[index].label }}</span>
|
||||
</div>
|
||||
</q-tooltip>
|
||||
</q-btn>
|
||||
</q-btn-group>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-separator class="q-my-xs" v-if="i + 1 < list2_2.length" />
|
||||
</q-list>
|
||||
|
|
@ -934,24 +945,24 @@ onMounted(async () => {
|
|||
<q-item-label>{{ list.label }}</q-item-label>
|
||||
</q-item-section>
|
||||
<q-item-section side>
|
||||
<q-btn-group outline>
|
||||
<q-btn
|
||||
v-for="(item, index) in 5"
|
||||
:disable="!status"
|
||||
:class="discipline_level[i] == item && 'active'"
|
||||
outline
|
||||
color="grey-6"
|
||||
:label="item"
|
||||
@click="discipline_level[i] = item"
|
||||
>
|
||||
<q-tooltip>
|
||||
<div class="text-body2">
|
||||
<span>{{ optionText[index].label }}</span>
|
||||
</div>
|
||||
</q-tooltip>
|
||||
</q-btn>
|
||||
</q-btn-group>
|
||||
</q-item-section>
|
||||
<q-btn-group outline>
|
||||
<q-btn
|
||||
v-for="(item, index) in 5"
|
||||
:disable="!status"
|
||||
:class="discipline_level[i] == item && 'active'"
|
||||
outline
|
||||
color="grey-6"
|
||||
:label="item"
|
||||
@click="discipline_level[i] = item"
|
||||
>
|
||||
<q-tooltip>
|
||||
<div class="text-body2">
|
||||
<span>{{ optionText[index].label }}</span>
|
||||
</div>
|
||||
</q-tooltip>
|
||||
</q-btn>
|
||||
</q-btn-group>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-separator class="q-my-xs" v-if="i + 1 < list2_3.length" />
|
||||
</q-list>
|
||||
|
|
@ -997,24 +1008,24 @@ onMounted(async () => {
|
|||
</q-item-label>
|
||||
</q-item-section>
|
||||
<q-item-section side>
|
||||
<q-btn-group outline>
|
||||
<q-btn
|
||||
v-for="(item, index) in 5"
|
||||
:disable="!status"
|
||||
:class="behavio_orther.level == item && 'active'"
|
||||
outline
|
||||
color="grey-6"
|
||||
:label="item"
|
||||
@click="behavio_orther.level = item"
|
||||
>
|
||||
<q-tooltip>
|
||||
<div class="text-body2">
|
||||
<span>{{ optionText[index].label }}</span>
|
||||
</div>
|
||||
</q-tooltip>
|
||||
</q-btn>
|
||||
</q-btn-group>
|
||||
</q-item-section>
|
||||
<q-btn-group outline>
|
||||
<q-btn
|
||||
v-for="(item, index) in 5"
|
||||
:disable="!status"
|
||||
:class="behavio_orther.level == item && 'active'"
|
||||
outline
|
||||
color="grey-6"
|
||||
:label="item"
|
||||
@click="behavio_orther.level = item"
|
||||
>
|
||||
<q-tooltip>
|
||||
<div class="text-body2">
|
||||
<span>{{ optionText[index].label }}</span>
|
||||
</div>
|
||||
</q-tooltip>
|
||||
</q-btn>
|
||||
</q-btn-group>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-card>
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
<script setup lang="ts">
|
||||
import { ref, watch } from "vue";
|
||||
import { useRoute } from "vue-router";
|
||||
|
||||
const tabHead = ref<string>("save1");
|
||||
|
||||
const route = useRoute();
|
||||
const checkRoutePermisson = ref<boolean>(route.name == "probationFormDetail");
|
||||
/** รับค่ามาจากหน้าหลัก */
|
||||
const props = defineProps({
|
||||
FileDownload: {
|
||||
|
|
@ -29,22 +31,22 @@ const props = defineProps({
|
|||
});
|
||||
|
||||
/** เรียกใช้ฟังชั่นจากหน้าหลัก */
|
||||
function downloadFile(type: string){
|
||||
function downloadFile(type: string) {
|
||||
props.FileDownload(type);
|
||||
};
|
||||
}
|
||||
|
||||
watch(tabHead, () => {
|
||||
props.changeTab(tabHead.value);
|
||||
});
|
||||
|
||||
/** ไปยัง step ต่อไป */
|
||||
function nextPage(){
|
||||
function nextPage() {
|
||||
if (props.loop !== undefined) {
|
||||
if (props.loop < 3) {
|
||||
props.addData();
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
|
@ -99,7 +101,7 @@ function nextPage(){
|
|||
</q-tab>
|
||||
</q-tabs>
|
||||
<div>
|
||||
<q-btn color="blue" flat dense icon="mdi-plus" @click="nextPage">
|
||||
<q-btn v-if="!checkRoutePermisson" color="blue" flat dense icon="mdi-plus" @click="nextPage">
|
||||
<q-tooltip> เพิ่ม </q-tooltip>
|
||||
</q-btn>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ const FormSaveResult = defineAsyncComponent(
|
|||
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const checkRoutePermisson = ref<boolean>(route.name == "probationFormDetail");
|
||||
const $q = useQuasar();
|
||||
const probationStore = useProbationDataStore();
|
||||
const { fecthdataAssign } = probationStore;
|
||||
|
|
@ -169,6 +170,7 @@ onMounted(async () => {
|
|||
<div class="q-gutter-md" v-else-if="probationStore.tabs.length == 0">
|
||||
<div class="flex justify-center items-center q-my-md q-gutter-md">
|
||||
<q-btn
|
||||
v-if="!checkRoutePermisson"
|
||||
outline
|
||||
color="primary"
|
||||
label="สร้างแบบบันทึกผล"
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ const FormSaveResultCommader = defineAsyncComponent(
|
|||
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const checkRoutePermisson = ref<boolean>(route.name == "probationFormDetail");
|
||||
const $q = useQuasar();
|
||||
const probationStore = useProbationDataStore();
|
||||
const { fecthdataAssign } = probationStore;
|
||||
|
|
@ -171,6 +172,7 @@ function addData() {
|
|||
<div class="q-gutter-md" v-else-if="probationStore.tabs.length == 0">
|
||||
<div class="flex justify-center items-center q-my-md q-gutter-md">
|
||||
<q-btn
|
||||
v-if="!checkRoutePermisson"
|
||||
outline
|
||||
color="primary"
|
||||
label="สร้างแบบบันทึกผล"
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ const FormEvaluate = defineAsyncComponent(
|
|||
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const checkRoutePermisson = ref<boolean>(route.name == "probationFormDetail");
|
||||
const mixin = useCounterMixin();
|
||||
const $q = useQuasar();
|
||||
const { showLoader, hideLoader, messageError } = mixin;
|
||||
|
|
@ -156,7 +157,7 @@ function addData() {
|
|||
|
||||
<div v-else class="q-gutter-md">
|
||||
<div class="flex justify-center items-center q-my-md q-gutter-md">
|
||||
<q-btn outline color="primary" label="สร้างแบบประเมิน" @click="addData" />
|
||||
<q-btn v-if="!checkRoutePermisson" outline color="primary" label="สร้างแบบประเมิน" @click="addData" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ const FormEvaluateScore = defineAsyncComponent(
|
|||
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const checkRoutePermisson = ref<boolean>(route.name == "probationFormDetail");
|
||||
const mixin = useCounterMixin();
|
||||
const $q = useQuasar();
|
||||
const { showLoader, hideLoader, messageError, success } = mixin;
|
||||
|
|
@ -140,7 +141,7 @@ const changeTab = (tabVal: string) => {
|
|||
|
||||
<div class="q-gutter-md" v-if="tabs.length === 0">
|
||||
<div class="flex justify-center items-center q-my-md q-gutter-md">
|
||||
<q-btn outline color="primary" label="สร้างแบบประเมิน" @click="addData" />
|
||||
<q-btn v-if="!checkRoutePermisson" outline color="primary" label="สร้างแบบประเมิน" @click="addData" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue