filter ==> ตั้งค่าระบบ

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2024-12-11 13:12:39 +07:00
parent 55ea7f7c5b
commit ad250ce83f
4 changed files with 98 additions and 64 deletions

View file

@ -1,32 +1,43 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref } from "vue"; import { ref, onMounted } from "vue";
import { useQuasar } from "quasar"; import { useQuasar } from "quasar";
/** /** importType*/
* importType
*/
import type { QTableProps } from "quasar"; import type { QTableProps } from "quasar";
import type { DataBackup } from "@/modules/04_system/interface/response/Main";
/** /** importStore*/
* importStore
*/
import { useCounterMixin } from "@/stores/mixin"; import { useCounterMixin } from "@/stores/mixin";
import { useDataStore } from "@/modules/04_system/stores/main"; import { useDataStore } from "@/modules/04_system/stores/main";
import { storeToRefs } from "pinia"; import { storeToRefs } from "pinia";
/** /** use*/
* use
*/
const $q = useQuasar(); const $q = useQuasar();
const { showLoader, date2Thai, dialogRemove, dialogConfirm } = const {
useCounterMixin(); showLoader,
const { createBackUp, restore, deleteBackUp } = useDataStore(); date2Thai,
dialogRemove,
dialogConfirm,
onSearchDataTable,
} = useCounterMixin();
const {
createBackUp,
restore,
deleteBackUp,
fetchListBackup,
backupRunningList,
restoreRunningList,
} = useDataStore();
const storeData = useDataStore(); const storeData = useDataStore();
const { dataBackUp, backupRunTotal, restoreRunTotal } = storeToRefs(storeData); const {
dataBackUp,
backupRunTotal,
restoreRunTotal,
prevBackupRunTotal,
prevRestoreRunTotal,
} = storeToRefs(storeData);
/** /** Table*/
* Table
*/
const filter = ref<string>(""); const filter = ref<string>("");
const visibleColumns = ref<string[]>([ const visibleColumns = ref<string[]>([
"name", "name",
@ -67,9 +78,7 @@ const columns = ref<QTableProps["columns"]>([
}, },
]); ]);
/** /** function สร้างรายการข้อมูลสำรอง*/
* function สรางรายการขอมลสำรอง
*/
function onCreateBackup() { function onCreateBackup() {
dialogConfirm( dialogConfirm(
$q, $q,
@ -107,6 +116,25 @@ function onRestore(name: string) {
"ต้องการยืนยันการคืนค่าข้อมูลสำรองนี้ใช่หรือไม่?" "ต้องการยืนยันการคืนค่าข้อมูลสำรองนี้ใช่หรือไม่?"
); );
} }
const dataMain = ref<DataBackup[]>([]);
function serchDataTable() {
dataBackUp.value = onSearchDataTable(
filter.value,
dataMain.value,
columns.value ? columns.value : []
);
}
onMounted(async () => {
prevBackupRunTotal.value = -1;
prevRestoreRunTotal.value = -1;
await fetchListBackup();
await backupRunningList(fetchListBackup);
await restoreRunningList(() => {});
dataMain.value = dataBackUp.value;
});
</script> </script>
<template> <template>
@ -127,10 +155,10 @@ function onRestore(name: string) {
<q-input <q-input
borderless borderless
dense dense
debounce="300"
outlined outlined
v-model="filter" v-model="filter"
placeholder="ค้นหา" placeholder="ค้นหา"
@keydown.enter.pervent="serchDataTable"
> >
<template v-slot:append> <template v-slot:append>
<q-icon name="search" /> <q-icon name="search" />
@ -156,7 +184,6 @@ function onRestore(name: string) {
:columns="columns" :columns="columns"
row-key="name" row-key="name"
:visible-columns="visibleColumns" :visible-columns="visibleColumns"
:filter="filter"
> >
<template v-slot:header="props"> <template v-slot:header="props">
<q-tr :props="props"> <q-tr :props="props">

View file

@ -33,6 +33,7 @@ const {
dialogRemove, dialogRemove,
dialogConfirm, dialogConfirm,
dialogMessageNotify, dialogMessageNotify,
onSearchDataTable,
} = useCounterMixin(); } = useCounterMixin();
const { const {
getSchedule, getSchedule,
@ -112,8 +113,10 @@ const columns = ref<QTableProps["columns"]>([
align: "left", align: "left",
label: "วันที่เริ่มการสำรองข้อมูล", label: "วันที่เริ่มการสำรองข้อมูล",
sortable: true, sortable: true,
field: (v) => date2Thai(v, false, true), field: "startAt",
format(val, row) {
return date2Thai(val, false, true);
},
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
}, },
@ -268,6 +271,14 @@ function clearForm() {
formDataschedule.value.time = ""; formDataschedule.value.time = "";
formDataschedule.value.schedule = ""; formDataschedule.value.schedule = "";
} }
const dataMain = ref<Schedule[]>([]);
function serchDataTable() {
dataSchedule.value = onSearchDataTable(
filter.value,
dataMain.value,
columns.value ? columns.value : []
);
}
watch(tab, () => { watch(tab, () => {
if (tab.value === formDataschedule.value.type) { if (tab.value === formDataschedule.value.type) {
@ -282,7 +293,8 @@ watch(tab, () => {
}); });
onMounted(async () => { onMounted(async () => {
getSchedule(); await getSchedule();
dataMain.value = dataSchedule.value;
}); });
</script> </script>
@ -309,10 +321,10 @@ onMounted(async () => {
<q-input <q-input
borderless borderless
dense dense
debounce="300"
outlined outlined
v-model="filter" v-model="filter"
placeholder="ค้นหา" placeholder="ค้นหา"
@keydown.enter.pervent="serchDataTable"
> >
<template v-slot:append> <template v-slot:append>
<q-icon name="search" /> <q-icon name="search" />
@ -338,7 +350,6 @@ onMounted(async () => {
:columns="columns" :columns="columns"
row-key="name" row-key="name"
:visible-columns="visibleColumns" :visible-columns="visibleColumns"
:filter="filter"
> >
<template v-slot:header="props"> <template v-slot:header="props">
<q-tr :props="props"> <q-tr :props="props">

View file

@ -35,22 +35,23 @@ export const useDataStore = defineStore("systemStore", () => {
* *
*/ */
async function fetchListBackup() { async function fetchListBackup() {
showLoader(); try {
const res = await http.get(config.API.backup); showLoader();
hideLoader(); const res = await http.get(config.API.backup);
if (!res) return false;
if (res.status === 200) { if (!res) return false;
dataBackUp.value = await res.data; if (res.status === 200) {
dataBackUp.value = await res.data;
dataBackUp.value = dataBackUp.value.map((item) => { dataBackUp.value = dataBackUp.value.map((item) => {
return { return {
...item, ...item,
status: "สำเร็จ", status: "สำเร็จ",
}; };
}); });
return res.status;
return res.status; }
} finally {
hideLoader();
} }
} }

View file

@ -1,27 +1,22 @@
<script setup lang="ts"> <script setup lang="ts">
import { onMounted, ref } from "vue"; import { onMounted, ref } from "vue";
import { useDataStore } from "@/modules/04_system/stores/main"; // import { useDataStore } from "@/modules/04_system/stores/main";
import { storeToRefs } from "pinia"; // import { storeToRefs } from "pinia";
/**
* import type /** import type*/
*/
import type { ItemsTeb } from "@/modules/04_system/interface/index/Main"; import type { ItemsTeb } from "@/modules/04_system/interface/index/Main";
/** /** import components*/
* import components
*/
import Card from "@/modules/04_system/components/01_cardBackupRestore.vue"; // import Card from "@/modules/04_system/components/01_cardBackupRestore.vue"; //
import CardAutoBackup from "@/modules/04_system/components/02_cardAutoBackup.vue"; // import CardAutoBackup from "@/modules/04_system/components/02_cardAutoBackup.vue"; //
const { fetchListBackup, backupRunningList, restoreRunningList } = // const { fetchListBackup, backupRunningList, restoreRunningList } =
useDataStore(); // useDataStore();
/** /** ตัวแปร*/
* วแปร // const storeData = useDataStore();
*/ // const { prevBackupRunTotal, prevRestoreRunTotal } = storeToRefs(storeData);
const storeData = useDataStore();
const { prevBackupRunTotal, prevRestoreRunTotal } = storeToRefs(storeData);
const tab = ref<string>("backup"); const tab = ref<string>("backup");
const tabItems = ref<ItemsTeb[]>([ const tabItems = ref<ItemsTeb[]>([
@ -29,13 +24,13 @@ const tabItems = ref<ItemsTeb[]>([
{ name: "autoBackUp", label: "Schedule ", icon: "mdi-clock-outline" }, { name: "autoBackUp", label: "Schedule ", icon: "mdi-clock-outline" },
]); ]);
onMounted(async () => { // onMounted(async () => {
prevBackupRunTotal.value = -1; // prevBackupRunTotal.value = -1;
prevRestoreRunTotal.value = -1; // prevRestoreRunTotal.value = -1;
await fetchListBackup(); // await fetchListBackup();
await backupRunningList(fetchListBackup); // await backupRunningList(fetchListBackup);
await restoreRunningList(() => {}); // await restoreRunningList(() => {});
}); // });
</script> </script>
<template> <template>