รายการโครงการ/หลักสูตรการฝึกอบรมที่หน่วยงานของกรุงเทพมหานครเป็นผู้จัด
This commit is contained in:
parent
0e63cefa5d
commit
71b92a24b5
4 changed files with 121 additions and 50 deletions
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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,56 +9,81 @@ 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>
|
||||||
<div class="toptitle text-dark col-12 row items-center">
|
<q-form greedy @submit.prevent @validation-success="onSubmit">
|
||||||
<q-btn
|
<div class="toptitle text-dark col-12 row items-center">
|
||||||
flat
|
<q-btn
|
||||||
round
|
flat
|
||||||
dense
|
round
|
||||||
class="q-mr-sm"
|
dense
|
||||||
icon="mdi-arrow-left"
|
class="q-mr-sm"
|
||||||
color="primary"
|
icon="mdi-arrow-left"
|
||||||
@click="router.go(-1)"
|
color="primary"
|
||||||
/>
|
@click="router.go(-1)"
|
||||||
{{ `${title}รายการโครงการ/หลักสูตรการฝึกอบรม` }}
|
/>
|
||||||
</div>
|
{{ `${title}รายการโครงการ/หลักสูตรการฝึกอบรม` }}
|
||||||
|
<q-space />
|
||||||
<q-card flat bordered class="col-12">
|
<q-btn
|
||||||
<q-tabs
|
dense
|
||||||
v-model="tab"
|
unelevated
|
||||||
dense
|
label="บันทึก"
|
||||||
align="left"
|
id="onSubmit"
|
||||||
inline-label
|
type="submit"
|
||||||
class="rounded-borders"
|
color="public"
|
||||||
indicator-color="primary"
|
class="q-px-md"
|
||||||
active-bg-color="teal-1"
|
>
|
||||||
active-class="text-primary"
|
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
||||||
>
|
</q-btn>
|
||||||
<q-tab name="BasicInfo" label="ข้อมูลเบื้องต้น" />
|
<!-- <q-btn unelevated label="บันทึก" color="public" @click="onSubmit">
|
||||||
<q-tab name="Target" label="เป้าหมาย" />
|
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
||||||
<q-tab name="ProjectDetail" label="ลักษณะโครงการ" />
|
</q-btn> -->
|
||||||
<q-tab name="FollowResult" label="การติดตามการประเมินผล" />
|
|
||||||
<q-tab name="Other" label="อื่นๆ" />
|
|
||||||
</q-tabs>
|
|
||||||
<q-separator />
|
|
||||||
<div class="q-pa-sm" style="padding: 0px">
|
|
||||||
<q-tab-panels v-model="tab" animated>
|
|
||||||
<q-tab-panel style="padding: 0px" name="BasicInfo">
|
|
||||||
<BasicInfo />
|
|
||||||
</q-tab-panel>
|
|
||||||
<q-tab-panel name="Target"> <Target /></q-tab-panel>
|
|
||||||
<q-tab-panel name="ProjectDetail"> <ProjectDetail /> </q-tab-panel>
|
|
||||||
<q-tab-panel name="FollowResult"> <FollowResult /> </q-tab-panel>
|
|
||||||
<q-tab-panel name="Other"> <Other /> </q-tab-panel>
|
|
||||||
</q-tab-panels>
|
|
||||||
</div>
|
</div>
|
||||||
</q-card>
|
|
||||||
|
<q-card flat bordered class="col-12">
|
||||||
|
<q-tabs
|
||||||
|
v-model="tab"
|
||||||
|
dense
|
||||||
|
align="left"
|
||||||
|
inline-label
|
||||||
|
class="rounded-borders"
|
||||||
|
indicator-color="primary"
|
||||||
|
active-bg-color="teal-1"
|
||||||
|
active-class="text-primary"
|
||||||
|
>
|
||||||
|
<q-tab name="BasicInfo" label="ข้อมูลเบื้องต้น" />
|
||||||
|
<q-tab name="Target" label="เป้าหมาย" />
|
||||||
|
<q-tab name="ProjectDetail" label="ลักษณะโครงการ" />
|
||||||
|
<q-tab name="FollowResult" label="การติดตามการประเมินผล" />
|
||||||
|
<q-tab name="Other" label="อื่นๆ" />
|
||||||
|
</q-tabs>
|
||||||
|
<q-separator />
|
||||||
|
<div class="q-pa-sm" style="padding: 0px">
|
||||||
|
<q-tab-panels v-model="tab" animated>
|
||||||
|
<q-tab-panel style="padding: 0px" name="BasicInfo">
|
||||||
|
<BasicInfo />
|
||||||
|
</q-tab-panel>
|
||||||
|
<q-tab-panel name="Target"> <Target /></q-tab-panel>
|
||||||
|
<q-tab-panel name="ProjectDetail"> <ProjectDetail /> </q-tab-panel>
|
||||||
|
<q-tab-panel name="FollowResult"> <FollowResult /> </q-tab-panel>
|
||||||
|
<q-tab-panel name="Other"> <Other /> </q-tab-panel>
|
||||||
|
</q-tab-panels>
|
||||||
|
</div>
|
||||||
|
</q-card>
|
||||||
|
</q-form>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped></style>
|
<style scoped></style>
|
||||||
|
|
|
||||||
|
|
@ -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 || `${'กรุณากรอกจำนวน(คน)'}`,
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue