diff --git a/src/api/02_organizational/api.organization.ts b/src/api/02_organizational/api.organization.ts index 520ca9db7..fb85cff32 100644 --- a/src/api/02_organizational/api.organization.ts +++ b/src/api/02_organizational/api.organization.ts @@ -25,6 +25,7 @@ export default { orgPosMasterById: (id: string) => `${orgPos}/master/${id}`, orgPosMasterList: `${orgPos}/master/list`, orgPosSort: `${orgPos}/sort`, + orgPosMove: `${orgPos}/move`, organizationShortName: `${organization}/sort`, organizationPublishGet: `${organization}/get/publish`, }; diff --git a/src/modules/02_organizationalNew/components/DialogMovePos.vue b/src/modules/02_organizationalNew/components/DialogMovePos.vue new file mode 100644 index 000000000..fe44ad51a --- /dev/null +++ b/src/modules/02_organizationalNew/components/DialogMovePos.vue @@ -0,0 +1,264 @@ + + + + diff --git a/src/modules/02_organizationalNew/components/listView.vue b/src/modules/02_organizationalNew/components/listView.vue index 6eaf9a271..ec060f33d 100644 --- a/src/modules/02_organizationalNew/components/listView.vue +++ b/src/modules/02_organizationalNew/components/listView.vue @@ -32,6 +32,7 @@ const count = defineModel("count", { required: true }); const nodeId = ref(""); // id ของ Tree const orgLevel = ref(0); // levelTree const isLoad = ref(false); // loadTable +const selected = ref(""); const nodeData = ref(); const reqMaster = reactive({ id: "", @@ -51,14 +52,14 @@ const posMaster = ref([]); */ async function fetchDataTree(id: string) { showLoader(); - // const id = - // store.typeOrganizational === "current" ? store.activeId : store.draftId; - // id && + await http .get(config.API.orgByid(id.toString())) .then((res) => { const data = res.data.result; nodeTree.value = data; + selected.value = ""; + nodeId.value = ""; }) .catch((err) => { messageError($q, err); @@ -66,7 +67,6 @@ async function fetchDataTree(id: string) { .finally(() => { hideLoader(); }); - // console.log(nodeTree.value); } /** @@ -172,6 +172,7 @@ watch( v-model:nodeTree="nodeTree" v-model:nodeId="nodeId" v-model:isLoad="isLoad" + v-model:selected="selected" :fetchDataTree="fetchDataTree" :fetchDataTable="fetchDataTable" /> @@ -197,6 +198,7 @@ watch(
diff --git a/src/modules/02_organizationalNew/components/mainTree.vue b/src/modules/02_organizationalNew/components/mainTree.vue index 1f4cdfb8c..824db0407 100644 --- a/src/modules/02_organizationalNew/components/mainTree.vue +++ b/src/modules/02_organizationalNew/components/mainTree.vue @@ -86,6 +86,7 @@ const listAdd = ref([ const nodeTEST = defineModel("nodeTree", { default: [] }); const nodeId = defineModel("nodeId", { required: true }); const isLoad = defineModel("isLoad", { required: true }); +const selected = defineModel("selected", { required: true }); const filter = ref(""); const nodes = ref>([]); @@ -94,7 +95,7 @@ const lazy = ref(nodes); const expanded = ref>([]); const notFound = ref("ไม่พบข้อมูลที่ค้นหา"); const noData = ref("ไม่มีข้อมูล"); -const selected = ref(""); +// const selected = ref(""); const orgLevel = ref(0); const type = ref(0); const orgId = ref(""); diff --git a/src/modules/02_organizationalNew/components/tableTree.vue b/src/modules/02_organizationalNew/components/tableTree.vue index a59dc0125..f143b4837 100644 --- a/src/modules/02_organizationalNew/components/tableTree.vue +++ b/src/modules/02_organizationalNew/components/tableTree.vue @@ -17,6 +17,7 @@ import type { PosMaster2 } from "@/modules/02_organizationalNew/interface/respon import DialogFormPosotion from "@/modules/02_organizationalNew/components/DialogFormPosition.vue"; import DialogPositionDetail from "@/modules/02_organizationalNew/components/PositionDetail.vue"; import DialogSort from "@/modules/02_organizationalNew/components/DialogSortPosition.vue"; +import DialogMovePos from "@/modules/02_organizationalNew/components/DialogMovePos.vue"; /** importStore*/ import { useOrganizational } from "@/modules/02_organizationalNew/store/organizational"; @@ -33,20 +34,22 @@ const props = defineProps({ require: true, default: () => {}, }, + fetchDataTree: { + type: Function, + require: true, + default: () => {}, + }, }); -const dataSort = ref>([]); const modalSort = ref(false); -const showAllData = ref(false); -const currentPage = ref(1); +const nodeTree = defineModel("nodeTree", { required: true }); const orgLevel = defineModel("orgLevel", { required: true }); const treeId = defineModel("treeId", { required: true }); const reqMaster = defineModel("reqMaster", { required: true }); const totalPage = defineModel("totalPage", { required: true }); const posMaster = defineModel("posMaster", { required: true }); const stroe = useOrganizational(); -const filter = ref(""); const actionType = ref(""); const listMenu = ref([ { @@ -61,6 +64,12 @@ const listMenu = ref([ type: "DEL", color: "red", }, + { + label: "ย้ายตำแหน่ง", + icon: "mdi-cursor-move", + type: "MOVE", + color: "positive", + }, { label: "ดูรายละเอียด", icon: "mdi-eye", @@ -247,6 +256,15 @@ function onClickDelete(id: string) { function onClickSort() { modalSort.value = true; } + +const modalDialogMMove = ref(false); +const typeMove = ref(""); + +function onClickMovePos(id: string, type: string) { + modalDialogMMove.value = !modalDialogMMove.value; + typeMove.value = type; + rowId.value = id; +} function updatePagination(newPagination: NewPagination) { reqMaster.value.pageSize = newPagination.rowsPerPage; reqMaster.value.page = 1; @@ -278,6 +296,17 @@ function updatePagination(newPagination: NewPagination) { > จัดลำดับ + + + ย้ายตำแหน่ง +
@@ -395,6 +424,8 @@ function updatePagination(newPagination: NewPagination) { ? onClickPosition('EDIT', props.row.id) : item.type === 'DEL' ? onClickDelete(props.row.id) + : item.type === 'MOVE' + ? onClickMovePos(props.row.id, 'SINGER') : null " > @@ -502,6 +533,10 @@ function updatePagination(newPagination: NewPagination) { + + + + - - + + + +