active-people.wxml 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. <view class="visit-people-container">
  2. <!-- 预约日期信息 -->
  3. <view class="date-info" wx:if="{{!showExistingPage}}">
  4. <image class="bg-img" src="https://swkz-1332577016.cos.ap-guangzhou.myqcloud.com/imgs/indexPage/img.png" mode="aspectFill"></image>
  5. <view class="date-content">
  6. <view class="date-label"><text class="title">预约日期:</text>{{selectedDate}}</view>
  7. <view class="time-label"><text class="title">活动标题:</text>{{title}}</view>
  8. </view>
  9. </view>
  10. <!-- 新增参观人页面 -->
  11. <view wx:if="{{!showExistingPage}}" class="main-content">
  12. <!-- 新增参观人和选择已有参观人按钮 -->
  13. <view class="action-buttons">
  14. <button class="add-new-btn" bindtap="addNewVisitor">新增参观人</button>
  15. <button class="select-existing-btn" bindtap="showExistingVisitors">选择已有参观人</button>
  16. </view>
  17. <!-- 参观人信息列表 -->
  18. <scroll-view class="visitor-list" scroll-y="true">
  19. <view wx:for="{{visitors}}" wx:key="index" class="visitor-card">
  20. <view class="visitor-header">
  21. <text class="visitor-title">参观人信息{{index + 1}}</text>
  22. <view class="delete-btn" bindtap="removeVisitor" data-index="{{index}}">
  23. <image class="delete-img" src="https://swkz-1332577016.cos.ap-guangzhou.myqcloud.com/imgs/indexPage/icon_delete.png" />
  24. 删除
  25. </view>
  26. </view>
  27. <view class="visitor-form">
  28. <view class="form-item">
  29. <view class="form-label">姓名</view>
  30. <view class="form-input">
  31. <input
  32. class="bottom-line-input {{item.nameError ? 'error-line' : ''}}"
  33. placeholder="请输入您的姓名"
  34. value="{{item.name}}"
  35. bindinput="onNameInput"
  36. bindblur="validateName"
  37. data-index="{{index}}"
  38. />
  39. <view wx:if="{{item.nameError}}" class="error-msg">{{item.nameError}}</view>
  40. </view>
  41. </view>
  42. <view class="form-item">
  43. <view class="form-label">电话号码</view>
  44. <view class="form-input">
  45. <input
  46. class="bottom-line-input {{item.phoneError ? 'error-line' : ''}}"
  47. placeholder="请输入11位数字"
  48. value="{{item.phone}}"
  49. bindinput="onPhoneInput"
  50. bindblur="validatePhone"
  51. data-index="{{index}}"
  52. type="number"
  53. />
  54. <view wx:if="{{item.phoneError}}" class="error-msg">{{item.phoneError}}</view>
  55. </view>
  56. </view>
  57. <view class="form-item">
  58. <view class="form-label">证件类型</view>
  59. <view class="form-input">
  60. <picker
  61. class="bottom-line-select"
  62. range="{{idTypes}}"
  63. range-key="name"
  64. value="{{item.idTypeIndex}}"
  65. bindchange="onIdTypeChange"
  66. data-index="{{index}}"
  67. >
  68. <view class="picker-text">{{item.idType || '请选择证件类型'}}</view>
  69. </picker>
  70. </view>
  71. </view>
  72. <view class="form-item">
  73. <view class="form-label">证件号码</view>
  74. <view class="form-input">
  75. <input
  76. class="bottom-line-input {{item.idNumberError ? 'error-line' : ''}}"
  77. placeholder="请输入18位证件编码"
  78. value="{{item.idCard}}"
  79. bindinput="onIdNumberInput"
  80. bindblur="validateIdNumber"
  81. data-index="{{index}}"
  82. />
  83. <view wx:if="{{item.idNumberError}}" class="error-msg">{{item.idNumberError}}</view>
  84. </view>
  85. </view>
  86. </view>
  87. </view>
  88. </scroll-view>
  89. <!-- 下一步按钮 -->
  90. <view class="next-button-container">
  91. <view class="next-btn {{!isFormValid ? 'disabled' : ''}}" bindtap="submitReservation" disabled="{{!isFormValid}}">下一步</view>
  92. </view>
  93. </view>
  94. <!-- 选择已有参观人页面 -->
  95. <view wx:if="{{showExistingPage}}" class="existing-page">
  96. <view class="existing-visitors-list">
  97. <view
  98. wx:for="{{existingVisitors}}"
  99. wx:key="index"
  100. class="existing-visitor-item"
  101. bindtap="toggleExistingVisitor"
  102. data-index="{{index}}"
  103. >
  104. <view class="visitor-info">
  105. <view class="visitor-name">姓名:{{item.name}}</view>
  106. <view class="visitor-id">证件号:{{item.idCard}}</view>
  107. <view class="visitor-phone">电话号码:{{item.phone}}</view>
  108. </view>
  109. <view class="checkbox {{item.selected ? 'checked' : ''}}">
  110. <text wx:if="{{item.selected}}">✓</text>
  111. </view>
  112. </view>
  113. </view>
  114. <view class="existing-actions">
  115. <button class="confirm-btn" bindtap="confirmExistingVisitors">确定</button>
  116. </view>
  117. </view>
  118. <!-- 成功弹窗 -->
  119. <view wx:if="{{showSuccessModal}}" class="modal-overlay" bindtap="closeSuccessModal">
  120. <view class="success-modal" catchtap="stopPropagation">
  121. <view class="success-icon">✓</view>
  122. <view class="success-text">预约成功</view>
  123. <button class="success-btn" bindtap="closeSuccessModal">确认</button>
  124. </view>
  125. </view>
  126. </view>