Merge branch 'develop' into develop-tee

This commit is contained in:
setthawutttty 2023-07-05 10:01:05 +07:00
commit 27b966291c
8 changed files with 826 additions and 80 deletions

View file

@ -527,8 +527,8 @@ const OriginalDataFetch = async () => {
//
const redirectToPage = (id?: number) => {
// router.push({ name: 'placementDetail'});
// router.push(`/placement/order/detail`);
router.push({ name: "placementDetail" });
router.push(`/placement/order/detail`);
};
const clickDelete = (id: string) => {

View file

@ -370,7 +370,7 @@
</div>
<q-separator />
<div class="flex justify-end q-pa-sm q-gutter-sm">
<q-btn unelevated label="บันทึก" color="public" @click="next"
<q-btn unelevated label="บันทึก" color="public" @click="submit"
><!-- icon="mdi-content-save-outline"
<q-tooltip>นท</q-tooltip> -->
</q-btn>
@ -497,10 +497,12 @@ const filterSelector = (val: any, update: Function, filtername: string) => {
};
const submit = async () => {
await myForm.value!.validate().then((result: boolean) => {
if (result == false) {
}
});
next();
// await myForm.value!.validate().then((result: boolean) => {
// if (result) {
// next();
// }
// });
};
/**

View file

@ -92,7 +92,7 @@
:outlined="true"
dense
lazy-rules
v-model="filter"
v-model="props.row.mutiselect"
:rules="[(val:any) => !!val || `${'กรุณาเลือกช่องทางการส่งสำเนา'}`,(val:any) => val.length > 0 || `${'กรุณาเลือกช่องทางการส่งสำเนา'}`]"
:label="`${'เลือกช่องทางการส่งสำเนา'}`"
emit-value
@ -359,6 +359,7 @@ const { dialogMessage, messageError, showLoader, hideLoader } = mixin;
const myForm = ref<QForm>();
const filterRef = ref<QInput>();
const filter = ref<string>("");
const mutiselect = ref([]);
const modal = ref<boolean>(false);
const search = ref<string>("");
const expanded = ref<string[]>([]);
@ -366,6 +367,7 @@ const selected = ref<string>("");
const nodesTree = ref<treeTab[]>([]);
const send = ref<String[]>([]);
const selectedModal = ref([]);
const test = ref([]);
const filterModal = ref<string>("");
const visibleColumnsModal = ref<String[]>(["no", "idcard", "name"]);
const columnsModal = [
@ -519,7 +521,7 @@ const columns = [
},
];
const rows = [
const rows = ref([
{
no: "0ac56905-1a74-4606-a120-233340adde95",
name: "นางนัทธ์ เหล่าสกุล",
@ -527,6 +529,7 @@ const rows = [
send: "",
position: "ผู้อำนวยการ",
agency: "กลุ่มงานช่วยบริหาร",
mutiselect: [],
},
{
no: "0de607a0-b094-4a6d-9e30-979343ab5e53",
@ -535,6 +538,7 @@ const rows = [
send: "",
position: "นักจัดการทั่วไป",
agency: "กลุ่มงานช่วยบริหาร",
mutiselect: [],
},
{
no: "93ca7366-2a35-4f94-a331-9c23c9ea78d3",
@ -543,6 +547,7 @@ const rows = [
send: "",
position: "นักจัดการทั่วไป",
agency: "กลุ่มงานช่วยบริหาร",
mutiselect: [],
},
{
no: "d3777c19-2bd0-42df-90ce-c3eeeee55ac6",
@ -551,6 +556,7 @@ const rows = [
send: "",
position: "นักจัดการทั่วไป",
agency: "กลุ่มงานช่วยบริหาร",
mutiselect: [],
},
{
no: "1ccead6f-a851-4291-b3ab-a20757ecddbd",
@ -559,6 +565,7 @@ const rows = [
send: "",
position: "นักจัดการทั่วไป",
agency: "กลุ่มงานช่วยบริหาร",
mutiselect: [],
},
{
no: "1ccead6f-a851-4291-b3ab-a20757ecddbd",
@ -567,6 +574,7 @@ const rows = [
send: "",
position: "นิติกร",
agency: "กลุ่มงานนิติกร",
mutiselect: [],
},
{
no: "1ccead6f-a851-4291-b3ab-a20757ecddbd",
@ -575,6 +583,7 @@ const rows = [
send: "",
position: "นิติกร",
agency: "กลุ่มงานนิติกร",
mutiselect: [],
},
{
no: "1ccead6f-a851-4291-b3ab-a20757ecddbd",
@ -583,6 +592,7 @@ const rows = [
send: "",
position: "นิติกร",
agency: "กลุ่มงานนิติกร",
mutiselect: [],
},
{
no: "1ccead6f-a851-4291-b3ab-a20757ecddbd",
@ -591,6 +601,7 @@ const rows = [
send: "",
position: "นิติกร",
agency: "กลุ่มงานนิติกร",
mutiselect: [],
},
{
no: "1ccead6f-a851-4291-b3ab-a20757ecddbd",
@ -599,6 +610,7 @@ const rows = [
send: "",
position: "นิติกร",
agency: "กลุ่มงานนิติกร",
mutiselect: [],
},
{
no: "1ccead6f-a851-4291-b3ab-a20757ecddbd",
@ -607,8 +619,9 @@ const rows = [
send: "",
position: "นิติกร",
agency: "กลุ่มงานนิติกร",
mutiselect: [],
},
];
]);
onMounted(async () => {
await nodeTree();

View file

@ -132,40 +132,146 @@
</template>
<template v-slot:after>
<div class="q-pa-md">
<fieldset class="border q-pa-lg">
<legend class="text-header">ปโหลดไฟล</legend>
<q-form ref="myForm">
<div>
<label class="text-file">คำส</label>
<q-file
outlined
v-model="fileOrder"
label="เลือกไฟล์คำสั่ง"
lazy-rules
:rules="[(val) => val || 'กรุณาเลือกไฟล์เอกสารแนบท้าย']"
>
<template v-slot:prepend>
<q-icon name="attach_file" />
</template>
</q-file>
<div class="q-py-lg" />
<label class="text-file">เอกสารแนบทาย</label>
<q-file
outlined
v-model="fileTailer"
label="เลือกไฟล์เอกสารแนบท้าย"
lazy-rules
:rules="[(val) => val || 'กรุณาเลือกไฟล์เอกสารแนบท้าย']"
>
<template v-slot:prepend>
<q-icon name="attach_file" />
</template>
</q-file>
<q-form ref="myForm">
<div class="q-pa-md q-gutter-y-md">
<fieldset class="border q-pa-lg">
<legend class="text-header">ปโหลดไฟล</legend>
<div class="q-gutter-y-lg">
<div>
<label class="text-file">คำส</label>
<q-file
outlined
dense
v-model="fileOrder"
label="เลือกไฟล์คำสั่ง"
lazy-rules
:rules="[(val) => val || 'กรุณาเลือกไฟล์เอกสารแนบท้าย']"
>
<template v-slot:prepend>
<q-icon name="attach_file" />
</template>
</q-file>
</div>
<!-- <div class="q-py-lg" /> -->
<div>
<label class="text-file">เอกสารแนบทาย</label>
<q-file
outlined
dense
v-model="fileTailer"
label="เลือกไฟล์เอกสารแนบท้าย"
lazy-rules
:rules="[(val) => val || 'กรุณาเลือกไฟล์เอกสารแนบท้าย']"
>
<template v-slot:prepend>
<q-icon name="attach_file" />
</template>
</q-file>
</div>
</div>
</q-form>
</fieldset>
</div>
</fieldset>
<fieldset class="border q-pa-lg">
<legend class="text-header">รายละเอยด</legend>
<div class="q-gutter-y-md">
<div>
<label class="text-file">เลขทคำส</label>
<q-input
:outlined="true"
dense
lazy-rules
:readonly="!true"
:borderless="!true"
v-model="order"
:rules="[(val) => !!val || `${'กรุณากรอกเลขที่คำสั่ง'}`]"
hide-bottom-space
:label="`${'เลขที่คำสั่ง'}`"
/>
</div>
<div>
<label class="text-file">ออกคำส</label>
<datepicker
menu-class-name="modalfix"
v-model="years"
:locale="'th'"
autoApply
year-picker
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
outlined
dense
lazy-rules
:model-value="years + 543"
:rules="[
(val) => !!val || `${'กรุณาเลือกปีที่ออกคำสั่ง'}`,
]"
hide-bottom-space
:label="`${'ปีที่ออกคำสั่ง'}`"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-grey)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
</div>
<div>
<label class="text-file">นทลงนาม</label>
<datepicker
menu-class-name="modalfix"
v-model="date"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }">
{{ year + 543 }}
</template>
<template #year-overlay-value="{ value }">
{{ parseInt(value + 543) }}
</template>
<template #trigger>
<q-input
outlined
dense
class="full-width datepicker"
:model-value="date != null ? date2Thai(date) : null"
:label="`${'วันที่มีผลออกคำสั่ง'}`"
:rules="[
(val) =>
!!val || `${'กรุณาเลือกวันที่มีผลออกคำสั่ง'}`,
]"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-grey)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
</div>
</div>
</fieldset>
</div>
</q-form>
</template>
</q-splitter>
</div>
@ -181,9 +287,13 @@
label="เลือกรายชื่อส่งสำเนา"
>
</q-btn>
<q-btn unelevated label="บันทึก" color="public" @click="save">
<!-- icon="mdi-content-save-outline"
<q-tooltip>นท</q-tooltip> -->
<q-btn
unelevated
label="บันทึก"
:color="validateForm() ? 'public' : 'grey'"
:disable="!validateForm()"
@click="save"
>
</q-btn>
<!-- <q-btn flat round color="primary" icon="chevron_right" @click="next">
@ -193,37 +303,42 @@
</div>
</template>
<script setup lang="ts">
import { ref, onMounted, onUnmounted } from "vue";
import { ref, onMounted, onUnmounted, computed } from "vue";
import { VuePDF, usePDF } from "@tato30/vue-pdf";
import type { PDFDocumentLoadingTask } from "pdfjs-dist/types/src/display/api";
import type { QForm } from "quasar";
import { useCounterMixin } from "@/stores/mixin";
onUnmounted(() => {
window.removeEventListener("resize", (e: any) => {
myEventHandler(e);
});
});
const mixin = useCounterMixin();
const { date2Thai } = mixin;
// onUnmounted(() => {
// window.removeEventListener("resize", (e: any) => {
// myEventHandler(e);
// });
// });
onMounted(async () => {
window.addEventListener("resize", (e: any) => {
myEventHandler(e);
});
// window.addEventListener("resize", (e: any) => {
// myEventHandler(e);
// });
const pdfData = usePDF(
"https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/web/compressed.tracemonkey-pldi-09.pdf"
);
console.log("pdfData.pages.value", pdfData);
console.log("pdfData.pages.value", pdfData.pages);
console.log("pdfData.pages.value", pdfData.pages.value);
setTimeout(() => {
pdfSrc.value = pdfData.pdf.value;
numOfPages.value = pdfData.pages.value;
}, 1000);
});
const myEventHandler = (e: any) => {
console.log("e", e.target.innerWidth);
// if (vuePDFRef !== null) {
// vuePDFRef.value.reload();
// }
};
// const myEventHandler = (e: any) => {
// console.log("e", e.target.innerWidth);
// if (vuePDFRef !== null) {
// vuePDFRef.value.reload();
// }
// };
const pdfSrc = ref<PDFDocumentLoadingTask | undefined>();
const numOfPages = ref<number>(0);
@ -251,6 +366,10 @@ const tab = ref<string>("main");
const fileOrder = ref<any>(null);
const fileTailer = ref<any>(null);
const order = ref<string>("");
const years = ref<number>(new Date().getFullYear());
const date = ref<Date>(new Date());
const onchangePage = (val: any) => {
// console.log(val);
if (vuePDFRef !== null) {
@ -259,7 +378,7 @@ const onchangePage = (val: any) => {
};
const save = () => {
if (myForm !== null) {
if (myForm.value !== null) {
myForm.value!.validate().then((success: Boolean) => {
if (success) {
// yay, models are correct
@ -268,6 +387,14 @@ const save = () => {
}
};
const validateForm = () => {
return (
fileOrder.value !== null &&
fileOrder.value !== null &&
order.value.trim() !== ""
);
};
const getClass = (val: boolean) => {
return {
"card-header-active q-px-lg q-py-md cursor-pointer": val,