แก้ select /input

This commit is contained in:
setthawutttty 2024-12-02 15:12:53 +07:00
parent a934497083
commit 97879802b1
45 changed files with 138 additions and 279 deletions

View file

@ -427,6 +427,8 @@ onMounted(async () => {
option-label="name"
emit-value
use-input
hide-selected
fill-input
map-options
hide-bottom-space
:options="complainstStore.complainantoptions"
@ -462,6 +464,8 @@ onMounted(async () => {
outlined
option-label="name"
option-value="id"
hide-selected
fill-input
map-options
v-model="organization"
:options="optionOrganization"
@ -498,6 +502,8 @@ onMounted(async () => {
:readonly="isReadonly || checkRoutePermisson"
hide-bottom-space
map-options
hide-selected
fill-input
:rules="[(val:string) => !!val || `${'กรุณาเลือกหน่วยงาน'}`]"
@update:model-value="changeFormData()"
use-input

View file

@ -48,7 +48,7 @@ async function getList() {
config.API.complaintList(
pagination.value.page,
pagination.value.rowsPerPage,
filterKeyword.value,
filterKeyword.value.trim(),
statusFilter.value
)
)
@ -91,7 +91,6 @@ function resetFilter() {
* @param update function
*/
function filterOptionFn(val: string, update: Function) {
statusFilter.value = "";
update(() => {
option.value = complainstStore.statusOptions.filter(
(e: any) => e.name.search(val) !== -1
@ -133,6 +132,8 @@ onMounted(async () => {
map-options
option-label="name"
option-value="id"
hide-selected
fill-input
:options="option"
@update:model-value="getSearch()"
use-input
@ -184,13 +185,7 @@ onMounted(async () => {
@keydown.enter.prevent="getSearch()"
>
<template v-slot:append>
<q-icon v-if="filterKeyword == ''" name="search" />
<q-icon
v-if="filterKeyword !== ''"
name="clear"
class="cursor-pointer"
@click="resetFilter"
/>
<q-icon name="search" />
</template>
</q-input>

View file

@ -371,7 +371,7 @@ async function getList() {
config.API.directorList(
pagination.value.page,
pagination.value.rowsPerPage,
filterKeyword2.value,
filterKeyword2.value.trim(),
mainStore.pathDirector(route.name as string)
)
)
@ -792,6 +792,8 @@ onMounted(async () => {
option-value="id"
option-label="name"
emit-value
hide-selected
fill-input
use-input
map-options
hide-bottom-space
@ -828,6 +830,8 @@ onMounted(async () => {
option-label="name"
option-value="id"
v-model="organization"
hide-selected
fill-input
:options="option"
label="หน่วยงานที่ถูกร้องเรียน"
clearable
@ -871,6 +875,8 @@ onMounted(async () => {
label="ลักษณะการสืบสวน"
emit-value
map-options
hide-selected
fill-input
clearable
option-label="name"
option-value="id"

View file

@ -50,7 +50,7 @@ async function getList() {
config.API.investigateMain(
pagination.value.page,
pagination.value.rowsPerPage,
filterKeyword.value,
filterKeyword.value.trim(),
statusFilter.value
)
)
@ -141,6 +141,8 @@ onMounted(async () => {
outlined
emit-value
map-options
hide-selected
fill-input
option-label="name"
option-value="id"
:options="option"
@ -180,13 +182,7 @@ onMounted(async () => {
@keydown.enter.prevent="getSerach()"
>
<template v-slot:append>
<q-icon v-if="filterKeyword == ''" name="search" />
<q-icon
v-if="filterKeyword !== ''"
name="clear"
class="cursor-pointer"
@click="resetFilter"
/>
<q-icon name="search" />
</template>
</q-input>
@ -202,7 +198,6 @@ onMounted(async () => {
map-options
:options="dataInvestigate.columns"
option-value="name"
style="min-width: 140px"
class="col-xs-12 col-sm-3 col-md-2"
/>

View file

@ -451,7 +451,7 @@ async function fetchDListDirector() {
config.API.directorList(
pagination.value.page,
pagination.value.rowsPerPage,
filterKeyword2.value,
filterKeyword2.value.trim(),
mainStore.pathDirector(route.name as string)
)
)
@ -782,6 +782,8 @@ onMounted(async () => {
option-label="name"
emit-value
use-input
hide-selected
fill-input
map-options
hide-bottom-space
:options="complainstStore.complainantoptions"
@ -818,6 +820,8 @@ onMounted(async () => {
outlined
option-label="name"
option-value="id"
hide-selected
fill-input
map-options
v-model="organization"
:options="optionOrganization"
@ -1768,6 +1772,8 @@ onMounted(async () => {
:options="option"
label="ผลการสอบสวน"
emit-value
hide-selected
fill-input
hide-bottom-space
map-options
option-label="name"
@ -1793,6 +1799,8 @@ onMounted(async () => {
:readonly="isReadonly || checkRoutePermisson"
for="#fault"
outlined
hide-selected
fill-input
dense
ref="disciplinaryCauseTextRef"
v-model="formData.disciplinaryCauseText"

View file

@ -33,7 +33,7 @@ async function fetchListDisciplinary() {
await http
.get(
config.API.disciplineDisciplinary() +
`?page=${pagination.value.page}&pageSize=${pagination.value.rowsPerPage}&keyword=${filter.value}&status=${status.value}`
`?page=${pagination.value.page}&pageSize=${pagination.value.rowsPerPage}&keyword=${filter.value.trim()}&status=${status.value}`
)
.then((res) => {
const data = res.data.result.data;

View file

@ -123,7 +123,6 @@ function filterFn() {
* @param update function
*/
function filterOptionFn(val: string, update: Function) {
statusFilter.value = "";
update(() => {
option.value = dataInvestigateDis.statusOptions.filter(
(e: any) => e.name.search(val) !== -1
@ -146,6 +145,8 @@ function updatePagination(newPagination: any) {
dense
outlined
emit-value
hide-selected
fill-input
map-options
option-label="name"
option-value="id"
@ -187,13 +188,7 @@ function updatePagination(newPagination: any) {
@keydown.enter.prevent="filterFn"
>
<template v-slot:append>
<q-icon v-if="inputfilter == ''" name="search" />
<q-icon
v-if="inputfilter !== ''"
name="clear"
class="cursor-pointer"
@click="resetFilter"
/>
<q-icon name="search" />
</template>
</q-input>
<!-- แสดงคอลมนใน table -->

View file

@ -192,6 +192,8 @@ watch(
option-value="code"
emit-value
map-options
hide-selected
fill-input
use-input
style="width: 350px; max-width: auto"
@update:model-value="selected = []"
@ -223,13 +225,7 @@ watch(
style="width: 850px; max-width: auto"
>
<template v-slot:append>
<q-icon v-if="filterKeyword2 == ''" name="search" />
<q-icon
v-if="filterKeyword2 !== ''"
name="clear"
class="cursor-pointer"
@click="Reset"
/>
<q-icon name="search" />
</template>
</q-input>
<q-select
@ -243,7 +239,6 @@ watch(
map-options
:options="props.columns"
option-value="name"
style="min-width: 140px"
class="gt-xs q-ml-sm"
/>
@ -254,7 +249,7 @@ watch(
<d-table
:columns="props.columns"
:rows="rows"
:filter="filterKeyword2"
:filter="filterKeyword2?.trim()"
row-key="id"
:visible-columns="props.visibleColumns"
selection="multiple"

View file

@ -15,7 +15,7 @@ import type {
ArrayPerson,
ArrayFileList,
} from "@/modules/11_discipline/interface/request/complaint";
import type { FormData as FormInvestigateFact } from "@/modules/11_discipline/interface/request/InvestigateFact";
import type { FormData as FormInvestigateFact } from "@/modules/11_discipline/interface/request/investigateFact";
import DialogSendToCommand from "@/modules/11_discipline/components/4_Result/DialogSendToCommand.vue";
import FormComplaints from "@/modules/11_discipline/components/1_Complaint/Form.vue"; //

View file

@ -36,7 +36,7 @@ async function fetchListResult() {
await http
.get(
config.API.listResult() +
`?page=${pagination.value.page}&pageSize=${pagination.value.rowsPerPage}&keyword=${filter.value}&status=${status.value}`
`?page=${pagination.value.page}&pageSize=${pagination.value.rowsPerPage}&keyword=${filter.value.trim()}&status=${status.value}`
)
.then(async (res) => {
const data = res.data.result.data;

View file

@ -80,7 +80,6 @@ function updatePaging(p: number, pS: number, key: string) {
emit("update:queryString", p, pS, key);
}
function dataUpdate() {
props.filterStatus(statusFilter.value);
}
@ -98,7 +97,6 @@ function filterFn() {
* @param update function
*/
function filterOptionFn(val: string, update: Function) {
statusFilter.value = "";
update(() => {
option.value = store.statusOptions.filter(
(e: any) => e.name.search(val) !== -1
@ -123,6 +121,8 @@ function updatePagination(newPagination: any) {
outlined
emit-value
map-options
hide-selected
fill-input
option-label="name"
option-value="id"
:options="option"
@ -162,13 +162,7 @@ function updatePagination(newPagination: any) {
class="col-xs-12 col-sm-3 col-md-2"
>
<template v-slot:append>
<q-icon v-if="inputfilter == ''" name="search" />
<q-icon
v-if="inputfilter !== ''"
name="clear"
class="cursor-pointer"
@click="resetFilter"
/>
<q-icon name="search" />
</template>
</q-input>
<q-select

View file

@ -198,13 +198,7 @@ onMounted(() => {
placeholder="ค้นหา"
>
<template v-slot:append>
<q-icon v-if="filterKeyword == ''" name="search" />
<q-icon
v-if="filterKeyword !== ''"
name="clear"
class="cursor-pointer"
@click="resetFilter"
/>
<q-icon name="search" />
</template>
</q-input>
@ -220,7 +214,6 @@ onMounted(() => {
map-options
:options="dataStore.columns"
option-value="name"
style="min-width: 140px"
class="col-xs-12 col-sm-3 col-md-2"
/>
@ -230,7 +223,7 @@ onMounted(() => {
:columns="dataStore.columns"
:rows="dataStore.rows"
row-key="id"
:filter="filterKeyword"
:filter="filterKeyword.trim()"
:visible-columns="dataStore.visibleColumns"
v-model:pagination="pagination"
>

View file

@ -50,8 +50,7 @@ const props = defineProps({
const type = ref<string>("citizenId");
const typeOps = ref<typeOp[]>([
{ id: "citizenId", name: "เลขประจำตัวประชาชน" },
{ id: "firstname", name: "ชื่อ" },
{ id: "lastname", name: "นามสกุล" },
{ id: "fullName", name: "ชื่อ-นามสกุล" },
]);
const isReadonly = ref<boolean>(false); //
const emit = defineEmits(["formDataReturn"]);
@ -321,7 +320,6 @@ watch(
hide-bottom-space
dense
label="คำค้น"
:rules="[(val:string) => !!val || `กรุณากรอกคำค้น`]"
>
<template v-slot:after>
<q-btn
@ -329,7 +327,7 @@ watch(
icon="search"
label="ค้นหา"
class="full-width q-py-sm q-px-md"
outline
unelevated
@click="searchInput()"
>
</q-btn>

View file

@ -52,7 +52,7 @@ async function getList() {
config.API.directorList(
pagination.value.page,
pagination.value.rowsPerPage,
filterKeyword.value,
filterKeyword.value.trim(),
mainStore.pathDirector(route.name as string)
)
)
@ -189,13 +189,7 @@ onMounted(() => {
@keydown.enter.prevent="filterFn"
>
<template v-slot:append>
<q-icon v-if="filterKeyword == ''" name="search" />
<q-icon
v-if="filterKeyword !== ''"
name="clear"
class="cursor-pointer"
@click="resetFilter"
/>
<q-icon name="search" />
</template>
</q-input>

View file

@ -183,6 +183,8 @@ watch(
option-label="name"
option-value="code"
emit-value
hide-selected
fill-input
map-options
use-input
style="width: 350px; max-width: auto"
@ -209,13 +211,7 @@ watch(
style="width: 200px; max-width: auto"
>
<template v-slot:append>
<q-icon v-if="filterKeyword == ''" name="search" />
<q-icon
v-if="filterKeyword !== ''"
name="clear"
class="cursor-pointer"
@click="filterKeyword = ''"
/>
<q-icon name="search" />
</template>
</q-input>
@ -230,7 +226,6 @@ watch(
map-options
:options="columns"
option-value="name"
style="min-width: 140px"
class="gt-xs q-ml-sm"
/>
@ -239,7 +234,7 @@ watch(
<d-table
:columns="columns"
:rows="rows"
:filter="filterKeyword"
:filter="filterKeyword.trim()"
row-key="id"
:visible-columns="visibleColumns"
selection="multiple"
@ -293,6 +288,6 @@ watch(
<DialogCreateCommand
v-model:modal="modalCommand"
:command-type-code="commandType"
:persons="selected ? dataMapToSend:[]"
:persons="selected ? dataMapToSend : []"
/>
</template>

View file

@ -165,7 +165,7 @@ async function getList() {
config.API.suspendMain(
pagination.value.page,
pagination.value.rowsPerPage,
filterKeyword.value
filterKeyword.value.trim()
)
)
.then(async (res) => {
@ -247,13 +247,7 @@ onMounted(async () => {
@keydown.enter.prevent="filterFn"
>
<template v-slot:append>
<q-icon v-if="filterKeyword == ''" name="search" />
<q-icon
v-if="filterKeyword !== ''"
name="clear"
class="cursor-pointer"
@click="resetFilter"
/>
<q-icon name="search" />
</template>
</q-input>
@ -268,7 +262,6 @@ onMounted(async () => {
map-options
:options="columns"
option-value="name"
style="min-width: 140px"
class="col-xs-12 col-sm-3 col-md-2 q-ml-sm"
/>

View file

@ -389,6 +389,8 @@ onMounted(() => {
dense
outlined
emit-value
hide-selected
fill-input
map-options
lazy-rules
option-label="name"
@ -417,6 +419,8 @@ onMounted(() => {
dense
bg-color="white"
outlined
hide-selected
fill-input
emit-value
lazy-rules
:rules="[(val:string) => !!val || `${'กรุณาเลือกสถานะ'}`]"

View file

@ -223,7 +223,7 @@ async function getData() {
totalList.value = Math.ceil(
res.data.result.total / pagination.value.rowsPerPage
);
total.value = res.data.result.total;
total.value = res.data.result.total;
fetchAppealComplain(res.data.result.data);
})
.catch((e) => {
@ -279,7 +279,6 @@ function filterOptionFnType(val: string, update: Function) {
function updatePagination(newPagination: any) {
pagination.value.page = 1;
pagination.value.rowsPerPage = newPagination.rowsPerPage;
}
function getSearch() {
@ -335,12 +334,7 @@ onMounted(async () => {
@keydown.enter.prevent="filterFn"
>
<template v-slot:append>
<q-icon
v-if="filterKeyword !== ''"
name="clear"
class="cursor-pointer"
@click="resetFilter"
/>
<q-icon name="search" />
</template>
</q-input>
@ -417,6 +411,8 @@ onMounted(async () => {
outlined
emit-value
map-options
hide-selected
fill-input
option-label="name"
option-value="id"
:options="optionType"
@ -449,6 +445,8 @@ onMounted(async () => {
dense
outlined
emit-value
hide-selected
fill-input
map-options
option-label="name"
option-value="id"

View file

@ -144,7 +144,7 @@ function updateInput() {
/**รีเซ็ตค่าในช่องค้นหา */
function Reset() {
filterKeyword2.value = ''
filterKeyword2.value = "";
props.getSearch?.();
}
@ -183,13 +183,7 @@ watch(
style="max-width: 100%"
>
<template v-slot:append>
<q-icon v-if="filterKeyword2 == ''" name="search" />
<q-icon
v-if="filterKeyword2 !== ''"
name="clear"
class="cursor-pointer"
@click="Reset"
/>
<q-icon name="search" />
</template>
</q-input>

View file

@ -72,7 +72,11 @@ const initialPagination = ref<any>({
/** ฟังชั่นส่งคนไปออกคำสั่ง */
function onclickSend() {
if (props.title == "ส่งไปพักราชการ" || props.title == "ส่งไปสืบสวน" || props.title == "ส่งไปสอบสวน") {
if (
props.title == "ส่งไปพักราชการ" ||
props.title == "ส่งไปสืบสวน" ||
props.title == "ส่งไปสอบสวน"
) {
if (selected.value.length === 0) {
dialogMessageNotify($q, "กรุณาเลือกอย่างน้อย 1 บุคคล");
} else {
@ -142,13 +146,7 @@ watch(
class="q-ml-sm"
>
<template v-slot:append>
<q-icon v-if="filter == ''" name="search" />
<q-icon
v-if="filter !== ''"
name="clear"
class="cursor-pointer"
@click="filter = ''"
/>
<q-icon name="search" />
</template>
</q-input>
<!-- แสดงคอลมนใน table -->
@ -173,7 +171,7 @@ watch(
ref="table"
:columns="props.columns"
:rows="props.rows"
:filter="filter"
:filter="filter.trim()"
row-key="personId"
flat
bordered