|
@@ -1,14 +1,33 @@
|
|
<template>
|
|
<template>
|
|
<div class="page">
|
|
<div class="page">
|
|
- <div class="page-top"></div>
|
|
|
|
|
|
+ <div class="page-top">
|
|
|
|
+ <div class="top-tip-container">
|
|
|
|
+ <transition name="fade">
|
|
|
|
+ <div class="top-tip" v-show="showMobileStatus">{{ showMobile }} 已报名参赛!</div>
|
|
|
|
+ </transition>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
<div class="page-content">
|
|
<div class="page-content">
|
|
- <div class="content">
|
|
|
|
|
|
+ <!-- 视频列表 -->
|
|
|
|
+ <template v-if="videoList.length > 0">
|
|
|
|
+ <div class="section-title">
|
|
|
|
+ <div class="title">视频排名</div>
|
|
|
|
+ <div class="more" @click="onMoreClick">
|
|
|
|
+ <span>更多</span>
|
|
|
|
+ <span class="iconfont icon-arrow-right"></span>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <SimpleVideoList :list="videoList" @praise="onPraise" />
|
|
|
|
+ </template>
|
|
|
|
+ <!-- 活动介绍 -->
|
|
|
|
+ <div class="section-title">
|
|
|
|
+ <div class="title">活动介绍</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="activity-content">
|
|
<div class="title">赛事活动介绍</div>
|
|
<div class="title">赛事活动介绍</div>
|
|
<dl>
|
|
<dl>
|
|
<dt><div>活动介绍</div></dt>
|
|
<dt><div>活动介绍</div></dt>
|
|
- <dd>
|
|
|
|
- 采美平台和云进通在跨境物流领域达成战略合作,为广大采美客户提供轻松无忧的跨境体验!
|
|
|
|
- </dd>
|
|
|
|
|
|
+ <dd>采美平台和云进通在跨境物流领域达成战略合作,为广大采美客户提供轻松无忧的跨境体验!</dd>
|
|
<dt><div>活动时间</div></dt>
|
|
<dt><div>活动时间</div></dt>
|
|
<dd>2022.10月10日——2022.12月31日</dd>
|
|
<dd>2022.10月10日——2022.12月31日</dd>
|
|
<dt><div>活动奖励</div></dt>
|
|
<dt><div>活动奖励</div></dt>
|
|
@@ -20,26 +39,36 @@
|
|
相关名称、图片、相关购买凭证,进行设备认证。完成后登录上传视频且抖音分享成功即可!
|
|
相关名称、图片、相关购买凭证,进行设备认证。完成后登录上传视频且抖音分享成功即可!
|
|
</dd>
|
|
</dd>
|
|
<dt><div>评奖规则</div></dt>
|
|
<dt><div>评奖规则</div></dt>
|
|
- <dd>
|
|
|
|
- 用户登录商城注册成功后,按在规定的时间内完成点赞数最高的评定等级
|
|
|
|
- </dd>
|
|
|
|
|
|
+ <dd>用户登录商城注册成功后,按在规定的时间内完成点赞数最高的评定等级</dd>
|
|
<dt><div>奖项公布</div></dt>
|
|
<dt><div>奖项公布</div></dt>
|
|
<dd>用户在规定时间内完成后10个工作日将公布排名以及颁发奖品</dd>
|
|
<dd>用户在规定时间内完成后10个工作日将公布排名以及颁发奖品</dd>
|
|
<dt><div>注意事项</div></dt>
|
|
<dt><div>注意事项</div></dt>
|
|
<dd>一个抖音账号只能参与一次</dd>
|
|
<dd>一个抖音账号只能参与一次</dd>
|
|
</dl>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
- <div class="entry">
|
|
|
|
- <div class="title">活动入口</div>
|
|
|
|
- <div class="list">
|
|
|
|
- <div class="cover" @click="toDetail">
|
|
|
|
- <span class="status" :class="activity.type">
|
|
|
|
- {{ activity.text }}
|
|
|
|
- </span>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
|
|
+
|
|
|
|
+ <div class="control">
|
|
|
|
+ <div class="btn type1" @click="onToSingUp">点击报名参赛</div>
|
|
|
|
+ <div class="btn type2" @click="onToUpload">上传抖音视频</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+
|
|
|
|
+ <!-- 资质上传框 -->
|
|
|
|
+ <GeneralDialog v-model="showDialog" title="上传营业执照" @confirm="onConfirm">
|
|
|
|
+ <div class="general-content">
|
|
|
|
+ <SimpleUploadImage @success="onImageSuccess" @remove="onImageRemove" :imageList="imageList" />
|
|
|
|
+ <div class="tip">提示:请上传您的真实营业执照,以免影响 您的评奖结果!</div>
|
|
|
|
+ </div>
|
|
|
|
+ </GeneralDialog>
|
|
|
|
+
|
|
|
|
+ <!-- 提示框 -->
|
|
|
|
+ <GeneralDialog
|
|
|
|
+ v-model="promptDialog"
|
|
|
|
+ title="提示"
|
|
|
|
+ :content="promptContent"
|
|
|
|
+ :confirmText="promptConfirmText"
|
|
|
|
+ @confirm="onPromptConfirm"
|
|
|
|
+ ></GeneralDialog>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -48,29 +77,309 @@ import { mapGetters } from 'vuex'
|
|
export default {
|
|
export default {
|
|
layout: 'app-ross',
|
|
layout: 'app-ross',
|
|
data() {
|
|
data() {
|
|
|
|
+ const promptContentMap = {
|
|
|
|
+ 0: '恭喜您,报名成功,请去上传您的抖音视频!',
|
|
|
|
+ 1: '抱歉!活动还未开始,暂无法报名!',
|
|
|
|
+ 2: '抱歉!活动已结束,暂无法报名!',
|
|
|
|
+ 3: '抱歉!您已报名,请勿重复操作!',
|
|
|
|
+ 4: '抱歉!请完善您的营业执照!',
|
|
|
|
+ 5: '抱歉!您还未报名,请先报名后再来上传视频!',
|
|
|
|
+ 6: '抱歉!活动还未开始,暂无法上传视频!',
|
|
|
|
+ 7: '抱歉!活动已结束,暂无法上传视频!',
|
|
|
|
+ }
|
|
|
|
+
|
|
return {
|
|
return {
|
|
|
|
+ dialog: true,
|
|
activityState: 0,
|
|
activityState: 0,
|
|
|
|
+ videoList: [],
|
|
|
|
+ // 用户报名状态
|
|
|
|
+ signUpStatus: 0, // 0:未报名 1:已报名
|
|
|
|
+ // 营业执照
|
|
|
|
+ showDialog: false,
|
|
|
|
+ imageList: [],
|
|
|
|
+ qualificationUrl: '',
|
|
|
|
+ // 提示框信息
|
|
|
|
+ promptDialog: false,
|
|
|
|
+ promptContentMap,
|
|
|
|
+ promptStatus: -1,
|
|
|
|
+ // 非认证机构报名提交资质报名表单
|
|
|
|
+ formData: {
|
|
|
|
+ mobile: '',
|
|
|
|
+ licenseOssUrl: '',
|
|
|
|
+ authUserId: '',
|
|
|
|
+ licenseOssName: '',
|
|
|
|
+ authId: '',
|
|
|
|
+ },
|
|
|
|
+ listQuery: {
|
|
|
|
+ clubUserId: '',
|
|
|
|
+ clubUserName: '',
|
|
|
|
+ authUserId: '',
|
|
|
|
+ pageNum: 1,
|
|
|
|
+ pageSize: 12,
|
|
|
|
+ status: 1,
|
|
|
|
+ },
|
|
|
|
+ // 参赛用户列表
|
|
|
|
+ singInClubList: [],
|
|
|
|
+ showMobile: '',
|
|
|
|
+ showMobileStatus: false,
|
|
}
|
|
}
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
- ...mapGetters(['routePrefix', 'authUserId']),
|
|
|
|
- // 活动状态
|
|
|
|
- activity() {
|
|
|
|
- const result = {
|
|
|
|
- 2: { type: 'end', text: '已结束' },
|
|
|
|
- 1: { type: 'start', text: '进行中' },
|
|
|
|
- 0: { type: 'wait', text: '未开始' },
|
|
|
|
- }
|
|
|
|
- return result[this.activityState]
|
|
|
|
|
|
+ ...mapGetters(['routePrefix', 'authUserId', 'accessToken', 'userInfo', 'authId']),
|
|
|
|
+ // 提示框内容
|
|
|
|
+ promptContent() {
|
|
|
|
+ return this.promptContentMap[this.promptStatus]
|
|
|
|
+ },
|
|
|
|
+ // 确定按钮内容
|
|
|
|
+ promptConfirmText() {
|
|
|
|
+ return this.promptStatus === 2 ? '上传抖音视频' : '确定'
|
|
|
|
+ },
|
|
|
|
+ // 参赛机构手机号
|
|
|
|
+ signInClubMobileList() {
|
|
|
|
+ return this.singInClubList.map((item) => item.userName.replace(/^(\w{3})\w+(\w{4})$/, '$1****$2'))
|
|
},
|
|
},
|
|
},
|
|
},
|
|
created() {
|
|
created() {
|
|
this.fetchActivityStatus()
|
|
this.fetchActivityStatus()
|
|
|
|
+ this.fetchVideoList()
|
|
|
|
+ this.fetchSignInClubList()
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
|
|
+ // 分享当前页面
|
|
this.initAppMessageShareData()
|
|
this.initAppMessageShareData()
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ // 参赛机构手机号滚动
|
|
|
|
+ mobileLoop() {
|
|
|
|
+ if (this.signInClubMobileList.length > 0) {
|
|
|
|
+ let i = 0
|
|
|
|
+ this.showMobile = this.signInClubMobileList[i]
|
|
|
|
+ this.showMobileStatus = true
|
|
|
|
+ console.log('显示')
|
|
|
|
+ setTimeout(() => {
|
|
|
|
+ this.showMobileStatus = false
|
|
|
|
+ console.log('隐藏')
|
|
|
|
+ }, 1500)
|
|
|
|
+ const timer = setInterval(() => {
|
|
|
|
+ i++
|
|
|
|
+ setTimeout(() => {
|
|
|
|
+ this.showMobileStatus = false
|
|
|
|
+ console.log('隐藏')
|
|
|
|
+ }, 1500)
|
|
|
|
+ if (i > this.signInClubMobileList.length - 1) {
|
|
|
|
+ clearInterval(timer)
|
|
|
|
+ console.log('结束')
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ console.log('显示')
|
|
|
|
+ this.showMobile = this.signInClubMobileList[i]
|
|
|
|
+ this.showMobileStatus = true
|
|
|
|
+ }, 2000)
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 查看更多视频
|
|
|
|
+ onMoreClick() {
|
|
|
|
+ this.$router.push(`${this.routePrefix}/activity/challenge/list`)
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 点击报名
|
|
|
|
+ onToSingUp() {
|
|
|
|
+ // 活动未开启
|
|
|
|
+ if (this.activityState === 0) {
|
|
|
|
+ this.promptStatus = 1
|
|
|
|
+ this.promptDialog = true
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // 活动已结束
|
|
|
|
+ if (this.activityState === 2) {
|
|
|
|
+ this.promptStatus = 2
|
|
|
|
+ this.promptDialog = true
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // 未登录
|
|
|
|
+ if (!this.accessToken) {
|
|
|
|
+ this.$store.commit('app/SHOW_LOGIN')
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // 已经报名
|
|
|
|
+ if (this.signUpStatus === 1) {
|
|
|
|
+ this.promptStatus = 3
|
|
|
|
+ this.promptDialog = true
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // 未认证机构
|
|
|
|
+ if (!this.authId) {
|
|
|
|
+ this.promptStatus = 4
|
|
|
|
+ this.promptDialog = true
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 已认证机构
|
|
|
|
+ if (this.authId) {
|
|
|
|
+ this.clubSignUpActivity()
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 上传抖音视频
|
|
|
|
+ onToUpload() {
|
|
|
|
+ // 活动未开启
|
|
|
|
+ if (this.activityState === 0) {
|
|
|
|
+ this.promptStatus = 6
|
|
|
|
+ this.promptDialog = true
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // 活动已结束
|
|
|
|
+ if (this.activityState === 2) {
|
|
|
|
+ this.promptStatus = 7
|
|
|
|
+ this.promptDialog = true
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // 未登录
|
|
|
|
+ if (!this.accessToken) {
|
|
|
|
+ this.$store.commit('app/SHOW_LOGIN')
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // 未报名
|
|
|
|
+ if (this.signUpStatus === 0) {
|
|
|
|
+ this.promptDialog = true
|
|
|
|
+ this.promptStatus = 5
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ this.$router.push(`${this.routePrefix}/activity/challenge/publish`)
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 机构用户报名
|
|
|
|
+ async clubSignUpActivity() {
|
|
|
|
+ try {
|
|
|
|
+ this.formData.mobile = this.userInfo.mobile
|
|
|
|
+ this.formData.authUserId = this.authUserId
|
|
|
|
+ this.formData.authId = this.userInfo.authId
|
|
|
|
+ await this.$http.api.clubSignUpActivity(this.formData)
|
|
|
|
+ // 报名成功
|
|
|
|
+ this.promptStatus = 0
|
|
|
|
+ this.signUpStatus = 1
|
|
|
|
+ this.promptDialog = true
|
|
|
|
+ } catch (error) {
|
|
|
|
+ console.log(error)
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 提示框确定事件
|
|
|
|
+ onPromptConfirm() {
|
|
|
|
+ this.promptDialog = false
|
|
|
|
+ // 上传资质
|
|
|
|
+ if (this.promptStatus === 4) {
|
|
|
|
+ this.showDialog = true
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // 去上传抖音视频
|
|
|
|
+ if (this.promptStatus === 0) {
|
|
|
|
+ this.$router.push(`${this.routePrefix}/activity/challenge/publish`)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 提交资质文件
|
|
|
|
+ onConfirm() {
|
|
|
|
+ this.showDialog = false
|
|
|
|
+ this.clubSignUpActivity()
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 文件上传成功
|
|
|
|
+ onImageSuccess({ response, fileList }) {
|
|
|
|
+ this.imageList = fileList
|
|
|
|
+ this.formData.licenseOssUrl = response.data
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 文件移除
|
|
|
|
+ onImageRemove() {
|
|
|
|
+ this.imageList = []
|
|
|
|
+ this.formData.licenseOssUrl = ''
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 视频点赞
|
|
|
|
+ async onPraise(video) {
|
|
|
|
+ try {
|
|
|
|
+ if (!this.accessToken) {
|
|
|
|
+ this.$toast('请先登录')
|
|
|
|
+ this.$store.commit('app/SHOW_LOGIN')
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ const status = video.diggStatus === 0 ? 1 : 0
|
|
|
|
+ const { clubUserId } = this.userInfo
|
|
|
|
+ await this.$http.api.diggcountVideo({
|
|
|
|
+ id: video.id,
|
|
|
|
+ diggStatus: status,
|
|
|
|
+ clubUserId,
|
|
|
|
+ clubUserIds: video.clubUserIds,
|
|
|
|
+ })
|
|
|
|
+ video.diggStatus = status
|
|
|
|
+ let tip = ''
|
|
|
|
+ if (video.diggStatus === 0) {
|
|
|
|
+ tip = '已取消点赞'
|
|
|
|
+ video.diggCount--
|
|
|
|
+ } else {
|
|
|
|
+ tip = '点赞成功'
|
|
|
|
+ video.diggCount++
|
|
|
|
+ }
|
|
|
|
+ this.$toast.success(tip)
|
|
|
|
+ } catch (error) {
|
|
|
|
+ console.log(error)
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 获取视频列表
|
|
|
|
+ async fetchVideoList() {
|
|
|
|
+ try {
|
|
|
|
+ this.listQuery.authUserId = this.authUserId
|
|
|
|
+ this.listQuery.clubUserId = this.userInfo.clubUserId
|
|
|
|
+ const res = await this.$http.api.fetchClubVideoList(this.listQuery)
|
|
|
|
+ console.log(res)
|
|
|
|
+ this.videoList = res.data.list
|
|
|
|
+ } catch (error) {
|
|
|
|
+ console.log(error)
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 获取用户活动报名状态
|
|
|
|
+ async fetchContestInfo() {
|
|
|
|
+ try {
|
|
|
|
+ const res = await this.$http.api.checkContestInfo({ mobile: this.userInfo.mobile })
|
|
|
|
+ this.signUpStatus = res.data.contestStatus
|
|
|
|
+ } catch (error) {
|
|
|
|
+ console.log(error)
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 获取参赛的用户
|
|
|
|
+ async fetchSignInClubList() {
|
|
|
|
+ try {
|
|
|
|
+ const res = await this.$http.api.fetchEnteredClubList({ authUserId: this.authUserId })
|
|
|
|
+ this.singInClubList = res.data
|
|
|
|
+ this.mobileLoop()
|
|
|
|
+ } catch (error) {
|
|
|
|
+ console.log(error)
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 获取活动状态
|
|
|
|
+ async fetchActivityStatus() {
|
|
|
|
+ try {
|
|
|
|
+ const res = await this.$http.api.fetchActivityStatus({
|
|
|
|
+ authUserId: this.authUserId,
|
|
|
|
+ })
|
|
|
|
+ if (!res.data) return
|
|
|
|
+ this.activityState = res.data.activityState
|
|
|
|
+ if (!this.accessToken) return
|
|
|
|
+ this.fetchContestInfo()
|
|
|
|
+ } catch (error) {
|
|
|
|
+ console.log(error)
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 分享当前页面
|
|
initAppMessageShareData() {
|
|
initAppMessageShareData() {
|
|
// 重试次数
|
|
// 重试次数
|
|
let retryCount = 1
|
|
let retryCount = 1
|
|
@@ -89,48 +398,91 @@ export default {
|
|
})
|
|
})
|
|
})
|
|
})
|
|
},
|
|
},
|
|
-
|
|
|
|
- // 活动详情
|
|
|
|
- toDetail() {
|
|
|
|
- const url = `${this.routePrefix}/activity/challenge/list`
|
|
|
|
- this.$router.push(url)
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- // 获取活动状态
|
|
|
|
- async fetchActivityStatus() {
|
|
|
|
- try {
|
|
|
|
- const res = await this.$http.api.fetchActivityStatus({
|
|
|
|
- authUserId: this.authUserId,
|
|
|
|
- })
|
|
|
|
- if (!res.data) return
|
|
|
|
- this.activityState = res.data.activityState
|
|
|
|
- } catch (error) {
|
|
|
|
- console.log(error)
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
},
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
|
|
+.fade-enter-active,
|
|
|
|
+.fade-leave-active {
|
|
|
|
+ transition: opacity 0.5s;
|
|
|
|
+}
|
|
|
|
+.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
|
|
|
|
+ opacity: 0;
|
|
|
|
+}
|
|
|
|
+
|
|
@media screen and (min-width: 768px) {
|
|
@media screen and (min-width: 768px) {
|
|
|
|
+ .general-content {
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+ align-items: center;
|
|
|
|
+ .tip {
|
|
|
|
+ width: 266px;
|
|
|
|
+ margin: 0 auto;
|
|
|
|
+ margin-top: 36px;
|
|
|
|
+ line-height: 24px;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ color: #b2b2b2;
|
|
|
|
+ text-align: center;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
.page {
|
|
.page {
|
|
padding-bottom: 120px;
|
|
padding-bottom: 120px;
|
|
background: #fff;
|
|
background: #fff;
|
|
.page-top {
|
|
.page-top {
|
|
width: 100%;
|
|
width: 100%;
|
|
height: 530px;
|
|
height: 530px;
|
|
- background: url(~assets/theme-images/ross/pc-banner-activity.png)
|
|
|
|
- no-repeat center;
|
|
|
|
|
|
+ background: url(~assets/theme-images/ross/pc-banner-activity.png) no-repeat center;
|
|
background-size: auto 530px;
|
|
background-size: auto 530px;
|
|
|
|
+
|
|
|
|
+ .top-tip-container {
|
|
|
|
+ position: relative;
|
|
|
|
+ width: 870px;
|
|
|
|
+ margin: 0 auto;
|
|
|
|
+
|
|
|
|
+ .top-tip {
|
|
|
|
+ position: absolute;
|
|
|
|
+ left: 0;
|
|
|
|
+ top: 32px;
|
|
|
|
+ width: 200px;
|
|
|
|
+ height: 32px;
|
|
|
|
+ background: rgba(0, 0, 0, 0.4);
|
|
|
|
+ border-radius: 2px;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ color: #fff;
|
|
|
|
+ text-align: center;
|
|
|
|
+ line-height: 32px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
.page-content {
|
|
.page-content {
|
|
- width: 872px;
|
|
|
|
|
|
+ width: 1196px;
|
|
margin: 0 auto;
|
|
margin: 0 auto;
|
|
- margin-top: 16px;
|
|
|
|
|
|
|
|
- .content {
|
|
|
|
|
|
+ .section-title {
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ align-items: center;
|
|
|
|
+ padding: 32px 0 16px;
|
|
|
|
+ .title {
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ font-weight: bold;
|
|
|
|
+ color: #282828;
|
|
|
|
+ }
|
|
|
|
+ .more {
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ color: #999;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+
|
|
|
|
+ &:hover {
|
|
|
|
+ color: #f3920d;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .activity-content {
|
|
min-height: 1170px;
|
|
min-height: 1170px;
|
|
|
|
|
|
.title {
|
|
.title {
|
|
@@ -142,12 +494,13 @@ export default {
|
|
margin-bottom: 70px;
|
|
margin-bottom: 70px;
|
|
padding-top: 20px;
|
|
padding-top: 20px;
|
|
font-weight: bold;
|
|
font-weight: bold;
|
|
- background: url(~assets/theme-images/ross/pc_activity_title_01.png)
|
|
|
|
- no-repeat center;
|
|
|
|
|
|
+ background: url(~assets/theme-images/ross/pc_activity_title_01.png) no-repeat center;
|
|
background-size: auto 80px;
|
|
background-size: auto 80px;
|
|
}
|
|
}
|
|
|
|
|
|
dl {
|
|
dl {
|
|
|
|
+ width: 872px;
|
|
|
|
+ margin: 0 auto;
|
|
dt {
|
|
dt {
|
|
font-size: 30px;
|
|
font-size: 30px;
|
|
text-align: center;
|
|
text-align: center;
|
|
@@ -171,52 +524,26 @@ export default {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- .entry {
|
|
|
|
- margin-top: 120px;
|
|
|
|
- .title {
|
|
|
|
- font-size: 40px;
|
|
|
|
- color: #333;
|
|
|
|
- height: 80px;
|
|
|
|
- box-sizing: border-box;
|
|
|
|
|
|
+ .control {
|
|
|
|
+ .btn {
|
|
|
|
+ width: 295px;
|
|
|
|
+ height: 50px;
|
|
|
|
+ line-height: 50px;
|
|
|
|
+ font-size: 16px;
|
|
text-align: center;
|
|
text-align: center;
|
|
- margin-bottom: 70px;
|
|
|
|
- padding-top: 20px;
|
|
|
|
- font-weight: bold;
|
|
|
|
- background: url(~assets/theme-images/ross/pc_activity_title_02.png)
|
|
|
|
- no-repeat center;
|
|
|
|
- background-size: auto 80px;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- .cover {
|
|
|
|
- position: relative;
|
|
|
|
- width: 856px;
|
|
|
|
- height: 340px;
|
|
|
|
- margin: 0 auto;
|
|
|
|
|
|
+ margin: 16px auto 0;
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
- background: url(~assets/theme-images/ross/activity-entry-bg.png)
|
|
|
|
- no-repeat center;
|
|
|
|
- background-size: 856px 340px;
|
|
|
|
-
|
|
|
|
- .status {
|
|
|
|
- position: absolute;
|
|
|
|
- left: 0;
|
|
|
|
- top: 0;
|
|
|
|
- width: 72px;
|
|
|
|
- height: 32px;
|
|
|
|
- line-height: 32px;
|
|
|
|
- border-radius: 8px 0 8px 0;
|
|
|
|
- color: #fff;
|
|
|
|
- text-align: center;
|
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
|
- &.wait {
|
|
|
|
- background: #f94b4b;
|
|
|
|
- }
|
|
|
|
- &.start {
|
|
|
|
- background: #f3920d;
|
|
|
|
- }
|
|
|
|
- &.end {
|
|
|
|
- background: rgba(0, 0, 0, 0.3);
|
|
|
|
- }
|
|
|
|
|
|
+ &.type1 {
|
|
|
|
+ background: #f3920d;
|
|
|
|
+ color: #ffffff;
|
|
|
|
+ }
|
|
|
|
+ &.type2 {
|
|
|
|
+ border: 1px solid #f3920d;
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+ line-height: 48px;
|
|
|
|
+ color: #f3920d;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -225,14 +552,48 @@ export default {
|
|
}
|
|
}
|
|
|
|
|
|
@media screen and (max-width: 768px) {
|
|
@media screen and (max-width: 768px) {
|
|
|
|
+ .general-content {
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+ align-items: center;
|
|
|
|
+ .tip {
|
|
|
|
+ width: 57vw;
|
|
|
|
+ margin: 0 auto;
|
|
|
|
+ margin-top: 4.8vw;
|
|
|
|
+ line-height: 5.6vw;
|
|
|
|
+ font-size: 3.2vw;
|
|
|
|
+ color: #b2b2b2;
|
|
|
|
+ text-align: center;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
.page {
|
|
.page {
|
|
padding-bottom: 10vw;
|
|
padding-bottom: 10vw;
|
|
.page-top {
|
|
.page-top {
|
|
width: 100%;
|
|
width: 100%;
|
|
height: 100vw;
|
|
height: 100vw;
|
|
- background: url(~assets/theme-images/ross/h5-banner-activity.png)
|
|
|
|
- no-repeat center;
|
|
|
|
|
|
+ background: url(~assets/theme-images/ross/h5-banner-activity.png) no-repeat center;
|
|
background-size: auto 100vw;
|
|
background-size: auto 100vw;
|
|
|
|
+
|
|
|
|
+ .top-tip-container {
|
|
|
|
+ position: relative;
|
|
|
|
+ width: 100%;
|
|
|
|
+ margin: 0 auto;
|
|
|
|
+
|
|
|
|
+ .top-tip {
|
|
|
|
+ position: absolute;
|
|
|
|
+ left: 4vw;
|
|
|
|
+ top: 6.4vw;
|
|
|
|
+ width: 46vw;
|
|
|
|
+ height: 7.2vw;
|
|
|
|
+ background: rgba(0, 0, 0, 0.4);
|
|
|
|
+ border-radius: 0.2vw;
|
|
|
|
+ font-size: 3.2vw;
|
|
|
|
+ color: #fff;
|
|
|
|
+ text-align: center;
|
|
|
|
+ line-height: 7.2vw;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
.page-content {
|
|
.page-content {
|
|
@@ -240,7 +601,28 @@ export default {
|
|
margin: 0 auto;
|
|
margin: 0 auto;
|
|
margin-top: 3.2vw;
|
|
margin-top: 3.2vw;
|
|
|
|
|
|
- .content {
|
|
|
|
|
|
+ .section-title {
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ align-items: center;
|
|
|
|
+ padding: 32px 0 16px;
|
|
|
|
+ .title {
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ font-weight: bold;
|
|
|
|
+ color: #282828;
|
|
|
|
+ }
|
|
|
|
+ .more {
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ color: #999;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+
|
|
|
|
+ &:hover {
|
|
|
|
+ color: #f3920d;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .activity-content {
|
|
min-height: 116.3vw;
|
|
min-height: 116.3vw;
|
|
margin-top: 8vw;
|
|
margin-top: 8vw;
|
|
|
|
|
|
@@ -253,8 +635,7 @@ export default {
|
|
margin-bottom: 8vw;
|
|
margin-bottom: 8vw;
|
|
padding-top: 2.4vw;
|
|
padding-top: 2.4vw;
|
|
font-weight: bold;
|
|
font-weight: bold;
|
|
- background: url(~assets/theme-images/ross/h5_activity_title_01.png)
|
|
|
|
- no-repeat center;
|
|
|
|
|
|
+ background: url(~assets/theme-images/ross/h5_activity_title_01.png) no-repeat center;
|
|
background-size: auto 9vw;
|
|
background-size: auto 9vw;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -282,54 +663,26 @@ export default {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- .entry {
|
|
|
|
- margin-top: 15vw;
|
|
|
|
- .title {
|
|
|
|
- font-size: 5vw;
|
|
|
|
- color: #333;
|
|
|
|
- height: 9vw;
|
|
|
|
- box-sizing: border-box;
|
|
|
|
|
|
+ .control {
|
|
|
|
+ .btn {
|
|
|
|
+ width: 85.5vw;
|
|
|
|
+ height: 12vw;
|
|
|
|
+ line-height: 12vw;
|
|
|
|
+ font-size: 3.6vw;
|
|
text-align: center;
|
|
text-align: center;
|
|
- margin-bottom: 8vw;
|
|
|
|
- padding-top: 2.4vw;
|
|
|
|
- font-weight: bold;
|
|
|
|
- background: url(~assets/theme-images/ross/h5_activity_title_02.png)
|
|
|
|
- no-repeat center;
|
|
|
|
- background-size: auto 9vw;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- .cover {
|
|
|
|
- position: relative;
|
|
|
|
- width: 85.6vw;
|
|
|
|
- height: 34vw;
|
|
|
|
- margin: 0 auto;
|
|
|
|
- // background: pink;
|
|
|
|
|
|
+ margin: 2.4vw auto 0;
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
- background: url(~assets/theme-images/ross/activity-entry-bg.png)
|
|
|
|
- no-repeat center;
|
|
|
|
- background-size: 85.6vw 34vw;
|
|
|
|
-
|
|
|
|
- .status {
|
|
|
|
- position: absolute;
|
|
|
|
- left: 0;
|
|
|
|
- top: 0;
|
|
|
|
- width: 12.8vw;
|
|
|
|
- height: 5.6vw;
|
|
|
|
- line-height: 5.6vw;
|
|
|
|
- border-radius: 0.8vw 0 0.8vw 0;
|
|
|
|
- color: #fff;
|
|
|
|
- text-align: center;
|
|
|
|
- font-size: 3vw;
|
|
|
|
|
|
+ border-radius: 0.4vw;
|
|
|
|
|
|
- &.wait {
|
|
|
|
- background: #f94b4b;
|
|
|
|
- }
|
|
|
|
- &.start {
|
|
|
|
- background: #f3920d;
|
|
|
|
- }
|
|
|
|
- &.end {
|
|
|
|
- background: rgba(0, 0, 0, 0.3);
|
|
|
|
- }
|
|
|
|
|
|
+ &.type1 {
|
|
|
|
+ background: #f3920d;
|
|
|
|
+ color: #ffffff;
|
|
|
|
+ }
|
|
|
|
+ &.type2 {
|
|
|
|
+ border: 0.1vw solid #f3920d;
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+ line-height: 11.8vw;
|
|
|
|
+ color: #f3920d;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|