diff --git a/src/api/02_organizational/api.organization.ts b/src/api/02_organizational/api.organization.ts
index 520ca9db7..4cbb005c1 100644
--- a/src/api/02_organizational/api.organization.ts
+++ b/src/api/02_organizational/api.organization.ts
@@ -27,4 +27,6 @@ export default {
orgPosSort: `${orgPos}/sort`,
organizationShortName: `${organization}/sort`,
organizationPublishGet: `${organization}/get/publish`,
+
+ orgPosExecutiveById:(id:string)=> `${orgPos}/executive/${id}`,
};
diff --git a/src/modules/01_metadataNew/components/position/04ListExecutive.vue b/src/modules/01_metadataNew/components/position/04ListExecutive.vue
index 0e98b7230..257260bed 100644
--- a/src/modules/01_metadataNew/components/position/04ListExecutive.vue
+++ b/src/modules/01_metadataNew/components/position/04ListExecutive.vue
@@ -1,3 +1,242 @@
+
+
- ตำแหน่งทางการบริหาร
-
\ No newline at end of file
+
+ รายการตำแหน่งทางการบริหาร
+
+
+
+
+ เพิ่มตำแหน่งทางการบริหาร
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/modules/01_metadataNew/components/position/DialogAddExecutive.vue b/src/modules/01_metadataNew/components/position/DialogAddExecutive.vue
new file mode 100644
index 000000000..fe3e144aa
--- /dev/null
+++ b/src/modules/01_metadataNew/components/position/DialogAddExecutive.vue
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/modules/01_metadataNew/components/position/DialogAddPosition.vue b/src/modules/01_metadataNew/components/position/DialogAddPosition.vue
index 5c8203153..b28f5455b 100644
--- a/src/modules/01_metadataNew/components/position/DialogAddPosition.vue
+++ b/src/modules/01_metadataNew/components/position/DialogAddPosition.vue
@@ -7,7 +7,7 @@ import type { QTableProps } from "quasar";
import DialogHeader from "@/components/DialogHeader.vue";
import type {
DataOption,
- FormPositionSelect,
+ FormPositionSelectDialog,
FormPositionSelectRef,
OptionType,
OptionLevel,
@@ -21,7 +21,7 @@ const typeOps = ref([]);
const typeOpsMain = ref([]);
const dataLevel = ref();
const executiveOps = ref([]);
-const formPositionSelect = reactive({
+const formPositionSelect = reactive({
positionId: "",
positionName: "",
positionField: "",
diff --git a/src/modules/01_metadataNew/interface/request/position/index.ts b/src/modules/01_metadataNew/interface/request/position/index.ts
index 39a89f3d4..a2e118be1 100644
--- a/src/modules/01_metadataNew/interface/request/position/index.ts
+++ b/src/modules/01_metadataNew/interface/request/position/index.ts
@@ -7,7 +7,7 @@ interface DataOption {
name: string;
}
-interface FormPositionSelect {
+interface FormPositionSelectDialog {
positionId: string;
positionName: string;
positionField: string;
@@ -28,6 +28,12 @@ interface FormPositionSelectRef {
positionArea: object | null;
[key: string]: any;
}
+interface FormExecutiveRef {
+ posExecutiveName: object | null;
+ posExecutivePriority: object | null;
+
+ [key: string]: any;
+}
interface OptionType {
id: string;
@@ -77,10 +83,18 @@ interface RowDetailPositions {
posExecutiveId: string;
}
+interface RowListForm {
+ id:string
+ posExecutiveName: string
+ posExecutivePriority: number|null
+}
export type {
Pagination, DataOption, FormPositionSelect, FormPositionSelectRef, OptionType, OptionLevel,
OptionExecutive,
ListMenu,
- RowDetailPositions
+ RowDetailPositions,
+ RowListForm,
+ FormPositionSelectDialog,
+ FormExecutiveRef
};
diff --git a/src/modules/01_metadataNew/views/position.vue b/src/modules/01_metadataNew/views/position.vue
index e81d5fe97..162444198 100644
--- a/src/modules/01_metadataNew/views/position.vue
+++ b/src/modules/01_metadataNew/views/position.vue
@@ -4,7 +4,7 @@ import { ref, onMounted } from "vue";
import ListPosition from "@/modules/01_metadataNew/components/position/01ListPosition.vue";
import ListType from "@/modules/01_metadataNew/components/position/02ListType.vue";
import ListExecutive from "@/modules/01_metadataNew/components/position/04ListExecutive.vue";
-const currentTab = ref("list_position");
+const currentTab = ref("list_executive");
const tabs = ref>([]);
onMounted(() => {