Merge branch 'warunee-dev' into develop

This commit is contained in:
Warunee Tamkoo 2023-11-10 11:27:09 +07:00
commit 1e11e58b66
8 changed files with 607 additions and 574 deletions

View file

@ -458,9 +458,9 @@ watch(props.data, async () => {
dense dense
ref="evidenceFilesRef" ref="evidenceFilesRef"
v-model="formData.evidenceFiles" v-model="formData.evidenceFiles"
label="ไฟล์หลักฐานการรับ" label="ไฟล์เอกสารหลักฐาน"
lazy-rules lazy-rules
:rules="[(val) => !!val || 'กรุณาเลือกไฟล์หลักฐานการรับ']" :rules="[(val) => !!val || 'กรุณาเลือกไฟล์เอกสารหลักฐาน']"
hide-bottom-space hide-bottom-space
> >
<template v-slot:prepend> <template v-slot:prepend>

View file

@ -1,5 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import Form from "@/modules/11_discipline/components/3_InvestigateDisciplinary/Form.vue"; import Form from "@/modules/11_discipline/components/3_investigateDisciplinary/Form.vue";
import { useRoute, useRouter } from "vue-router"; import { useRoute, useRouter } from "vue-router";
const router = useRouter(); const router = useRouter();

View file

@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import { onMounted, reactive, ref } from "vue"; import { onMounted, reactive, ref } from "vue";
import Form from "@/modules/11_discipline/components/3_InvestigateDisciplinary/Form.vue"; import Form from "@/modules/11_discipline/components/3_investigateDisciplinary/Form.vue";
import type { FormData } from "@/modules/11_discipline/interface/request/disciplinary"; import type { FormData } from "@/modules/11_discipline/interface/request/disciplinary";
import { useRouter, useRoute } from "vue-router"; import { useRouter, useRoute } from "vue-router";

View file

@ -83,6 +83,7 @@ const filesEtcRef = ref<Object | null>(null);
const trueDetailRef = ref<Object | null>(null); const trueDetailRef = ref<Object | null>(null);
const evidenceRef = ref<Object | null>(null); const evidenceRef = ref<Object | null>(null);
const recordAccuserRef = ref<Object | null>(null); const recordAccuserRef = ref<Object | null>(null);
const complaintsOptions = ref<any>([]);
const fileDocDataUpload = ref<File[]>([]); const fileDocDataUpload = ref<File[]>([]);
const initialPagination = ref<any>({ const initialPagination = ref<any>({
@ -90,7 +91,7 @@ const initialPagination = ref<any>({
}); });
const formData = reactive<FormData>({ const formData = reactive<FormData>({
Complaint: "", complaint: "",
dateInvestigate: null, dateInvestigate: null,
dateAllegation: null, dateAllegation: null,
dateEvident: null, dateEvident: null,
@ -112,7 +113,7 @@ const formData = reactive<FormData>({
}); });
const objectdisciplinary: disciplinaryRef = { const objectdisciplinary: disciplinaryRef = {
Complaint: complaintRef, complaint: complaintRef,
dateInvestigate: dateInvestigateRef, dateInvestigate: dateInvestigateRef,
dateAllegation: dateAllegationRef, dateAllegation: dateAllegationRef,
dateEvident: dateEvidentRef, dateEvident: dateEvidentRef,
@ -189,7 +190,7 @@ const clickBack = () => {
router.push(`/discipline/disciplinary`); router.push(`/discipline/disciplinary`);
}; };
watch(props.data, async () => { watch(props.data, async () => {
formData.Complaint = props.data.Complaint; formData.complaint = props.data.complaint;
formData.dateInvestigate = props.data.dateInvestigate; formData.dateInvestigate = props.data.dateInvestigate;
formData.dateAllegation = props.data.dateAllegation; formData.dateAllegation = props.data.dateAllegation;
formData.dateEvident = props.data.dateEvident; formData.dateEvident = props.data.dateEvident;
@ -217,18 +218,31 @@ watch(props.data, async () => {
<q-card bordered> <q-card bordered>
<div class="col-12 row q-pa-md"> <div class="col-12 row q-pa-md">
<div class="col-12 row q-col-gutter-md"> <div class="col-12 row q-col-gutter-md">
<q-input <div class="col-12">
class="col-12" <q-select
dense for="#fault"
outlined outlined
v-model="formData.Complaint" dense
for="#Complaint"
ref="complaintRef" ref="complaintRef"
v-model="formData.complaint"
:rules="[(val) => !!val || `${'กรุณาเลือกเรื่องร้องเรียน'}`]"
:options="complaintsOptions"
label="เรื่องร้องเรียน" label="เรื่องร้องเรียน"
hide-bottom-space emit-value
type="textarea" map-options
:rules="[(val:string) => !!val || `${'กรุณากรอกเรื่องร้องเรียน'}`]" option-label="name"
/> option-value="id"
use-input
><template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
ไมอม
</q-item-section>
</q-item>
</template>
</q-select>
</div>
<datepicker <datepicker
menu-class-name="modalfix" menu-class-name="modalfix"
v-model="dateInvestigate" v-model="dateInvestigate"
@ -272,6 +286,7 @@ watch(props.data, async () => {
</q-input> </q-input>
</template> </template>
</datepicker> </datepicker>
<datepicker <datepicker
menu-class-name="modalfix" menu-class-name="modalfix"
ref="dateAllegationRef" ref="dateAllegationRef"
@ -297,9 +312,7 @@ watch(props.data, async () => {
class="col-xs-12 col-sm-4" class="col-xs-12 col-sm-4"
hide-bottom-space hide-bottom-space
:model-value=" :model-value="
dateAllegation != null dateAllegation != null ? date2Thai(dateAllegation) : null
? date2Thai(dateAllegation)
: null
" "
:label="`${'วันที่รับทราบข้อกล่าวหา'}`" :label="`${'วันที่รับทราบข้อกล่าวหา'}`"
:rules="[ :rules="[
@ -318,6 +331,7 @@ watch(props.data, async () => {
</q-input> </q-input>
</template> </template>
</datepicker> </datepicker>
<datepicker <datepicker
menu-class-name="modalfix" menu-class-name="modalfix"
ref="dateEvidentRef" ref="dateEvidentRef"
@ -347,8 +361,7 @@ watch(props.data, async () => {
" "
:label="`${'วันที่สรุปพยานหลักฐาน'}`" :label="`${'วันที่สรุปพยานหลักฐาน'}`"
:rules="[ :rules="[
(val) => (val) => !!val || `${'กรุณาเลือกวันที่สรุปพยานหลักฐาน'}`,
!!val || `${'กรุณาเลือกวันที่สรุปพยานหลักฐาน'}`,
]" ]"
> >
<template v-slot:prepend> <template v-slot:prepend>
@ -362,9 +375,16 @@ watch(props.data, async () => {
</q-input> </q-input>
</template> </template>
</datepicker> </datepicker>
<div class="row col-12"> <div class="row col-12">
<q-card bordered class="row col-12" style="border:1px solid #d6dee1;"> <q-card
<div class="col-xs-12 col-sm-12 text-weight-medium bg-grey-1 q-py-xs q-px-md"> 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"
>
กรรมการ กรรมการ
<q-btn <q-btn
size="12px" size="12px"
@ -389,7 +409,9 @@ watch(props.data, async () => {
:filter="filter" :filter="filter"
:visible-columns="investigateDis.visibleColumnsDirector" :visible-columns="investigateDis.visibleColumnsDirector"
v-model:inputfilter="filter" v-model:inputfilter="filter"
v-model:inputvisible="investigateDis.visibleColumnsDirector" v-model:inputvisible="
investigateDis.visibleColumnsDirector
"
:pagination="initialPagination" :pagination="initialPagination"
:nornmalData="true" :nornmalData="true"
:paging="true" :paging="true"
@ -402,7 +424,10 @@ watch(props.data, async () => {
:key="col.name" :key="col.name"
:props="props" :props="props"
> >
<div v-if="col.name == 'no'" class="table_ellipsis2"> <div
v-if="col.name == 'no'"
class="table_ellipsis2"
>
{{ props.rowIndex + 1 }} {{ props.rowIndex + 1 }}
</div> </div>
<div v-else class="table_ellipsis2"> <div v-else class="table_ellipsis2">
@ -521,8 +546,14 @@ watch(props.data, async () => {
:rules="[(val:string) => !!val || `${'กรุณากรอกรายละเอียดสืบสวนข้อเท็จจริง'}`]" :rules="[(val:string) => !!val || `${'กรุณากรอกรายละเอียดสืบสวนข้อเท็จจริง'}`]"
/> />
<div class="row col-12"> <div class="row col-12">
<q-card bordered class="row col-12" style="border:1px solid #d6dee1;"> <q-card
<div class="col-xs-12 col-sm-12 text-weight-medium bg-grey-1 q-py-xs q-px-md"> 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>
<div class="col-12"><q-separator /></div> <div class="col-12"><q-separator /></div>
@ -560,8 +591,14 @@ watch(props.data, async () => {
</q-card> </q-card>
</div> </div>
<div class="row col-12"> <div class="row col-12">
<q-card bordered class="row col-12" style="border:1px solid #d6dee1;"> <q-card
<div class="col-xs-12 col-sm-12 text-weight-medium bg-grey-1 q-py-xs q-px-md"> 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>
<div class="col-12"><q-separator /></div> <div class="col-12"><q-separator /></div>
@ -599,8 +636,14 @@ watch(props.data, async () => {
</q-card> </q-card>
</div> </div>
<div class="row col-12"> <div class="row col-12">
<q-card bordered class="row col-12" style="border:1px solid #d6dee1;"> <q-card
<div class="col-xs-12 col-sm-12 text-weight-medium bg-grey-1 q-py-xs q-px-md"> 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>
<div class="col-12"><q-separator /></div> <div class="col-12"><q-separator /></div>

View file

@ -3,7 +3,7 @@ import { onMounted, ref } from "vue";
import { useQuasar } from "quasar"; import { useQuasar } from "quasar";
import { useCounterMixin } from "@/stores/mixin"; import { useCounterMixin } from "@/stores/mixin";
import type { Pagination } from "@/modules/03_recruiting/interface/index/Main"; import type { Pagination } from "@/modules/03_recruiting/interface/index/Main";
import Table from "@/modules/11_discipline/components/3_InvestigateDisciplinary/Table.vue"; import Table from "@/modules/11_discipline/components/3_investigateDisciplinary/Table.vue";
import { useInvestigateDisStore } from "../../store/InvestigateDisStore"; import { useInvestigateDisStore } from "../../store/InvestigateDisStore";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
@ -68,9 +68,6 @@ onMounted(async () => {
await hideLoader(); await hideLoader();
}); });
const clickAdd = () => {
router.push(`/discipline/InvestigateDisciplinary/add`);
};
function openEdit(id:string) { function openEdit(id:string) {
console.log(id) console.log(id)
router.push(`/discipline/disciplinary/${id}`) router.push(`/discipline/disciplinary/${id}`)
@ -93,7 +90,6 @@ function openEdit(id:string) {
v-model:inputvisible="dataInvestigateDis.visibleColumns" v-model:inputvisible="dataInvestigateDis.visibleColumns"
:pagination="initialPagination" :pagination="initialPagination"
:nornmalData="true" :nornmalData="true"
:add="clickAdd"
:paging="true" :paging="true"
:titleText="''" :titleText="''"
> >

View file

@ -1,13 +1,78 @@
<script setup lang="ts">
import { ref, useAttrs } from "vue";
import type { Pagination } from "@/modules/04_registry/interface/index/Main";
const attrs = ref<any>(useAttrs());
const paging = ref<boolean>(true);
const pagination = ref({
// sortBy: "desc",
descending: false,
page: 1,
rowsPerPage: 10,
});
const paginationLabel = (start: string, end: string, total: string) => {
if (paging.value == true) return " " + start + "-" + end + " ใน " + total;
else return start + "-" + end + " ใน " + total;
};
const table = ref<any>(null);
const filterRef = ref<any>(null);
const initialPagination = ref<Pagination>({
rowsPerPage: 0,
});
const props = defineProps({
count: Number,
pass: Number,
notpass: Number,
inputfilter: String,
name: String,
icon: String,
inputvisible: Array,
editvisible: Boolean,
validate: {
type: Function,
default: () => console.log("not function"),
},
nornmalData: {
type: Boolean,
defualt: true,
},
conclude: {
type: Boolean,
defualt: false,
},
});
const emit = defineEmits([
"update:inputfilter",
"update:inputvisible",
"update:editvisible",
]);
const updateInput = (value: string | number | null) => {
emit("update:inputfilter", value);
};
const updateVisible = (value: []) => {
emit("update:inputvisible", value);
};
const resetFilter = () => {
// reset X
emit("update:inputfilter", "");
filterRef.value.focus();
};
</script>
<template> <template>
<div class="q-pb-sm row q-col-gutter-sm"> <div class="q-pb-sm row q-col-gutter-sm">
<!-- --> <!-- -->
<div class="q-gutter-sm" v-if="nornmalData == true"> <div class="q-gutter-sm" v-if="nornmalData == true">
<q-btn <q-btn
to="/discipline/investigate-disciplinary/add"
size="12px" size="12px"
flat flat
round round
color="add" color="add"
@click="checkAdd"
icon="mdi-plus" icon="mdi-plus"
> >
<q-tooltip>เพมขอม</q-tooltip> <q-tooltip>เพมขอม</q-tooltip>
@ -90,78 +155,7 @@
</template> --> </template> -->
</d-table> </d-table>
</template> </template>
<script setup lang="ts">
import { ref, useAttrs } from "vue";
import type { Pagination } from "@/modules/04_registry/interface/index/Main";
const attrs = ref<any>(useAttrs());
const paging = ref<boolean>(true);
const pagination = ref({
// sortBy: "desc",
descending: false,
page: 1,
rowsPerPage: 10,
});
const paginationLabel = (start: string, end: string, total: string) => {
if (paging.value == true) return " " + start + "-" + end + " ใน " + total;
else return start + "-" + end + " ใน " + total;
};
const table = ref<any>(null);
const filterRef = ref<any>(null);
const initialPagination = ref<Pagination>({
rowsPerPage: 0,
});
const props = defineProps({
count: Number,
pass: Number,
notpass: Number,
inputfilter: String,
name: String,
icon: String,
inputvisible: Array,
editvisible: Boolean,
add: {
type: Function,
default: () => console.log("not function"),
},
validate: {
type: Function,
default: () => console.log("not function"),
},
nornmalData: {
type: Boolean,
defualt: true,
},
conclude: {
type: Boolean,
defualt: false,
},
});
const emit = defineEmits([
"update:inputfilter",
"update:inputvisible",
"update:editvisible",
]);
const updateInput = (value: string | number | null) => {
emit("update:inputfilter", value);
};
const updateVisible = (value: []) => {
emit("update:inputvisible", value);
};
const checkAdd = () => {
props.add();
};
const resetFilter = () => {
// reset X
emit("update:inputfilter", "");
filterRef.value.focus();
};
</script>
<style lang="scss"> <style lang="scss">
.icon-color { .icon-color {
color: #4154b3; color: #4154b3;

View file

@ -1,5 +1,5 @@
interface FormData { interface FormData {
Complaint: string; complaint: string;
dateInvestigate: Date | null; dateInvestigate: Date | null;
dateAllegation: Date | null; dateAllegation: Date | null;
dateEvident: Date | null; dateEvident: Date | null;
@ -21,7 +21,7 @@ interface FormData {
} }
interface disciplinaryRef { interface disciplinaryRef {
Complaint: object | null; complaint: object | null;
dateInvestigate: object | null; dateInvestigate: object | null;
dateAllegation: object | null; dateAllegation: object | null;
dateEvident: object | null; dateEvident: object | null;
@ -43,4 +43,4 @@ interface disciplinaryRef {
[key: string]: any; [key: string]: any;
} }
export type { FormData, disciplinaryRef, investigateDisDataRowType }; export type { FormData, disciplinaryRef };

View file

@ -8,11 +8,11 @@ const investigatefactsEdit = () =>
import("@/modules/11_discipline/components/2_InvestigateFacts/EditPage.vue"); import("@/modules/11_discipline/components/2_InvestigateFacts/EditPage.vue");
const disciplinaryMain = () => const disciplinaryMain = () =>
import( import(
"@/modules/11_discipline/components/3_InvestigateDisciplinary/MainPage.vue" "@/modules/11_discipline/components/3_investigateDisciplinary/MainPage.vue"
); );
const disciplinaryEdit = () => const disciplinaryEdit = () =>
import( import(
"@/modules/11_discipline/components/3_InvestigateDisciplinary/EditPage.vue" "@/modules/11_discipline/components/3_investigateDisciplinary/EditPage.vue"
); );
const oredrMain = () => const oredrMain = () =>
import("@/modules/11_discipline/components/4_Order/MainPage.vue"); import("@/modules/11_discipline/components/4_Order/MainPage.vue");
@ -47,7 +47,7 @@ const reportType = () =>
const InvestigateDisciplinaryAdd = () => const InvestigateDisciplinaryAdd = () =>
import( import(
"@/modules/11_discipline/components/3_InvestigateDisciplinary/AddPage.vue" "@/modules/11_discipline/components/3_investigateDisciplinary/AddPage.vue"
); );
const orderPage = () => const orderPage = () =>
import("@/modules/11_discipline/components/4_Order/OrderPage.vue"); import("@/modules/11_discipline/components/4_Order/OrderPage.vue");
@ -204,8 +204,8 @@ export default [
}, },
}, },
{ {
path: "/discipline/InvestigateDisciplinary/add", path: "/discipline/investigate-disciplinary/add",
name: "/discipline-InvestigateDisciplinaryAdd", name: "discipline_investigate_disciplinary_add",
component: InvestigateDisciplinaryAdd, component: InvestigateDisciplinaryAdd,
meta: { meta: {
Auth: true, Auth: true,