no message

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2024-12-03 10:49:23 +07:00
parent b21a4f53ac
commit d54ab48bc5
27 changed files with 220 additions and 418 deletions

View file

@ -32,7 +32,7 @@ const empType = ref<string>(pathRegistryEmp(route.name?.toString() ?? ""));
/**
* props
*/
const isLeave = defineModel<boolean>("isLeave", {
const isLeave = defineModel<boolean>("isLeave", {
required: true,
});
@ -251,6 +251,7 @@ function closeDialog() {
function closeHistoryDialog() {
historyDialog.value = false;
historyRows.value = [];
historyKeyword.value = "";
}
/**
@ -410,7 +411,6 @@ onMounted(() => {
map-options
:options="columns"
option-value="name"
style="min-width: 140px"
/>
@ -456,7 +456,7 @@ onMounted(() => {
bordered
:paging="true"
dense
:filter="keyword"
:filter="keyword.trim()"
v-model:pagination="pagination"
:rows-per-page-options="[20, 50, 100]"
class="custom-header-table"
@ -748,7 +748,6 @@ onMounted(() => {
map-options
:options="historyColumns"
option-value="name"
style="min-width: 140px"
/>
</div>
@ -758,7 +757,7 @@ onMounted(() => {
:rows="historyRows"
row-key="name"
flat
:filter="historyKeyword"
:filter="historyKeyword.trim()"
v-model:pagination="historyPagination"
bordered
:paging="true"

View file

@ -482,6 +482,7 @@ function closeDialog() {
function closeHistoryDialog() {
historyDialog.value = false;
historyRows.value = [];
historyKeyword.value = "";
}
/**
@ -566,7 +567,6 @@ onMounted(() => {
map-options
:options="columns"
option-value="name"
style="min-width: 140px"
/>
@ -612,7 +612,7 @@ onMounted(() => {
bordered
:paging="true"
dense
:filter="keyword"
:filter="keyword.trim()"
:rows-per-page-options="[20, 50, 100]"
v-model:pagination="pagination"
class="custom-header-table"
@ -642,9 +642,7 @@ onMounted(() => {
<q-tooltip>ประวแกไขการฝกอบรม/งาน</q-tooltip>
</q-btn>
<q-btn
v-if="
isLeave == false && checkPermission($route)?.attrIsUpdate
"
v-if="isLeave == false && checkPermission($route)?.attrIsUpdate"
flat
dense
round
@ -684,9 +682,7 @@ onMounted(() => {
<q-tooltip>ประวแกไขการฝกอบรม/งาน</q-tooltip>
</q-btn>
<q-btn
v-if="
isLeave == false && checkPermission($route)?.attrIsUpdate
"
v-if="isLeave == false && checkPermission($route)?.attrIsUpdate"
flat
round
color="edit"
@ -1136,7 +1132,6 @@ onMounted(() => {
map-options
:options="historyColumns"
option-value="name"
style="min-width: 140px"
/>
</div>
@ -1146,7 +1141,7 @@ onMounted(() => {
:rows="historyRows"
row-key="name"
flat
:filter="historyKeyword"
:filter="historyKeyword.trim()"
v-model:pagination="historyPagination"
bordered
:paging="true"

View file

@ -73,6 +73,8 @@ const modalHistory = ref<boolean>(false); //แสดง popup ประวั
const OpsFilter = ref<InsigniaOps>({
insigniaOptions: [],
});
const insigniaOptions = ref<any[]>([]);
//
const Ops = ref<InsigniaOps>({
insigniaOptions: [],
@ -600,7 +602,7 @@ function filterSelector(val: string, update: Function, refData: string) {
switch (refData) {
case "insigniaOptions":
update(() => {
Ops.value.insigniaOptions = OpsFilter.value.insigniaOptions.filter(
insigniaOptions.value = OpsFilter.value.insigniaOptions.filter(
(v: DataOption) => v.name.indexOf(val) > -1
);
});
@ -650,6 +652,7 @@ onMounted(async () => {
store.insigniaOption.length === 0 ? await fetchInsignia() : "";
Ops.value.insigniaOptions = store.insigniaOption;
OpsFilter.value.insigniaOptions = store.insigniaOption;
insigniaOptions.value = store.insigniaOption;
});
</script>
@ -677,18 +680,7 @@ onMounted(async () => {
debounce="300"
>
<template v-slot:append>
<q-icon
v-if="filterSearch == ''"
name="search"
@click.stop.prevent="filterSearch = ''"
class="cursor-pointer"
/>
<q-icon
v-if="filterSearch"
name="cancel"
@click.stop.prevent="filterSearch = ''"
class="cursor-pointer"
/>
<q-icon name="search" />
</template>
</q-input>
<q-select
@ -703,7 +695,6 @@ onMounted(async () => {
map-options
:options="columns"
option-value="name"
style="min-width: 140px"
/>
<q-btn-toggle
@ -745,7 +736,7 @@ onMounted(async () => {
:rows="rows"
:paging="true"
:columns="columns"
:filter="filterSearch"
:filter="filterSearch.trim()"
v-model:pagination="pagination"
:grid="modeView === 'card'"
:visible-columns="visibleColumns"
@ -776,9 +767,7 @@ onMounted(async () => {
</q-btn>
<q-btn
v-if="
isLeave == false && checkPermission($route)?.attrIsUpdate
"
v-if="isLeave == false && checkPermission($route)?.attrIsUpdate"
flat
dense
round
@ -811,9 +800,7 @@ onMounted(async () => {
<q-tooltip>ประวแกไขเครองราชอสรยาภรณ</q-tooltip>
</q-btn>
<q-btn
v-if="
isLeave == false && checkPermission($route)?.attrIsUpdate
"
v-if="isLeave == false && checkPermission($route)?.attrIsUpdate"
flat
round
color="edit"
@ -945,10 +932,12 @@ onMounted(async () => {
</datepicker>
</div>
<div class="col-xs-6 col-sm-6 col-md-6">
<selector
<q-select
dense
outlined
use-input
hide-selected
fill-input
emit-value
lazy-rules
map-options
@ -959,13 +948,21 @@ onMounted(async () => {
v-model="insigniaForm.insigniaId"
class="inputgreen"
:label="`${'ชื่อเครื่องราชฯ'}`"
:options="Ops.insigniaOptions"
:options="insigniaOptions"
:rules="[(val:string) => !!val || `${'กรุณาเลือกชื่อเครื่องราชฯ'}`]"
@filter="(inputValue:string,
doneFn:Function) => filterSelector(inputValue, doneFn,'insigniaOptions'
) "
@update:modelValue="insigniaTypeSelection"
/>
>
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
ไมอม
</q-item-section>
</q-item>
</template>
</q-select>
</div>
<div class="col-xs-6 col-sm-6 col-md-6">
<q-input
@ -1165,7 +1162,11 @@ onMounted(async () => {
<q-card style="min-width: 80%">
<DialogHeader
tittle="ประวัติแก้ไขเครื่องราชอิสริยาภรณ์"
:close="() => ((modalHistory = false), (rowsHistory = []))"
:close="
() => (
(modalHistory = false), (rowsHistory = []), (filterHistory = '')
)
"
/>
<q-separator />
@ -1182,18 +1183,7 @@ onMounted(async () => {
debounce="300"
>
<template v-slot:append>
<q-icon
v-if="filterHistory == ''"
name="search"
@click.stop.prevent="filterHistory = ''"
class="cursor-pointer"
/>
<q-icon
v-if="filterHistory"
name="cancel"
@click.stop.prevent="filterHistory = ''"
class="cursor-pointer"
/>
<q-icon name="search" />
</template>
</q-input>
<q-select
@ -1207,7 +1197,6 @@ onMounted(async () => {
map-options
:options="columnsHistory"
option-value="name"
style="min-width: 140px"
/>
</div>
@ -1222,7 +1211,7 @@ onMounted(async () => {
:paging="true"
:rows-per-page-options="[10, 25, 50, 100]"
:visible-columns="visibleColumnsHistory"
:filter="filterHistory"
:filter="filterHistory.trim()"
>
>
<template v-slot:header="props">

View file

@ -35,7 +35,7 @@ const empType = ref<string>(pathRegistryEmp(route.name?.toString() ?? ""));
/**
* props
*/
const isLeave = defineModel<boolean>("isLeave", {
const isLeave = defineModel<boolean>("isLeave", {
required: true,
});
@ -393,18 +393,7 @@ onMounted(() => {
debounce="300"
>
<template v-slot:append>
<q-icon
v-if="filterSearch == ''"
name="search"
@click.stop.prevent="filterSearch = ''"
class="cursor-pointer"
/>
<q-icon
v-if="filterSearch"
name="cancel"
@click.stop.prevent="filterSearch = ''"
class="cursor-pointer"
/>
<q-icon name="search" />
</template>
</q-input>
<q-select
@ -419,7 +408,6 @@ onMounted(() => {
map-options
:options="columns"
option-value="name"
style="min-width: 140px"
/>
<q-btn-toggle
@ -461,7 +449,7 @@ onMounted(() => {
:rows="rows"
:paging="true"
:columns="columns"
:filter="filterSearch"
:filter="filterSearch.trim()"
:grid="modeView === 'card'"
v-model:pagination="pagination"
:visible-columns="visibleColumns"
@ -778,7 +766,11 @@ onMounted(() => {
<q-card-section class="flex justify-between" style="padding: 0">
<DialogHeader
tittle="ประวัติแก้ไขประกาศเกียรติคุณ"
:close="() => ((modalHistory = false), (rowsHistory = []))"
:close="
() => (
(modalHistory = false), (rowsHistory = []), (filterHistory = '')
)
"
/>
</q-card-section>
@ -796,18 +788,7 @@ onMounted(() => {
debounce="300"
>
<template v-slot:append>
<q-icon
v-if="filterHistory == ''"
name="search"
@click.stop.prevent="filterHistory = ''"
class="cursor-pointer"
/>
<q-icon
v-if="filterHistory"
name="cancel"
@click.stop.prevent="filterHistory = ''"
class="cursor-pointer"
/>
<q-icon name="search" />
</template>
</q-input>
<q-select
@ -821,7 +802,6 @@ onMounted(() => {
map-options
:options="columnsHistory"
option-value="name"
style="min-width: 140px"
/>
</div>
@ -836,7 +816,7 @@ onMounted(() => {
v-model:pagination="historyPagination"
:rows-per-page-options="[10, 25, 50, 100]"
:visible-columns="visibleColumnsHistory"
:filter="filterHistory"
:filter="filterHistory.trim()"
>
>
<template v-slot:header="props">

View file

@ -49,7 +49,7 @@ const kpiDevelopmentId = ref<string>(""); // id การพัฒนารา
/**
* props
*/
const isLeave = defineModel<boolean>("isLeave", {
const isLeave = defineModel<boolean>("isLeave", {
required: true,
});
@ -419,16 +419,19 @@ async function getDevelop(isLoad?: boolean) {
await http
.get(
config.API.developMentPlan +
`/${profileId.value}?page=${paginationIdp.value.page}&pageSize=${paginationIdp.value.rowsPerPage}&searchKeyword=${filterSearchPlan.value}
`/${profileId.value}?page=${paginationIdp.value.page}&pageSize=${
paginationIdp.value.rowsPerPage
}&searchKeyword=${filterSearchPlan.value.trim()}
`
)
.then((res) => {
const data = res.data.result.data;
totalListIdp.value = Math.ceil(
res.data.result.total / pagination.value.rowsPerPage
res.data.result.total / paginationIdp.value.rowsPerPage
);
totalIdp.value = res.data.result.total;
rowsPlan.value = data;
isLoad && hideLoader();
})
.catch((e) => {
@ -608,18 +611,7 @@ onMounted(async () => {
debounce="300"
>
<template v-slot:append>
<q-icon
v-if="filterSearch == ''"
name="search"
@click.stop.prevent="filterSearch = ''"
class="cursor-pointer"
/>
<q-icon
v-if="filterSearch"
name="cancel"
@click.stop.prevent="filterSearch = ''"
class="cursor-pointer"
/>
<q-icon name="search" />
</template>
</q-input>
<q-select
@ -634,7 +626,6 @@ onMounted(async () => {
map-options
:options="columns"
option-value="name"
style="min-width: 140px"
/>
<q-btn-toggle
@ -678,7 +669,7 @@ onMounted(async () => {
:rows="rows"
:paging="true"
:columns="columns"
:filter="filterSearch"
:filter="filterSearch.trim()"
v-model:pagination="pagination"
:grid="modeView === 'card'"
:visible-columns="visibleColumns"
@ -710,7 +701,9 @@ onMounted(async () => {
>
</q-btn>
<q-btn
v-if="isLeave == false && checkPermission($route)?.attrIsUpdate"
v-if="
isLeave == false && checkPermission($route)?.attrIsUpdate
"
flat
dense
round
@ -745,7 +738,10 @@ onMounted(async () => {
>
</q-btn>
<q-btn
v-if="isLeave == false && checkPermission($route)?.attrIsUpdate"
v-if="
isLeave == false &&
checkPermission($route)?.attrIsUpdate
"
flat
round
color="edit"
@ -800,24 +796,12 @@ onMounted(async () => {
ref="filterPlanRef"
outlined
placeholder="ค้นหา"
debounce="300"
@keydown.enter.prevent="getDevelop"
@keydown.enter.prevent="
(paginationIdp.page = 1), getDevelop(true)
"
>
<template v-slot:append>
<q-icon
v-if="filterSearchPlan == ''"
name="search"
@click.stop.prevent="filterSearchPlan = ''"
class="cursor-pointer"
/>
<q-icon
v-if="filterSearchPlan"
name="cancel"
@click.stop.prevent="
(filterSearchPlan = ''), getDevelop(true)
"
class="cursor-pointer"
/>
<q-icon name="search" />
</template>
</q-input>
<q-select
@ -832,7 +816,6 @@ onMounted(async () => {
map-options
:options="columnsPlan"
option-value="name"
style="min-width: 140px"
/>
<q-btn-toggle
@ -1208,7 +1191,11 @@ onMounted(async () => {
<q-card style="min-width: 80%">
<DialogHeader
tittle="ประวัติแก้ไขผลการประเมินการปฏิบัติราชการ"
:close="() => ((modalHistory = false), (rowsHistory = []))"
:close="
() => (
(modalHistory = false), (rowsHistory = []), (filterHistory = '')
)
"
/>
<q-separator />
<q-card-section style="max-height: 60vh" class="scroll">
@ -1224,18 +1211,7 @@ onMounted(async () => {
debounce="300"
>
<template v-slot:append>
<q-icon
v-if="filterHistory == ''"
name="search"
@click.stop.prevent="filterHistory = ''"
class="cursor-pointer"
/>
<q-icon
v-if="filterHistory"
name="cancel"
@click.stop.prevent="filterHistory = ''"
class="cursor-pointer"
/>
<q-icon name="search" />
</template>
</q-input>
<q-select
@ -1249,7 +1225,6 @@ onMounted(async () => {
map-options
:options="columnsHistory"
option-value="name"
style="min-width: 140px"
/>
</div>
@ -1264,7 +1239,7 @@ onMounted(async () => {
:paging="true"
:rows-per-page-options="[10, 25, 50, 100]"
:visible-columns="visibleColumnsHistory"
:filter="filterHistory"
:filter="filterHistory.trim()"
>
>
<template v-slot:header="props">

View file

@ -267,7 +267,6 @@ watch(
<div class="row q-col-gutter-sm">
<div class="col-3">
<q-select
class="inputgreen"
outlined
dense
label="ตัวเลือก"
@ -305,7 +304,6 @@ watch(
outlined
hide-bottom-space
:rules="[(val:string) => !!val || `${'กรุณาเลือกปีงบประมาณ'}`,]"
class="inputgreen"
:model-value="
formData.year === null ? null : Number(formData.year) + 543
"
@ -328,7 +326,6 @@ watch(
outlined
dense
:rules="[(val:string) => !!val || `${'กรุณาเลือกโครงการ/หลักสูตรการฝึกอบรม'}`,]"
class="inputgreen"
label="โครงการ/หลักสูตรการฝึกอบรม"
:options="projectOp"
option-label="projectName"
@ -475,7 +472,6 @@ watch(
readonly
type="textarea"
dense
class="inputgreen"
:rules="[(val:string) => !!val || `${'กรุณากรอกเป้าหมายการนำไปพัฒนางาน'}`,]"
lazy-rules
hide-bottom-space
@ -497,7 +493,7 @@ watch(
</div>
<div class="col-8">
<q-input
class="inputgreen"
v-model="formData.achievement10"
outlined
readonly
@ -516,7 +512,7 @@ watch(
</div>
<div class="col-8">
<q-input
class="inputgreen"
v-model="formData.achievement5"
outlined
readonly
@ -535,7 +531,6 @@ watch(
</div>
<div class="col-8">
<q-input
class="inputgreen"
v-model="formData.achievement0"
outlined
readonly