index.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <template>
  2. <div>
  3. <div v-if="pageStatus == 0">配置加载中...</div>
  4. <div v-else-if="pageStatus == 1">此页面不对此账号开放</div>
  5. <div v-else-if="pageStatus == 2">没有此页内容的配置权限,请检查集团上的配置</div>
  6. <div v-else-if="pageStatus == 3">加载发生错误</div>
  7. <div v-else-if="pageStatus == 4" class="app-container">
  8. 你好
  9. <slot></slot>
  10. </div>
  11. </div>
  12. </template>
  13. <script>
  14. import { scrollTo } from "@/utils/scroll-to";
  15. import vueQr from "vue-qr";
  16. import html2canvas from "html2canvas";
  17. export default {
  18. name: "PermissionContainer",
  19. data() {
  20. return {
  21. pageStatus:4,
  22. };
  23. },
  24. props: {
  25. // page: {
  26. // type: Number,
  27. // default: 1,
  28. // },
  29. // limit: {
  30. // type: Number,
  31. // default: 10,
  32. // },
  33. // pageSizes: {
  34. // type: Array,
  35. // default() {
  36. // return [10, 20, 30, 50];
  37. // },
  38. // },
  39. // layout: {
  40. // type: String,
  41. // default: "total, sizes, prev, pager, next, jumper",
  42. // },
  43. // background: {
  44. // type: Boolean,
  45. // default: true,
  46. // },
  47. // autoScroll: {
  48. // type: Boolean,
  49. // default: true,
  50. // },
  51. // hidden: {
  52. // type: Boolean,
  53. // default: false,
  54. // },
  55. // pagerCount: {
  56. // type: Number,
  57. // default: 7,
  58. // },
  59. // text: {
  60. // type: String,
  61. // required: true,
  62. // },
  63. // name:{
  64. // type: String,
  65. // required: true,
  66. // }
  67. },
  68. components: {
  69. vueQr,
  70. },
  71. computed: {
  72. // currentPage: {
  73. // get() {
  74. // return this.page;
  75. // },
  76. // set(val) {
  77. // this.$emit("update:page", val);
  78. // },
  79. // },
  80. // pageSize: {
  81. // get() {
  82. // return this.limit;
  83. // },
  84. // set(val) {
  85. // this.$emit("update:limit", val);
  86. // },
  87. // },
  88. },
  89. methods: {
  90. downloadImg() {
  91. try {
  92. window.pageYoffset = 0;
  93. document.documentElement.scrollTop = 0;
  94. document.body.scrollTop = 0;
  95. html2canvas(document.getElementById("qrDiv_QrCode"), {
  96. allowTaint: false,
  97. }).then((canvas) => {
  98. const a = document.createElement("a");
  99. const event = new MouseEvent("click");
  100. a.download = this.name;
  101. a.href = canvas.toDataURL();
  102. a.dispatchEvent(event);
  103. this.$emit("downloadImg")
  104. });
  105. } catch (error) {
  106. this.msgError("导出二维码失败,请刷新重试~")
  107. }
  108. },
  109. exportQr(text) {
  110. this.text = "https://goto.huijy.net/" + this.deptId + "/" + trimEqualStr;
  111. this.exportQrDialog = true;
  112. },
  113. handleSizeChange(val) {
  114. this.$emit("pagination", { page: this.currentPage, limit: val });
  115. if (this.autoScroll) {
  116. scrollTo(0, 800);
  117. }
  118. },
  119. handleCurrentChange(val) {
  120. this.$emit("pagination", { page: val, limit: this.pageSize });
  121. if (this.autoScroll) {
  122. scrollTo(0, 800);
  123. }
  124. },
  125. },
  126. };
  127. </script>
  128. <style scoped>
  129. </style>