diff --git a/src/components/modal/user/List.vue b/src/components/modal/user/List.vue index b5586f7..332073d 100644 --- a/src/components/modal/user/List.vue +++ b/src/components/modal/user/List.vue @@ -114,13 +114,23 @@ export default { }, async transfer() { try { - const result = await this.transferItem({ - itemId: this.getModalProperties.data.id, - userId: this.selected.id, - isUser: this.$hasRole('User') - }); - this.setResultModal(result); - this.closeModal(); + let result = {} + if (this.getModalProperties.type && this.getModalProperties.type === 'item') { + result = await this.transferItem({ + itemId: this.getModalProperties.data.id, + userId: this.selected.id, + isUser: this.$hasRole('User') + }); + } else if (this.getModalProperties.type && this.getModalProperties.type === 'package') { + result = await ApiService.post(urls.transferPackage(this.getModalProperties.data.id), { + user_id: this.selected.id, + }); + } + if (result && result.status === 200) { + this.setResultModal(result); + this.closeModal(); + return result; + } } catch (e) { console.error("Transfer failed:", e); } diff --git a/src/config/urls.js b/src/config/urls.js index 97d5000..b9dbcaa 100644 --- a/src/config/urls.js +++ b/src/config/urls.js @@ -183,6 +183,9 @@ const urls = { transferItem: function (id) { return `/transfer-items/${id}`; }, + transferPackage: function (id) { + return `/transfer-packages/${id}`; + }, removeItem: function (id) { return `Items/${id}`; }, diff --git a/src/views/Item/List.vue b/src/views/Item/List.vue index 6c613d9..772dced 100644 --- a/src/views/Item/List.vue +++ b/src/views/Item/List.vue @@ -44,7 +44,8 @@ Filter - + fas fa-share-square EXPORT @@ -288,8 +289,8 @@ export default { getStatus(item) { if (item.status === 'pending') { return [ - {status: 'approved', label: 'approve', color: 'cyan', font_color : 'white', icon: 'fa-check'}, - {status: 'rejected', label: 'reject', color: 'light-gray',font_color : 'black', icon: 'fa-close'}, + {status: 'approved', label: 'approve', color: 'cyan', font_color: 'white', icon: 'fa-check'}, + {status: 'rejected', label: 'reject', color: 'light-gray', font_color: 'black', icon: 'fa-close'}, ] } else { const nextStatus = item.status === 'rejected' ? 'approved' : 'rejected' @@ -316,7 +317,7 @@ export default { async transfer(data) { this.changeCurrentModal({ modal: "modal-user-list", - properties: {data}, + properties: {data, type: 'item'}, }); }, }, diff --git a/src/views/MyItem/List.vue b/src/views/MyItem/List.vue index bda7f0d..159bc57 100644 --- a/src/views/MyItem/List.vue +++ b/src/views/MyItem/List.vue @@ -235,7 +235,7 @@ export default { async transfer(data) { this.changeCurrentModal({ modal: "modal-user-list", - properties: {data}, + properties: {data, type: 'item'}, }); }, async generateBarcode(item, type = null) { diff --git a/src/views/MyPackage/List.vue b/src/views/MyPackage/List.vue index beb6800..3c30c88 100644 --- a/src/views/MyPackage/List.vue +++ b/src/views/MyPackage/List.vue @@ -22,17 +22,19 @@ Filter - + @@ -261,8 +263,8 @@ export default { getStatus(item) { if (item.status === 'pending') { return [ - {status: 'approved', label: 'approve', color: 'cyan' , font_color : 'white', icon: 'fa-check'}, - {status: 'rejected', label: 'reject', color: 'light-gray' ,font_color : 'black', icon: 'fa-close'}, + {status: 'approved', label: 'approve', color: 'cyan', font_color: 'white', icon: 'fa-check'}, + {status: 'rejected', label: 'reject', color: 'light-gray', font_color: 'black', icon: 'fa-close'}, ] } else { const nextStatus = item.status === 'rejected' ? 'approved' : 'rejected' @@ -293,11 +295,18 @@ export default { } }, async transfer(data) { - this.changeCurrentModal({ + const result = this.changeCurrentModal({ modal: "modal-user-list", - properties: {data}, + properties: {data, type:'package'}, }); - } + if (result && result.status === 200) { + for (const key in this.items) { + if (this.items.hasOwnProperty(key) && this.items[key].id === data.id) { + this.items.splice(key, 1); + } + } + } + }, }, computed: { ...mapGetters("modal", ["getModalResult"]) diff --git a/src/views/Package/List.vue b/src/views/Package/List.vue index f1314a7..ed50231 100644 --- a/src/views/Package/List.vue +++ b/src/views/Package/List.vue @@ -292,10 +292,17 @@ export default { } }, async transfer(data) { - this.changeCurrentModal({ + const result = this.changeCurrentModal({ modal: "modal-user-list", - properties: {data}, + properties: {data, type:'package'}, }); + if (result && result.status === 200) { + for (const key in this.items) { + if (this.items.hasOwnProperty(key) && this.items[key].id === data.id) { + this.items.splice(key, 1); + } + } + } }, async changeStatus(item, status) { const result = await ApiService.post(urls.changePackageStatus(item.id), {status})