与牧同行-小程序用户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
3.0 KiB

  1. <view class="container">
  2. <!-- 已选择区域路径显示 -->
  3. <view class="selected-path" wx:if="{{selectedRegions.length > 0}}">
  4. <text class="path-title">已选择:</text>
  5. <view class="path-items">
  6. <view
  7. wx:for="{{selectedRegions}}"
  8. wx:key="index"
  9. class="path-item {{index === selectedRegions.length - 1 ? 'last' : ''}}"
  10. data-index="{{index}}"
  11. bindtap="reSelectRegion"
  12. >
  13. <text>{{item.name}}</text>
  14. <text class="separator" wx:if="{{index < selectedRegions.length - 1}}">></text>
  15. </view>
  16. </view>
  17. </view>
  18. <!-- 选择按钮 -->
  19. <view class="select-btn-container">
  20. <button
  21. class="select-btn"
  22. bindtap="startSelection"
  23. loading="{{loading}}"
  24. >
  25. {{selectedRegions.length === 0 ? '开始选择区域' : '继续选择下一级'}}
  26. </button>
  27. </view>
  28. <!-- 操作按钮 -->
  29. <view class="action-buttons">
  30. <button
  31. class="btn complete-btn"
  32. bindtap="completeSelection"
  33. disabled="{{selectedRegions.length === 0}}"
  34. >
  35. 完成选择
  36. </button>
  37. <button
  38. class="btn reset-btn"
  39. bindtap="resetSelection"
  40. wx:if="{{selectedRegions.length > 0}}"
  41. >
  42. 重置
  43. </button>
  44. </view>
  45. <!-- 选择器弹出层 -->
  46. <view class="picker-modal" wx:if="{{showPicker}}">
  47. <view class="picker-mask" bindtap="closePicker"></view>
  48. <view class="picker-content">
  49. <view class="picker-header">
  50. <text class="picker-title">{{regionTitle}}</text>
  51. <text class="picker-close" bindtap="closePicker">×</text>
  52. </view>
  53. <view class="picker-body">
  54. <!-- 加载状态 -->
  55. <view class="loading-container" wx:if="{{loading}}">
  56. <view class="loading-spinner"></view>
  57. <text class="loading-text">加载中...</text>
  58. </view>
  59. <!-- 区域列表 -->
  60. <scroll-view scroll-y class="region-list" wx:else>
  61. <view
  62. wx:for="{{regionList}}"
  63. wx:key="id"
  64. class="region-item"
  65. data-index="{{index}}"
  66. bindtap="selectRegion"
  67. >
  68. <view class="region-info">
  69. <text class="region-name">{{item.name}}</text>
  70. </view>
  71. <text class="arrow">›</text>
  72. </view>
  73. <!-- 空状态 -->
  74. <view class="empty-state" wx:if="{{regionList.length === 0}}">
  75. <text class="empty-text">
  76. {{selectedRegions.length > 0 ? '已选择到最后一级' : '暂无区域数据'}}
  77. </text>
  78. </view>
  79. </scroll-view>
  80. </view>
  81. </view>
  82. </view>
  83. <!-- 使用说明 -->
  84. <view class="instruction">
  85. <text class="instruction-title">使用说明:</text>
  86. <text class="instruction-text">1. 点击"开始选择区域"开始选择\n2. 选择后会加载下一级区域\n3. 点击已选择区域的任意级别可以重新选择\n4. 选择最后一级时会直接替换\n5. 完成选择后点击"完成选择"按钮</text>
  87. </view>
  88. </view>