เครื่องราชฯ จัดการคำขอปรับการแสดงเงื่อนไขตรงคอลัมน์แจ้งเตือน

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2024-12-27 14:44:49 +07:00
parent f38b10becf
commit 2aa04422ae
5 changed files with 763 additions and 48 deletions

View file

@ -28,6 +28,7 @@ import DialogInformation from "@/components/Dialogs/Information.vue";
import DialogHeader from "@/components/DialogHeader.vue";
import btnDownloadFile from "@/modules/07_insignia/components/2_Manage/downloadFile.vue";
import PopupPersonal from "@/components/Dialogs/PopupPersonalNew.vue";
import DialogInfo from "@/modules/13_salary/components/DialogInfoMain.vue";
/**use*/
const myForm = ref<QForm>();
@ -106,7 +107,11 @@ const visibleColumns = ref<string[]>([
"insigniaLevel",
"dateSend",
"note",
"warn",
// "warn",
"discipline",
"leave",
"assessments",
"insignia",
]);
const columns = ref<QTableProps["columns"]>([
{
@ -217,10 +222,48 @@ const columns = ref<QTableProps["columns"]>([
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: "warn",
name: "discipline",
align: "left",
label: "แจ้งเตือน",
label: "โทษทางวินัย",
sortable: true,
field: "",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "leave",
align: "left",
label: "ไม่ได้เลื่อนเงินเดือน/ไม่ได้เลื่อนขั้น เนื่องจากลาเกิน",
sortable: false,
field: "",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "assessments",
align: "left",
label:
"ผลการประเมินการปฏิบัติราชการในรอบ 5 ปี ต่ำกว่าระดับดี (น้อยกว่าร้อยละ 70)",
sortable: false,
field: "",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "insignia",
align: "left",
label: "ข้อมูลเครื่องราชฯ",
sortable: false,
field: "",
headerStyle: "font-size: 14px",
@ -675,11 +718,7 @@ function updatemodalPersonal(modal: boolean) {
const filterKeyword = ref<string>("");
const filterKeyword2 = ref<string>("");
const filterRef = ref<any>(null);
const resetFilter = () => {
filterKeyword.value = "";
filterKeyword2.value = "";
filterRef.value.focus();
};
const pagination = ref({
sortBy: "name",
descending: false,
@ -804,6 +843,23 @@ function onSearch() {
);
}
const infoType = ref<string>(""); //
const profileId = ref<string>(""); //id
const modalDialogInfo = ref<boolean>(false); // /popup
const employeeClass = ref<string>("");
/**
* function อมลสวนต
* @param type ประเภทขอม
* @param id id องการด
*/
function onClickViewInfo(type: string, id: string, empClass: string) {
infoType.value = type;
profileId.value = id;
modalDialogInfo.value = true;
employeeClass.value = empClass === "officer" ? "" : "-employee";
}
/** Hook*/
onMounted(async () => {
filterOrganizationOP.value = await DataStore.optionsTypeOc;
@ -1040,6 +1096,8 @@ onMounted(async () => {
/>
<q-th v-else 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>
@ -1230,6 +1288,81 @@ onMounted(async () => {
<q-tooltip>แจงเตอน</q-tooltip></q-btn
>
</q-td>
<q-td key="discipline" class="text-center">
<q-btn
v-if="
checkPermission($route)?.attrIsGet &&
props.row.markDiscipline
"
flat
dense
icon="info"
color="red"
@click.pervent="
onClickViewInfo(
'discipline',
props.row.profileId,
props.row.employeeClass
)
"
>
</q-btn>
</q-td>
<q-td key="leave" class="text-center">
<q-btn
v-if="
checkPermission($route)?.attrIsGet && props.row.markLeave
"
flat
dense
icon="info"
color="red"
@click.pervent="
onClickViewInfo(
'leave',
props.row.profileId,
props.row.employeeClass
)
"
>
</q-btn>
</q-td>
<q-td key="assessments" class="text-center">
<q-btn
v-if="
checkPermission($route)?.attrIsGet && props.row.markRate
"
flat
dense
icon="info"
color="red"
@click.pervent="
onClickViewInfo(
'assessments',
props.row.profileId,
props.row.employeeClass
)
"
>
</q-btn>
</q-td>
<q-td key="insignia" class="text-center">
<q-btn
v-if="checkPermission($route)?.attrIsGet"
flat
dense
icon="info"
color="info"
@click.pervent="
onClickViewInfo(
'insignia',
props.row.profileId,
props.row.employeeClass
)
"
>
</q-btn>
</q-td>
</q-tr>
</template>
</d-table>
@ -1543,4 +1676,11 @@ onMounted(async () => {
:id="personId"
@update:modal="updatemodalPersonal"
/>
<DialogInfo
v-model:modal="modalDialogInfo"
v-model:profile-id="profileId"
:type="infoType"
:employee-class="employeeClass"
/>
</template>