From f9ff464e7e613fb5edfe39cc48c41529baf914e3 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Thu, 14 Nov 2024 15:43:10 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B9=80=E0=B8=9E=E0=B8=B4=E0=B9=88=E0=B8=A1?= =?UTF-8?q?=E0=B9=81=E0=B8=AA=E0=B8=94=E0=B8=87=E0=B8=95=E0=B8=B3=E0=B9=81?= =?UTF-8?q?=E0=B8=AB=E0=B8=99=E0=B9=88=E0=B8=87=E0=B8=95=E0=B8=B4=E0=B8=94?= =?UTF-8?q?=E0=B9=80=E0=B8=87=E0=B8=B7=E0=B9=88=E0=B8=AD=E0=B8=99=E0=B9=84?= =?UTF-8?q?=E0=B8=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Dialogs/DialogOrgSelect.vue | 15 ++++++++------- .../Dialogs/DialogOrgSelectEmployee.vue | 14 ++++++++------ src/interface/request/orgSelect/org.ts | 4 +++- .../components/PersonalList/CardPosition.vue | 6 ++++-- .../components/PersonalList/DialogSelectOrg.vue | 4 +++- .../05_placement/interface/index/SelectOrg.ts | 1 + .../05_placement/interface/response/SelectOrg.ts | 13 +++++++++++-- src/modules/05_placement/stores/storeSelect.ts | 5 ++++- 8 files changed, 42 insertions(+), 20 deletions(-) diff --git a/src/components/Dialogs/DialogOrgSelect.vue b/src/components/Dialogs/DialogOrgSelect.vue index 014bd7d7e..dc2ce42d9 100644 --- a/src/components/Dialogs/DialogOrgSelect.vue +++ b/src/components/Dialogs/DialogOrgSelect.vue @@ -282,11 +282,14 @@ async function getDataTable(id: string, level: number = 0) { positionName: e.positionName, posTypeName: e.posTypeName, posLevelName: e.posLevelName, - positionIsSelected: e.fullNameCurrentHolder, + positionIsSelected: e.fullNameCurrentHolder + ? e.fullNameCurrentHolder + : "-", isSit: e.isSit, positions: e.positions, node: e.node, nodeId: e.nodeId, + isCondition: e.isCondition, })); positionNo.value = listPosNo; @@ -652,7 +655,6 @@ onMounted(async () => { map-options :options="columns" option-value="name" - style="min-width: 140px" /> @@ -692,11 +694,10 @@ onMounted(async () => { :key="col.name" :props="props" @click="onClickSelectPos(props.row.id)" - :class=" - props.row.id === positionId - ? 'bg-blue-2' - : '' - " + :class="{ + 'text-red': props.row.isCondition === true, + 'bg-blue-2': props.row.id === positionId, + }" >
{{ props.rowIndex + 1 }} diff --git a/src/components/Dialogs/DialogOrgSelectEmployee.vue b/src/components/Dialogs/DialogOrgSelectEmployee.vue index ab718ed46..90015b3bc 100644 --- a/src/components/Dialogs/DialogOrgSelectEmployee.vue +++ b/src/components/Dialogs/DialogOrgSelectEmployee.vue @@ -267,11 +267,14 @@ async function getDataTable(id: string, level: number = 0) { positionName: e.positionName, posTypeName: e.posTypeName, posLevelName: e.posLevelName, - positionIsSelected: e.fullNameCurrentHolder, + positionIsSelected: e.fullNameCurrentHolder + ? e.fullNameCurrentHolder + : "-", isSit: e.isSit, positions: e.positions, node: e.node, nodeId: e.nodeId, + isCondition: e.isCondition, })); positionNo.value = listPosNo; @@ -666,11 +669,10 @@ onMounted(() => { :key="col.name" :props="props" @click="onClickSelectPos(props.row.id)" - :class=" - props.row.id === positionId - ? 'bg-blue-2' - : '' - " + :class="{ + 'text-red': props.row.isCondition === true, + 'bg-blue-2': props.row.id === positionId, + }" >
{{ props.rowIndex + 1 }} diff --git a/src/interface/request/orgSelect/org.ts b/src/interface/request/orgSelect/org.ts index 7ff7c685e..326c38b7c 100644 --- a/src/interface/request/orgSelect/org.ts +++ b/src/interface/request/orgSelect/org.ts @@ -72,6 +72,7 @@ interface PositionMain { positions: Positions[]; node: number; nodeId: string; + isCondition: boolean; } interface PositionNo { @@ -110,9 +111,10 @@ interface DataPositionNo { positionName: string; posTypeName: string; posLevelName: string; - positionIsSelected: string | null; + positionIsSelected: string; isSit: boolean; positions: Positions[]; + isCondition: boolean; } interface FormActive { diff --git a/src/modules/05_placement/components/PersonalList/CardPosition.vue b/src/modules/05_placement/components/PersonalList/CardPosition.vue index 743447df6..dfe86b941 100644 --- a/src/modules/05_placement/components/PersonalList/CardPosition.vue +++ b/src/modules/05_placement/components/PersonalList/CardPosition.vue @@ -367,7 +367,6 @@ onMounted(async () => { map-options :options="columns" option-value="name" - style="min-width: 140px" />
@@ -402,7 +401,10 @@ onMounted(async () => { :key="col.name" :props="props" @click="onClickSelectPos(props.row.id)" - :class="props.row.id === positionId ? 'bg-blue-2' : ''" + :class="{ + 'bg-blue-2': props.row.id === positionId, + 'text-red': props.row.isCondition === true, + }" >
{{ props.rowIndex + 1 }} diff --git a/src/modules/05_placement/components/PersonalList/DialogSelectOrg.vue b/src/modules/05_placement/components/PersonalList/DialogSelectOrg.vue index 62072f224..a3d266a63 100644 --- a/src/modules/05_placement/components/PersonalList/DialogSelectOrg.vue +++ b/src/modules/05_placement/components/PersonalList/DialogSelectOrg.vue @@ -160,6 +160,7 @@ async function fetchDataTable(id: string, level: number = 0) { const newUse = positionUse.value.filter( (e) => e !== props.dataRow?.posmasterId ); + positionNo.value = posMain.filter((e: any) => !newUse.includes(e.id)); } else { positionNo.value = posMain.filter( @@ -266,6 +267,7 @@ function clearData() { posType.value = null; posLevel.value = ""; isPosition.value = "exam"; + filterTree.value = ""; } /** callback function เมื่อมีการเปิด popup*/ @@ -403,7 +405,7 @@ onMounted(() => { default-expand-all :nodes="lazy" node-key="orgTreeId" - label-key="orgTreeName" + label-key="labelName" :filter="filterTree" no-results-label="ไม่พบข้อมูลที่ค้นหา" no-nodes-label="ไม่มีข้อมูล" diff --git a/src/modules/05_placement/interface/index/SelectOrg.ts b/src/modules/05_placement/interface/index/SelectOrg.ts index 5fb2269ca..74040c0c0 100644 --- a/src/modules/05_placement/interface/index/SelectOrg.ts +++ b/src/modules/05_placement/interface/index/SelectOrg.ts @@ -8,6 +8,7 @@ interface DataPositionNo { positionIsSelected: string | null; isSit: boolean; positions: Positions[]; + isCondition: boolean; } interface Positions { diff --git a/src/modules/05_placement/interface/response/SelectOrg.ts b/src/modules/05_placement/interface/response/SelectOrg.ts index bffe3095d..5ae78dac6 100644 --- a/src/modules/05_placement/interface/response/SelectOrg.ts +++ b/src/modules/05_placement/interface/response/SelectOrg.ts @@ -73,6 +73,7 @@ interface PositionMaim { positions: Positions[]; node: number; nodeId: string; + isCondition: boolean; } interface PositionNo { @@ -114,8 +115,16 @@ interface FormPosLevel { interface FormPosType { id: string; posTypeName: string; - posTypeRank: number|null; + posTypeRank: number | null; posLevels: FormPosLevel[]; } -export type { DataList, PositionMaim, PositionNo, Positions, TreeMain,FormPosType ,FormPosLevel}; +export type { + DataList, + PositionMaim, + PositionNo, + Positions, + TreeMain, + FormPosType, + FormPosLevel, +}; diff --git a/src/modules/05_placement/stores/storeSelect.ts b/src/modules/05_placement/stores/storeSelect.ts index 7966eb63c..37a56cf04 100644 --- a/src/modules/05_placement/stores/storeSelect.ts +++ b/src/modules/05_placement/stores/storeSelect.ts @@ -20,11 +20,14 @@ export const useSelectOrgStore = defineStore("selectorg", () => { positionName: e.positionName, posTypeName: e.posTypeName, posLevelName: e.posLevelName, - positionIsSelected: e.positionIsSelected ? e.fullNameCurrentHolder : "-", + positionIsSelected: e.fullNameCurrentHolder + ? e.fullNameCurrentHolder + : "-", isSit: e.isSit, positions: e.positions, node: e.node, nodeId: e.nodeId, + isCondition: e.isCondition, })); return listPosNo;