Merge branch 'develop' into develop-tee
This commit is contained in:
commit
27b966291c
8 changed files with 826 additions and 80 deletions
|
|
@ -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) => {
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
// }
|
||||
// });
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue