contractConfirm.vue 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <template>
  2. <!-- 协议弹出层 -->
  3. <uv-popup ref="popupRef" mode="bottom" round="30rpx" closeable>
  4. <view class="popup-content">
  5. <view class="title"> 阅读并同意相关合同 </view>
  6. <view class="content">
  7. <text>我已阅读并同意</text>
  8. <text
  9. class="agreement-text"
  10. v-for="(item, index) in agreementList"
  11. :key="index"
  12. @click="emit('agreement', item.code)"
  13. >《{{ item.lable }}》</text
  14. >
  15. </view>
  16. <view class="notice"> 本协议采用第三方电子签章服务,具有法律效力 </view>
  17. <view class="btn">
  18. <view class="u-btn-two" @click="handleAgree">同意协议合同</view>
  19. <view class="u-btn-two btn-refuse" @click="popupRef.close()">
  20. 不同意
  21. </view>
  22. </view>
  23. </view>
  24. </uv-popup>
  25. </template>
  26. <script setup name="contractConfirm">
  27. import { ref } from "vue";
  28. const emit = defineEmits(["agreement", "agree"]);
  29. const props = defineProps({
  30. agreementList: {
  31. type: Array,
  32. default: () => [],
  33. },
  34. });
  35. const popupRef = ref(null);
  36. const agreementList = ref(props.agreementList); // 协议列表
  37. const handleAgree = () => {
  38. popupRef.value.close();
  39. emit("agree");
  40. };
  41. const open = () => {
  42. popupRef.value.open();
  43. };
  44. defineExpose({
  45. open,
  46. });
  47. </script>
  48. <style lang="scss" scoped>
  49. .popup-content {
  50. padding: 30rpx 30rpx 20rpx 30rpx;
  51. .title {
  52. font-size: 32rpx;
  53. color: #1a1a1a;
  54. text-align: center;
  55. margin-bottom: 30rpx;
  56. }
  57. .content {
  58. font-size: 28rpx;
  59. text-align: center;
  60. color: #1a1a1a;
  61. .agreement-text {
  62. color: #0090ff;
  63. }
  64. }
  65. .notice {
  66. text-align: center;
  67. margin-top: 48rpx;
  68. margin-bottom: 20rpx;
  69. color: #999999;
  70. font-size: 28rpx;
  71. }
  72. .btn {
  73. .u-btn-two {
  74. height: 91rpx;
  75. line-height: 91rpx;
  76. margin-bottom: 20rpx;
  77. }
  78. .u-btn-two.btn-refuse {
  79. background: #ffffff;
  80. border: 1rpx solid #cccccc;
  81. border-radius: 47rpx;
  82. box-sizing: border-box;
  83. color: #1a1a1a;
  84. }
  85. }
  86. }
  87. </style>