AkSkDownload.vue 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <template>
  2. <base-dialog @cancel="cancelDialog">
  3. <div slot="header">{{ $t('cloudenv.aksk.download') }}</div>
  4. <div slot="body">
  5. <a-alert :message="$t('cloudenv.aksk.download_tip')" />
  6. </div>
  7. <div slot="footer">
  8. <a-button type="primary" @click="handleConfirm" :loading="loading">{{ $t('cloudenv.aksk.download') }}</a-button>
  9. <a-button @click="cancelDialog">{{ $t('dialog.cancel') }}</a-button>
  10. </div>
  11. </base-dialog>
  12. </template>
  13. <script>
  14. import XLSX from 'xlsx'
  15. import DialogMixin from '@/mixins/dialog'
  16. import WindowsMixin from '@/mixins/windows'
  17. export default {
  18. name: 'AkskDownloadDialog',
  19. mixins: [DialogMixin, WindowsMixin],
  20. data () {
  21. return {
  22. }
  23. },
  24. methods: {
  25. async handleConfirm () {
  26. const filename = `${this.$t('cloudenv.aksk')}.xlsx`
  27. const aksk = this.params.data
  28. const data = [
  29. ['Access Key', 'Secret'],
  30. [aksk.access_key, aksk.secret],
  31. ]
  32. const ws_name = 'Sheet1'
  33. const wb = XLSX.utils.book_new()
  34. const ws = XLSX.utils.aoa_to_sheet(data)
  35. XLSX.utils.book_append_sheet(wb, ws, ws_name)
  36. XLSX.writeFile(wb, filename)
  37. this.cancelDialog()
  38. },
  39. },
  40. }
  41. </script>