Merge branch 'develop' into dev
All checks were successful
Build & Deploy on Dev / build (push) Successful in 3m2s
All checks were successful
Build & Deploy on Dev / build (push) Successful in 3m2s
This commit is contained in:
commit
32dfa12ef1
5 changed files with 228 additions and 43 deletions
|
|
@ -178,6 +178,8 @@ export default {
|
||||||
`${workflow}/keycloak/isofficer/${type}`,
|
`${workflow}/keycloak/isofficer/${type}`,
|
||||||
|
|
||||||
positionCondition: `${orgPos}/master/position-condition`,
|
positionCondition: `${orgPos}/master/position-condition`,
|
||||||
|
positionConditionEmp: `${organization}/employee/pos/master/position-condition`,
|
||||||
|
|
||||||
|
|
||||||
keycloakLogSSO: `${organization}/keycloak/log/sso`,
|
keycloakLogSSO: `${organization}/keycloak/log/sso`,
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, reactive, watch } from "vue";
|
import { ref, reactive, watch, computed } from "vue";
|
||||||
import { useQuasar } from "quasar";
|
import { useQuasar } from "quasar";
|
||||||
|
|
||||||
import http from "@/plugins/http";
|
import http from "@/plugins/http";
|
||||||
|
|
@ -63,6 +63,16 @@ const props = defineProps({
|
||||||
positionHolderInfo: { type: Object, default: () => ({}) },
|
positionHolderInfo: { type: Object, default: () => ({}) },
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const titlePopup = computed(() => {
|
||||||
|
return props.actionType === "ADD"
|
||||||
|
? "เพิ่มอัตรากำลัง"
|
||||||
|
: props.actionType === "EDIT"
|
||||||
|
? "แก้ไขอัตรากำลัง"
|
||||||
|
: props.actionType === "COPY"
|
||||||
|
? "คัดลอกอัตรากำลัง"
|
||||||
|
: "";
|
||||||
|
});
|
||||||
|
|
||||||
const isReadonly = ref<boolean>(false); // อ่านได้อย่างเดียว
|
const isReadonly = ref<boolean>(false); // อ่านได้อย่างเดียว
|
||||||
const isEdit = ref<boolean>(false); //การแก้ไข
|
const isEdit = ref<boolean>(false); //การแก้ไข
|
||||||
const modalAdd = ref<boolean>(false); //เพิ่ม แก้้ไขตำแหน่ง
|
const modalAdd = ref<boolean>(false); //เพิ่ม แก้้ไขตำแหน่ง
|
||||||
|
|
@ -582,12 +592,7 @@ watch(
|
||||||
<template>
|
<template>
|
||||||
<q-dialog v-model="props.modal" persistent>
|
<q-dialog v-model="props.modal" persistent>
|
||||||
<q-card style="min-width: 80vw">
|
<q-card style="min-width: 80vw">
|
||||||
<DialogHeader
|
<DialogHeader :tittle="titlePopup" :close="close" />
|
||||||
:tittle="
|
|
||||||
props.actionType === 'ADD' ? 'เพิ่มอัตรากำลัง' : 'แก้ไขอัตรากำลัง'
|
|
||||||
"
|
|
||||||
:close="close"
|
|
||||||
/>
|
|
||||||
<q-separator />
|
<q-separator />
|
||||||
<q-form greedy @submit.prevent @validation-success="onSubmit">
|
<q-form greedy @submit.prevent @validation-success="onSubmit">
|
||||||
<q-card-section class="q-pa-sm fixed-height">
|
<q-card-section class="q-pa-sm fixed-height">
|
||||||
|
|
|
||||||
118
src/modules/16_positionEmployee/components/DialogCondition.vue
Normal file
118
src/modules/16_positionEmployee/components/DialogCondition.vue
Normal file
|
|
@ -0,0 +1,118 @@
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { reactive, watch } from "vue";
|
||||||
|
import { useQuasar } from "quasar";
|
||||||
|
|
||||||
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
|
import config from "@/app.config";
|
||||||
|
import http from "@/plugins/http";
|
||||||
|
|
||||||
|
import type { PropType } from "vue";
|
||||||
|
import type { DataPositionCondition } from "@/modules/19_condition/interface/response/Main";
|
||||||
|
import type { FormPositionCondition } from "@/modules/19_condition/interface/request/Main";
|
||||||
|
|
||||||
|
import DialogHeader from "@/components/DialogHeader.vue";
|
||||||
|
|
||||||
|
const $q = useQuasar();
|
||||||
|
const { showLoader, hideLoader, messageError, success, dialogConfirm } =
|
||||||
|
useCounterMixin();
|
||||||
|
|
||||||
|
const modal = defineModel<boolean>("modal", { required: true });
|
||||||
|
const props = defineProps({
|
||||||
|
fetchData: { type: Function, required: true },
|
||||||
|
dataCondition: {
|
||||||
|
type: Object as PropType<DataPositionCondition>,
|
||||||
|
default: () => ({}),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const formData = reactive<FormPositionCondition>({
|
||||||
|
isCondition: false,
|
||||||
|
conditionReason: "",
|
||||||
|
});
|
||||||
|
|
||||||
|
function onCloseDialog() {
|
||||||
|
modal.value = false;
|
||||||
|
formData.isCondition = false;
|
||||||
|
formData.conditionReason = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
function onSubmit() {
|
||||||
|
dialogConfirm($q, async () => {
|
||||||
|
showLoader();
|
||||||
|
formData.conditionReason =
|
||||||
|
formData.isCondition === false ? "" : formData.conditionReason; // ถ้าไม่เลือกติดเงื่อนไขให้หมายเหตุเป็นค่าว่าง
|
||||||
|
await http
|
||||||
|
.put(
|
||||||
|
config.API.positionConditionEmp + `/${props?.dataCondition?.id}`,
|
||||||
|
formData
|
||||||
|
)
|
||||||
|
.then(async () => {
|
||||||
|
onCloseDialog();
|
||||||
|
await props.fetchData?.();
|
||||||
|
success($q, "บันทึกข้อมูลสำเร็จ");
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
messageError($q, err);
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
hideLoader();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
watch(modal, () => {
|
||||||
|
if (modal.value) {
|
||||||
|
if (props.dataCondition) {
|
||||||
|
formData.isCondition = props.dataCondition.isCondition;
|
||||||
|
formData.conditionReason = props.dataCondition.conditionReason;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<q-dialog v-model="modal" persistent>
|
||||||
|
<q-card style="min-width: 30vw">
|
||||||
|
<q-form greedy @submit.prevent @validation-success="onSubmit">
|
||||||
|
<DialogHeader
|
||||||
|
:tittle="`จัดการตำแหน่งติดเงื่อนไข`"
|
||||||
|
:close="onCloseDialog"
|
||||||
|
/>
|
||||||
|
<q-separator />
|
||||||
|
|
||||||
|
<q-card-section class="q-pt-none">
|
||||||
|
<div class="row q--col-gutter-sm">
|
||||||
|
<div class="col-12">
|
||||||
|
<q-checkbox
|
||||||
|
color="primary"
|
||||||
|
keep-color
|
||||||
|
v-model="formData.isCondition"
|
||||||
|
label="ตำแหน่งติดเงื่อนไข
|
||||||
|
"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-12">
|
||||||
|
<q-input
|
||||||
|
dense
|
||||||
|
outlined
|
||||||
|
v-model="formData.conditionReason"
|
||||||
|
label="หมายเหตุ"
|
||||||
|
type="textarea"
|
||||||
|
class="inputgreen"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</q-card-section>
|
||||||
|
|
||||||
|
<q-separator />
|
||||||
|
<q-card-actions align="right">
|
||||||
|
<q-btn label="บันทึก" color="secondary" type="submit"
|
||||||
|
><q-tooltip>บันทึกข้อมูล</q-tooltip></q-btn
|
||||||
|
>
|
||||||
|
</q-card-actions>
|
||||||
|
</q-form>
|
||||||
|
</q-card>
|
||||||
|
</q-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped></style>
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, reactive, watch } from "vue";
|
import { ref, reactive, watch, computed } from "vue";
|
||||||
import { useQuasar } from "quasar";
|
import { useQuasar } from "quasar";
|
||||||
|
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
|
|
@ -49,6 +49,16 @@ const props = defineProps({
|
||||||
shortName: { type: String, required: true },
|
shortName: { type: String, required: true },
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const titlePopup = computed(() => {
|
||||||
|
return props.actionType === "ADD"
|
||||||
|
? "เพิ่มอัตรากำลัง"
|
||||||
|
: props.actionType === "EDIT"
|
||||||
|
? "แก้ไขอัตรากำลัง"
|
||||||
|
: props.actionType === "COPY"
|
||||||
|
? "คัดลอกอัตรากำลัง"
|
||||||
|
: "";
|
||||||
|
});
|
||||||
|
|
||||||
const modalAdd = ref<boolean>(false); //เพิ่มข้อมูลตำแหน่ง
|
const modalAdd = ref<boolean>(false); //เพิ่มข้อมูลตำแหน่ง
|
||||||
const isEdit = ref<boolean>(false); //แก้ไขข้อมูล
|
const isEdit = ref<boolean>(false); //แก้ไขข้อมูล
|
||||||
const isReadonly = ref<boolean>(false); // อ่านได้อย่างเดียว
|
const isReadonly = ref<boolean>(false); // อ่านได้อย่างเดียว
|
||||||
|
|
@ -192,10 +202,10 @@ function onSubmit() {
|
||||||
};
|
};
|
||||||
try {
|
try {
|
||||||
const url =
|
const url =
|
||||||
props.actionType === "ADD"
|
props.actionType === "ADD" || props.actionType === "COPY"
|
||||||
? config.API.orgPosMasterEmp
|
? config.API.orgPosMasterEmp
|
||||||
: config.API.orgPosMasterByIdEmp(props.rowId);
|
: config.API.orgPosMasterByIdEmp(props.rowId);
|
||||||
await http[props.actionType === "ADD" ? "post" : "put"](url, body);
|
await http[props.actionType === "ADD" || props.actionType === "COPY" ? "post" : "put"](url, body);
|
||||||
await props.getSummary?.();
|
await props.getSummary?.();
|
||||||
await props.fetchDataTable?.(
|
await props.fetchDataTable?.(
|
||||||
reqMaster.value.id,
|
reqMaster.value.id,
|
||||||
|
|
@ -349,12 +359,7 @@ watch(
|
||||||
<template>
|
<template>
|
||||||
<q-dialog v-model="props.modal" persistent>
|
<q-dialog v-model="props.modal" persistent>
|
||||||
<q-card style="min-width: 80vw">
|
<q-card style="min-width: 80vw">
|
||||||
<DialogHeader
|
<DialogHeader :tittle="titlePopup" :close="close" />
|
||||||
:tittle="
|
|
||||||
props.actionType === 'ADD' ? 'เพิ่มอัตรากำลัง' : 'แก้ไขอัตรากำลัง'
|
|
||||||
"
|
|
||||||
:close="close"
|
|
||||||
/>
|
|
||||||
<q-separator />
|
<q-separator />
|
||||||
<q-form greedy @submit.prevent @validation-success="onSubmit">
|
<q-form greedy @submit.prevent @validation-success="onSubmit">
|
||||||
<q-card-section class="q-pa-sm fixed-height">
|
<q-card-section class="q-pa-sm fixed-height">
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,7 @@ import genreport from "@/plugins/genreportxlsx";
|
||||||
import config from "@/app.config";
|
import config from "@/app.config";
|
||||||
import http from "@/plugins/http";
|
import http from "@/plugins/http";
|
||||||
|
|
||||||
/**
|
/** importType*/
|
||||||
* importType
|
|
||||||
*/
|
|
||||||
import type { QTableProps } from "quasar";
|
import type { QTableProps } from "quasar";
|
||||||
import type {
|
import type {
|
||||||
ListMenu,
|
ListMenu,
|
||||||
|
|
@ -22,10 +20,9 @@ import type {
|
||||||
import type { FilterMaster } from "@/modules/16_positionEmployee/interface/request/organizational";
|
import type { FilterMaster } from "@/modules/16_positionEmployee/interface/request/organizational";
|
||||||
import type { PosMaster2 } from "@/modules/16_positionEmployee/interface/response/organizational";
|
import type { PosMaster2 } from "@/modules/16_positionEmployee/interface/response/organizational";
|
||||||
import type { DataPosition } from "@/modules/16_positionEmployee/interface/index/organizational";
|
import type { DataPosition } from "@/modules/16_positionEmployee/interface/index/organizational";
|
||||||
|
import type { DataPositionCondition } from "@/modules/19_condition/interface/response/Main";
|
||||||
|
|
||||||
/**
|
/** importComponents*/
|
||||||
* importComponents
|
|
||||||
*/
|
|
||||||
import DialogFormPosotion from "@/modules/16_positionEmployee/components/DialogFormPosition.vue";
|
import DialogFormPosotion from "@/modules/16_positionEmployee/components/DialogFormPosition.vue";
|
||||||
import DialogPositionDetail from "@/modules/16_positionEmployee/components/DialogPositionDetail.vue";
|
import DialogPositionDetail from "@/modules/16_positionEmployee/components/DialogPositionDetail.vue";
|
||||||
import DialogSort from "@/modules/16_positionEmployee/components/DialogSortPosition.vue";
|
import DialogSort from "@/modules/16_positionEmployee/components/DialogSortPosition.vue";
|
||||||
|
|
@ -34,18 +31,15 @@ import DialogHistoryPos from "@/modules/16_positionEmployee/components/DialogHis
|
||||||
import DialogSelectPerson from "@/modules/16_positionEmployee/components/DialogSelectPerson.vue";
|
import DialogSelectPerson from "@/modules/16_positionEmployee/components/DialogSelectPerson.vue";
|
||||||
import DialogSuccession from "@/modules/16_positionEmployee/components/DialogSuccession.vue";
|
import DialogSuccession from "@/modules/16_positionEmployee/components/DialogSuccession.vue";
|
||||||
import PopupPersonal from "@/components/Dialogs/PopupPersonalNew.vue";
|
import PopupPersonal from "@/components/Dialogs/PopupPersonalNew.vue";
|
||||||
|
import DialogCondition from "@/modules/16_positionEmployee/components/DialogCondition.vue";
|
||||||
|
|
||||||
/**
|
/** ues*/
|
||||||
* ues
|
|
||||||
*/
|
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
const store = usePositionEmp();
|
const store = usePositionEmp();
|
||||||
const { showLoader, hideLoader, messageError, success, dialogRemove } =
|
const { showLoader, hideLoader, messageError, success, dialogRemove } =
|
||||||
useCounterMixin();
|
useCounterMixin();
|
||||||
|
|
||||||
/**
|
/** prosp*/
|
||||||
* prosp
|
|
||||||
*/
|
|
||||||
const nodeTree = defineModel<any>("nodeTree", { required: true });
|
const nodeTree = defineModel<any>("nodeTree", { required: true });
|
||||||
const orgLevel = defineModel<number>("orgLevel", { required: true });
|
const orgLevel = defineModel<number>("orgLevel", { required: true });
|
||||||
const treeId = defineModel<string>("treeId", { required: true });
|
const treeId = defineModel<string>("treeId", { required: true });
|
||||||
|
|
@ -72,9 +66,7 @@ const props = defineProps({
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/** modal popup*/
|
||||||
* modal popup
|
|
||||||
*/
|
|
||||||
const modalPerson = ref<boolean>(false); //ตัวแปร popup ข้อมูลทะเบียนประวัติ
|
const modalPerson = ref<boolean>(false); //ตัวแปร popup ข้อมูลทะเบียนประวัติ
|
||||||
const personalId = ref<string>(""); //ตัวแปร id ข้อมูลทะเบียนประวัติ
|
const personalId = ref<string>(""); //ตัวแปร id ข้อมูลทะเบียนประวัติ
|
||||||
const dialogDetail = ref<boolean>(false); // รายละเอียดตำแหน่ง
|
const dialogDetail = ref<boolean>(false); // รายละเอียดตำแหน่ง
|
||||||
|
|
@ -84,6 +76,8 @@ const modalSort = ref<boolean>(false); // จัดลำดับ
|
||||||
const modalDialogMMove = ref<boolean>(false); // ย้ายตำแหน่ง
|
const modalDialogMMove = ref<boolean>(false); // ย้ายตำแหน่ง
|
||||||
const modalDialogSuccession = ref<boolean>(false); // สืบทอดตำแหน่ง
|
const modalDialogSuccession = ref<boolean>(false); // สืบทอดตำแหน่ง
|
||||||
const modalDialogHistoryPos = ref<boolean>(false); // ประวัติตำแหน่ง
|
const modalDialogHistoryPos = ref<boolean>(false); // ประวัติตำแหน่ง
|
||||||
|
const modalCondition = ref<boolean>(false); // จัดการตำแหน่งติดเงื่อนไข
|
||||||
|
const dataCondition = ref<DataPositionCondition>();
|
||||||
|
|
||||||
const rowId = ref<string>("");
|
const rowId = ref<string>("");
|
||||||
const actionType = ref<string>("");
|
const actionType = ref<string>("");
|
||||||
|
|
@ -101,6 +95,18 @@ const listMenu = ref<ListMenu[]>([
|
||||||
type: "EDIT",
|
type: "EDIT",
|
||||||
color: "edit",
|
color: "edit",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: "คัดลอก",
|
||||||
|
icon: "content_copy",
|
||||||
|
type: "COPY",
|
||||||
|
color: "blue-6",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "จัดการตำแหน่งติดเงื่อนไข",
|
||||||
|
icon: "mdi-account-alert",
|
||||||
|
type: "CONDITION",
|
||||||
|
color: "deep-orange",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
label: "ลบ",
|
label: "ลบ",
|
||||||
icon: "delete",
|
icon: "delete",
|
||||||
|
|
@ -229,9 +235,7 @@ function onClickDelete(id: string) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** function เปิด popup จัดลำดับตำแหน่ง*/
|
||||||
* fdunction จัดลำดับตำแหน่ง
|
|
||||||
*/
|
|
||||||
function onClickSort() {
|
function onClickSort() {
|
||||||
modalSort.value = true;
|
modalSort.value = true;
|
||||||
}
|
}
|
||||||
|
|
@ -274,9 +278,7 @@ function openSelectPerson(data: DataPosition[]) {
|
||||||
dataDetailPos.value = data;
|
dataDetailPos.value = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** function ลบคนครอง*/
|
||||||
* ลบคนครอง
|
|
||||||
*/
|
|
||||||
function removePerson(id: string) {
|
function removePerson(id: string) {
|
||||||
dialogRemove(
|
dialogRemove(
|
||||||
$q,
|
$q,
|
||||||
|
|
@ -307,15 +309,14 @@ function removePerson(id: string) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* function openPopup สืบทอดตำแหน่ง
|
* function openPopup สืบทอดตำแหน่ง
|
||||||
|
* @param id ที่ต้องการ
|
||||||
*/
|
*/
|
||||||
function onClickInherit(id: string) {
|
function onClickInherit(id: string) {
|
||||||
modalDialogSuccession.value = !modalDialogSuccession.value;
|
modalDialogSuccession.value = !modalDialogSuccession.value;
|
||||||
rowId.value = id;
|
rowId.value = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** ดึงข้อมูลสถิติจำนวนด้านบน*/
|
||||||
* ดึงข้อมูลสถิติจำนวนด้านบน
|
|
||||||
*/
|
|
||||||
function getSummary() {
|
function getSummary() {
|
||||||
showLoader();
|
showLoader();
|
||||||
http
|
http
|
||||||
|
|
@ -348,9 +349,13 @@ function getSummary() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/** function DownloadReport*/
|
/**
|
||||||
|
* function DownloadReport
|
||||||
|
* @param val ประเภทเอกสารที่ต้องการดาวน์โหลด
|
||||||
|
* @param name ชื่อเอกสารที่ต้องการดาวน์โหลด
|
||||||
|
*
|
||||||
|
*/
|
||||||
async function onClickDownloadReport(val: string, name: string) {
|
async function onClickDownloadReport(val: string, name: string) {
|
||||||
// รอ API
|
|
||||||
showLoader();
|
showLoader();
|
||||||
await http
|
await http
|
||||||
.get(config.API.orgReport(val) + `/${treeId.value}`)
|
.get(config.API.orgReport(val) + `/${treeId.value}`)
|
||||||
|
|
@ -373,6 +378,34 @@ const pagination = ref({
|
||||||
rowsPerPage: reqMaster.value.pageSize,
|
rowsPerPage: reqMaster.value.pageSize,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* function เปิด popup จัดการตำแหน่งติดเงื่อนไข
|
||||||
|
* @param data ข้อมูลตำแหน่ง
|
||||||
|
*/
|
||||||
|
function onClickCodition(data: any) {
|
||||||
|
dataCondition.value = {
|
||||||
|
conditionReason: data.conditionReason
|
||||||
|
? data.conditionReason.replace(/ /g, " \n")
|
||||||
|
: "",
|
||||||
|
id: data.id,
|
||||||
|
isCondition: data.isCondition,
|
||||||
|
orgShortname: data.orgShortname,
|
||||||
|
posMasterNo: Number(data.posMasterNo),
|
||||||
|
posMasterNoPrefix: data.posMasterNoPrefix,
|
||||||
|
posMasterNoSuffix: data.posMasterNoSuffix,
|
||||||
|
profilePosition: data.profilePosition,
|
||||||
|
profilePoslevel: data.profilePoslevel,
|
||||||
|
profilePostype: data.profilePostype,
|
||||||
|
positions: [],
|
||||||
|
};
|
||||||
|
modalCondition.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** function fetchข้อมูลใหม่*/
|
||||||
|
async function fetchDataCondition() {
|
||||||
|
props.fetchDataTable?.(reqMaster.value.id, reqMaster.value.type, false);
|
||||||
|
}
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => modalDialogMMove.value,
|
() => modalDialogMMove.value,
|
||||||
() => {
|
() => {
|
||||||
|
|
@ -585,6 +618,10 @@ watch(
|
||||||
? onClickHistoryPos(props.row.id)
|
? onClickHistoryPos(props.row.id)
|
||||||
: item.type === 'INHERIT'
|
: item.type === 'INHERIT'
|
||||||
? onClickInherit(props.row.id)
|
? onClickInherit(props.row.id)
|
||||||
|
: item.type === 'COPY'
|
||||||
|
? onClickPosition('COPY', props.row.id)
|
||||||
|
: item.type === 'CONDITION'
|
||||||
|
? onClickCodition(props.row)
|
||||||
: null
|
: null
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
|
|
@ -616,7 +653,12 @@ watch(
|
||||||
</q-menu>
|
</q-menu>
|
||||||
</q-btn>
|
</q-btn>
|
||||||
</q-td>
|
</q-td>
|
||||||
<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"
|
||||||
|
:class="props.row.isCondition ? 'text-red' : ''"
|
||||||
|
>
|
||||||
<div v-if="col.name == 'no'">
|
<div v-if="col.name == 'no'">
|
||||||
{{
|
{{
|
||||||
(reqMaster.page - 1) * Number(reqMaster.pageSize) +
|
(reqMaster.page - 1) * Number(reqMaster.pageSize) +
|
||||||
|
|
@ -664,6 +706,12 @@ watch(
|
||||||
>
|
>
|
||||||
<q-tooltip>ดูข้อมูลในทะเบียนประวัติ</q-tooltip>
|
<q-tooltip>ดูข้อมูลในทะเบียนประวัติ</q-tooltip>
|
||||||
</q-btn>
|
</q-btn>
|
||||||
|
|
||||||
|
{{
|
||||||
|
props.row.isCondition && props.row.conditionReason
|
||||||
|
? `\r(${props.row.conditionReason})`
|
||||||
|
: ""
|
||||||
|
}}
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
{{ col.value ? col.value : "-" }}
|
{{ col.value ? col.value : "-" }}
|
||||||
|
|
@ -750,6 +798,13 @@ watch(
|
||||||
@update:modal="(value:any)=>{modalPerson = value}"
|
@update:modal="(value:any)=>{modalPerson = value}"
|
||||||
:type="'employee'"
|
:type="'employee'"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<!-- จัดการตำแหน่งติดเงื่อนไข -->
|
||||||
|
<DialogCondition
|
||||||
|
v-model:modal="modalCondition"
|
||||||
|
:fetch-data="fetchDataCondition"
|
||||||
|
:data-condition="dataCondition"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue