135 lines
4.9 KiB
HTML
135 lines
4.9 KiB
HTML
<!--#
|
|
layout("/mobile/platform.html"){
|
|
#-->
|
|
|
|
<div id="app" v-cloak>
|
|
<van-nav-bar title="列表" fixed placeholder left-text="返回" left-arrow @click-left="pjaxReplace('/mobile/index')"></van-nav-bar>
|
|
|
|
<van-sticky offset-top="46px">
|
|
<van-tabs v-model="pageForm.category" @change="onRefresh">
|
|
<van-tab v-for="item in dict.type.ACTIVITY_QSV_CATEGORY" :name="item.value" :title="item.label" :key="item.value"></van-tab>
|
|
</van-tabs>
|
|
</van-sticky>
|
|
|
|
<van-pull-refresh v-model="refreshing" @refresh="onRefresh" style="min-height: calc(100vh - 90px)">
|
|
<van-list v-if="list && list.length>0" v-model="loading" :finished="finished" finished-text="" @load="onLoad">
|
|
<div v-for="row in list" :key="row.id">
|
|
<div
|
|
style="display: flex; padding: 15px; margin: 20px; box-sizing: border-box; background: #ffffff; border-radius: 10px"
|
|
@click="itemClick(row)"
|
|
>
|
|
<div class="list-item-icon" style="width: 96px; height: 80px; flex-shrink: 0">
|
|
<img src="/assets/mobile/svg/qsv/icon.svg" alt="" style="width: 100%; height: 100%" />
|
|
</div>
|
|
<div style="flex-grow: 1; display: flex; flex-direction: column; justify-content: space-around">
|
|
<div
|
|
style="
|
|
font-weight: bolder;
|
|
display: -webkit-box;
|
|
-webkit-box-orient: vertical;
|
|
-webkit-line-clamp: 1;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
"
|
|
>
|
|
{{removeHTMLTag(row.title)}}
|
|
</div>
|
|
<div style="font-size: 13px; color: #606266">
|
|
开始时间:{{row.startTime}}
|
|
<br />
|
|
结束时间:{{row.endTime}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</van-list>
|
|
<van-empty v-if="list.length===0" description="没有更多了"></van-empty>
|
|
</van-pull-refresh>
|
|
</div>
|
|
|
|
<script>
|
|
new Vue({
|
|
el: "#app",
|
|
dicts: ["ACTIVITY_QSV_CATEGORY"],
|
|
data() {
|
|
return {
|
|
loading: false,
|
|
finished: false,
|
|
refreshing: false,
|
|
list: [],
|
|
pageForm: {
|
|
pageNumber: 1,
|
|
pageSize: 10,
|
|
category: "QUIZ"
|
|
},
|
|
categoryPaths: {
|
|
QUIZ: "/platform/h5/qsv/quiz",
|
|
SURVEY: "/platform/h5/qsv/survey",
|
|
VOTE: "/platform/h5/qsv/vote"
|
|
}
|
|
}
|
|
},
|
|
methods: {
|
|
onLoad() {
|
|
this.loading = true
|
|
$.post("/platform/h5/qsv/pageData", this.pageForm)
|
|
.then((res) => {
|
|
if (res.code === 0) {
|
|
this.list = this.list.concat(res.data.list)
|
|
this.pageForm.totalCount = res.data.totalCount
|
|
if (this.list.length >= this.pageForm.totalCount) {
|
|
this.finished = true
|
|
}
|
|
this.pageForm.pageNumber++
|
|
}
|
|
this.loading = false
|
|
this.refreshing = false
|
|
})
|
|
},
|
|
onRefresh() {
|
|
this.pageForm.pageNumber = 1
|
|
this.list = []
|
|
this.finished = false
|
|
this.onLoad()
|
|
},
|
|
async itemClick(item) {
|
|
if (item.groupId) {
|
|
if (!await getScopeUser(item.groupId)) {
|
|
this.$toast.fail("您没有权限参与")
|
|
return
|
|
}
|
|
}
|
|
|
|
const { startTime, endTime } = item
|
|
if (this.$moment(startTime).unix() > this.$moment().unix()) {
|
|
this.$toast("未开始")
|
|
return
|
|
}
|
|
|
|
const path = this.categoryPaths[item.category]
|
|
if (path) {
|
|
pjaxReplace(path + "?id=" + item.id)
|
|
}
|
|
},
|
|
init() {
|
|
const queryId = GetQueryString('id')
|
|
const category = GetQueryString('category')
|
|
if(category) {
|
|
this.pageForm.category = category
|
|
}
|
|
if(queryId) {
|
|
this.pageForm.queryId = queryId
|
|
}
|
|
}
|
|
},
|
|
created() {
|
|
this.init()
|
|
this.onLoad()
|
|
}
|
|
})
|
|
</script>
|
|
|
|
<!--#
|
|
}
|
|
#-->
|