Browse Source

خروجی اکسل دنبال کنندگان

hgh 1 năm trước cách đây
mục cha
commit
caea349e47
2 tập tin đã thay đổi với 45 bổ sung và 1 xóa
  1. 19 1
      src/api/models/Subscription.js
  2. 26 0
      src/pages/Admin/Unit/show.vue

+ 19 - 1
src/api/models/Subscription.js

@@ -9,7 +9,8 @@ export default class SubscriptionAPI extends APIRepository {
       base: '/mma/subscriptions',
       byId: (id) => '/mma/subscriptions/' + id,
       myCorrespondingSubscription: '/mma/subscriptions/my_corresponding_subscription',
-      sendMessage: '/mma/subscriptions/send_message'
+      sendMessage: '/mma/subscriptions/send_message',
+      exportReport: '/mma/subscriptions/export_report'
     }
     this.restUrl = (id) => this.url + '/' + id
     /* Setting the callback functions for the CRUD operations. */
@@ -69,6 +70,23 @@ export default class SubscriptionAPI extends APIRepository {
     })
   }
 
+  exportSubscriptionsListReport(data) {
+    return this.sendRequest({
+      apiMethod: 'get',
+      api: this.api,
+      request: this.APIAdresses.exportReport,
+      data: this.getNormalizedSendData({
+        source_type: 'UNIT' //
+      }, data),
+      resolveCallback: (response) => {
+        return response.data // xlsxData
+      },
+      rejectCallback: (error) => {
+        return error
+      }
+    })
+  }
+
   submit (data) {
     return this.sendRequest({
       apiMethod: 'post',

+ 26 - 0
src/pages/Admin/Unit/show.vue

@@ -204,6 +204,13 @@
           <template #toolbar>
             <div class="flex justify-end">
               <q-btn color="primary"
+                     outline
+                     :loading="exportReportLoading"
+                     @click="getSubscriptionsListExcel">
+                خروجی اکسل
+              </q-btn>
+              <q-btn class="q-ml-sm"
+                     color="primary"
                      label="ارسال پیام"
                      @click="showAlertDialog = true" />
             </div>
@@ -290,6 +297,7 @@ import PostRequisites from 'src/components/Control/PostRequisites.vue'
 import FormBuilderInputEditor from 'src/components/FormBuilderCustumComponents/FormBuilderInputEditor.vue'
 import { FormBuilderAssist } from 'quasar-form-builder'
 import BtnControl from 'src/components/Control/btn.vue'
+import Assist from 'assets/js/Assist'
 
 const PostRequisitesComp = shallowRef(PostRequisites)
 const FormBuilderInputEditorComp = shallowRef(FormBuilderInputEditor)
@@ -307,6 +315,7 @@ export default {
     return {
       tab: 'UnitInfo',
       mounted: false,
+      exportReportLoading: false,
       showAlertDialog: false,
       alertMessageText: '',
       sendingAlertConfirmation: false,
@@ -586,6 +595,23 @@ export default {
     this.mounted = true
   },
   methods: {
+    getSubscriptionsListExcel () {
+      this.exportReportLoading = true
+      const status = null
+      APIGateway.subscription.exportSubscriptionsListReport({
+        source_type: 'UNIT',
+        source_id: this.$route.params.id,
+        report_type: 'subscriptions_list',
+        status
+      })
+        .then((xlsxData) => {
+          Assist.saveXlsx(xlsxData, this.$route.params.id)
+          this.exportReportLoading = false
+        })
+        .catch((e) => {
+          this.exportReportLoading = false
+        })
+    },
     sendAlertMessage() {
       if (!this.alertMessageText.trim()) {
         this.$q.notify({