ปรับเเก้
This commit is contained in:
parent
d2c6837a86
commit
46f82b78fc
18 changed files with 446 additions and 190 deletions
|
|
@ -49,6 +49,7 @@ export default {
|
|||
investigateResume: (id: string) => `${investigate}/resume/${id}`,
|
||||
investigateApprove: (id: string) => `${investigate}/approve/${id}`,
|
||||
investigateCalendar: () => `${investigate}/calendar`,
|
||||
investigateReport: () => `${investigate}/report`,
|
||||
|
||||
/** ระบบวินัยเรื่องสอบสวน */
|
||||
disciplineDisciplinary: () => `${discipline}`,
|
||||
|
|
@ -65,7 +66,7 @@ export default {
|
|||
disciplinaryApprove: (id: string) => `${discipline}/approve/${id}`,
|
||||
disciplinarySuspend: (id: string) => `${discipline}/suspend/${id}`,
|
||||
disciplinaryCalendar: () => `${discipline}/calendar`,
|
||||
|
||||
disciplinaryReport: () => `${discipline}/report`,
|
||||
/** รายการสรุปผลการพิจารณาทางวินัย*/
|
||||
listResult: () => `${disciplineMain}/result`,
|
||||
listResultById: (id: string) => `${disciplineMain}/result/${id}`,
|
||||
|
|
|
|||
8
src/api/12_evaluatePersonal/api.evaluate.ts
Normal file
8
src/api/12_evaluatePersonal/api.evaluate.ts
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
import env from "../index";
|
||||
const evaluateDirectorMain = `${env.API_URI}/evaluate/director`;
|
||||
|
||||
|
||||
export default {
|
||||
evaluateDirectorMain: () => `${evaluateDirectorMain}`,
|
||||
evaluateDirectorById: (id:string) => `${evaluateDirectorMain}/${id}`,
|
||||
};
|
||||
|
|
@ -48,6 +48,9 @@ import leave from "./api/09_leave/api.leave";
|
|||
|
||||
/** API วินัย */
|
||||
import discipline from './api/11_discipline/api.discipline'
|
||||
|
||||
/**API ประเมิน */
|
||||
import evaluate from './api/12_evaluatePersonal/api.evaluate'
|
||||
// environment variables
|
||||
export const compettitivePanel = import.meta.env.VITE_COMPETITIVE_EXAM_PANEL;
|
||||
export const qualifyDisableExamPanel = import.meta.env
|
||||
|
|
@ -97,6 +100,9 @@ const API = {
|
|||
|
||||
/**discipline */
|
||||
...discipline,
|
||||
|
||||
/**evaluate*/
|
||||
...evaluate
|
||||
};
|
||||
|
||||
export default {
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ interface ArrayPerson {
|
|||
interface ArrayPersonAdd {
|
||||
personId: string; //id อ้างอิง profile
|
||||
idcard: string; //รหัสบัตรประชาชน
|
||||
isSend: string; //รหัสบัตรประชาชน
|
||||
prefix: string; //คำนำหน้า
|
||||
firstName: string; //ชื่อ
|
||||
lastName: string; //นามสกุล
|
||||
|
|
|
|||
|
|
@ -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
|
||||
};
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
78
src/modules/12_evaluatePersonal/interface/index/director.ts
Normal file
78
src/modules/12_evaluatePersonal/interface/index/director.ts
Normal 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
|
||||
}
|
||||
|
|
@ -21,7 +21,7 @@ export default [
|
|||
},
|
||||
},
|
||||
{
|
||||
path: "/evaluate/detail",
|
||||
path: "/evaluate/detail/:id",
|
||||
name: "evaluateDetail",
|
||||
component: detailPage,
|
||||
meta: {
|
||||
|
|
|
|||
123
src/modules/12_evaluatePersonal/store/DirectorStore.ts
Normal file
123
src/modules/12_evaluatePersonal/store/DirectorStore.ts
Normal 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
|
||||
};
|
||||
}
|
||||
);
|
||||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue