BonusAgreementPopup.vue 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. <template>
  2. <cwg-popup v-model:visible="visible" type="center" :title="title" :mask-click="false" :showFooters="false">
  3. <view class="popup-content clause-popup">
  4. <view class="clause-content" id="Agreement">
  5. <scroll-view scroll-y="true" style="height: 60vh;">
  6. <view v-if="type == 'nzTwo'">
  7. <h4>{{ t('news_add_field1.activitiesNZTwo.item8') }}{{ tableData4Two.applicationStartTime }} -
  8. {{ tableData4Two.applicationEndTime }}</h4>
  9. <h4 style="margin-top: 20px">{{ t('news_add_field1.activitiesNZTwo.item10') }}</h4>
  10. <ul style="margin-left: 15px; font-size: 14px">
  11. <li>{{ t('news_add_field1.activitiesNZTwo.item11') }}</li>
  12. <li>{{ t('news_add_field1.activitiesNZTwo.item12') }}</li>
  13. <li>{{ t('news_add_field1.activitiesNZTwo.item13') }}</li>
  14. <li>{{ t('news_add_field1.activitiesNZTwo.item14') }}</li>
  15. <li v-t="'news_add_field1.activitiesNZTwo.item15'"></li>
  16. <li v-t="'news_add_field1.activitiesNZTwo.item16'"></li>
  17. <table class="nz_table" border="1" cellpadding="10" cellspacing="0" width="100%">
  18. <tr>
  19. <th v-t="'news_add_field1.activitiesNZTwo.item31'"></th>
  20. <th v-t="'news_add_field1.activitiesNZTwo.item41'"></th>
  21. <th v-t="'news_add_field1.activitiesNZTwo.item51'"></th>
  22. <th v-t="'news_add_field1.activitiesNZTwo.item61'"></th>
  23. <th v-t="'news_add_field1.activitiesNZTwo.item71'"></th>
  24. <th v-t="'news_add_field1.activitiesNZTwo.item81'"></th>
  25. <th v-t="'news_add_field1.activitiesNZTwo.item91'"></th>
  26. </tr>
  27. <tr>
  28. <td v-t="'news_add_field1.activitiesNZTwo.item32'"></td>
  29. <td v-t="'news_add_field1.activitiesNZTwo.item42'"></td>
  30. <td v-t="'news_add_field1.activitiesNZTwo.item52'"></td>
  31. <td v-t="'news_add_field1.activitiesNZTwo.item62'"></td>
  32. <td v-t="'news_add_field1.activitiesNZTwo.item72'"></td>
  33. <td v-t="'news_add_field1.activitiesNZTwo.item82'"></td>
  34. <td v-t="'news_add_field1.activitiesNZTwo.item92'"></td>
  35. </tr>
  36. <tr>
  37. <td v-t="'news_add_field1.activitiesNZTwo.item33'"></td>
  38. <td v-t="'news_add_field1.activitiesNZTwo.item43'"></td>
  39. <td>
  40. <span style="color: #f56c6c"
  41. v-t="'news_add_field1.activitiesNZTwo.item53'"></span>
  42. </td>
  43. <td v-t="'news_add_field1.activitiesNZTwo.item63'"></td>
  44. <td v-t="'news_add_field1.activitiesNZTwo.item73'"></td>
  45. <td v-t="'news_add_field1.activitiesNZTwo.item83'"></td>
  46. <td v-t="'news_add_field1.activitiesNZTwo.item93'"></td>
  47. </tr>
  48. <tr>
  49. <td v-t="'news_add_field1.activitiesNZTwo.item34'"></td>
  50. <td v-t="'news_add_field1.activitiesNZTwo.item44'"></td>
  51. <td v-t="'news_add_field1.activitiesNZTwo.item54'"></td>
  52. <td v-t="'news_add_field1.activitiesNZTwo.item64'"></td>
  53. <td v-t="'news_add_field1.activitiesNZTwo.item74'"></td>
  54. <td v-t="'news_add_field1.activitiesNZTwo.item84'"></td>
  55. <td v-t="'news_add_field1.activitiesNZTwo.item94'"></td>
  56. </tr>
  57. <tr>
  58. <td v-t="'news_add_field1.activitiesNZTwo.item35'"></td>
  59. <td v-t="'news_add_field1.activitiesNZTwo.item45'"></td>
  60. <td v-t="'news_add_field1.activitiesNZTwo.item55'"></td>
  61. <td v-t="'news_add_field1.activitiesNZTwo.item65'"></td>
  62. <td v-t="'news_add_field1.activitiesNZTwo.item75'"></td>
  63. <td v-t="'news_add_field1.activitiesNZTwo.item85'"></td>
  64. <td v-t="'news_add_field1.activitiesNZTwo.item95'"></td>
  65. </tr>
  66. </table>
  67. <li v-t="'news_add_field1.activitiesNZTwo.item17'"></li>
  68. <li v-t="'news_add_field1.activitiesNZTwo.item18'"></li>
  69. <li v-t="'news_add_field1.activitiesNZTwo.item19'"></li>
  70. <li v-t="'news_add_field1.activitiesNZTwo.item20'"></li>
  71. <li v-t="'news_add_field1.activitiesNZTwo.item21'"></li>
  72. </ul>
  73. </view>
  74. <view v-else-if="type == 'newList'">
  75. <rich-text class="popup-text" :nodes="content"></rich-text>
  76. </view>
  77. </scroll-view>
  78. </view>
  79. <template #footer>
  80. <button type="primary" @click="visible = false">{{ t('Btn.Confirm') }}</button>
  81. </template>
  82. </view>
  83. </cwg-popup>
  84. </template>
  85. <script setup>
  86. import { computed } from 'vue';
  87. import { useI18n } from 'vue-i18n';
  88. const props = defineProps({
  89. visible: {
  90. type: Boolean,
  91. default: false
  92. },
  93. type: {
  94. type: String,
  95. default: 'nzTwo',
  96. },
  97. title: {
  98. type: String,
  99. default: ''
  100. },
  101. tableData4Two: {
  102. type: Object,
  103. default: () => ({})
  104. },
  105. content: {
  106. type: String,
  107. default: ''
  108. }
  109. });
  110. const emit = defineEmits(['update:visible']);
  111. const { t } = useI18n();
  112. // Watch for changes in visible prop and emit update event
  113. const visible = computed({
  114. get: () => props.visible,
  115. set: (value) => emit('update:visible', value)
  116. });
  117. </script>
  118. <style lang="scss" scoped>
  119. .clause-popup {
  120. width: 90%;
  121. max-width: 800px;
  122. max-height: 80vh;
  123. overflow: hidden;
  124. .clause-content {
  125. padding: 20px;
  126. scroll-view {
  127. width: 100%;
  128. h4 {
  129. font-size: 16px;
  130. font-weight: 600;
  131. color: #303133;
  132. margin-bottom: 12px;
  133. }
  134. ul {
  135. margin-bottom: 20px;
  136. li {
  137. margin-bottom: 8px;
  138. line-height: 1.5;
  139. color: #606266;
  140. }
  141. }
  142. table {
  143. margin: 16px 0;
  144. width: 100%;
  145. border-collapse: collapse;
  146. th,
  147. td {
  148. padding: 10px;
  149. text-align: center;
  150. border: 1px solid #dcdfe6;
  151. font-size: 14px;
  152. }
  153. th {
  154. background: #f5f7fa;
  155. font-weight: 600;
  156. color: #303133;
  157. }
  158. td {
  159. color: #606266;
  160. }
  161. }
  162. // Handle v-html content
  163. div {
  164. line-height: 1.6;
  165. color: #606266;
  166. p {
  167. margin-bottom: 12px;
  168. }
  169. h1,
  170. h2,
  171. h3,
  172. h4,
  173. h5,
  174. h6 {
  175. margin: 16px 0 8px 0;
  176. color: #303133;
  177. }
  178. ul,
  179. ol {
  180. margin-left: 20px;
  181. margin-bottom: 12px;
  182. }
  183. li {
  184. margin-bottom: 4px;
  185. }
  186. }
  187. }
  188. }
  189. .clause-footer {
  190. padding: 16px 20px;
  191. border-top: 1px solid #e4e7ed;
  192. display: flex;
  193. justify-content: center;
  194. button {
  195. min-width: 120px;
  196. padding: 10px 20px;
  197. border-radius: 4px;
  198. }
  199. }
  200. }
  201. // Responsive styles
  202. @media (max-width: 768px) {
  203. .clause-popup {
  204. width: 95%;
  205. max-height: 85vh;
  206. .clause-header {
  207. padding: 12px 16px;
  208. .clause-title {
  209. font-size: 16px;
  210. }
  211. }
  212. .clause-content {
  213. padding: 16px;
  214. scroll-view {
  215. height: 50vh;
  216. h4 {
  217. font-size: 14px;
  218. }
  219. table {
  220. th,
  221. td {
  222. padding: 8px;
  223. font-size: 12px;
  224. }
  225. }
  226. }
  227. }
  228. .clause-footer {
  229. padding: 12px 16px;
  230. button {
  231. min-width: 100px;
  232. padding: 8px 16px;
  233. }
  234. }
  235. }
  236. }
  237. </style>