hookehuyr

新增我陪伴的报名列表功能和页面

......@@ -2,7 +2,7 @@
* @Author: hookehuyr hookehuyr@gmail.com
* @Date: 2022-05-27 15:57:59
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-11-01 18:18:19
* @LastEditTime: 2022-11-14 13:19:36
* @FilePath: /swx/src/app.config.js
* @Description:
*/
......@@ -40,6 +40,7 @@ export default {
'pages/auth/index',
'pages/joinVolunteerInfo/index',
'pages/apxUserInfo/index',
'pages/followList/index',
],
subpackages: [ // 配置在tabBar中的页面不能分包写到subpackages中去
{
......
<!--
* @Date: 2022-09-20 15:39:37
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-11-03 18:22:37
* @LastEditTime: 2022-11-14 14:42:15
* @FilePath: /swx/src/components/activity-card.vue
* @Description: 活动卡片组件
-->
......@@ -62,6 +62,7 @@
<view @tap="delActivity(data)" v-if="formatStatus(data) === '未发布' || formatStatus(data) === '已结束'" class="close-button">删除</view>
</view>
<view v-if="status === 'creator' && formatStatus(data) !== '已结束'" @tap="copyActivity(data.id)" class="copy-button">复制</view>
<view v-if="status === 'follow'" @tap="followActivity(data)" class="follow-button">我陪伴报名列表</view>
</view>
</view>
<!-- <van-toast id="van-toast" /> -->
......@@ -125,6 +126,11 @@ const finishActivity = ({ id }) => {
const delActivity = ({ id }) => {
emit('on-handle', { id, type: 'delete' });
}
// 追踪活动列表
const followActivity = ({ id }) => {
emit('on-handle', { id, type: 'follow' });
}
</script>
<style lang="less">
......@@ -161,6 +167,19 @@ const delActivity = ({ id }) => {
padding: 0.85rem;
font-size: 0.85rem;
position: relative;
.follow-button {
position: absolute;
right: 0;
top: 0.5rem;
background-color: #199A74;
color: white;
padding: 0.25rem;
padding-left: 1rem;
padding-right: 0.5rem;
border-top-left-radius: 1rem;
border-bottom-left-radius: 1rem;
font-size: 0.85rem;
}
.finish-button {
position: absolute;
right: 0;
......
/*
* @Date: 2022-09-29 09:45:17
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-09-29 09:45:33
* @FilePath: /swx/src/pages/joinList/index.config.js
* @Description: 文件描述
*/
export default {
navigationBarTitleText: '报名列表',
usingComponents: {
},
}
.join-list-page {
.join-list-header {
background-color: #FFFFFF;
.header-info {
display: flex;
text-align: center;
padding-bottom: 1rem;
margin-top: 0.5rem;
.activity {
flex: 1;
height: 50rpx;
line-height: 50rpx;
}
.job {
flex: 1;
border-right: 1px solid #F5F5F5;
border-left: 1px solid #F5F5F5;
height: 100rpx;
line-height: 50rpx;
}
.sign {
flex: 1;
height: 50rpx;
line-height: 50rpx;
}
}
}
.activity-title {
background-color: #FFFFFF;
.box {
padding: 1rem 1rem 0.5rem 1rem;
}
}
.bg-gradient {
background: linear-gradient(#B3DDC9, #B3DDC9) no-repeat;
/*调整下划线的宽度占百分之百 高度是3px */
background-size: 100% 1vw;
/* 调整下划线的起始位置 左侧是0 上边是1.15em */
background-position: 0 1.1rem;
}
.inactivate {
font-size: 1rem;
color: #999999;
}
.list-item {
background-color: white;
padding: 0.75rem;
border-radius: 0.65rem;
position: relative;
margin-bottom: 1rem;
.avatar {
width: 100%;
height: 5rem;
background-size: cover;
background-repeat: no-repeat;
background-position: center;
border-radius: 0.5rem;
}
.content {
padding: 0.5rem 1rem;
.title {
font-size: 1.25rem;
}
.phone {
color: #199A74;
margin-top: 0.5rem;
}
}
}
}
This diff is collapsed. Click to expand it.
......@@ -47,8 +47,8 @@
<view v-for="(item, index) in reg_list" :key="index" class="list-item">
<van-row>
<van-col span="6">
<view v-if="item.avatar" @tap="goToUserInfo(item.member_id)" class="avatar" :style="{ backgroundImage: `url(${item.avatar})` }"></view>
<view v-else @tap="goToUserInfo(item.member_id)" class="avatar" :style="{ backgroundImage: `url('https://img.yzcdn.cn/vant/cat.jpeg')` }"></view>
<view v-if="item.avatar" @tap="goToUserInfo(item)" class="avatar" :style="{ backgroundImage: `url(${item.avatar})` }"></view>
<view v-else @tap="goToUserInfo(item)" class="avatar" :style="{ backgroundImage: `url('https://img.yzcdn.cn/vant/cat.jpeg')` }"></view>
</van-col>
<van-col span="13">
<view class="content">
......@@ -100,12 +100,6 @@ const onPhoneClick = (number) => {
})
}
const goToUserInfo = (member_id) => {
Taro.navigateTo({
url: '../userInfo/index?member_id=' + member_id
})
}
</script>
<script>
......@@ -156,7 +150,7 @@ export default {
this.absent = true;
}
}
const { code, data } = await listRegAPI({ activity_id: getCurrentPageParam().id, type: this.member_type, page: this.page, limit: this.limit });
const { code, data } = await listRegAPI({ activity_id: getCurrentPageParam().id, type: this.member_type, page: 0, limit: this.limit });
if (code) {
this.reg_count = data.reg_count;
this.volunteer_count = data.volunteer_count;
......@@ -174,6 +168,15 @@ export default {
}
},
methods: {
goToUserInfo({ status, member_id }) {
if (status === 'request') return false; // 未审核的人没有信息,不能查看详情
Taro.navigateTo({
url: '../userInfo/index?member_id=' + member_id
})
Taro.navigateTo({
url: '../userInfo/index?member_id=' + member_id
})
},
onScrollToLower () {
if(!this.flag){
return
......
......@@ -45,7 +45,7 @@
</view>
<scroll-view :scroll-y="true" :style="scrollStyle" @scrolltolower="onScrollToLower">
<view>
<activity-card v-for="(item, index) in activity_list" :key="index" :data="item" style="margin-bottom: 1rem;"></activity-card>
<activity-card @on-handle="onHandle" v-for="(item, index) in activity_list" :key="index" :data="item" :status="follow_status" style="margin-bottom: 1rem;"></activity-card>
</view>
</scroll-view>
</view>
......@@ -61,7 +61,7 @@
</template>
<script setup>
import { ref } from "vue";
import { ref, computed } from "vue";
import icon_join from '@/images/icon/baoming@2x.png'
import icon_job from '@/images/icon/yigong@2x.png'
import icon_sign from '@/images/icon/qiandao@2x.png'
......@@ -148,6 +148,7 @@ export default {
text: '活动结束',
key: 'stop'
}],
follow_status: ''
};
},
methods: {
......@@ -181,9 +182,11 @@ export default {
if (type === 'player') {
this.activated = 1;
this.role = 'player';
this.follow_status = '';
} else {
this.activated = 2;
this.role = 'volunteer';
this.follow_status = 'follow';
}
this.activity_list = [];
this.flag = true;
......@@ -203,7 +206,14 @@ export default {
},
onStatusTypeCancel (event) {
this.show_status_popup = false;
}
},
onHandle ({ id, type }) { // 活动操作后回调
if (type === 'follow') {
Taro.navigateTo({
url: '../followList/index?id=' + id
})
}
},
},
};
</script>
......