- fix bug generate แนบท้ายไม่ generate ใหม่

- ปิด log
This commit is contained in:
Warunee Tamkoo 2023-09-20 00:58:45 +07:00
parent eea8ce1b6d
commit 3da536acb0
7 changed files with 132 additions and 479 deletions

View file

@ -64,7 +64,6 @@ const destroyLocalStorage = () => {
localStorage.clear(); localStorage.clear();
}; };
onMounted(() => { onMounted(() => {
// console.log("route query===>", route.query)
if (route.query.step) { if (route.query.step) {
step.value = Number(route.query.step); step.value = Number(route.query.step);
localStorage.setItem("currentStep", step.value.toString()); localStorage.setItem("currentStep", step.value.toString());
@ -79,7 +78,6 @@ onMounted(() => {
if (orderId_params !== undefined) { if (orderId_params !== undefined) {
orderId.value = orderId_params.toString(); orderId.value = orderId_params.toString();
// console.log("orderId.value");
} }
}); });
</script> </script>

View file

@ -141,7 +141,6 @@ const OriginalDataFetch = async () => {
await http await http
.get(config.API.listOrder()) .get(config.API.listOrder())
.then((res: any) => { .then((res: any) => {
// console.log("list", res);
rows.value = res.data.result.map((e: any) => ({ rows.value = res.data.result.map((e: any) => ({
orderId: e.orderId, orderId: e.orderId,
Order: e.orderName, Order: e.orderName,
@ -234,7 +233,6 @@ const fiscalyearOP = reactive<DataOption[]>([{ id: 0, name: "ทั้งหม
const addedfiscalYearValues: number[] = []; const addedfiscalYearValues: number[] = [];
const fiscalYearFilter = async () => { const fiscalYearFilter = async () => {
await http.get(config.API.yearOptionsOrder()).then((res) => { await http.get(config.API.yearOptionsOrder()).then((res) => {
// console.log(res);
const response = res.data.result; const response = res.data.result;
fiscalyearOP.push(...response); fiscalyearOP.push(...response);
}); });
@ -247,7 +245,6 @@ const OrderTypeFilter = async () => {
await http await http
.get(config.API.typeOrder()) .get(config.API.typeOrder())
.then((res) => { .then((res) => {
// console.log(res.data);
const response = res.data.result; const response = res.data.result;
OrderTypeOption.push(...response); OrderTypeOption.push(...response);
}) })
@ -275,8 +272,6 @@ const OrderStatusFilter = async () => {
} }
if (!addedOrderStatusValues.includes(OrderStatusValue)) { if (!addedOrderStatusValues.includes(OrderStatusValue)) {
// console.log(OrderStatusValue);
OrderStatusOption.push({ OrderStatusOption.push({
// id: OrderStatusValue, // id: OrderStatusValue,
id: OrderStatusOption.length.toString(), id: OrderStatusOption.length.toString(),
@ -303,12 +298,6 @@ const searchFilterTable = async () => {
if (OrderStatus.value == "ทั้งหมด") { if (OrderStatus.value == "ทั้งหมด") {
OrderStatus.value = ""; OrderStatus.value = "";
} }
console.log(
"Input value changed:",
OrderType.value,
OrderStatus.value,
fiscalyear.value
);
await DataStore.DataUpdateOrder( await DataStore.DataUpdateOrder(
OrderType.value, OrderType.value,
@ -316,7 +305,6 @@ const searchFilterTable = async () => {
fiscalyear.value fiscalyear.value
); );
UpdataData.value = DataStore.DataMainUpdateOrder; UpdataData.value = DataStore.DataMainUpdateOrder;
// console.log(UpdataData.value);
}; };
const paging = ref<boolean>(true); const paging = ref<boolean>(true);

View file

@ -93,13 +93,11 @@ const clickSearch = async () => {
year: reportYear.value, year: reportYear.value,
posno: reportNo.value, posno: reportNo.value,
}; };
// console.log(body);
showLoader(); showLoader();
http http
.post(config.API.searchOrderprofile(), body) .post(config.API.searchOrderprofile(), body)
.then((res) => { .then((res) => {
let data = res.data.result; let data = res.data.result;
console.log(data);
if (data.length !== 0) { if (data.length !== 0) {
rows.value = data.map((e: any) => ({ rows.value = data.map((e: any) => ({

View file

@ -178,7 +178,6 @@ watch(byOrder, async () => {
.get(config.API.approverOC(byOrder.value)) .get(config.API.approverOC(byOrder.value))
.then((res: any) => { .then((res: any) => {
CommandOption.value = res.data.result; CommandOption.value = res.data.result;
// console.log(CommandOption.value);
}) })
.catch((e: any) => { .catch((e: any) => {
console.log(e); console.log(e);
@ -220,10 +219,8 @@ const fetchdetailOrder = async () => {
await http await http
.get(config.API.detailOrder(orderIdString)) .get(config.API.detailOrder(orderIdString))
.then((res: any) => { .then((res: any) => {
// console.log(res);
const data = res.data.result; const data = res.data.result;
// console.log(data);
typeOrder.value = typeOrderOption.value.find( typeOrder.value = typeOrderOption.value.find(
(e) => e.id === data.orderTypeValue (e) => e.id === data.orderTypeValue
); );
@ -234,7 +231,6 @@ const fetchdetailOrder = async () => {
byOrder.value = data.orderBy; byOrder.value = data.orderBy;
nameCommand.value = data.signatoryBy; nameCommand.value = data.signatoryBy;
positionCommand.value = data.signatoryPosition; positionCommand.value = data.signatoryPosition;
// console.log("nameCommand===>",nameCommand.value);
examRound.value = data.examRound; examRound.value = data.examRound;
conclusionRegisterNo.value = data.conclusionRegisterNo; conclusionRegisterNo.value = data.conclusionRegisterNo;
@ -309,8 +305,6 @@ const fecthCommand = async () => {
await http await http
.get(config.API.organizationsOrder()) .get(config.API.organizationsOrder())
.then((res: any) => { .then((res: any) => {
console.log(res);
byOrderOption.value = res.data.result; byOrderOption.value = res.data.result;
}) })
.catch((e: any) => { .catch((e: any) => {
@ -319,7 +313,6 @@ const fecthCommand = async () => {
}; };
const nameOrderFilter = (selectOrder: any) => { const nameOrderFilter = (selectOrder: any) => {
console.log(selectOrder);
switch (selectOrder) { switch (selectOrder) {
case "C-PM-01": case "C-PM-01":
return "บรรจุและแต่งตั้งผู้สอบแข่งขันได้"; return "บรรจุและแต่งตั้งผู้สอบแข่งขันได้";
@ -434,9 +427,6 @@ const fecthExamRoundOption = async (commandCode: string) => {
}; };
const submit = async () => { const submit = async () => {
// console.log(nameCommand.value);
// console.log(CommandOption.value);
let signBy = null; let signBy = null;
if (!nameCommand.value.length) { if (!nameCommand.value.length) {
signBy = await nameCommand.value.name; signBy = await nameCommand.value.name;
@ -447,9 +437,7 @@ const submit = async () => {
(x: any) => x.name == nameCommand.value (x: any) => x.name == nameCommand.value
); );
signBy = await name2?.name; signBy = await name2?.name;
console.log("signBy", signBy);
} }
console.log(signBy);
const orderByOrganizationName = await byOrderOption.value.find( const orderByOrganizationName = await byOrderOption.value.find(
(x: any) => x.id == byOrder.value (x: any) => x.id == byOrder.value
@ -553,8 +541,6 @@ const submit = async () => {
}); });
} }
// console.log(formdata);
await myForm.value!.validate().then((result: boolean) => { await myForm.value!.validate().then((result: boolean) => {
if (result) { if (result) {
dialogConfirm($q, () => { dialogConfirm($q, () => {
@ -591,8 +577,6 @@ const updateOrder = async (formData: Object, orderId: string, type: string) => {
await http await http
.put(config.API.orderCPMUpdate(type, orderId), formData) .put(config.API.orderCPMUpdate(type, orderId), formData)
.then((res) => { .then((res) => {
console.log(res);
next(); next();
success($q, "บันทึกข้อมูลสำเร็จ"); success($q, "บันทึกข้อมูลสำเร็จ");
}) })

View file

@ -118,7 +118,6 @@ const getData = async (id: string) => {
.get(config.API.personsselectedOrder(id)) .get(config.API.personsselectedOrder(id))
.then((res) => { .then((res) => {
const data = res.data.result; const data = res.data.result;
// console.log(data);
let list: ResponseData[] = []; let list: ResponseData[] = [];
data.map((r: ResponseData) => { data.map((r: ResponseData) => {
list.push({ list.push({
@ -134,7 +133,6 @@ const getData = async (id: string) => {
monthSalaryAmount: r.monthSalaryAmount, monthSalaryAmount: r.monthSalaryAmount,
}); });
}); });
// console.log("list", list);
rows.value = list; rows.value = list;
selected.value = rows.value; selected.value = rows.value;
}) })
@ -182,8 +180,6 @@ const deleteData = async (id: string) => {
await http await http
.delete(config.API.personsOrder(id)) .delete(config.API.personsOrder(id))
.then((res) => { .then((res) => {
// const data = res.data.result;
// console.log(res);
success($q, "ลบข้อมูลสำเร็จ"); success($q, "ลบข้อมูลสำเร็จ");
}) })
.catch((e) => { .catch((e) => {
@ -199,10 +195,6 @@ const swapUp = async (id: string) => {
// id = personalId // id = personalId
await http await http
.put(config.API.swapUpOrder(id)) .put(config.API.swapUpOrder(id))
.then((res) => {
// const data = res.data.result;
// console.log(res);
})
.catch((e) => { .catch((e) => {
messageError($q, e); messageError($q, e);
}) })
@ -216,10 +208,6 @@ const swapDown = async (id: string) => {
// id = personalId // id = personalId
await http await http
.put(config.API.swapDownOrder(id)) .put(config.API.swapDownOrder(id))
.then((res) => {
// const data = res.data.result;
// console.log(res);
})
.catch((e) => { .catch((e) => {
messageError($q, e); messageError($q, e);
}) })
@ -249,7 +237,6 @@ const saveModal = () => {
}; };
const personalId = ref<string>(""); const personalId = ref<string>("");
const selectModal = (e: any) => { const selectModal = (e: any) => {
// console.log(e);
titleName.value = e.name; titleName.value = e.name;
personalId.value = e.personalId; personalId.value = e.personalId;
modalOpenClose(e.personalId); modalOpenClose(e.personalId);
@ -265,12 +252,10 @@ const modalOpenClose = async (personalId: string) => {
myForm.value?.reset(); myForm.value?.reset();
}; };
const fetchSalary = async (personalId: string) => { const fetchSalary = async (personalId: string) => {
// console.log(personalId);
showLoader(); showLoader();
await http await http
.get(config.API.salaryOrder(personalId)) .get(config.API.salaryOrder(personalId))
.then((res: any) => { .then((res: any) => {
console.log(res);
const data = res.data.result; const data = res.data.result;
modalData.value = { modalData.value = {
salaryAmount: salaryAmount:
@ -292,10 +277,8 @@ const fetchSalary = async (personalId: string) => {
? null ? null
: data.monthSalaryAmount, : data.monthSalaryAmount,
}; };
// console.log("data", modalData.value);
}) })
.catch((e) => { .catch((e) => {
// console.log(e);
messageError($q, e); messageError($q, e);
}) })
.finally(() => { .finally(() => {
@ -318,11 +301,9 @@ const putSalary = async (salary: any) => {
await http await http
.put(config.API.salaryOrder(personalId.value), modalData.value) .put(config.API.salaryOrder(personalId.value), modalData.value)
.then((res: any) => { .then((res: any) => {
// console.log(res);
success($q, "บันทึกข้อมูลสำเร็จ"); success($q, "บันทึกข้อมูลสำเร็จ");
}) })
.catch((e) => { .catch((e) => {
// console.log(e);
messageError($q, e); messageError($q, e);
}) })
.finally(async () => { .finally(async () => {
@ -353,7 +334,6 @@ const fetchaddlist = async (id: string) => {
.get(config.API.personsOrder(id)) .get(config.API.personsOrder(id))
.then((res) => { .then((res) => {
const data = res.data.result; const data = res.data.result;
console.log(data);
let list = []; let list = [];
list = data.map((r: ResponseData) => ({ list = data.map((r: ResponseData) => ({
education: r.education ?? "", education: r.education ?? "",
@ -408,7 +388,6 @@ const addlist = async (data: Object) => {
success($q, "บันทึกสำเร็จ"); success($q, "บันทึกสำเร็จ");
}) })
.catch((e: any) => { .catch((e: any) => {
console.log(e);
messageError($q, e); messageError($q, e);
}) })
.finally(() => { .finally(() => {
@ -418,8 +397,6 @@ const addlist = async (data: Object) => {
}; };
const save = async () => { const save = async () => {
// console.log("save===>", rows.value);
// console.log(statuscode.value);
const check = rows.value.find((x: any) => x.salaryAmount == 0); const check = rows.value.find((x: any) => x.salaryAmount == 0);
if ( if (
(selected.value.length > 0 && !check) || (selected.value.length > 0 && !check) ||

View file

@ -207,7 +207,6 @@ const getData = async (id: string) => {
.get(config.API.copyOrderId(id)) .get(config.API.copyOrderId(id))
.then((res) => { .then((res) => {
const data = res.data.result; const data = res.data.result;
// console.log(data);
let list: DataCopyOrder[] = []; let list: DataCopyOrder[] = [];
data.map((r: ResponseCopyOrder) => { data.map((r: ResponseCopyOrder) => {
let selectCopyOrder = []; let selectCopyOrder = [];
@ -248,7 +247,6 @@ const getData = async (id: string) => {
}; };
const saveData = async () => { const saveData = async () => {
// console.log("select", selectedModal.value);
const id = route.params.orderid const id = route.params.orderid
? route.params.orderid.toString() ? route.params.orderid.toString()
: localStorage.getItem("orderId") : localStorage.getItem("orderId")
@ -258,10 +256,6 @@ const saveData = async () => {
showLoader(); showLoader();
await http await http
.post(config.API.copyOrderPersonsId(id), selectedModal.value) .post(config.API.copyOrderPersonsId(id), selectedModal.value)
.then((res) => {
// const data = res.data.result;
// console.log(res);
})
.catch((e) => { .catch((e) => {
messageError($q, e); messageError($q, e);
}) })
@ -332,8 +326,6 @@ const deleteData = async (id: string) => {
await http await http
.delete(config.API.copyOrderId(id)) .delete(config.API.copyOrderId(id))
.then((res) => { .then((res) => {
// const data = res.data.result;
// console.log(res);
success($q, "ลบข้อมูลสำเร็จ"); success($q, "ลบข้อมูลสำเร็จ");
}) })
.catch((e) => { .catch((e) => {

View file

@ -65,7 +65,6 @@ const getCommandDetail = async () => {
code.value = orderTypeCode ?? ""; code.value = orderTypeCode ?? "";
orderName.value = res.data.result.orderTitle; orderName.value = res.data.result.orderTitle;
orderStatusName.value = data.orderStatusName; orderStatusName.value = data.orderStatusName;
// console.log(orderStatusName.value);
fetchReportCover("pdf", orderId.value); fetchReportCover("pdf", orderId.value);
@ -211,7 +210,6 @@ const viewPDFUpload = async (pdf: string) => {
}; };
watch(tab, () => { watch(tab, () => {
// console.log(tab.value);
if (tab.value === "main") { if (tab.value === "main") {
viewPDF(orderCoverPdf.value); viewPDF(orderCoverPdf.value);
} }
@ -244,7 +242,6 @@ const props = defineProps({
const previous = () => props.previous(); const previous = () => props.previous();
const onchangePage = (val: any) => { const onchangePage = (val: any) => {
// console.log(val);
if (vuePDFRef !== null) { if (vuePDFRef !== null) {
vuePDFRef.value.reload(); vuePDFRef.value.reload();
} }
@ -260,6 +257,7 @@ const downloadFile = (response: any, filename: string) => {
document.body.removeChild(link); document.body.removeChild(link);
}; };
//
const saveUpload = () => { const saveUpload = () => {
if (myFormUpload.value !== null) { if (myFormUpload.value !== null) {
myFormUpload.value!.validate().then((success: Boolean) => { myFormUpload.value!.validate().then((success: Boolean) => {
@ -288,32 +286,41 @@ const saveUpload = () => {
} }
}; };
//
const saveDetail = () => { const saveDetail = () => {
console.log(tab.value);
if (myForm.value !== null) { if (myForm.value !== null) {
myForm.value!.validate().then((success: Boolean) => { myForm.value!.validate().then((success: Boolean) => {
if (success) { if (success) {
//
dialogConfirm($q, async () => { dialogConfirm($q, async () => {
showLoader(); showLoader();
await putOrderData();
if (tab.value == "main") { await putOrderData(); //
await fetchReportCover("pdf", orderId.value); await fetchReportCover("pdf", orderId.value); //
} else {
if ( // type
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 fetchReportAttachment("pdf", orderId.value); ) {
await viewPDF(orderAttachmentPdf.value); //
await fetchReportAttachment("pdf", orderId.value);
// tab
if (tab.value == "second") {
//
await viewPDF(orderAttachmentPdf.value);
} }
} }
// (Y = , N = )
await fecthstatusOrder(); await fecthstatusOrder();
hideLoader(); hideLoader();
@ -323,6 +330,7 @@ const saveDetail = () => {
} }
}; };
//
const putOrderData = async () => { const putOrderData = async () => {
const orderData = { const orderData = {
orderNo: order.value, orderNo: order.value,
@ -438,108 +446,61 @@ const viewFileUpload = async (url: string) => {
<template> <template>
<div> <div>
<div style="min-height: 70vh"> <div style="min-height: 70vh">
<q-splitter <q-splitter v-model="splitterModel" style="height: 70vh" @update:model-value="onchangePage">
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 <q-btn v-if="orderStatusName != 'ออกคำสั่งแล้ว'" size="12px" flat dense icon="mdi-download"
v-if="orderStatusName != 'ออกคำสั่งแล้ว'" :disable="tab !== 'main'" :color="tab !== 'main' ? 'grey' : 'add'">
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 <q-item clickable v-close-popup @click="downloadCover('pdf')">
clickable
v-close-popup
@click="downloadCover('pdf')"
>
<!-- type="a" <!-- type="a"
:href="orderCoverPdf" :href="orderCoverPdf"
target="_blank" --> target="_blank" -->
<q-item-section avatar <q-item-section avatar><q-icon color="red" name="mdi-file-pdf" /></q-item-section>
><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 <q-item clickable v-close-popup @click="downloadCover('docx')">
clickable
v-close-popup
@click="downloadCover('docx')"
>
<!-- type="a" <!-- type="a"
:href="orderCoverDocs" :href="orderCoverDocs"
target="_blank" --> target="_blank" -->
<q-item-section avatar <q-item-section avatar><q-icon color="blue" name="mdi-file-word" /></q-item-section>
><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 <div v-if="code != 'c-pm-10' &&
v-if=" code != 'c-pm-11' &&
code != 'c-pm-10' && code != 'c-pm-12' &&
code != 'c-pm-11' && code != 'c-pm-16' &&
code != 'c-pm-12' && code != 'c-pm-18' &&
code != 'c-pm-16' && code != 'c-pm-19' &&
code != 'c-pm-18' && code != 'c-pm-20' &&
code != 'c-pm-19' && code != 'c-pm-21'
code != 'c-pm-20' && " @click="setTab('second')" :class="getClass(tab == 'second')">
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 <q-btn v-if="orderStatusName != 'ออกคำสั่งแล้ว'" size="12px" flat dense
v-if="orderStatusName != 'ออกคำสั่งแล้ว'" :color="tab !== 'second' ? 'grey' : 'add'" icon="mdi-download" :disable="tab !== 'second'">
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 <q-item clickable v-close-popup @click="downloadAttachment('pdf')">
clickable
v-close-popup
@click="downloadAttachment('pdf')"
>
<!-- type="a" <!-- type="a"
:href="orderAttachmentPdf" :href="orderAttachmentPdf"
target="_blank" --> target="_blank" -->
<q-item-section avatar <q-item-section avatar><q-icon color="red" name="mdi-file-pdf" /></q-item-section>
><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 <q-item clickable v-close-popup @click="downloadAttachment('xlsx')">
clickable
v-close-popup
@click="downloadAttachment('xlsx')"
>
<!-- type="a" <!-- type="a"
:href="orderAttachmentXlsx" :href="orderAttachmentXlsx"
target="_blank" --> target="_blank" -->
<q-item-section avatar <q-item-section avatar><q-icon color="green-7" name="mdi-file-excel" /></q-item-section>
><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>
@ -547,24 +508,12 @@ const viewFileUpload = async (url: string) => {
</q-btn> </q-btn>
</div> </div>
<q-space /> <q-space />
<q-btn <q-btn class="text-dark" flat dense icon="mdi-fullscreen" color="add" @click="dialog = true" />
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 <q-btn class="text-dark bg-grey-4" flat dense @click="page = page > 1 ? page - 1 : page">
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>
@ -572,12 +521,7 @@ const viewFileUpload = async (url: string) => {
หนาท {{ page }} จาก {{ numOfPages }} หนาท {{ page }} จาก {{ numOfPages }}
</span> </span>
<q-btn <q-btn class="text-dark bg-grey-4" flat dense @click="page = page < numOfPages ? page + 1 : page">
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>
@ -586,12 +530,7 @@ 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 <q-btn class="text-dark bg-grey-4" flat dense @click="page = page > 1 ? page - 1 : page">
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>
@ -599,12 +538,7 @@ const viewFileUpload = async (url: string) => {
หนาท {{ page }} จาก {{ numOfPages }} หนาท {{ page }} จาก {{ numOfPages }}
</span> </span>
<q-btn <q-btn class="text-dark bg-grey-4" flat dense @click="page = page < numOfPages ? page + 1 : page">
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>
@ -612,12 +546,7 @@ const viewFileUpload = async (url: string) => {
</template> </template>
<template v-slot:separator> <template v-slot:separator>
<q-avatar <q-avatar color="primary" text-color="white" size="30px" icon="drag_indicator" />
color="primary"
text-color="white"
size="30px"
icon="drag_indicator"
/>
</template> </template>
<template v-slot:after> <template v-slot:after>
@ -629,94 +558,47 @@ 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 <q-btn size="12px" flat dense color="primary" icon="mdi-eye"
size="12px" @click="viewFileUpload(OrderPDFUpload)">
flat
dense
color="primary"
icon="mdi-eye"
@click="viewFileUpload(OrderPDFUpload)"
>
<q-tooltip>ไฟลคำส</q-tooltip> <q-tooltip>ไฟลคำส</q-tooltip>
</q-btn> </q-btn>
<q-btn <q-btn type="a" :href="OrderPDFUpload" size="12px" flat dense color="red" icon="mdi-download"
type="a" target="_blank">
: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 <q-file v-if="orderStatusName != 'ออกคำสั่งแล้ว'" outlined dense v-model="fileOrder"
v-if="orderStatusName != 'ออกคำสั่งแล้ว'" label="เลือกไฟล์คำสั่ง" hide-bottom-space lazy-rules
outlined :rules="[(val) => val || 'กรุณาเลือกไฟล์ไฟล์คำสั่ง']" accept=".pdf">
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 <div v-if="code != 'c-pm-10' &&
v-if=" code != 'c-pm-11' &&
code != 'c-pm-10' && code != 'c-pm-12' &&
code != 'c-pm-11' && code != 'c-pm-16' &&
code != 'c-pm-12' && code != 'c-pm-18' &&
code != 'c-pm-16' && code != 'c-pm-19' &&
code != 'c-pm-18' && code != 'c-pm-20' &&
code != 'c-pm-19' && code != 'c-pm-21'
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 <q-btn size="12px" flat dense color="primary" icon="mdi-eye"
size="12px" @click="viewFileUpload(TailerPDFUpload)">
flat
dense
color="primary"
icon="mdi-eye"
@click="viewFileUpload(TailerPDFUpload)"
>
<q-tooltip>เอกสารแนบทาย</q-tooltip> <q-tooltip>เอกสารแนบทาย</q-tooltip>
</q-btn> </q-btn>
<q-btn <q-btn type="a" :href="TailerPDFUpload" size="12px" flat dense color="red" icon="mdi-download"
type="a" target="_blank">
: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 <q-file v-if="orderStatusName != 'ออกคำสั่งแล้ว'" outlined dense v-model="fileTailer"
v-if="orderStatusName != 'ออกคำสั่งแล้ว'" label="เลือกไฟล์เอกสารแนบท้าย" hide-bottom-space lazy-rules
outlined :rules="[(val) => val || 'กรุณาเลือกไฟล์เอกสารแนบท้าย']" accept=".pdf">
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>
@ -724,26 +606,15 @@ const viewFileUpload = async (url: string) => {
</div> </div>
<!-- นทกอพโหลดเอกสาร --> <!-- นทกอพโหลดเอกสาร -->
<div <div v-if="orderStatusName != 'ออกคำสั่งแล้ว'" class="row col-12 q-mt-md">
v-if="orderStatusName != 'ออกคำสั่งแล้ว'"
class="row col-12 q-mt-md"
>
<q-space></q-space> <q-space></q-space>
<q-btn <q-btn unelevated label="บันทึก" :color="validateFormUpload() &&
unelevated orderStatusName != 'ออกคำสั่งแล้ว'
label="บันทึก" ? 'public'
:color=" : 'grey'
validateFormUpload() && " :disable="!validateFormUpload() ||
orderStatusName != 'ออกคำสั่งแล้ว' orderStatusName == 'ออกคำสั่งแล้ว'
? 'public' " @click="saveUpload">
: 'grey'
"
:disable="
!validateFormUpload() ||
orderStatusName == 'ออกคำสั่งแล้ว'
"
@click="saveUpload"
>
</q-btn> </q-btn>
</div> </div>
</div> </div>
@ -756,54 +627,25 @@ 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 <q-input :outlined="true" dense lazy-rules :readonly="!true" :borderless="!true" v-model="order"
:outlined="true" :rules="[(val) => !!val || `${'กรุณากรอกเลขที่คำสั่ง'}`]" hide-bottom-space
dense :label="`${'เลขที่คำสั่ง'}`" :disable="orderStatusName == 'ออกคำสั่งแล้ว'" />
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 <datepicker :disabled="orderStatusName == 'ออกคำสั่งแล้ว'" menu-class-name="modalfix" v-model="years"
:disabled="orderStatusName == 'ออกคำสั่งแล้ว'" :locale="'th'" autoApply year-picker :enableTimePicker="false" week-start="0">
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 <q-input :disable="orderStatusName == 'ออกคำสั่งแล้ว'" outlined dense lazy-rules
:disable="orderStatusName == 'ออกคำสั่งแล้ว'" :model-value="years + 543" :rules="[
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 <q-icon name="event" class="cursor-pointer" style="color: var(--q-grey)">
name="event"
class="cursor-pointer"
style="color: var(--q-grey)"
>
</q-icon> </q-icon>
</template> </template>
</q-input> </q-input>
@ -812,16 +654,8 @@ const viewFileUpload = async (url: string) => {
</div> </div>
<div> <div>
<label class="text-file">นทลงนาม</label> <label class="text-file">นทลงนาม</label>
<datepicker <datepicker :disabled="orderStatusName == 'ออกคำสั่งแล้ว'" menu-class-name="modalfix" v-model="date"
:disabled="orderStatusName == 'ออกคำสั่งแล้ว'" :locale="'th'" autoApply borderless :enableTimePicker="false" week-start="0">
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>
@ -829,24 +663,13 @@ const viewFileUpload = async (url: string) => {
{{ parseInt(value + 543) }} {{ parseInt(value + 543) }}
</template> </template>
<template #trigger> <template #trigger>
<q-input <q-input :disable="orderStatusName == 'ออกคำสั่งแล้ว'" outlined dense
:disable="orderStatusName == 'ออกคำสั่งแล้ว'" class="full-width datepicker" hide-bottom-space
outlined :model-value="date != null ? date2Thai(date) : null" :label="`${'วันที่ลงนาม'}`" :rules="[
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 <q-icon name="event" class="cursor-pointer" style="color: var(--q-grey)">
name="event"
class="cursor-pointer"
style="color: var(--q-grey)"
>
</q-icon> </q-icon>
</template> </template>
</q-input> </q-input>
@ -855,24 +678,13 @@ const viewFileUpload = async (url: string) => {
</div> </div>
<!-- นทกรายละเอยดคำส --> <!-- นทกรายละเอยดคำส -->
<div <div v-if="orderStatusName != 'ออกคำสั่งแล้ว'" class="row col-12 q-mt-md">
v-if="orderStatusName != 'ออกคำสั่งแล้ว'"
class="row col-12 q-mt-md"
>
<q-space></q-space> <q-space></q-space>
<q-btn <q-btn unelevated label="บันทึก" :color="validateForm() && orderStatusName != 'ออกคำสั่งแล้ว'
unelevated ? 'public'
label="บันทึก" : 'grey'
:color=" " :disable="!validateForm() || orderStatusName == 'ออกคำสั่งแล้ว'
validateForm() && orderStatusName != 'ออกคำสั่งแล้ว' " @click="saveDetail">
? 'public'
: 'grey'
"
:disable="
!validateForm() || orderStatusName == 'ออกคำสั่งแล้ว'
"
@click="saveDetail"
>
</q-btn> </q-btn>
</div> </div>
</div> </div>
@ -884,26 +696,13 @@ const viewFileUpload = async (url: string) => {
</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 <q-btn v-if="orderStatusName !== 'ออกคำสั่งแล้ว'" dense outline color="primary" icon="chevron_left"
v-if="orderStatusName !== 'ออกคำสั่งแล้ว'" @click="previous" class="q-pr-md" label="เลือกรายชื่อส่งสำเนา">
dense
outline
color="primary"
icon="chevron_left"
@click="previous"
class="q-pr-md"
label="เลือกรายชื่อส่งสำเนา"
>
</q-btn> </q-btn>
<!-- ออกคำส --> <!-- ออกคำส -->
<q-btn <q-btn v-if="orderStatusName !== 'ออกคำสั่งแล้ว'" :disable="statusOrder == 'N'" unelevated label="ออกคำสั่ง"
v-if="orderStatusName !== 'ออกคำสั่งแล้ว'" :color="statusOrder == 'Y' ? 'public' : 'grey'">
: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)">
@ -916,42 +715,18 @@ const viewFileUpload = async (url: string) => {
</q-menu> </q-menu>
</q-btn> </q-btn>
<q-btn <q-btn v-else disable unelevated label="ออกคำสั่งเสร็จสิ้น" color="green"></q-btn>
v-else
disable
unelevated
label="ออกคำสั่งเสร็จสิ้น"
color="green"
></q-btn>
</div> </div>
<q-dialog <q-dialog v-model="dialog" persistent :maximized="true" transition-show="slide-up" transition-hide="slide-down">
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 <q-btn icon="close" unelevated round dense style="color: #ff8080; background-color: #ffdede" size="12px"
icon="close" v-close-popup />
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 <q-btn class="text-dark bg-grey-4" flat dense @click="page = page > 1 ? page - 1 : page">
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>
@ -959,32 +734,16 @@ const viewFileUpload = async (url: string) => {
หนาท {{ page }} จาก {{ numOfPages }} หนาท {{ page }} จาก {{ numOfPages }}
</span> </span>
<q-btn <q-btn class="text-dark bg-grey-4" flat dense @click="page = page < numOfPages ? page + 1 : page">
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 <VuePDF ref="vuePDFRef" :pdf="pdfSrc" :page="page" fit-parent :scale="0.1" />
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 <q-btn class="text-dark bg-grey-4" flat dense @click="page = page > 1 ? page - 1 : page">
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>
@ -992,12 +751,7 @@ const viewFileUpload = async (url: string) => {
หนาท {{ page }} จาก {{ numOfPages }} หนาท {{ page }} จาก {{ numOfPages }}
</span> </span>
<q-btn <q-btn class="text-dark bg-grey-4" flat dense @click="page = page < numOfPages ? page + 1 : page">
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>
@ -1005,33 +759,16 @@ const viewFileUpload = async (url: string) => {
</q-card> </q-card>
</q-dialog> </q-dialog>
<q-dialog <q-dialog v-model="dialogFileUpload" persistent :maximized="true" transition-show="slide-up"
v-model="dialogFileUpload" transition-hide="slide-down">
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 <q-btn icon="close" unelevated round dense style="color: #ff8080; background-color: #ffdede" size="12px"
icon="close" v-close-popup />
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 <q-btn class="text-dark bg-grey-4" flat dense @click="page = page > 1 ? page - 1 : page">
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>
@ -1039,32 +776,16 @@ const viewFileUpload = async (url: string) => {
หนาท {{ page }} จาก {{ numOfPages }} หนาท {{ page }} จาก {{ numOfPages }}
</span> </span>
<q-btn <q-btn class="text-dark bg-grey-4" flat dense @click="page = page < numOfPages ? page + 1 : page">
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 <VuePDF ref="vuePDFRef" :pdf="pdfFileUploadSrc" :page="page" fit-parent :scale="0.1" />
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 <q-btn class="text-dark bg-grey-4" flat dense @click="page = page > 1 ? page - 1 : page">
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>
@ -1072,12 +793,7 @@ const viewFileUpload = async (url: string) => {
หนาท {{ page }} จาก {{ numOfPages }} หนาท {{ page }} จาก {{ numOfPages }}
</span> </span>
<q-btn <q-btn class="text-dark bg-grey-4" flat dense @click="page = page < numOfPages ? page + 1 : page">
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>