Refactoring code module 06_retirement

This commit is contained in:
STW_TTTY\stwtt 2024-09-18 15:18:57 +07:00
parent 1225254062
commit ea921b39b0
29 changed files with 730 additions and 823 deletions

View file

@ -2,27 +2,27 @@
import { ref, onMounted } from "vue";
import type { QTableProps } from "quasar";
import { useQuasar } from "quasar";
import { useCounterMixin } from "@/stores/mixin";
import { useRouter } from "vue-router";
import http from "@/plugins/http";
import config from "@/app.config";
import { useCounterMixin } from "@/stores/mixin";
import { checkPermission } from "@/utils/permissions";
/** Use */
const router = useRouter();
const $q = useQuasar();
const router = useRouter();
const mixin = useCounterMixin();
const {
showLoader,
hideLoader,
messageError,
success,
date2Thai,
findOrgName,
} = mixin;
const { showLoader, hideLoader, messageError, date2Thai, findOrgName } = mixin;
/** คอลัมน์ */
const rows = ref<any[]>([]);
const pagination = ref({
sortBy: "createdAt",
descending: true,
page: 1,
rowsPerPage: 10,
});
const columns = ref<QTableProps["columns"]>([
{
name: "no",
@ -74,16 +74,6 @@ const columns = ref<QTableProps["columns"]>([
return name;
},
},
// {
// name: "positionExecutive",
// align: "left",
// label: "",
// sortable: true,
// field: "positionExecutive",
// headerStyle: "font-size: 14px",
// style: "font-size: 14px",
// },
{
name: "org",
align: "left",
@ -120,13 +110,8 @@ const visibleColumns = ref<string[]>([
"createdAt",
]);
/**Hook */
onMounted(() => {
fectListDecased();
});
/**เรียกข้อมูลจาก APi */
const fectListDecased = async () => {
async function fectListDecased() {
showLoader();
await http
.get(config.API.listDeceased())
@ -140,25 +125,24 @@ const fectListDecased = async () => {
.finally(() => {
hideLoader();
});
};
}
//
const filterKeyword = ref<string>("");
const filterRef = ref<any>(null);
const resetFilter = () => {
function resetFilter() {
filterKeyword.value = "";
filterRef.value.focus();
};
}
/** Setting Pagination */
const nextPage = (id: string) => {
function nextPage(id: string) {
router.push("/retirement/deceased/" + id);
};
const pagination = ref({
sortBy: "createdAt",
descending: true,
page: 1,
rowsPerPage: 10,
}
/**Hook */
onMounted(() => {
fectListDecased();
});
</script>
<template>

View file

@ -1,22 +1,18 @@
<script setup lang="ts">
import { ref, onMounted, reactive } from "vue";
import { useQuasar } from "quasar";
import { useCounterMixin } from "@/stores/mixin";
import DialogHeader from "@/modules/04_registry/components/DialogHeader.vue";
import { useRouter, useRoute } from "vue-router";
import type { QInput, QForm } from "quasar";
import type { treeTab } from "@/modules/05_placement/interface/index/Main";
import http from "@/plugins/http";
import config from "@/app.config";
import { useCounterMixin } from "@/stores/mixin";
import type { QTableProps } from "quasar";
import type {
requestSendNoti,
DataCopyOrder,
FormActive,
ResponseOrganiz,
OrgTree,
TreeMain,
} from "@/modules/06_retirement/interface/response/Deceased";
import { useRouter, useRoute } from "vue-router";
import DialogOrgSelectOneStep from "@/components/Dialogs/DialogOrgSelectOneStep.vue";
@ -45,7 +41,6 @@ const props = defineProps({
default: () => console.log("not function"),
},
});
const itemTaps = ref<string[]>();
const profileId = ref<string>(route.params.id.toString());
const next = () => props.next();
@ -55,24 +50,10 @@ const filterRef = ref<QInput>();
const filter = ref<string>("");
const modalSelectOrg = ref<boolean>(false);
const nodes = ref<Array<OrgTree>>([]);
const selectedModal = ref<any[]>([]);
const rows = ref<DataCopyOrder[]>([]);
const editRows = ref<DataCopyOrder[]>([]);
/** active form */
const formActive = reactive<FormActive>({
activeId: "",
activeName: "",
draftId: "",
draftName: "",
orgPublishDate: null,
isPublic: false,
});
/** คอลัมน์Modal */
const rowsModal = ref<ResponseOrganiz[]>([]);
/** selcet OPtion */
const optionSelect = ref<any>([
{ id: 1, name: "อีเมล" },
@ -139,13 +120,8 @@ const columns = ref<QTableProps["columns"]>([
},
]);
/** Hook */
onMounted(async () => {
await getData();
});
/** เรียกข้อมูลจาก api */
const getData = async () => {
async function getData() {
showLoader();
await http
.get(config.API.detailByidDeceased(profileId.value))
@ -189,7 +165,7 @@ const getData = async () => {
.finally(async () => {
hideLoader();
});
};
}
/**
*งก Save
@ -213,22 +189,22 @@ async function saveData() {
});
}
const resetFilter = () => {
function resetFilter() {
// reset X
filter.value = "";
filterRef.value!.focus();
};
}
/**
* class ดรปแบบแสดงระหวางขอมลทแกไขหรอแสดงเฉยๆ
* @param val อม input สำหรบแกไขหรอไม
*/
const getClass = (val: boolean) => {
function getClass(val: boolean) {
return {
"full-width inputgreen cursor-pointer": val,
"full-width cursor-pointer": !val,
};
};
}
/**
* กดปมเพมดานบน table
@ -243,67 +219,12 @@ function clickAdd() {
/**
* ลบขอม
*/
const clickDelete = (id: string) => {
function clickDelete(id: string) {
dialogRemove($q, () => deleteData(id));
};
/** ดึงข้อมูล active */
async function getActive() {
showLoader();
await http
.get(config.API.activeOrganization)
.then((res) => {
const data = res.data.result;
formActive.activeId = data.activeId;
formActive.activeName = data.activeName;
formActive.draftId = data.draftId;
formActive.draftName = data.draftName;
formActive.orgPublishDate = data.orgPublishDate;
formActive.isPublic = data.isPublic;
getTreeData(data.activeId);
})
.catch((err) => {
messageError($q, err);
})
.finally(() => {
hideLoader();
});
}
/** ดึงข้อมูล หน่วยงาน */
async function getTreeData(id: string) {
showLoader();
await http
.get(config.API.orgByIdSystem(id, route.meta.Key as string))
.then((res) => {
const data = res.data.result;
nodes.value = data;
filterItemsTaps(data);
})
.catch((err) => {
messageError($q, err);
})
.finally(() => {
hideLoader();
});
}
function filterItemsTaps(data: TreeMain[]) {
let orgTreeIds: string[] = [];
for (const child of data) {
orgTreeIds.push(child.orgTreeId);
if (child.children) {
orgTreeIds = orgTreeIds.concat(filterItemsTaps(child.children));
}
}
itemTaps.value = orgTreeIds;
return orgTreeIds;
}
/**ลบข้อมูล */
const deleteData = async (id: string) => {
async function deleteData(id: string) {
await http
.delete(config.API.detailByidDeceased(id))
.then((res) => {
@ -315,12 +236,12 @@ const deleteData = async (id: string) => {
.finally(async () => {
await getData();
});
};
}
/**
* Save อม
*/
const saveDataCopyOrder = async () => {
async function saveDataCopyOrder() {
if (myForm.value !== null) {
myForm.value.validate().then(async (result: boolean) => {
if (result) {
@ -333,9 +254,9 @@ const saveDataCopyOrder = async () => {
}
});
}
};
}
// Save
const fetchSaveCopyOrder = async () => {
async function fetchSaveCopyOrder() {
let list: requestSendNoti[] = [];
rows.value.map((r: DataCopyOrder) => {
list.push({
@ -359,10 +280,16 @@ const fetchSaveCopyOrder = async () => {
hideLoader();
getData();
});
};
const updateData = (row: DataCopyOrder) => {
}
function updateData(row: DataCopyOrder) {
editRows.value.push(row);
};
}
/** Hook */
onMounted(async () => {
await getData();
});
</script>
<template>

View file

@ -2,21 +2,18 @@
import { useRouter, useRoute } from "vue-router";
import { useQuasar } from "quasar";
import { ref, onMounted } from "vue";
import http from "@/plugins/http";
import config from "@/app.config";
import genReport from "@/plugins/genreport";
/** importType*/
import type { DataProfile } from "@/modules/05_placement/interface/index/Main";
import type { ResDetailDeceased } from "@/modules/06_retirement/interface/response/Deceased";
/** importComponents*/
import CardProfile from "@/components/CardProfile.vue";
/** importStore*/
import { useCounterMixin } from "@/stores/mixin";
import { checkPermission } from "@/utils/permissions";
import genReport from "@/plugins/genreport";
import type { DataProfile } from "@/modules/05_placement/interface/index/Main";
import type { ResDetailDeceased } from "@/modules/06_retirement/interface/response/Deceased";
import CardProfile from "@/components/CardProfile.vue";
/**use*/
const $q = useQuasar();
@ -30,13 +27,8 @@ const detail = ref<ResDetailDeceased>();
const dataProfile = ref<DataProfile>();
/** Hook */
onMounted(() => {
fetchData();
});
// API
const fetchData = async () => {
/** นำข้อมูลจาก API มาแสดง */
async function fetchData() {
showLoader();
await http
.get(config.API.detailDeceased(profileId.value))
@ -52,23 +44,23 @@ const fetchData = async () => {
.finally(() => {
hideLoader();
});
};
}
//detail deceased
const openDeceased = (id: string) => {
/** เปิดdetail ของ deceased */
function openDeceased(id: string) {
router.push(`/retirement/deceased/detail/${id}`);
};
}
//
const nextPage = (page: string) => {
/** ไปหน้าถัดไป */
function nextPage(page: string) {
window.open(page, "_blank");
};
}
/**
* งก ดาวโหลด
* @param type typeของรายละเอยด
*/
const fileDownload = async (type: string) => {
async function fileDownload(type: string) {
showLoader();
await http
.get(config.API.DeceasedReport(type, profileId.value))
@ -86,7 +78,12 @@ const fileDownload = async (type: string) => {
hideLoader();
})
.finally(() => {});
};
}
/** Hook */
onMounted(() => {
fetchData();
});
</script>
<template>

View file

@ -1,21 +1,39 @@
<script setup lang="ts">
import { ref, computed, watchEffect } from "vue";
import { useQuasar } from "quasar";
import { useCounterMixin } from "@/stores/mixin";
import type { QTableProps } from "quasar";
import type { ResponseItems } from "@/modules/06_retirement/interface/response/Main";
import DialogHeader from "@/components/DialogHeader.vue";
import http from "@/plugins/http";
import config from "@/app.config";
import { useCounterMixin } from "@/stores/mixin";
import type { ResponseItems } from "@/modules/06_retirement/interface/response/Main";
import DialogHeader from "@/components/DialogHeader.vue";
/** use */
const $q = useQuasar();
const selected = ref<ResponseItems[]>([]);
const mixin = useCounterMixin();
const { showLoader, success, messageError, dialogConfirm, hideLoader } = mixin;
const filterKeyword = ref<string>("");
const filterRef = ref<any>(null);
/** props*/
const props = defineProps({
modal: Boolean,
closeModal: Function,
fecthlist: Function,
rows2: Array,
filterKeyword2: String,
});
/**
* งกนการ Selected Data
*/
const checkSelected = computed(() => {
if (selected.value.length === 0) {
return true;
}
});
/** คอลัมน์ */
const columns2 = ref<QTableProps["columns"]>([
@ -132,41 +150,17 @@ const visibleColumns2 = ref<string[]>([
"statustext",
]);
/** props*/
const props = defineProps({
modal: Boolean,
closeModal: Function,
fecthlist: Function,
rows2: Array,
filterKeyword2: String,
});
//reset
const resetFilter = () => {
filterKeyword.value = "";
filterRef.value.focus();
};
/**
* งกนการ Selected Data
*/
const checkSelected = computed(() => {
if (selected.value.length === 0) {
return true;
}
});
//popup
const saveOrder = () => {
/** popup ยืนยันส่งัว */
function saveOrder() {
dialogConfirm(
$q,
() => Ordersave(),
"ยืนยันส่งไปออกคำสั่ง",
"ต้องการยืนยันส่งไปออกคำสั่งใช่หรือไม่?"
);
};
//
const Ordersave = async () => {
}
/** ส่งไปออกคำสั่ง */
async function Ordersave() {
const id = selected.value.map((r) => r.id);
const body = {
id,
@ -185,17 +179,18 @@ const Ordersave = async () => {
props.fecthlist?.();
hideLoader();
});
};
}
const emit = defineEmits(["update:filterKeyword2", "update:selected"]);
const updateInput = (value: any) => {
function updateInput(value: any) {
emit("update:filterKeyword2", value);
};
}
//
const Reset = () => {
/** รีเซ็ตค่าในช่องค้นหา */
function Reset() {
emit("update:filterKeyword2", "");
};
}
watchEffect(() => {
if (props.modal === true) {
selected.value = [];

View file

@ -1,19 +1,23 @@
<script setup lang="ts">
import { ref, onMounted, computed } from "vue";
import { ref, onMounted } from "vue";
import { useQuasar } from "quasar";
import { useRouter } from "vue-router";
import { useCounterMixin } from "@/stores/mixin";
import { useRetirementDataStore } from "@/modules/06_retirement/store";
import DialogSendToCommand from "@/modules/06_retirement/components/resign/DialogSendToCommand.vue";
import type { QTableProps } from "quasar";
import http from "@/plugins/http";
import config from "@/app.config";
import type { QTableProps } from "quasar";
import type { ResponseItems } from "@/modules/06_retirement/interface/response/Main";
import { useCounterMixin } from "@/stores/mixin";
import { useRetirementDataStore } from "@/modules/06_retirement/store";
import { checkPermission } from "@/utils/permissions";
import type { ResponseItems } from "@/modules/06_retirement/interface/response/Main";
import DialogSendToCommand from "@/modules/06_retirement/components/resign/DialogSendToCommand.vue";
/** use */
const $q = useQuasar(); // noti quasar
const RetirementData = useRetirementDataStore();
const { statusText } = RetirementData;
const $q = useQuasar(); // noti quasar
const router = useRouter();
const mixin = useCounterMixin();
const { messageError, date2Thai, showLoader, hideLoader } = mixin;
@ -144,19 +148,27 @@ const filterRef = ref<any>(null);
const openModal = () => (modal.value = true);
/**Setting pagination */
const pagination = ref({
sortBy: "datetext",
descending: true,
page: 1,
rowsPerPage: 10,
});
//
const closeModal = () => {
function closeModal(){
modal.value = false;
filterKeyword2.value = "";
};
//reset filter
const resetFilter = () => {
function resetFilter(){
filterKeyword.value = "";
filterRef.value.focus();
};
// Modal
const openModalOrder = async () => {
async function openModalOrder(){
openModal();
const row = await filters.value.filter(
(r: ResponseItems) =>
@ -172,13 +184,8 @@ const openModalOrder = async () => {
rows2.value = row;
};
/**Hook */
onMounted(async () => {
await fecthlist();
});
// API
const fecthlist = async () => {
async function fecthlist(){
showLoader();
await http
.get(config.API.listResign())
@ -223,12 +230,9 @@ const fecthlist = async () => {
});
};
/**Setting pagination */
const pagination = ref({
sortBy: "datetext",
descending: true,
page: 1,
rowsPerPage: 10,
/**Hook */
onMounted(async () => {
await fecthlist();
});
</script>
<template>

View file

@ -1,15 +1,17 @@
<script setup lang="ts">
import axios from "axios";
import { useRouter, useRoute } from "vue-router";
import { useQuasar, QForm } from "quasar";
import { ref, onMounted } from "vue";
import DialogFooter from "@/modules/05_placement/components/PersonalList/DialogFooter.vue";
import DialogHeader from "@/components/DialogHeader.vue";
import { useCounterMixin } from "@/stores/mixin";
import { useRetirementDataStore } from "@/modules/06_retirement/store";
import http from "@/plugins/http";
import config from "@/app.config";
import axios from "axios";
import genReport from "@/plugins/genreport";
import { tokenParsed } from "@/plugins/auth";
import { useCounterMixin } from "@/stores/mixin";
import DialogFooter from "@/modules/05_placement/components/PersonalList/DialogFooter.vue";
import DialogHeader from "@/components/DialogHeader.vue";
import type {
TypeFile,
@ -18,23 +20,17 @@ import type {
CheckBoxType,
} from "@/modules/06_retirement/interface/response/Main";
import type { QTableProps } from "quasar";
import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue";
import type { DataProfile } from "@/modules/05_placement/interface/index/Main";
/** importComponents*/
import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue";
import CardProfile from "@/components/CardProfile.vue";
import genReport from "@/plugins/genreport";
const modalPersonal = ref<boolean>(false);
const personId = ref<string>("");
/** Use */
const $q = useQuasar();
const route = useRoute();
const router = useRouter();
const checkRoutePermisson = ref<boolean>(route.name == "resignDetailbyid");
const mixin = useCounterMixin();
const RetirementData = useRetirementDataStore();
const {
messageError,
date2Thai,
@ -45,9 +41,10 @@ const {
dialogConfirm,
dialogRemove,
} = mixin;
const { statusText } = RetirementData;
/** ตัวแปร */
const modalPersonal = ref<boolean>(false);
const personId = ref<string>("");
const roleUser = ref<string>("");
const dataProfile = ref<DataProfile>();
@ -78,6 +75,7 @@ const dataDetail = ref<any>({
statustext: "",
fullname: "",
});
const organizationPositionOld = ref<string>("");
const positionTypeOld = ref<string>("");
const positionLevelOld = ref<string>("");
@ -135,33 +133,16 @@ const fileList = ref<FileList[]>([]);
const isNoDebt = ref<boolean>(false);
const isNoBurden = ref<boolean>(false);
const isDiscipline = ref<boolean>(false);
const checkboxGroup = ref<CheckBoxType[]>([]);
const checkboxOp = ref<CheckBoxType[]>([
{ label: "ไม่เป็นหนี้สหกรณ์", value: "debt" },
//
const rowsFileDownload = ref<rowFile[]>([
{
fileName: "แบบฟอร์มหนังสือขอลาออกจากราชการ",
pathName: "",
},
]);
/** Hook */
onMounted(async () => {
fetchData(id.value);
fetchFile();
const user = await tokenParsed();
if (user) {
const commander = await user.role.includes("commander");
const oligarch = await user.role.includes("oligarch");
const officer = await user.role.includes("officer");
if (commander) {
roleUser.value = "commander";
} else if (oligarch) {
roleUser.value = "oligarch";
} else if (officer) {
roleUser.value = "officer";
} else {
roleUser.value = "admin";
}
}
});
const diffDate = () => {
function diffDate() {
if (date.value !== null && dateLeave.value !== null) {
const time = dateLeave.value.getTime() - date.value.getTime();
// -
@ -172,10 +153,10 @@ const diffDate = () => {
return false;
}
return false;
};
}
/** นำข้อมูลมาจาก API*/
const fetchData = async (id: string) => {
async function fetchData(id: string) {
showLoader();
await http
.get(config.API.resingByid(id))
@ -216,18 +197,18 @@ const fetchData = async (id: string) => {
.finally(() => {
hideLoader();
});
};
}
/**Pop up */
const popUp = (action: "pass" | "passNot") => {
function popUp(action: "pass" | "passNot") {
reasonReign.value = "";
dateBreak.value = null;
actionPass.value = action === "pass";
openModal();
};
}
//pop up
const conditionPopup = () => {
function conditionPopup() {
if (myFormConfirm.value !== null) {
myFormConfirm.value.validate().then(async (check) => {
if (check) {
@ -239,10 +220,10 @@ const conditionPopup = () => {
}
});
}
};
}
//pop up
const confirmpopUp = async () => {
async function confirmpopUp() {
dialogConfirm(
$q,
async () => {
@ -265,10 +246,10 @@ const confirmpopUp = async () => {
"ยืนยันการอนุญาต",
"ต้องการยืนยันการอนุญาตการลานี้หรือไม่ ?"
);
};
}
//pop up
const rejectpopUp = async () => {
async function rejectpopUp() {
dialogConfirm(
$q,
async () => {
@ -292,26 +273,26 @@ const rejectpopUp = async () => {
"ยืนยันการยับยั้ง",
"ต้องการยืนยันการยับยั้งนี้หรือไม่ ?"
);
};
}
/**
* กดยกเล
*/
const clickCancel = async () => {
async function clickCancel() {
await fetchData(id.value);
edit.value = false;
myForm.value?.resetValidation();
};
}
/**
* กดยกเล
*/
const clickCancelConditions = async () => {
async function clickCancelConditions() {
await fetchData(id.value);
conditions.value = false;
};
}
/** Function บันทึก รายการตรวจสอบเงื่อนไขต่าง ๆ*/
const onSubmitConditions = () => {
function onSubmitConditions() {
dialogConfirm($q, () => {
showLoader();
http
@ -332,10 +313,10 @@ const onSubmitConditions = () => {
hideLoader();
});
});
};
}
/** Function บันทึก ,แก้ไขข้อมูลเพื่อลงบัญชีแนบท้าย*/
const onSubmitAttached = () => {
function onSubmitAttached() {
dialogConfirm($q, () => {
const formData = new FormData();
const send = date.value !== null ? new Date(date.value).toUTCString() : "";
@ -366,39 +347,31 @@ const onSubmitAttached = () => {
await hideLoader();
});
});
};
}
/**
* Function เพ Class เวลา Edit
* @param val เมอเปนEdit จะเปลยน Class
*/
const getClass = (val: boolean) => {
function getClass(val: boolean) {
return {
"full-width inputgreen cursor-pointer": val,
"full-width cursor-pointer": !val,
};
};
}
/** แปลง StatusOrder */
const statusOrder = (val: boolean) => {
function statusOrder(val: boolean) {
switch (val) {
case true:
return "ยับยั้ง";
case false:
return "อนุญาต";
}
};
//
const rowsFileDownload = ref<rowFile[]>([
{
fileName: "แบบฟอร์มหนังสือขอลาออกจากราชการ",
pathName: "",
},
]);
}
//
const fileDownload = async (type: string, fileName: string) => {
async function fileDownload(type: string, fileName: string) {
showLoader();
await http
.get(config.API.reportResignList(type, id.value))
@ -412,18 +385,7 @@ const fileDownload = async (type: string, fileName: string) => {
hideLoader();
})
.finally(() => {});
};
//
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);
};
}
function updatemodalPersonal(modal: boolean) {
modalPersonal.value = modal;
@ -541,6 +503,27 @@ function removeFile(fileName: string) {
});
});
}
/** Hook */
onMounted(async () => {
fetchData(id.value);
fetchFile();
const user = await tokenParsed();
if (user) {
const commander = await user.role.includes("commander");
const oligarch = await user.role.includes("oligarch");
const officer = await user.role.includes("officer");
if (commander) {
roleUser.value = "commander";
} else if (oligarch) {
roleUser.value = "oligarch";
} else if (officer) {
roleUser.value = "officer";
} else {
roleUser.value = "admin";
}
}
});
</script>
<template>

View file

@ -1,12 +1,15 @@
<script setup lang="ts">
import { onMounted, reactive, ref, useAttrs, computed } from "vue";
import type { QTableProps } from "quasar";
import { useQuasar } from "quasar";
import router from "@/router";
import { useCounterMixin } from "@/stores/mixin";
import type { FormOrderPlacementMainData } from "@/modules/05_placement/interface/request/Main";
import type { DataOption } from "@/modules/05_placement/interface/index/Main";
import { useCounterMixin } from "@/stores/mixin";
import { useOrderPlacementDataStore } from "@/modules/05_placement/store";
import router from "@/router";
import { useQuasar } from "quasar";
/** Use */
const $q = useQuasar(); // noti quasar
@ -264,34 +267,25 @@ const rows = ref<FormOrderPlacementMainData[]>([
let OriginalData = ref<FormOrderPlacementMainData[]>([]);
let UpdataData = ref<FormOrderPlacementMainData[]>([]);
/**Hook */
onMounted(async () => {
await OriginalDataFetch();
fiscalYearFilter();
searchFilterTable();
OrderStatusFilter();
OrderTypeFilter();
});
/**
* งคาขอมลจาก store
*/
const OriginalDataFetch = async () => {
async function OriginalDataFetch() {
await DataStore.DataMainOrder(rows.value);
OriginalData.value = await DataStore.DataMainOrigOrder;
UpdataData.value = OriginalData.value;
};
}
//
const redirectToPage = (id?: number) => {
function redirectToPage(id?: number) {
router.push(`/placement/order/detail`);
};
}
/**
* function delete
* @param id id delete
*/
const clickDelete = (id: string) => {
function clickDelete(id: string) {
$q.dialog({
title: "ยืนยันการลบข้อมูล",
message: "ต้องการลบข้อมูลนี้ใช่หรือไม่?",
@ -304,18 +298,18 @@ const clickDelete = (id: string) => {
.onOk(async () => {})
.onCancel(() => {})
.onDismiss(() => {});
};
}
//route OrderplacementDetail
const clickAdd = () => {
function clickAdd() {
router.push({ name: "OrderplacementDetail" });
};
}
//
const fiscalyear = ref<number | null>(0);
const fiscalyearOP = reactive<DataOption[]>([{ id: 0, name: "ทั้งหมด" }]);
const addedfiscalYearValues: number[] = [];
const fiscalYearFilter = async () => {
async function fiscalYearFilter() {
for (let data of OriginalData.value) {
const year = data.fiscalYear;
@ -328,7 +322,7 @@ const fiscalYearFilter = async () => {
addedfiscalYearValues.push(year);
}
}
};
}
/**
* เลอกประเภทคำส
@ -336,7 +330,7 @@ const fiscalYearFilter = async () => {
const OrderType = ref<string>("");
const OrderTypeOption = reactive<DataOption[]>([{ id: 0, name: "ทั้งหมด" }]);
const addedOrderTypeValues: string[] = [];
const OrderTypeFilter = async () => {
async function OrderTypeFilter() {
for (let data of OriginalData.value) {
const OrderTypeValue = data.OrderType;
if (!addedOrderTypeValues.includes(OrderTypeValue)) {
@ -347,7 +341,7 @@ const OrderTypeFilter = async () => {
addedOrderTypeValues.push(OrderTypeValue);
}
}
};
}
/**
* เลอกStatus คำส
@ -355,7 +349,7 @@ const OrderTypeFilter = async () => {
const OrderStatus = ref<string>("");
const OrderStatusOption = reactive<DataOption[]>([{ id: 1, name: "ทั้งหมด" }]);
const addedOrderStatusValues: string[] = [];
const OrderStatusFilter = async () => {
async function OrderStatusFilter() {
for (let data of OriginalData.value) {
const OrderStatusValue = data.OrderStatus;
@ -374,31 +368,42 @@ const OrderStatusFilter = async () => {
addedOrderStatusValues.push(OrderStatusValue);
}
}
};
}
//
const filterKeyword = ref<string>("");
const filterRef = ref<any>(null);
const resetFilter = () => {
/** ล้างค่าในฟิลเตอร์ */
function resetFilter() {
filterKeyword.value = "";
filterRef.value.focus();
};
}
const attrs = ref<any>(useAttrs());
const searchFilterTable = async () => {
async function searchFilterTable() {
await DataStore.DataUpdateOrder(
OrderType.value,
OrderStatus.value,
fiscalyear.value
);
UpdataData.value = DataStore.DataMainUpdateOrder;
};
}
/**Setting pagination */
const paging = ref<boolean>(true);
const paginationLabel = (start: string, end: string, total: string) => {
function paginationLabel(start: string, end: string, total: string) {
if (paging.value == true) return " " + start + "-" + end + " ใน " + total;
else return start + "-" + end + " ใน " + total;
};
}
/**Hook */
onMounted(async () => {
await OriginalDataFetch();
fiscalYearFilter();
searchFilterTable();
OrderStatusFilter();
OrderTypeFilter();
});
</script>
<template>
<div class="toptitle text-dark col-12 row items-center">คำสงลาออก</div>