ปรับ วินัย

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2024-12-10 11:11:57 +07:00
parent 89bedf5251
commit 2adbbc9b24
22 changed files with 416 additions and 411 deletions

View file

@ -26,7 +26,7 @@ const {
messageError,
dialogConfirm,
hideLoader,
dialogMessageNotify,
onSearchDataTable,
} = mixin;
const commandType = ref<string>(""); //
@ -34,10 +34,10 @@ const commandOp = ref<ListCommand[]>([]);
const listCommand = ref<ListCommand[]>([]); //
const modalCommand = ref<boolean>(false);
const optionsType = ref<[]>([]);
const idPath = ref<string>(route.params.id as string);
const type = ref<string>("");
const rows = ref<DataPerson[]>([]);
const rowsMain = ref<DataPerson[]>([]);
const selected = ref<ResponseData[]>([]);
const dataMapToSend = computed(() => {
return selected.value.map((i: any) => ({
@ -72,12 +72,6 @@ const props = defineProps({
title: String,
});
const checkSelected = computed(() => {
if (selected.value.length === 0) {
return true;
}
});
//popup
function saveOrder() {
dialogConfirm(
@ -136,13 +130,20 @@ function Reset() {
*/
function filterSelector(val: string, update: Function) {
update(() => {
commandType.value = val ? "" : commandType.value;
commandOp.value = listCommand.value.filter(
(v: any) => v.name.indexOf(val) > -1
);
});
}
function serchDataTable() {
rows.value = onSearchDataTable(
props?.filterKeyword2 ? props?.filterKeyword2 : "",
rowsMain.value,
props.columns ? props.columns : []
);
}
/**
* เม props.modal เป true
* กำหนดให selected เปนคาวางและกำหนด filter ประเภทตำแหนงตามประเภทการสอบ
@ -157,6 +158,8 @@ watch(
? props.data.persons.filter((item: any) => item.status == "NEW")
: [];
rowsMain.value = rows.value;
const data = await storeCommand.getCommandTypes();
listCommand.value = data.filter(
(v: any) =>
@ -178,78 +181,65 @@ watch(
<q-card style="width: 1200px; max-width: 80vw">
<DialogHeader :tittle="props.title" :close="closeModal" />
<q-separator />
<q-card-section class="q-pt-none">
<div class="row justify-between">
<div class="col-5">
<q-toolbar style="padding: 0">
<q-select
v-model="commandType"
dense
outlined
label="ประเภทคำสั่ง"
:options="commandOp"
option-label="name"
option-value="code"
emit-value
map-options
hide-selected
fill-input
use-input
style="width: 350px; max-width: auto"
@update:model-value="selected = []"
@filter="(inputValue:any,
doneFn:Function) => filterSelector(inputValue, doneFn
) "
>
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
ไมอม
</q-item-section>
</q-item>
</template></q-select
>
</q-toolbar>
</div>
<div class="col-5">
<q-toolbar style="padding: 0">
<q-input
borderless
outlined
dense
debounce="300"
:model-value="filterKeyword2"
@update:model-value="updateInput"
placeholder="ค้นหา"
style="width: 850px; max-width: auto"
>
<template v-slot:append>
<q-icon name="search" />
</template>
</q-input>
<q-select
v-model="props.visibleColumns"
multiple
outlined
dense
options-dense
:display-value="$q.lang.table.columns"
emit-value
map-options
:options="props.columns"
option-value="name"
style="min-width: 140px"
class="gt-xs q-ml-sm"
/>
</q-toolbar>
</div>
<q-card-section>
<div class="q-pb-sm row q-col-gutter-sm">
<q-select
v-model="commandType"
dense
outlined
label="ประเภทคำสั่ง"
:options="commandOp"
option-label="name"
option-value="code"
emit-value
map-options
hide-selected
fill-input
use-input
style="width: 350px; max-width: auto"
@update:model-value="selected = []"
@filter="(inputValue:any,
doneFn:Function) => filterSelector(inputValue, doneFn
) "
>
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey"> ไมอม </q-item-section>
</q-item>
</template></q-select
>
<q-space />
<q-input
borderless
outlined
dense
:model-value="filterKeyword2"
@update:model-value="updateInput"
placeholder="ค้นหา"
@keydown.enter.pervent="serchDataTable"
>
<template v-slot:append>
<q-icon name="search" />
</template>
</q-input>
<q-select
v-model="props.visibleColumns"
multiple
outlined
dense
options-dense
:display-value="$q.lang.table.columns"
emit-value
map-options
:options="props.columns"
option-value="name"
style="min-width: 140px"
/>
</div>
<d-table
:columns="props.columns"
:rows="rows"
:filter="filterKeyword2?.trim()"
row-key="id"
:visible-columns="props.visibleColumns"
selection="multiple"
@ -288,8 +278,9 @@ watch(
<div v-else-if="col.name === 'salary'">
{{ props.row.salary.toLocaleString() }}
</div>
<div v-else>
{{ col.value }}
{{ col.value ?? "-" }}
</div>
</q-td>
</q-tr>

View file

@ -9,13 +9,13 @@ import { useCounterMixin } from "@/stores/mixin";
import { useDisciplineResultStore } from "@/modules/11_discipline/store/ResultStore";
import { useDisciplineMainStore } from "@/modules/11_discipline/store/Main";
import type { DataListRow } from "@/modules/11_discipline/interface/request/Result";
import type { DataListRow } from "@/modules/11_discipline/interface/request/result";
import type {
FormData as FormDataComplaint,
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

@ -13,7 +13,7 @@ import type {
FormData,
FormRef,
DataOption,
} from "@/modules/11_discipline/interface/request/Result";
} from "@/modules/11_discipline/interface/request/result";
import DialogHistory from "@/modules/11_discipline/components/4_Result/DialogHistory.vue";
import PopupPersonal from "@/components/Dialogs/PopupPersonalNew.vue";
@ -175,8 +175,8 @@ function uploadFile() {
showLoader();
http
.put(config.API.upLoadFileResult(id.value), Data)
.then((res) => {
props.fetchData();
.then(async (res) => {
await props.fetchData();
countNum.value = 2;
success($q, "อัปโหลดไฟล์สำเร็จ");
})
@ -202,14 +202,15 @@ function confirmDelete(docid: string) {
showLoader();
http
.delete(config.API.deleteFileResult(id.value, docid))
.then((res) => {
.then(async (res) => {
await props.fetchData();
success($q, `ลบไฟล์สำเร็จ`);
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
props.fetchData();
hideLoader();
});
}

View file

@ -113,41 +113,39 @@ function updatePagination(newPagination: any) {
<template>
<div class="q-pb-sm row q-col-gutter-sm">
<div class="q-gutter-sm" v-if="nornmalData == true"></div>
<div class="col-xs-12 col-sm-4 col-md-4">
<q-select
v-model="statusFilter"
label="สถานะ"
dense
outlined
emit-value
map-options
hide-selected
fill-input
option-label="name"
option-value="id"
:options="option"
@update:model-value="dataUpdate"
use-input
@filter="filterOptionFn"
>
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey"> ไมอม </q-item-section>
</q-item>
</template>
<template v-if="statusFilter !== 'ALL'" v-slot:append>
<q-icon
name="cancel"
@click.stop.prevent="
(option = store.statusOptions),
(statusFilter = 'ALL'),
dataUpdate()
"
class="cursor-pointer"
/>
</template>
</q-select>
</div>
<q-select
v-model="statusFilter"
label="สถานะ"
dense
outlined
emit-value
map-options
hide-selected
fill-input
option-label="name"
option-value="id"
:options="option"
@update:model-value="dataUpdate"
use-input
@filter="filterOptionFn"
>
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey"> ไมอม </q-item-section>
</q-item>
</template>
<template v-if="statusFilter !== 'ALL'" v-slot:append>
<q-icon
name="cancel"
@click.stop.prevent="
(option = store.statusOptions), (statusFilter = 'ALL'), dataUpdate()
"
class="cursor-pointer"
/>
</template>
</q-select>
<q-space />
<q-input
standout
@ -159,7 +157,6 @@ function updatePagination(newPagination: any) {
outlined
placeholder="ค้นหา"
style="max-width: 200px"
class="col-xs-12 col-sm-3 col-md-2"
>
<template v-slot:append>
<q-icon name="search" />
@ -177,7 +174,6 @@ function updatePagination(newPagination: any) {
option-value="name"
map-options
emit-value
class="col-xs-12 col-sm-3 col-md-2 gt-xs"
style="min-width: 140px"
>
</q-select>