ปรับเเก้

This commit is contained in:
setthawutttty 2023-12-19 15:05:48 +07:00
parent d2c6837a86
commit 46f82b78fc
18 changed files with 446 additions and 190 deletions

View file

@ -19,12 +19,16 @@ import type {
MyObjectInvestigateRef,
} from "@/modules/11_discipline/interface/request/investigateFact";
import type {
ArrayPersonAdd
} from '@/modules/11_discipline/interface/response/investigate'
import config from "@/app.config";
import http from "@/plugins/http";
const $q = useQuasar();
const route = useRoute();
const router = useRouter();
const id = ref<string>(route.params.id as string);
const modalPerson = ref<boolean>(false);
const toggleModal = () => (modalPerson.value = !modalPerson.value);
/**เรียกใช้ store */
@ -271,7 +275,8 @@ watch(props.data, async () => {
formData.investigationExtendHistory = props.data.investigationExtendHistory;
mainStore.rowsAdd = props.data.persons;
mainStore.rowsCheck = mainStore.rowsAdd.filter((item:any)=> item.isSend === false )
console.log(mainStore.rowsCheck)
const dataMap = props.data.directors.map((item: any) => ({
id: item.id,
name: `${item.prefix}${item.firstName} ${item.lastName}`,
@ -523,21 +528,21 @@ function closePopup() {
function emitPerson(data: FormData[]) {
const dataMapId = data.map((item: FormData) => item.id);
console.log(dataMapId);
// showLoader();
// http
// .put(config.API.investigateApprove(id.value), {
// persons: dataMapId,
// })
// .then((res) => {
// // router.push(`/discipline/investigatefacts`);
// })
// .catch((e) => {
// messageError($q, e);
// })
// .finally(() => {
// hideLoader();
// getData();
// });
showLoader();
http
.post(config.API.investigateReport(), {
Id: dataMapId,
})
.then((res) => {
// router.push(`/discipline/investigatefacts`);
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
hideLoader();
getOc();
});
}
onMounted(async () => {
@ -1504,7 +1509,7 @@ onMounted(async () => {
:modal="modalPopup"
:close="closePopup"
title="ส่งรายชื่อไปออกคำสั่งยุติเรื่อง"
:rows="mainStore.rowsAdd"
:rows="mainStore.rowsCheck"
:columns="mainStore.columnsDirector"
:visibleColumns="mainStore.visibleColumnsDirector"
@return-person="emitPerson"

View file

@ -302,7 +302,7 @@ async function fetchDatadetail() {
formData.disciplinaryExtendHistory = props.data.disciplinaryExtendHistory;
mainStore.rowsAdd = props.data.persons;
mainStore.rowsCheck = mainStore.rowsAdd.filter((item:any)=> item.isSend === false )
/** MAP รายชื่อกรรมการ หน้าหลัก */
const dataMap = props.data.director.map((item: any) => ({
id: item.directorId,
@ -500,22 +500,21 @@ function closePopup() {
function emitPerson(data: PersonsArray[]) {
const dataMapId = data.map((item: PersonsArray) => item.id);
console.log(dataMapId);
// showLoader();
// http
// .put(config.API.investigateApprove(id.value), {
// persons: dataMapId,
// })
// .then((res) => {
// // router.push(`/discipline/investigatefacts`);
// })
// .catch((e) => {
// messageError($q, e);
// })
// .finally(() => {
// hideLoader();
// getData();
// });
showLoader();
http
.post(config.API.disciplinaryReport(), {
Id: dataMapId,
})
.then((res) => {
// router.push(`/discipline/investigatefacts`);
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
hideLoader();
fetchOrganization();
});
}
/** Hook */
@ -1664,7 +1663,7 @@ onMounted(async () => {
:modal="modalPopup"
:close="closePopup"
title="ส่งรายชื่อไปออกคำสั่งยุติเรื่อง"
:rows="mainStore.rowsAdd"
:rows="mainStore.rowsCheck"
:columns="mainStore.columnsDirector"
:visibleColumns="mainStore.visibleColumnsDirector"
@return-person="emitPerson"

View file

@ -168,6 +168,10 @@ watch(
() => props.data,
async () => {
respondentType.value = props.data.respondentType;
formData.oc = props.data.resultOc;
formData.disciplineType = props.data.resultDisciplineType;
formData.titleType = props.data.resultTitleType;
formData.year = props.data.resultYear;
mainStore.rowsAdd = props.data.persons;
await fetchDatadetail();
await fetchOrganization();
@ -451,6 +455,7 @@ onMounted(async () => {});
<q-input
v-model="formData.disciplineType"
dense
:class="inputEdit(isReadonly)"
outlined
label="ประเภทวินัย"
/>
@ -460,6 +465,7 @@ onMounted(async () => {});
v-model="formData.titleType"
dense
outlined
:class="inputEdit(isReadonly)"
label="ประเภทของเรื่อง"
/>
</div>
@ -468,6 +474,7 @@ onMounted(async () => {});
v-model="formData.oc"
dense
outlined
:class="inputEdit(isReadonly)"
label="หน่วยงาน/ส่วนราชการ"
/>
</div>
@ -489,6 +496,7 @@ onMounted(async () => {});
<q-input
dense
lazy-rules
:class="inputEdit(isReadonly)"
outlined
:model-value="
formData.year === 0

View file

@ -28,6 +28,7 @@ interface ArrayPerson {
interface ArrayPersonAdd {
personId: string; //id อ้างอิง profile
idcard: string; //รหัสบัตรประชาชน
isSend: string; //รหัสบัตรประชาชน
prefix: string; //คำนำหน้า
firstName: string; //ชื่อ
lastName: string; //นามสกุล

View file

@ -274,6 +274,7 @@ export const useDisciplineMainStore = defineStore("disciplineMainStore", () => {
]);
const rowsAdd = ref<ArrayPersonAdd[]>([]);
const rowsCheck = ref<ArrayPersonAdd[]>([]);
function fetchData(data: ArrayPersonAdd[]) {
rowsAdd.value = data;
}
@ -295,7 +296,7 @@ export const useDisciplineMainStore = defineStore("disciplineMainStore", () => {
fetchData,
statusResultOptions,
convertStatusResult,
rowsCheck,
causeTextOptions
};
});

View file

@ -1,12 +1,12 @@
<script setup lang="ts">
import Form from "@/modules/11_discipline/components/6_BasicInformation/Director/Form.vue";
import Form from "@/modules/12_evaluatePersonal/components/Director/Form.vue";
import { useCounterMixin } from "@/stores/mixin";
import { useRoute, useRouter } from "vue-router";
import http from "@/plugins/http";
import config from "@/app.config";
import { useQuasar } from "quasar";
import type { FormDataPost } from "@/modules/11_discipline/interface/request/director";
// import type { FormDataPost } from "@/modules/11_discipline/interface/request/director";
import type { DataForm } from "@/modules/12_evaluatePersonal/interface/index/director";
const $q = useQuasar();
const mixin = useCounterMixin();
const { messageError, showLoader, hideLoader, dialogConfirm, success } = mixin;
@ -16,21 +16,22 @@ const router = useRouter();
* นทกขอมลทเเกไข
* @param id ระบ คคล
*/
function onSubmit(formData:FormDataPost) {
function onSubmit(formData:DataForm) {
dialogConfirm($q, () => addData(formData));
}
function addData(formData: FormDataPost) {
function addData(formData: DataForm) {
console.log(formData)
showLoader();
http
.post(config.API.director(), {
personalId:formData.personalId ?? '',
prefix: formData.prefix,
firstName: formData.firstname,
lastName: formData.lastname,
position: formData.position,
email: formData.email,
phone: formData.phone,
.post(config.API.evaluateDirectorMain(), {
// personalId:formData.personalId ?? '',
Prefix: formData.prefix,
FirstName: formData.firstname,
LastName: formData.lastname,
Position: formData.position,
Email: formData.email,
Phone: formData.phone,
})
.then((res) => {
success($q, "บันทึกข้อมูลสำเร็จ");
@ -39,7 +40,7 @@ function addData(formData: FormDataPost) {
messageError($q, e);
})
.finally(async () => {
router.push(`/discipline/director`);
router.push(`/evaluate/director`);
});
}
</script>

View file

@ -1,6 +1,6 @@
<script setup lang="ts">
import { ref, onMounted, reactive } from "vue";
import Form from "@/modules/11_discipline/components/6_BasicInformation/Director/Form.vue";
import Form from "@/modules/12_evaluatePersonal/components/Director/Form.vue";
import type { FormData } from "@/modules/11_discipline/interface/request/director";
import { useCounterMixin } from "@/stores/mixin";
import { useQuasar } from "quasar";
@ -41,16 +41,17 @@ const data = reactive<FormData>({
const fetchData = async () => {
showLoader();
await http
.get(config.API.directorbyId(personalId.value))
// .get(config.API.evaluateDirectorById(personalId.value))
.get(config.API.evaluateDirectorById('0a185476-c764-42d7-a6f9-2c3824a401ed'))
.then((res) => {
const dataApi = res.data.result;
personalId.value = dataApi.id;
data.prefix = dataApi.prefix;
data.firstname = dataApi.firstName;
data.lastname = dataApi.lastName;
data.position = dataApi.position;
data.phone = dataApi.phone;
data.email = dataApi.email;
personalId.value = dataApi.Id;
data.prefix = dataApi.Prefix;
data.firstname = dataApi.FirstName;
data.lastname = dataApi.LastName;
data.position = dataApi.Position;
data.phone = dataApi.Phone;
data.email = dataApi.Email;
})
.catch((e) => {
messageError($q, e);
@ -71,13 +72,14 @@ function onSubmit(formData: FormData) {
function putData(formData: FormData) {
showLoader();
http
.put(config.API.directorbyId(personalId.value), {
prefix: formData.prefix,
firstName: formData.firstname,
lastName: formData.lastname,
position: formData.position,
email: formData.email,
phone: formData.phone,
// .put(config.API.evaluateDirectorById(personalId.value), {
.put(config.API.evaluateDirectorById('0a185476-c764-42d7-a6f9-2c3824a401ed'), {
Prefix: formData.prefix,
FirstName: formData.firstname,
LastName: formData.lastname,
Position: formData.position,
Email: formData.email,
Phone: formData.phone,
})
.then((res) => {
success($q, "บันทึกข้อมูลสำเร็จ");
@ -86,7 +88,7 @@ function putData(formData: FormData) {
messageError($q, e);
})
.finally(async () => {
router.push(`/discipline/director`);
router.push(`/evaluate/director`);
});
}
</script>

View file

@ -83,9 +83,11 @@ function addEmployee() {
keyword: idCard.value,
})
.then((res) => {
console.log(res)
const dataApi = res.data.result;
if (dataApi.length > 0) {
const dataList = dataApi[0];
formData.personalId = dataList.personId;
formData.prefix = dataList.prefix;
formData.firstname = dataList.firstName;
formData.lastname = dataList.lastName;

View file

@ -4,12 +4,12 @@ import type { QTableProps } from "quasar";
import router from "@/router";
import { useCounterMixin } from "@/stores/mixin";
import { useQuasar } from "quasar";
import { useDisciplineDirectorDataStore } from "@/modules/11_discipline/store/DirectorStore";
import { useEvaluateDirectorDataStore } from "@/modules/12_evaluatePersonal/store/DirectorStore";
import http from "@/plugins/http";
import config from "@/app.config";
const $q = useQuasar();
const dataStore = useDisciplineDirectorDataStore();
const dataStore = useEvaluateDirectorDataStore();
const mixin = useCounterMixin();
const {
messageError,
@ -34,37 +34,126 @@ const pagination = ref({
rowsPerPage: rowsPerPage.value,
});
watch(() => currentPage.value,() => {
rowsPerPage.value = pagination.value.rowsPerPage;
getList();
});
watch(
() => currentPage.value,
() => {
rowsPerPage.value = pagination.value.rowsPerPage;
getList();
}
);
watch(()=>pagination.value.rowsPerPage,()=>{
rowsPerPage.value = pagination.value.rowsPerPage;
currentPage.value = 1
getList();
})
async function getList() {
showLoader();
await http
.get(
config.API.directorList(
currentPage.value,
rowsPerPage.value,
filterKeyword.value
)
)
.then((res) => {
maxPage.value = Math.ceil(res.data.result.total / rowsPerPage.value);
const data = res.data.result.data
dataStore.fetchData(data);
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
hideLoader();
});
watch(
() => pagination.value.rowsPerPage,
() => {
rowsPerPage.value = pagination.value.rowsPerPage;
currentPage.value = 1;
getList();
}
);
function getList() {
// showLoader();
// http
// .get(
// config.API.evaluateDirectorMain(
// currentPage.value,
// rowsPerPage.value,
// filterKeyword.value
// )
// )
// .then((res) => {
// maxPage.value = Math.ceil(res.data.result.total / rowsPerPage.value);
// const data = res.data.result.data
// dataStore.fetchData(data);
// })
// .catch((e) => {
// messageError($q, e);
// })
// .finally(() => {
// hideLoader();
// });
// {
// "Id": "0a185476-c764-42d7-a6f9-2c3824a401ed",
// "CreatedAt": "2023-12-19T02:40:59.898Z",
// "CreatedUserId": "59134ef9-9e62-41d0-aac5-339be727f2b0",
// "LastUpdatedAt": "2023-12-19T02:40:59.898Z",
// "LastUpdateUserId": "59134ef9-9e62-41d0-aac5-339be727f2b0",
// "CreatedFullName": " ",
// "LastUpdateFullName": " ",
// "Prefix": "",
// "FirstName": "",
// "LastName": "",
// "Phone": "0999998767",
// "Email": "email@gmail.com",
// "Position": "frontEnd"
// }
const data = [
{
Id: "xx1",
CreatedAt: "2023-12-19T02:40:59.898Z",
CreatedUserId: "cc1",
LastUpdatedAt: "2023-12-19T02:40:59.898Z",
LastUpdateUserId: "ll1",
CreatedFullName: "สาวิตรี ศรีสมัย",
LastUpdateFullName: "สาวิตรี ศรีสมัย",
Prefix: "นาย",
FirstName: "เทสดี",
LastName: "ลองแอด",
Phone: "0999998767",
Email: "email@gmail.com",
Position: "frontEnd",
},
{
Id: "xx2",
CreatedAt: "2023-12-19T02:40:59.898Z",
CreatedUserId: "cc2",
LastUpdatedAt: "2023-12-19T02:40:59.898Z",
LastUpdateUserId: "ll2",
CreatedFullName: "สาวิตรี ศรีสมัย",
LastUpdateFullName: "สาวิตรี ศรีสมัย",
Prefix: "นาย",
FirstName: "เทสดี",
LastName: "ลองแอด",
Phone: "0999998767",
Email: "email@gmail.com",
Position: "frontEnd",
},
{
Id: "xx3",
CreatedAt: "2023-12-19T02:40:59.898Z",
CreatedUserId: "cc3",
LastUpdatedAt: "2023-12-19T02:40:59.898Z",
LastUpdateUserId: "ll3",
CreatedFullName: "สาวิตรี ศรีสมัย",
LastUpdateFullName: "สาวิตรี ศรีสมัย",
Prefix: "นาย",
FirstName: "เทสดี",
LastName: "ลองแอด",
Phone: "0999998767",
Email: "email@gmail.com",
Position: "frontEnd",
},
{
Id: "xx4",
CreatedAt: "2023-12-19T02:40:59.898Z",
CreatedUserId: "cc5",
LastUpdatedAt: "2023-12-19T02:40:59.898Z",
LastUpdateUserId: "ll5",
CreatedFullName: "สาวิตรี ศรีสมัย",
LastUpdateFullName: "สาวิตรี ศรีสมัย",
Prefix: "นาย",
FirstName: "เทสดี",
LastName: "ลองแอด",
Phone: "0999998767",
Email: "email@gmail.com",
Position: "frontEnd",
},
];
dataStore.fetchData(data);
}
/**
@ -82,7 +171,7 @@ function clickDelete(id: string) {
async function deleteData(id: string) {
showLoader();
await http
.delete(config.API.directorbyId(id))
.delete(config.API.evaluateDirectorById(id))
.then((res) => {
success($q, "ลบข้อมูลสำเร็จ");
})
@ -94,19 +183,12 @@ async function deleteData(id: string) {
});
}
/**
* งขอมลจำลองไปย store
*/
onMounted(() => {
getList();
// get store
});
/**
* นหาในตาราง
*/
const filterKeyword = ref<string>("");
const filterRef = ref<HTMLInputElement | null>(null);
function resetFilter() {
filterKeyword.value = "";
if (filterRef.value) {
@ -114,10 +196,14 @@ function resetFilter() {
}
}
function filterFn(){
getList()
console.log('enter',filterKeyword.value)
function filterFn() {
getList();
console.log("enter", filterKeyword.value);
}
onMounted(() => {
getList();
});
</script>
<template>
<div class="toptitle text-dark col-12 row items-center">

View file

@ -161,7 +161,6 @@ watch([() => currentPage.value, () => pagination.value.rowsPerPage], () => {
<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 />
</q-tr>
</template>
<template #body="props">

View file

@ -0,0 +1,78 @@
interface DataResponseList {
Id:string
CreatedAt:string
CreatedUserId:string
LastUpdatedAt:string
LastUpdateUserId:string
CreatedFullName:string
LastUpdateFullName:string
Prefix:string
FirstName:string
LastName:string
Phone:string
Email:string
Position:string
totalInvestigate?:number
totalDisciplinary?:number
}
interface MainList {
id:string
name:string
createdFullName:string
lastUpdateFullName:string
prefix:string
firstName:string
lastName:string
phone:string
email:string
position:string
createdUserId:string
lastUpdateUserId:string
createdAt:string
lastUpdatedAt:string
totalInvestigate:string|number
totalDisciplinary:string|number
}
interface FormData {
rounded: string
dateMeeting: string
consider: string
period: string
file: FileOj[]
}
interface FileOj{
id:string
pathName:string
fileName:string
}
interface FormRef {
rounded: object | null;
dateMeeting: object | null;
consider: object | null;
period: object | null;
[key: string]: any;
}
interface DataForm {
personalId:string
prefix: string;
firstname: string;
lastname: string;
position: string;
phone: string;
email: string;
}
export type {
DataResponseList,
MainList,
FormData,
FormRef,
FileOj,
DataForm
}

View file

@ -21,7 +21,7 @@ export default [
},
},
{
path: "/evaluate/detail",
path: "/evaluate/detail/:id",
name: "evaluateDetail",
component: detailPage,
meta: {

View file

@ -0,0 +1,123 @@
import { defineStore } from "pinia";
import { ref } from "vue";
import { useCounterMixin } from "@/stores/mixin";
import type { DataResponseList, MainList } from "@/modules/12_evaluatePersonal/interface/index/director";
import type { QTableProps } from "quasar";
// store ระบบวินัย >> ข้อมูลพื้นฐาน >> กรรมการ
export const useEvaluateDirectorDataStore = defineStore(
"evaluateDirector",
() => {
const mixin = useCounterMixin()
const { date2Thai } = mixin
//ค้นหา คอลัมน์ คอลัมน์ที่แสดง
const visibleColumns = ref<string[]>([
"no",
"name",
"position",
"email",
"phone",
"totalInvestigate",
"totalDisciplinary",
]);
// หัวตาราง
const columns = ref<QTableProps["columns"]>([
{
name: "no",
align: "left",
label: "ลำดับ",
sortable: false,
field: "no",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "name",
align: "left",
label: "ชื่อ-นามสกุล",
sortable: true,
field: "name",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "position",
align: "left",
label: "ตำแหน่ง",
sortable: true,
field: "position",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "email",
align: "left",
label: "อีเมล",
sortable: true,
field: "email",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "phone",
align: "left",
label: "เบอร์โทรศัพท์",
sortable: true,
field: "phone",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "totalInvestigate",
align: "left",
label: "จำนวนการสืบสวน",
sortable: true,
field: "totalInvestigate",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "totalDisciplinary",
align: "left",
label: "จำนวนการสอบสวน",
sortable: true,
field: "totalDisciplinary",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
]);
// ข้อมูลในตาราง
const rows = ref<MainList[]>([]);
function fetchData(data: DataResponseList[]) {
const dataList: MainList[] = data.map((item: DataResponseList) => ({
id:item.Id,
name:`${item.Prefix}${item.FirstName} ${item.LastName}`,
prefix:item.Prefix,
firstName:item.FirstName,
lastName:item.LastName,
phone:item.Phone,
email:item.Email,
position:item.Position,
totalInvestigate:item.totalInvestigate ? item.totalInvestigate :'-',
totalDisciplinary:item.totalDisciplinary ? item.totalDisciplinary :'-',
createdFullName:item.CreatedFullName,
lastUpdateFullName:item.LastUpdateFullName,
createdUserId:item.CreatedUserId,
lastUpdateUserId:item.LastUpdateUserId,
createdAt:item.CreatedAt,
lastUpdatedAt:item.LastUpdatedAt,
}))
rows.value = dataList
}
return {
visibleColumns,
columns,
rows,
fetchData
};
}
);

View file

@ -54,6 +54,7 @@ export const useEvalutuonStore = defineStore("EvalutuonStore", () => {
const rows = ref<any[]>([]);
function fetchData(data: any[]) {
const dataList: any[] = data.map((data: any) => ({
id: data.id,
citizanId: data.citizanId,
fullName: data.fullName,
position: data.position,

View file

@ -20,8 +20,8 @@ const { showLoader, hideLoader, messageError } = mixin;
const initialPagination = ref<Pagination>({
rowsPerPage: 0,
});
function Detailpage() {
router.push("/evaluate/detail");
function Detailpage(id:string) {
router.push(`/evaluate/detail/${id}`);
}
const page = ref<number>(1);
@ -35,6 +35,7 @@ const filter = ref<string>("");
onMounted(async () => {
store.fetchData([
{
id:'xxx1',
citizanId: "1230030004001",
fullName: "นางวัศยา ศรีสร้อย",
position: "ผู้อำนวยการสถาบัน",
@ -44,6 +45,7 @@ onMounted(async () => {
status: "WAIT_CHECK_DOC_V1",
},
{
id:'xxx2',
citizanId: "122222000401",
fullName: "นายสิริศักดิ์ พรมบุตร",
position: "นักบริหาร",
@ -53,6 +55,7 @@ onMounted(async () => {
status: "WAIT_CHECK_DOC_V2",
},
{
id:'xxx3',
citizanId: "111111100401",
fullName: "นายเอกฉัท วีระโชติ ",
position: "นักบริหาร",
@ -62,6 +65,7 @@ onMounted(async () => {
status: "DONE",
},
{
id:'xxx4',
citizanId: "122203000401",
fullName: "นางธนิดา มั่นคงประสิทธิ์",
position: "ผู้อำนวยการกอง",
@ -71,6 +75,7 @@ onMounted(async () => {
status: "WAIT_CHECK_DOC_V1",
},
{
id:'xxx5',
citizanId: "123003111401",
fullName: "นางณิชมน ลือขำ ",
position: "ผู้อำนวยการสถาบัน",
@ -80,6 +85,7 @@ onMounted(async () => {
status: "WAIT_CHECK_DOC_V2",
},
{
id:'xxx6',
citizanId: "111111100401",
fullName: "นายเอกฉัท วีระโชติ ",
position: "นักบริหาร",
@ -89,6 +95,7 @@ onMounted(async () => {
status: "ANNOUNCE_WEB",
},
{
id:'xxx7',
citizanId: "111111100401",
fullName: "นายเอกฉัท วีระโชติ ",
position: "นักบริหาร",
@ -98,6 +105,7 @@ onMounted(async () => {
status: "PREPARE_DOC_V2",
},
{
id:'xxx8',
citizanId: "111111100401",
fullName: "นายเอกฉัท วีระโชติ ",
position: "นักบริหาร",
@ -133,7 +141,7 @@ onMounted(async () => {
>
<template #columns="props">
<q-tr :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.name" :props="props">
<q-td v-for="col in props.cols" :key="col.name" :props="props" @click="Detailpage(props.row.id)">
<div v-if="col.name == 'no'">
{{ props.rowIndex + 1 }}
</div>
@ -141,79 +149,6 @@ onMounted(async () => {
{{ col.value }}
</div>
</q-td>
<q-td auto-width>
<q-btn
icon="mdi-dots-vertical"
size="12px"
color="grey-7"
flat
round
dense
>
<q-menu transition-show="jump-down" transition-hide="jump-up">
{{ props.rows && props.rows.status }}
<q-list dense style="min-width: 100px">
<q-item
clickable
v-close-popup
@click="Detailpage()"
v-if="props.row.status === 'รอตรวจสอบคุณสมบัติ'"
>
<q-item-section
style="min-width: 0px"
avatar
class="q-py-sm"
>
<q-icon
color="primary"
size="xs"
name="mdi-eye"
/>
</q-item-section>
<q-item-section>รายละเอยดคำขอ</q-item-section>
</q-item>
<q-separator />
<q-item clickable v-close-popup>
<q-item-section
style="min-width: 0px"
avatar
class="q-py-sm"
>
<q-icon
color="blue"
size="xs"
name="mdi-account-details-outline"
/>
</q-item-section>
<q-item-section>ประวการเปลยนสถานะ</q-item-section>
</q-item>
<q-separator />
<q-item
clickable
v-close-popup
@click="Detailpage()"
v-if="props.row.status === 'รอพิจารณาผลการประเมิน'"
>
<q-item-section
style="min-width: 0px"
avatar
class="q-py-sm"
>
<q-icon
color="primary"
size="xs"
name="mdi-account-outline"
/>
</q-item-section>
<q-item-section>จารณาผลการประเม </q-item-section>
</q-item>
</q-list>
</q-menu>
</q-btn>
</q-td>
</q-tr>
</template>
</Table>