ย้ายไอคอน

This commit is contained in:
STW_TTTY\stwtt 2024-07-24 16:37:04 +07:00
parent da4e99f767
commit c3c11afd1f
58 changed files with 1115 additions and 1056 deletions

View file

@ -212,17 +212,14 @@ onMounted(() => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.id">
{{ col.value }}
</q-td>
<q-td auto-width>
<q-btn
color="edit"
@ -251,6 +248,10 @@ onMounted(() => {
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
</q-td>
<q-td v-for="col in props.cols" :key="col.id">
{{ col.value }}
</q-td>
</q-tr>
</template>
<template v-slot:pagination="scope">

View file

@ -258,17 +258,14 @@ onMounted(async () => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.id">
{{ col.value }}
</q-td>
<q-td auto-width>
<q-btn
color="edit"
@ -299,6 +296,10 @@ onMounted(async () => {
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
</q-td>
<q-td v-for="col in props.cols" :key="col.id">
{{ col.value }}
</q-td>
</q-tr>
</template>
<template v-slot:pagination="scope">

View file

@ -398,35 +398,14 @@ onMounted(async () => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.id" class="vertical-top">
<div v-if="col.name == 'positions'">
<div v-if="col.value.length !== 0">
<div v-for="(pos, index) in col.value" :key="pos.id">
{{ pos ? `- ${pos.name}` : "-" }}
</div>
</div>
<div v-else>-</div>
</div>
<div v-else-if="col.name == 'capacitys'">
<div v-if="col.value.length !== 0">
<div v-for="competency in col.value" :key="competency.id">
{{ competency ? `- ${competency.name}` : "-" }}
</div>
</div>
<div v-else>-</div>
</div>
<div v-else>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
<q-td auto-width>
<q-btn
color="edit"
@ -457,6 +436,28 @@ onMounted(async () => {
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
</q-td>
<q-td v-for="col in props.cols" :key="col.id" class="vertical-top">
<div v-if="col.name == 'positions'">
<div v-if="col.value.length !== 0">
<div v-for="(pos, index) in col.value" :key="pos.id">
{{ pos ? `- ${pos.name}` : "-" }}
</div>
</div>
<div v-else>-</div>
</div>
<div v-else-if="col.name == 'capacitys'">
<div v-if="col.value.length !== 0">
<div v-for="competency in col.value" :key="competency.id">
{{ competency ? `- ${competency.name}` : "-" }}
</div>
</div>
<div v-else>-</div>
</div>
<div v-else>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>
<template v-slot:pagination="scope">

View file

@ -256,19 +256,14 @@ onMounted(() => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.name" :props="props">
<div class="table_ellipsis">
{{ col.value ? col.value : "-" }}
</div>
</q-td>
<q-td auto-width>
<q-btn
flat
@ -291,6 +286,12 @@ onMounted(() => {
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
</q-td>
<q-td v-for="col in props.cols" :key="col.name" :props="props">
<div class="table_ellipsis">
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>
<template v-slot:pagination="scope">

View file

@ -404,19 +404,14 @@ onMounted(() => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.name" :props="props">
<div class="table_ellipsis">
{{ col.value ? col.value : "-" }}
</div>
</q-td>
<q-td auto-width>
<q-btn
flat
@ -481,6 +476,12 @@ onMounted(() => {
</q-menu>
</q-btn>
</q-td>
<q-td v-for="col in props.cols" :key="col.name" :props="props">
<div class="table_ellipsis">
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>
</d-table>

View file

@ -409,27 +409,14 @@ onMounted(async () => {
</template>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.name" :props="props">
<div v-if="col.name === 'no'">
{{
(formFilter.page - 1) * Number(pagination.rowsPerPage) +
props.rowIndex +
1
}}
</div>
<div v-else class="table_ellipsis">
{{ col.value ? col.value : "-" }}
</div>
</q-td>
<q-td auto-width>
<q-btn
flat
@ -494,6 +481,20 @@ onMounted(async () => {
</q-menu>
</q-btn>
</q-td>
<q-td v-for="col in props.cols" :key="col.name" :props="props">
<div v-if="col.name === 'no'">
{{
(formFilter.page - 1) * Number(pagination.rowsPerPage) +
props.rowIndex +
1
}}
</div>
<div v-else class="table_ellipsis">
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>
</d-table>

View file

@ -719,6 +719,7 @@ async function emitSearch(keyword: string, typeSelect: string) {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width></q-th>
<q-th
v-for="col in props.cols"
:key="col.name"
@ -729,11 +730,22 @@ async function emitSearch(keyword: string, typeSelect: string) {
col.label
}}</span>
</q-th>
<q-th auto-width></q-th>
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td auto-width>
<q-btn
flat
dense
icon="mdi-delete"
class="q-pa-none q-ml-xs"
color="red"
@click="deleteData(props.row.id)"
>
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
</q-td>
<q-td
v-for="col in props.cols"
:key="col.name"
@ -767,18 +779,7 @@ async function emitSearch(keyword: string, typeSelect: string) {
{{ col.value }}
</div>
</q-td>
<q-td auto-width>
<q-btn
flat
dense
icon="mdi-delete"
class="q-pa-none q-ml-xs"
color="red"
@click="deleteData(props.row.id)"
>
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
</q-td>
</q-tr>
</template>
</d-table>
@ -892,6 +893,7 @@ async function emitSearch(keyword: string, typeSelect: string) {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width></q-th>
<q-th
v-for="col in props.cols"
:key="col.name"
@ -902,46 +904,10 @@ async function emitSearch(keyword: string, typeSelect: string) {
col.label
}}</span>
</q-th>
<q-th auto-width></q-th>
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="addPosition(props.row)"
>
<div v-if="col.name == 'no'">
{{ props.rowIndex + 1 }}
</div>
<div v-else-if="col.name === 'posExecutiveName'">
{{ col.value ? col.value : "-" }}
</div>
<div
v-else-if="col.name === 'positionExecutiveField'"
>
{{ col.value ? col.value : "-" }}
</div>
<div v-else-if="col.name === 'posLevelName'">
{{
props.row.posLevelName
? props.row.isSpecial == true
? `${props.row.posLevelName} (ฉ)`
: props.row.posLevelName
: "-"
}}
</div>
<div v-else-if="col.name === 'positionArea'">
{{ col.value ? col.value : "-" }}
</div>
<div v-else>
{{ col.value }}
</div>
</q-td>
<q-td auto-width>
<q-btn
flat
@ -982,6 +948,42 @@ async function emitSearch(keyword: string, typeSelect: string) {
</q-menu>
</q-btn>
</q-td>
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="addPosition(props.row)"
>
<div v-if="col.name == 'no'">
{{ props.rowIndex + 1 }}
</div>
<div v-else-if="col.name === 'posExecutiveName'">
{{ col.value ? col.value : "-" }}
</div>
<div
v-else-if="col.name === 'positionExecutiveField'"
>
{{ col.value ? col.value : "-" }}
</div>
<div v-else-if="col.name === 'posLevelName'">
{{
props.row.posLevelName
? props.row.isSpecial == true
? `${props.row.posLevelName} (ฉ)`
: props.row.posLevelName
: "-"
}}
</div>
<div v-else-if="col.name === 'positionArea'">
{{ col.value ? col.value : "-" }}
</div>
<div v-else>
{{ col.value }}
</div>
</q-td>
</q-tr>
</template>
</d-table>

View file

@ -563,11 +563,11 @@ watch(
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width></q-th>
<q-th auto-width></q-th>
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width></q-th>
</q-tr>
</template>
<template v-slot:body="props">
@ -583,30 +583,6 @@ watch(
:icon="props.expand ? 'mdi-menu-down' : 'mdi-menu-right'"
/>
</q-td>
<q-td v-for="col in props.cols" :key="col.name" :props="props">
<div v-if="col.name == 'no'">
{{
(reqMaster.page - 1) * Number(reqMaster.pageSize) +
props.rowIndex +
1
}}
</div>
<div v-else-if="col.name === 'posMasterNo'">
{{ props.row.isSit ? col.value + " " + "(ทับที่)" : col.value }}
</div>
<div v-else-if="col.name === 'posLevelName'">
{{
props.row.posLevelName
? props.row.isSpecial == true
? `${props.row.posLevelName} (ฉ)`
: props.row.posLevelName
: "-"
}}
</div>
<div v-else>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
<q-td>
<q-btn
flat
@ -710,6 +686,31 @@ watch(
</q-menu>
</q-btn>
</q-td>
<q-td v-for="col in props.cols" :key="col.name" :props="props">
<div v-if="col.name == 'no'">
{{
(reqMaster.page - 1) * Number(reqMaster.pageSize) +
props.rowIndex +
1
}}
</div>
<div v-else-if="col.name === 'posMasterNo'">
{{ props.row.isSit ? col.value + " " + "(ทับที่)" : col.value }}
</div>
<div v-else-if="col.name === 'posLevelName'">
{{
props.row.posLevelName
? props.row.isSpecial == true
? `${props.row.posLevelName} (ฉ)`
: props.row.posLevelName
: "-"
}}
</div>
<div v-else>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
<q-tr v-show="props.expand" :props="props">

View file

@ -17,23 +17,10 @@
:editData="status == 'checkRegister' || status == 'payment'"
name="ประวัติการทำงาน (ตั้งแต่เริ่มปฏิบัติงานกับกรุงเทพมหานคร - ปัจจุบัน)"
icon="mdi-briefcase"
:iconLeft="true"
>
<template #columns="props">
<q-tr :props="props">
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="selectData(props)"
class="cursor-pointer"
>
<div v-if="col.name == 'startDate' || col.name == 'endDate'">
{{ date2Thai(col.value) }}
</div>
<div v-else>
{{ col.value }}
</div>
</q-td>
<q-td
style="width: 5% !important"
v-if="status == 'checkRegister' || status == 'payment'"
@ -48,6 +35,20 @@
@click="checkDelete(props.row)"
/>
</q-td>
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="selectData(props)"
class="cursor-pointer"
>
<div v-if="col.name == 'startDate' || col.name == 'endDate'">
{{ date2Thai(col.value) }}
</div>
<div v-else>
{{ col.value }}
</div>
</q-td>
</q-tr>
</template>
<template #bottom="props">

View file

@ -111,10 +111,10 @@
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width v-if="nornmalData == true" />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium" v-html="col.label" />
</q-th>
<q-th auto-width v-if="nornmalData == true" />
</q-tr>
</template>
<template #body="props">

View file

@ -72,10 +72,10 @@
<q-tr :props="props">
<q-th auto-width v-if="name === 'ตำแหน่ง/เงินเดือน'" />
<q-th auto-width v-if="name === 'ตำแหน่ง/เงินเดือน'" />
<q-th auto-width v-if="iconLeft == true" />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width v-if="name !== 'การลา'" />
<q-th auto-width v-if="name === 'ประวัติการเปลี่ยนชื่อ-นามสกุล'" />
</q-tr>
</template>
@ -115,6 +115,9 @@ const props = defineProps({
type: Boolean,
required: true,
},
iconLeft: {
type: Boolean,
},
edit: {
type: Function,
default: () => console.log("not function"),

View file

@ -68,10 +68,11 @@
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width v-if="boss == true" />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width v-if="boss == true" />
</q-tr>
</template>
<template #body="props">
@ -97,6 +98,7 @@ const initialPagination = ref<Pagination>({
const props = defineProps({
inputfilter: String,
iconLeft: Boolean,
name: String,
icon: String,
inputvisible: Array,

View file

@ -71,6 +71,7 @@ interface RequestPosition {
positionName: string;
positionLevelId: string;
positionLevelName: string;
code?: string;
typeId: string;
typeName: string;
highDegree: Boolean;

View file

@ -42,6 +42,7 @@ interface ResponsePeriodExam {
}
interface ResponsePosition {
id: string;
code?: string;
position: {
id: string;
name: string;

View file

@ -21,12 +21,49 @@
>
<template #columns="props">
<q-tr :props="props" class="cursor-pointer">
<q-td>
<q-btn
dense
size="12px"
flat
round
color="primary"
@click="clickEditPeriod(props.row.id)"
icon="mdi-pencil-outline"
>
<q-tooltip>แกไขขอม</q-tooltip>
</q-btn>
<q-btn
dense
size="12px"
flat
round
color="red"
@click="clickDelete(props.row.id)"
icon="mdi-delete"
>
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
<q-btn
color="info"
flat
dense
round
size="12px"
icon="mdi-history"
@click="clickHistory(props.row.id)"
>
<q-tooltip>แสดงประวการทำงาน</q-tooltip>
</q-btn>
</q-td>
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="clickDetail(props.row.id)"
>
<div v-if="col.name == 'no'">
{{ props.rowIndex + 1 }}
</div>
@ -122,42 +159,7 @@
{{ col.value }}
</div>
</q-td>
<q-td>
<q-btn
dense
size="12px"
flat
round
color="primary"
@click="clickEditPeriod(props.row.id)"
icon="mdi-pencil-outline"
>
<q-tooltip>แกไขขอม</q-tooltip>
</q-btn>
<q-btn
dense
size="12px"
flat
round
color="red"
@click="clickDelete(props.row.id)"
icon="mdi-delete"
>
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
<q-btn
color="info"
flat
dense
round
size="12px"
icon="mdi-history"
@click="clickHistory(props.row.id)"
>
<q-tooltip>แสดงประวการทำงาน</q-tooltip>
</q-btn>
</q-td>
</q-tr>
</template>
</Table>

View file

@ -21,6 +21,42 @@
>
<template #columns="props">
<q-tr :props="props" class="cursor-pointer">
<q-td>
<q-btn
dense
size="12px"
flat
round
color="primary"
@click="clickEditPeriod(props.row.id)"
icon="mdi-pencil-outline"
>
<q-tooltip>แกไขขอม</q-tooltip>
</q-btn>
<q-btn
dense
size="12px"
flat
round
color="red"
@click="clickDelete(props.row.id)"
icon="mdi-delete"
>
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
<q-btn
color="info"
flat
dense
round
size="12px"
icon="mdi-history"
@click="clickHistory(props.row.id)"
>
<q-tooltip>แสดงประวการทำงาน</q-tooltip>
</q-btn>
</q-td>
<q-td
v-for="col in props.cols"
:key="col.name"
@ -122,42 +158,7 @@
{{ col.value }}
</div>
</q-td>
<q-td>
<q-btn
dense
size="12px"
flat
round
color="primary"
@click="clickEditPeriod(props.row.id)"
icon="mdi-pencil-outline"
>
<q-tooltip>แกไขขอม</q-tooltip>
</q-btn>
<q-btn
dense
size="12px"
flat
round
color="red"
@click="clickDelete(props.row.id)"
icon="mdi-delete"
>
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
<q-btn
color="info"
flat
dense
round
size="12px"
icon="mdi-history"
@click="clickHistory(props.row.id)"
>
<q-tooltip>แสดงประวการทำงาน</q-tooltip>
</q-btn>
</q-td>
</q-tr>
</template>
</Table>

View file

@ -21,6 +21,19 @@
>
<template #columns="props">
<q-tr :props="props" class="cursor-pointer">
<q-td>
<q-btn
dense
size="12px"
flat
round
color="red"
@click="clickDelete(props.row.id)"
icon="mdi-delete"
>
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
</q-td>
<q-td
v-for="col in props.cols"
:key="col.name"
@ -56,19 +69,7 @@
{{ col.value }}
</div>
</q-td>
<q-td>
<q-btn
dense
size="12px"
flat
round
color="red"
@click="clickDelete(props.row.id)"
icon="mdi-delete"
>
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
</q-td>
</q-tr>
</template>
</Table>
@ -220,6 +221,7 @@ const fetchData = async () => {
.get(config.API.periodExamType("all"))
.then((res) => {
const data = res.data.result;
console.log("🚀 ~ .then ~ data:", data)
let result: ResponsePeriodExam[] = [];
if (data.length > 0) {
data.map((r: RequestPeriodExam) => {

View file

@ -368,9 +368,21 @@
icon=""
:statusEdit="false"
:headerShow="false"
:icon-left="true"
>
<template #columns="props">
<q-tr :props="props">
<q-td auto-width>
<q-btn
color="red"
flat
dense
round
size="14px"
icon="mdi-delete"
@click="clickDeletePosition(props.row)"
/>
</q-td>
<q-td key="code" :props="props">
<q-input
outlined
@ -490,17 +502,7 @@
:rules="[(val:any) => !!val || `${'กรุณาเลือกประเภทแบบฟอร์ม'}`]"
></selector>
</q-td>
<q-td auto-width>
<q-btn
color="red"
flat
dense
round
size="14px"
icon="mdi-delete"
@click="clickDeletePosition(props.row)"
/>
</q-td>
</q-tr>
</template>
</ProfileTable>

View file

@ -1,6 +1,6 @@
import type { zipCodeOption } from "../../components/profileType";
interface Pagination {
page: number;
page?: number;
rowsPerPage: number;
}

View file

@ -433,19 +433,14 @@ onMounted(async () => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props" v-if="mode === 'table'">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.id">
<div>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
<q-td auto-width>
<q-btn
color="primary"
@ -491,6 +486,12 @@ onMounted(async () => {
<q-tooltip>ลบขอม</q-tooltip>
</q-btn> -->
</q-td>
<q-td v-for="col in props.cols" :key="col.id">
<div>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>
<template v-slot:item="props" v-else>

View file

@ -591,19 +591,14 @@ onMounted(async () => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props" v-if="mode === 'table'">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.id">
<div>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
<q-td auto-width>
<q-btn
color="primary"
@ -636,6 +631,12 @@ onMounted(async () => {
<q-tooltip>ประวแกไขการฝกอบรม/งาน</q-tooltip>
</q-btn>
</q-td>
<q-td v-for="col in props.cols" :key="col.id">
<div>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>
<template v-slot:item="props" v-else>

View file

@ -705,25 +705,15 @@ onMounted(async () => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props" v-if="modeView === 'table'">
<q-tr :props="props" class="cursor-pointer">
<q-td
v-for="col in props.cols"
class="cursor-pointer"
:key="col.name"
:props="props"
>
<div class="table_ellipsis">
{{ col.value ? col.value : "-" }}
</div>
</q-td>
<q-td auto-width>
<q-btn
flat
@ -749,6 +739,17 @@ onMounted(async () => {
<q-tooltip>ประวแกไขเครองราชอสรยาภรณ</q-tooltip>
</q-btn>
</q-td>
<q-td
v-for="col in props.cols"
class="cursor-pointer"
:key="col.name"
:props="props"
>
<div class="table_ellipsis">
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>

View file

@ -435,25 +435,15 @@ onMounted(async () => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props" v-if="modeView === 'table'">
<q-tr :props="props">
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
class="cursor-pointer"
>
<div class="table_ellipsis">
{{ col.value ? col.value : "-" }}
</div>
</q-td>
<q-td auto-width>
<q-btn
flat
@ -479,6 +469,17 @@ onMounted(async () => {
<q-tooltip>ประวแกไขประกาศเกยรต</q-tooltip>
</q-btn>
</q-td>
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
class="cursor-pointer"
>
<div class="table_ellipsis">
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>

View file

@ -507,25 +507,15 @@ onMounted(async () => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props" v-if="modeView === 'table'">
<q-tr :props="props">
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
class="cursor-pointer"
>
<div class="table_ellipsis">
{{ col.value ? col.value : "-" }}
</div>
</q-td>
<q-td auto-width>
<q-btn
flat
@ -551,6 +541,17 @@ onMounted(async () => {
<q-tooltip>ประวแกไขผลการประเมนการปฏราชการ</q-tooltip>
</q-btn>
</q-td>
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
class="cursor-pointer"
>
<div class="table_ellipsis">
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>

View file

@ -288,21 +288,17 @@ onMounted(() => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width></q-th>
<q-th auto-width></q-th>
<q-th auto-width></q-th>
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width></q-th>
<q-th auto-width></q-th>
<q-th auto-width></q-th>
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer" style="height: 40px">
<q-td v-for="col in props.cols" :key="col.name" :props="props">
<div>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
<q-td>
<q-btn
dense
@ -339,6 +335,12 @@ onMounted(() => {
<q-tooltip>ประวอมลการจาง </q-tooltip>
</q-btn>
</q-td>
<q-td v-for="col in props.cols" :key="col.name" :props="props">
<div>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>
</d-table>

View file

@ -439,24 +439,14 @@ onMounted(async () => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width></q-th>
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width></q-th>
</q-tr>
</template>
<template v-slot:body="props" v-if="mode === 'table'">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.id">
<div v-if="col.name === 'no'">
{{
(formFilter.page - 1) * formFilter.pageSize + props.rowIndex + 1
}}
</div>
<div v-else>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
<q-td auto-width>
<q-btn
color="primary"
@ -496,6 +486,17 @@ onMounted(async () => {
<q-tooltip>ลบขอม</q-tooltip>
</q-btn> -->
</q-td>
<q-td v-for="col in props.cols" :key="col.id">
<div v-if="col.name === 'no'">
{{
(formFilter.page - 1) * formFilter.pageSize + props.rowIndex + 1
}}
</div>
<div v-else>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>
<template v-slot:item="props" v-else>

View file

@ -550,32 +550,14 @@ onMounted(() => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width></q-th>
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width></q-th>
</q-tr>
</template>
<template v-slot:body="props" v-if="mode === 'table'">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.id">
<div v-if="col.name === 'no'">
{{
(formFilter.page - 1) * formFilter.pageSize + props.rowIndex + 1
}}
</div>
<div v-else-if="col.name == 'dateLeave'">
{{
dateThaiRange([props.row.dateStartLeave, props.row.dateEndLeave])
}}
</div>
<div v-else-if="col.name == 'status'">
{{ statusLeave(col.value) }}
</div>
<div v-else>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
<q-td auto-width>
<q-btn
color="primary"
@ -602,6 +584,25 @@ onMounted(() => {
<q-tooltip>ประวแกไขการลา</q-tooltip>
</q-btn>
</q-td>
<q-td v-for="col in props.cols" :key="col.id">
<div v-if="col.name === 'no'">
{{
(formFilter.page - 1) * formFilter.pageSize + props.rowIndex + 1
}}
</div>
<div v-else-if="col.name == 'dateLeave'">
{{
dateThaiRange([props.row.dateStartLeave, props.row.dateEndLeave])
}}
</div>
<div v-else-if="col.name == 'status'">
{{ statusLeave(col.value) }}
</div>
<div v-else>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>
<template v-slot:item="props" v-else>

View file

@ -395,25 +395,14 @@ onMounted(async () => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width></q-th>
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width></q-th>
</q-tr>
</template>
<template v-slot:body="props" v-if="mode === 'table'">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.id">
<div v-if="col.name === 'no'">
{{
(formFilter.page - 1) * formFilter.pageSize + props.rowIndex + 1
}}
</div>
<div v-else>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
<q-td auto-width>
<q-btn
color="primary"
@ -453,6 +442,18 @@ onMounted(async () => {
<q-tooltip>ลบขอม</q-tooltip>
</q-btn> -->
</q-td>
<q-td v-for="col in props.cols" :key="col.id">
<div v-if="col.name === 'no'">
{{
(formFilter.page - 1) * formFilter.pageSize + props.rowIndex + 1
}}
</div>
<div v-else>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>
<template v-slot:item="props" v-else>

View file

@ -306,19 +306,14 @@ onMounted(() => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width></q-th>
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width></q-th>
</q-tr>
</template>
<template v-slot:body="props" v-if="mode === 'table'">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.id">
<div>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
<q-td auto-width>
<q-btn
flat
@ -344,6 +339,12 @@ onMounted(() => {
<q-tooltip>ประวแกไขอนๆ</q-tooltip>
</q-btn>
</q-td>
<q-td v-for="col in props.cols" :key="col.id">
<div>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>
<template v-slot:item="props" v-else>

View file

@ -628,20 +628,15 @@ watch(
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="(col, index) in props.cols" :key="col.name">
<div class="table_ellipsis">
{{ col.value }}
</div>
</q-td>
<q-td auto-width>
<q-btn
color="green"
@ -698,6 +693,11 @@ watch(
<q-tooltip>ลบขอม</q-tooltip>
</q-btn> -->
</q-td>
<q-td v-for="(col, index) in props.cols" :key="col.name">
<div class="table_ellipsis">
{{ col.value }}
</div>
</q-td>
</q-tr>
</template>
</d-table>

View file

@ -792,19 +792,14 @@ onMounted(async () => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props" v-if="mode === 'table'">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.id">
<div>
{{ col.value === "" || col.value === null ? "-" : col.value }}
</div>
</q-td>
<q-td auto-width>
<q-btn
color="primary"
@ -850,6 +845,12 @@ onMounted(async () => {
<q-tooltip>ลบขอม</q-tooltip>
</q-btn> -->
</q-td>
<q-td v-for="col in props.cols" :key="col.id">
<div>
{{ col.value === "" || col.value === null ? "-" : col.value }}
</div>
</q-td>
</q-tr>
</template>
<template v-slot:item="props" v-else>

View file

@ -400,17 +400,14 @@ onMounted(async () => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props" v-if="mode === 'table'">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.id">
<div>{{ col.value ? col.value : "-" }}</div>
</q-td>
<q-td auto-width>
<q-btn
color="primary"
@ -444,6 +441,10 @@ onMounted(async () => {
<q-tooltip>ประวแกไขความสามารถพเศษ</q-tooltip>
</q-btn>
</q-td>
<q-td v-for="col in props.cols" :key="col.id">
<div>{{ col.value ? col.value : "-" }}</div>
</q-td>
</q-tr>
</template>
<template v-slot:item="props" v-else>

View file

@ -599,12 +599,12 @@ onMounted(() => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th auto-width />
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
@ -637,11 +637,6 @@ onMounted(() => {
<!-- <q-tooltip>เลอนลำดบลง</q-tooltip> -->
</q-btn>
</q-td>
<q-td v-for="col in props.cols" :key="col.id">
<div class="table_ellipsis">
{{ col.value ? col.value : "-" }}
</div>
</q-td>
<q-td auto-width>
<q-btn
color="primary"
@ -668,6 +663,12 @@ onMounted(() => {
<q-tooltip>ประวแกไขตำแหน/เงนเดอน</q-tooltip>
</q-btn>
</q-td>
<q-td v-for="col in props.cols" :key="col.id">
<div class="table_ellipsis">
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>
</d-table>

View file

@ -327,17 +327,14 @@ onMounted(() => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props" v-if="modelView === 'table'">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.id">
<div>{{ col.value ? col.value : "-" }}</div>
</q-td>
<q-td auto-width>
<q-btn
flat
@ -376,6 +373,9 @@ onMounted(() => {
<q-tooltip>ลบขอม</q-tooltip>
</q-btn> -->
</q-td>
<q-td v-for="col in props.cols" :key="col.id">
<div>{{ col.value ? col.value : "-" }}</div>
</q-td>
</q-tr>
</template>
<template v-slot:item="props" v-else>

View file

@ -394,74 +394,14 @@ onMounted(() => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="nextPage(props.row.id)"
>
<div v-if="col.name == 'no'">
{{ props.rowIndex + 1 }}
</div>
<div v-else-if="col.name == 'fullname'">
{{
props.row.firstName
? `${props.row.prefix ?? ""}${
props.row.firstName ?? ""
} ${props.row.lastName ?? ""}`
: "-"
}}
</div>
<div v-else-if="col.name == 'status'">
{{ props.row.status ? statusText(props.row.status) : "-" }}
</div>
<div v-else-if="col.name == 'dateOfBirth'">
{{
props.row.dateOfBirth
? date2Thai(props.row.dateOfBirth)
: "-"
}}
</div>
<div v-else-if="col.name == 'organizationName'">
<div class="col-4">
<div class="text-weight-medium">
{{ props.row.root !== null ? props.row.root : "-" }}
{{
props.row.rootShortName !== null
? `(${props.row.rootShortName})`
: ""
}}
</div>
<div class="text-weight-light">
{{
props.row.nodeName !== null ? props.row.nodeName : ""
}}
{{
props.row.nodeShortName !== null
? `(${props.row.nodeShortName}${props.row.posMasterNo})`
: ""
}}
</div>
</div>
</div>
<div v-else-if="col.name == 'createdAt'">
{{
props.row.createdAt ? date2Thai(props.row.createdAt) : "-"
}}
</div>
<div v-else>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
<q-td auto-width>
<q-btn
v-if="
@ -559,6 +499,67 @@ onMounted(() => {
</q-menu>
</q-btn>
</q-td>
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="nextPage(props.row.id)"
>
<div v-if="col.name == 'no'">
{{ props.rowIndex + 1 }}
</div>
<div v-else-if="col.name == 'fullname'">
{{
props.row.firstName
? `${props.row.prefix ?? ""}${
props.row.firstName ?? ""
} ${props.row.lastName ?? ""}`
: "-"
}}
</div>
<div v-else-if="col.name == 'status'">
{{ props.row.status ? statusText(props.row.status) : "-" }}
</div>
<div v-else-if="col.name == 'dateOfBirth'">
{{
props.row.dateOfBirth
? date2Thai(props.row.dateOfBirth)
: "-"
}}
</div>
<div v-else-if="col.name == 'organizationName'">
<div class="col-4">
<div class="text-weight-medium">
{{ props.row.root !== null ? props.row.root : "-" }}
{{
props.row.rootShortName !== null
? `(${props.row.rootShortName})`
: ""
}}
</div>
<div class="text-weight-light">
{{
props.row.nodeName !== null ? props.row.nodeName : ""
}}
{{
props.row.nodeShortName !== null
? `(${props.row.nodeShortName}${props.row.posMasterNo})`
: ""
}}
</div>
</div>
</div>
<div v-else-if="col.name == 'createdAt'">
{{
props.row.createdAt ? date2Thai(props.row.createdAt) : "-"
}}
</div>
<div v-else>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>
</d-table>

View file

@ -297,14 +297,33 @@ onMounted(() => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td auto-width>
<q-btn
:color="
props.row.status == 'REPORT' || props.row.status == 'DONE'
? 'grey'
: 'red-7'
"
:disable="
props.row.status == 'REPORT' || props.row.status == 'DONE'
"
flat
round
class="text-red-14"
icon="mdi-delete"
dense
@click.stop="clickDelete(props.row.id)"
><q-tooltip>ลบขอม</q-tooltip></q-btn
>
</q-td>
<q-td
v-for="col in props.cols"
:key="col.id"
@ -327,25 +346,7 @@ onMounted(() => {
</div>
</q-td>
<q-td auto-width>
<q-btn
:color="
props.row.status == 'REPORT' || props.row.status == 'DONE'
? 'grey'
: 'red-7'
"
:disable="
props.row.status == 'REPORT' || props.row.status == 'DONE'
"
flat
round
class="text-red-14"
icon="mdi-delete"
dense
@click.stop="clickDelete(props.row.id)"
><q-tooltip>ลบขอม</q-tooltip></q-btn
>
</q-td>
</q-tr>
</template>
</d-table>

View file

@ -786,112 +786,6 @@ onMounted(async () => {
>
<template #columns="props">
<q-tr :props="props">
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="selectData(props.row.personalId, props.row.draft)"
class="cursor-pointer"
>
<template v-if="col.name === 'no'">
{{ props.rowIndex + 1 }}
</template>
<template
v-else-if="col.name === 'fullName'"
class="table_ellipsis"
>
<q-item v-ripple>
<q-item-section avatar>
<q-avatar size="30px" color="grey-4">
<q-img :src="props.row.avatar" class="photo-profile" />
</q-avatar>
</q-item-section>
<q-item-section>
<div class="text-weight-medium">{{ props.row.name }}</div>
<div class="text-weight-light">{{ props.row.idCard }}</div>
</q-item-section>
</q-item>
</template>
<template v-else-if="col.name === 'examNumber'">
<div class="text-weight-medium">
{{ props.row.examNumber !== null ? props.row.examNumber : "-" }}
</div>
</template>
<template v-else-if="col.name === 'organizationName'">
<div
v-if="
props.row.orgName !== null || props.row.positionPath !== null
"
>
<div class="col-4">
<div class="text-weight-medium">
{{ props.row.root !== null ? props.row.root : "-" }}
{{
props.row.rootShortName !== null
? `(${props.row.rootShortName})`
: ""
}}
</div>
<div class="text-weight-light">
{{ props.row.nodeName !== null ? props.row.nodeName : "" }}
{{
props.row.nodeShortName !== null
? `(${props.row.nodeShortName}${props.row.posMasterNo})`
: ""
}}
</div>
</div>
</div>
<div v-else>
<div class="col-4">
<div class="text-weight-medium">-</div>
</div>
</div>
</template>
<template v-else-if="col.name === 'positionCandidate'">
<div
class="text-weight-medium"
v-if="props.row.positionCandidate == null"
>
-
</div>
<div class="text-weight-medium" v-else>
{{ props.row.positionCandidate }}
</div>
</template>
<template v-else-if="col.name === 'reportingDate'">
<div class="text-weight-medium">
{{
props.row.reportingDate !== null
? dateText(props.row.reportingDate)
: "-"
}}
</div>
</template>
<template v-else-if="col.name === 'bmaOfficer'">
<div class="text-weight-medium">
{{ props.row.bmaOfficer }}
</div>
</template>
<template v-else-if="col.name === 'draft'">
<div class="text-weight-medium">
{{ props.row.draft }}
</div>
</template>
<template v-else-if="col.name === 'statusName'">
<div class="text-weight-medium">
{{ props.row.statusName }}
</div>
</template>
</q-td>
<q-td auto-width>
<q-btn
v-if="props.row.statusId !== 'CONTAIN'"
@ -1163,6 +1057,113 @@ onMounted(async () => {
</q-menu>
</q-btn>
</q-td>
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="selectData(props.row.personalId, props.row.draft)"
class="cursor-pointer"
>
<template v-if="col.name === 'no'">
{{ props.rowIndex + 1 }}
</template>
<template
v-else-if="col.name === 'fullName'"
class="table_ellipsis"
>
<q-item v-ripple>
<q-item-section avatar>
<q-avatar size="30px" color="grey-4">
<q-img :src="props.row.avatar" class="photo-profile" />
</q-avatar>
</q-item-section>
<q-item-section>
<div class="text-weight-medium">{{ props.row.name }}</div>
<div class="text-weight-light">{{ props.row.idCard }}</div>
</q-item-section>
</q-item>
</template>
<template v-else-if="col.name === 'examNumber'">
<div class="text-weight-medium">
{{ props.row.examNumber !== null ? props.row.examNumber : "-" }}
</div>
</template>
<template v-else-if="col.name === 'organizationName'">
<div
v-if="
props.row.orgName !== null || props.row.positionPath !== null
"
>
<div class="col-4">
<div class="text-weight-medium">
{{ props.row.root !== null ? props.row.root : "-" }}
{{
props.row.rootShortName !== null
? `(${props.row.rootShortName})`
: ""
}}
</div>
<div class="text-weight-light">
{{ props.row.nodeName !== null ? props.row.nodeName : "" }}
{{
props.row.nodeShortName !== null
? `(${props.row.nodeShortName}${props.row.posMasterNo})`
: ""
}}
</div>
</div>
</div>
<div v-else>
<div class="col-4">
<div class="text-weight-medium">-</div>
</div>
</div>
</template>
<template v-else-if="col.name === 'positionCandidate'">
<div
class="text-weight-medium"
v-if="props.row.positionCandidate == null"
>
-
</div>
<div class="text-weight-medium" v-else>
{{ props.row.positionCandidate }}
</div>
</template>
<template v-else-if="col.name === 'reportingDate'">
<div class="text-weight-medium">
{{
props.row.reportingDate !== null
? dateText(props.row.reportingDate)
: "-"
}}
</div>
</template>
<template v-else-if="col.name === 'bmaOfficer'">
<div class="text-weight-medium">
{{ props.row.bmaOfficer }}
</div>
</template>
<template v-else-if="col.name === 'draft'">
<div class="text-weight-medium">
{{ props.row.draft }}
</div>
</template>
<template v-else-if="col.name === 'statusName'">
<div class="text-weight-medium">
{{ props.row.statusName }}
</div>
</template>
</q-td>
</q-tr>
</template>
</Table>

View file

@ -246,10 +246,10 @@ function updateModaladdlist() {
</template>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width v-if="history == true" />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width v-if="history == true" />
</q-tr>
</template>
<template #body="props">

View file

@ -425,73 +425,14 @@ onMounted(() => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="nextPage(props.row.id)"
>
<div v-if="col.name == 'no'">
{{ props.rowIndex + 1 }}
</div>
<div v-else-if="col.name == 'fullname'">
{{
props.row.firstName
? `${props.row.prefix ?? ""}${
props.row.firstName ?? ""
} ${props.row.lastName ?? ""}`
: "-"
}}
</div>
<div v-else-if="col.name == 'dateOfBirth'">
{{
props.row.dateOfBirth
? date2Thai(props.row.dateOfBirth)
: "-"
}}
</div>
<div v-else-if="col.name == 'createdAt'">
{{
props.row.createdAt ? date2Thai(props.row.createdAt) : "-"
}}
</div>
<div v-else-if="col.name == 'organizationName'">
<div class="col-4">
<div class="text-weight-medium">
{{ props.row.root !== null ? props.row.root : "-" }}
{{
props.row.rootShortName !== null
? `(${props.row.rootShortName})`
: ""
}}
</div>
<div class="text-weight-light">
{{
props.row.nodeName !== null ? props.row.nodeName : ""
}}
{{
props.row.nodeShortName !== null
? `(${props.row.nodeShortName}${props.row.posMasterNo})`
: ""
}}
</div>
</div>
</div>
<div v-else-if="col.name == 'status'">
{{ props.row.status ? statusText(props.row.status) : "-" }}
</div>
<div v-else>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
<q-td auto-width>
<q-btn
v-if="
@ -594,6 +535,66 @@ onMounted(() => {
</q-menu>
</q-btn>
</q-td>
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="nextPage(props.row.id)"
>
<div v-if="col.name == 'no'">
{{ props.rowIndex + 1 }}
</div>
<div v-else-if="col.name == 'fullname'">
{{
props.row.firstName
? `${props.row.prefix ?? ""}${
props.row.firstName ?? ""
} ${props.row.lastName ?? ""}`
: "-"
}}
</div>
<div v-else-if="col.name == 'dateOfBirth'">
{{
props.row.dateOfBirth
? date2Thai(props.row.dateOfBirth)
: "-"
}}
</div>
<div v-else-if="col.name == 'createdAt'">
{{
props.row.createdAt ? date2Thai(props.row.createdAt) : "-"
}}
</div>
<div v-else-if="col.name == 'organizationName'">
<div class="col-4">
<div class="text-weight-medium">
{{ props.row.root !== null ? props.row.root : "-" }}
{{
props.row.rootShortName !== null
? `(${props.row.rootShortName})`
: ""
}}
</div>
<div class="text-weight-light">
{{
props.row.nodeName !== null ? props.row.nodeName : ""
}}
{{
props.row.nodeShortName !== null
? `(${props.row.nodeShortName}${props.row.posMasterNo})`
: ""
}}
</div>
</div>
</div>
<div v-else-if="col.name == 'status'">
{{ props.row.status ? statusText(props.row.status) : "-" }}
</div>
<div v-else>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
<!-- <q-tr :props="props" class="cursor-pointer">
<q-td

View file

@ -283,15 +283,35 @@ onMounted(async () => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td auto-width>
<q-btn
icon="delete"
size="14px"
flat
round
dense
:color="
props.row.status == 'REPORT' || props.row.status == 'DONE'
? 'grey'
: 'red-7'
"
@click="clickDelete(props.row.fullname, props.row.id)"
:disable="
props.row.status == 'REPORT' || props.row.status == 'DONE'
"
>
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
</q-td>
<q-td
v-for="col in props.cols"
:key="col.id"
@ -313,26 +333,7 @@ onMounted(async () => {
{{ col.value == null ? "" : col.value }}
</div>
</q-td>
<q-td auto-width>
<q-btn
icon="delete"
size="14px"
flat
round
dense
:color="
props.row.status == 'REPORT' || props.row.status == 'DONE'
? 'grey'
: 'red-7'
"
@click="clickDelete(props.row.fullname, props.row.id)"
:disable="
props.row.status == 'REPORT' || props.row.status == 'DONE'
"
>
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
</q-td>
</q-tr>
</template>
</d-table>

View file

@ -306,14 +306,34 @@ onMounted(async () => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td auto-width>
<q-btn
icon="delete"
size="14px"
flat
round
dense
:color="
props.row.status == 'REPORT' || props.row.status == 'DONE'
? 'grey'
: 'red-7'
"
@click="clickDelete(props.row.id)"
:disable="
props.row.status == 'REPORT' || props.row.status == 'DONE'
"
>
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
</q-td>
<q-td
v-for="col in props.cols"
:key="col.id"
@ -337,26 +357,7 @@ onMounted(async () => {
}}
</div>
</q-td>
<q-td auto-width>
<q-btn
icon="delete"
size="14px"
flat
round
dense
:color="
props.row.status == 'REPORT' || props.row.status == 'DONE'
? 'grey'
: 'red-7'
"
@click="clickDelete(props.row.id)"
:disable="
props.row.status == 'REPORT' || props.row.status == 'DONE'
"
>
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
</q-td>
</q-tr>
</template>
</d-table>

View file

@ -268,31 +268,14 @@ const pagination = ref({
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td
v-for="col in props.cols"
:key="col.id"
@click="router.push(`/retirement/out/${props.row.id}`)"
>
<div v-if="col.name === 'no'">
{{ props.rowIndex + 1 }}
</div>
<div
v-else
:class="col.name === 'organizationPositionOld' ? 'table_ellipsis' : ''"
>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
<q-td auto-width>
<q-btn
dense
@ -313,6 +296,24 @@ const pagination = ref({
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
</q-td>
<q-td
v-for="col in props.cols"
:key="col.id"
@click="router.push(`/retirement/out/${props.row.id}`)"
>
<div v-if="col.name === 'no'">
{{ props.rowIndex + 1 }}
</div>
<div
v-else
:class="col.name === 'organizationPositionOld' ? 'table_ellipsis' : ''"
>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>
</d-table>

View file

@ -348,14 +348,28 @@ const openModalCalendar = (rows: any) => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td auto-width>
<q-btn
v-if="!props.row.appointDate"
icon="mdi-calendar"
size="12px"
color="blue-7"
flat
round
dense
@click="openModalCalendar(props.row)"
>
<q-tooltip>นนดหมายเพอทาการสมภาษณการลาออก</q-tooltip>
</q-btn>
</q-td>
<q-td
key="no"
:props="props"
@ -451,20 +465,7 @@ const openModalCalendar = (rows: any) => {
>
{{ props.row.datetext }}
</q-td>
<q-td auto-width>
<q-btn
v-if="!props.row.appointDate"
icon="mdi-calendar"
size="12px"
color="blue-7"
flat
round
dense
@click="openModalCalendar(props.row)"
>
<q-tooltip>นนดหมายเพอทาการสมภาษณการลาออก</q-tooltip>
</q-btn>
</q-td>
</q-tr>
</template>
</d-table>

View file

@ -284,25 +284,17 @@ onMounted(async () => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th auto-width />
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
<q-th auto-width />
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td
v-for="col in props.cols"
:key="col.id"
@click="clickEdit(props.row)"
>
<div>
{{ col.value }}
</div>
</q-td>
<q-td
key="period_isActive"
:props="props"
@ -365,6 +357,16 @@ onMounted(async () => {
<q-tooltip>ลบขอม</q-tooltip>
</q-btn>
</q-td>
<q-td
v-for="col in props.cols"
:key="col.id"
@click="clickEdit(props.row)"
>
<div>
{{ col.value }}
</div>
</q-td>
</q-tr>
</template>
</d-table>

View file

@ -59,6 +59,8 @@ const filterOrganizationOP = ref<any>([]);
/** หัวตาราง*/
const visibleColumns = ref<string[]>([
"note",
"warn",
"no",
"citizenId",
"name",
@ -70,10 +72,26 @@ const visibleColumns = ref<string[]>([
"insigniaSend",
"insigniaLevel",
"dateSend",
"note",
"warn",
]);
const columns = ref<QTableProps["columns"]>([
{
name: "note",
align: "left",
label: "หมายเหตุ",
sortable: false,
field: "",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "warn",
align: "left",
label: "แจ้งเตือน",
sortable: false,
field: "",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "no",
align: "left",
@ -173,24 +191,6 @@ const columns = ref<QTableProps["columns"]>([
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "note",
align: "left",
label: "หมายเหตุ",
sortable: true,
field: "",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "warn",
align: "left",
label: "แจ้งเตือน",
sortable: true,
field: "",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
]);
const columns2 = ref<QTableProps["columns"]>([
{
@ -1043,10 +1043,6 @@ onMounted(async () => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th></q-th>
<q-th
auto-width
v-if="
@ -1055,7 +1051,10 @@ onMounted(async () => {
checkStatus == true
"
/>
<q-th v-else></q-th>
<q-th auto-width></q-th>
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
</q-tr>
</template>
<template v-slot:body="props">
@ -1064,74 +1063,6 @@ onMounted(async () => {
class="cursor-pointer"
@click.stop="nextPage(props.row.profileId)"
>
<q-td key="no" :props="props">
{{ props.rowIndex + 1 }}
</q-td>
<q-td key="citizenId" :props="props">
{{ props.row.citizenId ?? "-" }}
</q-td>
<q-td key="name" :props="props">
{{ props.row.name }}
</q-td>
<q-td key="employeeType" :props="props">
{{ props.row.employeeType }}
</q-td>
<q-td key="position" :props="props">
{{ props.row.position }}
</q-td>
<q-td key="level" :props="props">
{{ props.row.level }}
</q-td>
<q-td key="salary" :props="props">
{{ Number(props.row.salary).toLocaleString() }}
</q-td>
<q-td key="insigniaType" :props="props">
{{ props.row.insigniaType }}
</q-td>
<q-td key="insigniaSend" :props="props">
{{ props.row.insigniaSend }}
</q-td>
<q-td key="insigniaLevel" :props="props">
{{ props.row.insigniaLevel }}
</q-td>
<q-td key="dateSend" :props="props">
{{ props.row.dateSend }}
</q-td>
<q-td key="note" class="text-center">
<q-btn
v-if="props.row.reason"
icon="mdi-information-outline"
size="12px"
color="blue"
flat
round
dense
@click.stop="clickShowreson(props.row.name, props.row.reason)"
>
<q-tooltip>หมายเหต</q-tooltip>
</q-btn>
</q-td>
<q-td key="warn" class="text-center" v-if="props.row.statusMark">
<q-btn
icon="mdi-information-outline"
size="12px"
color="red"
flat
round
dense
@click.stop="
clickShowWarn(
props.row.markDiscipline,
props.row.markLeave,
props.row.markRate
)
"
>
<q-tooltip>แจงเตอน</q-tooltip></q-btn
>
</q-td>
<q-td v-else auto-width></q-td>
<q-td
v-close-popup
auto-width
@ -1213,18 +1144,83 @@ onMounted(async () => {
</q-menu>
</q-btn>
</q-td>
<q-td v-else auto-width></q-td>
<q-td
auto-width
v-if="props.row.insigniaSend == 'เหรียญจักรพรรดิมาลา'"
>
<q-td auto-width>
<btnDownloadFile
v-if="props.row.insigniaSend == 'เหรียญจักรพรรดิมาลา'"
:profileId="props.row.profileId"
:round="DataStore.roundId"
:optionRound="DataStore.optionRound"
/>
</q-td>
<q-td v-else auto-width></q-td>
<q-td key="note" class="text-center">
<q-btn
v-if="props.row.reason"
icon="mdi-information-outline"
size="12px"
color="blue"
flat
round
dense
@click.stop="clickShowreson(props.row.name, props.row.reason)"
>
<q-tooltip>หมายเหต</q-tooltip>
</q-btn>
</q-td>
<q-td key="warn" class="text-center">
<q-btn
v-if="props.row.statusMark"
icon="mdi-information-outline"
size="12px"
color="red"
flat
round
dense
@click.stop="
clickShowWarn(
props.row.markDiscipline,
props.row.markLeave,
props.row.markRate
)
"
>
<q-tooltip>แจงเตอน</q-tooltip></q-btn
>
</q-td>
<q-td key="no" :props="props">
{{ props.rowIndex + 1 }}
</q-td>
<q-td key="citizenId" :props="props">
{{ props.row.citizenId ?? "-" }}
</q-td>
<q-td key="name" :props="props">
{{ props.row.name }}
</q-td>
<q-td key="employeeType" :props="props">
{{ props.row.employeeType }}
</q-td>
<q-td key="position" :props="props">
{{ props.row.position }}
</q-td>
<q-td key="level" :props="props">
{{ props.row.level }}
</q-td>
<q-td key="salary" :props="props">
{{ Number(props.row.salary).toLocaleString() }}
</q-td>
<q-td key="insigniaType" :props="props">
{{ props.row.insigniaType }}
</q-td>
<q-td key="insigniaSend" :props="props">
{{ props.row.insigniaSend }}
</q-td>
<q-td key="insigniaLevel" :props="props">
{{ props.row.insigniaLevel }}
</q-td>
<q-td key="dateSend" :props="props">
{{ props.row.dateSend }}
</q-td>
</q-tr>
</template>
</d-table>

View file

@ -352,7 +352,7 @@ onMounted(async () => {
:borderless="false"
:outlined="true"
:hide-dropdown-icon="false"
style="min-width: 320px"
style="min-width: 320px"
@update:model-value="
DataStore.searchDataTable(
DataStore.typeinsignia,
@ -446,10 +446,10 @@ onMounted(async () => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
@ -458,6 +458,20 @@ onMounted(async () => {
class="cursor-pointer"
@click="nextPage(props.row.profileId)"
>
<q-td v-if="props.row.requestNote != null" auto-width>
<q-btn
dense
size="12px"
flat
round
color="blue"
@click.stop
@click="showReson(props.row.name, props.row.requestNote)"
icon="mdi-information-outline"
>
<q-tooltip>เหตผลการไมนขอ</q-tooltip>
</q-btn>
</q-td>
<q-td key="no" :props="props">
{{ props.rowIndex + 1 }}
</q-td>
@ -488,20 +502,6 @@ onMounted(async () => {
<q-td key="insigniaLevel" :props="props">
{{ props.row.insigniaLevel }}
</q-td>
<q-td v-if="props.row.requestNote != null" auto-width>
<q-btn
dense
size="12px"
flat
round
color="blue"
@click.stop
@click="showReson(props.row.name, props.row.requestNote)"
icon="mdi-information-outline"
>
<q-tooltip>เหตผลการไมนขอ</q-tooltip>
</q-btn>
</q-td>
</q-tr>
</template>
</d-table>

View file

@ -351,7 +351,7 @@ onMounted(async () => {
:borderless="false"
:outlined="true"
:hide-dropdown-icon="false"
style="min-width: 320px"
style="min-width: 320px"
@update:model-value="
DataStore.searchDataTable(
DataStore.typeinsignia,
@ -445,10 +445,10 @@ onMounted(async () => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
@ -457,6 +457,19 @@ onMounted(async () => {
class="cursor-pointer"
@click="nextPage(props.row.profileId)"
>
<q-td v-if="props.row.requestNote != null" auto-width>
<q-btn
dense
size="12px"
flat
round
color="blue"
@click.stop="showNote(props.row)"
icon="mdi-information-outline"
>
<q-tooltip>เหตผลการลบออก</q-tooltip>
</q-btn>
</q-td>
<q-td key="no" :props="props">
{{ props.rowIndex + 1 }}
</q-td>
@ -488,19 +501,6 @@ onMounted(async () => {
<q-td key="insigniaLevel" :props="props">
{{ props.row.insigniaLevel }}
</q-td>
<q-td v-if="props.row.requestNote != null" auto-width>
<q-btn
dense
size="12px"
flat
round
color="blue"
@click.stop="showNote(props.row)"
icon="mdi-information-outline"
>
<q-tooltip>เหตผลการลบออก</q-tooltip>
</q-btn>
</q-td>
</q-tr>
</template>
</d-table>

View file

@ -541,56 +541,15 @@ onMounted(async () => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td
key="no"
:props="props"
@click="redirectToPage(props.row.id, props.row.insignia)"
>
{{ props.rowIndex + 1 }}
</q-td>
<q-td
key="year"
:props="props"
@click="redirectToPage(props.row.id, props.row.insignia)"
>
{{ props.row.year }}
</q-td>
<q-td
key="insignia"
:props="props"
@click="redirectToPage(props.row.id, props.row.insignia)"
>
{{ props.row.insignia }}
</q-td>
<q-td
key="total"
:props="props"
@click="redirectToPage(props.row.id, props.row.insignia)"
>
{{ props.row.total }}
</q-td>
<q-td
key="allocate"
:props="props"
@click="redirectToPage(props.row.id, props.row.insignia)"
>
{{ props.row.allocate }}
</q-td>
<q-td
key="remain"
:props="props"
@click="redirectToPage(props.row.id, props.row.insignia)"
>
{{ props.row.remain }}
</q-td>
<q-td auto-width>
<q-btn
icon="mdi-dots-vertical"
@ -640,6 +599,49 @@ onMounted(async () => {
</q-menu>
</q-btn>
</q-td>
<q-td
key="no"
:props="props"
@click="redirectToPage(props.row.id, props.row.insignia)"
>
{{ props.rowIndex + 1 }}
</q-td>
<q-td
key="year"
:props="props"
@click="redirectToPage(props.row.id, props.row.insignia)"
>
{{ props.row.year }}
</q-td>
<q-td
key="insignia"
:props="props"
@click="redirectToPage(props.row.id, props.row.insignia)"
>
{{ props.row.insignia }}
</q-td>
<q-td
key="total"
:props="props"
@click="redirectToPage(props.row.id, props.row.insignia)"
>
{{ props.row.total }}
</q-td>
<q-td
key="allocate"
:props="props"
@click="redirectToPage(props.row.id, props.row.insignia)"
>
{{ props.row.allocate }}
</q-td>
<q-td
key="remain"
:props="props"
@click="redirectToPage(props.row.id, props.row.insignia)"
>
{{ props.row.remain }}
</q-td>
</q-tr>
</template>
</d-table>

View file

@ -23,6 +23,7 @@ const tab = ref<string>("");
/** ข้อมูล Table*/
const visibleColumns = ref<String[]>([
"action",
"no",
"status",
"citizenId",
@ -44,9 +45,15 @@ const visibleColumns = ref<String[]>([
"returnOrganization",
"returnDate",
"returnReason",
"action",
]);
const columns = ref<QTableProps["columns"]>([
{
name: "action",
align: "left",
label: "",
field: "",
},
{
name: "no",
align: "left",
@ -228,12 +235,7 @@ const columns = ref<QTableProps["columns"]>([
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "action",
align: "left",
label: "",
field: "",
},
]);
const filterRef = ref<QInput>();
const filter = ref<string>("");

View file

@ -67,6 +67,12 @@ const dataModal = ref<any>([]);
* อม Tabla
*/
const columns = ref<QTableProps["columns"]>([
{
name: "action",
align: "left",
label: "",
field: "",
},
{
name: "no",
align: "left",
@ -210,14 +216,10 @@ const columns = ref<QTableProps["columns"]>([
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
},
{
name: "action",
align: "left",
label: "",
field: "",
},
]);
const visibleColumns = ref<String[]>([
"action",
"no",
"status",
"citizenId",
@ -234,7 +236,7 @@ const visibleColumns = ref<String[]>([
"datepay",
"typepay",
"address",
"action",
]);
const filterRef = ref<QInput>();
const filter = ref<string>("");

View file

@ -372,54 +372,14 @@ onMounted(() => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.name" :props="props">
<template v-if="col.name === 'draftOrganizationOrganization'">
<div
v-if="
props.row.orgName !== null ||
props.row.positionPath !== null
"
>
<div class="col-4">
<div class="text-weight-medium">
{{ props.row.root !== null ? props.row.root : "-" }}
{{
props.row.rootShortName !== null
? `(${props.row.rootShortName})`
: ""
}}
</div>
<div class="text-weight-light">
{{
props.row.nodeName !== null ? props.row.nodeName : ""
}}
{{
props.row.nodeShortName !== null
? `(${props.row.nodeShortName}${props.row.posNo})`
: ""
}}
</div>
</div>
</div>
<div v-else>
<div class="col-4">
<div class="text-weight-medium">-</div>
</div>
</div>
</template>
<div v-else>
{{ col.value !== null && col.value !== "" ? col.value : "-" }}
</div>
</q-td>
<q-td auto-width>
<q-btn
icon="mdi-dots-vertical"
@ -489,6 +449,46 @@ onMounted(() => {
</q-menu>
</q-btn>
</q-td>
<q-td v-for="col in props.cols" :key="col.name" :props="props">
<template v-if="col.name === 'draftOrganizationOrganization'">
<div
v-if="
props.row.orgName !== null ||
props.row.positionPath !== null
"
>
<div class="col-4">
<div class="text-weight-medium">
{{ props.row.root !== null ? props.row.root : "-" }}
{{
props.row.rootShortName !== null
? `(${props.row.rootShortName})`
: ""
}}
</div>
<div class="text-weight-light">
{{
props.row.nodeName !== null ? props.row.nodeName : ""
}}
{{
props.row.nodeShortName !== null
? `(${props.row.nodeShortName}${props.row.posNo})`
: ""
}}
</div>
</div>
</div>
<div v-else>
<div class="col-4">
<div class="text-weight-medium">-</div>
</div>
</div>
</template>
<div v-else>
{{ col.value !== null && col.value !== "" ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>
<template v-slot:pagination="scope">

View file

@ -132,14 +132,26 @@ onMounted(() => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width v-if="typeTab === 'time-record'"></q-th>
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width v-if="typeTab === 'time-record'"></q-th>
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td v-if="typeTab === 'time-record'">
<q-btn
flat
dense
round
color="edit"
icon="edit"
@click.prevent="onClickEdit(props.row)"
>
<q-tooltip>แกไข</q-tooltip>
</q-btn>
</q-td>
<q-td
v-for="col in props.cols"
:key="col.name"
@ -177,18 +189,7 @@ onMounted(() => {
{{ col.value }}
</div>
</q-td>
<q-td v-if="typeTab === 'time-record'">
<q-btn
flat
dense
round
color="edit"
icon="edit"
@click.prevent="onClickEdit(props.row)"
>
<q-tooltip>แกไข</q-tooltip>
</q-btn>
</q-td>
</q-tr>
</template>
<template v-slot:pagination="scope">

View file

@ -209,6 +209,7 @@ function searchData() {
<!-- :paging="true" -->
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th
v-for="col in props.cols"
:key="col.name"
@ -217,17 +218,11 @@ function searchData() {
>
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th style="width: 200px" />
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.name" :props="props">
<div>
{{ col.value }}
</div>
</q-td>
<q-td style="width: 150px">
<q-td>
<div>
<q-btn
flat
@ -272,6 +267,11 @@ function searchData() {
</q-btn>
</div>
</q-td>
<q-td v-for="col in props.cols" :key="col.name" :props="props">
<div>
{{ col.value }}
</div>
</q-td>
</q-tr>
</template>
<template v-slot:pagination="scope">

View file

@ -179,6 +179,7 @@ onMounted(() => {
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width></q-th>
<q-th auto-width></q-th>
<q-th
v-for="col in props.cols"
@ -188,12 +189,13 @@ onMounted(() => {
>
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width></q-th>
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td auto-width>
<q-icon
v-if="props.row.isDefault === true"
name="mdi-bookmark"
@ -203,6 +205,16 @@ onMounted(() => {
<q-tooltip>เวลา Default</q-tooltip>
</q-icon>
</q-td>
<q-td>
<q-btn
dense
flat
round
color="red"
icon="delete"
@click="onClickDelete(props.row.id)"
/>
</q-td>
<q-td
v-for="col in props.cols"
:key="col.name"
@ -227,16 +239,7 @@ onMounted(() => {
{{ col.value }}
</div>
</q-td>
<q-td>
<q-btn
dense
flat
round
color="red"
icon="delete"
@click="onClickDelete(props.row.id)"
/>
</q-td>
</q-tr>
</template>
</d-table>

View file

@ -290,30 +290,15 @@ const monthYearThai = (val: any) => {
</template>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width />
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.name" :props="props">
<div v-if="col.name == 'no'">
{{
(dataSpecialTime.page - 1) * dataSpecialTime.pageSize +
props.rowIndex +
1
}}
</div>
<div v-else-if="col.name === 'description'" class="table_ellipsis">
{{ props.row.description }}
</div>
<div v-else>
{{ col.value }}
</div>
</q-td>
<q-td auto-width>
<q-td auto-width class="text-right">
<q-btn
v-if="props.row.status == 'PENDING'"
color="orange"
@ -356,6 +341,24 @@ const monthYearThai = (val: any) => {
label="ไม่อนุมัติ"
/>
</q-td>
<q-td v-for="col in props.cols" :key="col.name" :props="props">
<div v-if="col.name == 'no'">
{{
(dataSpecialTime.page - 1) * dataSpecialTime.pageSize +
props.rowIndex +
1
}}
</div>
<div
v-else-if="col.name === 'description'"
class="table_ellipsis"
>
{{ props.row.description }}
</div>
<div v-else>
{{ col.value }}
</div>
</q-td>
</q-tr>
</template>
</d-table>
@ -369,7 +372,7 @@ const monthYearThai = (val: any) => {
label="เหตุผล"
:savaForm="clickSave"
/>
<DialogApprove
:modal="modalApprove"
:closeDialog="closeDialog"

View file

@ -475,7 +475,6 @@ watch(
col.label
}}</span>
</q-th>
<q-th auto-width></q-th>
</q-tr>
</template>
<template v-slot:body="props">
@ -616,6 +615,7 @@ watch(
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width></q-th>
<q-th
v-for="col in props.cols"
:key="col.name"
@ -626,46 +626,10 @@ watch(
col.label
}}</span>
</q-th>
<q-th auto-width></q-th>
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="addPosition(props.row)"
>
<div v-if="col.name == 'no'">
{{ props.rowIndex + 1 }}
</div>
<div v-else-if="col.name === 'posExecutiveName'">
{{ col.value ? col.value : "-" }}
</div>
<div
v-else-if="col.name === 'positionExecutiveField'"
>
{{ col.value ? col.value : "-" }}
</div>
<div v-else-if="col.name === 'posLevelName'">
{{
props.row.posLevelName
? props.row.isSpecial == true
? `${props.row.posLevelName} (ฉ)`
: props.row.posLevelName
: "-"
}}
</div>
<div v-else-if="col.name === 'positionArea'">
{{ col.value ? col.value : "-" }}
</div>
<div v-else>
{{ col.value }}
</div>
</q-td>
<q-td auto-width>
<q-btn
flat
@ -706,6 +670,42 @@ watch(
</q-menu>
</q-btn>
</q-td>
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
@click="addPosition(props.row)"
>
<div v-if="col.name == 'no'">
{{ props.rowIndex + 1 }}
</div>
<div v-else-if="col.name === 'posExecutiveName'">
{{ col.value ? col.value : "-" }}
</div>
<div
v-else-if="col.name === 'positionExecutiveField'"
>
{{ col.value ? col.value : "-" }}
</div>
<div v-else-if="col.name === 'posLevelName'">
{{
props.row.posLevelName
? props.row.isSpecial == true
? `${props.row.posLevelName} (ฉ)`
: props.row.posLevelName
: "-"
}}
</div>
<div v-else-if="col.name === 'positionArea'">
{{ col.value ? col.value : "-" }}
</div>
<div v-else>
{{ col.value }}
</div>
</q-td>
</q-tr>
</template>
</d-table>

View file

@ -477,38 +477,14 @@ watch(
>
<template v-slot:header="props">
<q-tr :props="props">
<q-th auto-width></q-th>
<q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span>
</q-th>
<q-th auto-width></q-th>
</q-tr>
</template>
<template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.name" :props="props">
<div v-if="col.name == 'no'">
{{
(reqMaster.page - 1) * Number(reqMaster.pageSize) +
props.rowIndex +
1
}}
</div>
<div v-else-if="col.name === 'posMasterNo'">
{{ props.row.isSit ? col.value + " " + "(ทับที่)" : col.value }}
</div>
<div v-else-if="col.name === 'posLevelName'">
{{
props.row.posLevelName
? props.row.isSpecial == true
? `${props.row.posLevelName} (ฉ)`
: props.row.posLevelName
: "-"
}}
</div>
<div v-else>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
<q-td>
<q-btn
flat
@ -602,6 +578,31 @@ watch(
</q-menu>
</q-btn>
</q-td>
<q-td v-for="col in props.cols" :key="col.name" :props="props">
<div v-if="col.name == 'no'">
{{
(reqMaster.page - 1) * Number(reqMaster.pageSize) +
props.rowIndex +
1
}}
</div>
<div v-else-if="col.name === 'posMasterNo'">
{{ props.row.isSit ? col.value + " " + "(ทับที่)" : col.value }}
</div>
<div v-else-if="col.name === 'posLevelName'">
{{
props.row.posLevelName
? props.row.isSpecial == true
? `${props.row.posLevelName} (ฉ)`
: props.row.posLevelName
: "-"
}}
</div>
<div v-else>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>
<template v-slot:pagination="scope">

View file

@ -466,6 +466,7 @@ onMounted(() => {
<q-tr :props="props">
<q-th auto-width v-if="rowListPerson.length !== 1" />
<q-th auto-width v-if="rowListPerson.length !== 1" />
<q-th auto-width />
<q-th
v-for="col in props.cols"
:key="col.name"
@ -475,7 +476,6 @@ onMounted(() => {
col.label
}}</span>
</q-th>
<q-th auto-width />
</q-tr>
</template>
<template v-slot:body="props">
@ -514,18 +514,6 @@ onMounted(() => {
<!-- <q-tooltip>เลอนลำดบลง</q-tooltip> -->
</q-btn>
</q-td>
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
>
<div v-if="col.name === 'no'">
{{ props.rowIndex + 1 }}
</div>
<div v-else>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
<q-td>
<q-btn
dense
@ -539,6 +527,19 @@ onMounted(() => {
<!-- <q-tooltip>เลอนลำดบลง</q-tooltip> -->
</q-btn>
</q-td>
<q-td
v-for="col in props.cols"
:key="col.name"
:props="props"
>
<div v-if="col.name === 'no'">
{{ props.rowIndex + 1 }}
</div>
<div v-else>
{{ col.value ? col.value : "-" }}
</div>
</q-td>
</q-tr>
</template>
<!-- <template v-slot:pagination="scope">