小程序目录调整完成

This commit is contained in:
aixianling
2022-05-12 12:16:40 +08:00
parent 6ed5ef69ad
commit 5d0801ac21
96 changed files with 14 additions and 1268 deletions

View File

@@ -5,7 +5,7 @@ const getFileInfo = (app, file) => {
let vue = fs.readFileSync(file).toString()
if (/appName/.test(vue)) {
let appName = vue.replace(/[\s\S]*(appName:.+),[\s\S]*/gm, '$1')
app.label = appName.replace(/(appName:|["'])/g, '')
app.label = appName.replace(/(appName:|["'])/g, '')?.trim()
if (/customNavigation/.test(vue)) {
app.style = {navigationStyle: "custom"}
} else

View File

@@ -1,353 +0,0 @@
<template>
<div class="page">
<div class="fixed-top">
<div class="header-search">
<div class="search-input-content">
<img src="https://cdn.cunwuyun.cn/img/search-blue.svg" alt="" class="search-icon">
<input type="text" placeholder="请输入活动名称或地点" class="search-input" placeholder-style="color:#E2E8F1;"
v-model="inputValue" @confirm="getListInit" confirm-type="search"/>
</div>
</div>
<div class="header-select">
<div class="select-item" @click="activeStatusShow = true">
<span>{{ activeStatusLabel }}</span>
<img src="https://cdn.cunwuyun.cn/img/down.svg" alt="" class="down-icon">
</div>
<div class="select-item" @click="checkStatusShow = true">
<span>{{ checkStatusLabel }}</span>
<img src="https://cdn.cunwuyun.cn/img/down.svg" alt="" class="down-icon">
</div>
</div>
</div>
<div class="active-list">
<div class="item" v-for="(item, index) in list" :key="index" @click="isToken(`./detail?id=${item.id}`)">
<div class="item-top">
<p class="title">{{ item.title }}</p>
<div class="info">
<span class="label">活动时间</span>
<span class="value">{{ item.beginTime }} <br/>{{ item.endTime }}</span>
</div>
<div class="info">
<span class="label">活动地点</span>
<span class="value">{{ item.address }}</span>
</div>
</div>
<div class="item-btn">
<span class="phone-btn" @click.stop="callPhone(item.contactPhone)" v-if="item.contactPhone">呼叫联系人</span>
<span v-if="item.signupStatus == 0 && item.logStatus == null"
@click="isToken(`./toAdd?id=${item.id}`)">去报名</span>
<span v-if="item.actionStatus == 1 && item.logStatus == 0"
@click="isToken(`./addContent?id=${item.id}&reportId=${item.reportId}`)">填写日志</span>
<span v-if="item.logStatus == 2" @click="isToken(`./logDetail?id=${item.id}&title=${item.title}`)">查看日志</span>
</div>
<span class="item-status"
:class="'color'+item.actionStatus">{{
$dict.getLabel('partyReportActionStatus', item.actionStatus)
}}</span>
</div>
<AiEmpty v-if="!list.length" class="pad-t168"/>
</div>
<div class="fixed-bottom btn-footer">
<div :class="listType == 0 ? 'confirm-bg' : ''" @click="listTypeChange('0')">
<img src="https://cdn.cunwuyun.cn/dvcp/activityList/more-icon-fff.png" alt="" v-if="listType == 0">
<img src="https://cdn.cunwuyun.cn/dvcp/activityList/more-icon-999.png" alt="" v-else>
活动列表
</div>
<div :class="listType == 3 ? 'confirm-bg' : ''" @click="listTypeChange('3')">
<img src="https://cdn.cunwuyun.cn/dvcp/activityList/pen-icon-fff.png" alt="" v-if="listType == 3">
<img src="https://cdn.cunwuyun.cn/dvcp/activityList/pen-icon-999.png" alt="" v-else>
我的活动
</div>
</div>
<u-select v-model="activeStatusShow" :list="activeStatusList" @confirm="confirmActiveStatus"
confirm-color="#07c160"></u-select>
<u-select v-model="checkStatusShow" :list="checkStatusList" @confirm="confirmActiveStatus"
confirm-color="#07c160"></u-select>
<AiLogin ref="login"/>
</div>
</template>
<script>
import {mapState} from 'vuex'
export default {
name: "AppActivityList",
appName: "活动列表",
computed: {
...mapState(['user', 'token'])
},
data() {
return {
inputValue: '',
current: 1,
list: [],
activeStatus: '',
activeStatusLabel: '活动状态',
activeStatusShow: false,
activeStatusList: [],
checkStatusShow: false,
checkStatusList: [],
checkStatus: '',
checkStatusLabel: '报名状态',
listType: '0',
partyId: '',
areaId: ''
}
},
onLoad() {
this.areaId = uni.getStorageSync('areaId')
if (this.user.partyId) {
this.partyId = this.user.partyId
} else {
this.partyId = this.user.residentId
}
},
onShow() {
this.$dict.load('partyReportActionStatus', 'partyReportSignupStatus').then(() => {
this.activeStatusList = this.getSelectList('partyReportActionStatus')
this.checkStatusList = this.getSelectList('partyReportSignupStatus')
this.getListInit()
})
},
methods: {
confirmActiveStatus(e) {
if (this.activeStatusShow) {
this.activeStatusLabel = e[0].label
this.activeStatus = e[0].value
}
if (this.checkStatusShow) {
this.checkStatusLabel = e[0].label
this.checkStatus = e[0].value
}
this.getListInit()
},
getListInit() {
this.current = 1
this.list = []
this.getList()
},
getList() {
this.$instance.post(`/app/apppartyreport/list-xcx?title=${this.inputValue}&size=10&current=${this.current}&listType=${this.listType}&actionStatus=${this.activeStatus}&signupStatus=${this.checkStatus}&partyId=${this.partyId}&areaId=${this.areaId}`).then(res => {
if (res.code == 0) {
if (this.current > res.data.pages) {
return
}
this.list = this.current > 1 ? [...this.list, ...res.data.records] : res.data.records;
}
})
},
isToken(url) {
if (this.token) {//判断是否登录
if (this.user.status == 0) {
if (!this.user.phone) {//判断已经绑定手机
this.$linkTo('/pages/phone/bingPhoneNumber?from=auth')
} else {
this.$linkTo('/mods/AppAuth/AppAuth')
}
} else {
this.$linkTo(url)
}
} else {
// this.$getUserProfile().then((v) => {
// this.$autoLogin(v.userInfo).then(() => {
// this.isToken(url)
// })
// }).catch(() => {
// this.$toast('请先登录')
// })
this.login()
}
},
login() {
this.$refs.login.show()
},
// toDetail(id) {
// this.$linkTo(`./detail?id=${id}`)
// },
// toAddContent(id, reportId) {
// this.$linkTo(`./addContent?id=${id}&reportId=${reportId}`)
// },
// toAdd(id) {
// this.$linkTo(`./add?id=${id}`)
// },
// toLogDetail(id) {
// this.$linkTo(`./logDetail?id=${id}`)
// },
listTypeChange(type) {
this.listType = type
this.activeStatus = ''
this.activeStatusLabel = '活动状态'
this.checkStatus = ''
this.checkStatusLabel = '报名状态'
this.getListInit()
},
getSelectList(dictName) {
var list = []
this.$dict.getDict(dictName).map(i => {
var item = {
label: i.dictName,
value: i.dictValue
}
list.push(item)
})
list.unshift({label: '全部', value: ''})
return list
},
callPhone(phone) {
wx.makePhoneCall({
phoneNumber: phone,
})
}
},
onReachBottom() {
this.current = this.current + 1;
this.getList()
},
}
</script>
<style scoped lang="scss">
@import "~dvcp-wui/common";
.page {
width: 100%;
background-color: #F3F6F9;
.fixed-top {
z-index: 99;
}
.active-list {
padding: 234px 32px 112px;
margin-top: 8px;
background-color: #F3F6F9;
box-sizing: border-box;
.item {
width: 100%;
background: #FFF;
padding: 32px 0 0;
box-sizing: border-box;
margin-bottom: 34px;
position: relative;
overflow: hidden;
.item-top {
padding: 0 32px;
}
.title {
width: 576px;
font-size: 32px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #333;
line-height: 44px;
word-break: break-all;
margin-bottom: 32px;
}
.info {
font-size: 30px;
line-height: 42px;
margin-bottom: 8px;
.label {
display: inline-block;
width: 150px;
color: #999;
vertical-align: top;
}
.value {
display: inline-block;
width: calc(100% - 150px);
color: #343D65;
}
}
.item-btn {
margin-top: 32px;
padding: 20px 32px;
border-top: 2px solid #eee;
text-align: right;
span {
display: inline-block;
padding: 0 24px;
line-height: 56px;
border-radius: 28px;
border: 2px solid #1365DD;
color: #1365DD;
font-size: 28px;
margin-left: 32px;
}
.phone-btn {
border: 2px solid #E1E1E1;
color: #606060;
}
}
.item-status {
width: 160px;
height: 40px;
line-height: 36px;
font-size: 26px;
font-weight: 500;
position: absolute;
right: -38px;
top: 24px;
-webkit-transform: rotate(90deg);
transform: rotate(45deg);
text-align: center;
}
.color0 {
background: #FFF3E9;
color: #FF8822;
}
.color1 {
background: #EEF5FF;
color: #5A98F2;
}
.color2 {
background: #F2F2F2;
color: #999;
}
}
}
.btn-footer {
display: flex;
height: 112px;
line-height: 112px;
background-color: #fff;
border-top: 2px solid #ddd;
box-sizing: border-box;
div {
flex: 1;
text-align: center;
font-size: 32px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #666;
img {
width: 36px;
height: 36px;
margin-right: 8px;
vertical-align: sub;
}
}
.confirm-bg {
background-color: #197DF0;
color: #fff;
}
}
}
</style>

View File

@@ -1,206 +0,0 @@
<template>
<div class="page">
<div class="add-form">
<div class="form-item">
<span class="item-tips">*</span>
<span class="label">活动报名类型</span>
<span :class="reportType ? 'value color-333' : 'value color-999'"
@click="reportTypeShow = true">{{ reportTypeList[reportType].label || '请选择' }}</span>
<img src="https://cdn.cunwuyun.cn/img/right-icon-999.png" alt="" class="right-icon">
</div>
<div class="form-item">
<span class="item-tips">*</span>
<span class="label">联系手机</span>
<div class="item-input">
<input type="tel" placeholder="请输入手机号码" placeholder-style="color:#999;" maxlength="11" v-model="phone">
</div>
</div>
<div class="form-item">
<span class="item-tips"></span>
<span class="label">报名备注</span>
<div class="item-input fs-32">
<u-input type="textarea" height="140" placeholder="填写报名备注1000字以内" placeholder-style="color:#999;"
maxlength="1000" v-model="remark"/>
</div>
</div>
</div>
<div class="tips-content">
<p>报到类型说明</p>
<p>1单位联系社区报到服务党员所属单位联系的社区参与活动到社区服务</p>
<p>2居住地社区报到服务党员所在本人居住的社区参与活动到社区服务</p>
<p>3其他村(社区)报到服务党员所在除单位联系社区与居住社区以外的其他社区参与活动到社区服务</p>
</div>
<u-select v-model="reportTypeShow" :list="reportTypeList" @confirm="confirmReportType"
confirm-color="#07c160"></u-select>
<div class="fixed-bottom confirm-btn" @click="confirm">提交</div>
</div>
</template>
<script>
import {mapState} from 'vuex'
export default {
name: "add",
appName:"活动报名",
computed: {
...mapState(['user'])
},
data() {
return {
reportType: '',
title: '',
content: '',
reportTypeList: [],
reportTypeShow: false,
flag: false,
id: '',
phone: ''
}
},
onLoad(option) {
this.id = option.id
this.$dict.load('partyReportSignupReportType').then((res) => {
this.$nextTick(() => {
this.$dict.getDict('partyReportSignupReportType').map(i => {
var item = {
label: i.dictName,
value: i.dictValue
}
this.reportTypeList.push(item)
})
})
})
this.phone = this.user.phone
},
methods: {
confirm() {
if (this.flag) return
this.$loading()
var params = {
reportType: this.reportType,
phone: this.phone,
remark: this.remark,
reportId: this.id,
avatar: this.user.avatarUrl,
partyId: this.user.partyId || this.user.residentId
}
if (!params.reportType) {
return this.$toast('请选择活动报名类型')
}
if (!params.phone) {
return this.$toast('请输入联系手机')
}
this.flag = true
this.$instance.post(`/app/apppartyreport/signup`, params).then(res => {
if (res && res.code == 0) {
this.$hideLoading()
this.$toast('活动报名成功!')
setTimeout(() => {
uni.navigateBack()
}, 1000)
} else {
this.flag = false
}
}).catch(err => {
console.log(err)
this.flag = false
})
},
confirmReportType(e) {
this.reportType = e[0].value
}
}
}
</script>
<style scoped lang="scss">
@import "~dvcp-wui/common";
.page {
width: 100%;
background-color: #F3F6F9;
.form-item {
padding: 34px 32px 34px 12px;
line-height: 44px;
background-color: #fff;
border-bottom: 2px solid #ddd;
.item-tips {
display: inline-block;
width: 12px;
font-size: 32px;
color: #FF4466;
}
.label {
display: inline-block;
min-width: 126px;
color: #333;
font-size: 32px;
margin-left: 8px;
.mini-label {
color: #999;
font-size: 28px;
}
}
.value {
display: inline-block;
width: 454px;
text-align: right;
}
.text {
display: inline-block;
width: 520px;
text-align: right;
}
.color-333 {
color: #333 !important;
}
.right-icon {
width: 32px;
height: 32px;
margin-left: 8px;
vertical-align: middle;
}
.item-input {
padding-bottom: 4px;
margin-left: 24px;
margin-top: 32px;
input {
line-height: 42px;
font-size: 32px;
}
}
.upload {
margin: 32px 0 024px;
}
}
.form-item:nth-last-child(1) {
border-bottom: none;
}
.mar-b8 {
margin-bottom: 16px;
}
.tips-content {
padding: 64px 32px 0;
p {
color: #999999;
line-height: 40px;
font-size: 28px;
word-break: break-all;
}
}
}
</style>

View File

@@ -1,175 +0,0 @@
<template>
<div class="page">
<div class="header-bg"></div>
<div class="add-form">
<div class="form-item">
<span class="item-tips">*</span>
<span class="label">活动总结</span>
<div class="item-input fs-32">
<u-input type="textarea" height="140" placeholder="填写本次活动参与心得体会1000字以内" placeholder-style="color:#999;"
maxlength="1000" v-model="content"/>
</div>
</div>
<div class="form-item">
<span class="item-tips"></span>
<span class="label">活动照片<span class="mini-label">最多9张</span></span>
<div class="upload">
<AiUploader :limit="9" v-model="files"></AiUploader>
</div>
</div>
</div>
<div class="fixed-bottom confirm-btn" @click="confirm">提交</div>
</div>
</template>
<script>
import {mapState} from 'vuex'
export default {
name: "addContent",
appName: "填写活动日志",
computed: {
...mapState(['user'])
},
data() {
return {
content: '',
files: [],
flag: false,
id: '',
reportId: ''
}
},
onLoad(option) {
this.id = option.id
this.reportId = option.reportId
},
methods: {
confirm() {
if (this.flag) return
this.$loading()
var fileIds = []
if (this.files.length) {
this.files.map((item) => {
fileIds.push(item.id)
})
}
var params = {
reportId: this.reportId,
id: this.id,
content: this.content,
files: this.files,
fileIds: fileIds
}
if (!params.content) {
return this.$toast('请输入本次活动参与心得体会')
}
this.flag = true
this.$instance.post(`/app/apppartyreport/log-add`, params).then(res => {
if (res && res.code == 0) {
this.$hideLoading()
this.$toast('日志填写成功!')
setTimeout(() => {
uni.navigateBack()
}, 1000)
} else {
this.flag = false
}
}).catch(err => {
console.log(err)
this.flag = false
})
},
}
}
</script>
<style scoped lang="scss">
@import "~dvcp-wui/common";
.page {
width: 100%;
background-color: #F3F6F9;
.header-bg {
width: 100%;
height: 112px;
background: #197DF0;
}
.add-form {
margin: -96px 0 0 32px;
border-radius: 8px;
background-color: #fff;
width: 686px;
}
.form-item {
padding: 34px 32px 34px 12px;
line-height: 44px;
.item-tips {
display: inline-block;
width: 12px;
font-size: 32px;
color: #FF4466;
}
.label {
display: inline-block;
min-width: 126px;
color: #333;
font-size: 32px;
margin-left: 8px;
.mini-label {
color: #999;
font-size: 28px;
}
}
.value {
display: inline-block;
width: 518px;
text-align: right;
}
.text {
display: inline-block;
width: 520px;
text-align: right;
}
.color-333 {
color: #333 !important;
}
.right-icon {
width: 32px;
height: 32px;
margin-left: 8px;
vertical-align: middle;
}
.item-input {
padding-bottom: 4px;
margin-left: 24px;
margin-top: 32px;
input {
line-height: 42px;
font-size: 32px;
}
}
.upload {
margin: 32px 0 0 24px;
}
}
.mar-b8 {
margin-bottom: 16px;
}
}
</style>

View File

@@ -1,238 +0,0 @@
<template>
<div class="page">
<div class="header-info">
<p class="title">{{ info.title }}</p>
<div class="info">
<span class="label">联系人</span>
<span class="value">{{ info.contactPerson }}</span>
</div>
<div class="info">
<span class="label">联系电话</span>
<span class="value">{{ info.contactPhone }}</span>
</div>
<div class="info">
<span class="label">活动时间</span>
<span class="value">{{ info.beginTime }} {{ info.endTime }}</span>
</div>
<div v-if="viewMore">
<div class="info">
<span class="label">活动地点</span>
<span class="value">{{ info.address }}</span>
</div>
<div class="info">
<span class="label">参与名额</span>
<span class="value" v-if="info.total > 0">{{ info.total }}</span>
<span class="value" v-else>不限额</span>
</div>
<div class="info">
<span class="label">报名截止时间</span>
<span class="value">{{ info.stopSignupTime }}({{ info.timeRemaining }})</span>
</div>
<div class="info">
<span class="label">活动报名人数</span>
<span class="value">{{ info.signupCount }}人报名</span>
</div>
<div class="info">
<span class="label">活动状态</span>
<span class="value">{{ $dict.getLabel('partyReportActionStatus', info.actionStatus) }}</span>
</div>
</div>
<div class="view-btn" @click="viewMore = !viewMore">{{ viewMore ? '收起' : '展开' }}<img
:class="viewMore ? 'view-btn-active' : ''" src="https://cdn.cunwuyun.cn/img/down-icon-fff.png" alt=""/></div>
</div>
<div class="content">
<p class="title">活动介绍</p>
<!-- <div class="html" v-html="info.content"></div> -->
<u-parse :html="info.content"></u-parse>
</div>
<div class="fixed-bottom btn-footer">
<div @click="$linkTo(`./userList?id=${info.id}`)"><img
src="https://cdn.cunwuyun.cn/dvcp/activityList/more-icon-999.png" alt=""/>查看报名情况
</div>
<div class="confirm-bg" v-if="info.signupStatus == 0 && info.logStatus == null"
@click="$linkTo(`./add?id=${info.id}`)"><img src="https://cdn.cunwuyun.cn/dvcp/activityList/edit-icon"
alt=""/>立即报名
</div>
<!-- <div class="confirm-bg" v-if="info.logStatus != null && info.logStatus != 0" @click="cancel()">
<img src="https://cdn.cunwuyun.cn/dvcp/activityList/cancel-icon" alt="">取消报名
</div> -->
<div class="confirm-bg" v-if="info.actionStatus == 1 && info.logStatus == 0"
@click="$linkTo(`./addContent?id=${info.signupId}&reportId=${info.id}`)"><img
src="https://cdn.cunwuyun.cn/dvcp/activityList/edit-icon" alt=""/>填写活动日志
</div>
<div class="confirm-bg" v-if="info.logStatus == 2"
@click="$linkTo(`./logDetail?id=${info.id}&title=${info.title}`)"><img
src="https://cdn.cunwuyun.cn/dvcp/activityList/tips-icon" alt=""/>我的活动日志
</div>
</div>
</div>
</template>
<script>
import {mapState} from 'vuex'
export default {
name: 'detail',
computed: {
...mapState(['user', 'token']),
},
data() {
return {
viewMore: false,
id: '',
info: {},
partyId: '',
}
},
onLoad(option) {
this.id = option.id
if (this.user.partyId) {
this.partyId = this.user.partyId
} else {
this.partyId = this.user.residentId
}
},
onShow() {
this.$dict.load('partyReportActionStatus').then((res) => {
this.getDetail()
})
},
methods: {
getDetail() {
this.$instance.post(`/app/apppartyreport/queryDetailById?id=${this.id}&partyId=${this.partyId}`).then((res) => {
if (res.code == 0) {
this.info = res.data
this.info.beginTime = this.info.beginTime.substring(0, 16)
this.info.endTime = this.info.endTime.substring(0, 16)
this.info.stopSignupTime = this.info.stopSignupTime.substring(0, 16)
}
})
},
cancel() {
this.$instance.post(`/app/apppartyreport/signup-cancel?id=${this.id}&partyId=${this.partyId}`).then((res) => {
if (res.code == 0) {
this.$toast('取消报名成功!')
this.getDetail()
}
})
},
},
onShareAppMessage() {
return {
title: this.info.title,
path: `/mods/AppActivityList/AppActivityList?id=${this.id}`,
}
},
}
</script>
<style scoped lang="scss">
@import "~dvcp-wui/common";
.page {
width: 100%;
background-color: #fff;
.header-info {
background-color: #197df0;
padding: 24px 32px 0;
.title {
width: 100%;
word-break: break-all;
font-size: 40px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #ffffff;
line-height: 64px;
letter-spacing: 2px;
margin-bottom: 16px;
}
.info {
margin-bottom: 16px;
font-size: 28px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
line-height: 40px;
.label {
display: inline-block;
color: #fff;
// width:192px; // text-align: justify;
// text-align-last:justify
}
.value {
color: #fff;
}
}
.view-btn {
font-size: 28px;
color: #fff;
line-height: 40px;
text-align: center;
padding: 52px 0 20px 0;
img {
width: 32px;
height: 32px;
vertical-align: middle;
margin-left: 4px;
transition: all 0.3s ease;
}
.view-btn-active {
transform: rotate(-180deg);
}
}
}
.content {
background-color: #fff;
padding-bottom: 112px;
.title {
width: 100%;
line-height: 96px;
background: #fff;
padding-left: 32px;
box-sizing: border-box;
color: #666;
}
.html {
padding: 16px 32px;
}
}
.btn-footer {
display: flex;
height: 112px;
line-height: 112px;
background-color: #fff;
border-top: 2px solid #ddd;
box-sizing: border-box;
div {
flex: 1;
text-align: center;
font-size: 32px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #666;
img {
width: 36px;
height: 36px;
margin-right: 8px;
vertical-align: sub;
}
}
.confirm-bg {
background-color: #197df0;
color: #fff;
}
}
}
</style>

View File

@@ -1,161 +0,0 @@
<template>
<div class="page">
<div class="header-info">
<p class="title">{{ title }}</p>
<div class="info">
<span class="label">提交时间</span>
<span class="value">{{ info.submitTime }}</span>
</div>
</div>
<div class="content">
<p class="title"><span class="title-line"></span>活动总结</p>
<div class="html" v-html="info.content"></div>
</div>
<div class="content" v-if="info.files.length">
<p class="title"><span class="title-line"></span>活动照片</p>
<div class="img-list">
<img :src="item.accessUrl" alt="" v-for="(item, index) in info.files" :key="index"
@click="$previewImage(info.files, index, 'accessUrl')"/>
</div>
</div>
</div>
</template>
<script>
import {mapState} from 'vuex'
export default {
name: 'logDetail',
appName:"活动日志",
computed: {
...mapState(['user']),
},
data() {
return {
id: '',
info: {},
partyId: '',
title: ''
}
},
onLoad(option) {
if (this.user.partyId) {
this.partyId = this.user.partyId
} else {
this.partyId = this.user.residentId
}
this.id = option.id
this.title = option.title
this.getDetail()
},
methods: {
getDetail() {
this.$instance.post(`/app/apppartyreport/log-report?reportId=${this.id}&partyId=${this.partyId}`).then((res) => {
if (res.code == 0) {
this.info = res.data
this.info.submitTime = this.info.submitTime.substring(0, 16)
}
})
},
},
}
</script>
<style scoped lang="scss">
@import "~dvcp-wui/common";
.page {
width: 100%;
background-color: #f3f6f9;
.header-info {
background-color: #197df0;
padding: 24px 32px 48px;
margin-bottom: 16px;
.title {
width: 100%;
word-break: break-all;
font-size: 40px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #ffffff;
line-height: 64px;
letter-spacing: 2px;
margin-bottom: 16px;
}
.info {
margin-bottom: 16px;
font-size: 28px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
line-height: 40px;
.label {
display: inline-block;
color: #fff;
// width:192px; // text-align: justify;
// text-align-last:justify
}
.value {
color: #ffe8e8;
}
}
.view-btn {
font-size: 28px;
color: #fff;
line-height: 40px;
text-align: center;
padding: 52px 0 20px 0;
img {
width: 32px;
height: 32px;
vertical-align: middle;
margin-left: 4px;
transition: all 0.3s ease;
}
.view-btn-active {
transform: rotate(-180deg);
}
}
}
.content {
background-color: #fff;
margin-bottom: 16px;
.title {
width: 100%;
line-height: 96px;
background: #fff;
padding-left: 32px;
box-sizing: border-box;
color: #666;
.title-line {
display: inline-block;
width: 6px;
height: 32px;
background: #D7261E;
margin-right: 12px;
vertical-align: sub;
}
}
.html {
padding: 16px 32px;
}
.img-list {
img {
width: 686px;
height: 384px;
margin: 0 0 32px 32px;
}
}
}
}
</style>

View File

@@ -1,120 +0,0 @@
<template>
<div class="page">
<p class="title">报名记录已有<span>{{ list.length }}</span>人报名</p>
<div class="user-list">
<div class="item" v-for="(item, index) in list" :key="index">
<div class="left">
<img :src="item.avatar" alt="">
<span>{{ nameInit(item.partyName) }}</span>
</div>
<div class="time">{{ item.signupTime }}</div>
</div>
<AiEmpty v-if="!list.length" class="pad-t168"/>
</div>
</div>
</template>
<script>
export default {
name: "userList",
appName: "活动报名情况",
data() {
return {
id: '',
list: []
}
},
onLoad(option) {
this.id = option.id
this.getList()
},
methods: {
getList() {
this.$instance.post(`/app/apppartyreport/signup-info?id=${this.id}`).then(res => {
if (res.code == 0) {
this.list = res.data
if (this.list.length) {
this.list.map((item) => {
if (!item.partyName && item.residentName) {
item.partyName = item.residentName
}
})
}
}
})
},
nameInit(name) {
if (!name) {
return '-'
}
var newStr;
if (name.length === 2) {
newStr = '*' + name.substr(1, 2)
} else if (name.length > 2) {
var char = '';
for (var i = 0, len = name.length - 2; i < len; i++) {
char += '*';
}
newStr = char + name.substr(name.length - 2, name.length);
} else {
newStr = name;
}
return newStr;
}
}
}
</script>
<style scoped lang="scss">
@import "~dvcp-wui/common";
.page {
width: 100%;
background-color: #F3F6F9;
padding-top: 16px;
.title {
line-height: 96px;
background-color: #fff;
padding-left: 32px;
color: #333;
font-size: 32px;
margin-bottom: 4px span {
color: #D73D3D;
}
}
.user-list {
.item {
width: 100%;
height: 148px;
background: #FFFFFF;
display: flex;
justify-content: space-between;
font-size: 30px;
padding: 32px;
box-sizing: border-box;
box-shadow: 0 8px 34px -8px rgba(213, 213, 213, 0.5);
.left {
color: #2D2D2E;
line-height: 46px;
vertical-align: middle;
img {
width: 80px;
height: 80px;
border-radius: 50%;
vertical-align: middle;
margin-right: 16px;
}
}
.time {
color: #999;
line-height: 80px;
}
}
}
}
</style>

View File

@@ -45,7 +45,7 @@ export default {
}
</script>
<style scoped lang="scss">
@import "~dvcp-wui/common";
@import "../../../../../node_modules/dvcp-wui/common";
.page {
width: 100vw;

View File

@@ -142,7 +142,7 @@ export default {
}
</script>
<style scoped lang="scss">
@import "~dvcp-wui/common";
@import "../../../../../node_modules/dvcp-wui/common";
.page {
width: 100vw;

View File

@@ -85,7 +85,7 @@ export default {
}
</script>
<style scoped lang="scss">
@import "~dvcp-wui/common";
@import "../../../../../../node_modules/dvcp-wui/common";
.page {
width: 100vw;

View File

@@ -122,7 +122,7 @@ export default {
}
</script>
<style scoped lang="scss">
@import "~dvcp-wui/common";
@import "../../../../../../node_modules/dvcp-wui/common";
.page {
width: 100vw;

View File

@@ -31,7 +31,7 @@ export default {
}
</script>
<style scoped lang="scss">
@import "~dvcp-wui/common";
@import "../../../../../node_modules/dvcp-wui/common";
.page {
width: 100%;

View File

@@ -94,7 +94,7 @@ export default {
};
</script>
<style lang="scss" scope>
@import "~dvcp-wui/common";
@import "../../../../node_modules/dvcp-wui/common";
.top {
height: 480px;

View File

@@ -86,7 +86,7 @@ export default {
}
</script>
<style lang="scss">
@import "~dvcp-wui/common";
@import "../../../../node_modules/dvcp-wui/common";
.success {
height: 100vh;

View File

@@ -19,7 +19,7 @@
<div class="list-wrap">
<div class="card" v-for="(item,index) in list" :key="index">
<img
:src="item.picture || require('../../static/img/police.png')"
:src="item.picture || require('../../../static/img/police.png')"
@click="preview(index)"
alt="">
<div class="right">

View File

@@ -175,7 +175,6 @@ export default {
stepList: [],
}
},
onLoad(query) {
this.id = query.id
this.getInfo(query.id)

View File

@@ -147,7 +147,7 @@ export default {
}
</script>
<style scoped lang="scss">
@import "~dvcp-wui/common";
@import "../../../../node_modules/dvcp-wui/common";
.page {
width: 100%;

View File

@@ -143,7 +143,7 @@ export default {
}
</script>
<style scoped lang="scss">
@import "~dvcp-wui/common";
@import "../../../../node_modules/dvcp-wui/common";
.page {
width: 100%;

View File

@@ -126,7 +126,7 @@ export default {
}
</script>
<style scoped lang="scss">
@import "~dvcp-wui/common";
@import "../../../../node_modules/dvcp-wui/common";
.page {
width: 100%;

View File

@@ -151,7 +151,7 @@ export default {
}
</script>
<style scoped lang="scss">
@import "~dvcp-wui/common";
@import "../../../../node_modules/dvcp-wui/common";
.page {
width: 100%;

View File

@@ -75,7 +75,7 @@ export default {
}
</script>
<style scoped lang="scss">
@import "~dvcp-wui/common";
@import "../../../../node_modules/dvcp-wui/common";
.page {
width: 100%;