Refactoring code module 02_transfer

This commit is contained in:
STW_TTTY\stwtt 2024-09-02 18:11:27 +07:00
parent 8a31554f38
commit 9fbbbd753f
3 changed files with 135 additions and 84 deletions

View file

@ -0,0 +1,53 @@
interface TransferMain {
id: string;
date: string;
status: string;
statustext: string;
position: string;
noPos: string;
rootShortNameOld: string;
level: string;
salary: number;
transfer: string;
}
interface TransferList {
id: string;
profileId: string;
prefix: string;
firstName: string;
lastName: string;
rootOld: string;
rootOldId: string;
rootShortNameOld: string;
child1Old: string | null;
child1OldId: string | null;
child1ShortNameOld: string | null;
child2Old: string | null;
child2OldId: string | null;
child2ShortNameOld: string | null;
child3Old: string | null;
child3OldId: string | null;
child3ShortNameOld: string | null;
child4Old: string | null;
child4OldId: string | null;
child4ShortNameOld: string | null;
posMasterNoOld: number;
posTypeOldId: string;
posTypeNameOld: string;
posLevelOldId: string;
posLevelNameOld: string;
createdAt: Date | null;
organization: string;
reason: string;
status: string;
date: string | null;
salary: number | null;
positionTypeOld: string;
positionLevelOld: string;
positionNumberOld: string;
organizationPositionOld: string;
isActive: boolean;
}
export type { TransferList, TransferMain };

View file

@ -2,47 +2,27 @@
import { ref, onMounted } from "vue";
import { useQuasar } from "quasar";
import { useRouter, useRoute } from "vue-router";
import { useCounterMixin } from "@/stores/mixin";
import http from "@/plugins/http";
import config from "@/app.config";
import { useCounterMixin } from "@/stores/mixin";
import type { QForm } from "quasar";
const router = useRouter();
const $q = useQuasar();
const mixin = useCounterMixin();
const myform = ref<QForm | null>(null);
const {
fails,
success,
messageError,
showLoader,
hideLoader,
dialogConfirm,
dialogMessageNotify,
} = mixin;
/**
* วแปรทใชงาน
*/
const route = useRoute();
const files = ref<any>();
const tranferOrg = ref("");
const noteReason = ref("");
const id = ref<string>("");
const nameFile = ref<string>("");
const routeName = router.currentRoute.value.name;
const router = useRouter();
const mixin = useCounterMixin();
const { success, messageError, showLoader, hideLoader, dialogConfirm } = mixin;
/**
* เรยกฟงกนทงหมดตอนเรยกใชไฟล
*/
onMounted(() => {
if (route.params.id !== undefined) {
id.value = route.params.id.toString();
fecthDataTransfer(id.value);
}
});
const id = ref<string>(""); //id path
const files = ref<any>(); //
const tranferOrg = ref<string>(""); //
const noteReason = ref<string>(""); //
const routeName = router.currentRoute.value.name; // path
const saveData = async () => {
/** Dialog Save */
async function saveData() {
dialogConfirm(
$q,
() => {
@ -51,12 +31,10 @@ const saveData = async () => {
"ยืนยันการยื่นข้อมูลการโอน",
"ต้องการยื่นข้อมูลการโอนนี้ใช่หรือไม่"
);
};
}
/**
* งกนสรางขอโอน
*/
const createTransfer = async () => {
/** ฟังก์ชั่นสร้างขอโอน */
async function createTransfer() {
showLoader();
const formData = new FormData();
formData.append("Organization", tranferOrg.value);
@ -74,13 +52,13 @@ const createTransfer = async () => {
.finally(() => {
hideLoader();
});
};
}
/**
* งกนเรยกขอมลจาก Api
* @param id ไอดของขอม
*/
const fecthDataTransfer = async (id: string) => {
async function fecthDataTransfer(id: string) {
showLoader();
await http
.get(config.API.transferByid(id))
@ -96,25 +74,25 @@ const fecthDataTransfer = async (id: string) => {
.finally(() => {
hideLoader();
});
};
}
/**
* งกนดาวโหลดอปโหลดไฟล
* Func เปดไฟล
* @param url URL File
*/
const fileDocDataUpload = ref<File[]>([]);
const filesNull = () => {
files.value = null;
};
//
const fileUploadDoc = async (file: any) => {
fileDocDataUpload.value.push(file);
nameFile.value = file[0].name;
files.value = file;
};
function fileOpen(url: string) {
window.open(url, "_blank");
}
/**
* เรยกฟงกนทงหมดตอนเรยกใชไฟล
*/
onMounted(() => {
if (route.params.id !== undefined) {
id.value = route.params.id.toString();
fecthDataTransfer(id.value);
}
});
</script>
<template>

View file

@ -1,19 +1,25 @@
<script setup lang="ts">
import type { QTableProps } from "quasar";
import { ref, onMounted } from "vue";
import { useQuasar } from "quasar";
import { useRouter } from "vue-router";
import { useCounterMixin } from "@/stores/mixin";
import { useTransferDataStore } from "@/modules/02_transfer/store";
import http from "@/plugins/http";
import config from "@/app.config";
import Table from "@/components/Table.vue";
const currentPage = ref<number>(1);
const transferData = useTransferDataStore();
const { statusText } = transferData;
const router = useRouter();
import { useCounterMixin } from "@/stores/mixin";
import { useTransferDataStore } from "@/modules/02_transfer/store";
import type { QTableProps } from "quasar";
import type {
TransferList,
TransferMain,
} from "@/modules/02_transfer/interface/Main";
const $q = useQuasar();
const router = useRouter();
const mixin = useCounterMixin();
const transferData = useTransferDataStore();
const { statusText } = transferData;
const { date2Thai, messageError, showLoader, hideLoader } = mixin;
const pagination = ref({
@ -22,11 +28,9 @@ const pagination = ref({
page: 1,
rowsPerPage: 10,
});
/**
* เพมหวขอตาราง
*/
const rows = ref<TransferMain[]>([]);
const filter = ref<string>("");
const rows = ref<any>([]);
const visibleColumns = ref<String[]>([
"no",
"date",
@ -112,28 +116,22 @@ const columns = ref<QTableProps["columns"]>([
},
]);
/**
* เรยกฟงกนทงหมดตอนเรยกใชไฟล
*/
onMounted(async () => {
await fecthListTransfer();
});
//
const fecthListTransfer = async () => {
async function fecthListTransfer() {
showLoader();
await http
.get(config.API.listUserTransfer())
.then((res: any) => {
.then((res) => {
let data = res.data.result;
rows.value = data.map((e: any) => ({
rows.value = data.map((e: TransferList) => ({
id: e.id,
date: date2Thai(e.createdAt),
status: e.status,
statustext: statusText(e.status),
position: e.organizationPositionOld,
noPos: e.posNo,
level: e.positionLevel,
noPos: e.positionNumberOld,
rootShortNameOld: e.rootShortNameOld,
level: e.positionLevelOld,
salary: e.salary,
transfer: e.organization,
}));
@ -144,21 +142,28 @@ const fecthListTransfer = async () => {
.finally(() => {
hideLoader();
});
};
}
/**
* งกนกดเพมไปหนาเพมขอโอน
*/
const clickAdd = async () => {
async function clickAdd() {
router.push(`/transfer/add`);
};
}
/**
* กดเพอยอนกล
*/
const clickBack = () => {
function clickBack() {
router.push(`/`);
};
}
/**
* เรยกฟงกนทงหมดตอนเรยกใชไฟล
*/
onMounted(async () => {
await fecthListTransfer();
});
</script>
<template>
<div class="col-12 row justify-center">
@ -284,8 +289,23 @@ const clickBack = () => {
<div v-if="col.name == 'no'">
{{ props.rowIndex + 1 }}
</div>
<div>
{{ col.value }}
<div v-else-if="col.name == 'noPos'">
{{
props.row.rootShortNameOld && props.row.noPos
? `${props.row.rootShortNameOld}${props.row.noPos}`
: "-"
}}
</div>
<div v-else-if="col.name == 'salary'">
{{
props.row.salary
? props.row.salary.toLocaleString()
: "-"
}}
</div>
<div v-else>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>