ปรับ form สืบสวนข้อเท็จจริง
This commit is contained in:
parent
31883d8794
commit
7f3ed1368b
1 changed files with 98 additions and 34 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import router from "@/router";
|
import { useRouter, useRoute } from "vue-router";
|
||||||
import { onMounted, ref, watch, reactive } from "vue";
|
import { onMounted, ref, watch, reactive, computed } from "vue";
|
||||||
import { useQuasar } from "quasar";
|
import { useQuasar } from "quasar";
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
import { useInvestigateFactStore } from "@/modules/11_discipline/store/InvestigateFactStore";
|
import { useInvestigateFactStore } from "@/modules/11_discipline/store/InvestigateFactStore";
|
||||||
|
|
@ -11,6 +11,7 @@ import type {
|
||||||
import { diffDates } from "@fullcalendar/core/internal";
|
import { diffDates } from "@fullcalendar/core/internal";
|
||||||
|
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
|
const route = useRoute();
|
||||||
|
|
||||||
/**เรียกใช้ store */
|
/**เรียกใช้ store */
|
||||||
const investigateFactStore = useInvestigateFactStore();
|
const investigateFactStore = useInvestigateFactStore();
|
||||||
|
|
@ -67,6 +68,7 @@ const formData = reactive<FormData>({
|
||||||
causeText: "",
|
causeText: "",
|
||||||
complaintStatus: "",
|
complaintStatus: "",
|
||||||
});
|
});
|
||||||
|
const evidenceFiles = ref<any>([{ name: "ชื่อไฟล" }, { name: "ชื่อไฟล" }]);
|
||||||
|
|
||||||
/** maping ref เข้าตัวแปรเพื่อเตรียมตรวจสอบ */
|
/** maping ref เข้าตัวแปรเพื่อเตรียมตรวจสอบ */
|
||||||
const objectInvestigate: MyObjectInvestigateRef = {
|
const objectInvestigate: MyObjectInvestigateRef = {
|
||||||
|
|
@ -85,6 +87,10 @@ const objectInvestigate: MyObjectInvestigateRef = {
|
||||||
causeText: causeTextRef,
|
causeText: causeTextRef,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const statusStep = computed(() => {
|
||||||
|
return route.name === "/discipline-disciplinaryEdit" ? true : false;
|
||||||
|
});
|
||||||
|
|
||||||
/*** ฟังก์ชั่นสำหรับ validate ฟอร์ม */
|
/*** ฟังก์ชั่นสำหรับ validate ฟอร์ม */
|
||||||
function validateForm() {
|
function validateForm() {
|
||||||
const hasError = [];
|
const hasError = [];
|
||||||
|
|
@ -153,6 +159,7 @@ async function fetchDataDetail() {
|
||||||
}
|
}
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
await fetchDataDetail();
|
await fetchDataDetail();
|
||||||
|
console.log(route.name);
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -181,11 +188,11 @@ watch(props.data, async () => {
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<q-card flat bordered class="q-mt-sm">
|
<q-card flat class="q-mt-sm">
|
||||||
<form @submit.prevent="validateForm">
|
<form @submit.prevent="validateForm">
|
||||||
<div class="q-pa-md q-col-gutter-md">
|
<div class="q-pa-md q-col-gutter-md">
|
||||||
<div class="col-xs-12 row items-center q-col-gutter-md">
|
<div class="col-xs-12 row items-center q-col-gutter-md">
|
||||||
<div class="col-6">
|
<!-- <div class="col-6">
|
||||||
<q-select
|
<q-select
|
||||||
for="#fault"
|
for="#fault"
|
||||||
outlined
|
outlined
|
||||||
|
|
@ -212,9 +219,9 @@ watch(props.data, async () => {
|
||||||
</q-item>
|
</q-item>
|
||||||
</template>
|
</template>
|
||||||
</q-select>
|
</q-select>
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
<div class="col-3">
|
<!-- <div class="col-3">
|
||||||
<q-select
|
<q-select
|
||||||
for="#fault"
|
for="#fault"
|
||||||
outlined
|
outlined
|
||||||
|
|
@ -241,10 +248,12 @@ watch(props.data, async () => {
|
||||||
</q-item>
|
</q-item>
|
||||||
</template>
|
</template>
|
||||||
</q-select>
|
</q-select>
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
<div class="col-3">
|
<div class="col-3">
|
||||||
<q-select
|
<q-select
|
||||||
|
:readonly="statusStep"
|
||||||
|
:disable="statusStep"
|
||||||
for="#investigation"
|
for="#investigation"
|
||||||
outlined
|
outlined
|
||||||
hide-bottom-space
|
hide-bottom-space
|
||||||
|
|
@ -301,7 +310,7 @@ watch(props.data, async () => {
|
||||||
>
|
>
|
||||||
วันที่สืบสวน
|
วันที่สืบสวน
|
||||||
<q-checkbox
|
<q-checkbox
|
||||||
v-if="data != null"
|
v-if="data != null && statusStep === false"
|
||||||
for="#clickTime"
|
for="#clickTime"
|
||||||
size="md"
|
size="md"
|
||||||
v-model="formData.clickTime"
|
v-model="formData.clickTime"
|
||||||
|
|
@ -318,7 +327,7 @@ watch(props.data, async () => {
|
||||||
<div class="col-3" v-if="!formData.clickTime">
|
<div class="col-3" v-if="!formData.clickTime">
|
||||||
<datepicker
|
<datepicker
|
||||||
menu-class-name="modalfix"
|
menu-class-name="modalfix"
|
||||||
:readonly="isUpdate"
|
:readonly="isUpdate && statusStep"
|
||||||
v-model="formData.date"
|
v-model="formData.date"
|
||||||
:locale="'th'"
|
:locale="'th'"
|
||||||
autoApply
|
autoApply
|
||||||
|
|
@ -334,7 +343,7 @@ watch(props.data, async () => {
|
||||||
for="#date"
|
for="#date"
|
||||||
class="full-width cursor-pointer"
|
class="full-width cursor-pointer"
|
||||||
ref="dateRef"
|
ref="dateRef"
|
||||||
:readonly="isUpdate"
|
:readonly="statusStep && isUpdate"
|
||||||
outlined
|
outlined
|
||||||
dense
|
dense
|
||||||
lazy-rules
|
lazy-rules
|
||||||
|
|
@ -399,7 +408,7 @@ watch(props.data, async () => {
|
||||||
<datepicker
|
<datepicker
|
||||||
menu-class-name="modalfix"
|
menu-class-name="modalfix"
|
||||||
v-model="formData.dateEnd"
|
v-model="formData.dateEnd"
|
||||||
:readonly="isUpdate"
|
:readonly="statusStep && isUpdate"
|
||||||
:locale="'th'"
|
:locale="'th'"
|
||||||
autoApply
|
autoApply
|
||||||
:enableTimePicker="false"
|
:enableTimePicker="false"
|
||||||
|
|
@ -414,7 +423,7 @@ watch(props.data, async () => {
|
||||||
for="#dateEnd"
|
for="#dateEnd"
|
||||||
ref="dateEndRef"
|
ref="dateEndRef"
|
||||||
class="full-width cursor-pointer"
|
class="full-width cursor-pointer"
|
||||||
:readonly="isUpdate"
|
:readonly="statusStep && isUpdate"
|
||||||
outlined
|
outlined
|
||||||
dense
|
dense
|
||||||
lazy-rules
|
lazy-rules
|
||||||
|
|
@ -446,7 +455,7 @@ watch(props.data, async () => {
|
||||||
</q-card>
|
</q-card>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-12">
|
<!-- <div class="col-12">
|
||||||
<q-input
|
<q-input
|
||||||
for="#complaintdetail"
|
for="#complaintdetail"
|
||||||
class="full-width cursor-pointer"
|
class="full-width cursor-pointer"
|
||||||
|
|
@ -463,9 +472,9 @@ watch(props.data, async () => {
|
||||||
:label="`${'รายละเอียดเรื่องร้องเรียน'}`"
|
:label="`${'รายละเอียดเรื่องร้องเรียน'}`"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
<div class="col-12">
|
<!-- <div class="col-12">
|
||||||
<q-file
|
<q-file
|
||||||
for="#fileComplaint"
|
for="#fileComplaint"
|
||||||
outlined
|
outlined
|
||||||
|
|
@ -481,7 +490,7 @@ watch(props.data, async () => {
|
||||||
<q-icon name="attach_file" color="primary" />
|
<q-icon name="attach_file" color="primary" />
|
||||||
</template>
|
</template>
|
||||||
</q-file>
|
</q-file>
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<q-input
|
<q-input
|
||||||
|
|
@ -500,30 +509,13 @@ watch(props.data, async () => {
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-12">
|
|
||||||
<q-file
|
|
||||||
for="#evidenceFiles"
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
ref="evidenceFilesRef"
|
|
||||||
v-model="formData.evidenceFiles"
|
|
||||||
label="ไฟล์เอกสารหลักฐาน"
|
|
||||||
lazy-rules
|
|
||||||
:rules="[(val) => !!val || 'กรุณาเลือกไฟล์เอกสารหลักฐาน']"
|
|
||||||
hide-bottom-space
|
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon name="attach_file" color="primary" />
|
|
||||||
</template>
|
|
||||||
</q-file>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row col-12 q-col-gutter-md">
|
<div class="row col-12 q-col-gutter-md">
|
||||||
<div class="col-3">
|
<div class="col-3">
|
||||||
<q-select
|
<q-select
|
||||||
for="#fault"
|
for="#fault"
|
||||||
outlined
|
outlined
|
||||||
dense
|
dense
|
||||||
|
:readonly="statusStep"
|
||||||
lazy-rules
|
lazy-rules
|
||||||
ref="statusResultRef"
|
ref="statusResultRef"
|
||||||
v-model="formData.statusResult"
|
v-model="formData.statusResult"
|
||||||
|
|
@ -588,4 +580,76 @@ watch(props.data, async () => {
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</q-card>
|
</q-card>
|
||||||
|
<div class="col-12 row q-col-gutter-md q-mt-sm">
|
||||||
|
<div class="row col-12">
|
||||||
|
<q-card bordered class="row col-12" style="border: 1px solid #d6dee1">
|
||||||
|
<div
|
||||||
|
class="col-xs-12 col-sm-12 text-weight-medium bg-grey-1 q-py-xs q-px-md"
|
||||||
|
>
|
||||||
|
อัปโหลดหลักฐานสนับสนุนข้อกล่าวหา
|
||||||
|
</div>
|
||||||
|
<div class="col-12"><q-separator /></div>
|
||||||
|
<div class="col-xs-12 q-pa-sm row">
|
||||||
|
<q-file
|
||||||
|
class="col-11 q-mt-sm"
|
||||||
|
for="#evidenceFiles"
|
||||||
|
outlined
|
||||||
|
dense
|
||||||
|
ref="evidenceFilesRef"
|
||||||
|
v-model="formData.evidenceFiles"
|
||||||
|
label="ไฟล์เอกสารหลักฐาน"
|
||||||
|
lazy-rules
|
||||||
|
:rules="[(val) => !!val || 'กรุณาเลือกไฟล์เอกสารหลักฐาน']"
|
||||||
|
hide-bottom-space
|
||||||
|
>
|
||||||
|
<template v-slot:prepend>
|
||||||
|
<q-icon name="attach_file" color="primary" />
|
||||||
|
</template>
|
||||||
|
</q-file>
|
||||||
|
<q-btn class="col q-mt-sm" flat round color="primary" icon="upload">
|
||||||
|
<q-tooltip>อัปโหลดเอกสารหลักฐาน</q-tooltip></q-btn
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-12 q-pa-sm row">
|
||||||
|
<q-list bordered separator class="full-width">
|
||||||
|
<q-item
|
||||||
|
clickable
|
||||||
|
v-ripple
|
||||||
|
v-for="(file, index) in evidenceFiles"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<q-item-section>{{ file.name + (index + 1) }}</q-item-section>
|
||||||
|
<q-item-section avatar>
|
||||||
|
<div class="row">
|
||||||
|
<div>
|
||||||
|
<q-btn
|
||||||
|
dense
|
||||||
|
flat
|
||||||
|
round
|
||||||
|
size="12px"
|
||||||
|
color="blue"
|
||||||
|
icon="mdi-download-outline"
|
||||||
|
>
|
||||||
|
<q-tooltip>ดาวน์โหลดเอกสารหลักฐาน</q-tooltip>
|
||||||
|
</q-btn>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<q-btn
|
||||||
|
dense
|
||||||
|
flat
|
||||||
|
round
|
||||||
|
size="12px"
|
||||||
|
color="red"
|
||||||
|
icon="mdi-delete-outline"
|
||||||
|
><q-tooltip>ลบเอกสารหลักฐาน</q-tooltip></q-btn
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
</q-list>
|
||||||
|
</div>
|
||||||
|
</q-card>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue