รายการโครงการ/หลักสูตรการฝึกอบรมที่หน่วยงานของกรุงเทพมหานครเป็นผู้จัด

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2024-04-02 10:23:22 +07:00
parent 0e63cefa5d
commit 71b92a24b5
4 changed files with 121 additions and 50 deletions

View file

@ -1,5 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import { onMounted, reactive, ref } from "vue"; import { onMounted, reactive, ref, watch } from "vue";
import { useQuasar } from "quasar"; import { useQuasar } from "quasar";
import type { FormBasicinfo } from "@/modules/15_development/interface/request/Main"; import type { FormBasicinfo } from "@/modules/15_development/interface/request/Main";
@ -40,7 +40,7 @@ onMounted(() => {
}); });
</script> </script>
<template> <template>
<q-form greedy @submit.prevent @validation-success="onSubmit"> <!-- <q-form greedy @submit.prevent @validation-success="onSubmit"> -->
<div class="row col-12 q-col-gutter-md q-pa-md"> <div class="row col-12 q-col-gutter-md q-pa-md">
<div class="col-xs-6 col-sm-2 col-md-2"> <div class="col-xs-6 col-sm-2 col-md-2">
<datepicker <datepicker
@ -138,7 +138,7 @@ onMounted(() => {
</div> </div>
</div> </div>
<q-separator /> <!-- <q-separator />
<div class="text-right q-pa-sm"> <div class="text-right q-pa-sm">
<q-btn <q-btn
dense dense
@ -151,8 +151,8 @@ onMounted(() => {
> >
<q-tooltip>นทกขอม</q-tooltip> <q-tooltip>นทกขอม</q-tooltip>
</q-btn> </q-btn>
</div> </div> -->
</q-form> <!-- </q-form> -->
<DialogSelectAgency <DialogSelectAgency
v-model:modal="modalDialogSelect" v-model:modal="modalDialogSelect"

View file

@ -1,5 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref } from "vue"; import { ref } from "vue";
import { useQuasar } from "quasar";
import { useRouter, useRoute } from "vue-router"; import { useRouter, useRoute } from "vue-router";
import BasicInfo from "@/modules/15_development/components/BasicInfo.vue"; import BasicInfo from "@/modules/15_development/components/BasicInfo.vue";
@ -8,13 +9,22 @@ import ProjectDetail from "@/modules/15_development/components/ProjectDetail.vue
import FollowResult from "@/modules/15_development/components/FollowResult.vue"; import FollowResult from "@/modules/15_development/components/FollowResult.vue";
import Other from "@/modules/15_development/components/Other.vue"; import Other from "@/modules/15_development/components/Other.vue";
import { useCounterMixin } from "@/stores/mixin";
const $q = useQuasar();
const router = useRouter(); const router = useRouter();
const route = useRoute(); const route = useRoute();
const { showLoader, hideLoader, dialogConfirm } = useCounterMixin();
const title = ref<string>(route.params.id ? "แก้ไข" : "เพิ่ม"); const title = ref<string>(route.params.id ? "แก้ไข" : "เพิ่ม");
const tab = ref<string>("BasicInfo"); const tab = ref<string>("BasicInfo");
function onSubmit() {
dialogConfirm($q, () => {});
}
</script> </script>
<template> <template>
<q-form greedy @submit.prevent @validation-success="onSubmit">
<div class="toptitle text-dark col-12 row items-center"> <div class="toptitle text-dark col-12 row items-center">
<q-btn <q-btn
flat flat
@ -26,6 +36,21 @@ const tab = ref<string>("BasicInfo");
@click="router.go(-1)" @click="router.go(-1)"
/> />
{{ `${title}รายการโครงการ/หลักสูตรการฝึกอบรม` }} {{ `${title}รายการโครงการ/หลักสูตรการฝึกอบรม` }}
<q-space />
<q-btn
dense
unelevated
label="บันทึก"
id="onSubmit"
type="submit"
color="public"
class="q-px-md"
>
<q-tooltip>นทกขอม</q-tooltip>
</q-btn>
<!-- <q-btn unelevated label="บันทึก" color="public" @click="onSubmit">
<q-tooltip>นทกขอม</q-tooltip>
</q-btn> -->
</div> </div>
<q-card flat bordered class="col-12"> <q-card flat bordered class="col-12">
@ -58,6 +83,7 @@ const tab = ref<string>("BasicInfo");
</q-tab-panels> </q-tab-panels>
</div> </div>
</q-card> </q-card>
</q-form>
</template> </template>
<style scoped></style> <style scoped></style>

View file

@ -489,7 +489,8 @@ onMounted(() => {
hide-bottom-space hide-bottom-space
v-model="formGroupTarget.amount" v-model="formGroupTarget.amount"
label="จำนวน(คน)" label="จำนวน(คน)"
mask="#####" mask="#"
reverse-fill-mask
:rules="[ :rules="[
(val:string) => (val:string) =>
!!val || `${'กรุณากรอกจำนวน(คน)'}`, !!val || `${'กรุณากรอกจำนวน(คน)'}`,
@ -545,7 +546,8 @@ onMounted(() => {
hide-bottom-space hide-bottom-space
v-model="formGroupRelate.amount" v-model="formGroupRelate.amount"
label="จำนวน(คน)" label="จำนวน(คน)"
mask="#####" mask="#"
reverse-fill-mask
:rules="[ :rules="[
(val:string) => (val:string) =>
!!val || `${'กรุณากรอกจำนวน(คน)'}`, !!val || `${'กรุณากรอกจำนวน(คน)'}`,

View file

@ -47,6 +47,27 @@ const columns = ref<QTableProps["columns"]>([
]); ]);
const visibleColumns = ref<string[]>(["year", "name", "org"]); const visibleColumns = ref<string[]>(["year", "name", "org"]);
const itemDownload = ref<any>([
{
label: "ดาวน์โหลด 1",
value: "",
icon: "mdi-file-pdf-box",
color: "green",
},
{
label: "ดาวน์โหลด 2",
value: "",
icon: "mdi-file-table",
color: "red",
},
{
label: "ดาวน์โหลด 3",
value: "",
icon: "mdi-file-word",
color: "blue",
},
]);
function fetchListProject() { function fetchListProject() {
showLoader(); showLoader();
const data = [ const data = [
@ -115,11 +136,33 @@ onMounted(() => {
</q-input> </q-input>
</template> </template>
</datepicker> </datepicker>
<q-btn flat round dense icon="add" color="primary" @click="onClickAddOrView()"> <q-btn
flat
round
dense
icon="add"
color="primary"
@click="onClickAddOrView()"
>
<q-tooltip>เพ</q-tooltip> <q-tooltip>เพ</q-tooltip>
</q-btn> </q-btn>
<q-space /> <q-space />
<div class="row q-gutter-sm"> <div class="row q-gutter-sm">
<q-btn flat round color="primary" icon="mdi-download-outline">
<q-menu>
<q-list style="min-width: 100px" dense>
<q-item clickable v-close-popup v-for="items in itemDownload">
<q-item-section avatar>
<q-icon :color="items.color" :name="items.icon" />
</q-item-section>
<q-item-section :class="`text-${items.color}`">{{
items.label
}}</q-item-section>
</q-item>
</q-list>
</q-menu>
</q-btn>
<q-input <q-input
standout standout
dense dense