hrms-mgt/src/modules/15_development/components/FollowResult.vue

261 lines
7.5 KiB
Vue
Raw Normal View History

2024-03-29 18:05:19 +07:00
<script setup lang="ts">
import { onMounted, reactive, ref } from "vue";
import { useQuasar } from "quasar";
import type { FormFollowResult } from "@/modules/15_development/interface/request/Main";
import type {
DataOption,
DataOptionCheckBox,
} from "@/modules/15_development/interface/index/Main";
2024-03-29 18:05:19 +07:00
import { useCounterMixin } from "@/stores/mixin";
const $q = useQuasar();
const { showLoader, hideLoader, dialogConfirm } = useCounterMixin();
const formData = reactive<FormFollowResult>({
metricType: "",
indicators: "",
target: "",
calculation: "",
measuRement: "",
results: "",
obstacles: "",
suggestions: "",
project: '',
2024-03-29 18:05:19 +07:00
});
const group = ref<any[]>([]);
2024-03-29 18:05:19 +07:00
const metricTypeOp = ref<DataOption[]>([
{
id: "id1",
name: "name1",
},
{
id: "id2",
name: "name2",
},
{
id: "id3",
name: "name3",
},
]);
const projectOp = ref<DataOption[]>([
{
id: "true",
name: "โครงการที่ เสนอขอ TN",
},
{
id: "false",
name: "โครงการที่ ไม่ เสนอขอ TN",
},
]);
const optionsTNFirst = ref<DataOptionCheckBox[]>([
{
label: "ผ่านการพิจารณา ได้รับการจัดงบประมาณตามข้อบัญญัติ",
value: "id1",
},
{
label:
"ผ่านการพิจารณา ไม่ได้รับการจัดสรรงบประมาณตามข้อบัญญัติ แต่ได้รับการจัดสรรเงินนอกงบประมาณ",
value: "id2",
},
{
label: "ไม่ผ่านการพิจารณา แต่ได้รับการจัดสรรเงินนอกงบประมาณ",
value: "id3",
},
]);
const optionsTNSecon = ref<DataOptionCheckBox[]>([
{
label: "แต่ได้รับการจัดสรรงบประมาณตามข้อบัญญัติ",
value: "id1",
},
{
label: "แต่ได้รับการจัดสรรเงินนอกงบประมาณ",
value: "id2",
},
]);
2024-03-29 18:05:19 +07:00
const options = ref<any>([
"สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานครกองบริหารทั้วไป",
"สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร",
]);
function onSubmit() {
dialogConfirm($q, () => {});
}
onMounted(() => {
console.log("ข้อมูลเบื้องต้น");
});
</script>
<template>
<q-form greedy @submit.prevent @validation-success="onSubmit">
<div class="row q-pa-md q-col-gutter-sm">
<div class="col-12">
<span class="text-weight-medium text-body1">วชดความสำเร</span>
</div>
2024-03-29 18:05:19 +07:00
<div class="col-12 col-sm-6 col-md-4">
<q-select
dense
outlined
label="ประเภทตัวชี้วัด"
v-model="formData.metricType"
:options="metricTypeOp"
option-label="name"
option-value="id"
hide-bottom-space
2024-03-29 18:05:19 +07:00
:rules="[
(val:string) =>
!!val || `${'กรุณากรอกประเภทตัวชี้วัด'}`,
]"
/>
</div>
<div class="col-12 col-sm-6 col-md-4">
<q-input
dense
outlined
label="ตัวชี้วัด"
v-model="formData.indicators"
hide-bottom-space
2024-03-29 18:05:19 +07:00
:rules="[
(val:string) =>
!!val || `${'กรุณากรอกตัวชี้วัด'}`,
]"
/>
</div>
<div class="col-12 col-sm-6 col-md-4">
<q-input
dense
outlined
label="เป้าหมาย"
v-model="formData.target"
hide-bottom-space
2024-03-29 18:05:19 +07:00
:rules="[
(val:string) =>
!!val || `${'กรุณากรอกเป้าหมาย'}`,
]"
/>
</div>
<div class="col-12">
<q-input
outlined
dense
v-model="formData.calculation"
hide-bottom-space
2024-03-29 18:05:19 +07:00
label="วิธีการคำนวณ/เครื่องมือ"
type="textarea"
:rules="[
(val:string) =>
!!val || `${'กรุณากรอกวิธีการคำนวณ/เครื่องมือ'}`,
]"
/>
</div>
<div class="col-12">
<q-input
outlined
dense
v-model="formData.measuRement"
hide-bottom-space
label="ระยะเวลาวัดผล"
:rules="[
(val:string) =>
!!val || `${'กรุณากรอกระยะเวลาวัดผล'}`,
]"
/>
</div>
<div class="col-12">
<q-input
outlined
dense
v-model="formData.results"
hide-bottom-space
label="ผลการดำเนิน"
type="textarea"
:rules="[
(val:string) =>
!!val || `${'กรุณากรอกผลการดำเนิน'}`,
]"
/>
</div>
<div class="col-12">
<q-input
outlined
dense
v-model="formData.obstacles"
hide-bottom-space
label="ปัญหาอุปสรรค"
type="textarea"
:rules="[
(val:string) =>
!!val || `${'กรุณากรอกปัญหาอุปสรรค'}`,
]"
/>
</div>
<div class="col-12">
<q-input
outlined
dense
v-model="formData.suggestions"
hide-bottom-space
label="ข้อเสนอเเนะ"
type="textarea"
:rules="[
(val:string) =>
!!val || `${'กรุณากรอกข้อเสนอเเนะ'}`,
]"
/>
</div>
<div class="col-12">
<span class="text-weight-medium text-body1"
>ประเภทของผลการพจารณาความเหมาะสมโครงการ</span
>
</div>
<div class="col-12 col-sm-6 col-md-4">
<q-select
dense
outlined
label="ประเภทโครงการ"
v-model="formData.project"
:options="projectOp"
option-label="name"
option-value="id"
hide-bottom-space
map-options
emit-value
:rules="[
(val:string) =>
2024-04-01 13:44:07 +07:00
!!val || `${'กรุณาเลือกประเภทโครงการ'}`,
]"
/>
</div>
<div v-if="formData.project !== ''" class="col-12">
<q-option-group
:options="
formData.project !== 'false' ? optionsTNFirst : optionsTNSecon
"
type="checkbox"
v-model="group"
/>
</div>
2024-03-29 18:05:19 +07:00
</div>
<q-separator />
<div class="text-right q-pa-sm">
<q-btn
dense
unelevated
label="บันทึก"
id="onSubmit"
type="submit"
color="public"
class="q-px-md"
>
<q-tooltip>นทกขอม</q-tooltip>
</q-btn>
</div>
</q-form>
</template>
<style scoped></style>