diff --git a/src/components/Dialogs/DialogOrgSelect.vue b/src/components/Dialogs/DialogOrgSelect.vue index b6a4ed6ae..8acabf448 100644 --- a/src/components/Dialogs/DialogOrgSelect.vue +++ b/src/components/Dialogs/DialogOrgSelect.vue @@ -24,14 +24,14 @@ import DialogHeader from "@/components/DialogHeader.vue"; const props = defineProps({ dataRows: { type: Object, - require: true, + required: true, }, onSubmit: Function, }); const $q = useQuasar(); const route = useRoute(); const storeTree = useStructureTree(); -const { fetchStructureTree } = useStructureTree(); +const { fetchStructureTree } = storeTree; const mixin = useCounterMixin(); const { dialogConfirm, @@ -47,10 +47,10 @@ const { /** props*/ const modal = defineModel("modal", { required: true }); const title = defineModel("title", { required: true }); -const type = defineModel("type", { required: true }); -const posType = defineModel("posType", { required: true }); -const posLevel = defineModel("posLevel", { required: true }); -const position = defineModel("position", { required: true }); +const type = defineModel("type", { required: true }); +const posType = defineModel("posType", { required: true }); +const posLevel = defineModel("posLevel", { required: true }); +const position = defineModel("position", { required: true }); // const routeName = ref(route?.name); const orgRevisionId = ref(""); @@ -64,7 +64,7 @@ const itemTaps = ref(); const filters = ref(""); const positionId = ref(""); const selectedPos = ref([]); -const seletcId = ref(""); +const selectId = ref(""); const datePos = ref(new Date()); const rowsPosition = ref([]); const positionData = ref([]); @@ -79,7 +79,6 @@ const formActive = reactive({ }); /** node */ const nodes = ref>([]); -const lazy = ref(nodes); const expanded = ref([]); const nodeLevel = ref(0); const nodeId = ref(""); // id ของ Tree @@ -150,7 +149,7 @@ const columns = ref([ style: "font-size: 14px", }, ]); -const columnsPostition = ref([ +const columnsPosition = ref([ { name: "no", align: "left", @@ -181,7 +180,7 @@ const columnsPostition = ref([ { name: "posTypeName", align: "left", - label: "ประเภทตำเเหน่ง", + label: "ประเภทตำแหน่ง", sortable: true, field: "posTypeName", headerStyle: "font-size: 14px", @@ -335,11 +334,11 @@ async function getDataTable(id: string, level: number = 0) { function updateSelected(data: DataTree) { if (props?.dataRows?.nodeId === data.orgTreeId) { positionId.value = props?.dataRows?.posmasterId; - seletcId.value = props?.dataRows?.positionId; + selectId.value = props?.dataRows?.positionId; datePos.value = props?.dataRows?.reportingDate; } else { positionId.value = ""; - seletcId.value = ""; + selectId.value = ""; selectedPos.value = []; datePos.value = new Date(); } @@ -386,9 +385,9 @@ async function onClickSelectPos(id: string) { // หาตำแหน่ง if (position) { rowsPosition.value = position.positions; - if (seletcId.value) { + if (selectId.value) { selectedPos.value = rowsPosition.value.filter( - (e) => e.id === seletcId.value + (e) => e.id === selectId.value ); } } @@ -412,12 +411,14 @@ async function fetchPosFind(level: number, id: string) { expanded.value = data; nodeId.value = id; positionId.value = props?.dataRows?.posmasterId; - seletcId.value = props?.dataRows?.positionId; + selectId.value = props?.dataRows?.positionId; datePos.value = props?.dataRows?.reportingDate; await getDataTable(nodeId.value, level); }) .catch((e) => { messageError($q, e); + }) + .finally(() => { hideLoader(); }); } @@ -461,19 +462,15 @@ function fetchPositionUes() { watch( () => isAll.value, - (value, oldVal) => { - if (value !== oldVal) { - getDataTable(nodeId.value, nodeLevel.value); - } + () => { + getDataTable(nodeId.value, nodeLevel.value); } ); watch( () => isBlank.value, - (value, oldVal) => { - if (value !== oldVal) { - getDataTable(nodeId.value, nodeLevel.value); - } + () => { + getDataTable(nodeId.value, nodeLevel.value); } ); @@ -489,35 +486,42 @@ function onSubmit() { const dataPosMaster = posMasterMain.value?.find( (e: any) => e.id === positionId.value ); + + if (!dataPosMaster) { + dialogMessageNotify($q, "ไม่พบข้อมูลตำแหน่ง"); + return; + } + if (selectedPos.value.length === 0) { dialogMessageNotify($q, "กรุณาเลือกตำแหน่ง"); - } else { - dialogConfirm($q, async () => { - const body = { - personalId: props?.dataRows?.id, - node: dataPosMaster.node, - nodeId: dataPosMaster.nodeId, - orgRevisionId: formActive.activeId, - positionId: selectedPos.value[0].id, - posMasterNo: dataPosMaster.posMasterNo, //ตำแหน่งเลขที่(เลขอย่่างเดียว) - positionName: selectedPos.value[0].positionName, //ชื่อตำแหน่ง - positionField: selectedPos.value[0].positionField, //ชื่อตำแหน่ง - posTypeId: selectedPos.value[0].posTypeId, //ชื่อตำแหน่ง - posTypeName: selectedPos.value[0].posTypeName, //ชื่อตำแหน่ง - posLevelId: selectedPos.value[0].posLevelId, //ชื่อตำแหน่ง - posLevelName: selectedPos.value[0].posLevelName, //ชื่อตำแหน่ง - posExecutiveName: selectedPos.value[0].posExecutiveName, //ชื่อตำแหน่ง - reportingDate: convertDateToAPI(datePos.value), - posmasterId: dataPosMaster.id, - typeCommand: type.value, - positionExecutiveField: selectedPos.value[0].positionExecutiveField, //ด้านทางการบริหาร - positionArea: selectedPos.value[0].positionArea, //ด้าน/สาขา - }; - - await props.onSubmit?.(body); - close(); - }); + return; } + + dialogConfirm($q, async () => { + const body = { + personalId: props?.dataRows?.id, + node: dataPosMaster.node, + nodeId: dataPosMaster.nodeId, + orgRevisionId: formActive.activeId, + positionId: selectedPos.value[0].id, + posMasterNo: dataPosMaster.posMasterNo, //ตำแหน่งเลขที่(เลขอย่่างเดียว) + positionName: selectedPos.value[0].positionName, //ชื่อตำแหน่ง + positionField: selectedPos.value[0].positionField, //ชื่อตำแหน่ง + posTypeId: selectedPos.value[0].posTypeId, //ชื่อตำแหน่ง + posTypeName: selectedPos.value[0].posTypeName, //ชื่อตำแหน่ง + posLevelId: selectedPos.value[0].posLevelId, //ชื่อตำแหน่ง + posLevelName: selectedPos.value[0].posLevelName, //ชื่อตำแหน่ง + posExecutiveName: selectedPos.value[0].posExecutiveName, //ชื่อตำแหน่ง + reportingDate: convertDateToAPI(datePos.value), + posmasterId: dataPosMaster.id, + typeCommand: type.value, + positionExecutiveField: selectedPos.value[0].positionExecutiveField, //ด้านทางการบริหาร + positionArea: selectedPos.value[0].positionArea, //ด้าน/สาขา + }; + + await props.onSubmit?.(body); + close(); + }); } function onSearch() { @@ -564,7 +568,7 @@ onMounted(async () => { {