browseModal.vue 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <template>
  2. <span>
  3. <ele-modal
  4. :visible.sync="showEditFlag"
  5. :close-on-click-modal="false"
  6. custom-class="ele-dialog-form"
  7. append-to-body
  8. :fullscreen="true"
  9. :before-close="cancel"
  10. >
  11. <browse :url="fileUrl"></browse
  12. ></ele-modal>
  13. <!-- <el-link type="primary" @click="open">{{ text }}</el-link> -->
  14. <el-link v-if="!browseShow" type="primary" @click="open">{{
  15. text
  16. }}</el-link>
  17. </span>
  18. </template>
  19. <script>
  20. import { getToken } from '@/utils/token-util';
  21. import { getJmPrintViewUrl } from './api.js';
  22. import browse from './browse.vue';
  23. export default {
  24. components: {
  25. browse
  26. },
  27. props: {
  28. text: {
  29. default: '打印预览'
  30. },
  31. businessId: {
  32. default: ''
  33. },
  34. businessCode: {
  35. default: ''
  36. },
  37. roleName: {
  38. type: String,
  39. default: ''
  40. },
  41. // *** 公共按钮形式触发
  42. browseShow: {
  43. type: Boolean,
  44. default: false
  45. }
  46. },
  47. data() {
  48. return {
  49. fileUrl: '',
  50. showEditFlag: false
  51. };
  52. },
  53. // *** 新增
  54. mounted() {
  55. if (this.browseShow) {
  56. // this.showEditFlag = this.browseShow;
  57. this.open();
  58. }
  59. },
  60. methods: {
  61. async open() {
  62. this.showEditFlag = true;
  63. let url = await getJmPrintViewUrl(this.businessCode);
  64. console.log(this.roleName);
  65. this.fileUrl = `${url}?token=${getToken()}&id=${this.businessId}&userName=${this.roleName}`;
  66. },
  67. // *** 新增
  68. cancel() {
  69. this.showEditFlag = false;
  70. if (this.browseShow) {
  71. this.$emit('cancelQuo');
  72. }
  73. }
  74. }
  75. };
  76. </script>
  77. <style scoped lang="scss"></style>