Просмотр исходного кода

لیست سفارشات، خروجی داشته باشه.

HgH 1 год назад
Родитель
Сommit
a33f04e449

+ 21 - 2
src/api/models/Basket.js

@@ -5,7 +5,7 @@ import { Basket, BasketList } from 'src/models/Basket.js'
 
 export default class BasketAPI extends APIRepository {
   constructor() {
-    super('package', appApi)
+    super('basket', appApi, '/store/baskets', Basket)
     this.APIAdresses = {
       base: '/store/baskets',
       checkoutReview: '/store/baskets/checkout_review',
@@ -15,7 +15,8 @@ export default class BasketAPI extends APIRepository {
       setAddress: (id) => '/store/baskets/' + id + '/set_address',
       createInvoice: (id) => '/store/baskets/' + id + '/create_invoice',
       submitDiscountCode: (id) => '/store/baskets/' + id + '/submit_discount_code',
-      removeDiscountCode: (id) => '/store/baskets/' + id + '/remove_discount_code'
+      removeDiscountCode: (id) => '/store/baskets/' + id + '/remove_discount_code',
+      exportBasketReport: '/store/baskets/export_report'
     }
     this.CacheList = {
       base: this.name + this.APIAdresses.base
@@ -205,4 +206,22 @@ export default class BasketAPI extends APIRepository {
       }
     })
   }
+
+  exportBasketReport(data) {
+    return this.sendRequest({
+      apiMethod: 'get',
+      api: this.api,
+      request: this.APIAdresses.exportBasketReport,
+      data: this.getNormalizedSendData({
+        report_type: null // String
+      }, data),
+      responseType: 'blob',
+      resolveCallback: (response) => {
+        return response.data // xlsxData
+      },
+      rejectCallback: (error) => {
+        return error
+      }
+    })
+  }
 }

+ 22 - 0
src/components/Widgets/Store/Basket/AdminStoreBasketList/AdminStoreBasketList.vue

@@ -19,6 +19,13 @@
                   :show-search-button="false"
                   :show-expand-button="false"
                   :show-reload-button="false">
+      <template #toolbar>
+        <q-btn color="primary"
+               :loading="exportReportLoading"
+               @click="getBasketsListExcel">
+          دریافت
+        </q-btn>
+      </template>
       <template #entity-index-table-cell="{inputData}">
         <template v-if="inputData.col.name === 'number'">
           {{ inputData.rowNumber }}
@@ -174,6 +181,7 @@ export default {
         ]
       },
       mounted: false,
+      exportReportLoading: false,
       createRouteName: ''
     }
   },
@@ -183,6 +191,20 @@ export default {
   methods: {
     search () {
       this.$refs.entityIndex.search()
+    },
+    getBasketsListExcel () {
+      this.exportReportLoading = true
+      const filter = this.$refs.entityIndex.createParams()
+      filter.report_type = 'baskets_list'
+      APIGateway.basket.exportBasketReport(filter)
+        .then((xlsxData) => {
+          // Assist.saveXlsx(xlsxData, this.classroomId)
+          Assist.saveXlsx(xlsxData, 'سفارش ها')
+          this.exportReportLoading = false
+        })
+        .catch((e) => {
+          this.exportReportLoading = false
+        })
     }
   }
 }