ตั้งค่าระบบ => ปรับ calendar
This commit is contained in:
parent
7d87ffb155
commit
a993ffaa1e
3 changed files with 86 additions and 16 deletions
|
|
@ -26,8 +26,14 @@ import { storeToRefs } from "pinia";
|
||||||
* use
|
* use
|
||||||
*/
|
*/
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
const { showLoader, hideLoader, date2Thai, dialogRemove, dialogConfirm } =
|
const {
|
||||||
useCounterMixin();
|
showLoader,
|
||||||
|
hideLoader,
|
||||||
|
date2Thai,
|
||||||
|
dialogRemove,
|
||||||
|
dialogConfirm,
|
||||||
|
dialogMessageNotify,
|
||||||
|
} = useCounterMixin();
|
||||||
const {
|
const {
|
||||||
fetchListBackup,
|
fetchListBackup,
|
||||||
createBackUp,
|
createBackUp,
|
||||||
|
|
@ -209,16 +215,28 @@ function convertFormToCron() {
|
||||||
* function submit() ตั้งเวลา backup
|
* function submit() ตั้งเวลา backup
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
async function onSubmit() {
|
function onSubmit() {
|
||||||
showLoader();
|
if (
|
||||||
if (typeOnSubmit.value === "create") {
|
(formDataschedule.value.type === "weekly" ||
|
||||||
await createSchedule(formDataschedule.value);
|
formDataschedule.value.type === "monthly") &&
|
||||||
|
formDataschedule.value.date.length === 0
|
||||||
|
) {
|
||||||
|
dialogMessageNotify($q, "กรุณาเลือกวันสำรองข้อมูล");
|
||||||
|
} else {
|
||||||
|
dialogConfirm($q, async () => {
|
||||||
|
showLoader();
|
||||||
|
if (typeOnSubmit.value === "create") {
|
||||||
|
await createSchedule(formDataschedule.value);
|
||||||
|
}
|
||||||
|
if (typeOnSubmit.value === "edit") {
|
||||||
|
await editSchedule(idEditSchedule.value, formDataschedule.value);
|
||||||
|
}
|
||||||
|
getSchedule();
|
||||||
|
hideLoader();
|
||||||
|
openDialog.value = false;
|
||||||
|
clearForm();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
if (typeOnSubmit.value === "edit") {
|
|
||||||
await editSchedule(idEditSchedule.value, formDataschedule.value);
|
|
||||||
}
|
|
||||||
getSchedule();
|
|
||||||
hideLoader();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -285,6 +303,15 @@ const typeSchedule: { [key: string]: string } = {
|
||||||
monthly: "รายเดือน",
|
monthly: "รายเดือน",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function clearForm() {
|
||||||
|
formDataschedule.value.timeStartEvery = "";
|
||||||
|
formDataschedule.value.type = "";
|
||||||
|
formDataschedule.value.date = [];
|
||||||
|
formDataschedule.value.name = "";
|
||||||
|
formDataschedule.value.time = "";
|
||||||
|
formDataschedule.value.schedule = "";
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
getSchedule();
|
getSchedule();
|
||||||
});
|
});
|
||||||
|
|
@ -313,6 +340,7 @@ watch(tab, () => {
|
||||||
() => {
|
() => {
|
||||||
typeOnSubmit = 'create';
|
typeOnSubmit = 'create';
|
||||||
openDialog = true;
|
openDialog = true;
|
||||||
|
clearForm();
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
|
|
@ -488,7 +516,6 @@ watch(tab, () => {
|
||||||
convertFormToCron();
|
convertFormToCron();
|
||||||
|
|
||||||
onSubmit();
|
onSubmit();
|
||||||
openDialog = false;
|
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ defineProps<{
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<q-dialog v-model="openDialog" class="dialog-content-top">
|
<q-dialog v-model="openDialog" persistent>
|
||||||
<q-card style="width: 80%">
|
<q-card style="width: 80%">
|
||||||
<q-form
|
<q-form
|
||||||
greedy
|
greedy
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,14 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, watch } from "vue";
|
import { ref, watch } from "vue";
|
||||||
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
|
|
||||||
|
const { date2Thai } = useCounterMixin();
|
||||||
|
|
||||||
const name = defineModel<string>("name");
|
const name = defineModel<string>("name");
|
||||||
const typeTime = defineModel<string>("typeTime", { default: "set" });
|
const typeTime = defineModel<string>("typeTime", { default: "set" });
|
||||||
const time = defineModel<string>("time");
|
const time = defineModel<string>("time");
|
||||||
const timeStartEvery = defineModel<string>("timeStartEvery");
|
const timeStartEvery = defineModel<string>("timeStartEvery");
|
||||||
const startAt = defineModel<string>("startAt");
|
const startAt = defineModel<any>("startAt", { default: new Date() });
|
||||||
const selectDate = defineModel<string[]>("date", { default: [] });
|
const selectDate = defineModel<string[]>("date", { default: [] });
|
||||||
const tab = defineModel<string>("tab");
|
const tab = defineModel<string>("tab");
|
||||||
|
|
||||||
|
|
@ -43,12 +46,14 @@ watch(typeTime, () => {
|
||||||
</div>
|
</div>
|
||||||
<div class="col-4">
|
<div class="col-4">
|
||||||
<q-input
|
<q-input
|
||||||
|
:disable="typeTime === 'start'"
|
||||||
v-model="time"
|
v-model="time"
|
||||||
outlined
|
outlined
|
||||||
clearable
|
clearable
|
||||||
hide-bottom-space
|
hide-bottom-space
|
||||||
dense
|
dense
|
||||||
type="time"
|
type="time"
|
||||||
|
:rules="[(val:string) => !!val || 'กรุณากำหนดเวลา' ]"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -58,6 +63,7 @@ watch(typeTime, () => {
|
||||||
</div>
|
</div>
|
||||||
<div class="col-4">
|
<div class="col-4">
|
||||||
<q-select
|
<q-select
|
||||||
|
:disable="typeTime === 'set'"
|
||||||
label="เลือก"
|
label="เลือก"
|
||||||
v-model="timeStartEvery"
|
v-model="timeStartEvery"
|
||||||
:options="timeStartEveryOptions"
|
:options="timeStartEveryOptions"
|
||||||
|
|
@ -69,6 +75,7 @@ watch(typeTime, () => {
|
||||||
option-value="value"
|
option-value="value"
|
||||||
map-options
|
map-options
|
||||||
suffix="ชั่วโมง"
|
suffix="ชั่วโมง"
|
||||||
|
:rules="[(val:string) => !!val || 'กรุณาเลือกเวลา' ]"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -85,6 +92,7 @@ watch(typeTime, () => {
|
||||||
hide-bottom-space
|
hide-bottom-space
|
||||||
dense
|
dense
|
||||||
type="time"
|
type="time"
|
||||||
|
:rules="[(val:string) => !!val || 'กรุณากำหนดเวลา' ]"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -153,6 +161,7 @@ watch(typeTime, () => {
|
||||||
hide-bottom-space
|
hide-bottom-space
|
||||||
dense
|
dense
|
||||||
type="time"
|
type="time"
|
||||||
|
:rules="[(val:string) => !!val || 'กรุณากำหนดเวลา' ]"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -199,7 +208,41 @@ watch(typeTime, () => {
|
||||||
<div class="col-6 column">
|
<div class="col-6 column">
|
||||||
วันที่ - เวลาเริ่มการสำรองข้อมูล
|
วันที่ - เวลาเริ่มการสำรองข้อมูล
|
||||||
|
|
||||||
<q-input outlined clearable hide-bottom-space dense v-model="startAt">
|
<datepicker
|
||||||
|
v-model="startAt"
|
||||||
|
:locale="'th'"
|
||||||
|
selectText="เลือก"
|
||||||
|
cancelText="ยกเลิก"
|
||||||
|
>
|
||||||
|
<template #year="{ year }">{{ year + 543 }}</template>
|
||||||
|
<template #year-overlay-value="{ value }">{{
|
||||||
|
parseInt(value + 543)
|
||||||
|
}}</template>
|
||||||
|
<template #trigger>
|
||||||
|
<q-input
|
||||||
|
dense
|
||||||
|
outlined
|
||||||
|
:model-value="startAt ? date2Thai(startAt, false, true) : null"
|
||||||
|
:label="`${'วันเริ่มต้น'}`"
|
||||||
|
hide-bottom-space
|
||||||
|
>
|
||||||
|
<template v-slot:prepend>
|
||||||
|
<q-icon
|
||||||
|
name="event"
|
||||||
|
class="cursor-pointer"
|
||||||
|
style="color: var(--q-primary)"
|
||||||
|
>
|
||||||
|
</q-icon>
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template #action-preview="{ value }">
|
||||||
|
{{ date2Thai(value, false, true) }}
|
||||||
|
</template>
|
||||||
|
</datepicker>
|
||||||
|
|
||||||
|
<!-- <q-input outlined clearable hide-bottom-space dense v-model="startAt">
|
||||||
<template v-slot:prepend>
|
<template v-slot:prepend>
|
||||||
<q-icon name="event" class="cursor-pointer">
|
<q-icon name="event" class="cursor-pointer">
|
||||||
<q-popup-proxy
|
<q-popup-proxy
|
||||||
|
|
@ -231,7 +274,7 @@ watch(typeTime, () => {
|
||||||
</q-popup-proxy>
|
</q-popup-proxy>
|
||||||
</q-icon>
|
</q-icon>
|
||||||
</template>
|
</template>
|
||||||
</q-input>
|
</q-input> -->
|
||||||
<!--
|
<!--
|
||||||
<q-input v-model="startAt" outlined clearable hide-bottom-space dense>
|
<q-input v-model="startAt" outlined clearable hide-bottom-space dense>
|
||||||
<template v-slot:prepend>
|
<template v-slot:prepend>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue