ออกคำสั่ง => ปรับ form

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2024-06-12 11:17:16 +07:00
parent 2d2b3a77b5
commit 076d71830c
4 changed files with 54 additions and 244 deletions

View file

@ -484,8 +484,10 @@ function selectOrgLevele(val: string, status: boolean = true) {
</div> </div>
</q-card-section> </q-card-section>
<q-separator /> <q-separator />
<q-card-actions align="right" class="bg-white text-teal"> <q-card-actions align="right">
<q-btn type="submit" :label="`บันทึก`" color="public" /> <q-btn type="submit" :label="`บันทึก`" color="public">
<q-tooltip>นทกขอม</q-tooltip></q-btn
>
</q-card-actions> </q-card-actions>
</form> </form>
</q-card> </q-card>

View file

@ -1,3 +1,4 @@
div
<script setup lang="ts"> <script setup lang="ts">
import { ref, onMounted, watch } from "vue"; import { ref, onMounted, watch } from "vue";
import { useCounterMixin } from "@/stores/mixin"; import { useCounterMixin } from "@/stores/mixin";
@ -812,9 +813,9 @@ const getClass = (val: boolean) => {
}; };
</script> </script>
<template> <template>
<q-form greedy @submit.prevent @validation-success="onSubmit" class="q-pa-md"> <q-card>
<div class="q-pa-md"> <q-form greedy @submit.prevent @validation-success="onSubmit">
<div style="max-height: 68vh; overflow-y: scroll"> <q-card-section style="max-height: 50vh">
<!-- Main --> <!-- Main -->
<div class="row col-12 q-col-gutter-x-lg q-col-gutter-y-md"> <div class="row col-12 q-col-gutter-x-lg q-col-gutter-y-md">
<div class="col-xs-12 col-md-6"> <div class="col-xs-12 col-md-6">
@ -834,8 +835,8 @@ const getClass = (val: boolean) => {
input-debounce="0" input-debounce="0"
@update:model-value="selectCMP(typeOrder)" @update:model-value="selectCMP(typeOrder)"
@filter="(inputValue:any, @filter="(inputValue:any,
doneFn:Function) => filterSelector(inputValue, doneFn,'typeOrderOption' doneFn:Function) => filterSelector(inputValue, doneFn,'typeOrderOption'
) " ) "
/> />
</div> </div>
<div class="col-xs-12 col-md-6"> <div class="col-xs-12 col-md-6">
@ -2215,26 +2216,25 @@ const getClass = (val: boolean) => {
typeOrder.commandCode === 'C-PM-32') typeOrder.commandCode === 'C-PM-32')
" "
> >
<div class="row col-12"> <div class="col-xs-12 col-md-6">
<div class="col-xs-12 col-md-6"> <selector
<selector :class="getClass(true)"
:class="getClass(true)" outlined
outlined dense
dense v-model="complaintId"
v-model="complaintId" :rules="[(val: string) => !!val || `${'กรุณาเลือกเรื่องร้องเรียน'}`]"
:rules="[(val: string) => !!val || `${'กรุณาเลือกเรื่องร้องเรียน'}`]" emit-value
emit-value hide-bottom-space
hide-bottom-space :label="`${'เรื่องร้องเรียน'}`"
:label="`${'เรื่องร้องเรียน'}`" map-options
map-options option-label="name"
option-label="name" :options="DataStore.complaintOption"
:options="DataStore.complaintOption" option-value="id"
option-value="id" use-input
use-input input-debounce="0"
input-debounce="0" />
/>
</div>
</div> </div>
<div class="col-xs-12 col-md-6"></div>
<div class="col-xs-12 col-md-6"> <div class="col-xs-12 col-md-6">
<q-input <q-input
@ -2281,22 +2281,15 @@ const getClass = (val: boolean) => {
/> />
</div> </div>
</div> </div>
</div> </q-card-section>
</div> <q-separator />
<q-card-actions align="right">
<q-separator /> <q-btn label="บันทึก" id="onSubmit" type="submit" color="public">
<div class="flex justify-end q-gutter-sm q-mt-md"> <q-tooltip>นทกขอม</q-tooltip>
<q-btn </q-btn>
unelevated </q-card-actions>
label="บันทึก" </q-form>
id="onSubmit" </q-card>
type="submit"
color="public"
>
<q-tooltip>นทกขอม</q-tooltip>
</q-btn>
</div>
</q-form>
<q-dialog v-model="dialogVisible"> <q-dialog v-model="dialogVisible">
<q-card style="width: 900px; max-width: 80vw"> <q-card style="width: 900px; max-width: 80vw">

View file

@ -458,8 +458,8 @@ const pagination = ref({
</script> </script>
<template> <template>
<div> <q-card>
<div class="q-py-md q-pl-md" style="max-height: 68vh; overflow-y: scroll"> <q-card-section>
<div class="col-12 row q-pb-sm items-center"> <div class="col-12 row q-pb-sm items-center">
<q-btn flat round color="primary" @click="refresh" icon="mdi-plus"> <q-btn flat round color="primary" @click="refresh" icon="mdi-plus">
<q-tooltip>เพมขอม</q-tooltip> <q-tooltip>เพมขอม</q-tooltip>
@ -599,11 +599,11 @@ const pagination = ref({
</q-tr> </q-tr>
</template> </template>
</d-table> </d-table>
</div> </q-card-section>
<q-separator /> <q-separator />
<div class="flex justify-end q-pa-sm q-gutter-sm"> <q-card-actions align="right">
<q-btn <q-btn
dense
outline outline
color="primary" color="primary"
icon="chevron_left" icon="chevron_left"
@ -612,18 +612,11 @@ const pagination = ref({
label="กรอกรายละเอียด" label="กรอกรายละเอียด"
> >
</q-btn> </q-btn>
<q-btn <q-btn label="บันทึก" color="public" @click="save" class="q-px-md">
dense
unelevated
label="บันทึก"
color="public"
@click="save"
class="q-px-md"
>
<q-tooltip>นทกขอม</q-tooltip> <q-tooltip>นทกขอม</q-tooltip>
</q-btn> </q-btn>
</div> </q-card-actions>
</div> </q-card>
<!--********************************** เงนเดอน ********************************** --> <!--********************************** เงนเดอน ********************************** -->
<q-dialog v-model="modal" persistent> <q-dialog v-model="modal" persistent>
<q-card style="width: 50vw; max-width: 50vw"> <q-card style="width: 50vw; max-width: 50vw">
@ -691,8 +684,6 @@ const pagination = ref({
<q-separator /> <q-separator />
<q-card-actions align="right"> <q-card-actions align="right">
<q-btn <q-btn
dense
unelevated
label="บันทึก" label="บันทึก"
color="public" color="public"
@click="saveModal" @click="saveModal"
@ -761,8 +752,6 @@ const pagination = ref({
<q-separator /> <q-separator />
<q-card-actions align="right"> <q-card-actions align="right">
<q-btn <q-btn
dense
unelevated
label="บันทึก" label="บันทึก"
color="public" color="public"
@click="saveModalAdd" @click="saveModalAdd"

View file

@ -2,7 +2,7 @@
import { ref, onMounted } from "vue"; import { ref, onMounted } from "vue";
import { useQuasar } from "quasar"; import { useQuasar } from "quasar";
import { useCounterMixin } from "@/stores/mixin"; import { useCounterMixin } from "@/stores/mixin";
import DialogHeader from "@/modules/04_registry/components/DialogHeader.vue";
import type { QInput, QForm } from "quasar"; import type { QInput, QForm } from "quasar";
import type { treeTab } from "@/modules/05_placement/interface/index/Main"; import type { treeTab } from "@/modules/05_placement/interface/index/Main";
import http from "@/plugins/http"; import http from "@/plugins/http";
@ -42,52 +42,13 @@ const filterRef = ref<QInput>();
const filter = ref<string>(""); const filter = ref<string>("");
const modal = ref<boolean>(false); const modal = ref<boolean>(false);
const search = ref<string>("");
const expanded = ref<string[]>([]); const expanded = ref<string[]>([]);
const selected = ref<string>(""); const selected = ref<string>("");
const nodesTree = ref<treeTab[]>([]); const nodesTree = ref<treeTab[]>([]);
const selectedModal = ref<ResponseOrganiz[]>([]); const selectedModal = ref<ResponseOrganiz[]>([]);
const filterModal = ref<string>("");
const visibleColumnsModal = ref<String[]>(["no", "idCard", "name", "position"]);
const columnsModal = ref<QTableProps["columns"]>([
{
name: "no",
align: "left",
label: "ลำดับ",
field: "no",
sortable: false,
},
{
name: "idCard",
align: "left",
label: "เลขประจำตัวประชาชน",
field: "idCard",
sortable: true,
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
},
{
name: "name",
align: "left",
label: "ชื่อ-นามสกุล",
field: "name",
sortable: true,
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
},
{
name: "position",
align: "left",
label: "ตำแหน่ง",
field: "position",
sortable: true,
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
},
]);
const rowsModal = ref<ResponseOrganiz[]>([]); const rowsModal = ref<ResponseOrganiz[]>([]);
const optionSelect = ref<DataOption[]>([ const optionSelect = ref<DataOption[]>([
@ -245,7 +206,6 @@ const getData = async (id: string) => {
}; };
// //
const saveData = async () => { const saveData = async () => {
const id = route.params.orderid const id = route.params.orderid
? route.params.orderid.toString() ? route.params.orderid.toString()
: localStorage.getItem("orderId") : localStorage.getItem("orderId")
@ -377,8 +337,8 @@ const updateData = (row: DataCopyOrder) => {
</script> </script>
<template> <template>
<div> <q-card>
<div class="q-py-md q-pl-md" style="max-height: 68vh; overflow-y: scroll"> <q-card-section>
<div class="col-12 row q-py-sm items-center"> <div class="col-12 row q-py-sm items-center">
<q-btn flat round color="primary" @click="clickAdd" icon="mdi-plus"> <q-btn flat round color="primary" @click="clickAdd" icon="mdi-plus">
<q-tooltip>เพมขอม</q-tooltip> <q-tooltip>เพมขอม</q-tooltip>
@ -506,11 +466,11 @@ const updateData = (row: DataCopyOrder) => {
</template> </template>
</d-table> </d-table>
</q-form> </q-form>
</div> </q-card-section>
<q-separator /> <q-separator />
<div class="flex justify-end q-pa-sm q-gutter-sm"> <q-card-actions align="right">
<q-btn <q-btn
dense
outline outline
color="primary" color="primary"
icon="chevron_left" icon="chevron_left"
@ -520,8 +480,6 @@ const updateData = (row: DataCopyOrder) => {
> >
</q-btn> </q-btn>
<q-btn <q-btn
dense
unelevated
label="บันทึก" label="บันทึก"
color="public" color="public"
@click="saveDataCopyOrder" @click="saveDataCopyOrder"
@ -529,140 +487,8 @@ const updateData = (row: DataCopyOrder) => {
> >
<q-tooltip>นทกขอม</q-tooltip> <q-tooltip>นทกขอม</q-tooltip>
</q-btn> </q-btn>
</div> </q-card-actions>
</div> </q-card>
<!-- <q-dialog v-model="modal" persistent full-width>
<q-card>
<DialogHeader tittle="เลือกรายชื่อตามหน่วยงาน" :close="clickClose" />
<q-separator />
<q-card-section class="q-pa-sm bg-grey-1">
<div class="row col-12 q-col-gutter-sm">
<div class="col-xs-12 col-sm-5 row">
<q-card flat bordered class="fit q-pa-sm">
<q-scroll-area visible style="height: 70vh">
<q-input
outlined
dense
v-model="search"
placeholder="ค้นหา"
class="q-mb-sm"
>
<template v-slot:append>
<q-icon name="mdi-magnify" />
</template>
</q-input>
<q-tree
:nodes="nodesTree"
dense
node-key="id"
v-model:selected="selected"
v-model:expanded="expanded"
no-selection-unset
selected-color="primary"
@update:selected="onSelected"
default-expand-all
/>
</q-scroll-area>
</q-card>
</div>
<div class="col-xs-12 col-sm-7">
<div class="col-12 row q-py-sm items-center">
<q-space />
<div class="items-center" style="display: flex">
<q-input
standout
dense
v-model="filterModal"
ref="filterRef"
outlined
debounce="300"
placeholder="ค้นหา"
style="max-width: 200px"
class="q-ml-sm"
>
<template v-slot:append>
<q-icon v-if="filterModal == ''" name="search" />
<q-icon
v-if="filterModal !== ''"
name="clear"
class="cursor-pointer"
@click="resetFilter"
/>
</template>
</q-input>
<q-select
v-model="visibleColumnsModal"
:display-value="$q.lang.table.columns"
multiple
outlined
dense
:options="columnsModal"
options-dense
option-value="name"
map-options
emit-value
style="min-width: 150px"
class="gt-xs q-ml-sm"
/>
</div>
</div>
<d-table
:rows="rowsModal"
:columns="columnsModal"
:visible-columns="visibleColumnsModal"
:filter="filterModal"
row-key="profileId"
selection="multiple"
v-model:selected="selectedModal"
>
<template v-slot:header-selection="scope">
<q-checkbox
keep-color
color="primary"
dense
v-model="scope.selected"
/>
</template>
<template v-slot:body-selection="scope">
<q-checkbox
keep-color
color="primary"
dense
v-model="scope.selected"
/>
</template>
<template v-slot:body-cell="props">
<q-td :props="props">
<div v-if="props.col.name == 'no'">
{{ props.rowIndex + 1 }}
</div>
<div v-else>
{{ props.value }}
</div>
</q-td>
</template>
</d-table>
</div>
</div>
</q-card-section>
<q-separator />
<q-card-actions align="right">
<q-btn
dense
unelevated
label="บันทึก"
color="public"
@click="saveData"
class="q-px-md"
/>
</q-card-actions>
</q-card>
</q-dialog> -->
<DialogOrgSelectOneStep <DialogOrgSelectOneStep
v-model:modal="modal" v-model:modal="modal"