小程序目录调整完成
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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¤t=${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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -45,7 +45,7 @@ export default {
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
@import "~dvcp-wui/common";
|
||||
@import "../../../../../node_modules/dvcp-wui/common";
|
||||
|
||||
.page {
|
||||
width: 100vw;
|
||||
@@ -142,7 +142,7 @@ export default {
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
@import "~dvcp-wui/common";
|
||||
@import "../../../../../node_modules/dvcp-wui/common";
|
||||
|
||||
.page {
|
||||
width: 100vw;
|
||||
@@ -85,7 +85,7 @@ export default {
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
@import "~dvcp-wui/common";
|
||||
@import "../../../../../../node_modules/dvcp-wui/common";
|
||||
|
||||
.page {
|
||||
width: 100vw;
|
||||
@@ -122,7 +122,7 @@ export default {
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
@import "~dvcp-wui/common";
|
||||
@import "../../../../../../node_modules/dvcp-wui/common";
|
||||
|
||||
.page {
|
||||
width: 100vw;
|
||||
@@ -31,7 +31,7 @@ export default {
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
@import "~dvcp-wui/common";
|
||||
@import "../../../../../node_modules/dvcp-wui/common";
|
||||
|
||||
.page {
|
||||
width: 100%;
|
||||
@@ -94,7 +94,7 @@ export default {
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scope>
|
||||
@import "~dvcp-wui/common";
|
||||
@import "../../../../node_modules/dvcp-wui/common";
|
||||
|
||||
.top {
|
||||
height: 480px;
|
||||
@@ -86,7 +86,7 @@ export default {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
@import "~dvcp-wui/common";
|
||||
@import "../../../../node_modules/dvcp-wui/common";
|
||||
|
||||
.success {
|
||||
height: 100vh;
|
||||
@@ -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">
|
||||
@@ -175,7 +175,6 @@ export default {
|
||||
stepList: [],
|
||||
}
|
||||
},
|
||||
|
||||
onLoad(query) {
|
||||
this.id = query.id
|
||||
this.getInfo(query.id)
|
||||
@@ -147,7 +147,7 @@ export default {
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
@import "~dvcp-wui/common";
|
||||
@import "../../../../node_modules/dvcp-wui/common";
|
||||
|
||||
.page {
|
||||
width: 100%;
|
||||
@@ -143,7 +143,7 @@ export default {
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
@import "~dvcp-wui/common";
|
||||
@import "../../../../node_modules/dvcp-wui/common";
|
||||
|
||||
.page {
|
||||
width: 100%;
|
||||
@@ -126,7 +126,7 @@ export default {
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
@import "~dvcp-wui/common";
|
||||
@import "../../../../node_modules/dvcp-wui/common";
|
||||
|
||||
.page {
|
||||
width: 100%;
|
||||
@@ -151,7 +151,7 @@ export default {
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
@import "~dvcp-wui/common";
|
||||
@import "../../../../node_modules/dvcp-wui/common";
|
||||
|
||||
.page {
|
||||
width: 100%;
|
||||
@@ -75,7 +75,7 @@ export default {
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
@import "~dvcp-wui/common";
|
||||
@import "../../../../node_modules/dvcp-wui/common";
|
||||
|
||||
.page {
|
||||
width: 100%;
|
||||
Reference in New Issue
Block a user