diff --git a/src/api/manage/api.insignia.ts b/src/api/manage/api.insignia.ts index 1084b38c9..5fe13f047 100644 --- a/src/api/manage/api.insignia.ts +++ b/src/api/manage/api.insignia.ts @@ -35,4 +35,5 @@ export default { insigniaTypeNew: `${insigniaType}draft`, insigniaTypeNewId: (id: string) => `${insigniaType}${id}`, insigniaNewId: (id: string) => `${insignia}${id}`, + insigniaSort: (id: string) => `${insignia}sort/${id}`, }; diff --git a/src/modules/01_metadataNew/components/insignia/InsigniaDetail.vue b/src/modules/01_metadataNew/components/insignia/InsigniaDetail.vue index e9d957565..3d4502326 100644 --- a/src/modules/01_metadataNew/components/insignia/InsigniaDetail.vue +++ b/src/modules/01_metadataNew/components/insignia/InsigniaDetail.vue @@ -1,46 +1,11 @@ diff --git a/src/modules/01_metadataNew/components/insignia/InsigniaList.vue b/src/modules/01_metadataNew/components/insignia/InsigniaList.vue index cf7090275..776016ea9 100644 --- a/src/modules/01_metadataNew/components/insignia/InsigniaList.vue +++ b/src/modules/01_metadataNew/components/insignia/InsigniaList.vue @@ -13,20 +13,18 @@ const store = useInsigniaDataStore(); const router = useRouter(); const mixin = useCounterMixin(); -const props = defineProps({ - fetchData: { - type: Function, - default: ()=>"", - } -}) -const { - date2Thai, - dialogRemove, - dialogConfirm, - showLoader, - hideLoader, - messageError, -} = mixin; +// const props = defineProps({ +// fetchData: { +// type: Function, +// default: () => "", +// }, +// }); +const insigniaTypeName = defineModel("insigniaTypeName", { + required: true, +}); + +const { dialogRemove, dialogConfirm, showLoader, hideLoader, messageError } = + mixin; const $q = useQuasar(); const columns = ref([ { @@ -139,9 +137,9 @@ const id = ref(route.params.id.toString()); const filterKeyword = ref(""); const dialog = ref(false); const isActive = ref(false); -const name = ref(""); const shortName = ref(""); const note = ref(""); +const name = ref(""); const insigniaTypeId = ref(""); const nameRef = ref(null); const shortNameRef = ref(null); @@ -169,24 +167,25 @@ function validateForm() { onSubmit(); } -// async function fetchData(id: string) { -// showLoader(); -// await http -// .get(config.API.insigniaTypeNewId(id)) -// .then(async (res) => { -// insigniaTypeId.value = res.data.result.name; -// store.fetchData(res.data.result.insignias, res.data.result.name); -// }) -// .catch((err) => { -// messageError($q, err); -// }) -// .finally(() => { -// hideLoader(); -// }); -// } -// onMounted(async () => { -// fetchData(id.value); -// }); +async function fetchData(id: string) { + showLoader(); + await http + .get(config.API.insigniaTypeNewId(id)) + .then(async (res) => { + insigniaTypeId.value = res.data.result.name; + store.fetchData(res.data.result.insignias, res.data.result.name); + insigniaTypeName.value = res.data.result.name; + }) + .catch((err) => { + messageError($q, err); + }) + .finally(() => { + hideLoader(); + }); +} +onMounted(async () => { + await fetchData(id.value); +}); async function onSubmit() { if (name.value.length > 0 && shortName.value.length > 0) { @@ -214,7 +213,7 @@ async function addData() { note: note.value == "" ? "-" : note.value, insigniaTypeId: id.value, }); - props.fetchData(id.value); + fetchData(id.value); } async function editData(idData: string) { @@ -225,12 +224,12 @@ async function editData(idData: string) { note: note.value == "" ? "-" : note.value, insigniaTypeId: id.value, }); - props.fetchData(id.value); + fetchData(id.value); } async function deleteData(idData: string) { await http.delete(config.API.insigniaNewId(idData)); - props.fetchData(id.value); + fetchData(id.value); } import { defineEmits } from "vue"; @@ -265,7 +264,7 @@ const dialogOrder = ref(false); > จัดลำดับการแสดงผล - +
diff --git a/src/modules/01_metadataNew/components/insignia/TableDraggable.vue b/src/modules/01_metadataNew/components/insignia/TableDraggable.vue index 072e36723..8b2ddf837 100644 --- a/src/modules/01_metadataNew/components/insignia/TableDraggable.vue +++ b/src/modules/01_metadataNew/components/insignia/TableDraggable.vue @@ -42,6 +42,14 @@ const columns = ref([ sortable: true, }, ]); +const id = ref(route.params.id.toString()); + +const props = defineProps({ + fetchData: { + type: Function, + default: () => console.log("not function"), + }, +}); function onDrop(from: any, to: any) { onDropRow(from, to); @@ -53,24 +61,23 @@ function onDropRow(from: any, to: any) { } async function save() { - const dataPost = await rows.value.map((obj:any) => { - return obj.id; -}); - console.log("post data===>", dataPost); - modal.value = false - - // showLoader(); - // await http - // .put(config.API.insigniaTypeNewId(id), dataPost) - // .then(async (res) => { - // }) - // .catch((err) => { - // messageError($q, err); - // }) - // .finally(() => { - // hideLoader(); - store.row = rows.value - // }); + const dataPost = await rows.value.map((obj: any) => { + return obj.id; + }); + console.log("post data===> ", dataPost); + modal.value = false; + + showLoader(); + await http + .put(config.API.insigniaSort(id.value), { id: dataPost }) + .catch((err) => { + messageError($q, err); + }) + .finally(() => { + hideLoader(); + store.row = rows.value; + props.fetchData(id.value); + }); } async function onSubmit() {