รายการสืบสวนข้อเท็จจริง

This commit is contained in:
STW_TTTY\stwtt 2024-08-08 10:42:47 +07:00
parent 3f2aff52e1
commit 8b54d6b4b1
4 changed files with 123 additions and 66 deletions

View file

@ -27,6 +27,8 @@ const store = useInvestigateFactStore();
const { dialogConfirm, showLoader, success, hideLoader, messageError } = mixin;
const route = useRoute();
const router = useRouter();
const checkRoutePermisson = ref<boolean>(route.name == "disciplineInvestigatefactsDetail");
const id = ref<string>(route.params.id as string);
const modalPopup = ref<boolean>(false);
@ -349,10 +351,10 @@ watch(
class="q-mr-sm"
@click="$router.push(`/discipline/investigatefacts`)"
/>
<div class="q-ma-none">แกไขรายการสบสวนขอเทจจร</div>
<div class="q-ma-none">{{ checkRoutePermisson ? 'รายละเอียดรายการสืบสวนข้อเท็จจริง':'แก้ไขรายการสืบสวนข้อเท็จจริง'}}</div>
<q-space />
<div class="q-gutter-x-sm">
<div class="q-gutter-x-sm" v-if="!checkRoutePermisson">
<q-btn
v-if="data.status === 'NEW'"
label="ส่งไปสอบสวน"

View file

@ -28,6 +28,9 @@ const personId = ref<string>("");
const $q = useQuasar();
const route = useRoute();
const router = useRouter();
const checkRoutePermisson = ref<boolean>(
route.name == "disciplineInvestigatefactsDetail"
);
const id = ref<string>(route.params.id as string);
const modalPerson = ref<boolean>(false);
const toggleModal = () => (modalPerson.value = !modalPerson.value);
@ -763,7 +766,7 @@ onMounted(async () => {
ref="respondentTypeRef"
dense
outlined
:readonly="isReadonly"
:readonly="isReadonly || checkRoutePermisson"
label="ผู้ถูกร้องเรียน"
option-value="id"
option-label="name"
@ -799,7 +802,7 @@ onMounted(async () => {
ref="organizationIdRef"
dense
hide-bottom-space
:readonly="isReadonly"
:readonly="isReadonly || checkRoutePermisson"
outlined
option-label="name"
option-value="id"
@ -836,7 +839,7 @@ onMounted(async () => {
<div class="col-xs-12 col-sm-5">
<q-select
:class="inputEdit(isReadonly)"
:readonly="isReadonly"
:readonly="isReadonly || checkRoutePermisson"
for="#investigationDetail"
outlined
hide-bottom-space
@ -878,7 +881,7 @@ onMounted(async () => {
>
กรองเรยน
<q-btn
v-if="!isReadonly"
v-if="!isReadonly && !checkRoutePermisson"
size="12px"
flat
round
@ -918,7 +921,6 @@ onMounted(async () => {
col.label
}}</span>
</q-th>
<q-th auto-width></q-th>
</q-tr>
</template>
<template v-slot:body="props">
@ -929,11 +931,25 @@ onMounted(async () => {
flat
round
color="info"
icon="info"
icon="mdi-eye"
@click="onclickViewinfo(props.row.personId)"
>
<q-tooltip>อมลในทะเบยนประว</q-tooltip>
</q-btn>
<q-btn
v-if="
!isReadonly &&
!checkRoutePermisson &&
props.row.isAncestorDNA === false
"
flat
round
dense
color="red"
icon="mdi-delete"
@click="deletePerson(props.row.personId)"
><q-tooltip>ลบผกรองเรยน</q-tooltip></q-btn
>
</td>
<q-td
v-for="col in props.cols"
@ -956,22 +972,6 @@ onMounted(async () => {
{{ col.value ?? "-" }}
</div>
</q-td>
<q-td auto-width>
<q-btn
v-if="
!isReadonly && props.row.isAncestorDNA === false
"
size="12px"
flat
round
dense
color="red"
class="q-ml-sm"
icon="mdi-delete-outline"
@click="deletePerson(props.row.personId)"
><q-tooltip>ลบผกรองเรยน</q-tooltip></q-btn
>
</q-td>
</q-tr>
</template>
</d-table>
@ -984,7 +984,7 @@ onMounted(async () => {
>
<q-input
:class="inputEdit(isReadonly)"
:readonly="isReadonly"
:readonly="isReadonly || checkRoutePermisson"
for="#investigationDetailOther"
outlined
ref="investigationDetailOtherRef"
@ -1012,7 +1012,8 @@ onMounted(async () => {
<q-checkbox
v-if="
props.data.investigationExtendHistory.length > 0 &&
!isReadonly
!isReadonly &&
!checkRoutePermisson
"
:disable="isReadonly"
for="#extendStatus"
@ -1054,7 +1055,7 @@ onMounted(async () => {
<div v-if="investigationExtendStatus" class="col-3">
<q-select
:class="inputEdit(isReadonly)"
:readonly="isReadonly"
:readonly="isReadonly || checkRoutePermisson"
for="#daysExtend"
outlined
dense
@ -1083,6 +1084,7 @@ onMounted(async () => {
<datepicker
menu-class-name="modalfix"
:readonly="
checkRoutePermisson ||
isReadonly ||
formData.investigationExtendHistory.length > 0
"
@ -1105,6 +1107,7 @@ onMounted(async () => {
:class="inputEditExtend(isReadonly)"
ref="dateRef"
:readonly="
checkRoutePermisson ||
isReadonly ||
formData.investigationExtendHistory.length >
0
@ -1163,6 +1166,7 @@ onMounted(async () => {
menu-class-name="modalfix"
v-model="formData.investigationDateEnd"
:readonly="
checkRoutePermisson ||
formData.investigationDateStart === null ||
isReadonly ||
formData.investigationExtendHistory.length > 0
@ -1186,6 +1190,7 @@ onMounted(async () => {
ref="dateEndRef"
:class="inputEditExtend(isReadonly)"
:readonly="
checkRoutePermisson ||
formData.investigationDateStart === null ||
isReadonly ||
formData.investigationExtendHistory.length >
@ -1274,7 +1279,7 @@ onMounted(async () => {
>
รายชอกรรมการ
<q-btn
v-if="!isReadonly"
v-if="!isReadonly && !checkRoutePermisson"
size="12px"
flat
round
@ -1310,25 +1315,27 @@ onMounted(async () => {
<q-td class="text-right">
<!-- แกไขกรรมการ -->
<q-btn
v-if="!isReadonly && props.row.check === 'props'"
v-if="
!checkRoutePermisson &&
!isReadonly &&
props.row.check === 'props'
"
dense
size="12px"
flat
round
color="blue"
color="edit"
@click="openEditDirector(props.row)"
icon="mdi-pencil-outline"
icon="edit"
>
<q-tooltip>แกไข</q-tooltip>
</q-btn>
<q-btn
v-if="!isReadonly"
v-if="!checkRoutePermisson && !isReadonly"
dense
size="12px"
flat
round
color="red"
icon="mdi-delete-outline"
icon="mdi-delete"
@click="deleteDirector(props.row.id)"
>
<q-tooltip>ลบขอม</q-tooltip>
@ -1349,7 +1356,6 @@ onMounted(async () => {
{{ col.value ?? "-" }}
</div>
</q-td>
</q-tr>
</template>
</Table>
@ -1360,7 +1366,7 @@ onMounted(async () => {
<div class="col-12">
<q-input
:class="inputEdit(isReadonly)"
:readonly="isReadonly"
:readonly="isReadonly || checkRoutePermisson"
for="#investigationDescription"
outlined
ref="investigationDescriptionRef"
@ -1395,7 +1401,7 @@ onMounted(async () => {
for="#fault"
outlined
dense
:readonly="isReadonly"
:readonly="isReadonly || checkRoutePermisson"
ref="investigationStatusResultRef"
v-model="formData.investigationStatusResult"
:options="optionStatusResult"
@ -1423,7 +1429,7 @@ onMounted(async () => {
>
<q-select
:class="inputEdit(isReadonly)"
:readonly="isReadonly"
:readonly="isReadonly || checkRoutePermisson"
for="#fault"
outlined
clearable
@ -1453,7 +1459,7 @@ onMounted(async () => {
:class="inputEdit(isReadonly)"
outlined
ref="resultRef"
:readonly="isReadonly"
:readonly="isReadonly || checkRoutePermisson"
dense
borderless
v-model="formData.result"
@ -1487,7 +1493,9 @@ onMounted(async () => {
<div class="col-12"><q-separator /></div>
<div class="row col-12 q-col-gutter-y-sm q-pa-sm">
<div
v-if="!isReadonly && formData.id !== ''"
v-if="
!checkRoutePermisson && !isReadonly && formData.id !== ''
"
class="col-12 row"
>
<q-file
@ -1505,7 +1513,6 @@ onMounted(async () => {
<template v-slot:after>
<q-btn
v-if="formData.evidenceFiles"
size="14px"
flat
round
dense
@ -1544,7 +1551,6 @@ onMounted(async () => {
dense
flat
round
size="12px"
color="blue"
icon="mdi-download-outline"
@click="downloadFileRelevant(file.pathName)"
@ -1554,13 +1560,12 @@ onMounted(async () => {
</div>
<div>
<q-btn
v-if="!isReadonly"
v-if="!isReadonly && !checkRoutePermisson"
dense
flat
round
size="12px"
color="red"
icon="mdi-delete-outline"
icon="mdi-delete"
@click="deleteFileRelevant(file.id)"
><q-tooltip>ลบไฟล</q-tooltip></q-btn
>
@ -1593,7 +1598,9 @@ onMounted(async () => {
<div class="col-12"><q-separator /></div>
<div class="row col-12 q-col-gutter-y-sm q-pa-sm">
<div
v-if="!isReadonly && formData.id !== ''"
v-if="
!checkRoutePermisson && !isReadonly && formData.id !== ''
"
class="col-12 row"
>
<!-- accept=".pdf,.xlsx,.docx" -->
@ -1613,7 +1620,6 @@ onMounted(async () => {
<template v-slot:after>
<q-btn
v-if="formData.documentFile"
size="14px"
flat
round
dense
@ -1649,7 +1655,6 @@ onMounted(async () => {
dense
flat
round
size="12px"
color="blue"
icon="mdi-download-outline"
@click="downloadFile(file.pathName)"
@ -1659,13 +1664,12 @@ onMounted(async () => {
</div>
<div>
<q-btn
v-if="!isReadonly"
v-if="!isReadonly && !checkRoutePermisson"
dense
flat
round
size="12px"
color="red"
icon="mdi-delete-outline"
icon="mdi-delete"
@click="deleteFile(file.id)"
><q-tooltip>ลบไฟล</q-tooltip></q-btn
>
@ -1687,8 +1691,11 @@ onMounted(async () => {
</div>
</div>
<div class="col-12"><q-separator /></div>
<div class="row col-12 q-pa-sm" v-if="!isReadonly">
<div class="col-12"><q-separator v-if="!checkRoutePermisson" /></div>
<div
class="row col-12 q-pa-sm"
v-if="!isReadonly && !checkRoutePermisson"
>
<q-space />
<q-btn id="onSubmit" type="submit" label="บันทึก" color="secondary"
><q-tooltip>นทกขอม</q-tooltip></q-btn

View file

@ -9,6 +9,8 @@ import config from "@/app.config";
import http from "@/plugins/http";
import { useInvestigateFactStore } from "@/modules/11_discipline/store/InvestigateFactStore";
import { checkPermission } from "@/utils/permissions";
const dataInvestigate = useInvestigateFactStore();
const mixin = useCounterMixin();
const { messageError, showLoader, hideLoader } = mixin;
@ -94,6 +96,14 @@ async function editPage(id: string) {
dataInvestigate.tabMenu = await "investigatefacts";
router.push(`/discipline/investigatefacts/${id}`);
}
/**
* ไปหนาแกไข
* @param id ไอดเฉพาะ รายบคคล
*/
async function detailPage(id: string) {
dataInvestigate.tabMenu = await "investigatefacts";
router.push(`/discipline-detail/investigatefacts/${id}`);
}
function filterFn() {
getList();
@ -149,12 +159,15 @@ onMounted(async () => {
<template v-if="statusFilter !== 'ALL'" v-slot:append>
<q-icon
name="cancel"
@click.stop.prevent="(option = dataInvestigate.statusOptions),(statusFilter = 'ALL'), getList()"
@click.stop.prevent="
(option = dataInvestigate.statusOptions),
(statusFilter = 'ALL'),
getList()
"
class="cursor-pointer"
/> </template
>
</q-select
>
/>
</template>
</q-select>
</div>
<q-space />
@ -216,6 +229,7 @@ onMounted(async () => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width></q-th>
<q-th
v-for="col in props.cols"
:key="col.name"
@ -228,13 +242,35 @@ onMounted(async () => {
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="editPage(props.row.id)"
>
<q-tr :props="props">
<q-td auto-width>
<q-btn
v-if="checkPermission($route)?.attrIsGet"
flat
dense
round
color="info"
icon="mdi-eye"
@click="detailPage(props.row.id)"
>
<q-tooltip>รายละเอยด</q-tooltip>
</q-btn>
<q-btn
v-if="
checkPermission($route)?.attrIsGet &&
checkPermission($route)?.attrIsUpdate
"
flat
dense
round
color="edit"
icon="edit"
@click="editPage(props.row.id)"
>
<q-tooltip>แกไขขอม</q-tooltip>
</q-btn>
</q-td>
<q-td v-for="col in props.cols" :key="col.name" :props="props">
<div v-if="col.name == 'no'">
{{
(currentPage - 1) * Number(pagination.rowsPerPage) +

View file

@ -6,6 +6,8 @@ const factsMain = () =>
// import("@/modules/11_discipline/components/2_InvestigateFacts/AddPage.vue");
const investigatefactsEdit = () =>
import("@/modules/11_discipline/components/2_InvestigateFacts/EditPage.vue");
const investigatefactsDetail = () =>
import("@/modules/11_discipline/components/2_InvestigateFacts/EditPage.vue");
const disciplinaryMain = () =>
import(
"@/modules/11_discipline/components/3_InvestigateDisciplinary/MainPage.vue"
@ -151,6 +153,16 @@ export default [
Role: "STAFF",
},
},
{
path: "/discipline-detail/investigatefacts/:id",
name: "disciplineInvestigatefactsDetail",
component: investigatefactsDetail,
meta: {
Auth: true,
Key: "SYS_DISCIPLINE_INVESTIGATE",
Role: "STAFF",
},
},
{
path: "/discipline/disciplinary",
name: "disciplineDisciplinary",