cwg-wait-popup.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <template>
  2. <cwg-popup v-model:visible="visible" type="center" :mask-click="false" :showFooters="false">
  3. <view class="popup-content wait-popup">
  4. <view class="icon"><cwg-icon name="icon_history" :size="80" color="#eb3f57" /></view>
  5. <view class="des1">{{ t('ApplicationDialog.Des38') }}</view>
  6. </view>
  7. </cwg-popup>
  8. </template>
  9. <script setup>
  10. import { computed } from 'vue';
  11. import { useI18n } from 'vue-i18n';
  12. const props = defineProps({
  13. visible: {
  14. type: Boolean,
  15. default: false
  16. }
  17. });
  18. const emit = defineEmits(['update:visible']);
  19. const { t } = useI18n();
  20. // Watch for changes in visible prop and emit update event
  21. const visible = computed({
  22. get: () => props.visible,
  23. set: (value) => emit('update:visible', value)
  24. });
  25. </script>
  26. <style lang="scss" scoped>
  27. .clause-popup {
  28. width: 90%;
  29. max-width: 800px;
  30. max-height: 80vh;
  31. overflow: hidden;
  32. .clause-content {
  33. padding: 20px;
  34. scroll-view {
  35. width: 100%;
  36. h4 {
  37. font-size: 16px;
  38. font-weight: 600;
  39. color: #303133;
  40. margin-bottom: 12px;
  41. }
  42. ul {
  43. margin-bottom: 20px;
  44. li {
  45. margin-bottom: 8px;
  46. line-height: 1.5;
  47. color: #606266;
  48. }
  49. }
  50. table {
  51. margin: 16px 0;
  52. width: 100%;
  53. border-collapse: collapse;
  54. th,
  55. td {
  56. padding: 10px;
  57. text-align: center;
  58. border: 1px solid #dcdfe6;
  59. font-size: 14px;
  60. }
  61. th {
  62. background: #f5f7fa;
  63. font-weight: 600;
  64. color: #303133;
  65. }
  66. td {
  67. color: #606266;
  68. }
  69. }
  70. // Handle v-html content
  71. div {
  72. line-height: 1.6;
  73. color: #606266;
  74. p {
  75. margin-bottom: 12px;
  76. }
  77. h1,
  78. h2,
  79. h3,
  80. h4,
  81. h5,
  82. h6 {
  83. margin: 16px 0 8px 0;
  84. color: #303133;
  85. }
  86. ul,
  87. ol {
  88. margin-left: 20px;
  89. margin-bottom: 12px;
  90. }
  91. li {
  92. margin-bottom: 4px;
  93. }
  94. }
  95. }
  96. }
  97. .clause-footer {
  98. padding: 16px 20px;
  99. border-top: 1px solid #e4e7ed;
  100. display: flex;
  101. justify-content: center;
  102. button {
  103. min-width: 120px;
  104. padding: 10px 20px;
  105. border-radius: 4px;
  106. }
  107. }
  108. }
  109. // Responsive styles
  110. @media (max-width: 768px) {
  111. .clause-popup {
  112. width: 95%;
  113. max-height: 85vh;
  114. .clause-header {
  115. padding: 12px 16px;
  116. .clause-title {
  117. font-size: 16px;
  118. }
  119. }
  120. .clause-content {
  121. padding: 16px;
  122. scroll-view {
  123. height: 50vh;
  124. h4 {
  125. font-size: 14px;
  126. }
  127. table {
  128. th,
  129. td {
  130. padding: 8px;
  131. font-size: 12px;
  132. }
  133. }
  134. }
  135. }
  136. .clause-footer {
  137. padding: 12px 16px;
  138. button {
  139. min-width: 100px;
  140. padding: 8px 16px;
  141. }
  142. }
  143. }
  144. }
  145. </style>