2023-11-07 09:52:03 +07:00
|
|
|
<script setup lang="ts">
|
|
|
|
|
import { onMounted, reactive, ref } from "vue";
|
2023-11-22 11:26:10 +07:00
|
|
|
import FormComplaints from "@/modules/11_discipline/components/1_Complaint/Form.vue"; //เรื่องร้องเรียน
|
|
|
|
|
import FormInvestigatefacts from "@/modules/11_discipline/components/2_InvestigateFacts/Form.vue"; //สืบสวนข้อเท็จจริง
|
|
|
|
|
import FormDisciplinary from "@/modules/11_discipline/components/3_InvestigateDisciplinary/Form.vue"; // สอบสวนความผิดทางวินัย
|
2023-11-07 09:52:03 +07:00
|
|
|
import type { FormData } from "@/modules/11_discipline/interface/request/disciplinary";
|
|
|
|
|
import { useRouter, useRoute } from "vue-router";
|
2023-11-21 10:29:11 +07:00
|
|
|
import { useCounterMixin } from "@/stores/mixin";
|
2023-11-22 11:26:10 +07:00
|
|
|
import { useInvestigateDisStore } from "@/modules/11_discipline/store/InvestigateDisStore";
|
2023-11-21 10:29:11 +07:00
|
|
|
import { useQuasar } from "quasar";
|
|
|
|
|
const $q = useQuasar();
|
|
|
|
|
const mixin = useCounterMixin();
|
2023-11-22 11:26:10 +07:00
|
|
|
const store = useInvestigateDisStore();
|
2023-11-21 10:29:11 +07:00
|
|
|
const { dialogConfirm } = mixin;
|
2023-11-07 09:52:03 +07:00
|
|
|
const router = useRouter();
|
|
|
|
|
const route = useRoute();
|
|
|
|
|
const id = ref<string>(route.params.id as string);
|
|
|
|
|
|
2023-11-10 15:32:11 +07:00
|
|
|
/** ข้อมูล v-model ของฟอร์ม */
|
2023-11-07 09:52:03 +07:00
|
|
|
const data = reactive<FormData>({
|
2023-11-10 15:32:11 +07:00
|
|
|
complaint: "",
|
2023-11-07 09:52:03 +07:00
|
|
|
dateInvestigate: null,
|
|
|
|
|
dateAllegation: null,
|
|
|
|
|
dateEvident: null,
|
|
|
|
|
casefault: "",
|
|
|
|
|
typefault: "",
|
|
|
|
|
faultLevel: "",
|
|
|
|
|
refLaw: "",
|
|
|
|
|
detailComplaint: "",
|
|
|
|
|
whereInvestigate: "",
|
|
|
|
|
trueDetail: "",
|
|
|
|
|
evidence: "",
|
|
|
|
|
recordAccuser: "",
|
|
|
|
|
witnesses: "",
|
|
|
|
|
InvestResults: "",
|
|
|
|
|
filesEvidence: null,
|
|
|
|
|
filesRecordAccuser: null,
|
|
|
|
|
filesWitnesses: null,
|
|
|
|
|
filesEtc: null,
|
2023-11-22 11:26:10 +07:00
|
|
|
complaintStatus: "NEW",
|
2023-11-07 09:52:03 +07:00
|
|
|
});
|
2023-11-10 15:32:11 +07:00
|
|
|
|
|
|
|
|
/** จำลองข้อมูลจาก api */
|
2023-11-07 09:52:03 +07:00
|
|
|
const fetchData = async () => {
|
2023-11-21 10:29:11 +07:00
|
|
|
data.complaint = "test1";
|
|
|
|
|
data.dateInvestigate = new Date("2023-11-08T14:58:00");
|
|
|
|
|
data.dateAllegation = new Date("2023-11-08T14:58:00");
|
|
|
|
|
data.dateEvident = new Date("2023-11-08T14:58:00");
|
|
|
|
|
data.casefault = "test1";
|
|
|
|
|
data.typefault = "2";
|
|
|
|
|
data.faultLevel = "2";
|
|
|
|
|
data.refLaw = "test";
|
|
|
|
|
data.detailComplaint = "รายละเอียด";
|
|
|
|
|
data.whereInvestigate = "ที่ไหน";
|
|
|
|
|
data.trueDetail = "รายละเอียด";
|
|
|
|
|
data.evidence = "รายละเอียด";
|
|
|
|
|
data.recordAccuser = "รายละเอียด";
|
|
|
|
|
data.witnesses = "รายละเอียด";
|
|
|
|
|
data.InvestResults = "รายละเอียด";
|
|
|
|
|
data.filesEvidence = null;
|
|
|
|
|
data.filesRecordAccuser = null;
|
|
|
|
|
data.filesWitnesses = null;
|
|
|
|
|
data.filesEtc = null;
|
2023-11-07 09:52:03 +07:00
|
|
|
};
|
|
|
|
|
|
2023-11-10 15:32:11 +07:00
|
|
|
/**
|
|
|
|
|
* บันทึกข้อมูลที่เเก้ไข
|
|
|
|
|
* @param id ระบุ บุคคล
|
|
|
|
|
*/
|
2023-11-21 10:29:11 +07:00
|
|
|
const onSubmit = async (id: string) => {
|
2023-11-07 09:52:03 +07:00
|
|
|
console.log("edit");
|
|
|
|
|
router.push(`/discipline/disciplinary`);
|
|
|
|
|
};
|
2023-11-10 15:32:11 +07:00
|
|
|
|
2023-11-21 10:29:11 +07:00
|
|
|
/** ยืนยัน ส่งไปออกคำสั่ง */
|
|
|
|
|
function sentIssue() {
|
|
|
|
|
dialogConfirm(
|
|
|
|
|
$q,
|
|
|
|
|
() => confirmSentIssue(),
|
|
|
|
|
"ยืนยันส่งไปออกคำสั่ง",
|
|
|
|
|
"ต้องการยืนยันส่งไปออกคำสั่งใช่หรือไม่?"
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
2023-11-21 13:02:34 +07:00
|
|
|
/** ยืนยัน ยุติเรื่อง */
|
|
|
|
|
function endInvestigate() {
|
|
|
|
|
dialogConfirm(
|
|
|
|
|
$q,
|
|
|
|
|
() => confirmEndInvestigate(),
|
|
|
|
|
"ยืนยันยุติเรื่อง",
|
|
|
|
|
"ต้องการยืนยันยุติเรื่องใช่หรือไม่?"
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** ยืนยัน ยกเลิกการยุติเรื่อง */
|
|
|
|
|
function cancelInvestigate() {
|
|
|
|
|
dialogConfirm(
|
|
|
|
|
$q,
|
|
|
|
|
() => confirmCancelInvestigate(),
|
|
|
|
|
"ยืนยันยกเลิกการยุติเรื่อง",
|
|
|
|
|
"ต้องการยืนยันยกเลิกการยุติเรื่องใช่หรือไม่?"
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
2023-11-21 10:29:11 +07:00
|
|
|
/** ฟังชั่น ส่งไปออกคำสั่ง*/
|
|
|
|
|
function confirmSentIssue() {
|
|
|
|
|
console.log("sent");
|
|
|
|
|
}
|
|
|
|
|
|
2023-11-21 13:02:34 +07:00
|
|
|
/** ฟังชั่น ยุติเรื่อง*/
|
|
|
|
|
function confirmEndInvestigate() {
|
|
|
|
|
console.log("sent");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** ฟังชั่น ยกเลิกการยุติเรื่อง*/
|
|
|
|
|
function confirmCancelInvestigate() {
|
|
|
|
|
console.log("sent");
|
|
|
|
|
}
|
|
|
|
|
|
2023-11-10 15:32:11 +07:00
|
|
|
/** โหลดข้อมูลเมื่อเข้าหน้านี้ */
|
2023-11-22 11:26:10 +07:00
|
|
|
onMounted(async () => {
|
|
|
|
|
await fetchData();
|
2023-11-10 15:32:11 +07:00
|
|
|
});
|
2023-11-07 09:52:03 +07:00
|
|
|
</script>
|
|
|
|
|
<template>
|
|
|
|
|
<div class="col-xs-12 col-sm-12 col-md-11">
|
|
|
|
|
<div class="toptitle col-12 row items-center">
|
|
|
|
|
<q-btn
|
|
|
|
|
icon="mdi-arrow-left"
|
|
|
|
|
unelevated
|
|
|
|
|
round
|
|
|
|
|
dense
|
|
|
|
|
flat
|
|
|
|
|
color="primary"
|
|
|
|
|
class="q-mr-sm"
|
|
|
|
|
@click="$router.push(`/discipline/disciplinary`)"
|
|
|
|
|
/>
|
2023-11-21 10:29:11 +07:00
|
|
|
<div class="q-ma-none">แก้ไขการสอบสวนความผิดทางวินัย {{ id }}#id</div>
|
|
|
|
|
<q-space />
|
|
|
|
|
<div class="q-gutter-x-sm">
|
2023-11-22 11:26:10 +07:00
|
|
|
<q-btn
|
|
|
|
|
v-if="data.complaintStatus === 'NEW'"
|
|
|
|
|
label="ส่งไปออกคำสั่ง"
|
|
|
|
|
color="public"
|
|
|
|
|
@click="sentIssue"
|
|
|
|
|
/>
|
2023-11-21 13:02:34 +07:00
|
|
|
<q-btn
|
|
|
|
|
v-if="data.complaintStatus === 'NEW'"
|
|
|
|
|
label="ยุติเรื่อง"
|
|
|
|
|
color="red-7"
|
|
|
|
|
@click="endInvestigate"
|
|
|
|
|
/>
|
|
|
|
|
<q-btn
|
|
|
|
|
v-if="data.complaintStatus === 'STOP'"
|
|
|
|
|
label="ยกเลิกการยุติเรื่อง"
|
|
|
|
|
color="red-7"
|
|
|
|
|
@click="cancelInvestigate"
|
|
|
|
|
/>
|
2023-11-21 10:29:11 +07:00
|
|
|
</div>
|
2023-11-07 09:52:03 +07:00
|
|
|
</div>
|
2023-11-22 11:26:10 +07:00
|
|
|
<q-card flat bordered class="col-12">
|
|
|
|
|
<q-tabs
|
|
|
|
|
v-model="store.tabMenu"
|
|
|
|
|
dense
|
|
|
|
|
align="left"
|
|
|
|
|
inline-label
|
|
|
|
|
class="rounded-borders"
|
|
|
|
|
indicator-color="primary"
|
|
|
|
|
active-bg-color="teal-1"
|
|
|
|
|
active-class="text-primary"
|
|
|
|
|
>
|
|
|
|
|
<q-tab name="complaints" label="เรื่องร้องเรียน" />
|
|
|
|
|
<q-tab name="investigatefacts" label="สืบสวนข้อเท็จจริง" />
|
|
|
|
|
<q-tab name="disciplinary" label="สอบสวนความผิดทางวินัย" />
|
|
|
|
|
</q-tabs>
|
|
|
|
|
<q-separator />
|
|
|
|
|
<q-tab-panels v-model="store.tabMenu" animated>
|
|
|
|
|
<q-tab-panel name="complaints">
|
|
|
|
|
<FormComplaints :on-submit="onSubmit" />
|
|
|
|
|
</q-tab-panel>
|
|
|
|
|
<q-tab-panel name="investigatefacts">
|
|
|
|
|
<FormInvestigatefacts :on-submit="onSubmit" />
|
|
|
|
|
</q-tab-panel>
|
|
|
|
|
<q-tab-panel name="disciplinary">
|
|
|
|
|
<FormDisciplinary :on-submit="onSubmit" :data="data" />
|
|
|
|
|
</q-tab-panel>
|
|
|
|
|
</q-tab-panels>
|
|
|
|
|
</q-card>
|
|
|
|
|
<!-- <Form :on-submit="onSubmit" :data="data" /> -->
|
2023-11-07 09:52:03 +07:00
|
|
|
</div>
|
|
|
|
|
</template>
|