Merge branch 'develop-Bright' into develop

This commit is contained in:
Harid Promsri (Bright) 2023-06-08 14:44:21 +07:00
commit 7e6e8775fc

View file

@ -1,12 +1,14 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref, defineComponent, h } from "vue"; import { ref, defineComponent, h } from "vue";
import Table from "@/modules/05_placement/components/PlacementTableView.vue"; import Table from "@/modules/05_placement/components/PlacementTableView.vue";
import { useQuasar, QForm } from "quasar"; import { useQuasar, QForm, QCheckbox, QSlideItem } from "quasar";
import type { TableName } from "@/modules/05_placement/interface/request/placement"; import type { TableName } from "@/modules/05_placement/interface/request/placement";
import { usePlacementDataStore } from "@/modules/05_placement/store"; import { usePlacementDataStore } from "@/modules/05_placement/store";
import type { QTableProps } from "quasar"; import type { QTableProps } from "quasar";
import DialogHeader from "@/modules/05_placement/components/DialogHeader.vue"; import DialogHeader from "@/modules/05_placement/components/DialogHeader.vue";
import DialogFooter from "@/modules/05_placement/components/DialogFooter.vue"; import DialogFooter from "@/modules/05_placement/components/DialogFooter.vue";
import TestView from "@/views/TestView.vue";
import { aW } from "@fullcalendar/core/internal-common";
const editvisible = ref<boolean>(false); const editvisible = ref<boolean>(false);
const myForm = ref<QForm | null>(null); const myForm = ref<QForm | null>(null);
const edit = ref<boolean>(false); const edit = ref<boolean>(false);
@ -16,7 +18,6 @@ const filter = ref<string>("");
const { placementData } = store; const { placementData } = store;
const editRow = ref<boolean>(false); // const editRow = ref<boolean>(false); //
const modal = ref<boolean>(false); //modal add detail const modal = ref<boolean>(false); //modal add detail
const modal_right = ref<boolean>(false); //modal add detail
const modalEdit = ref<boolean>(false); //modal const modalEdit = ref<boolean>(false); //modal
const position = ref<number>(); const position = ref<number>();
const Name = ref<string>(); const Name = ref<string>();
@ -26,18 +27,9 @@ const ReportingDate = ref<string>();
const BMAOfficer = ref<boolean>(); const BMAOfficer = ref<boolean>();
const Status = ref<string>(); const Status = ref<string>();
const checkList = ref<string>(); const checkList = ref<string>();
const positionMasterUserNote = ref<string>();
const $q = useQuasar(); // show dialog const $q = useQuasar(); // show dialog
const files = ref<File[]>([]);
const clickEditRow = () => {
editRow.value = true;
};
const getClass = (val: boolean) => {
return {
"full-width inputgreen cursor-pointer": val,
"full-width cursor-pointer": !val,
};
};
const selectData = (props: TableName) => { const selectData = (props: TableName) => {
if (editvisible.value == true) { if (editvisible.value == true) {
editRow.value = false; editRow.value = false;
@ -52,7 +44,7 @@ const selectData = (props: TableName) => {
BMAOfficer.value = props.BMAOfficer; BMAOfficer.value = props.BMAOfficer;
Status.value = props.Status; Status.value = props.Status;
checkList.value = props.checkList; checkList.value = props.checkList;
} else { }else{
editRow.value = false; editRow.value = false;
modalEdit.value = true; modalEdit.value = true;
modal.value = true; modal.value = true;
@ -60,26 +52,6 @@ const selectData = (props: TableName) => {
} }
}; };
const getNumFile = ref(0);
const editDetail = (props: TableName, action: "cancel" | "wait") => {
if (action === "cancel") {
getNumFile.value = 0;
editRow.value = false;
modalEdit.value = false;
modal_right.value = true;
edit.value = true;
Name.value = props.Name;
} else if (action === "wait") {
getNumFile.value = 1;
editRow.value = false;
modalEdit.value = true;
modal_right.value = true;
edit.value = true;
Name.value = props.Name;
}
};
placementData.mappingPosition.columns.length == 0 placementData.mappingPosition.columns.length == 0
? (visibleColumns.value = [ ? (visibleColumns.value = [
"position", "position",
@ -101,6 +73,8 @@ const columns = ref<QTableProps["columns"]>([
field: "position", field: "position",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
}, },
{ {
name: "Name", name: "Name",
@ -121,6 +95,8 @@ const columns = ref<QTableProps["columns"]>([
field: "ExamOrder", field: "ExamOrder",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
}, },
{ {
name: "Unit", name: "Unit",
@ -152,6 +128,8 @@ const columns = ref<QTableProps["columns"]>([
field: "BMAOfficer", field: "BMAOfficer",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
}, },
{ {
name: "Status", name: "Status",
@ -174,7 +152,7 @@ const rows = ref<TableName[]>([
ReportingDate: "30 พ.ค. 2566", // ReportingDate: "30 พ.ค. 2566", //
BMAOfficer: true, BMAOfficer: true,
Status: "บรรจุเเล้ว", Status: "บรรจุเเล้ว",
checkList: null, checkList:null
}, },
{ {
position: 1, position: 1,
@ -184,7 +162,7 @@ const rows = ref<TableName[]>([
ReportingDate: "30 พ.ค. 2566", // ReportingDate: "30 พ.ค. 2566", //
BMAOfficer: true, BMAOfficer: true,
Status: "ยังไม่บรรจุ", Status: "ยังไม่บรรจุ",
checkList: null, checkList:null
}, },
{ {
position: 1, position: 1,
@ -194,7 +172,7 @@ const rows = ref<TableName[]>([
ReportingDate: "30 พ.ค. 2566", // ReportingDate: "30 พ.ค. 2566", //
BMAOfficer: true, BMAOfficer: true,
Status: "เตรียมบรรจุ", Status: "เตรียมบรรจุ",
checkList: null, checkList:null
}, },
{ {
@ -205,7 +183,7 @@ const rows = ref<TableName[]>([
ReportingDate: "30 พ.ค. 2566", // ReportingDate: "30 พ.ค. 2566", //
BMAOfficer: true, BMAOfficer: true,
Status: "เตรียมบรรจุ", Status: "เตรียมบรรจุ",
checkList: null, checkList:null
}, },
{ {
@ -216,7 +194,7 @@ const rows = ref<TableName[]>([
ReportingDate: "30 พ.ค. 2566", // ReportingDate: "30 พ.ค. 2566", //
BMAOfficer: true, BMAOfficer: true,
Status: "เตรียมบรรจุ", Status: "เตรียมบรรจุ",
checkList: null, checkList:null
}, },
{ {
position: 1, position: 1,
@ -226,7 +204,7 @@ const rows = ref<TableName[]>([
ReportingDate: "30 พ.ค. 2566", // ReportingDate: "30 พ.ค. 2566", //
BMAOfficer: true, BMAOfficer: true,
Status: "บรรจุเเล้ว", Status: "บรรจุเเล้ว",
checkList: null, checkList:null
}, },
]); ]);
const clickCancel = async () => { const clickCancel = async () => {
@ -241,15 +219,65 @@ const clickClose = async () => {
ok: "ยืนยัน", ok: "ยืนยัน",
persistent: true, persistent: true,
}).onOk(async () => { }).onOk(async () => {
modal_right.value = false;
modal.value = false; modal.value = false;
}); });
} else { } else {
modal_right.value = false;
modal.value = false; modal.value = false;
} }
}; };
//bright
interface CheckboxItem {
id: number;
label: string;
selected: boolean;
}
const checkboxItems: CheckboxItem[] = [
{ id: 1, label: 'ไม่เป็นผู้ดำรงตำแหน่งทางการเมือง', selected: false },
{ id: 2, label: 'ไม่เป็นคนไร้ความสามารถ คนเสมือนไร้ความสามารถ คนวิกลจริตหรือจิตฟั่นเฟือน ไม่สมประกอบหรือเป็นโรคตามที่กำหนดในกฎ ก.พ.', selected: false },
{ id: 3, label: 'ไม่เป็นผู้อยู่ในระหว่างถูกสั่งพักราชการหรือถูกสั่งให้ออกจากราชการไว้ก่อนตามพระราชบัญญัตินี้ หรือตามกฎหมายอื่น', selected: false },
{ id: 4, label: 'ไม่เป็นผู้บกพร่องในศีลธรรมอันดีจนเป็นที่รังเกียจของสังคม', selected: false },
{ id: 5, label: 'ไม่เป็นกรรมการหรือผู้ดำรงตำแหน่งที่รับผิดชอบในการบริหารพรรคการเมือง หรือเจ้าหน้าที่ในพรรคการเมือง', selected: false },
{ id: 6, label: 'ไม่เป็นบุคคลล้มละลาย', selected: false },
{ id: 7, label: 'ไม่เป็นผู้เคยต้องรับโทษจำคุกโดยคำพิพากษาถึงที่สุดให้จำคุกเพราะกระทำความผิดทางอาญา เว้นแต่เป็นโทษสำหรับความผิดที่ใด้กระทำโดยประมาทหรือความผิดลหุโทษ', selected: false },
{ id: 8, label: 'ไม่เป็นผู้เคยถูกลงโทษให้ออก ปลดออก หรือไล่ออกจากรัฐวิสาหกิจ หรือ หน่วยงานอื่นของรัฐ', selected: false },
{ id: 9, label: 'เป็นผู้เคยถูลงโทษให้ออก หรือปลดออก เพราะกระทำผิตวินัยตามพระราชบัญญัตินี้ หรือตามกฎหมายอื่น', selected: false },
{ id: 10, label: 'เป็นผู้เคยถูกลงโทษไล่ออก เพราะกระทำผิดวินัยตามพระราชบัญญัตินี้ หรือตามกฎหมายอื่น', selected: false },
{ id: 11, label: 'เป็นผู้เคยกระทำการทุจริตในการสอบเข้ารับราชการ หรือเข้าปฏิบัติงานใน หน่วยงานของรัฐ', selected: false },
];
const selectedItem = () => ({
})
const selection = ref ({
});
const handleCheckboxChange = async (item: any ) => {
await
console.log('.......')
if(item.selected){
console.log(item.id +' '+item.selected)
item.selected = false
}else{
console.log(item.id +' '+item.selected)
item.selected = true
}
}
const clickSave = async () => {
await save(false);
};
const save = async (publish: boolean) => {
console.log(checkboxItems[0])
};
const clickIsActive = async (val: string, status: boolean) => {
};
</script> </script>
<template> <template>
<q-form ref="myForm"> <q-form ref="myForm">
@ -298,6 +326,15 @@ const clickClose = async () => {
class="text-h5" class="text-h5"
/> />
</div> </div>
<q-toggle
v-else
v-model="props.row.isActive"
dense
color="green"
@update:model-value="
clickIsActive(props.row.id, props.row.isActive)
"
/>
</div> </div>
<div v-else class="table_ellipsis"> <div v-else class="table_ellipsis">
{{ col.value }} {{ col.value }}
@ -315,7 +352,6 @@ const clickClose = async () => {
round round
size="14px" size="14px"
icon="mdi-account-alert" icon="mdi-account-alert"
@click="editDetail(props.row, 'wait')"
/> />
<q-btn <q-btn
color="red" color="red"
@ -324,7 +360,6 @@ const clickClose = async () => {
round round
size="14px" size="14px"
icon="mdi-account-remove" icon="mdi-account-remove"
@click="editDetail(props.row, 'cancel')"
/> />
</div> </div>
<div v-else align="right"> <div v-else align="right">
@ -335,72 +370,229 @@ const clickClose = async () => {
round round
size="14px" size="14px"
icon="mdi-account-remove" icon="mdi-account-remove"
@click="editDetail(props.row, 'cancel')"
/> />
</div> </div>
</q-td> </q-td>
</q-tr> </q-tr>
</template> </template>
</Table> </Table>
</q-form> </q-form>
<q-dialog v-model="modal" persistent>
<q-card style="width: 800px"> <q-dialog v-model="modal" full-height full-width>
<q-form ref="myForm"> <q-card>
<!-- :tittle="`${modalEdit ? 'แก้ไข' : 'สร้าง'}รายละเอียดของ...`" -->
<DialogHeader :tittle="`รายละเอียดของ${Name}`" :close="clickClose" />
<q-separator />
<q-card-section class="q-p-sm"> text </q-card-section>
<q-separator />
<DialogFooter
:save="clickSave"
v-model:editvisible="edit"
v-model:modalEdit="modalEdit"
/>
</q-form>
</q-card>
</q-dialog>
<q-dialog v-model="modal_right" persistent>
<q-card style="width: 800px">
<q-form ref="myForm"> <q-form ref="myForm">
<!-- :tittle="`${modalEdit ? 'แก้ไข' : 'สร้าง'}รายละเอียดของ...`" --> <!-- :tittle="`${modalEdit ? 'แก้ไข' : 'สร้าง'}รายละเอียดของ...`" -->
<DialogHeader <DialogHeader
:tittle="`${modalEdit ? 'ขอผ่อนผัน' : 'สละสิทธิ์'} ชื่อ...`" :tittle="`รายละเอียดของ`"
:close="clickClose" :close="clickClose"
/> />
<q-separator /> <q-separator />
<q-card-section class="q-p-sm"> <q-card-section class="q-pa-sm">
<div class="col-xs-12 col-sm-12 col-md-12">
<q-input <div class="q-card q-card--bordered q-card--flat q-pa-sm">
:class="getClass(edit)" <div class="col-12 row items-center q-pa-xs" style="font-weight: bold;">
hide-bottom-space อมลทวไป
:outlined="edit" </div>
dense <div class="row">
lazy-rules <div class="col-3 q-pa-xs" style="color: gray;">
:readonly="!edit" เลขทประจำตวประชาชน
:borderless="!edit" </div>
v-model="positionMasterUserNote" <div class="col-3 q-pa-xs">
:label="`${'กรอกเหตุผล'}`" {{"xxxxxxxxxxxxx"}}
@update:modelValue="clickEditRow" </div>
type="textarea" <div class="col-3 q-pa-xs" style="color: gray;">
/> -นามสก
<q-file </div>
v-if="getNumFile == 1" <div class="col-3 q-pa-xs">
v-model="files" {{"XXXXXXXXXXXXXXXXX"}}
dense </div>
:label="'เลือกไฟล์เอกสารหลักฐาน'" </div>
outlined <div class="row">
use-chips <div class="col-3 q-pa-xs" style="color: gray;">
multiple /เดอน/เก
class="q-py-sm" </div>
> <div class="col-3 q-pa-xs">
<template v-slot:prepend> {{"xxxxxxxxxxxxx"}}
<q-icon name="attach_file" color="primary" /> </div>
</template> <div class="col-3 q-pa-xs">
</q-file> เพศ
<!-- :rules="[(val) => !!val || `${'กรุณากรอกเงื่อนไขตำแหน่ง'}`]" --> </div>
</div> <div class="col-3 q-pa-xs">
</q-card-section> {{"XXXXXXXXXXXXXXXXX"}}
<q-separator /> </div>
</div>
</div>
<div class="q-card q-card--bordered q-card--flat q-pa-sm">
<div class="col-12 row items-center q-pa-xs" style="font-weight: bold;">
ลำนำ
</div>
<div class="row">
<div class="col-3 q-pa-xs" style="color: gray;">
อย
</div>
<div class="col-3 q-pa-xs">
{{"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}}
</div>
</div>
</div>
<div class="q-card q-card--bordered q-card--flat q-pa-sm">
<div class="col-12 row items-center q-pa-xs" style="font-weight: bold;">
การศกษา
</div>
<div class="row">
<div class="col-3 q-pa-xs" style="color: gray;">
สถานศกษา
</div>
<div class="col-3 q-pa-xs">
{{"xxxxxxxxxxxxx"}}
</div>
<div class="col-3 q-pa-xs" style="color: gray;">
การศกษา
</div>
<div class="col-3 q-pa-xs">
{{"XXXXXXXXXXXXXXXXX"}}
</div>
</div>
<div class="row">
<div class="col-3 q-pa-xs" style="color: gray;">
สาขาวชาเอก
</div>
<div class="col-3 q-pa-xs">
{{"xxxxxxxxxxxxx"}}
</div>
<div class="col-3 q-pa-xs" style="color: gray;">
นๆ
</div>
<div class="col-3 q-pa-xs">
{{"XXXXXXXXXXXXXXXXX"}}
</div>
</div>
</div>
<div class="q-card q-card--bordered q-card--flat q-pa-sm">
<div class="col-12 row items-center q-pa-xs" style="font-weight: bold;">
การสอบ
</div>
<div class="row">
<!-- text-align: center; -->
<div class="col-2 q-pa-md" style="color: gray;">
ประเภท
</div>
<div class="col-2 q-pa-xs" style="color: #259E75;">
คะแนนเต
</div>
<div class="col-2 q-pa-xs" style="color: #259E75;">
คะแนนทได
</div>
<div class="col-2 q-pa-xs" style="color: gray;">
ผลการสอบ
</div>
<div class="col-2 q-pa-xs">
{{"XXXXXXXXXXXXXXXXX"}}
</div>
</div>
<div class="row">
<div class="col-2 q-pa-xs" style="color: gray; ">
ภาค
</div>
</div>
<div class="row">
<div class="col-2 q-pa-xs" style="color: gray; ">
ภาค
</div>
</div>
<div class="row">
<div class="col-2 q-pa-xs" style="color: gray; ">
ภาค
</div>
</div>
<div class="row">
<div class="col-2 q-pa-xs" style="color: gray; ">
รวมทงหมด
</div>
</div>
</div>
<!-- Bright -->
<div class="q-card q-card--bordered q-card--flat q-pa-sm">
<div class="col-12 row items-center q-pa-sm" style="font-weight: bold;">
การคดกรองคณสมบ
</div>
<div >
<q-list >
<q-item
v-for="item in checkboxItems"
:key="item.id"
@click="item.selected = !item.selected" clickable>
<q-item-section>
<q-checkbox v-model="item.selected" color="green" keep-color :label="item.label" @click="selectedItem"/>
</q-item-section>
</q-item>
<q-separator spaced inset />
<!-- @click="check(item.id, item.selected)" -->
<!-- <q-item>
<q-checkbox keep-color v-model="chk" label="ไม่เป็นคนไร้ความสามารถ คนเสมือนไร้ความสามารถ คนวิกลจริตหรือจิตฟั่นเฟือน ไม่สมประกอบหรือเป็นโรคตามที่กำหนดในกฎ ก.พ." color="green"/>
</q-item>
<q-separator spaced inset />
<q-item>
<q-checkbox keep-color v-model="chk" label="ไม่เป็นผู้อยู่ในระหว่างถูกสั่งพักราชการหรือถูกสั่งให้ออกจากราชการไว้ก่อนตามพระราชบัญญัตินี้ หรือตามกฎหมายอื่น" color="green"/>
</q-item>
<q-separator spaced inset />
<q-item>
<q-checkbox keep-color v-model="chk" label="ไม่เป็นผู้บกพร่องในศีลธรรมอันดีจนเป็นที่รังเกียจของสังคม" color="green"/>
</q-item>
<q-separator spaced inset />
<q-item>
<q-checkbox keep-color v-model="chk" label="ไม่เป็นกรรมการหรือผู้ดำรงตำแหน่งที่รับผิดชอบในการบริหารพรรคการเมือง หรือเจ้าหน้าที่ในพรรคการเมือง" color="green"/>
</q-item>
<q-separator spaced inset />
<q-item>
<q-checkbox keep-color v-model="chk" label="ไม่เป็นบุคคลล้มละลาย" color="green"/>
</q-item>
<q-separator spaced inset />
<q-item>
<q-checkbox keep-color v-model="chk" label="ไม่เป็นผู้เคยต้องรับโทษจำคุกโดยคำพิพากษาถึงที่สุดให้จำคุกเพราะกระทำความผิดทางอาญา เว้นแต่เป็นโทษสำหรับความผิดที่ใด้กระทำโดยประมาทหรือความผิดลหุโทษ" color="green"/>
</q-item>
<q-separator spaced inset />
<q-item>
<q-checkbox keep-color v-model="chk" label="ไม่เป็นผู้เคยถูกลงโทษให้ออก ปลดออก หรือไล่ออกจากรัฐวิสาหกิจ หรือ หน่วยงานอื่นของรัฐ" color="green"/>
</q-item>
<q-separator spaced inset />
<q-item>
<q-checkbox keep-color v-model="chk" label="เป็นผู้เคยถูลงโทษให้ออก หรือปลดออก เพราะกระทำผิตวินัยตามพระราชบัญญัตินี้ หรือตามกฎหมายอื่น" color="green"/>
</q-item>
<q-separator spaced inset />
<q-item>
<q-checkbox keep-color v-model="chk" label="เป็นผู้เคยถูกลงโทษไล่ออก เพราะกระทำผิดวินัยตามพระราชบัญญัตินี้ หรือตามกฎหมายอื่น" color="green"/>
</q-item>
<q-separator spaced inset />
<q-item>
<q-checkbox keep-color v-model="chk" label="เป็นผู้เคยกระทำการทุจริตในการสอบเข้ารับราชการ หรือเข้าปฏิบัติงานใน หน่วยงานของรัฐ" color="green"/>
</q-item> -->
</q-list>
</div>
</div>
</q-card-section>
<DialogFooter <DialogFooter
:save="clickSave" :save="clickSave"
v-model:editvisible="edit" v-model:editvisible="edit"