diff --git a/src/api/12_evaluatePersonal/api.evaluate.ts b/src/api/12_evaluatePersonal/api.evaluate.ts index 0070bfeaf..bea7b6a23 100644 --- a/src/api/12_evaluatePersonal/api.evaluate.ts +++ b/src/api/12_evaluatePersonal/api.evaluate.ts @@ -4,8 +4,10 @@ const evaluation = `${env.API_URI}/evaluation`; export default { evaluateDirectorMain: () => `${evaluateDirectorMain}`, - evaluateDirectorById: (id:string) => `${evaluateDirectorMain}/${id}`, + evaluateDirectorById: (id: string) => `${evaluateDirectorMain}/${id}`, + evaluationMain: (page: number, pageSize: number, keyword: string) => + `${evaluation}?page=${page}&pageSize=${pageSize}&keyword=${keyword}`, meeting: () => `${evaluation}/meeting`, meetingById: (id: string) => `${evaluation}/meeting/${id}`, }; diff --git a/src/components/PopupCheckFeatures.vue b/src/components/PopupCheckFeatures.vue new file mode 100644 index 000000000..e69de29bb diff --git a/src/modules/10_order/components/step/step01.vue b/src/modules/10_order/components/step/step01.vue index b72df7f8b..6e1539111 100644 --- a/src/modules/10_order/components/step/step01.vue +++ b/src/modules/10_order/components/step/step01.vue @@ -31,6 +31,7 @@ const route = useRoute(); const router = useRouter(); const orderId = route.params.orderid; +const orderId_paramsName = route.name; const props = defineProps({ next: { @@ -115,6 +116,12 @@ const conclusionFireResolution = ref(""); const conclusionTranferNo = ref(""); const conclusionTranferDate = ref(new Date()); +// C-PM-25-32 +const faultLevel = ref(""); +const caseFault = ref(""); +const result = ref(""); +const refRaw = ref(""); + const typeOrderFilter = ref({ typeOrderOption: [], }); @@ -143,20 +150,44 @@ watch(nameCommand, async () => { positionCommand.value = nameCommand.value.positionName; } }); + +const commandCodes = ref([ + "C-PM-19", + "C-PM-20", + "C-PM-25", + "C-PM-26", + "C-PM-27", + "C-PM-28", + "C-PM-29", + "C-PM-30", + "C-PM-31", + "C-PM-32", +]); // เรียกคำสั่ง const fecthTypeOption = async (actions: string) => { showLoader(); await http .get(config.API.typeOrder()) .then((res) => { - typeOrderOption.value = res.data.result.map((e: OrederResult) => ({ + const response = res.data.result; + const filterRes = response.filter((e: any) => + commandCodes.value.includes(e.commandCode) + ); + + const data = + orderId_paramsName === "OrderDetail" || + orderId_paramsName === "OrderAdd" + ? response + : filterRes; + + typeOrderOption.value = data.map((e: OrederResult) => ({ id: e.id, name: e.name, category: e.category, commandCode: e.commandCode, fullname: e.commandCode + " " + e.name, })); - typeOrderFilter.value = res.data.result.map((e: OrederResult) => ({ + typeOrderFilter.value = data.map((e: OrederResult) => ({ id: e.id, name: e.name, category: e.category, @@ -246,6 +277,12 @@ const fetchdetailOrder = async () => { conclusionTranferNo.value = data.conclusionTranferNo; conclusionTranferDate.value = data.conclusionTranferDate; + // 25-32 + faultLevel.value = data.faultLevel; + caseFault.value = data.caseFault; + result.value = data.result; + refRaw.value = data.refRaw; + fecthExamRoundOption(data.orderTypeCode); }) .catch((e) => { @@ -324,6 +361,11 @@ const selectCMP = (selectOrder: OrederResult) => { // 24 conclusionTranferNo.value = ""; conclusionTranferDate.value = new Date(); + // 25-32 + faultLevel.value = ""; + caseFault.value = ""; + result.value = ""; + refRaw.value = ""; }; // เรียกรอบการสอบ const fecthExamRoundOption = async (commandCode: string) => { @@ -456,6 +498,22 @@ const submit = async () => { conclusionTranferNo: conclusionTranferNo.value, conclusionTranferDate: conclusionTranferDate.value, }); + } else if ( + typeOrder.value.commandCode == "C-PM-25" || + typeOrder.value.commandCode == "C-PM-26" || + typeOrder.value.commandCode == "C-PM-27" || + typeOrder.value.commandCode == "C-PM-28" || + typeOrder.value.commandCode == "C-PM-29" || + typeOrder.value.commandCode == "C-PM-30" || + typeOrder.value.commandCode == "C-PM-31" || + typeOrder.value.commandCode == "C-PM-32" + ) { + Object.assign(formdata, { + faultLevel: faultLevel.value, + caseFault: caseFault.value, + result: result.value, + refRaw: refRaw.value, + }); } // เช็คค่าว่าง @@ -1894,6 +1952,71 @@ const getClass = (val: boolean) => { + + +
+
+ +
+
+ +
+
+ +
+
+ +
+
diff --git a/src/modules/11_discipline/components/9_Order/TableOrder.vue b/src/modules/11_discipline/components/9_Order/TableOrder.vue index 046e16740..da9c57edc 100644 --- a/src/modules/11_discipline/components/9_Order/TableOrder.vue +++ b/src/modules/11_discipline/components/9_Order/TableOrder.vue @@ -18,6 +18,17 @@ const props = defineProps({ /** ข้อมูลที่เเสดงใน คอลัม */ const columns = ref([ + { + name: "no", + align: "left", + label: "ลำดับ ", + sortable: true, + field: "no", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + sort: (a: string, b: string) => + a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), + }, { name: "orderName", align: "left", @@ -29,6 +40,7 @@ const columns = ref([ sort: (a: string, b: string) => a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), }, + { name: "orderNo", align: "left", @@ -38,6 +50,62 @@ const columns = ref([ headerStyle: "font-size: 14px", style: "font-size: 14px", }, + { + name: "faultLevel", + align: "left", + label: "ระดับความผิด", + sortable: true, + field: "faultLevel", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + sort: (a: string, b: string) => + a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), + }, + { + name: "caseFault", + align: "left", + label: "กรณีความผิด", + sortable: true, + field: "caseFault", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + sort: (a: string, b: string) => + a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), + }, + { + name: "fullName", + align: "left", + label: "รายชื่อผู้ที่ถูกลงโทษทางวินัย", + sortable: true, + field: "fullName", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + sort: (a: string, b: string) => + a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), + }, + { + name: "result", + align: "left", + label: "ผลดำเนินการพิจารณา", + sortable: true, + field: "result", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + sort: (a: string, b: string) => + a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), + }, + { + name: "refRaw", + align: "left", + label: "อ้างอิงมาตราตามกฎหมาย", + sortable: true, + field: "refRaw", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + sort: (a: string, b: string) => + a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), + }, + { name: "orderTypeName", align: "left", @@ -95,8 +163,14 @@ const columns = ref([ ]); /** หัวตาราง */ const visibleColumns = ref([ + "no", "orderName", "orderNo", + "faultLevel", + "caseFault", + "fullName", + "result", + "refRaw", "orderTypeName", "orderDate", "orderByOrganization", @@ -167,6 +241,9 @@ const redirectToPage = (id?: string, status?: string) => { :props="props" @click="redirectToPage(props.row.orderId, props.row.OrderStatus)" > +
+ {{ props.rowIndex + 1 }} +
{{ col.value }}
diff --git a/src/modules/11_discipline/interface/response/order.ts b/src/modules/11_discipline/interface/response/order.ts index 26b27a7c5..d3f754f80 100644 --- a/src/modules/11_discipline/interface/response/order.ts +++ b/src/modules/11_discipline/interface/response/order.ts @@ -13,6 +13,11 @@ interface DataList { orderTypeValue: string; signatoryBy: string; signatoryPosition: string; + faultLevel: string; + caseFault: string; + fullName: string; + result: string; + refRaw: string; } interface DataListRes { @@ -30,6 +35,11 @@ interface DataListRes { orderTypeValue: string; signatoryBy: string; signatoryPosition: string; + faultLevel: string; + caseFault: string; + fullName: string; + result: string; + refRaw: string; } export type { DataList, DataListRes }; diff --git a/src/modules/11_discipline/store/OrderStore.ts b/src/modules/11_discipline/store/OrderStore.ts index daef1bf0e..82c9f5272 100644 --- a/src/modules/11_discipline/store/OrderStore.ts +++ b/src/modules/11_discipline/store/OrderStore.ts @@ -34,6 +34,11 @@ export const useOrderStore = defineStore("DisciplineOrder", () => { orderTypeValue: e.orderTypeValue, signatoryBy: e.signatoryBy, signatoryPosition: e.signatoryPosition, + faultLevel: e.faultLevel ?? "-", + caseFault: e.caseFault ?? "-", + fullName: e.fullName ?? "-", + result: e.result ?? "-", + refRaw: e.refRaw ?? "-", })); mainData.value = datalist; filterListOrder("", "ทั้งหมด", 0); diff --git a/src/modules/12_evaluatePersonal/components/Meeting/AddPage.vue b/src/modules/12_evaluatePersonal/components/Meeting/AddPage.vue index ad771febe..f53b05e26 100644 --- a/src/modules/12_evaluatePersonal/components/Meeting/AddPage.vue +++ b/src/modules/12_evaluatePersonal/components/Meeting/AddPage.vue @@ -26,7 +26,8 @@ function addData(formData: any) { .post(config.API.meeting(), { Round: formData.rounded ?? "", Tittle: formData.title, - Date: formData.dateMeetingStart, + DateEnd: formData.dateMeetingEnd, + DateStart: formData.dateMeetingStart, Result: formData.consider, Duration: formData.period, }) diff --git a/src/modules/12_evaluatePersonal/components/Meeting/EditPage.vue b/src/modules/12_evaluatePersonal/components/Meeting/EditPage.vue index 4c69d1e18..2175677a7 100644 --- a/src/modules/12_evaluatePersonal/components/Meeting/EditPage.vue +++ b/src/modules/12_evaluatePersonal/components/Meeting/EditPage.vue @@ -33,10 +33,10 @@ onMounted(() => { /** * get ข้อมูลเก่ากรณีแก้ไขข้อมูล */ -const data = reactive({ +const data = reactive({ rounded: "", dateMeeting: "", - dateMeetingStart: null, + dateMeetingStart: Date, dateMeetingEnd: new Date(), consider: "", period: "", @@ -58,8 +58,10 @@ const fetchData = async () => { data.rounded = dataApi.Round; data.consider = dataApi.Result; data.period = dataApi.Duration; - data.dateMeetingStart = dataApi.Date; + data.dateMeetingStart = dataApi.DateStart; + data.dateMeetingEnd = date2Thai(dataApi.DateEnd, false, true); data.file = dataApi.file; + console.log(data.dateMeetingStart); }) .catch((e) => { @@ -84,7 +86,8 @@ function putData(formData: FormData) { .put(config.API.meetingById(personalId.value), { Round: formData.rounded ?? "", Tittle: formData.title, - Date: formData.dateMeetingStart, + DateStart: formData.dateMeetingStart, + DateEnd: formData.dateMeetingEnd, Result: formData.consider, Duration: formData.period, }) diff --git a/src/modules/12_evaluatePersonal/components/Meeting/Form.vue b/src/modules/12_evaluatePersonal/components/Meeting/Form.vue index d65282a0f..0ce1c989d 100644 --- a/src/modules/12_evaluatePersonal/components/Meeting/Form.vue +++ b/src/modules/12_evaluatePersonal/components/Meeting/Form.vue @@ -42,7 +42,6 @@ const emit = defineEmits(["formDataReturn"]); */ // const idCard = ref(""); -const idCardRef = ref(null); const fileOj = reactive([]); @@ -65,63 +64,66 @@ const formData = reactive({ watch(props.data, async () => { // console.log("data==>", props.data) formData.rounded = props.data.rounded; - formData.dateMeeting = props.data.dateMeeting; + formData.dateMeetingStart = props.data.dateMeetingStart; + formData.dateMeetingEnd = props.data.dateMeetingEnd; formData.consider = props.data.consider; formData.period = props.data.period; formData.title = props.data.title; }); -/** - * เพิ่มบุคลากร - */ -function addEmployee() { - if (idCard.value.length === 13) { - console.log("idCard===>", idCard.value); - showLoader(); - http - .post(config.API.profileSearchPersonal(), { - fieldName: "idcard", - keyword: idCard.value, - }) - .then((res) => { - const dataApi = res.data.result; - if (dataApi.length > 0) { - const dataList = dataApi[0]; - formData.rounded = dataList.rounded; - formData.dateMeeting = dataList.dateMeeting; - formData.consider = dataList.consider; - formData.period = dataList.period; - } else { - dialogMessageNotify($q, "ไม่มีข้อมูลบุคคลากรที่ต้องการค้นหา"); - } - }) - .catch((e) => { - messageError($q, e); - }) - .finally(async () => { - hideLoader(); - }); - } - if (idCard.value.length !== 13) { - hideLoader(); - dialogMessageNotify($q, "กรุณากรอกเลขบัตรประชาชนให้ครบ 13 หลัก"); - } else { - console.log("nodata"); - } -} +// /** +// * เพิ่มบุคลากร +// */ +// function addEmployee() { +// if (idCard.value.length === 13) { +// console.log("idCard===>", idCard.value); +// showLoader(); +// http +// .post(config.API.profileSearchPersonal(), { +// fieldName: "idcard", +// keyword: idCard.value, +// }) +// .then((res) => { +// const dataApi = res.data.result; +// if (dataApi.length > 0) { +// const dataList = dataApi[0]; +// formData.rounded = dataList.rounded; +// formData.dateMeeting = dataList.dateMeeting; +// formData.consider = dataList.consider; +// formData.period = dataList.period; +// } else { +// dialogMessageNotify($q, "ไม่มีข้อมูลบุคคลากรที่ต้องการค้นหา"); +// } +// }) +// .catch((e) => { +// messageError($q, e); +// }) +// .finally(async () => { +// hideLoader(); +// }); +// } +// if (idCard.value.length !== 13) { +// hideLoader(); +// dialogMessageNotify($q, "กรุณากรอกเลขบัตรประชาชนให้ครบ 13 หลัก"); +// } else { +// console.log("nodata"); +// } +// } /** * ตรวจสอบข้อมูลก่อนส่งไปยัง api */ const roundedRef = ref(null); -const dateMeetingRef = ref(null); +const dateMeetingStartRef = ref(null); +const dateMeetingEndRef = ref(null); const considerRef = ref(null); const periodRef = ref(null); const titleRef = ref(null); const formRef: FormRef = { rounded: roundedRef, - dateMeeting: dateMeetingRef, + dateMeetingStartRef: dateMeetingStartRef, + dateMeetingEndRef: dateMeetingEndRef, consider: considerRef, period: periodRef, title: titleRef, @@ -228,17 +230,6 @@ function inputEdit(val: boolean) { />
- { } } + function convertType(val: string) { + if (val === "EXPERT") { + return "ชำนาญการ"; + } else { + return "ชำนาญการพิเศษ"; + } + } + // ตรวจสอบคุณสมบัติด้วยตนเอง -> CHECK_SPEC // จัดเตรียมเอกสารเล่ม 1-> PREPARE_DOC_V1 // ตรวจสอบความถูกต้องของเอกสารเล่ม 1 -> CHECK_DOC_V1 @@ -53,15 +61,16 @@ export const useEvalutuonStore = defineStore("EvalutuonStore", () => { ]); const rows = ref([]); function fetchData(data: any[]) { + console.log(data); const dataList: any[] = data.map((data: any) => ({ id: data.id, - citizanId: data.citizanId, - fullName: data.fullName, - position: data.position, - level: data.level, - positionNumber: data.positionNumber, - agency: data.agency, - status: convertStatus(data.status), + citizanId: data.CitizenId, + fullName: data.FullName, + position: data.Position, + level: convertType(data.Type), + positionNumber: data.PosNo, + agency: data.Oc, + status: convertStatus(data.Step), })); rows.value = dataList; console.log(dataList); @@ -142,7 +151,7 @@ export const useEvalutuonStore = defineStore("EvalutuonStore", () => { { name: "status", align: "left", - label: "สถานะ(ตรวจสอบคุณสมบัติ)", + label: "สถานะ", sortable: true, field: "status", headerStyle: "font-size: 14px", diff --git a/src/modules/12_evaluatePersonal/store/MeetingStore.ts b/src/modules/12_evaluatePersonal/store/MeetingStore.ts index 340836bc3..fda29825c 100644 --- a/src/modules/12_evaluatePersonal/store/MeetingStore.ts +++ b/src/modules/12_evaluatePersonal/store/MeetingStore.ts @@ -1,88 +1,90 @@ import { defineStore } from "pinia"; import { ref } from "vue"; import { useCounterMixin } from "@/stores/mixin"; -import type { DataResponseList, MainList } from "@/modules/12_evaluatePersonal/interface/index/meeting"; +import type { + DataResponseList, + MainList, +} from "@/modules/12_evaluatePersonal/interface/index/meeting"; import type { QTableProps } from "quasar"; // store ระบบวินัย >> ข้อมูลพื้นฐาน >> กรรมการ export const useEvaluateMeetingDataStore = defineStore( - "evaluateMeeting", - () => { - const mixin = useCounterMixin() - const { date2Thai } = mixin - //ค้นหา คอลัมน์ คอลัมน์ที่แสดง - const visibleColumns = ref([ - "no", - "round", - "title", - "date", - ]); + "evaluateMeeting", + () => { + const mixin = useCounterMixin(); + const { date2Thai } = mixin; + //ค้นหา คอลัมน์ คอลัมน์ที่แสดง + const visibleColumns = ref(["no", "round", "title", "date"]); - // หัวตาราง - const columns = ref([ - { - name: "no", - align: "left", - label: "ลำดับ", - sortable: false, - field: "no", - headerStyle: "font-size: 14px", - style: "font-size: 14px", - }, - { - name: "round", - align: "left", - label: "ครั้งที่", - sortable: true, - field: "round", - headerStyle: "font-size: 14px", - style: "font-size: 14px", - }, - { - name: "title", - align: "left", - label: "เรื่อง", - sortable: true, - field: "title", - headerStyle: "font-size: 14px", - style: "font-size: 14px", - }, - { - name: "date", - align: "left", - label: "วันเวลาในการประชุม", - sortable: true, - field: "date", - headerStyle: "font-size: 14px", - style: "font-size: 14px", - }, - ]); + // หัวตาราง + const columns = ref([ + { + name: "no", + align: "left", + label: "ลำดับ", + sortable: false, + field: "no", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + }, + { + name: "round", + align: "left", + label: "ครั้งที่", + sortable: true, + field: "round", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + }, + { + name: "title", + align: "left", + label: "เรื่อง", + sortable: true, + field: "title", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + }, + { + name: "date", + align: "left", + label: "วันเวลาในการประชุม", + sortable: true, + field: "date", + headerStyle: "font-size: 14px", + style: "font-size: 14px", + }, + ]); - // ข้อมูลในตาราง - const rows = ref([]); - function fetchData(data: DataResponseList[]) { - const dataList: MainList[] = data.map((item: DataResponseList) => ({ - id:item.Id, - createdAt:item.CreatedAt, - createdUserId:item.CreatedUserId, - lastUpdatedAt:item.LastUpdatedAt, - lastUpdateUserId:item.LastUpdateUserId, - createdFullName:item.CreatedFullName, - lastUpdateFullName:item.LastUpdateFullName, - title:item.Tittle, - round:item.Round, - date:date2Thai(item.Date as Date), - result:item.Result, - duration:item.Duration, - })) - rows.value = dataList - } - - return { - visibleColumns, - columns, - rows, - fetchData - }; + // ข้อมูลในตาราง + const rows = ref([]); + function fetchData(data: any[]) { + const dataList: any[] = data.map((item: any) => ({ + id: item.Id, + createdAt: item.CreatedAt, + createdUserId: item.CreatedUserId, + lastUpdatedAt: item.LastUpdatedAt, + lastUpdateUserId: item.LastUpdateUserId, + createdFullName: item.CreatedFullName, + lastUpdateFullName: item.LastUpdateFullName, + title: item.Tittle, + round: item.Round, + date: `${date2Thai(item.DateStart as Date, false, true)} - ${date2Thai( + item.DateEnd as Date, + false, + true + )}`, + result: item.Result, + duration: item.Duration, + })); + rows.value = dataList; } + + return { + visibleColumns, + columns, + rows, + fetchData, + }; + } ); diff --git a/src/modules/12_evaluatePersonal/views/MainPage.vue b/src/modules/12_evaluatePersonal/views/MainPage.vue index 4bbc72339..51e8d9bac 100644 --- a/src/modules/12_evaluatePersonal/views/MainPage.vue +++ b/src/modules/12_evaluatePersonal/views/MainPage.vue @@ -1,5 +1,5 @@ @@ -124,24 +93,53 @@ onMounted(async () => {
- -