index.vue 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <template>
  2. <div class="portal">
  3. <template v-for="item in portalLinkOptions">
  4. <div class="portal-item">
  5. <div class="portal-item-title" v-html="item.label"/>
  6. <div class="portal-item-icon">
  7. <img :src="icons[$TOOL.dictTypeData('portal_link_icon', item.label)]"/>
  8. </div>
  9. <div class="portal-item-to __hover" @click="toLink(item)">进入系统</div>
  10. </div>
  11. </template>
  12. </div>
  13. </template>
  14. <script setup>
  15. import tool from "@/utils/tool";
  16. const { proxy } = getCurrentInstance()
  17. import icon1 from './icon-1.png'
  18. import icon2 from './icon-2.png'
  19. import icon3 from './icon-3.png'
  20. const icons = {
  21. 1: icon1,
  22. 2: icon2,
  23. 3: icon3,
  24. }
  25. const portalLinkOptions = ref(tool.dictList('portal_link'))
  26. const toLink = (item) => {
  27. window.open(item.value)
  28. }
  29. </script>
  30. <style lang="less" scoped>
  31. .portal {
  32. width: 100%;
  33. height: 100%;
  34. background-image: url("./bg.png");
  35. background-size: 100% 100%;
  36. background-repeat: no-repeat;
  37. display: flex;
  38. justify-content: center;
  39. align-items: center;
  40. gap: 40px;
  41. .portal-item {
  42. margin-top: 80px;
  43. width: 422px;
  44. height: 618px;
  45. background-image: url("./item-bg.png");
  46. background-size: 100% 100%;
  47. background-repeat: no-repeat;
  48. display: flex;
  49. flex-direction: column;
  50. align-items: center;
  51. justify-content: center;
  52. position: relative;
  53. .portal-item-title {
  54. font-family: YouSheBiaoTiHei;
  55. font-weight: bold;
  56. font-size: 44px;
  57. color: #D1E1FF;
  58. display: flex;
  59. align-items: center;
  60. justify-content: center;
  61. text-align: center;
  62. letter-spacing: 10px;
  63. line-height: 1.5;
  64. position: absolute;
  65. top: 34px;
  66. }
  67. .portal-item-to {
  68. width: 397px;
  69. height: 66px;
  70. position: absolute;
  71. bottom: 40px;
  72. display: flex;
  73. align-items: center;
  74. justify-content: center;
  75. font-family: Source Han Sans CN;
  76. font-weight: bold;
  77. font-size: 32px;
  78. background: linear-gradient(180deg, #FFFFFF 0%, #aedffa 100%);
  79. -webkit-background-clip: text;
  80. -webkit-text-fill-color: transparent;
  81. letter-spacing: 6px;
  82. &:before {
  83. content: '';
  84. background-image: url("./to-bg.png");
  85. background-size: 100% 100%;
  86. background-repeat: no-repeat;
  87. width: 100%;
  88. height: 100%;
  89. position: absolute;
  90. }
  91. }
  92. }
  93. }
  94. </style>