BonusAgreementPopup.vue 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  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. <div v-html="content"></div>
  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. validator: (value) => ['nzTwo', 'newList'].includes(value)
  97. },
  98. title: {
  99. type: String,
  100. default: ''
  101. },
  102. tableData4Two: {
  103. type: Object,
  104. default: () => ({})
  105. },
  106. content: {
  107. type: String,
  108. default: ''
  109. }
  110. });
  111. const emit = defineEmits(['update:visible']);
  112. const { t } = useI18n();
  113. // Watch for changes in visible prop and emit update event
  114. const visible = computed({
  115. get: () => props.visible,
  116. set: (value) => emit('update:visible', value)
  117. });
  118. </script>
  119. <style lang="scss" scoped>
  120. .clause-popup {
  121. width: 90%;
  122. max-width: 800px;
  123. max-height: 80vh;
  124. overflow: hidden;
  125. .clause-content {
  126. padding: 20px;
  127. scroll-view {
  128. width: 100%;
  129. h4 {
  130. font-size: 16px;
  131. font-weight: 600;
  132. color: #303133;
  133. margin-bottom: 12px;
  134. }
  135. ul {
  136. margin-bottom: 20px;
  137. li {
  138. margin-bottom: 8px;
  139. line-height: 1.5;
  140. color: #606266;
  141. }
  142. }
  143. table {
  144. margin: 16px 0;
  145. width: 100%;
  146. border-collapse: collapse;
  147. th,
  148. td {
  149. padding: 10px;
  150. text-align: center;
  151. border: 1px solid #dcdfe6;
  152. font-size: 14px;
  153. }
  154. th {
  155. background: #f5f7fa;
  156. font-weight: 600;
  157. color: #303133;
  158. }
  159. td {
  160. color: #606266;
  161. }
  162. }
  163. // Handle v-html content
  164. div {
  165. line-height: 1.6;
  166. color: #606266;
  167. p {
  168. margin-bottom: 12px;
  169. }
  170. h1,
  171. h2,
  172. h3,
  173. h4,
  174. h5,
  175. h6 {
  176. margin: 16px 0 8px 0;
  177. color: #303133;
  178. }
  179. ul,
  180. ol {
  181. margin-left: 20px;
  182. margin-bottom: 12px;
  183. }
  184. li {
  185. margin-bottom: 4px;
  186. }
  187. }
  188. }
  189. }
  190. .clause-footer {
  191. padding: 16px 20px;
  192. border-top: 1px solid #e4e7ed;
  193. display: flex;
  194. justify-content: center;
  195. button {
  196. min-width: 120px;
  197. padding: 10px 20px;
  198. border-radius: 4px;
  199. }
  200. }
  201. }
  202. // Responsive styles
  203. @media (max-width: 768px) {
  204. .clause-popup {
  205. width: 95%;
  206. max-height: 85vh;
  207. .clause-header {
  208. padding: 12px 16px;
  209. .clause-title {
  210. font-size: 16px;
  211. }
  212. }
  213. .clause-content {
  214. padding: 16px;
  215. scroll-view {
  216. height: 50vh;
  217. h4 {
  218. font-size: 14px;
  219. }
  220. table {
  221. th,
  222. td {
  223. padding: 8px;
  224. font-size: 12px;
  225. }
  226. }
  227. }
  228. }
  229. .clause-footer {
  230. padding: 12px 16px;
  231. button {
  232. min-width: 100px;
  233. padding: 8px 16px;
  234. }
  235. }
  236. }
  237. }
  238. </style>