Merge branch 'develop' into develop-tee

This commit is contained in:
setthawutttty 2023-07-04 09:41:47 +07:00
commit e344e5845e
10 changed files with 262 additions and 92 deletions

View file

@ -20,7 +20,7 @@
:borderless="false"
:outlined="true"
:hide-dropdown-icon="false"
@update:model-value="searchfiscalyear"
@update:model-value="searchFilterTable"
/>
<div>
<q-btn size="12px" flat round color="add" icon="mdi-plus">
@ -161,6 +161,13 @@
>
{{ props.row.OrderNum }}
</q-td>
<q-td
key="OrderType"
:props="props"
@click="redirectToPage(props.row.OrderType)"
>
{{ props.row.OrderType }}
</q-td>
<q-td
key="OrderDate"
:props="props"
@ -189,7 +196,6 @@
>
{{ props.row.OrderStatus }}
</q-td>
<q-td auto-width>
<q-btn
dense
@ -251,6 +257,16 @@ const textDate = (value: Date) => {
return dateText(value);
};
const visibleColumns = ref<string[]>([
"Order",
"OrderType",
"OrderNum",
"OrderDate",
"OrderBy",
"Signer",
"OrderStatus",
]); //
//
const columns = ref<QTableProps["columns"]>([
{
@ -274,13 +290,15 @@ const columns = ref<QTableProps["columns"]>([
style: "font-size: 14px",
},
{
name: "fiscalYear",
name: "OrderType",
align: "left",
label: "ปีงบประมาณ",
sortable: true,
field: "fiscalYear",
label: "ประเภท",
sortable: false,
field: "OrderType",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
},
{
name: "OrderDate",
@ -327,15 +345,13 @@ const columns = ref<QTableProps["columns"]>([
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
},
{
name: "OrderType",
name: "fiscalYear",
align: "left",
label: "ประเภท",
sortable: false,
field: "OrderType",
label: "ปีงบประมาณ",
sortable: true,
field: "fiscalYear",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
},
]);
@ -364,9 +380,9 @@ const rows = ref<FormOrderPlacementMainData[]>([
},
{
Order: "คำสั่งแต่งตั้งผู้สอบแข่งขันได้",
OrderNum: "1/2565",
fiscalYear: 2565,
OrderDate: "30 พ.ค. 2565",
OrderNum: "1/2564",
fiscalYear: 2564,
OrderDate: "30 พ.ค. 2564",
OrderBy: "สำนักงาน กทม.",
Signer: "นาม สมคิด ยอดใจ ",
OrderStatus: "บัญชีแนบท้าย",
@ -374,19 +390,29 @@ const rows = ref<FormOrderPlacementMainData[]>([
},
{
Order: "คำสั่งแต่งตั้งผู้สอบแข่งขันได้",
OrderNum: "1/2565",
fiscalYear: 2565,
OrderDate: "30 พ.ค. 2565",
OrderNum: "1/2564",
fiscalYear: 2564,
OrderDate: "30 พ.ค. 2564",
OrderBy: "สำนักงาน กทม.",
Signer: "นาม สมคิด ยอดใจ ",
OrderStatus: "บัญชีแนบท้าย",
OrderType: "คำสั่งบรรจุและแต่งตั้ง",
OrderType: "คำสั่งย้าย",
},
{
Order: "คำสั่งแต่งตั้งผู้สอบแข่งขันได้",
OrderNum: "1/2565",
fiscalYear: 2565,
OrderDate: "30 พ.ค. 2565",
OrderNum: "1/2564",
fiscalYear: 2564,
OrderDate: "30 พ.ค. 2564",
OrderBy: "สำนักงาน กทม.",
Signer: "นาม สมคิด ยอดใจ ",
OrderStatus: "ส่งสำเนาคำสั่ง",
OrderType: "คำสั่งย้าย",
},
{
Order: "คำสั่งแต่งตั้งผู้สอบแข่งขันได้",
OrderNum: "1/2564",
fiscalYear: 2564,
OrderDate: "30 พ.ค. 2564",
OrderBy: "สำนักงาน กทม.",
Signer: "นาม สมคิด ยอดใจ ",
OrderStatus: "ส่งสำเนาคำสั่ง",
@ -394,19 +420,9 @@ const rows = ref<FormOrderPlacementMainData[]>([
},
{
Order: "คำสั่งแต่งตั้งผู้สอบแข่งขันได้",
OrderNum: "1/2565",
fiscalYear: 2565,
OrderDate: "30 พ.ค. 2565",
OrderBy: "สำนักงาน กทม.",
Signer: "นาม สมคิด ยอดใจ ",
OrderStatus: "ส่งสำเนาคำสั่ง",
OrderType: "คำสั่งบรรจุและแต่งตั้ง",
},
{
Order: "คำสั่งแต่งตั้งผู้สอบแข่งขันได้",
OrderNum: "1/2565",
fiscalYear: 2565,
OrderDate: "30 พ.ค. 2565",
OrderNum: "1/2566",
fiscalYear: 2566,
OrderDate: "30 พ.ค. 2566",
OrderBy: "สำนักงาน กทม.",
Signer: "นาม สมคิด ยอดใจ ",
OrderStatus: "รอลงนาม",
@ -414,13 +430,13 @@ const rows = ref<FormOrderPlacementMainData[]>([
},
{
Order: "คำสั่งแต่งตั้งผู้สอบแข่งขันได้",
OrderNum: "1/2565",
fiscalYear: 2565,
OrderDate: "30 พ.ค. 2565",
OrderNum: "1/2566",
fiscalYear: 2566,
OrderDate: "30 พ.ค. 2566",
OrderBy: "สำนักงาน กทม.",
Signer: "นาม สมคิด ยอดใจ ",
OrderStatus: "ออกคำสั่งแล้ว",
OrderType: "คำสั่งบรรจุและแต่งตั้ง",
OrderType: "คำสั่งแต่งตั้ง",
},
{
Order: "คำสั่งแต่งตั้งผู้สอบแข่งขันได้",
@ -434,19 +450,19 @@ const rows = ref<FormOrderPlacementMainData[]>([
},
{
Order: "คำสั่งแต่งตั้งผู้สอบแข่งขันได้",
OrderNum: "1/2565",
fiscalYear: 2565,
OrderDate: "30 พ.ค. 2565",
OrderNum: "1/2566",
fiscalYear: 2566,
OrderDate: "30 พ.ค. 2566",
OrderBy: "สำนักงาน กทม.",
Signer: "นาม สมคิด ยอดใจ ",
OrderStatus: "ออกคำสั่งแล้ว",
OrderType: "คำสั่งบรรจุและแต่งตั้ง",
OrderType: "คำสั่งแต่งตั้ง",
},
{
Order: "คำสั่งแต่งตั้งผู้สอบแข่งขันได้",
OrderNum: "1/2565",
fiscalYear: 2565,
OrderDate: "30 พ.ค. 2565",
OrderNum: "1/2566",
fiscalYear: 2566,
OrderDate: "30 พ.ค. 2566",
OrderBy: "สำนักงาน กทม.",
Signer: "นาม สมคิด ยอดใจ ",
OrderStatus: "ออกคำสั่งแล้ว",
@ -687,18 +703,14 @@ const resetFilter = () => {
};
const attrs = ref<any>(useAttrs());
const visibleColumns = ref<string[]>([
"Order",
"OrderNum",
"OrderDate",
"OrderBy",
"Signer",
"OrderStatus",
]); //
const searchFilterTable = async () => {
// console.log('Input value changed:', examTime.value, examType.value, expiredAccount.value);
await DataStore.DataUpdateOrder(OrderType.value, OrderStatus.value);
await DataStore.DataUpdateOrder(
OrderType.value,
OrderStatus.value,
fiscalyear.value
);
UpdataData.value = DataStore.DataMainUpdateOrder;
};
// UpdataData.value = DataStore.DataMainUpdate;

View file

@ -370,12 +370,8 @@
</div>
<q-separator />
<div class="flex justify-end q-pa-sm q-gutter-sm">
<q-btn
unelevated
label="บันทึก"
color="public"
@click="next"
><!-- icon="mdi-content-save-outline"
<q-btn unelevated label="บันทึก" color="public" @click="next"
><!-- icon="mdi-content-save-outline"
<q-tooltip>นท</q-tooltip> -->
</q-btn>
<!-- <q-btn flat round color="primary" icon="chevron_left" @click="previous">
@ -389,7 +385,7 @@
</template>
<script setup lang="ts">
import { ref } from "vue";
import type { DataOption } from "@/modules/05_placement/interface/index/Main.ts";
import type { DataOption } from "@/modules/05_placement/interface/index/Main";
import { useCounterMixin } from "@/stores/mixin";
import type { QForm } from "quasar";

View file

@ -325,7 +325,7 @@ const selectData = (row: any) => {};
const refresh = () => {};
const paginationLabel = (start: string, end: string, total: string) => {
const paginationLabel = (start: number, end: number, total: number) => {
// if (props.paging == true)
// return " " + start + " " + end + " " + total + " ";
// else

View file

@ -334,7 +334,7 @@ import { useQuasar } from "quasar";
import { useCounterMixin } from "@/stores/mixin";
import DialogHeader from "@/modules/04_registry/components/DialogHeader.vue";
import type { QInput, QForm } from "quasar";
import type { treeTab } from "@/modules/05_placement/interface/index/Main.ts";
import type { treeTab } from "@/modules/05_placement/interface/index/Main";
import http from "@/plugins/http";
import config from "@/app.config";
@ -614,7 +614,7 @@ onMounted(async () => {
await nodeTree();
});
const paginationLabel = (start: string, end: string, total: string) => {
const paginationLabel = (start: number, end: number, total: number) => {
// if (props.paging == true)
// return " " + start + " " + end + " " + total + " ";
// else

View file

@ -83,13 +83,8 @@
</q-btn>
</div>
<div class="pdfWidth">
<!-- <VuePDF
ref="vuePDFRef"
:pdf="pdfData"
:page="page"
fit-parent
/> -->
<VuePdf :key="page" :src="pdfSrc" :page="page" />
<VuePDF ref="vuePDFRef" :pdf="pdfSrc" :page="page" fit-parent />
<!-- <VuePdf :key="page" :src="pdfSrc" :page="page" /> -->
</div>
<div
class="justify-between items-center align-center q-py-sm row"
@ -198,27 +193,42 @@
</div>
</template>
<script setup lang="ts">
import { ref, onMounted } from "vue";
// import { VuePDF, usePDF } from "@tato30/vue-pdf";
// import type { PDFDocumentLoadingTask } from "@tato30/vue-pdf";
import { VuePdf, createLoadingTask } from "vue3-pdfjs/esm";
import { VuePdfPropsType } from "vue3-pdfjs/components/vue-pdf/vue-pdf-props"; // Prop type definitions can also be imported
import { PDFDocumentProxy } from "pdfjs-dist/types/src/display/api";
import { ref, onMounted, onUnmounted } from "vue";
import { VuePDF, usePDF } from "@tato30/vue-pdf";
import type { PDFDocumentLoadingTask } from "pdfjs-dist/types/src/display/api";
import type { QForm } from "quasar";
onMounted(() => {
const loadingTask = createLoadingTask(pdfSrc.value);
loadingTask.promise.then((pdf: PDFDocumentProxy) => {
numOfPages.value = pdf.numPages;
onUnmounted(() => {
window.removeEventListener("resize", (e: any) => {
myEventHandler(e);
});
});
const pdfSrc = ref<VuePdfPropsType["src"]>(
"https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/web/compressed.tracemonkey-pldi-09.pdf"
);
const numOfPages = ref<number>(0);
onMounted(async () => {
window.addEventListener("resize", (e: any) => {
myEventHandler(e);
});
const pdfData = usePDF(
"https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/web/compressed.tracemonkey-pldi-09.pdf"
);
console.log("pdfData.pages.value", pdfData);
console.log("pdfData.pages.value", pdfData.pages);
console.log("pdfData.pages.value", pdfData.pages.value);
});
const myEventHandler = (e: any) => {
console.log("e", e.target.innerWidth);
// if (vuePDFRef !== null) {
// vuePDFRef.value.reload();
// }
};
const pdfSrc = ref<PDFDocumentLoadingTask | undefined>();
const numOfPages = ref<number>(0);
const page = ref<number>(1);
const vuePDFRef = ref<any>(null);
const myForm = ref<QForm | null>(null);
@ -242,7 +252,10 @@ const fileOrder = ref<any>(null);
const fileTailer = ref<any>(null);
const onchangePage = (val: any) => {
console.log(val);
// console.log(val);
if (vuePDFRef !== null) {
vuePDFRef.value.reload();
}
};
const save = () => {

View file

@ -222,23 +222,51 @@ export const useOrderPlacementDataStore = defineStore("placementOrder", () => {
const DataMainOrder = (val: FormOrderPlacementMainData[]) =>
(DataMainOrigOrder.value = val);
const DataUpdateOrder = (filter_1: string, filter_2: string) => {
const DataUpdateOrder = (
filter_1: string,
filter_2: string,
filterYear: number | null
) => {
DataMainUpdateOrder.value = [];
if (filter_1 === "" && filter_2 === "") {
if (filter_1 === "" && filter_2 === "" && filterYear === 0) {
DataMainUpdateOrder.value = DataMainOrigOrder.value;
} else if (filter_1 !== "" && filter_2 === "") {
} else if (filter_1 !== "" && filter_2 === "" && filterYear === 0) {
DataMainUpdateOrder.value = DataMainOrigOrder.value.filter(
(item) => item.OrderType === filter_1
);
} else if (filter_1 !== "" && filter_2 !== "") {
} else if (filter_1 !== "" && filter_2 !== "" && filterYear === null) {
DataMainUpdateOrder.value = DataMainOrigOrder.value.filter(
(item) => item.OrderType === filter_1 && item.OrderStatus === filter_2
);
} else if (filter_1 === "" && filter_2 !== "") {
} else if (filter_1 !== "" && filter_2 === "" && filterYear !== 0) {
DataMainUpdateOrder.value = DataMainOrigOrder.value.filter(
(item) => item.OrderType === filter_1 && item.fiscalYear === filterYear
);
} else if (filter_1 === "" && filter_2 !== "" && filterYear === 0) {
DataMainUpdateOrder.value = DataMainOrigOrder.value.filter(
(item) => item.OrderStatus === filter_2
);
} else if (filter_1 === "" && filter_2 === "" && filterYear !== 0) {
DataMainUpdateOrder.value = DataMainOrigOrder.value.filter(
(item) => item.fiscalYear === filterYear
);
} else if (filter_1 === "" && filter_2 !== "" && filterYear !== null) {
DataMainUpdateOrder.value = DataMainOrigOrder.value.filter(
(item) =>
item.OrderStatus === filter_2 && item.fiscalYear === filterYear
);
} else if (filter_1 !== "" && filter_2 !== "" && filterYear === 0) {
DataMainUpdateOrder.value = DataMainOrigOrder.value.filter(
(item) => item.OrderStatus === filter_2 && item.OrderType === filter_1
);
} else if (filter_1 !== "" && filter_2 !== "" && filterYear !== null) {
DataMainUpdateOrder.value = DataMainOrigOrder.value.filter(
(item) =>
item.OrderType === filter_1 &&
item.OrderStatus === filter_2 &&
item.fiscalYear === filterYear
);
}
};

View file

@ -0,0 +1,30 @@
/**
* Router }6d0hk' (Registry)
*/
const Main = () => import("@/modules/08_registryEmployee/views/Main.vue");
const Detail = () =>
import("@/modules/08_registryEmployee/components/Profile.vue");
export default [
{
path: "/registryEmployee",
name: "registryEmployee",
component: Main,
meta: {
Auth: true,
Key: [9],
Role: "registryEmployee",
},
},
{
path: "/registryEmployee/:id",
name: "registryEmployeeDetail",
component: Detail,
meta: {
Auth: true,
Key: [9],
Role: "registryEmployee",
},
},
];

View file

@ -0,0 +1,83 @@
import { ref, computed } from "vue";
import { defineStore } from "pinia";
export const useProfileDataStore = defineStore("profile", () => {
interface profile {
main: { columns: String[] };
education: { columns: String[] };
oldName: { columns: String[] };
certicate: { columns: String[] };
train: { columns: String[] };
insignia: { columns: String[] };
coined: { columns: String[] };
assessment: { columns: String[] };
salary: { columns: String[] };
discipline: { columns: String[] };
leave: { columns: String[] };
talent: { columns: String[] };
work: { columns: String[] };
record: { columns: String[] };
other: { columns: String[] };
document: { columns: String[] };
}
const birthDate = ref<Date>(new Date());
const retireText = ref<string | null>(null);
const changeRetireText = (val: string | null) => {
retireText.value = val;
};
const changeBirth = (val: Date) => {
birthDate.value = val;
};
const profileData = ref<profile>({
main: { columns: [] },
education: { columns: [] },
oldName: { columns: [] },
certicate: { columns: [] },
train: { columns: [] },
insignia: { columns: [] },
coined: { columns: [] },
assessment: { columns: [] },
salary: { columns: [] },
discipline: { columns: [] },
leave: { columns: [] },
talent: { columns: [] },
work: { columns: [] },
record: { columns: [] },
other: { columns: [] },
document: { columns: [] },
});
const changeProfileColumns = (system: String, val: String[]) => {
if (system == "main") profileData.value.main.columns = val;
if (system == "education") profileData.value.education.columns = val;
if (system == "oldName") profileData.value.oldName.columns = val;
if (system == "certicate") profileData.value.certicate.columns = val;
if (system == "train") profileData.value.train.columns = val;
if (system == "insignia") profileData.value.insignia.columns = val;
if (system == "coined") profileData.value.coined.columns = val;
if (system == "assessment") profileData.value.assessment.columns = val;
if (system == "salary") profileData.value.salary.columns = val;
if (system == "discipline") profileData.value.discipline.columns = val;
if (system == "leave") profileData.value.leave.columns = val;
if (system == "talent") profileData.value.talent.columns = val;
if (system == "work") profileData.value.work.columns = val;
if (system == "record") profileData.value.record.columns = val;
if (system == "other") profileData.value.other.columns = val;
if (system == "document") profileData.value.document.columns = val;
localStorage.setItem("profile", JSON.stringify(profileData.value));
};
if (localStorage.getItem("profile") !== null) {
profileData.value = JSON.parse(localStorage.getItem("profile") || "{}");
}
return {
profileData,
changeProfileColumns,
birthDate,
changeBirth,
retireText,
changeRetireText,
};
});