|
|
@@ -13,19 +13,19 @@
|
|
|
<div class="info">
|
|
|
<div class="info-pre adf">
|
|
|
<div class="info-pre-title adf"><span>*</span>活动名称:</div>
|
|
|
- <div class="info-pre-content">{{ activityInfo.activityName || '--' }}</div>
|
|
|
+ <div class="info-pre-content">{{ activityInfo.activityName || '' }}</div>
|
|
|
</div>
|
|
|
<div class="info-pre adf">
|
|
|
<div class="info-pre-title adf"><span>*</span>活动时间:</div>
|
|
|
- <div class="info-pre-content">{{ activityInfo.activityStartTime || '--' }} - {{ activityInfo.activityEndTime || '--' }}</div>
|
|
|
+ <div class="info-pre-content">{{ activityInfo.activityStartTime || '' }} - {{ activityInfo.activityEndTime || '' }}</div>
|
|
|
</div>
|
|
|
<div class="info-pre adf">
|
|
|
<div class="info-pre-title adf"><span>*</span>渠道方:</div>
|
|
|
- <div class="info-pre-content">{{ activityInfo.channelName || '--' }}</div>
|
|
|
+ <div class="info-pre-content">{{ activityInfo.channelName || '' }}</div>
|
|
|
</div>
|
|
|
<div class="info-pre adf">
|
|
|
<div class="info-pre-title adf"><span>*</span>活动地址:</div>
|
|
|
- <div class="info-pre-content">{{ provinceName || '' }}{{ cityName || '' }}{{ districtName || '' }}{{ activityInfo.address || '--' }}</div>
|
|
|
+ <div class="info-pre-content">{{ provinceName || '' }}{{ cityName || '' }}{{ districtName || '' }}{{ activityInfo.address || '' }}</div>
|
|
|
</div>
|
|
|
<div class="info-pre adf">
|
|
|
<div class="info-pre-title adf"><span>*</span>会员等级:</div>
|
|
|
@@ -33,11 +33,11 @@
|
|
|
</div>
|
|
|
<div class="info-pre adf">
|
|
|
<div class="info-pre-title adf"><span>*</span>举办方:</div>
|
|
|
- <div class="info-pre-content">{{ activityInfo.organizerName || '--' }}</div>
|
|
|
+ <div class="info-pre-content">{{ activityInfo.organizerName || '' }}</div>
|
|
|
</div>
|
|
|
<div class="info-pre adf">
|
|
|
<div class="info-pre-title adf"><span>*</span>报名人数:</div>
|
|
|
- <div class="info-pre-content">{{ activityInfo.signedNumber || 0 }}/{{ activityInfo.recruitmentMax || '无限制' }}</div>
|
|
|
+ <div class="info-pre-content">{{ activityInfo.recruitmentNow || 0 }}/{{ activityInfo.recruitmentMax || '无限制' }}</div>
|
|
|
</div>
|
|
|
<div class="info-pre adf">
|
|
|
<div class="info-pre-title adf"><span>*</span>公益支持:</div>
|
|
|
@@ -46,7 +46,7 @@
|
|
|
</div>
|
|
|
<div class="info-pre adf">
|
|
|
<div class="info-pre-title adf"><span>*</span>公益支持内容:</div>
|
|
|
- <div class="info-pre-content">{{ activityInfo.loveValueContent || '--' }}</div>
|
|
|
+ <div class="info-pre-content">{{ activityInfo.loveValueContent || '' }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="title adfacjb">
|
|
|
@@ -56,18 +56,24 @@
|
|
|
<el-table :data="dataList" border cell-class-name="vertical-top-cell" v-loading="loading" empty-text="暂无活动报名信息" style="margin-top: 16px;">
|
|
|
<el-table-column prop="id" label="善行少年编号" width="200"></el-table-column>
|
|
|
<el-table-column prop="welfareName" label="家庭名称" width="150"></el-table-column>
|
|
|
- <el-table-column prop="contactPhone" label="手机号码" width="150"></el-table-column>
|
|
|
- <el-table-column prop="xxx" label="渠道方" width="200"></el-table-column>
|
|
|
+ <el-table-column prop="contactPhoneJM" label="手机号码" width="150"></el-table-column>
|
|
|
+ <el-table-column prop="channelName" label="渠道方" width="200"></el-table-column>
|
|
|
<el-table-column prop="name" label="姓名" width="150"></el-table-column>
|
|
|
- <el-table-column prop="idCard" label="身份证号" width="300"></el-table-column>
|
|
|
+ <el-table-column prop="idCardJM" label="身份证号" width="300"></el-table-column>
|
|
|
<el-table-column prop="volunteerNo" label="义工号" width="100"></el-table-column>
|
|
|
- <el-table-column prop="gender" label="性别" width="100"></el-table-column>
|
|
|
- <el-table-column prop="xxx" label="年龄" width="100"></el-table-column>
|
|
|
- <el-table-column prop="xxx" label="参会情况" width="120"></el-table-column>
|
|
|
- <el-table-column prop="currentSchool" label="就读学校" width="200"></el-table-column>
|
|
|
+ <el-table-column prop="gender" label="性别" width="100">
|
|
|
+ <template slot-scope="scope">{{ genderDict[scope.row.gender] || '' }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="age" label="年龄" width="100">
|
|
|
+ <template slot-scope="scope">{{ scope.row.age||0 }}岁</template>
|
|
|
+ </el-table-column>
|
|
|
+ <!-- <el-table-column prop="xxx" label="参会情况" width="120"></el-table-column> -->
|
|
|
+ <el-table-column prop="currentSchool" label="就读学校" width="200">
|
|
|
+ <template slot-scope="scope">{{ scope.row.currentSchool || '/' }}</template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column prop="createDate" label="报名时间" width="240"></el-table-column>
|
|
|
<el-table-column prop="signupState" label="状态" width="150" fixed="right">
|
|
|
- <template slot-scope="scope">{{ statusCfg[scope.row.signupState] || '--' }}</template>
|
|
|
+ <template slot-scope="scope"><div :class="{'statered':scope.row.signupState==-1}">{{ statusCfg[scope.row.signupState] || '--' }}</div></template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
<el-pagination
|
|
|
@@ -98,6 +104,11 @@ export default {
|
|
|
2: '专享券',
|
|
|
3: '免费'
|
|
|
},
|
|
|
+ genderDict: {
|
|
|
+ 0: '男',
|
|
|
+ 1: '女',
|
|
|
+ 2: '保密'
|
|
|
+ },
|
|
|
loading: false,
|
|
|
queryParams: {
|
|
|
activityId: this.$route.query.id,
|
|
|
@@ -140,10 +151,37 @@ export default {
|
|
|
this.$http.get('/core/activity/signup/getSignupList', { params: this.queryParams }).then(({ data: res }) => {
|
|
|
if (res.code !== 0) return this.$message.error(res.msg)
|
|
|
this.dataList = res.data.list
|
|
|
+ this.dataList.forEach(d => {
|
|
|
+ d.contactPhoneJM = d.contactPhone.replace(/^(.{3})(?:\d+)(.{4})$/, '$1****$2')
|
|
|
+ d.idCardJM = d.idCard.replace(/^(\d{6})(\d{8})(\d{3}[\dX])$/i, '$1********$3')
|
|
|
+ d.age = this.getAge(d.idCard)
|
|
|
+ })
|
|
|
this.total = res.data.total
|
|
|
this.loading = false
|
|
|
})
|
|
|
},
|
|
|
+ isValid (idCard) {
|
|
|
+ const regex = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
|
|
|
+ return typeof idCard === 'string' && regex.test(idCard)
|
|
|
+ },
|
|
|
+ getAge (idCard) {
|
|
|
+ if (!this.isValid(idCard)) return 0
|
|
|
+ const birthDateStr = idCard.substring(6, 14)
|
|
|
+ const birthYear = parseInt(birthDateStr.substring(0, 4), 10)
|
|
|
+ const birthMonth = parseInt(birthDateStr.substring(4, 6), 10)
|
|
|
+ const birthDay = parseInt(birthDateStr.substring(6, 8), 10)
|
|
|
+ const today = new Date()
|
|
|
+ const currentYear = today.getFullYear()
|
|
|
+ const currentMonth = today.getMonth() + 1
|
|
|
+ const currentDay = today.getDate()
|
|
|
+ // 计算周岁
|
|
|
+ let age = currentYear - birthYear
|
|
|
+ // 如果当前月份小于出生月份,或者月份相同但日期小于出生日期,说明今年的生日还没过
|
|
|
+ if (currentMonth < birthMonth || (currentMonth === birthMonth && currentDay < birthDay)) {
|
|
|
+ age--
|
|
|
+ }
|
|
|
+ return age < 0 ? 0 : age
|
|
|
+ },
|
|
|
pageSizeChangeHandle (val) {
|
|
|
this.queryParams.limit = val
|
|
|
this.getList()
|
|
|
@@ -165,6 +203,10 @@ export default {
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
+.statered{
|
|
|
+ color: #F4657A;
|
|
|
+}
|
|
|
+
|
|
|
.top {
|
|
|
padding-bottom: 13px;
|
|
|
box-shadow: inset 0px -1px 0px 0px #F0F1F7;
|