Merge branch 'develop' of https://github.com/Frappet/bma-ehr-frontend into develop
This commit is contained in:
commit
d3067b3b65
9 changed files with 315 additions and 62 deletions
|
|
@ -157,4 +157,5 @@ export default {
|
||||||
orderCPMUpdate: (type: string, id: string) => `${order}/order/${type}/detail/${id}`,
|
orderCPMUpdate: (type: string, id: string) => `${order}/order/${type}/detail/${id}`,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ const reportOrder = `${env.API_REPORT2_URI}/report/order`;
|
||||||
const reportRetire = `${env.API_REPORT2_URI}/report/retire`;
|
const reportRetire = `${env.API_REPORT2_URI}/report/retire`;
|
||||||
const reportProbation = `${env.API_REPORT2_URI}/report/probation`;
|
const reportProbation = `${env.API_REPORT2_URI}/report/probation`;
|
||||||
const reportResign = `${env.API_REPORT2_URI}/report/resign/33`;
|
const reportResign = `${env.API_REPORT2_URI}/report/resign/33`;
|
||||||
|
const reportTransfer = `${env.API_REPORT2_URI}/report/transfer`;
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
reportOrderCover: (fileType: string, id: string, commandCode: string) =>
|
reportOrderCover: (fileType: string, id: string, commandCode: string) =>
|
||||||
|
|
@ -30,5 +31,8 @@ export default {
|
||||||
reportEvaluate:(type:string, id:string) => `${reportProbation}/16/${type}/${id}`,
|
reportEvaluate:(type:string, id:string) => `${reportProbation}/16/${type}/${id}`,
|
||||||
reportEvaluateChairman:(type:string, id:string) => `${reportProbation}/17/${type}/${id}`,
|
reportEvaluateChairman:(type:string, id:string) => `${reportProbation}/17/${type}/${id}`,
|
||||||
reportEvaluateResult:(type:string, id:string) => `${reportProbation}/18/${type}/${id}`,
|
reportEvaluateResult:(type:string, id:string) => `${reportProbation}/18/${type}/${id}`,
|
||||||
reportSurvey:(type:string, id:string) => `${reportProbation}/19/${type}/${id}`
|
reportSurvey:(type:string, id:string) => `${reportProbation}/19/${type}/${id}`,
|
||||||
};
|
|
||||||
|
//filetransfer
|
||||||
|
reportTransferFile:(no:number,type:string,id:string) => `${reportTransfer}/${no}/${type}/${id}`
|
||||||
|
};
|
||||||
|
|
|
||||||
|
|
@ -250,12 +250,12 @@ const menuList = readonly<any[]>([
|
||||||
path: "appoint-promote",
|
path: "appoint-promote",
|
||||||
role: "placement",
|
role: "placement",
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
key: 6.9,
|
// key: 6.9,
|
||||||
label: "รายการย้าย" /* */,
|
// label: "รายการย้าย" /* */,
|
||||||
path: "relocation",
|
// path: "relocation",
|
||||||
role: "placement",
|
// role: "placement",
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
key: 6.1,
|
key: 6.1,
|
||||||
label: "รายการอื่นๆ" /* */,
|
label: "รายการอื่นๆ" /* */,
|
||||||
|
|
|
||||||
|
|
@ -89,11 +89,11 @@ const fecthlistappointment = async () => {
|
||||||
console.log(res);
|
console.log(res);
|
||||||
let response = res.data.result;
|
let response = res.data.result;
|
||||||
listRecevice.value = response;
|
listRecevice.value = response;
|
||||||
// console.log(response);
|
console.log(response);
|
||||||
rows.value = response.map((e: any) => ({
|
rows.value = response.map((e: any) => ({
|
||||||
personalId: e.id,
|
personalId: e.id,
|
||||||
citizenId: e.citizenId,
|
citizenId: e.citizenId,
|
||||||
fullname: e.prefix+e.firstname + " " + e.lastname,
|
fullname: e.prefix + e.firstname + " " + e.lastname,
|
||||||
organizationName:
|
organizationName:
|
||||||
e.organizationName +
|
e.organizationName +
|
||||||
" " +
|
" " +
|
||||||
|
|
@ -107,12 +107,17 @@ const fecthlistappointment = async () => {
|
||||||
positionNumber: e.positionNumber,
|
positionNumber: e.positionNumber,
|
||||||
positionPath: e.positionPath,
|
positionPath: e.positionPath,
|
||||||
status: status(e.status),
|
status: status(e.status),
|
||||||
createdAt:date2Thai(e.createdAt),
|
createdAt: date2Thai(e.createdAt),
|
||||||
|
|
||||||
birthday: e.dateOfBirth == null ? "-" : date2Thai(e.dateOfBirth),
|
birthday: e.dateOfBirth == null ? "-" : date2Thai(e.dateOfBirth),
|
||||||
}));
|
}));
|
||||||
// console.log(rows.value);
|
// console.log(rows.value);
|
||||||
rows2.value = rows.value.filter((e: any) => e.orgName !== null);
|
rows2.value = rows.value.filter(
|
||||||
|
(e: any) =>
|
||||||
|
e.orgName !== null &&
|
||||||
|
e.status !== "ส่งรายชื่อไปออกคำสั่ง" &&
|
||||||
|
e.status !== "ออกคำสั่งเสร็จแล้ว"
|
||||||
|
);
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
console.log(typeof e);
|
console.log(typeof e);
|
||||||
|
|
@ -127,7 +132,10 @@ const fecthTypeOption = async () => {
|
||||||
.get(config.API.typeOrder())
|
.get(config.API.typeOrder())
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
optionsType.value = res.data.result.filter(
|
optionsType.value = res.data.result.filter(
|
||||||
(e: any) => e.commandCode === "C-PM-05" || e.commandCode === "C-PM-06"
|
(e: any) =>
|
||||||
|
e.commandCode === "C-PM-05" ||
|
||||||
|
e.commandCode === "C-PM-06" ||
|
||||||
|
e.commandCode === "C-PM-07"
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
|
|
@ -173,7 +181,6 @@ const columns = ref<QTableProps["columns"]>([
|
||||||
field: "organizationName",
|
field: "organizationName",
|
||||||
headerStyle: "font-size: 14px",
|
headerStyle: "font-size: 14px",
|
||||||
style: "font-size: 14px",
|
style: "font-size: 14px",
|
||||||
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "birthday",
|
name: "birthday",
|
||||||
|
|
@ -252,7 +259,6 @@ const columns2 = ref<QTableProps["columns"]>([
|
||||||
headerStyle: "font-size: 14px",
|
headerStyle: "font-size: 14px",
|
||||||
style: "font-size: 14px",
|
style: "font-size: 14px",
|
||||||
},
|
},
|
||||||
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const openModalTree = (id: string) => {
|
const openModalTree = (id: string) => {
|
||||||
|
|
@ -279,35 +285,64 @@ const deleteAppoint = async (id: string) => {
|
||||||
hideLoader();
|
hideLoader();
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const clickAddlist = () => {
|
const clickAddlist = () => {
|
||||||
dialogConfirm($q, () => createdAppoint());
|
dialogConfirm($q, () => createdAppoint());
|
||||||
};
|
};
|
||||||
const createdAppoint = async () => {
|
const createdAppoint = async () => {
|
||||||
let pId: string[] = [];
|
if (type.value == "c6de09ef-c1f8-4a39-aa31-c7ed88df01d9") {
|
||||||
selected.value.forEach((e: any) => {
|
let pId: string[] = [];
|
||||||
pId.push(e.personalId);
|
selected.value.forEach((e: any) => {
|
||||||
});
|
pId.push(e.personalId);
|
||||||
let data = {
|
|
||||||
id: pId,
|
|
||||||
};
|
|
||||||
console.log(data);
|
|
||||||
showLoader();
|
|
||||||
await http
|
|
||||||
.put(config.API.apppointmentReport(type.value), data)
|
|
||||||
.then((res: any) => {
|
|
||||||
console.log(res);
|
|
||||||
success($q, "บันทึกสำเร็จ");
|
|
||||||
})
|
|
||||||
.catch((e: any) => {
|
|
||||||
console.log(e);
|
|
||||||
messageError($q, e);
|
|
||||||
})
|
|
||||||
.finally(() => {
|
|
||||||
hideLoader();
|
|
||||||
fecthlistappointment();
|
|
||||||
selected.value = [];
|
|
||||||
modal.value = false;
|
|
||||||
});
|
});
|
||||||
|
let data = {
|
||||||
|
id: pId,
|
||||||
|
};
|
||||||
|
console.log(data);
|
||||||
|
showLoader();
|
||||||
|
await http
|
||||||
|
.post(config.API.relocationMainReport(), data)
|
||||||
|
.then((res: any) => {
|
||||||
|
console.log(res);
|
||||||
|
success($q, "บันทึกสำเร็จ");
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
console.log(e);
|
||||||
|
messageError($q, e);
|
||||||
|
})
|
||||||
|
.finally(async () => {
|
||||||
|
hideLoader();
|
||||||
|
fecthlistappointment();
|
||||||
|
selected.value = [];
|
||||||
|
modal.value = false;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
let pId: string[] = [];
|
||||||
|
selected.value.forEach((e: any) => {
|
||||||
|
pId.push(e.personalId);
|
||||||
|
});
|
||||||
|
let data = {
|
||||||
|
id: pId,
|
||||||
|
};
|
||||||
|
console.log(data);
|
||||||
|
showLoader();
|
||||||
|
await http
|
||||||
|
.put(config.API.apppointmentReport(type.value), data)
|
||||||
|
.then((res: any) => {
|
||||||
|
console.log(res);
|
||||||
|
success($q, "บันทึกสำเร็จ");
|
||||||
|
})
|
||||||
|
.catch((e: any) => {
|
||||||
|
console.log(e);
|
||||||
|
messageError($q, e);
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
hideLoader();
|
||||||
|
fecthlistappointment();
|
||||||
|
selected.value = [];
|
||||||
|
modal.value = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const closeModalTree = async () => {
|
const closeModalTree = async () => {
|
||||||
|
|
@ -340,11 +375,10 @@ const pagination = ref({
|
||||||
page: 1,
|
page: 1,
|
||||||
rowsPerPage: 10,
|
rowsPerPage: 10,
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="toptitle text-dark col-12 row items-center">
|
<div class="toptitle text-dark col-12 row items-center">
|
||||||
รายการแต่งตั้ง-เลื่อน
|
รายการแต่งตั้ง-เลื่อน-ย้าย
|
||||||
</div>
|
</div>
|
||||||
<q-card flat bordered class="col-12 q-mt-sm">
|
<q-card flat bordered class="col-12 q-mt-sm">
|
||||||
<q-separator />
|
<q-separator />
|
||||||
|
|
@ -363,7 +397,7 @@ const pagination = ref({
|
||||||
color="add"
|
color="add"
|
||||||
icon="mdi-account-arrow-right"
|
icon="mdi-account-arrow-right"
|
||||||
>
|
>
|
||||||
<q-tooltip>ส่งไปออกคำสั่งแต่งตั้ง-เลื่อน</q-tooltip>
|
<q-tooltip>ส่งไปออกคำสั่งแต่งตั้ง-เลื่อน-ย้าย</q-tooltip>
|
||||||
</q-btn>
|
</q-btn>
|
||||||
|
|
||||||
<q-space />
|
<q-space />
|
||||||
|
|
@ -413,7 +447,6 @@ const pagination = ref({
|
||||||
row-key="citizenId"
|
row-key="citizenId"
|
||||||
:visible-columns="visibleColumns"
|
:visible-columns="visibleColumns"
|
||||||
v-model:pagination="pagination"
|
v-model:pagination="pagination"
|
||||||
|
|
||||||
>
|
>
|
||||||
<template v-slot:header="props">
|
<template v-slot:header="props">
|
||||||
<q-tr :props="props">
|
<q-tr :props="props">
|
||||||
|
|
@ -503,7 +536,10 @@ const pagination = ref({
|
||||||
</q-td>
|
</q-td>
|
||||||
<q-td auto-width>
|
<q-td auto-width>
|
||||||
<q-btn
|
<q-btn
|
||||||
v-if="props.row.status !== 'ส่งรายชื่อไปออกคำสั่ง' && props.row.status !== 'ออกคำสั่งแล้ว'"
|
v-if="
|
||||||
|
props.row.status !== 'ส่งรายชื่อไปออกคำสั่ง' &&
|
||||||
|
props.row.status !== 'ออกคำสั่งแล้ว'
|
||||||
|
"
|
||||||
icon="mdi-dots-vertical"
|
icon="mdi-dots-vertical"
|
||||||
size="12px"
|
size="12px"
|
||||||
color="grey-7"
|
color="grey-7"
|
||||||
|
|
@ -532,9 +568,7 @@ const pagination = ref({
|
||||||
name="mdi-bookmark-outline"
|
name="mdi-bookmark-outline"
|
||||||
/>
|
/>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
<q-item-section
|
<q-item-section>เลือกหน่วยงาน/ตำแหน่ง</q-item-section>
|
||||||
>เลือกหน่วยงานที่รับโอน</q-item-section
|
|
||||||
>
|
|
||||||
</q-item>
|
</q-item>
|
||||||
<q-item
|
<q-item
|
||||||
clickable
|
clickable
|
||||||
|
|
@ -565,7 +599,10 @@ const pagination = ref({
|
||||||
|
|
||||||
<q-dialog v-model="modal">
|
<q-dialog v-model="modal">
|
||||||
<q-card style="width: 1200px; max-width: 80vw">
|
<q-card style="width: 1200px; max-width: 80vw">
|
||||||
<DialogHeader title="ส่งไปรายการแต่งตั้ง - เลื่อน" :close="clickClose" />
|
<DialogHeader
|
||||||
|
title="ส่งไปรายการแต่งตั้ง - เลื่อน - ย้าย"
|
||||||
|
:close="clickClose"
|
||||||
|
/>
|
||||||
<q-separator />
|
<q-separator />
|
||||||
<q-card-section class="q-pt-none">
|
<q-card-section class="q-pt-none">
|
||||||
<div class="row justify-between">
|
<div class="row justify-between">
|
||||||
|
|
@ -576,7 +613,7 @@ const pagination = ref({
|
||||||
dense
|
dense
|
||||||
v-model="type"
|
v-model="type"
|
||||||
:options="optionsType"
|
:options="optionsType"
|
||||||
label="คำสั่งแต่งตั่ง - เลื่อน"
|
label="คำสั่งแต่งตั่ง - เลื่อน - ย้าย"
|
||||||
style="width: 400px; max-width: auto"
|
style="width: 400px; max-width: auto"
|
||||||
emit-value
|
emit-value
|
||||||
map-options
|
map-options
|
||||||
|
|
|
||||||
|
|
@ -114,7 +114,7 @@ const fecthlistOthet = async () => {
|
||||||
fullname: `${r.prefix ?? ""} ${r.firstname ?? ""} ${r.lastname ?? ""}`,
|
fullname: `${r.prefix ?? ""} ${r.firstname ?? ""} ${r.lastname ?? ""}`,
|
||||||
}));
|
}));
|
||||||
console.log(rows.value);
|
console.log(rows.value);
|
||||||
rows2.value = rows.value.filter((e: any) => e.orgName !== null);
|
rows2.value = rows.value.filter((e: any) => e.orgName !== null && e.status !== 'REPORT'&& e.status !== 'DONE');
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
messageError($q);
|
messageError($q);
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,36 @@ const status = ref<string>("");
|
||||||
|
|
||||||
const myForm = ref<QForm | null>(null);
|
const myForm = ref<QForm | null>(null);
|
||||||
const edit = ref<boolean>(false);
|
const edit = ref<boolean>(false);
|
||||||
|
const rows = ref<any[]>([]);
|
||||||
|
const columns = ref<QTableProps["columns"]>([
|
||||||
|
{
|
||||||
|
name: "no",
|
||||||
|
align: "left",
|
||||||
|
label: "ลำดับ",
|
||||||
|
sortable: true,
|
||||||
|
field: "no",
|
||||||
|
headerStyle: "font-size: 14px",
|
||||||
|
style: "font-size: 14px",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "fileName",
|
||||||
|
align: "left",
|
||||||
|
label: "ชื่อไฟล์",
|
||||||
|
sortable: true,
|
||||||
|
field: "fileName",
|
||||||
|
headerStyle: "font-size: 14px",
|
||||||
|
style: "font-size: 14px",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "btnMicrosoft",
|
||||||
|
align: "right",
|
||||||
|
label: "ปุ่ม",
|
||||||
|
sortable: true,
|
||||||
|
field: "btnMicrosoft",
|
||||||
|
headerStyle: "font-size: 14px",
|
||||||
|
style: "font-size: 14px",
|
||||||
|
},
|
||||||
|
]);
|
||||||
const profileId = ref<string>("");
|
const profileId = ref<string>("");
|
||||||
const educationOld = ref<string>("");
|
const educationOld = ref<string>("");
|
||||||
const organizationPositionOld = ref<string>("");
|
const organizationPositionOld = ref<string>("");
|
||||||
|
|
@ -170,7 +199,17 @@ const getData = async () => {
|
||||||
.get(config.API.receiveDataId(paramsId.toString()))
|
.get(config.API.receiveDataId(paramsId.toString()))
|
||||||
.then(async (res: any) => {
|
.then(async (res: any) => {
|
||||||
const data = res.data.result;
|
const data = res.data.result;
|
||||||
|
// console.log(data);
|
||||||
|
let list: any[] = [];
|
||||||
|
if (data.docs.length > 0) {
|
||||||
|
data.docs.map((doc: any) => {
|
||||||
|
list.push({
|
||||||
|
pathName: doc.pathName ?? "",
|
||||||
|
fileName: doc.fileName ?? "",
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
rows.value = list;
|
||||||
profileId.value = data.profileId;
|
profileId.value = data.profileId;
|
||||||
title.value.fullname = `${data.firstname ?? "-"} ${data.lastname ?? "-"}`;
|
title.value.fullname = `${data.firstname ?? "-"} ${data.lastname ?? "-"}`;
|
||||||
title.value.organizationPositionOld = data.organizationPositionOld ?? "-";
|
title.value.organizationPositionOld = data.organizationPositionOld ?? "-";
|
||||||
|
|
@ -1012,6 +1051,37 @@ const getClass = (val: boolean) => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</q-form>
|
</q-form>
|
||||||
|
<q-card bordered class="row col-12 text-dark q-mt-sm">
|
||||||
|
<div class="bg-grey-1 q-pa-sm col-12 row items-center text-primary">
|
||||||
|
<div class="q-pl-sm text-weight-bold text-dark">เอกสารเพิ่มเติม</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-12"><q-separator /></div>
|
||||||
|
<div class="col-12">
|
||||||
|
<d-table
|
||||||
|
:rows="rows"
|
||||||
|
:columns="columns"
|
||||||
|
row-key="fileName"
|
||||||
|
hide-header
|
||||||
|
hide-bottom
|
||||||
|
>
|
||||||
|
<template v-slot:body="props">
|
||||||
|
<q-tr :props="props" class="cursor-pointer">
|
||||||
|
<q-td key="no" :props="props">
|
||||||
|
{{ props.rowIndex + 1 }}
|
||||||
|
</q-td>
|
||||||
|
<q-td key="fileName" :props="props">
|
||||||
|
{{ props.row.fileName }}
|
||||||
|
</q-td>
|
||||||
|
<q-td key="btnMicrosoft" :props="props">
|
||||||
|
<q-btn type="a" target="_blank" :href="props.row.pathName" flat dense round color="red" icon="picture_as_pdf">
|
||||||
|
<q-tooltip>ไฟล์ PDF</q-tooltip>
|
||||||
|
</q-btn>
|
||||||
|
</q-td>
|
||||||
|
</q-tr>
|
||||||
|
</template>
|
||||||
|
</d-table>
|
||||||
|
</div>
|
||||||
|
</q-card>
|
||||||
</q-card>
|
</q-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,8 @@ const popup = () => {
|
||||||
modal.value = true;
|
modal.value = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const modalupload = ref<boolean>(false);
|
||||||
|
|
||||||
const modalTree = ref<boolean>(false);
|
const modalTree = ref<boolean>(false);
|
||||||
const personal = ref<any[]>([]);
|
const personal = ref<any[]>([]);
|
||||||
const personalId = ref<string>("");
|
const personalId = ref<string>("");
|
||||||
|
|
@ -70,7 +72,8 @@ const visibleColumns2 = ref<string[]>([
|
||||||
const filterKeyword = ref<string>("");
|
const filterKeyword = ref<string>("");
|
||||||
const filterKeyword2 = ref<string>("");
|
const filterKeyword2 = ref<string>("");
|
||||||
const filterRef = ref<any>(null);
|
const filterRef = ref<any>(null);
|
||||||
|
const files = ref<any>();
|
||||||
|
const fileDocDataUpload = ref<File[]>([]);
|
||||||
const listRecevice = ref<any[]>([]);
|
const listRecevice = ref<any[]>([]);
|
||||||
const filters = ref<ResponseRow[]>([]);
|
const filters = ref<ResponseRow[]>([]);
|
||||||
const rows = ref<ResponseRow[]>([
|
const rows = ref<ResponseRow[]>([
|
||||||
|
|
@ -309,6 +312,32 @@ const fecthlistRecevice = async () => {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const fileUploadDoc = async (files: any) => {
|
||||||
|
files.forEach((file: any) => {
|
||||||
|
fileDocDataUpload.value.push(file);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const addUpload= async () => {
|
||||||
|
// showLoader();
|
||||||
|
// await http
|
||||||
|
// .post(config.API.listRoundInsignia())
|
||||||
|
// .then(() => {
|
||||||
|
// success($q, "บันทึกข้อมูลสำเร็จ");
|
||||||
|
// })
|
||||||
|
// .catch((e) => {
|
||||||
|
// messageError($q, e);
|
||||||
|
// })
|
||||||
|
// .finally(async () => {
|
||||||
|
// hideLoader();
|
||||||
|
// });
|
||||||
|
};
|
||||||
|
|
||||||
|
const SaveData = async () => {
|
||||||
|
await addUpload();
|
||||||
|
await clickCloseUpload();
|
||||||
|
};
|
||||||
|
|
||||||
const resetFilter = () => {
|
const resetFilter = () => {
|
||||||
filterKeyword.value = "";
|
filterKeyword.value = "";
|
||||||
filterKeyword2.value = "";
|
filterKeyword2.value = "";
|
||||||
|
|
@ -328,6 +357,9 @@ const add = () => {
|
||||||
const clickClose = () => {
|
const clickClose = () => {
|
||||||
modal.value = false;
|
modal.value = false;
|
||||||
};
|
};
|
||||||
|
const clickCloseUpload = () => {
|
||||||
|
modalupload.value = false;
|
||||||
|
};
|
||||||
|
|
||||||
const openModalTree = (id: string) => {
|
const openModalTree = (id: string) => {
|
||||||
personalId.value = id;
|
personalId.value = id;
|
||||||
|
|
@ -337,6 +369,11 @@ const openModalTree = (id: string) => {
|
||||||
modalTree.value = true;
|
modalTree.value = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const openUpload = (id: string) => {
|
||||||
|
personalId.value = id;
|
||||||
|
modalupload.value = true;
|
||||||
|
};
|
||||||
|
|
||||||
const openDelete = (id: string) => {
|
const openDelete = (id: string) => {
|
||||||
dialogRemove($q, async () => await fetchDataDelete(id));
|
dialogRemove($q, async () => await fetchDataDelete(id));
|
||||||
};
|
};
|
||||||
|
|
@ -594,6 +631,35 @@ const saveOrder = async () => {
|
||||||
>เลือกหน่วยงานที่รับโอน</q-item-section
|
>เลือกหน่วยงานที่รับโอน</q-item-section
|
||||||
>
|
>
|
||||||
</q-item>
|
</q-item>
|
||||||
|
<q-item
|
||||||
|
clickable
|
||||||
|
v-close-popup
|
||||||
|
@click="openUpload(props.row.personalId)"
|
||||||
|
:disable="
|
||||||
|
props.row.status == 'REPORT' ||
|
||||||
|
props.row.status == 'DONE'
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<q-item-section
|
||||||
|
style="min-width: 0px"
|
||||||
|
avatar
|
||||||
|
class="q-py-sm"
|
||||||
|
>
|
||||||
|
<q-icon
|
||||||
|
:color="
|
||||||
|
props.row.status == 'REPORT' ||
|
||||||
|
props.row.status == 'DONE'
|
||||||
|
? 'grey'
|
||||||
|
: 'blue'
|
||||||
|
"
|
||||||
|
size="xs"
|
||||||
|
name="attach_file"
|
||||||
|
/>
|
||||||
|
</q-item-section>
|
||||||
|
<q-item-section
|
||||||
|
>อัพโหลดเอกสาร</q-item-section
|
||||||
|
>
|
||||||
|
</q-item>
|
||||||
<q-item
|
<q-item
|
||||||
clickable
|
clickable
|
||||||
v-close-popup
|
v-close-popup
|
||||||
|
|
@ -794,6 +860,47 @@ const saveOrder = async () => {
|
||||||
</q-card>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
|
|
||||||
|
<q-dialog v-model="modalupload">
|
||||||
|
<q-card style="width: 600px">
|
||||||
|
<DialogHeader title="อัพโหลดเอกสาร" :close="clickCloseUpload" />
|
||||||
|
<q-separator />
|
||||||
|
<q-separator />
|
||||||
|
<q-card-section class="q-pt-none">
|
||||||
|
<div class="col-12 row items-center q-col-gutter-sm">
|
||||||
|
<div class="col-12">
|
||||||
|
<q-file
|
||||||
|
outlined
|
||||||
|
dense
|
||||||
|
v-model="files"
|
||||||
|
@added="fileUploadDoc"
|
||||||
|
label="อัพโหลดเอกสาร"
|
||||||
|
lazy-rules
|
||||||
|
>
|
||||||
|
<!-- :rules="[
|
||||||
|
(val) => val || 'กรุณาเลือกไฟล์หนังสือถึงหน่วยงานที่รับโอน',
|
||||||
|
]" -->
|
||||||
|
<template v-slot:prepend>
|
||||||
|
<q-icon name="attach_file" />
|
||||||
|
</template>
|
||||||
|
</q-file>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</q-card-section>
|
||||||
|
<q-card-actions class="text-primary q-py-sm">
|
||||||
|
<q-space />
|
||||||
|
<q-btn
|
||||||
|
flat
|
||||||
|
round
|
||||||
|
color="public"
|
||||||
|
@click="SaveData"
|
||||||
|
icon="mdi-content-save-outline"
|
||||||
|
>
|
||||||
|
<q-tooltip>บันทึก</q-tooltip>
|
||||||
|
</q-btn>
|
||||||
|
</q-card-actions>
|
||||||
|
</q-card>
|
||||||
|
</q-dialog>
|
||||||
|
|
||||||
<DialogOrgTree
|
<DialogOrgTree
|
||||||
v-model:modal="modalTree"
|
v-model:modal="modalTree"
|
||||||
:close="closeModalTree"
|
:close="closeModalTree"
|
||||||
|
|
|
||||||
|
|
@ -167,10 +167,10 @@
|
||||||
{{ props.row.fileName }}
|
{{ props.row.fileName }}
|
||||||
</q-td>
|
</q-td>
|
||||||
<q-td key="btnMicrosoft" :props="props">
|
<q-td key="btnMicrosoft" :props="props">
|
||||||
<q-btn flat dense round color="red" icon="picture_as_pdf">
|
<q-btn flat dense round color="red" icon="picture_as_pdf" @click="fileDownload(props.row.no,'pdf')">
|
||||||
<q-tooltip>ดาวน์โหลด</q-tooltip>
|
<q-tooltip>ไฟล์ PDF</q-tooltip>
|
||||||
</q-btn>
|
</q-btn>
|
||||||
<q-btn flat dense round color="blue" icon="mdi-file-word">
|
<q-btn flat dense round color="blue" icon="mdi-file-word" @click="fileDownload(props.row.no,'docx')">
|
||||||
<q-tooltip>ไฟล์ WORD</q-tooltip>
|
<q-tooltip>ไฟล์ WORD</q-tooltip>
|
||||||
</q-btn>
|
</q-btn>
|
||||||
</q-td>
|
</q-td>
|
||||||
|
|
@ -423,8 +423,9 @@ const $q = useQuasar();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const mixin = useCounterMixin();
|
const mixin = useCounterMixin();
|
||||||
|
const id = ref<string>("")
|
||||||
|
const dataId = (route.params.id as string);
|
||||||
|
|
||||||
const dataId = route.params.id;
|
|
||||||
const {
|
const {
|
||||||
date2Thai,
|
date2Thai,
|
||||||
messageError,
|
messageError,
|
||||||
|
|
@ -463,7 +464,34 @@ const responseData = ref<ResponseDataDetail>({
|
||||||
status: "",
|
status: "",
|
||||||
fullname: "",
|
fullname: "",
|
||||||
});
|
});
|
||||||
|
const downloadFile = (response: any, filename: string) => {
|
||||||
|
const link = document.createElement("a");
|
||||||
|
var fileName = filename;
|
||||||
|
link.href = window.URL.createObjectURL(new Blob([response.data]));
|
||||||
|
link.setAttribute("download", fileName);
|
||||||
|
document.body.appendChild(link);
|
||||||
|
link.click();
|
||||||
|
document.body.removeChild(link);
|
||||||
|
};
|
||||||
|
const fileDownload = async (no:number,type:string) =>{
|
||||||
|
showLoader();
|
||||||
|
await http
|
||||||
|
.get(config.API.reportTransferFile(no,type,id.value), {
|
||||||
|
responseType: "blob",
|
||||||
|
})
|
||||||
|
.then(async (res) => {
|
||||||
|
downloadFile(
|
||||||
|
res,
|
||||||
|
`_ครั้งที่.${type}`
|
||||||
|
);
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
messageError($q, e);
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
hideLoader();
|
||||||
|
});
|
||||||
|
};
|
||||||
const rows = ref<TypeFile[]>([]);
|
const rows = ref<TypeFile[]>([]);
|
||||||
const columns = ref<QTableProps["columns"]>([
|
const columns = ref<QTableProps["columns"]>([
|
||||||
{
|
{
|
||||||
|
|
@ -503,22 +531,28 @@ onMounted(async () => {
|
||||||
await getData();
|
await getData();
|
||||||
});
|
});
|
||||||
|
|
||||||
const rowsFileDownload = ref<TypeFile[]>([{
|
const rowsFileDownload = ref<any[]>([{
|
||||||
|
no:1,
|
||||||
fileName: "คําร้องขอโอนไปถึงส่วนราชการอื่นนอก กรุงเทพมหานครที่ข้าราชการประสงค์ขอโอน",
|
fileName: "คําร้องขอโอนไปถึงส่วนราชการอื่นนอก กรุงเทพมหานครที่ข้าราชการประสงค์ขอโอน",
|
||||||
pathName: ""
|
pathName: ""
|
||||||
},{
|
},{
|
||||||
|
no:2,
|
||||||
fileName: "หนังสือแจ้งสํานักงานการเจ้าหน้าที่ สํานักปลัดกรุงเทพมหานคร ให้ทราบตําแหน่งและตําแหน่งเลขที่ที่ดําเนินการให้โอน",
|
fileName: "หนังสือแจ้งสํานักงานการเจ้าหน้าที่ สํานักปลัดกรุงเทพมหานคร ให้ทราบตําแหน่งและตําแหน่งเลขที่ที่ดําเนินการให้โอน",
|
||||||
pathName: ""
|
pathName: ""
|
||||||
},{
|
},{
|
||||||
|
no:3,
|
||||||
fileName: "หนังสือยินยอมให้โอนและวันที่พร้อมจะให้โอนไปยัง หน่วยงานที่รับโอน",
|
fileName: "หนังสือยินยอมให้โอนและวันที่พร้อมจะให้โอนไปยัง หน่วยงานที่รับโอน",
|
||||||
pathName: ""
|
pathName: ""
|
||||||
},{
|
},{
|
||||||
|
no:4,
|
||||||
fileName: "หนังสือแจ้งสหกรณ์ออมทรัพย์กรุงเทพมหานครเพื่อขอ ตรวจสอบภาระหนี้สินสหกรณ์ออมทรัพย์",
|
fileName: "หนังสือแจ้งสหกรณ์ออมทรัพย์กรุงเทพมหานครเพื่อขอ ตรวจสอบภาระหนี้สินสหกรณ์ออมทรัพย์",
|
||||||
pathName: ""
|
pathName: ""
|
||||||
},{
|
},{
|
||||||
|
no:5,
|
||||||
fileName: "หนังสือถึงสํานักงานการเจ้าหน้าที่ สํานักปลัดกรุงเทพมหานครเพื่อขอตรวจสอบพฤติการณ์ทางวินัย และภาระหนี้สินสวัสดิการ",
|
fileName: "หนังสือถึงสํานักงานการเจ้าหน้าที่ สํานักปลัดกรุงเทพมหานครเพื่อขอตรวจสอบพฤติการณ์ทางวินัย และภาระหนี้สินสวัสดิการ",
|
||||||
pathName: ""
|
pathName: ""
|
||||||
},{
|
},{
|
||||||
|
no:6,
|
||||||
fileName: "หนังสือถึงสถาบันพัฒนาข้าราชการกรุงเทพมหานครเพื่อขอตรวจสอบเรื่องภาระผูกพันการรับทุนและการลา ศึกษาต่อกับทางกรุงเทพมหานคร",
|
fileName: "หนังสือถึงสถาบันพัฒนาข้าราชการกรุงเทพมหานครเพื่อขอตรวจสอบเรื่องภาระผูกพันการรับทุนและการลา ศึกษาต่อกับทางกรุงเทพมหานคร",
|
||||||
pathName: ""
|
pathName: ""
|
||||||
}]);
|
}]);
|
||||||
|
|
@ -529,7 +563,7 @@ const getData = async () => {
|
||||||
.get(config.API.transferId(dataId.toString()))
|
.get(config.API.transferId(dataId.toString()))
|
||||||
.then((res: any) => {
|
.then((res: any) => {
|
||||||
const data = res.data.result;
|
const data = res.data.result;
|
||||||
// console.log(data);
|
id.value = data.id
|
||||||
let list: TypeFile[] = [];
|
let list: TypeFile[] = [];
|
||||||
if (data.docs.length > 0) {
|
if (data.docs.length > 0) {
|
||||||
data.docs.map((doc: TypeFile) => {
|
data.docs.map((doc: TypeFile) => {
|
||||||
|
|
|
||||||
|
|
@ -488,7 +488,7 @@ const saveOrder = async () => {
|
||||||
|
|
||||||
<q-dialog v-model="modal">
|
<q-dialog v-model="modal">
|
||||||
<q-card style="width: 1200px; max-width: 80vw">
|
<q-card style="width: 1200px; max-width: 80vw">
|
||||||
<DialogHeader title="ส่งไปออกคำสั่งโอนออก" :close="closeModal" />
|
<DialogHeader title="ส่งไปออกคำสั่ง" :close="closeModal" />
|
||||||
<q-separator />
|
<q-separator />
|
||||||
<q-card-section class="q-pt-none">
|
<q-card-section class="q-pt-none">
|
||||||
<div class="row justify-end">
|
<div class="row justify-end">
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue