Browse Source

'联调3/4'

hfll
hflllll 5 months ago
parent
commit
e362e7dce1
82 changed files with 1235 additions and 983 deletions
  1. +2
    -1
      api/modules/activity.js
  2. +6
    -3
      pages.json
  3. +308
    -288
      static/china-regions.json
  4. +62
    -56
      subPages/index/volunteerApply.vue
  5. +10
    -5
      subPages/login/userInfo.vue
  6. +42
    -44
      subPages/my/myActivityDetail.vue
  7. +57
    -63
      subPages/my/myRegistrations.vue
  8. +21
    -1
      subPages/my/productFavorites.vue
  9. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
  10. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
  11. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/components/HomePageNav.js.map
  12. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/components/index/RecommendedActivities.js.map
  13. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/components/index/VolunteerFeatures.js.map
  14. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/components/index/VolunteerHeader.js.map
  15. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/components/index/VolunteerRanking.js.map
  16. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/components/shop/PointsCard.js.map
  17. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/components/shop/ShopContent.js.map
  18. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/activity.js.map
  19. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/community.js.map
  20. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
  21. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/my.js.map
  22. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/shop.js.map
  23. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/subPages/community/publishPost.js.map
  24. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/subPages/index/activityCalendar.js.map
  25. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/subPages/index/activityDetail.js.map
  26. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/subPages/index/announcement.js.map
  27. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/subPages/index/announcementDetail.js.map
  28. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/subPages/index/components/SignUpForm.js.map
  29. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/subPages/index/organizationIntroduction.js.map
  30. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/subPages/index/ranking.js.map
  31. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/subPages/index/volunteerApply.js.map
  32. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/subPages/login/login.js.map
  33. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/subPages/login/userInfo.js.map
  34. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/subPages/my/activityCheckin.js.map
  35. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/subPages/my/activityFavorites.js.map
  36. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/subPages/my/checkinCode.js.map
  37. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/subPages/my/exchangeDetail.js.map
  38. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/subPages/my/exchangeRecord.js.map
  39. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/subPages/my/myActivityDetail.js.map
  40. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/subPages/my/myProfile.js.map
  41. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/subPages/my/myRegistrations.js.map
  42. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/subPages/my/productFavorites.js.map
  43. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/subPages/shop/goodsDetail.js.map
  44. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/subPages/shop/pointsDetail.js.map
  45. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-action-sheet/components/uv-action-sheet/uv-action-sheet.js.map
  46. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-badge/components/uv-badge/uv-badge.js.map
  47. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-button/components/uv-button/uv-button.js.map
  48. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-empty/components/uv-empty/uv-empty.js.map
  49. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-form/components/uv-form-item/uv-form-item.js.map
  50. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-icon/components/uv-icon/uv-icon.js.map
  51. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-input/components/uv-input/uv-input.js.map
  52. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-line/components/uv-line/uv-line.js.map
  53. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-loading-icon/components/uv-loading-icon/uv-loading-icon.js.map
  54. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-overlay/components/uv-overlay/uv-overlay.js.map
  55. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-picker/components/uv-picker/uv-picker.js.map
  56. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-popup/components/uv-popup/uv-popup.js.map
  57. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-qrcode/components/uv-qrcode/uv-qrcode.js.map
  58. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-safe-bottom/components/uv-safe-bottom/uv-safe-bottom.js.map
  59. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-search/components/uv-search/uv-search.js.map
  60. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-status-bar/components/uv-status-bar/uv-status-bar.js.map
  61. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-swiper/components/uv-swiper-indicator/uv-swiper-indicator.js.map
  62. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-swiper/components/uv-swiper/uv-swiper.js.map
  63. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-tabs/components/uv-tabs/uv-tabs.js.map
  64. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-textarea/components/uv-textarea/uv-textarea.js.map
  65. +1
    -1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-toolbar/components/uv-toolbar/uv-toolbar.js.map
  66. +3
    -2
      unpackage/dist/dev/mp-weixin/common/vendor.js
  67. +2
    -2
      unpackage/dist/dev/mp-weixin/pages/components/index/RecommendedActivities.json
  68. +308
    -288
      unpackage/dist/dev/mp-weixin/static/china-regions.json
  69. +2
    -2
      unpackage/dist/dev/mp-weixin/subPages/index/components/SignUpForm.json
  70. +80
    -48
      unpackage/dist/dev/mp-weixin/subPages/index/volunteerApply.js
  71. +1
    -1
      unpackage/dist/dev/mp-weixin/subPages/index/volunteerApply.wxml
  72. +64
    -38
      unpackage/dist/dev/mp-weixin/subPages/login/userInfo.js
  73. +1
    -0
      unpackage/dist/dev/mp-weixin/subPages/my/exchangeDetail.json
  74. +1
    -0
      unpackage/dist/dev/mp-weixin/subPages/my/exchangeRecord.json
  75. +92
    -23
      unpackage/dist/dev/mp-weixin/subPages/my/myActivityDetail.js
  76. +1
    -1
      unpackage/dist/dev/mp-weixin/subPages/my/myActivityDetail.wxml
  77. +86
    -53
      unpackage/dist/dev/mp-weixin/subPages/my/myRegistrations.js
  78. +1
    -1
      unpackage/dist/dev/mp-weixin/subPages/my/myRegistrations.wxml
  79. +23
    -2
      unpackage/dist/dev/mp-weixin/subPages/my/productFavorites.js
  80. +1
    -0
      unpackage/dist/dev/mp-weixin/subPages/my/productFavorites.json
  81. +2
    -2
      unpackage/dist/dev/mp-weixin/uni_modules/uv-form/components/uv-form-item/uv-form-item.json
  82. +2
    -2
      unpackage/dist/dev/mp-weixin/uni_modules/uv-textarea/components/uv-textarea/uv-textarea.json

+ 2
- 1
api/modules/activity.js View File

@ -51,7 +51,8 @@ export default {
return request({
url: '/activity/queryApplyList',
method: 'POST',
data
data,
showLoading: true
})
},


+ 6
- 3
pages.json View File

@ -147,20 +147,23 @@
"path": "my/exchangeRecord",
"style": {
"navigationBarTitleText": "兑换记录",
"enablePullDownRefresh": true
"enablePullDownRefresh": true,
"enableBackButton": true
}
},
{
"path": "my/exchangeDetail",
"style": {
"navigationBarTitleText": "商品详情"
"navigationBarTitleText": "商品详情",
"enableBackButton": true
}
},
{
"path": "my/productFavorites",
"style": {
// "navigationStyle": "custom",
"navigationBarTitleText": "商品收藏"
"navigationBarTitleText": "商品收藏",
"enableBackButton": true
}
},
{


+ 308
- 288
static/china-regions.json View File

@ -3,68 +3,73 @@
"name": "北京市",
"children": [
{
"name": "东城区",
"children": []
},
{
"name": "西城区",
"children": []
},
{
"name": "朝阳区",
"children": []
},
{
"name": "丰台区",
"children": []
},
{
"name": "石景山区",
"children": []
},
{
"name": "海淀区",
"children": []
},
{
"name": "门头沟区",
"children": []
},
{
"name": "房山区",
"children": []
},
{
"name": "通州区",
"children": []
},
{
"name": "顺义区",
"children": []
},
{
"name": "昌平区",
"children": []
},
{
"name": "大兴区",
"children": []
},
{
"name": "怀柔区",
"children": []
},
{
"name": "平谷区",
"children": []
},
{
"name": "密云区",
"children": []
},
{
"name": "延庆区",
"children": []
"name": "北京市",
"children": [
{
"name": "东城区",
"children": []
},
{
"name": "西城区",
"children": []
},
{
"name": "朝阳区",
"children": []
},
{
"name": "丰台区",
"children": []
},
{
"name": "石景山区",
"children": []
},
{
"name": "海淀区",
"children": []
},
{
"name": "门头沟区",
"children": []
},
{
"name": "房山区",
"children": []
},
{
"name": "通州区",
"children": []
},
{
"name": "顺义区",
"children": []
},
{
"name": "昌平区",
"children": []
},
{
"name": "大兴区",
"children": []
},
{
"name": "怀柔区",
"children": []
},
{
"name": "平谷区",
"children": []
},
{
"name": "密云区",
"children": []
},
{
"name": "延庆区",
"children": []
}
]
}
]
},
@ -72,68 +77,73 @@
"name": "天津市",
"children": [
{
"name": "和平区",
"children": []
},
{
"name": "河东区",
"children": []
},
{
"name": "河西区",
"children": []
},
{
"name": "南开区",
"children": []
},
{
"name": "河北区",
"children": []
},
{
"name": "红桥区",
"children": []
},
{
"name": "东丽区",
"children": []
},
{
"name": "西青区",
"children": []
},
{
"name": "津南区",
"children": []
},
{
"name": "北辰区",
"children": []
},
{
"name": "武清区",
"children": []
},
{
"name": "宝坻区",
"children": []
},
{
"name": "滨海新区",
"children": []
},
{
"name": "宁河区",
"children": []
},
{
"name": "静海区",
"children": []
},
{
"name": "蓟州区",
"children": []
"name": "天津市",
"children": [
{
"name": "和平区",
"children": []
},
{
"name": "河东区",
"children": []
},
{
"name": "河西区",
"children": []
},
{
"name": "南开区",
"children": []
},
{
"name": "河北区",
"children": []
},
{
"name": "红桥区",
"children": []
},
{
"name": "东丽区",
"children": []
},
{
"name": "西青区",
"children": []
},
{
"name": "津南区",
"children": []
},
{
"name": "北辰区",
"children": []
},
{
"name": "武清区",
"children": []
},
{
"name": "宝坻区",
"children": []
},
{
"name": "滨海新区",
"children": []
},
{
"name": "宁河区",
"children": []
},
{
"name": "静海区",
"children": []
},
{
"name": "蓟州区",
"children": []
}
]
}
]
},
@ -141,68 +151,73 @@
"name": "上海市",
"children": [
{
"name": "黄浦区",
"children": []
},
{
"name": "徐汇区",
"children": []
},
{
"name": "长宁区",
"children": []
},
{
"name": "静安区",
"children": []
},
{
"name": "普陀区",
"children": []
},
{
"name": "虹口区",
"children": []
},
{
"name": "杨浦区",
"children": []
},
{
"name": "闵行区",
"children": []
},
{
"name": "宝山区",
"children": []
},
{
"name": "嘉定区",
"children": []
},
{
"name": "浦东新区",
"children": []
},
{
"name": "金山区",
"children": []
},
{
"name": "松江区",
"children": []
},
{
"name": "青浦区",
"children": []
},
{
"name": "奉贤区",
"children": []
},
{
"name": "崇明区",
"children": []
"name": "上海市",
"children": [
{
"name": "黄浦区",
"children": []
},
{
"name": "徐汇区",
"children": []
},
{
"name": "长宁区",
"children": []
},
{
"name": "静安区",
"children": []
},
{
"name": "普陀区",
"children": []
},
{
"name": "虹口区",
"children": []
},
{
"name": "杨浦区",
"children": []
},
{
"name": "闵行区",
"children": []
},
{
"name": "宝山区",
"children": []
},
{
"name": "嘉定区",
"children": []
},
{
"name": "浦东新区",
"children": []
},
{
"name": "金山区",
"children": []
},
{
"name": "松江区",
"children": []
},
{
"name": "青浦区",
"children": []
},
{
"name": "奉贤区",
"children": []
},
{
"name": "崇明区",
"children": []
}
]
}
]
},
@ -210,108 +225,113 @@
"name": "重庆市",
"children": [
{
"name": "万州区",
"children": []
},
{
"name": "涪陵区",
"children": []
},
{
"name": "渝中区",
"children": []
},
{
"name": "大渡口区",
"children": []
},
{
"name": "江北区",
"children": []
},
{
"name": "沙坪坝区",
"children": []
},
{
"name": "九龙坡区",
"children": []
},
{
"name": "南岸区",
"children": []
},
{
"name": "北碚区",
"children": []
},
{
"name": "綦江区",
"children": []
},
{
"name": "大足区",
"children": []
},
{
"name": "渝北区",
"children": []
},
{
"name": "巴南区",
"children": []
},
{
"name": "黔江区",
"children": []
},
{
"name": "长寿区",
"children": []
},
{
"name": "江津区",
"children": []
},
{
"name": "合川区",
"children": []
},
{
"name": "永川区",
"children": []
},
{
"name": "南川区",
"children": []
},
{
"name": "璧山区",
"children": []
},
{
"name": "铜梁区",
"children": []
},
{
"name": "潼南区",
"children": []
},
{
"name": "荣昌区",
"children": []
},
{
"name": "开州区",
"children": []
},
{
"name": "梁平区",
"children": []
},
{
"name": "武隆区",
"children": []
"name": "重庆市",
"children": [
{
"name": "万州区",
"children": []
},
{
"name": "涪陵区",
"children": []
},
{
"name": "渝中区",
"children": []
},
{
"name": "大渡口区",
"children": []
},
{
"name": "江北区",
"children": []
},
{
"name": "沙坪坝区",
"children": []
},
{
"name": "九龙坡区",
"children": []
},
{
"name": "南岸区",
"children": []
},
{
"name": "北碚区",
"children": []
},
{
"name": "綦江区",
"children": []
},
{
"name": "大足区",
"children": []
},
{
"name": "渝北区",
"children": []
},
{
"name": "巴南区",
"children": []
},
{
"name": "黔江区",
"children": []
},
{
"name": "长寿区",
"children": []
},
{
"name": "江津区",
"children": []
},
{
"name": "合川区",
"children": []
},
{
"name": "永川区",
"children": []
},
{
"name": "南川区",
"children": []
},
{
"name": "璧山区",
"children": []
},
{
"name": "铜梁区",
"children": []
},
{
"name": "潼南区",
"children": []
},
{
"name": "荣昌区",
"children": []
},
{
"name": "开州区",
"children": []
},
{
"name": "梁平区",
"children": []
},
{
"name": "武隆区",
"children": []
}
]
}
]
},


+ 62
- 56
subPages/index/volunteerApply.vue View File

@ -38,7 +38,7 @@
<!-- 性别 -->
<uv-form-item label="性别" prop="sex" borderBottom @click="openGenderPicker">
<uv-input
v-model="formData.sexText"
v-model="formData.sex"
placeholder="请选择"
border="none"
readonly
@ -50,11 +50,10 @@
<!-- 所在地区 -->
<uv-form-item label="所在地区" prop="area" borderBottom @click="openRegionPicker">
<uv-input
v-model="formData.areaText"
v-model="formData.area"
placeholder="请选择"
border="none"
readonly
suffixIcon="arrow-right"
></uv-input>
</uv-form-item>
@ -72,7 +71,7 @@
<!-- 职业类型 -->
<uv-form-item label="职业类型" prop="career" borderBottom @click="openProfessionPicker">
<uv-input
v-model="formData.careerText"
v-model="formData.career"
placeholder="请选择"
border="none"
readonly
@ -83,7 +82,7 @@
<!-- 最高学历 -->
<uv-form-item label="最高学历" prop="qualifications" borderBottom @click="openEducationPicker">
<uv-input
v-model="formData.qualificationsText"
v-model="formData.qualifications"
placeholder="请选择"
border="none"
readonly
@ -193,14 +192,13 @@ export default {
name: '',
phone: '',
sex: '',
sexText: '',
// sexText: '',
area: '',
areaText: '',
address: '',
career: '',
careerText: '',
// careerText: '',
qualifications: '',
qualificationsText: '',
// qualificationsText: '',
skill: ''
},
@ -230,20 +228,26 @@ export default {
pickerValue: [0, 0, 0],
defaultValue: [3442, 1, 2],
professionOptions: [[
'学生', '教师', '医生', '工程师', '设计师', '销售',
'服务员', '公务员', '自由职业', '专业技术人员', '其他'
]],
// professionOptions: [[
// '', '', '', '', '', '',
// '', '', '', '', ''
// ]],
educationOptions: [[
'高中及以下', '大专', '本科', '硕士', '博士'
]]
// educationOptions: [[
// '', '', '', '', ''
// ]]
}
},
computed: {
addressList() {
return [this.provinces, this.citys, this.areas];
}
},
professionOptions() {
return [this.$store.state.careerList.map(item => item.title)]
},
educationOptions() {
return [this.$store.state.qualificationList.map(item => item.title)]
},
},
onLoad(options) {
//
@ -253,6 +257,9 @@ export default {
},
created() {
this.getAddressData()
// store
console.log('Store careerList:', this.$store.state.careerList)
console.log('Store qualificationList:', this.$store.state.qualificationList)
},
methods: {
//
@ -261,14 +268,14 @@ export default {
name: data.name || '李双欢',
phone: data.phone || '15478451233',
sex: data.sex || '男',
sexText: data.sex || '男',
// sexText: data.sex || '',
area: data.area || '湖南省长沙市区',
areaText: data.area || '湖南省长沙市区',
address: data.address || '阳光小区45栋二单元1203',
career: data.career || '专业技术人员',
careerText: data.career || '专业技术人员',
// careerText: data.career || '',
qualifications: data.qualifications || '本科',
qualificationsText: data.qualifications || '本科',
// qualificationsText: data.qualifications || '',
skill: data.skill || '计算机、跑步'
};
@ -283,18 +290,18 @@ export default {
try {
// 使name
this.provinces = chinaRegions;
console.log('成功加载地区数据,省份数量:', this.provinces.length);
// console.log(':', this.provinces.length);
this.handlePickValueDefault();
uni.showToast({
title: '地区数据加载成功',
icon: 'success'
});
// uni.showToast({
// title: '',
// icon: 'success'
// });
} catch (error) {
console.error('加载地区数据失败:', error);
uni.showToast({
title: '地区数据加载失败',
icon: 'error'
});
// console.error(':', error);
// uni.showToast({
// title: '',
// icon: 'error'
// });
}
},
handlePickValueDefault() {
@ -339,8 +346,7 @@ export default {
//
onGenderConfirm(value) {
this.formData.sex = value[0];
this.formData.sexText = value[0];
this.formData.sex = value.value[0];
},
//
@ -368,8 +374,8 @@ export default {
onAddressConfirm(e) {
console.log('确认选择的地区:', e);
if (e.value && e.value.length >= 3) {
this.formData.address = `${e.value[0].name}/${e.value[1].name}/${e.value[2].name}`;
this.formData.addressText = this.formData.address;
const selectedArea = `${e.value[0].name}/${e.value[1].name}/${e.value[2].name}`;
this.formData.area = selectedArea; // area
uni.showToast({
icon: 'success',
title: '地区选择成功'
@ -384,14 +390,14 @@ export default {
//
onProfessionConfirm(value) {
this.formData.career = value[0];
this.formData.careerText = value[0];
console.log('职业选择确认:', value.value[0]);
this.formData.career = value.value[0];
},
//
onEducationConfirm(value) {
this.formData.qualifications = value[0];
this.formData.qualificationsText = value[0];
console.log('学历选择确认:', value.value[0]);
this.formData.qualifications = value.value[0];
},
//
@ -414,16 +420,6 @@ export default {
//
await this.submitVolunteerApplication();
uni.showToast({
title: '申请提交成功',
icon: 'success'
});
setTimeout(() => {
uni.navigateBack();
}, 1500);
} catch (error) {
console.error('提交失败:', error);
uni.showToast({
@ -437,16 +433,26 @@ export default {
// API
async submitVolunteerApplication() {
// API
return new Promise((resolve) => {
// titleid
this.formData.career = this.$store.state.careerList.find(item => item.title === this.formData.career).id
this.formData.qualifications = this.$store.state.qualificationList.find(item => item.title === this.formData.qualifications).id
const res = await this.$api.home.applyVolunteer({...this.formData, ...this.emergencyData})
if (res.code === 200){
uni.showToast({
title: `${res.message}`,
icon: 'none'
})
setTimeout(() => {
console.log('志愿者申请数据:', {
...this.formData,
...this.emergencyData
});
resolve();
uni.navigateBack();
}, 1000);
});
}else {
uni.showToast({
title: res.msg,
icon: 'none'
})
}
}
}
}


+ 10
- 5
subPages/login/userInfo.vue View File

@ -174,11 +174,16 @@ export default {
},
//
getPhoneNumber(e) {
async getPhoneNumber(e) {
console.log('获取手机号回调', e);
if (e.detail.errMsg === 'getPhoneNumber:ok') {
// e.detail.code
console.log('获取手机号成功', e.detail);
const res = await this.$api.login.bindPhone({
phoneCode: e.detail.code
})
const str = JSON.parse(res.result);
this.userInfo.phone = str.phone_info.phoneNumber
uni.showToast({
title: '手机号获取成功',
icon: 'success'
@ -187,11 +192,11 @@ export default {
//
// this.userInfo.phone = '138****8888';
} else {
console.log('获取手机号失败', e.detail);
//
uni.showToast({
title: '获取手机号失败',
icon: 'none'
});
title: '手机号获取失败',
icon: 'error'
})
}
},


+ 42
- 44
subPages/my/myActivityDetail.vue View File

@ -3,7 +3,7 @@
<!-- 轮播图 -->
<view class="banner-container">
<swiper class="banner-swiper" height="450rpx" :indicator-dots="true" :autoplay="true" :interval="3000" :duration="500">
<swiper-item v-for="(image, index) in bannerImages" :key="index">
<swiper-item v-for="(image, index) in activityData.image.split(',')" :key="index">
<image class="banner-image" :src="image" mode="aspectFill"></image>
</swiper-item>
</swiper>
@ -14,7 +14,7 @@
<!-- 活动标题和标签 -->
<view class="title-section">
<view class="activity-badge">
<text class="badge-text">{{ activityData.duration }}</text>
<text class="badge-text">{{ activityData.score }}</text>
</view>
<text class="activity-title">{{ activityData.title }}</text>
</view>
@ -24,13 +24,13 @@
<view class="info-item">
<uv-icon name="calendar" size="16" color="#666"></uv-icon>
<text class="info-label">活动时间</text>
<text class="info-value">{{ activityData.time }}</text>
<text class="info-value">{{ activityData.activityTime }}</text>
</view>
<view class="info-item">
<uv-icon name="clock" size="16" color="#666"></uv-icon>
<text class="info-label">报名时间</text>
<text class="info-value">{{ activityData.registrationTime }}</text>
<text class="info-value">{{ activityData.startTime }}</text>
</view>
<view class="info-item">
@ -42,13 +42,13 @@
<view class="info-item">
<uv-icon name="phone" size="16" color="#666"></uv-icon>
<text class="info-label">取消规则</text>
<text class="info-value">{{ activityData.cancelRule }}</text>
<text class="info-value">{{ activityData.rule }}</text>
</view>
<view class="info-item">
<uv-icon name="map-fill" size="16" color="#666"></uv-icon>
<text class="info-label">活动地点</text>
<text class="info-value">{{ activityData.location }}</text>
<text class="info-value">{{ activityData.address }}</text>
</view>
</view>
@ -58,9 +58,7 @@
<text class="title-text">活动详情</text>
</view>
<view class="detail-content">
<text class="detail-text" v-for="(item, index) in activityData.details" :key="index">
{{ index + 1 }}. {{ item }}
</text>
<rich-text :nodes="activityData.details"></rich-text>
</view>
</view>
@ -71,12 +69,12 @@
</view>
<view class="gallery-grid">
<image
v-for="(image, index) in activityData.gallery"
v-for="(image, index) in activityData.atlas.split(',')"
:key="index"
class="gallery-image"
:src="image"
mode="aspectFill"
@click="previewImage(image, activityData.gallery)"
@click="previewImage(image, activityData.atlas.split(','))"
></image>
</view>
</view>
@ -90,13 +88,13 @@
<text class="action-text">分享</text>
</view>
<view class="action-item" @click="collectActivity">
<uv-icon name="heart-fill" size="24" :color="isCollected ? '#ff4757' : '#999'"></uv-icon>
<uv-icon name="heart-fill" size="24" :color="activityData.isCollection === 1 ? '#ff4757' : '#999'"></uv-icon>
<text class="action-text">收藏</text>
</view>
<view class="action-item">
<text class="participants-count">
<text :style="{'color': activityData.registeredCount >= activityData.maxCount ? '#999' : '#1488DB'}">{{ activityData.registeredCount }}</text>
/{{ activityData.maxCount }}</text>
<text :style="{'color': activityData.numActivity >= activityData.numLimit ? '#999' : '#1488DB'}">{{ activityData.numActivity }}</text>
/{{ activityData.numLimit }}</text>
<text class="action-text">已报名</text>
</view>
</view>
@ -139,49 +137,46 @@
export default {
data() {
return {
isCollected: false,
status: 'unsigned', // unsigned: , signed: , cancelled:
bannerImages: [
'/static/bannerImage.png',
'/static/bannerImage.png',
'/static/bannerImage.png'
],
activityData: {
title: '关爱自闭症儿童活动',
duration: '30积分',
time: '2025-06-12 14:30',
registrationTime: '2025-06-01 14:30——2025-09-01 14:30',
score: '30积分',
activityTime: '2025-06-12 14:30',
startTime: '2025-06-01 14:30——2025-09-01 14:30',
contact: '柳老师 (13256484512)',
cancelRule: '报名随时可取消',
location: '长沙市雨花区时代阳光大夏国际大厅2145',
registeredCount: 9,
maxCount: 30,
details: [
'身体健康,热爱志愿服务工作,富有责任感和奉献精神',
'遵纪守法,思想上进,作风正派,服从安排',
'年龄在60岁以下,具备广告宣传理能力'
],
gallery: [
'/static/bannerImage.png',
'/static/bannerImage.png',
'/static/bannerImage.png',
'/static/bannerImage.png'
]
}
rule: '报名随时可取消',
address: '长沙市雨花区时代阳光大夏国际大厅2145',
numActivity: 9,
numLimit: 30,
details: '身体健康,热爱志愿服务工作,富有责任感和奉献精神',
image: '/static/bannerImage.png,/static/bannerImage.png,/static/bannerImage.png',
atlas: '/static/bannerImage.png,/static/bannerImage.png,/static/bannerImage.png,/static/bannerImage.png',
isCollection: 0
},
activityId: null
}
},
onLoad(options) {
if (options.id) {
this.activityId = options.id
this.loadActivityDetail(options.id)
} else {
uni.showToast({
title: '没有给活动id',
icon: 'none'
})
}
if (options.status) {
this.status = options.status
}
},
methods: {
loadActivityDetail(id) {
async loadActivityDetail(id) {
// ID
console.log('加载活动详情:', id)
const res = await this.$api.activity.queryActivityById({
activityId: id
})
this.activityData = res.result
},
previewImage(current, urls) {
uni.previewImage({
@ -195,10 +190,13 @@ export default {
icon: 'none'
})
},
collectActivity() {
this.isCollected = !this.isCollected
async collectActivity() {
const res = await this.$api.activity.collectionActivity({
activityId: this.activityId
})
await this.loadActivityDetail(this.activityId)
uni.showToast({
title: this.isCollected ? '收藏成功' : '取消收藏',
title: `${res.message}`,
icon: 'none'
})
},


+ 57
- 63
subPages/my/myRegistrations.vue View File

@ -17,25 +17,25 @@
<!-- 活动列表 -->
<view class="activity-list">
<view class="activity-item" v-for="(item, index) in currentActivityList" :key="index" @click="viewActivityDetail(item)">
<image class="activity-image" :src="item.image" mode="aspectFill"></image>
<image class="activity-image" :src="item.communityActivity.image" mode="aspectFill"></image>
<view class="activity-info">
<view class="title-row">
<view class="activity-badge">
<text class="badge-text">30</text>
</view>
<text class="activity-title">{{item.title}}</text>
<text class="activity-title">{{item.communityActivity.title}}</text>
</view>
<view class="activity-location">
<uv-icon name="map-fill" size="14" color="#999"></uv-icon>
<text class="location-text">{{item.location}}</text>
<text class="location-text">{{item.communityActivity.address}}</text>
</view>
<view class="activity-time">
<uv-icon name="calendar" size="14" color="#999"></uv-icon>
<text class="time-text">{{item.time}}</text>
<text class="time-text">{{item.communityActivity.activityTime}}</text>
</view>
<view class="activity-participants">
<uv-icon name="account-fill" size="14" color="#999"></uv-icon>
<text class="participants-text">报名人数{{item.participants}}/{{item.maxParticipants}}</text>
<text class="participants-text">报名人数{{item.communityActivity.numActivity}}/{{item.communityActivity.numLimit}}</text>
</view>
</view>
<view class="activity-action">
@ -86,67 +86,18 @@
],
//
unsignedList: [
{
id: 1,
title: '关爱自闭症儿童活动',
image: '/static/bannerImage.png',
location: '长沙市雨花区时代阳光大道国际大厅2145',
time: '2025-06-12 14:30',
participants: 30,
maxParticipants: 30
},
{
id: 2,
title: '关爱自闭症儿童活动',
image: '/static/bannerImage.png',
location: '长沙市雨花区时代阳光大道国际大厅2145',
time: '2025-06-12 14:30',
participants: 30,
maxParticipants: 30
},
{
id: 3,
title: '关爱自闭症儿童活动',
image: '/static/bannerImage.png',
location: '长沙市雨花区时代阳光大道国际大厅2145',
time: '2025-06-12 14:30',
participants: 30,
maxParticipants: 30
},
{
id: 4,
title: '关爱自闭症儿童活动',
image: '/static/bannerImage.png',
location: '长沙市雨花区时代阳光大道国际大厅2145',
time: '2025-06-12 14:30',
participants: 30,
maxParticipants: 30
}
],
//
signedList: [
{
id: 5,
title: '关爱自闭症儿童活动',
image: '/static/bannerImage.png',
location: '长沙市雨花区时代阳光大道国际大厅2145',
time: '2025-06-12 14:30',
participants: 30,
maxParticipants: 30
}
],
//
cancelledList: [
{
id: 6,
title: '关爱自闭症儿童活动',
image: '/static/bannerImage.png',
location: '长沙市雨花区时代阳光大道国际大厅2145',
time: '2025-06-12 14:30',
participants: 30,
maxParticipants: 30
}
]
],
pageNo: 1,
pageSize: 10,
}
},
computed: {
@ -166,6 +117,8 @@
methods: {
tabChange(index) {
this.currentTab = index
this.initData()
this.getActivityList()
},
viewActivityDetail(activity) {
// tab
@ -180,10 +133,32 @@
case 2:
status = 'cancelled' //
break
}
uni.navigateTo({
url: `/subPages/my/myActivityDetail?id=${activity.id}&status=${status}`
}
uni.navigateTo({
url: `/subPages/my/myActivityDetail?id=${activity.activityId}&status=${status}`
})
},
async getActivityList() {
const res = await this.$api.activity.queryApplyList({
pageNo: this.pageNo,
pageSize: this.pageSize,
status: this.currentTab
})
if (res.result.records.length){
if (this.currentTab === 0) {
this.unsignedList = res.result.records
}else if (this.currentTab === 1) {
this.signedList = res.result.records
}else {
this.cancelledList = res.result.records
}
this.pageNo++
}else {
uni.showToast({
title: '暂无数据',
icon: 'none'
})
}
},
// scanQRCode(activity) {
// //
@ -205,6 +180,25 @@
// }
// })
// }
initData() {
this.unsignedList = []
this.signedList = []
this.cancelledList = []
this.pageNo = 1
this.pageSize = 10
}
},
onShow() {
this.initData()
this.getActivityList()
},
onReachBottom() {
this.getActivityList()
},
async onPullDownRefresh() {
this.initData()
await this.getActivityList()
uni.stopPullDownRefresh()
}
}
</script>


+ 21
- 1
subPages/my/productFavorites.vue View File

@ -62,13 +62,33 @@ export default {
pageNo: this.pageNo,
pageSize: this.pageSize
})
this.favoritesList = res.result.records
if (res.result.records.length) {
this.favoritesList.push(...res.result.records)
this.pageNo++
}else {
uni.showToast({
title: '暂无数据',
icon: 'none'
})
}
},
initData() {
this.favoritesList = []
this.pageNo = 1
this.pageSize = 10
}
},
async onShow() {
this.initData()
//
await this.getGoodsList()
},
onReachBottom() {
this.getGoodsList()
},
onPullDownRefresh() {
this.initData()
this.getGoodsList()
}
}
</script>


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/components/HomePageNav.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/components/index/RecommendedActivities.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/components/index/VolunteerFeatures.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/components/index/VolunteerHeader.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/components/index/VolunteerRanking.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/components/shop/PointsCard.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/components/shop/ShopContent.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/activity.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/community.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/my.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/shop.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/subPages/community/publishPost.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/subPages/index/activityCalendar.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/subPages/index/activityDetail.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/subPages/index/announcement.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/subPages/index/announcementDetail.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/subPages/index/components/SignUpForm.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/subPages/index/organizationIntroduction.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/subPages/index/ranking.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/subPages/index/volunteerApply.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/subPages/login/login.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/subPages/login/userInfo.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/subPages/my/activityCheckin.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/subPages/my/activityFavorites.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/subPages/my/checkinCode.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/subPages/my/exchangeDetail.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/subPages/my/exchangeRecord.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/subPages/my/myActivityDetail.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/subPages/my/myProfile.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/subPages/my/myRegistrations.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/subPages/my/productFavorites.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/subPages/shop/goodsDetail.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/subPages/shop/pointsDetail.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-action-sheet/components/uv-action-sheet/uv-action-sheet.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-badge/components/uv-badge/uv-badge.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-button/components/uv-button/uv-button.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-empty/components/uv-empty/uv-empty.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-form/components/uv-form-item/uv-form-item.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-icon/components/uv-icon/uv-icon.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-input/components/uv-input/uv-input.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-line/components/uv-line/uv-line.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-loading-icon/components/uv-loading-icon/uv-loading-icon.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-overlay/components/uv-overlay/uv-overlay.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-picker/components/uv-picker/uv-picker.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-popup/components/uv-popup/uv-popup.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-qrcode/components/uv-qrcode/uv-qrcode.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-safe-bottom/components/uv-safe-bottom/uv-safe-bottom.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-search/components/uv-search/uv-search.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-status-bar/components/uv-status-bar/uv-status-bar.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-swiper/components/uv-swiper-indicator/uv-swiper-indicator.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-swiper/components/uv-swiper/uv-swiper.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-tabs/components/uv-tabs/uv-tabs.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-textarea/components/uv-textarea/uv-textarea.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-toolbar/components/uv-toolbar/uv-toolbar.js.map
File diff suppressed because it is too large
View File


+ 3
- 2
unpackage/dist/dev/mp-weixin/common/vendor.js
File diff suppressed because it is too large
View File


+ 2
- 2
unpackage/dist/dev/mp-weixin/pages/components/index/RecommendedActivities.json View File

@ -1,7 +1,7 @@
{
"component": true,
"usingComponents": {
"uv-icon": "/uni_modules/uv-icon/components/uv-icon/uv-icon",
"uv-button": "/uni_modules/uv-button/components/uv-button/uv-button"
}
},
"component": true
}

+ 308
- 288
unpackage/dist/dev/mp-weixin/static/china-regions.json View File

@ -3,68 +3,73 @@
"name": "北京市",
"children": [
{
"name": "东城区",
"children": []
},
{
"name": "西城区",
"children": []
},
{
"name": "朝阳区",
"children": []
},
{
"name": "丰台区",
"children": []
},
{
"name": "石景山区",
"children": []
},
{
"name": "海淀区",
"children": []
},
{
"name": "门头沟区",
"children": []
},
{
"name": "房山区",
"children": []
},
{
"name": "通州区",
"children": []
},
{
"name": "顺义区",
"children": []
},
{
"name": "昌平区",
"children": []
},
{
"name": "大兴区",
"children": []
},
{
"name": "怀柔区",
"children": []
},
{
"name": "平谷区",
"children": []
},
{
"name": "密云区",
"children": []
},
{
"name": "延庆区",
"children": []
"name": "北京市",
"children": [
{
"name": "东城区",
"children": []
},
{
"name": "西城区",
"children": []
},
{
"name": "朝阳区",
"children": []
},
{
"name": "丰台区",
"children": []
},
{
"name": "石景山区",
"children": []
},
{
"name": "海淀区",
"children": []
},
{
"name": "门头沟区",
"children": []
},
{
"name": "房山区",
"children": []
},
{
"name": "通州区",
"children": []
},
{
"name": "顺义区",
"children": []
},
{
"name": "昌平区",
"children": []
},
{
"name": "大兴区",
"children": []
},
{
"name": "怀柔区",
"children": []
},
{
"name": "平谷区",
"children": []
},
{
"name": "密云区",
"children": []
},
{
"name": "延庆区",
"children": []
}
]
}
]
},
@ -72,68 +77,73 @@
"name": "天津市",
"children": [
{
"name": "和平区",
"children": []
},
{
"name": "河东区",
"children": []
},
{
"name": "河西区",
"children": []
},
{
"name": "南开区",
"children": []
},
{
"name": "河北区",
"children": []
},
{
"name": "红桥区",
"children": []
},
{
"name": "东丽区",
"children": []
},
{
"name": "西青区",
"children": []
},
{
"name": "津南区",
"children": []
},
{
"name": "北辰区",
"children": []
},
{
"name": "武清区",
"children": []
},
{
"name": "宝坻区",
"children": []
},
{
"name": "滨海新区",
"children": []
},
{
"name": "宁河区",
"children": []
},
{
"name": "静海区",
"children": []
},
{
"name": "蓟州区",
"children": []
"name": "天津市",
"children": [
{
"name": "和平区",
"children": []
},
{
"name": "河东区",
"children": []
},
{
"name": "河西区",
"children": []
},
{
"name": "南开区",
"children": []
},
{
"name": "河北区",
"children": []
},
{
"name": "红桥区",
"children": []
},
{
"name": "东丽区",
"children": []
},
{
"name": "西青区",
"children": []
},
{
"name": "津南区",
"children": []
},
{
"name": "北辰区",
"children": []
},
{
"name": "武清区",
"children": []
},
{
"name": "宝坻区",
"children": []
},
{
"name": "滨海新区",
"children": []
},
{
"name": "宁河区",
"children": []
},
{
"name": "静海区",
"children": []
},
{
"name": "蓟州区",
"children": []
}
]
}
]
},
@ -141,68 +151,73 @@
"name": "上海市",
"children": [
{
"name": "黄浦区",
"children": []
},
{
"name": "徐汇区",
"children": []
},
{
"name": "长宁区",
"children": []
},
{
"name": "静安区",
"children": []
},
{
"name": "普陀区",
"children": []
},
{
"name": "虹口区",
"children": []
},
{
"name": "杨浦区",
"children": []
},
{
"name": "闵行区",
"children": []
},
{
"name": "宝山区",
"children": []
},
{
"name": "嘉定区",
"children": []
},
{
"name": "浦东新区",
"children": []
},
{
"name": "金山区",
"children": []
},
{
"name": "松江区",
"children": []
},
{
"name": "青浦区",
"children": []
},
{
"name": "奉贤区",
"children": []
},
{
"name": "崇明区",
"children": []
"name": "上海市",
"children": [
{
"name": "黄浦区",
"children": []
},
{
"name": "徐汇区",
"children": []
},
{
"name": "长宁区",
"children": []
},
{
"name": "静安区",
"children": []
},
{
"name": "普陀区",
"children": []
},
{
"name": "虹口区",
"children": []
},
{
"name": "杨浦区",
"children": []
},
{
"name": "闵行区",
"children": []
},
{
"name": "宝山区",
"children": []
},
{
"name": "嘉定区",
"children": []
},
{
"name": "浦东新区",
"children": []
},
{
"name": "金山区",
"children": []
},
{
"name": "松江区",
"children": []
},
{
"name": "青浦区",
"children": []
},
{
"name": "奉贤区",
"children": []
},
{
"name": "崇明区",
"children": []
}
]
}
]
},
@ -210,108 +225,113 @@
"name": "重庆市",
"children": [
{
"name": "万州区",
"children": []
},
{
"name": "涪陵区",
"children": []
},
{
"name": "渝中区",
"children": []
},
{
"name": "大渡口区",
"children": []
},
{
"name": "江北区",
"children": []
},
{
"name": "沙坪坝区",
"children": []
},
{
"name": "九龙坡区",
"children": []
},
{
"name": "南岸区",
"children": []
},
{
"name": "北碚区",
"children": []
},
{
"name": "綦江区",
"children": []
},
{
"name": "大足区",
"children": []
},
{
"name": "渝北区",
"children": []
},
{
"name": "巴南区",
"children": []
},
{
"name": "黔江区",
"children": []
},
{
"name": "长寿区",
"children": []
},
{
"name": "江津区",
"children": []
},
{
"name": "合川区",
"children": []
},
{
"name": "永川区",
"children": []
},
{
"name": "南川区",
"children": []
},
{
"name": "璧山区",
"children": []
},
{
"name": "铜梁区",
"children": []
},
{
"name": "潼南区",
"children": []
},
{
"name": "荣昌区",
"children": []
},
{
"name": "开州区",
"children": []
},
{
"name": "梁平区",
"children": []
},
{
"name": "武隆区",
"children": []
"name": "重庆市",
"children": [
{
"name": "万州区",
"children": []
},
{
"name": "涪陵区",
"children": []
},
{
"name": "渝中区",
"children": []
},
{
"name": "大渡口区",
"children": []
},
{
"name": "江北区",
"children": []
},
{
"name": "沙坪坝区",
"children": []
},
{
"name": "九龙坡区",
"children": []
},
{
"name": "南岸区",
"children": []
},
{
"name": "北碚区",
"children": []
},
{
"name": "綦江区",
"children": []
},
{
"name": "大足区",
"children": []
},
{
"name": "渝北区",
"children": []
},
{
"name": "巴南区",
"children": []
},
{
"name": "黔江区",
"children": []
},
{
"name": "长寿区",
"children": []
},
{
"name": "江津区",
"children": []
},
{
"name": "合川区",
"children": []
},
{
"name": "永川区",
"children": []
},
{
"name": "南川区",
"children": []
},
{
"name": "璧山区",
"children": []
},
{
"name": "铜梁区",
"children": []
},
{
"name": "潼南区",
"children": []
},
{
"name": "荣昌区",
"children": []
},
{
"name": "开州区",
"children": []
},
{
"name": "梁平区",
"children": []
},
{
"name": "武隆区",
"children": []
}
]
}
]
},


+ 2
- 2
unpackage/dist/dev/mp-weixin/subPages/index/components/SignUpForm.json View File

@ -1,10 +1,10 @@
{
"component": true,
"usingComponents": {
"uv-popup": "/uni_modules/uv-popup/components/uv-popup/uv-popup",
"uv-input": "/uni_modules/uv-input/components/uv-input/uv-input",
"uv-icon": "/uni_modules/uv-icon/components/uv-icon/uv-icon",
"uv-button": "/uni_modules/uv-button/components/uv-button/uv-button",
"uv-picker": "/uni_modules/uv-picker/components/uv-picker/uv-picker"
}
},
"component": true
}

+ 80
- 48
unpackage/dist/dev/mp-weixin/subPages/index/volunteerApply.js View File

@ -198,14 +198,13 @@ var _default = {
name: '',
phone: '',
sex: '',
sexText: '',
// sexText: '',
area: '',
areaText: '',
address: '',
career: '',
careerText: '',
// careerText: '',
qualifications: '',
qualificationsText: '',
// qualificationsText: '',
skill: ''
},
emergencyData: {
@ -261,14 +260,32 @@ var _default = {
areas: [],
//区
pickerValue: [0, 0, 0],
defaultValue: [3442, 1, 2],
professionOptions: [['学生', '教师', '医生', '工程师', '设计师', '销售', '服务员', '公务员', '自由职业', '专业技术人员', '其他']],
educationOptions: [['高中及以下', '大专', '本科', '硕士', '博士']]
defaultValue: [3442, 1, 2]
// professionOptions: [[
// '学生', '教师', '医生', '工程师', '设计师', '销售',
// '服务员', '公务员', '自由职业', '专业技术人员', '其他'
// ]],
// educationOptions: [[
// '高中及以下', '大专', '本科', '硕士', '博士'
// ]]
};
},
computed: {
addressList: function addressList() {
return [this.provinces, this.citys, this.areas];
},
professionOptions: function professionOptions() {
return [this.$store.state.careerList.map(function (item) {
return item.title;
})];
},
educationOptions: function educationOptions() {
return [this.$store.state.qualificationList.map(function (item) {
return item.title;
})];
}
},
onLoad: function onLoad(options) {
@ -279,6 +296,9 @@ var _default = {
},
created: function created() {
this.getAddressData();
// 调试store数据
console.log('Store careerList:', this.$store.state.careerList);
console.log('Store qualificationList:', this.$store.state.qualificationList);
},
methods: {
// 加载已有数据(编辑模式)
@ -287,14 +307,14 @@ var _default = {
name: data.name || '李双欢',
phone: data.phone || '15478451233',
sex: data.sex || '男',
sexText: data.sex || '男',
// sexText: data.sex || '男',
area: data.area || '湖南省长沙市区',
areaText: data.area || '湖南省长沙市区',
address: data.address || '阳光小区45栋二单元1203',
career: data.career || '专业技术人员',
careerText: data.career || '专业技术人员',
// careerText: data.career || '专业技术人员',
qualifications: data.qualifications || '本科',
qualificationsText: data.qualifications || '本科',
// qualificationsText: data.qualifications || '本科',
skill: data.skill || '计算机、跑步'
};
this.emergencyData = {
@ -308,18 +328,18 @@ var _default = {
try {
// 直接使用导入的地区数据(已简化,只包含name字段)
this.provinces = _chinaRegions.default;
console.log('成功加载地区数据,省份数量:', this.provinces.length);
// console.log('成功加载地区数据,省份数量:', this.provinces.length);
this.handlePickValueDefault();
uni.showToast({
title: '地区数据加载成功',
icon: 'success'
});
// uni.showToast({
// title: '地区数据加载成功',
// icon: 'success'
// });
} catch (error) {
console.error('加载地区数据失败:', error);
uni.showToast({
title: '地区数据加载失败',
icon: 'error'
});
// console.error('加载地区数据失败:', error);
// uni.showToast({
// title: '地区数据加载失败',
// icon: 'error'
// });
}
},
handlePickValueDefault: function handlePickValueDefault() {
@ -360,8 +380,7 @@ var _default = {
},
// 性别选择确认
onGenderConfirm: function onGenderConfirm(value) {
this.formData.sex = value[0];
this.formData.sexText = value[0];
this.formData.sex = value.value[0];
},
// 地区选择变化(三级联动)
onAddressChange: function onAddressChange(e) {
@ -390,8 +409,8 @@ var _default = {
onAddressConfirm: function onAddressConfirm(e) {
console.log('确认选择的地区:', e);
if (e.value && e.value.length >= 3) {
this.formData.address = "".concat(e.value[0].name, "/").concat(e.value[1].name, "/").concat(e.value[2].name);
this.formData.addressText = this.formData.address;
var selectedArea = "".concat(e.value[0].name, "/").concat(e.value[1].name, "/").concat(e.value[2].name);
this.formData.area = selectedArea; // 给area字段赋值用于表单验证
uni.showToast({
icon: 'success',
title: '地区选择成功'
@ -405,13 +424,13 @@ var _default = {
},
// 职业选择确认
onProfessionConfirm: function onProfessionConfirm(value) {
this.formData.career = value[0];
this.formData.careerText = value[0];
console.log('职业选择确认:', value.value[0]);
this.formData.career = value.value[0];
},
// 学历选择确认
onEducationConfirm: function onEducationConfirm(value) {
this.formData.qualifications = value[0];
this.formData.qualificationsText = value[0];
console.log('学历选择确认:', value.value[0]);
this.formData.qualifications = value.value[0];
},
// 提交申请
submitApplication: function submitApplication() {
@ -449,50 +468,63 @@ var _default = {
_context.next = 12;
return _this.submitVolunteerApplication();
case 12:
uni.showToast({
title: '申请提交成功',
icon: 'success'
});
setTimeout(function () {
uni.navigateBack();
}, 1500);
_context.next = 20;
_context.next = 18;
break;
case 16:
_context.prev = 16;
case 14:
_context.prev = 14;
_context.t0 = _context["catch"](0);
console.error('提交失败:', _context.t0);
uni.showToast({
title: '提交失败,请重试',
icon: 'none'
});
case 20:
_context.prev = 20;
case 18:
_context.prev = 18;
_this.submitting = false;
return _context.finish(20);
case 23:
return _context.finish(18);
case 21:
case "end":
return _context.stop();
}
}
}, _callee, null, [[0, 16, 20, 23]]);
}, _callee, null, [[0, 14, 18, 21]]);
}))();
},
// 提交志愿者申请API
submitVolunteerApplication: function submitVolunteerApplication() {
var _this2 = this;
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
var res;
return _regenerator.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
return _context2.abrupt("return", new Promise(function (resolve) {
// 要求通过title获取id
_this2.formData.career = _this2.$store.state.careerList.find(function (item) {
return item.title === _this2.formData.career;
}).id;
_this2.formData.qualifications = _this2.$store.state.qualificationList.find(function (item) {
return item.title === _this2.formData.qualifications;
}).id;
_context2.next = 4;
return _this2.$api.home.applyVolunteer(_objectSpread(_objectSpread({}, _this2.formData), _this2.emergencyData));
case 4:
res = _context2.sent;
if (res.code === 200) {
uni.showToast({
title: "".concat(res.message),
icon: 'none'
});
setTimeout(function () {
console.log('志愿者申请数据:', _objectSpread(_objectSpread({}, _this2.formData), _this2.emergencyData));
resolve();
uni.navigateBack();
}, 1000);
}));
case 1:
} else {
uni.showToast({
title: res.msg,
icon: 'none'
});
}
case 6:
case "end":
return _context2.stop();
}


+ 1
- 1
unpackage/dist/dev/mp-weixin/subPages/index/volunteerApply.wxml
File diff suppressed because it is too large
View File


+ 64
- 38
unpackage/dist/dev/mp-weixin/subPages/login/userInfo.js View File

@ -356,71 +356,97 @@ var _default = {
},
// 获取手机号
getPhoneNumber: function getPhoneNumber(e) {
console.log('获取手机号回调', e);
if (e.detail.errMsg === 'getPhoneNumber:ok') {
// 获取成功,可以通过e.detail.code发送到后端换取手机号
console.log('获取手机号成功', e.detail);
uni.showToast({
title: '手机号获取成功',
icon: 'success'
});
// 这里需要将e.detail.code发送到后端解密获取真实手机号
// 暂时模拟设置手机号
// this.userInfo.phone = '138****8888';
} else {
console.log('获取手机号失败', e.detail);
uni.showToast({
title: '获取手机号失败',
icon: 'none'
});
}
},
// 提交用户信息
submitUserInfo: function submitUserInfo() {
var _this3 = this;
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
var res, str;
return _regenerator.default.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
if (_this3.userInfo.nickName.trim()) {
_context3.next = 3;
console.log('获取手机号回调', e);
if (!(e.detail.errMsg === 'getPhoneNumber:ok')) {
_context3.next = 11;
break;
}
// 获取成功,可以通过e.detail.code发送到后端换取手机号
console.log('获取手机号成功', e.detail);
_context3.next = 5;
return _this3.$api.login.bindPhone({
phoneCode: e.detail.code
});
case 5:
res = _context3.sent;
str = JSON.parse(res.result);
_this3.userInfo.phone = str.phone_info.phoneNumber;
uni.showToast({
title: '手机号获取成功',
icon: 'success'
});
// 这里需要将e.detail.code发送到后端解密获取真实手机号
// 暂时模拟设置手机号
// this.userInfo.phone = '138****8888';
_context3.next = 12;
break;
case 11:
// 如果失败了就申请开启权限
uni.showToast({
title: '手机号获取失败',
icon: 'error'
});
case 12:
case "end":
return _context3.stop();
}
}
}, _callee3);
}))();
},
// 提交用户信息
submitUserInfo: function submitUserInfo() {
var _this4 = this;
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
return _regenerator.default.wrap(function _callee4$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
if (_this4.userInfo.nickName.trim()) {
_context4.next = 3;
break;
}
uni.showToast({
title: '请输入昵称',
icon: 'none'
});
return _context3.abrupt("return");
return _context4.abrupt("return");
case 3:
if (_this3.userInfo.phone.trim()) {
_context3.next = 6;
if (_this4.userInfo.phone.trim()) {
_context4.next = 6;
break;
}
uni.showToast({
title: '请输入手机号',
icon: 'none'
});
return _context3.abrupt("return");
return _context4.abrupt("return");
case 6:
if (/^1[3-9]\d{9}$/.test(_this3.userInfo.phone)) {
_context3.next = 9;
if (/^1[3-9]\d{9}$/.test(_this4.userInfo.phone)) {
_context4.next = 9;
break;
}
uni.showToast({
title: '请输入正确的手机号',
icon: 'none'
});
return _context3.abrupt("return");
return _context4.abrupt("return");
case 9:
console.log('提交用户信息', _this3.userInfo);
console.log('提交用户信息', _this4.userInfo);
// 提交用户信息
_context3.next = 12;
return _this3.$api.user.updateUser({
nickName: _this3.userInfo.nickName,
phone: _this3.userInfo.phone,
headImage: _this3.userInfo.headImage
_context4.next = 12;
return _this4.$api.user.updateUser({
nickName: _this4.userInfo.nickName,
phone: _this4.userInfo.phone,
headImage: _this4.userInfo.headImage
});
case 12:
// 这里可以调用API保存用户信息
@ -437,10 +463,10 @@ var _default = {
}, 1500);
case 14:
case "end":
return _context3.stop();
return _context4.stop();
}
}
}, _callee3);
}, _callee4);
}))();
}
}


+ 1
- 0
unpackage/dist/dev/mp-weixin/subPages/my/exchangeDetail.json View File

@ -1,5 +1,6 @@
{
"navigationBarTitleText": "商品详情",
"enableBackButton": true,
"usingComponents": {
"uv-swiper": "/uni_modules/uv-swiper/components/uv-swiper/uv-swiper"
}

+ 1
- 0
unpackage/dist/dev/mp-weixin/subPages/my/exchangeRecord.json View File

@ -1,6 +1,7 @@
{
"navigationBarTitleText": "兑换记录",
"enablePullDownRefresh": true,
"enableBackButton": true,
"usingComponents": {
"uv-icon": "/uni_modules/uv-icon/components/uv-icon/uv-icon",
"uv-button": "/uni_modules/uv-button/components/uv-button/uv-button"


+ 92
- 23
unpackage/dist/dev/mp-weixin/subPages/my/myActivityDetail.js View File

@ -128,6 +128,26 @@ var render = function () {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
var l0 = _vm.activityData.image.split(",")
var l1 = _vm.activityData.atlas.split(",")
if (!_vm._isMounted) {
_vm.e0 = function ($event, image) {
var _temp = arguments[arguments.length - 1].currentTarget.dataset,
_temp2 = _temp.eventParams || _temp["event-params"],
image = _temp2.image
var _temp, _temp2
_vm.previewImage(image, _vm.activityData.atlas.split(","))
}
}
_vm.$mp.data = Object.assign(
{},
{
$root: {
l0: l0,
l1: l1,
},
}
)
}
var recyclableRender = false
var staticRenderFns = []
@ -163,12 +183,13 @@ __webpack_require__.r(__webpack_exports__);
"use strict";
/* WEBPACK VAR INJECTION */(function(uni) {
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 4);
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
//
//
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 36));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 38));
//
//
//
@ -307,28 +328,35 @@ exports.default = void 0;
var _default = {
data: function data() {
return {
isCollected: false,
status: 'unsigned',
// unsigned: 未签到, signed: 已签到, cancelled: 系统取消
bannerImages: ['/static/bannerImage.png', '/static/bannerImage.png', '/static/bannerImage.png'],
activityData: {
title: '关爱自闭症儿童活动',
duration: '30积分',
time: '2025-06-12 14:30',
registrationTime: '2025-06-01 14:30——2025-09-01 14:30',
score: '30积分',
activityTime: '2025-06-12 14:30',
startTime: '2025-06-01 14:30——2025-09-01 14:30',
contact: '柳老师 (13256484512)',
cancelRule: '报名随时可取消',
location: '长沙市雨花区时代阳光大夏国际大厅2145',
registeredCount: 9,
maxCount: 30,
details: ['身体健康,热爱志愿服务工作,富有责任感和奉献精神', '遵纪守法,思想上进,作风正派,服从安排', '年龄在60岁以下,具备广告宣传理能力'],
gallery: ['/static/bannerImage.png', '/static/bannerImage.png', '/static/bannerImage.png', '/static/bannerImage.png']
}
rule: '报名随时可取消',
address: '长沙市雨花区时代阳光大夏国际大厅2145',
numActivity: 9,
numLimit: 30,
details: '身体健康,热爱志愿服务工作,富有责任感和奉献精神',
image: '/static/bannerImage.png,/static/bannerImage.png,/static/bannerImage.png',
atlas: '/static/bannerImage.png,/static/bannerImage.png,/static/bannerImage.png,/static/bannerImage.png',
isCollection: 0
},
activityId: null
};
},
onLoad: function onLoad(options) {
if (options.id) {
this.activityId = options.id;
this.loadActivityDetail(options.id);
} else {
uni.showToast({
title: '没有给活动id',
icon: 'none'
});
}
if (options.status) {
this.status = options.status;
@ -336,8 +364,27 @@ var _default = {
},
methods: {
loadActivityDetail: function loadActivityDetail(id) {
// 根据ID加载活动详情
console.log('加载活动详情:', id);
var _this = this;
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
var res;
return _regenerator.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return _this.$api.activity.queryActivityById({
activityId: id
});
case 2:
res = _context.sent;
_this.activityData = res.result;
case 4:
case "end":
return _context.stop();
}
}
}, _callee);
}))();
},
previewImage: function previewImage(current, urls) {
uni.previewImage({
@ -352,20 +399,42 @@ var _default = {
});
},
collectActivity: function collectActivity() {
this.isCollected = !this.isCollected;
uni.showToast({
title: this.isCollected ? '收藏成功' : '取消收藏',
icon: 'none'
});
var _this2 = this;
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
var res;
return _regenerator.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return _this2.$api.activity.collectionActivity({
activityId: _this2.activityId
});
case 2:
res = _context2.sent;
_context2.next = 5;
return _this2.loadActivityDetail(_this2.activityId);
case 5:
uni.showToast({
title: "".concat(res.message),
icon: 'none'
});
case 6:
case "end":
return _context2.stop();
}
}
}, _callee2);
}))();
},
scanQRCode: function scanQRCode() {
var _this = this;
var _this3 = this;
// 扫码签到功能
uni.scanCode({
success: function success(res) {
console.log('扫码结果:', res);
// 这里可以调用签到API
_this.status = 'signed';
_this3.status = 'signed';
uni.showToast({
title: '签到成功',
icon: 'success'


+ 1
- 1
unpackage/dist/dev/mp-weixin/subPages/my/myActivityDetail.wxml
File diff suppressed because it is too large
View File


+ 86
- 53
unpackage/dist/dev/mp-weixin/subPages/my/myRegistrations.js View File

@ -172,10 +172,13 @@ __webpack_require__.r(__webpack_exports__);
"use strict";
/* WEBPACK VAR INJECTION */(function(uni) {
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 4);
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 36));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 38));
//
//
//
@ -264,59 +267,13 @@ var _default = {
name: '系统取消'
}],
// 未签到活动列表
unsignedList: [{
id: 1,
title: '关爱自闭症儿童活动',
image: '/static/bannerImage.png',
location: '长沙市雨花区时代阳光大道国际大厅2145',
time: '2025-06-12 14:30',
participants: 30,
maxParticipants: 30
}, {
id: 2,
title: '关爱自闭症儿童活动',
image: '/static/bannerImage.png',
location: '长沙市雨花区时代阳光大道国际大厅2145',
time: '2025-06-12 14:30',
participants: 30,
maxParticipants: 30
}, {
id: 3,
title: '关爱自闭症儿童活动',
image: '/static/bannerImage.png',
location: '长沙市雨花区时代阳光大道国际大厅2145',
time: '2025-06-12 14:30',
participants: 30,
maxParticipants: 30
}, {
id: 4,
title: '关爱自闭症儿童活动',
image: '/static/bannerImage.png',
location: '长沙市雨花区时代阳光大道国际大厅2145',
time: '2025-06-12 14:30',
participants: 30,
maxParticipants: 30
}],
unsignedList: [],
// 已签到活动列表
signedList: [{
id: 5,
title: '关爱自闭症儿童活动',
image: '/static/bannerImage.png',
location: '长沙市雨花区时代阳光大道国际大厅2145',
time: '2025-06-12 14:30',
participants: 30,
maxParticipants: 30
}],
signedList: [],
// 系统取消活动列表
cancelledList: [{
id: 6,
title: '关爱自闭症儿童活动',
image: '/static/bannerImage.png',
location: '长沙市雨花区时代阳光大道国际大厅2145',
time: '2025-06-12 14:30',
participants: 30,
maxParticipants: 30
}]
cancelledList: [],
pageNo: 1,
pageSize: 10
};
},
computed: {
@ -336,6 +293,8 @@ var _default = {
methods: {
tabChange: function tabChange(index) {
this.currentTab = index;
this.initData();
this.getActivityList();
},
viewActivityDetail: function viewActivityDetail(activity) {
// 查看活动详情,根据当前tab状态跳转到对应页面
@ -352,9 +311,49 @@ var _default = {
break;
}
uni.navigateTo({
url: "/subPages/my/myActivityDetail?id=".concat(activity.id, "&status=").concat(status)
url: "/subPages/my/myActivityDetail?id=".concat(activity.activityId, "&status=").concat(status)
});
} // scanQRCode(activity) {
},
getActivityList: function getActivityList() {
var _this = this;
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
var res;
return _regenerator.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return _this.$api.activity.queryApplyList({
pageNo: _this.pageNo,
pageSize: _this.pageSize,
status: _this.currentTab
});
case 2:
res = _context.sent;
if (res.result.records.length) {
if (_this.currentTab === 0) {
_this.unsignedList = res.result.records;
} else if (_this.currentTab === 1) {
_this.signedList = res.result.records;
} else {
_this.cancelledList = res.result.records;
}
_this.pageNo++;
} else {
uni.showToast({
title: '暂无数据',
icon: 'none'
});
}
case 4:
case "end":
return _context.stop();
}
}
}, _callee);
}))();
},
// scanQRCode(activity) {
// // 扫码签到
// uni.scanCode({
// success: (res) => {
@ -374,6 +373,40 @@ var _default = {
// }
// })
// }
initData: function initData() {
this.unsignedList = [];
this.signedList = [];
this.cancelledList = [];
this.pageNo = 1;
this.pageSize = 10;
}
},
onShow: function onShow() {
this.initData();
this.getActivityList();
},
onReachBottom: function onReachBottom() {
this.getActivityList();
},
onPullDownRefresh: function onPullDownRefresh() {
var _this2 = this;
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
return _regenerator.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_this2.initData();
_context2.next = 3;
return _this2.getActivityList();
case 3:
uni.stopPullDownRefresh();
case 4:
case "end":
return _context2.stop();
}
}
}, _callee2);
}))();
}
};
exports.default = _default;


+ 1
- 1
unpackage/dist/dev/mp-weixin/subPages/my/myRegistrations.wxml View File

@ -1 +1 @@
<view class="my-registrations data-v-6f0d9d98"><view class="custom-tabs data-v-6f0d9d98"><block wx:for="{{tabList}}" wx:for-item="tab" wx:for-index="index" wx:key="index"><view data-event-opts="{{[['tap',[['tabChange',[index]]]]]}}" class="{{['tab-item','data-v-6f0d9d98',(currentTab===index)?'active':'']}}" bindtap="__e"><text class="{{['tab-text','data-v-6f0d9d98',(currentTab===index)?'active':'']}}">{{tab.name}}</text><block wx:if="{{currentTab===index}}"><view class="tab-line data-v-6f0d9d98"></view></block></view></block></view><view class="activity-list data-v-6f0d9d98"><block wx:for="{{currentActivityList}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view data-event-opts="{{[['tap',[['viewActivityDetail',['$0'],[[['currentActivityList','',index]]]]]]]}}" class="activity-item data-v-6f0d9d98" bindtap="__e"><image class="activity-image data-v-6f0d9d98" src="{{item.image}}" mode="aspectFill"></image><view class="activity-info data-v-6f0d9d98"><view class="title-row data-v-6f0d9d98"><view class="activity-badge data-v-6f0d9d98"><text class="badge-text data-v-6f0d9d98">30分</text></view><text class="activity-title data-v-6f0d9d98">{{item.title}}</text></view><view class="activity-location data-v-6f0d9d98"><uv-icon vue-id="{{'72a6966e-1-'+index}}" name="map-fill" size="14" color="#999" class="data-v-6f0d9d98" bind:__l="__l"></uv-icon><text class="location-text data-v-6f0d9d98">{{item.location}}</text></view><view class="activity-time data-v-6f0d9d98"><uv-icon vue-id="{{'72a6966e-2-'+index}}" name="calendar" size="14" color="#999" class="data-v-6f0d9d98" bind:__l="__l"></uv-icon><text class="time-text data-v-6f0d9d98">{{item.time}}</text></view><view class="activity-participants data-v-6f0d9d98"><uv-icon vue-id="{{'72a6966e-3-'+index}}" name="account-fill" size="14" color="#999" class="data-v-6f0d9d98" bind:__l="__l"></uv-icon><text class="participants-text data-v-6f0d9d98">{{"报名人数:"+item.participants+"/"+item.maxParticipants}}</text></view></view><view class="activity-action data-v-6f0d9d98"><block wx:if="{{currentTab===0}}"><uv-button vue-id="{{'72a6966e-4-'+index}}" type="primary" size="mini" shape="circle" text="扫码签到" data-event-opts="{{[['^click',[['scanQRCode',['$0'],[[['currentActivityList','',index]]]]]]]}}" catch:click="__e" class="data-v-6f0d9d98" bind:__l="__l"></uv-button></block><block wx:else><block wx:if="{{currentTab===1}}"><uv-button vue-id="{{'72a6966e-5-'+index}}" type="success" shape="circle" size="mini" text="已签到" disabled="{{true}}" class="data-v-6f0d9d98" bind:__l="__l"></uv-button></block><block wx:else><uv-button vue-id="{{'72a6966e-6-'+index}}" type="error" size="mini" text="已取消" disabled="{{true}}" class="data-v-6f0d9d98" bind:__l="__l"></uv-button></block></block></view></view></block><block wx:if="{{$root.g0===0}}"><view class="empty-state data-v-6f0d9d98"><text class="empty-text data-v-6f0d9d98">暂无相关报名记录</text></view></block></view></view>
<view class="my-registrations data-v-6f0d9d98"><view class="custom-tabs data-v-6f0d9d98"><block wx:for="{{tabList}}" wx:for-item="tab" wx:for-index="index" wx:key="index"><view data-event-opts="{{[['tap',[['tabChange',[index]]]]]}}" class="{{['tab-item','data-v-6f0d9d98',(currentTab===index)?'active':'']}}" bindtap="__e"><text class="{{['tab-text','data-v-6f0d9d98',(currentTab===index)?'active':'']}}">{{tab.name}}</text><block wx:if="{{currentTab===index}}"><view class="tab-line data-v-6f0d9d98"></view></block></view></block></view><view class="activity-list data-v-6f0d9d98"><block wx:for="{{currentActivityList}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view data-event-opts="{{[['tap',[['viewActivityDetail',['$0'],[[['currentActivityList','',index]]]]]]]}}" class="activity-item data-v-6f0d9d98" bindtap="__e"><image class="activity-image data-v-6f0d9d98" src="{{item.communityActivity.image}}" mode="aspectFill"></image><view class="activity-info data-v-6f0d9d98"><view class="title-row data-v-6f0d9d98"><view class="activity-badge data-v-6f0d9d98"><text class="badge-text data-v-6f0d9d98">30分</text></view><text class="activity-title data-v-6f0d9d98">{{item.communityActivity.title}}</text></view><view class="activity-location data-v-6f0d9d98"><uv-icon vue-id="{{'72a6966e-1-'+index}}" name="map-fill" size="14" color="#999" class="data-v-6f0d9d98" bind:__l="__l"></uv-icon><text class="location-text data-v-6f0d9d98">{{item.communityActivity.address}}</text></view><view class="activity-time data-v-6f0d9d98"><uv-icon vue-id="{{'72a6966e-2-'+index}}" name="calendar" size="14" color="#999" class="data-v-6f0d9d98" bind:__l="__l"></uv-icon><text class="time-text data-v-6f0d9d98">{{item.communityActivity.activityTime}}</text></view><view class="activity-participants data-v-6f0d9d98"><uv-icon vue-id="{{'72a6966e-3-'+index}}" name="account-fill" size="14" color="#999" class="data-v-6f0d9d98" bind:__l="__l"></uv-icon><text class="participants-text data-v-6f0d9d98">{{"报名人数:"+item.communityActivity.numActivity+"/"+item.communityActivity.numLimit}}</text></view></view><view class="activity-action data-v-6f0d9d98"><block wx:if="{{currentTab===0}}"><uv-button vue-id="{{'72a6966e-4-'+index}}" type="primary" size="mini" shape="circle" text="扫码签到" data-event-opts="{{[['^click',[['scanQRCode',['$0'],[[['currentActivityList','',index]]]]]]]}}" catch:click="__e" class="data-v-6f0d9d98" bind:__l="__l"></uv-button></block><block wx:else><block wx:if="{{currentTab===1}}"><uv-button vue-id="{{'72a6966e-5-'+index}}" type="success" shape="circle" size="mini" text="已签到" disabled="{{true}}" class="data-v-6f0d9d98" bind:__l="__l"></uv-button></block><block wx:else><uv-button vue-id="{{'72a6966e-6-'+index}}" type="error" size="mini" text="已取消" disabled="{{true}}" class="data-v-6f0d9d98" bind:__l="__l"></uv-button></block></block></view></view></block><block wx:if="{{$root.g0===0}}"><view class="empty-state data-v-6f0d9d98"><text class="empty-text data-v-6f0d9d98">暂无相关报名记录</text></view></block></view></view>

+ 23
- 2
unpackage/dist/dev/mp-weixin/subPages/my/productFavorites.js View File

@ -181,6 +181,7 @@ Object.defineProperty(exports, "__esModule", {
});
exports.default = void 0;
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 36));
var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 18));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 38));
//
//
@ -243,7 +244,7 @@ var _default = {
getGoodsList: function getGoodsList() {
var _this = this;
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
var res;
var res, _this$favoritesList;
return _regenerator.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
@ -255,7 +256,15 @@ var _default = {
});
case 2:
res = _context.sent;
_this.favoritesList = res.result.records;
if (res.result.records.length) {
(_this$favoritesList = _this.favoritesList).push.apply(_this$favoritesList, (0, _toConsumableArray2.default)(res.result.records));
_this.pageNo++;
} else {
uni.showToast({
title: '暂无数据',
icon: 'none'
});
}
case 4:
case "end":
return _context.stop();
@ -263,6 +272,11 @@ var _default = {
}
}, _callee);
}))();
},
initData: function initData() {
this.favoritesList = [];
this.pageNo = 1;
this.pageSize = 10;
}
},
onShow: function onShow() {
@ -283,6 +297,13 @@ var _default = {
}
}, _callee2);
}))();
},
onReachBottom: function onReachBottom() {
this.getGoodsList();
},
onPullDownRefresh: function onPullDownRefresh() {
this.initData();
this.getGoodsList();
}
};
exports.default = _default;


+ 1
- 0
unpackage/dist/dev/mp-weixin/subPages/my/productFavorites.json View File

@ -1,5 +1,6 @@
{
"navigationBarTitleText": "商品收藏",
"enableBackButton": true,
"usingComponents": {
"uv-icon": "/uni_modules/uv-icon/components/uv-icon/uv-icon",
"uv-button": "/uni_modules/uv-button/components/uv-button/uv-button",


+ 2
- 2
unpackage/dist/dev/mp-weixin/uni_modules/uv-form/components/uv-form-item/uv-form-item.json View File

@ -1,8 +1,8 @@
{
"component": true,
"usingComponents": {
"uv-icon": "/uni_modules/uv-icon/components/uv-icon/uv-icon",
"uv-transition": "/uni_modules/uv-transition/components/uv-transition/uv-transition",
"uv-line": "/uni_modules/uv-line/components/uv-line/uv-line"
}
},
"component": true
}

+ 2
- 2
unpackage/dist/dev/mp-weixin/uni_modules/uv-textarea/components/uv-textarea/uv-textarea.json View File

@ -1,4 +1,4 @@
{
"component": true,
"usingComponents": {}
"usingComponents": {},
"component": true
}

Loading…
Cancel
Save