เพิ้ม แก้ไข รายการโครงการ

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2024-04-04 11:18:30 +07:00
parent 7cdcebf5e0
commit dd5a52f20e
7 changed files with 566 additions and 516 deletions

View file

@ -1,5 +1,5 @@
<script setup lang="ts">
import { onMounted, reactive, ref } from "vue";
import { onMounted, reactive, ref, watchEffect } from "vue";
import { useQuasar } from "quasar";
import type { FormFollowResult } from "@/modules/15_development/interface/request/Main";
@ -8,9 +8,11 @@ import type {
DataOptionCheckBox,
} from "@/modules/15_development/interface/index/Main";
import { useDevelopmentDataStore } from "@/modules/15_development/store/developmentStore";
import { useCounterMixin } from "@/stores/mixin";
const $q = useQuasar();
const store = useDevelopmentDataStore();
const { showLoader, hideLoader, dialogConfirm } = useCounterMixin();
const formData = reactive<FormFollowResult>({
@ -22,7 +24,7 @@ const formData = reactive<FormFollowResult>({
results: "",
obstacles: "",
suggestions: "",
project: '',
project: "",
});
const group = ref<any[]>([]);
@ -42,11 +44,11 @@ const metricTypeOp = ref<DataOption[]>([
]);
const projectOp = ref<DataOption[]>([
{
id: "true",
id: "OFFER",
name: "โครงการที่ เสนอขอ TN",
},
{
id: "false",
id: "NOOFFER",
name: "โครงการที่ ไม่ เสนอขอ TN",
},
]);
@ -54,193 +56,188 @@ const projectOp = ref<DataOption[]>([
const optionsTNFirst = ref<DataOptionCheckBox[]>([
{
label: "ผ่านการพิจารณา ได้รับการจัดงบประมาณตามข้อบัญญัติ",
value: "id1",
value: store.formAddProject.isPassAllocate,
},
{
label:
"ผ่านการพิจารณา ไม่ได้รับการจัดสรรงบประมาณตามข้อบัญญัติ แต่ได้รับการจัดสรรเงินนอกงบประมาณ",
value: "id2",
value: store.formAddProject.isPassNoAllocate,
},
{
label: "ไม่ผ่านการพิจารณา แต่ได้รับการจัดสรรเงินนอกงบประมาณ",
value: "id3",
value: store.formAddProject.isNoPass,
},
]);
const optionsTNSecon = ref<DataOptionCheckBox[]>([
{
label: "แต่ได้รับการจัดสรรงบประมาณตามข้อบัญญัติ",
value: "id1",
value: store.formAddProject.isBudget,
},
{
label: "แต่ได้รับการจัดสรรเงินนอกงบประมาณ",
value: "id2",
value: store.formAddProject.isOutBudget,
},
]);
const options = ref<any>([
"สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานครกองบริหารทั้วไป",
"สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร",
]);
function onSubmit() {
dialogConfirm($q, () => {});
}
watchEffect(() => {});
onMounted(() => {
console.log("ข้อมูลเบื้องต้น");
optionsTNFirst.value.forEach((checkbox, index) => {
if (index === 0) checkbox.value = store.formAddProject.isPassAllocate;
else if (index === 1)
checkbox.value = store.formAddProject.isPassNoAllocate;
else if (index === 2) checkbox.value = store.formAddProject.isNoPass;
});
});
</script>
<template>
<div class="row q-pa-md q-col-gutter-sm">
<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="store.formAddProject.metricType"
:options="metricTypeOp"
option-label="name"
option-value="id"
hide-bottom-space
/> -->
<q-input
dense
outlined
label="ประเภทตัวชี้วัด"
v-model="store.formAddProject.metricType"
hide-bottom-space
/>
</div>
<div class="col-12 col-sm-6 col-md-4">
<q-input
dense
outlined
label="ตัวชี้วัด"
v-model="store.formAddProject.indicators"
hide-bottom-space
/>
</div>
<div class="col-12 col-sm-6 col-md-4">
<q-input
dense
outlined
label="เป้าหมาย"
v-model="store.formAddProject.target"
hide-bottom-space
/>
</div>
<div class="col-12">
<q-input
outlined
dense
v-model="store.formAddProject.calculation"
hide-bottom-space
label="วิธีการคำนวณ/เครื่องมือ"
type="textarea"
/>
</div>
<div class="col-12">
<q-input
outlined
dense
v-model="store.formAddProject.measuRement"
hide-bottom-space
label="ระยะเวลาวัดผล"
/>
</div>
<div class="col-12">
<q-input
outlined
dense
v-model="store.formAddProject.results"
hide-bottom-space
label="ผลการดำเนิน"
type="textarea"
/>
</div>
<div class="col-12">
<q-input
outlined
dense
v-model="store.formAddProject.obstacles"
hide-bottom-space
label="ปัญหาอุปสรรค"
type="textarea"
/>
</div>
<div class="col-12">
<q-input
outlined
dense
v-model="store.formAddProject.suggestions"
hide-bottom-space
label="ข้อเสนอเเนะ"
type="textarea"
/>
</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="store.formAddProject.project"
:options="projectOp"
option-label="name"
option-value="id"
hide-bottom-space
map-options
emit-value
/>
</div>
<div v-if="store.formAddProject.project !== ''" class="col-12">
<div class="row" v-if="store.formAddProject.project == 'OFFER'">
<div class="col-12">
<q-checkbox
v-model="store.formAddProject.isPassAllocate"
label="ผ่านการพิจารณา ได้รับการจัดงบประมาณตามข้อบัญญัติ"
/>
</div>
<div class="col-12">
<q-checkbox
v-model="store.formAddProject.isPassNoAllocate"
label="ผ่านการพิจารณา ไม่ได้รับการจัดสรรงบประมาณตามข้อบัญญัติ แต่ได้รับการจัดสรรเงินนอกงบประมาณ"
/>
</div>
<div class="row q-pa-md q-col-gutter-sm">
<div class="col-12">
<span class="text-weight-medium text-body1">วชดความสำเร</span>
<div class="col-12">
<q-checkbox
v-model="store.formAddProject.isNoPass"
label="ไม่ผ่านการพิจารณา แต่ได้รับการจัดสรรเงินนอกงบประมาณ"
/>
</div>
</div>
<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
: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
: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
:rules="[
(val:string) =>
!!val || `${'กรุณากรอกเป้าหมาย'}`,
]"
/>
</div>
<div class="col-12">
<q-input
outlined
dense
v-model="formData.calculation"
hide-bottom-space
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) =>
!!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 class="row" v-else>
<div class="col-12">
<q-checkbox
v-model="store.formAddProject.isBudget"
label="แต่ได้รับการจัดสรรงบประมาณตามข้อบัญญัติ"
/>
</div>
<div class="col-12">
<q-checkbox
v-model="store.formAddProject.isOutBudget"
label="แต่ได้รับการจัดสรรเงินนอกงบประมาณ"
/>
</div>
</div>
</div>
</div>
</template>
<style scoped></style>