index.vue 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <template>
  2. <div @click.stop>
  3. <el-dialog
  4. title="超链接"
  5. :visible.sync="dialogVisible"
  6. :width="dialogW"
  7. :modal="true"
  8. :modal-append-to-body="false"
  9. :append-to-body="true"
  10. class="bs-dialog-wrap bs-el-dialog"
  11. @close="close"
  12. >
  13. <div
  14. class="el-dialog-div"
  15. :style="{height: dialogH}"
  16. >
  17. <iframe
  18. :src="url"
  19. width="100%"
  20. height="100%"
  21. style="border: none;margin: -2px 0"
  22. />
  23. </div>
  24. </el-dialog>
  25. </div>
  26. </template>
  27. <script>
  28. export default {
  29. name: 'IframeDialogPreview',
  30. props: {
  31. // 卡片的属性
  32. config: {
  33. type: Object,
  34. default: () => ({})
  35. }
  36. },
  37. data () {
  38. return {
  39. dialogVisible: false
  40. }
  41. },
  42. computed: {
  43. url () {
  44. return this.config?.customize?.url || ''
  45. },
  46. dialogW () {
  47. return this.config?.customize?.dialogW + 'px' || '1000px'
  48. },
  49. dialogH () {
  50. return this.config?.customize?.dialogH + 'px' || '500px'
  51. }
  52. },
  53. mounted () {
  54. },
  55. methods: {
  56. close () {
  57. this.dialogVisible = false
  58. }
  59. }
  60. }
  61. </script>
  62. <style lang="scss" scoped>
  63. .el-dialog-div{
  64. overflow: auto;
  65. }
  66. </style>