audit-advanced-export.vue 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. <template>
  2. <span>
  3. <slot></slot>
  4. <a-button v-if="vIf" :class="classStyle" @click="exportdata">导出</a-button>
  5. </span>
  6. </template>
  7. <script>
  8. import download from '@/common/services/download'
  9. import { Modal } from 'ant-design-vue'
  10. import AuditAdvancedExportService from './audit-advanced-export-service'
  11. import components from './_import-components/audit-advanced-export-import'
  12. export default {
  13. name: 'AuditAdvancedExport',
  14. metaInfo: {
  15. title: 'AuditAdvancedExport',
  16. },
  17. components,
  18. props: {
  19. /*
  20. expressions 搜索表达式
  21. */
  22. expressions: {
  23. type: Array,
  24. default: () => [],
  25. },
  26. classStyle: {
  27. type: Array,
  28. default: null,
  29. },
  30. tableId: {
  31. type: String,
  32. default: '',
  33. },
  34. /**
  35. * 系统维护的配置表ID
  36. */
  37. configId: {
  38. Type: Number,
  39. default: 1,
  40. },
  41. /**
  42. * 判断导出按钮 显示条件,为true 则显示
  43. */
  44. vIf: {
  45. Type: Boolean,
  46. default: false,
  47. },
  48. /**
  49. * 必须选行判断标志,如果是定制的导出,不需要必选行,则传false,默认是必会判断是否选择导出行
  50. */
  51. exclebxh: {
  52. Type: Boolean,
  53. default: true,
  54. },
  55. },
  56. data() {
  57. return {}
  58. },
  59. methods: {
  60. exportdata1() {
  61. let selectedRowKeys = []
  62. if (this.exclebxh) {
  63. selectedRowKeys = this.$parent.$parent.$refs[`${this.tableId}`].getSelectedRowKeys()
  64. // if (selectedRowKeys.length === 0) {
  65. // Modal.warning({
  66. // title: '提示',
  67. // content: '请选择导出文档!',
  68. // })
  69. // return false
  70. // }
  71. }
  72. let exs = []
  73. if (this.expressions !== null) {
  74. exs = this.expressions
  75. }
  76. const params = {
  77. configId: this.configId,
  78. selectIds: selectedRowKeys,
  79. expressions: exs,
  80. }
  81. AuditAdvancedExportService.Export(params).then((res) => {
  82. if (res.status === 200) {
  83. const url = URL.createObjectURL(res.data)
  84. const filename = res.headers['content-disposition']
  85. const fname = filename.substring(filename.indexOf('filename=') + 9, filename.length)
  86. download(url, decodeURI(fname))
  87. } else {
  88. Modal.warning({
  89. title: '提示',
  90. content: '导出报错,请联系管理员!',
  91. })
  92. return false
  93. }
  94. })
  95. },
  96. exportdata() {
  97. let selectedRowKeys = []
  98. if (this.exclebxh) {
  99. selectedRowKeys = this.$parent.$parent.$refs[`${this.tableId}`].getSelectedRowKeys()
  100. if (selectedRowKeys.length === 0) {
  101. Modal.warning({
  102. title: '提示',
  103. content: '请选择导出文档!',
  104. })
  105. return false
  106. }
  107. }
  108. let exs = []
  109. if (this.expressions !== null) {
  110. exs = this.expressions
  111. }
  112. const params = {
  113. configId: this.configId,
  114. selectIds: selectedRowKeys,
  115. expressions: exs,
  116. }
  117. AuditAdvancedExportService.Export(params).then((res) => {
  118. if (res.status === 200) {
  119. const url = URL.createObjectURL(res.data)
  120. const filename = res.headers['content-disposition']
  121. const fname = filename.substring(filename.indexOf('filename=') + 9, filename.length)
  122. download(url, decodeURI(fname))
  123. } else {
  124. Modal.warning({
  125. title: '提示',
  126. content: '导出报错,请联系管理员!',
  127. })
  128. return false
  129. }
  130. })
  131. },
  132. exportdataRisk() {
  133. let selectedRowKeys = []
  134. if (this.exclebxh) {
  135. selectedRowKeys = this.$parent.$refs[`${this.tableId}`].getSelectedRowKeys()
  136. if (selectedRowKeys.length === 0) {
  137. Modal.warning({
  138. title: '提示',
  139. content: '请选择导出文档!',
  140. })
  141. return false
  142. }
  143. }
  144. let exs = []
  145. if (this.expressions !== null) {
  146. exs = this.expressions
  147. }
  148. const params = {
  149. configId: this.configId,
  150. selectIds: selectedRowKeys,
  151. expressions: exs,
  152. }
  153. AuditAdvancedExportService.ExportRisk(params).then((res) => {
  154. if (res.status === 200) {
  155. const url = URL.createObjectURL(res.data)
  156. const filename = res.headers['content-disposition']
  157. const fname = filename.substring(filename.indexOf('filename=') + 9, filename.length)
  158. download(url, decodeURI(fname))
  159. } else {
  160. Modal.warning({
  161. title: '提示',
  162. content: '导出报错,请联系管理员!',
  163. })
  164. return false
  165. }
  166. })
  167. },
  168. },
  169. }
  170. </script>
  171. <style module lang="scss">
  172. @use '@/common/design' as *;
  173. </style>