wOffice.vue 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <template>
  2. <el-dialog
  3. title="文档查看"
  4. :visible.sync="dialogVisibleOffice"
  5. :append-to-body="true"
  6. width="95%"
  7. :before-close="handleClose"
  8. class="dialog_diy"
  9. >
  10. <div style="height: 100%">
  11. <iframe
  12. ref="viframe"
  13. style="width: 100%; height: 99%; border: none"
  14. :src="'https://view.officeapps.live.com/op/view.aspx?src=' + encodeURIComponent(url)"
  15. ></iframe>
  16. </div>
  17. <span slot="footer" class="dialog-footer">
  18. <el-button @click="close()">关 闭</el-button>
  19. </span>
  20. </el-dialog>
  21. </template>
  22. <script>
  23. export default {
  24. props: {
  25. dialogVisibleOffice: {
  26. type: Boolean,
  27. default: false
  28. },
  29. url: {
  30. type: String
  31. }
  32. },
  33. data() {
  34. return {}
  35. },
  36. methods: {
  37. handleClose(done) {
  38. this.close()
  39. done()
  40. },
  41. close() {
  42. this.$emit('update:dialogVisibleOffice', false)
  43. }
  44. }
  45. }
  46. </script>
  47. <style lang="scss" scoped>
  48. /deep/.dialog_diy .el-dialog {
  49. height: 100%;
  50. margin: 0 auto !important;
  51. }
  52. /deep/.dialog_diy .el-dialog__header {
  53. background: #454545 !important;
  54. padding: 15px 20px;
  55. }
  56. /deep/.dialog_diy .el-dialog__body {
  57. height: calc(100% - 124px);
  58. box-sizing: border-box;
  59. padding: 0px;
  60. }
  61. /deep/.dialog_diy .el-dialog__title {
  62. color: #fff;
  63. }
  64. /deep/.dialog_diy .el-dialog__headerbtn {
  65. top: 19px;
  66. }
  67. /deep/.dialog_diy .el-dialog__headerbtn .el-dialog__close {
  68. color: #fff;
  69. }
  70. /deep/.dialog_diy .el-dialog__headerbtn .el-dialog__close:hover {
  71. color: #fff;
  72. }
  73. /deep/.dialog_diy .el-dialog__body,
  74. /deep/.dialog_diy .el-dialog__footer {
  75. background: #fafafa;
  76. }
  77. </style>