comment build error

This commit is contained in:
DESKTOP-2S5P7D1\Windows 10 2023-09-05 17:31:23 +07:00
parent 6e6caf4a1b
commit 7110b3dfc3

View file

@ -8,7 +8,7 @@ import { useQuasar } from "quasar";
import { useRoute } from "vue-router"; import { useRoute } from "vue-router";
import http from "@/plugins/http"; import http from "@/plugins/http";
import config from "@/app.config"; import config from "@/app.config";
import { aW } from "@fullcalendar/core/internal-common"; // import { aW } from "@fullcalendar/core/internal-common";
const mixin = useCounterMixin(); const mixin = useCounterMixin();
const { const {
@ -48,11 +48,11 @@ const orderStatusName = ref<string>("");
const orderId = ref<string>(orderId_params.toString()); const orderId = ref<string>(orderId_params.toString());
onMounted(async () => { onMounted(async () => {
if (orderId.value) { if (orderId.value) {
showLoader() showLoader();
await fetchAttachment(orderId.value); await fetchAttachment(orderId.value);
await fecthstatusOrder(); await fecthstatusOrder();
await getCommandDetail(); await getCommandDetail();
hideLoader() hideLoader();
} }
}); });
@ -69,20 +69,22 @@ const getCommandDetail = async () => {
fetchReportCover("pdf", orderId.value); fetchReportCover("pdf", orderId.value);
if (code.value != 'c-pm-10' && if (
code.value != 'c-pm-11' && code.value != "c-pm-10" &&
code.value != 'c-pm-12' && code.value != "c-pm-11" &&
code.value != 'c-pm-16' && code.value != "c-pm-12" &&
code.value != 'c-pm-18' && code.value != "c-pm-16" &&
code.value != 'c-pm-19' && code.value != "c-pm-18" &&
code.value != 'c-pm-20' && code.value != "c-pm-19" &&
code.value != 'c-pm-21') { code.value != "c-pm-20" &&
code.value != "c-pm-21"
) {
fetchReportAttachment("pdf", orderId.value); fetchReportAttachment("pdf", orderId.value);
} }
}) })
.catch((e) => { .catch((e) => {
messageError($q, e); messageError($q, e);
}) });
}; };
const downloadCover = async (type: string) => { const downloadCover = async (type: string) => {
@ -132,7 +134,7 @@ const fetchReportCover = async (type: string, orderId: string) => {
}) })
.catch((e) => { .catch((e) => {
messageError($q, e); messageError($q, e);
}) });
}; };
const fetchReportAttachment = async (type: string, orderId: string) => { const fetchReportAttachment = async (type: string, orderId: string) => {
@ -147,7 +149,7 @@ const fetchReportAttachment = async (type: string, orderId: string) => {
}) })
.catch((e) => { .catch((e) => {
messageError($q, e); messageError($q, e);
}) });
}; };
// Fetch file upload & detail // Fetch file upload & detail
@ -171,7 +173,7 @@ const fetchAttachment = async (orderId: string) => {
}) })
.catch((e) => { .catch((e) => {
messageError($q, e); messageError($q, e);
}) });
}; };
const fecthstatusOrder = async () => { const fecthstatusOrder = async () => {
@ -261,21 +263,23 @@ const saveUpload = () => {
myFormUpload.value!.validate().then((success: Boolean) => { myFormUpload.value!.validate().then((success: Boolean) => {
if (success) { if (success) {
dialogConfirm($q, async () => { dialogConfirm($q, async () => {
showLoader() showLoader();
await postfileOrder(); await postfileOrder();
if (code.value != 'c-pm-10' && if (
code.value != 'c-pm-11' && code.value != "c-pm-10" &&
code.value != 'c-pm-12' && code.value != "c-pm-11" &&
code.value != 'c-pm-16' && code.value != "c-pm-12" &&
code.value != 'c-pm-18' && code.value != "c-pm-16" &&
code.value != 'c-pm-19' && code.value != "c-pm-18" &&
code.value != 'c-pm-20' && code.value != "c-pm-19" &&
code.value != 'c-pm-21') { code.value != "c-pm-20" &&
code.value != "c-pm-21"
) {
await postfileTailer(); await postfileTailer();
} }
await fetchAttachment(orderId.value); await fetchAttachment(orderId.value);
await fecthstatusOrder(); await fecthstatusOrder();
hideLoader() hideLoader();
}); });
} }
}); });
@ -323,8 +327,8 @@ const postfileOrder = async () => {
success($q, "บันทึกข้อมูลสำเร็จ"); success($q, "บันทึกข้อมูลสำเร็จ");
}) })
.catch((e) => { .catch((e) => {
messageError($q, e) messageError($q, e);
}) });
}; };
const postfileTailer = async () => { const postfileTailer = async () => {
@ -336,15 +340,15 @@ const postfileTailer = async () => {
success($q, "บันทึกข้อมูลสำเร็จ"); success($q, "บันทึกข้อมูลสำเร็จ");
}) })
.catch((e) => { .catch((e) => {
messageError($q, e) messageError($q, e);
}) });
}; };
const clickExecute = async (id: string) => { const clickExecute = async (id: string) => {
dialogConfirm( dialogConfirm(
$q, $q,
async () => { async () => {
showLoader() showLoader();
await http await http
.put(config.API.executeOrder(id)) .put(config.API.executeOrder(id))
.then((res) => { .then((res) => {
@ -352,11 +356,12 @@ const clickExecute = async (id: string) => {
}) })
.catch((e) => { .catch((e) => {
messageError($q, e); messageError($q, e);
}).finally(async () => {
await fecthstatusOrder()
await getCommandDetail()
hideLoader();
}) })
.finally(async () => {
await fecthstatusOrder();
await getCommandDetail();
hideLoader();
});
}, },
"ยืนยันการออกคำสั่ง", "ยืนยันการออกคำสั่ง",
"ต้องการยืนยันการออกคำสั่งนี้ใช่หรือไม่?" "ต้องการยืนยันการออกคำสั่งนี้ใช่หรือไม่?"
@ -364,14 +369,18 @@ const clickExecute = async (id: string) => {
}; };
const validateFormUpload = () => { const validateFormUpload = () => {
if (code.value != 'c-pm-10' && if (
code.value != 'c-pm-11' && code.value != "c-pm-10" &&
code.value != 'c-pm-12' && code.value != "c-pm-11" &&
code.value != 'c-pm-16' && code.value != "c-pm-12" &&
code.value != 'c-pm-18' && code.value != "c-pm-16" &&
code.value != 'c-pm-19' && code.value != "c-pm-18" &&
code.value != 'c-pm-20' && code.value != "c-pm-19" &&
code.value != 'c-pm-21' && fileOrder.value !== null && fileTailer.value !== null) { code.value != "c-pm-20" &&
code.value != "c-pm-21" &&
fileOrder.value !== null &&
fileTailer.value !== null
) {
return true; return true;
} else if (fileOrder.value !== null) { } else if (fileOrder.value !== null) {
return true; return true;
@ -382,9 +391,7 @@ const validateFormUpload = () => {
const validateForm = () => { const validateForm = () => {
return ( return (
order.value.trim() !== "" && order.value.trim() !== "" && years.value !== null && date.value !== null
years.value !== null &&
date.value !== null
); );
}; };
@ -410,61 +417,108 @@ const viewFileUpload = async (url: string) => {
<template> <template>
<div> <div>
<div style="min-height: 70vh"> <div style="min-height: 70vh">
<q-splitter v-model="splitterModel" style="height: 70vh" @update:model-value="onchangePage"> <q-splitter
v-model="splitterModel"
style="height: 70vh"
@update:model-value="onchangePage"
>
<template v-slot:before> <template v-slot:before>
<div class="space"> <div class="space">
<div @click="setTab('main')" :class="getClass(tab == 'main')"> <div @click="setTab('main')" :class="getClass(tab == 'main')">
<div class="q-pr-sm">คำส</div> <div class="q-pr-sm">คำส</div>
<q-btn v-if="orderStatusName != 'ออกคำสั่งแล้ว'" size="12px" flat dense icon="mdi-download" <q-btn
:disable="tab !== 'main'" :color="tab !== 'main' ? 'grey' : 'add'"> v-if="orderStatusName != 'ออกคำสั่งแล้ว'"
size="12px"
flat
dense
icon="mdi-download"
:disable="tab !== 'main'"
:color="tab !== 'main' ? 'grey' : 'add'"
>
<q-tooltip>ดาวนโหลด</q-tooltip> <q-tooltip>ดาวนโหลด</q-tooltip>
<q-menu> <q-menu>
<q-list style="min-width: 150px"> <q-list style="min-width: 150px">
<q-item clickable v-close-popup @click="downloadCover('pdf')"> <q-item
clickable
v-close-popup
@click="downloadCover('pdf')"
>
<!-- type="a" <!-- type="a"
:href="orderCoverPdf" :href="orderCoverPdf"
target="_blank" --> target="_blank" -->
<q-item-section avatar><q-icon color="red" name="mdi-file-pdf" /></q-item-section> <q-item-section avatar
><q-icon color="red" name="mdi-file-pdf"
/></q-item-section>
<q-item-section>ไฟล .PDF</q-item-section> <q-item-section>ไฟล .PDF</q-item-section>
</q-item> </q-item>
<q-item clickable v-close-popup @click="downloadCover('docx')"> <q-item
clickable
v-close-popup
@click="downloadCover('docx')"
>
<!-- type="a" <!-- type="a"
:href="orderCoverDocs" :href="orderCoverDocs"
target="_blank" --> target="_blank" -->
<q-item-section avatar><q-icon color="blue" name="mdi-file-word" /></q-item-section> <q-item-section avatar
><q-icon color="blue" name="mdi-file-word"
/></q-item-section>
<q-item-section>ไฟล .docx</q-item-section> <q-item-section>ไฟล .docx</q-item-section>
</q-item> </q-item>
</q-list> </q-list>
</q-menu> </q-menu>
</q-btn> </q-btn>
</div> </div>
<div v-if="code != 'c-pm-10' && <div
code != 'c-pm-11' && v-if="
code != 'c-pm-12' && code != 'c-pm-10' &&
code != 'c-pm-16' && code != 'c-pm-11' &&
code != 'c-pm-18' && code != 'c-pm-12' &&
code != 'c-pm-19' && code != 'c-pm-16' &&
code != 'c-pm-20' && code != 'c-pm-18' &&
code != 'c-pm-21' code != 'c-pm-19' &&
" @click="setTab('second')" :class="getClass(tab == 'second')"> code != 'c-pm-20' &&
code != 'c-pm-21'
"
@click="setTab('second')"
:class="getClass(tab == 'second')"
>
<div class="q-pr-sm">เอกสารแนบทาย</div> <div class="q-pr-sm">เอกสารแนบทาย</div>
<q-btn v-if="orderStatusName != 'ออกคำสั่งแล้ว'" size="12px" flat dense <q-btn
:color="tab !== 'second' ? 'grey' : 'add'" icon="mdi-download" :disable="tab !== 'second'"> v-if="orderStatusName != 'ออกคำสั่งแล้ว'"
size="12px"
flat
dense
:color="tab !== 'second' ? 'grey' : 'add'"
icon="mdi-download"
:disable="tab !== 'second'"
>
<q-tooltip>ดาวนโหลด</q-tooltip> <q-tooltip>ดาวนโหลด</q-tooltip>
<q-menu> <q-menu>
<q-list style="min-width: 150px"> <q-list style="min-width: 150px">
<q-item clickable v-close-popup @click="downloadAttachment('pdf')"> <q-item
clickable
v-close-popup
@click="downloadAttachment('pdf')"
>
<!-- type="a" <!-- type="a"
:href="orderAttachmentPdf" :href="orderAttachmentPdf"
target="_blank" --> target="_blank" -->
<q-item-section avatar><q-icon color="red" name="mdi-file-pdf" /></q-item-section> <q-item-section avatar
><q-icon color="red" name="mdi-file-pdf"
/></q-item-section>
<q-item-section>ไฟล .PDF</q-item-section> <q-item-section>ไฟล .PDF</q-item-section>
</q-item> </q-item>
<q-item clickable v-close-popup @click="downloadAttachment('xlsx')"> <q-item
clickable
v-close-popup
@click="downloadAttachment('xlsx')"
>
<!-- type="a" <!-- type="a"
:href="orderAttachmentXlsx" :href="orderAttachmentXlsx"
target="_blank" --> target="_blank" -->
<q-item-section avatar><q-icon color="green-7" name="mdi-file-excel" /></q-item-section> <q-item-section avatar
><q-icon color="green-7" name="mdi-file-excel"
/></q-item-section>
<q-item-section>ไฟล .xls</q-item-section> <q-item-section>ไฟล .xls</q-item-section>
</q-item> </q-item>
</q-list> </q-list>
@ -472,12 +526,24 @@ const viewFileUpload = async (url: string) => {
</q-btn> </q-btn>
</div> </div>
<q-space /> <q-space />
<q-btn class="text-dark" flat dense icon="mdi-fullscreen" color="add" @click="dialog = true" /> <q-btn
class="text-dark"
flat
dense
icon="mdi-fullscreen"
color="add"
@click="dialog = true"
/>
</div> </div>
<q-separator style="margin-top: -1px; z-index: 1" /> <q-separator style="margin-top: -1px; z-index: 1" />
<q-card bordered class="card-pdf q-ma-md q-pa-md"> <q-card bordered class="card-pdf q-ma-md q-pa-md">
<div class="justify-between items-center align-center q-pb-sm row"> <div class="justify-between items-center align-center q-pb-sm row">
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page > 1 ? page - 1 : page"> <q-btn
class="text-dark bg-grey-4"
flat
dense
@click="page = page > 1 ? page - 1 : page"
>
<q-icon name="mdi-chevron-left" /> <q-icon name="mdi-chevron-left" />
</q-btn> </q-btn>
@ -485,7 +551,12 @@ const viewFileUpload = async (url: string) => {
หนาท {{ page }} จาก {{ numOfPages }} หนาท {{ page }} จาก {{ numOfPages }}
</span> </span>
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page < numOfPages ? page + 1 : page"> <q-btn
class="text-dark bg-grey-4"
flat
dense
@click="page = page < numOfPages ? page + 1 : page"
>
<q-icon name="mdi-chevron-right" /> <q-icon name="mdi-chevron-right" />
</q-btn> </q-btn>
</div> </div>
@ -494,7 +565,12 @@ const viewFileUpload = async (url: string) => {
<!-- <VuePdf :key="page" :src="pdfSrc" :page="page" /> --> <!-- <VuePdf :key="page" :src="pdfSrc" :page="page" /> -->
</div> </div>
<div class="justify-between items-center align-center q-pt-sm row"> <div class="justify-between items-center align-center q-pt-sm row">
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page > 1 ? page - 1 : page"> <q-btn
class="text-dark bg-grey-4"
flat
dense
@click="page = page > 1 ? page - 1 : page"
>
<q-icon name="mdi-chevron-left" /> <q-icon name="mdi-chevron-left" />
</q-btn> </q-btn>
@ -502,7 +578,12 @@ const viewFileUpload = async (url: string) => {
หนาท {{ page }} จาก {{ numOfPages }} หนาท {{ page }} จาก {{ numOfPages }}
</span> </span>
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page < numOfPages ? page + 1 : page"> <q-btn
class="text-dark bg-grey-4"
flat
dense
@click="page = page < numOfPages ? page + 1 : page"
>
<q-icon name="mdi-chevron-right" /> <q-icon name="mdi-chevron-right" />
</q-btn> </q-btn>
</div> </div>
@ -510,7 +591,12 @@ const viewFileUpload = async (url: string) => {
</template> </template>
<template v-slot:separator> <template v-slot:separator>
<q-avatar color="primary" text-color="white" size="30px" icon="drag_indicator" /> <q-avatar
color="primary"
text-color="white"
size="30px"
icon="drag_indicator"
/>
</template> </template>
<template v-slot:after> <template v-slot:after>
@ -522,47 +608,94 @@ const viewFileUpload = async (url: string) => {
<div> <div>
<label class="text-file">คำส</label> <label class="text-file">คำส</label>
<div v-if="OrderPDFUpload != ''" class="text-right"> <div v-if="OrderPDFUpload != ''" class="text-right">
<q-btn size="12px" flat dense color="primary" icon="mdi-eye" <q-btn
@click="viewFileUpload(OrderPDFUpload)"> size="12px"
flat
dense
color="primary"
icon="mdi-eye"
@click="viewFileUpload(OrderPDFUpload)"
>
<q-tooltip>ไฟลคำส</q-tooltip> <q-tooltip>ไฟลคำส</q-tooltip>
</q-btn> </q-btn>
<q-btn type="a" :href="OrderPDFUpload" size="12px" flat dense color="red" icon="mdi-download" <q-btn
target="_blank"> type="a"
:href="OrderPDFUpload"
size="12px"
flat
dense
color="red"
icon="mdi-download"
target="_blank"
>
<q-tooltip>ดาวนโหลดไฟลคำส</q-tooltip> <q-tooltip>ดาวนโหลดไฟลคำส</q-tooltip>
</q-btn> </q-btn>
</div> </div>
<q-file v-if="orderStatusName != 'ออกคำสั่งแล้ว'" outlined dense v-model="fileOrder" <q-file
label="เลือกไฟล์คำสั่ง" hide-bottom-space lazy-rules v-if="orderStatusName != 'ออกคำสั่งแล้ว'"
:rules="[(val) => val || 'กรุณาเลือกไฟล์ไฟล์คำสั่ง']" accept=".pdf"> outlined
dense
v-model="fileOrder"
label="เลือกไฟล์คำสั่ง"
hide-bottom-space
lazy-rules
:rules="[(val) => val || 'กรุณาเลือกไฟล์ไฟล์คำสั่ง']"
accept=".pdf"
>
<template v-slot:prepend> <template v-slot:prepend>
<q-icon name="attach_file" /> <q-icon name="attach_file" />
</template> </template>
</q-file> </q-file>
</div> </div>
<div v-if="code != 'c-pm-10' && <div
code != 'c-pm-11' && v-if="
code != 'c-pm-12' && code != 'c-pm-10' &&
code != 'c-pm-16' && code != 'c-pm-11' &&
code != 'c-pm-18' && code != 'c-pm-12' &&
code != 'c-pm-19' && code != 'c-pm-16' &&
code != 'c-pm-20' && code != 'c-pm-18' &&
code != 'c-pm-21' code != 'c-pm-19' &&
"> code != 'c-pm-20' &&
code != 'c-pm-21'
"
>
<label class="text-file">เอกสารแนบทาย</label> <label class="text-file">เอกสารแนบทาย</label>
<div v-if="TailerPDFUpload != ''" class="text-right"> <div v-if="TailerPDFUpload != ''" class="text-right">
<q-btn size="12px" flat dense color="primary" icon="mdi-eye" <q-btn
@click="viewFileUpload(TailerPDFUpload)"> size="12px"
flat
dense
color="primary"
icon="mdi-eye"
@click="viewFileUpload(TailerPDFUpload)"
>
<q-tooltip>เอกสารแนบทาย</q-tooltip> <q-tooltip>เอกสารแนบทาย</q-tooltip>
</q-btn> </q-btn>
<q-btn type="a" :href="TailerPDFUpload" size="12px" flat dense color="red" icon="mdi-download" <q-btn
target="_blank"> type="a"
:href="TailerPDFUpload"
size="12px"
flat
dense
color="red"
icon="mdi-download"
target="_blank"
>
<q-tooltip>ดาวนโหลดเอกสารแนบทาย</q-tooltip> <q-tooltip>ดาวนโหลดเอกสารแนบทาย</q-tooltip>
</q-btn> </q-btn>
</div> </div>
<q-file v-if="orderStatusName != 'ออกคำสั่งแล้ว'" outlined dense v-model="fileTailer" <q-file
label="เลือกไฟล์เอกสารแนบท้าย" hide-bottom-space lazy-rules v-if="orderStatusName != 'ออกคำสั่งแล้ว'"
:rules="[(val) => val || 'กรุณาเลือกไฟล์เอกสารแนบท้าย']" accept=".pdf"> outlined
dense
v-model="fileTailer"
label="เลือกไฟล์เอกสารแนบท้าย"
hide-bottom-space
lazy-rules
:rules="[(val) => val || 'กรุณาเลือกไฟล์เอกสารแนบท้าย']"
accept=".pdf"
>
<template v-slot:prepend> <template v-slot:prepend>
<q-icon name="attach_file" /> <q-icon name="attach_file" />
</template> </template>
@ -570,14 +703,28 @@ const viewFileUpload = async (url: string) => {
</div> </div>
<!-- นทกอพโหลดเอกสาร --> <!-- นทกอพโหลดเอกสาร -->
<div v-if="orderStatusName != 'ออกคำสั่งแล้ว'" class="row col-12 q-mt-md"> <div
v-if="orderStatusName != 'ออกคำสั่งแล้ว'"
class="row col-12 q-mt-md"
>
<q-space></q-space> <q-space></q-space>
<q-btn unelevated label="บันทึก" <q-btn
:color="validateFormUpload() && orderStatusName != 'ออกคำสั่งแล้ว' ? 'public' : 'grey'" unelevated
:disable="!validateFormUpload() || orderStatusName == 'ออกคำสั่งแล้ว'" @click="saveUpload"> label="บันทึก"
:color="
validateFormUpload() &&
orderStatusName != 'ออกคำสั่งแล้ว'
? 'public'
: 'grey'
"
:disable="
!validateFormUpload() ||
orderStatusName == 'ออกคำสั่งแล้ว'
"
@click="saveUpload"
>
</q-btn> </q-btn>
</div> </div>
</div> </div>
</fieldset> </fieldset>
</q-form> </q-form>
@ -588,25 +735,54 @@ const viewFileUpload = async (url: string) => {
<div class="q-gutter-y-md q-mb-md"> <div class="q-gutter-y-md q-mb-md">
<div> <div>
<label class="text-file">เลขทคำส</label> <label class="text-file">เลขทคำส</label>
<q-input :outlined="true" dense lazy-rules :readonly="!true" :borderless="!true" v-model="order" <q-input
:rules="[(val) => !!val || `${'กรุณากรอกเลขที่คำสั่ง'}`]" hide-bottom-space :outlined="true"
:label="`${'เลขที่คำสั่ง'}`" :disable="orderStatusName == 'ออกคำสั่งแล้ว'" /> dense
lazy-rules
:readonly="!true"
:borderless="!true"
v-model="order"
:rules="[(val) => !!val || `${'กรุณากรอกเลขที่คำสั่ง'}`]"
hide-bottom-space
:label="`${'เลขที่คำสั่ง'}`"
:disable="orderStatusName == 'ออกคำสั่งแล้ว'"
/>
</div> </div>
<div> <div>
<label class="text-file">ออกคำส</label> <label class="text-file">ออกคำส</label>
<datepicker :disabled="orderStatusName == 'ออกคำสั่งแล้ว'" menu-class-name="modalfix" v-model="years" <datepicker
:locale="'th'" autoApply year-picker :enableTimePicker="false" week-start="0"> :disabled="orderStatusName == 'ออกคำสั่งแล้ว'"
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="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{ <template #year-overlay-value="{ value }">{{
parseInt(value + 543) parseInt(value + 543)
}}</template> }}</template>
<template #trigger> <template #trigger>
<q-input :disable="orderStatusName == 'ออกคำสั่งแล้ว'" outlined dense lazy-rules <q-input
:model-value="years + 543" :rules="[ :disable="orderStatusName == 'ออกคำสั่งแล้ว'"
outlined
dense
lazy-rules
:model-value="years + 543"
:rules="[
(val) => !!val || `${'กรุณาเลือกปีที่ออกคำสั่ง'}`, (val) => !!val || `${'กรุณาเลือกปีที่ออกคำสั่ง'}`,
]" hide-bottom-space :label="`${'ปีที่ออกคำสั่ง'}`"> ]"
hide-bottom-space
:label="`${'ปีที่ออกคำสั่ง'}`"
>
<template v-slot:prepend> <template v-slot:prepend>
<q-icon name="event" class="cursor-pointer" style="color: var(--q-grey)"> <q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-grey)"
>
</q-icon> </q-icon>
</template> </template>
</q-input> </q-input>
@ -615,8 +791,16 @@ const viewFileUpload = async (url: string) => {
</div> </div>
<div> <div>
<label class="text-file">นทลงนาม</label> <label class="text-file">นทลงนาม</label>
<datepicker :disabled="orderStatusName == 'ออกคำสั่งแล้ว'" menu-class-name="modalfix" v-model="date" <datepicker
:locale="'th'" autoApply borderless :enableTimePicker="false" week-start="0"> :disabled="orderStatusName == 'ออกคำสั่งแล้ว'"
menu-class-name="modalfix"
v-model="date"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }"> <template #year="{ year }">
{{ year + 543 }} {{ year + 543 }}
</template> </template>
@ -624,13 +808,24 @@ const viewFileUpload = async (url: string) => {
{{ parseInt(value + 543) }} {{ parseInt(value + 543) }}
</template> </template>
<template #trigger> <template #trigger>
<q-input :disable="orderStatusName == 'ออกคำสั่งแล้ว'" outlined dense <q-input
class="full-width datepicker" hide-bottom-space :disable="orderStatusName == 'ออกคำสั่งแล้ว'"
:model-value="date != null ? date2Thai(date) : null" :label="`${'วันที่ลงนาม'}`" :rules="[ outlined
dense
class="full-width datepicker"
hide-bottom-space
:model-value="date != null ? date2Thai(date) : null"
:label="`${'วันที่ลงนาม'}`"
:rules="[
(val) => !!val || `${'กรุณาเลือกวันที่ลงนาม'}`, (val) => !!val || `${'กรุณาเลือกวันที่ลงนาม'}`,
]"> ]"
>
<template v-slot:prepend> <template v-slot:prepend>
<q-icon name="event" class="cursor-pointer" style="color: var(--q-grey)"> <q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-grey)"
>
</q-icon> </q-icon>
</template> </template>
</q-input> </q-input>
@ -639,31 +834,55 @@ const viewFileUpload = async (url: string) => {
</div> </div>
<!-- นทกรายละเอยดคำส --> <!-- นทกรายละเอยดคำส -->
<div v-if="orderStatusName != 'ออกคำสั่งแล้ว'" class="row col-12 q-mt-md"> <div
v-if="orderStatusName != 'ออกคำสั่งแล้ว'"
class="row col-12 q-mt-md"
>
<q-space></q-space> <q-space></q-space>
<q-btn unelevated label="บันทึก" <q-btn
:color="validateForm() && orderStatusName != 'ออกคำสั่งแล้ว' ? 'public' : 'grey'" unelevated
:disable="!validateForm() || orderStatusName == 'ออกคำสั่งแล้ว'" @click="saveDetail"> label="บันทึก"
:color="
validateForm() && orderStatusName != 'ออกคำสั่งแล้ว'
? 'public'
: 'grey'
"
:disable="
!validateForm() || orderStatusName == 'ออกคำสั่งแล้ว'
"
@click="saveDetail"
>
</q-btn> </q-btn>
</div> </div>
</div> </div>
</fieldset> </fieldset>
</q-form> </q-form>
</div> </div>
</template> </template>
</q-splitter> </q-splitter>
</div> </div>
<q-separator /> <q-separator />
<div class="flex justify-end q-pa-sm q-gutter-sm"> <div class="flex justify-end q-pa-sm q-gutter-sm">
<q-btn v-if="orderStatusName !== 'ออกคำสั่งแล้ว'" dense outline color="primary" icon="chevron_left" <q-btn
@click="previous" class="q-pr-md" label="เลือกรายชื่อส่งสำเนา"> v-if="orderStatusName !== 'ออกคำสั่งแล้ว'"
dense
outline
color="primary"
icon="chevron_left"
@click="previous"
class="q-pr-md"
label="เลือกรายชื่อส่งสำเนา"
>
</q-btn> </q-btn>
<!-- ออกคำส --> <!-- ออกคำส -->
<q-btn v-if="orderStatusName !== 'ออกคำสั่งแล้ว'" :disable="statusOrder == 'N'" unelevated label="ออกคำสั่ง" <q-btn
:color="statusOrder == 'Y' ? 'public' : 'grey'"> v-if="orderStatusName !== 'ออกคำสั่งแล้ว'"
:disable="statusOrder == 'N'"
unelevated
label="ออกคำสั่ง"
:color="statusOrder == 'Y' ? 'public' : 'grey'"
>
<q-menu> <q-menu>
<q-list style="min-width: 150px"> <q-list style="min-width: 150px">
<q-item clickable v-close-popup @click="clickExecute(orderId)"> <q-item clickable v-close-popup @click="clickExecute(orderId)">
@ -676,19 +895,42 @@ const viewFileUpload = async (url: string) => {
</q-menu> </q-menu>
</q-btn> </q-btn>
<q-btn v-else disable unelevated label="ออกคำสั่งเสร็จสิ้น" color="green"></q-btn> <q-btn
v-else
disable
unelevated
label="ออกคำสั่งเสร็จสิ้น"
color="green"
></q-btn>
</div> </div>
<q-dialog v-model="dialog" persistent :maximized="true" transition-show="slide-up" transition-hide="slide-down"> <q-dialog
v-model="dialog"
persistent
:maximized="true"
transition-show="slide-up"
transition-hide="slide-down"
>
<q-card class="bg-white text-white"> <q-card class="bg-white text-white">
<div class="flex justify-end items-center align-center q-mr-md q-mt-sm"> <div class="flex justify-end items-center align-center q-mr-md q-mt-sm">
<q-btn icon="close" unelevated round dense style="color: #ff8080; background-color: #ffdede" size="12px" <q-btn
v-close-popup /> icon="close"
unelevated
round
dense
style="color: #ff8080; background-color: #ffdede"
size="12px"
v-close-popup
/>
</div> </div>
<q-card-section bordered class="card-pdf q-ma-md q-pa-md"> <q-card-section bordered class="card-pdf q-ma-md q-pa-md">
<div class="justify-between items-center align-center q-pb-sm row"> <div class="justify-between items-center align-center q-pb-sm row">
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page > 1 ? page - 1 : page"> <q-btn
class="text-dark bg-grey-4"
flat
dense
@click="page = page > 1 ? page - 1 : page"
>
<q-icon name="mdi-chevron-left" /> <q-icon name="mdi-chevron-left" />
</q-btn> </q-btn>
@ -696,16 +938,32 @@ const viewFileUpload = async (url: string) => {
หนาท {{ page }} จาก {{ numOfPages }} หนาท {{ page }} จาก {{ numOfPages }}
</span> </span>
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page < numOfPages ? page + 1 : page"> <q-btn
class="text-dark bg-grey-4"
flat
dense
@click="page = page < numOfPages ? page + 1 : page"
>
<q-icon name="mdi-chevron-right" /> <q-icon name="mdi-chevron-right" />
</q-btn> </q-btn>
</div> </div>
<div class="pdfWidth"> <div class="pdfWidth">
<VuePDF ref="vuePDFRef" :pdf="pdfSrc" :page="page" fit-parent :scale="0.1" /> <VuePDF
ref="vuePDFRef"
:pdf="pdfSrc"
:page="page"
fit-parent
:scale="0.1"
/>
<!-- <VuePdf :key="page" :src="pdfSrc" :page="page" /> --> <!-- <VuePdf :key="page" :src="pdfSrc" :page="page" /> -->
</div> </div>
<div class="justify-between items-center align-center q-pt-sm row"> <div class="justify-between items-center align-center q-pt-sm row">
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page > 1 ? page - 1 : page"> <q-btn
class="text-dark bg-grey-4"
flat
dense
@click="page = page > 1 ? page - 1 : page"
>
<q-icon name="mdi-chevron-left" /> <q-icon name="mdi-chevron-left" />
</q-btn> </q-btn>
@ -713,7 +971,12 @@ const viewFileUpload = async (url: string) => {
หนาท {{ page }} จาก {{ numOfPages }} หนาท {{ page }} จาก {{ numOfPages }}
</span> </span>
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page < numOfPages ? page + 1 : page"> <q-btn
class="text-dark bg-grey-4"
flat
dense
@click="page = page < numOfPages ? page + 1 : page"
>
<q-icon name="mdi-chevron-right" /> <q-icon name="mdi-chevron-right" />
</q-btn> </q-btn>
</div> </div>
@ -721,16 +984,33 @@ const viewFileUpload = async (url: string) => {
</q-card> </q-card>
</q-dialog> </q-dialog>
<q-dialog v-model="dialogFileUpload" persistent :maximized="true" transition-show="slide-up" <q-dialog
transition-hide="slide-down"> v-model="dialogFileUpload"
persistent
:maximized="true"
transition-show="slide-up"
transition-hide="slide-down"
>
<q-card class="bg-white text-white"> <q-card class="bg-white text-white">
<div class="flex justify-end items-center align-center q-mr-md q-mt-sm"> <div class="flex justify-end items-center align-center q-mr-md q-mt-sm">
<q-btn icon="close" unelevated round dense style="color: #ff8080; background-color: #ffdede" size="12px" <q-btn
v-close-popup /> icon="close"
unelevated
round
dense
style="color: #ff8080; background-color: #ffdede"
size="12px"
v-close-popup
/>
</div> </div>
<q-card-section bordered class="card-pdf q-ma-md q-pa-md"> <q-card-section bordered class="card-pdf q-ma-md q-pa-md">
<div class="justify-between items-center align-center q-pb-sm row"> <div class="justify-between items-center align-center q-pb-sm row">
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page > 1 ? page - 1 : page"> <q-btn
class="text-dark bg-grey-4"
flat
dense
@click="page = page > 1 ? page - 1 : page"
>
<q-icon name="mdi-chevron-left" /> <q-icon name="mdi-chevron-left" />
</q-btn> </q-btn>
@ -738,16 +1018,32 @@ const viewFileUpload = async (url: string) => {
หนาท {{ page }} จาก {{ numOfPages }} หนาท {{ page }} จาก {{ numOfPages }}
</span> </span>
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page < numOfPages ? page + 1 : page"> <q-btn
class="text-dark bg-grey-4"
flat
dense
@click="page = page < numOfPages ? page + 1 : page"
>
<q-icon name="mdi-chevron-right" /> <q-icon name="mdi-chevron-right" />
</q-btn> </q-btn>
</div> </div>
<div class="pdfWidth"> <div class="pdfWidth">
<VuePDF ref="vuePDFRef" :pdf="pdfFileUploadSrc" :page="page" fit-parent :scale="0.1" /> <VuePDF
ref="vuePDFRef"
:pdf="pdfFileUploadSrc"
:page="page"
fit-parent
:scale="0.1"
/>
<!-- <VuePdf :key="page" :src="pdfSrc" :page="page" /> --> <!-- <VuePdf :key="page" :src="pdfSrc" :page="page" /> -->
</div> </div>
<div class="justify-between items-center align-center q-pt-sm row"> <div class="justify-between items-center align-center q-pt-sm row">
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page > 1 ? page - 1 : page"> <q-btn
class="text-dark bg-grey-4"
flat
dense
@click="page = page > 1 ? page - 1 : page"
>
<q-icon name="mdi-chevron-left" /> <q-icon name="mdi-chevron-left" />
</q-btn> </q-btn>
@ -755,7 +1051,12 @@ const viewFileUpload = async (url: string) => {
หนาท {{ page }} จาก {{ numOfPages }} หนาท {{ page }} จาก {{ numOfPages }}
</span> </span>
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page < numOfPages ? page + 1 : page"> <q-btn
class="text-dark bg-grey-4"
flat
dense
@click="page = page < numOfPages ? page + 1 : page"
>
<q-icon name="mdi-chevron-right" /> <q-icon name="mdi-chevron-right" />
</q-btn> </q-btn>
</div> </div>