first commit

This commit is contained in:
2026-01-08 14:58:16 +08:00
commit 556e5d64aa
9575 changed files with 1621095 additions and 0 deletions
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,154 @@
<!--#
layout("/layouts/platform_h5.html"){
#-->
<style>
/* 列表卡片样式 */
.wf-welfare-list {
padding: 10px;
}
.wf-welfare-card {
position: relative;
background: #fff;
border-radius: 8px;
margin-bottom: 15px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
overflow: hidden;
}
/* 左右布局容器 */
.wf-card-layout {
display: flex;
padding: 15px;
}
/* 左侧图片容器 */
.wf-card-img-container {
width: 120px;
height: 120px;
flex-shrink: 0;
margin-right: 15px;
}
/* 右侧信息容器 */
.wf-card-content {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
justify-content: space-between;
}
/* 标题样式 */
.wf-card-heading {
font-size: 16px;
font-weight: bold;
margin-bottom: 8px;
color: #333;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 100%;
}
/* 时间信息样式 */
.wf-time-row {
font-size: 14px;
color: #666;
margin-bottom: 5px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 100%;
}
.wf-time-label {
color: #999;
display: inline-block;
width: 70px;
}
</style>
<div id="app" v-cloak>
<van-sticky>
<van-nav-bar @click-left="()=>this.$pjaxReplace('/platform/h5/home')" left-arrow left-text="返回" placeholder title="福利列表"></van-nav-bar>
<van-dropdown-menu>
<year-van-dropdown-item :num="10" v-model="pageForm.year" @change="doSearch"></year-van-dropdown-item>
</van-dropdown-menu>
</van-sticky>
<div>
<van-list :finished="finished" @load="pageData" finished-text="没有更多了" v-if="tableData.length>0" v-model="loading">
<div class="wf-welfare-list">
<div class="wf-welfare-card" v-for="row in tableData" :key="row.id" @click="openChoose(row)">
<van-tag mark :type="row.isChoose?'success':''" style="position: absolute; left: 5px; top: 5px; z-index: 1">
{{row.isChoose?'已选择':'未选择'}}
</van-tag>
<div class="wf-card-layout">
<div class="wf-card-img-container">
<van-image :src="row.cover" fit="cover" width="100%" height="100%" radius="4"></van-image>
</div>
<div class="wf-card-content">
<div class="wf-card-heading">{{row.name}}</div>
<div class="wf-time-row">
<span class="wf-time-label">开始时间:</span>
{{$moment(row.choiceTimeStart).format('YYYY-MM-DD HH:mm')}}
</div>
<div class="wf-time-row">
<span class="wf-time-label">结束时间:</span>
{{$moment(row.choiceTimeEnd).format('YYYY-MM-DD HH:mm')}}
</div>
</div>
</div>
</div>
</div>
</van-list>
<van-empty v-else image="/assets/platform/plugins/vant-green/images/nodata/nodata.png" description="暂无数据"></van-empty>
</div>
</div>
<script nonce="${cspNonce!}">
new Vue({
el: "#app",
data() {
return {
tableData: [],
finished: false,
loading: false,
pageForm: {
pageNumber: 1,
pageSize: 5,
totalCount: 0,
year: new Date().getFullYear()
}
}
},
methods: {
doSearch() {
this.tableKey = new Date().getTime()
this.pageForm.pageNumber = 1
this.pageForm.totalCount = 0
this.tableData = []
this.pageData()
},
pageData() {
this.loading = true
this.$axios.post("/platform/welfare/userSelect/pageData", this.pageForm).then((res) => {
this.tableData = this.tableData.concat(res.data.list)
if (this.tableData.length === res.data.totalCount) {
this.finished = true
} else {
this.pageForm.pageNumber++
}
this.pageForm.totalCount = res.data.totalCount
this.loading = false
})
},
async openChoose(row) {
this.$pjaxReplace("/platform/h5/welfare/userSelect/index?id=" + row.id)
}
},
created() {
this.pageData()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,109 @@
<!--#
layout("/layouts/platform_h5.html"){
#-->
<style>
.success-container {
min-height: 100vh;
background-color: #f7f8fa;
display: flex;
flex-direction: column;
align-items: center;
padding: 0 20px;
box-sizing: border-box;
}
.success-icon {
margin-top: 80px;
width: 120px;
height: 120px;
border-radius: 60px;
background: #fff;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 4px 16px rgba(25, 137, 250, 0.15);
}
.success-icon .van-icon {
font-size: 60px;
color: #07c160;
}
.success-title {
margin-top: 30px;
font-size: 22px;
font-weight: 600;
color: #333;
}
.success-desc {
margin-top: 16px;
font-size: 15px;
color: #666;
text-align: center;
line-height: 1.6;
}
.button-group {
margin-top: 50px;
width: 100%;
padding: 0 20px;
box-sizing: border-box;
}
.back-btn {
width: 100%;
height: 44px;
font-size: 16px;
border-radius: 22px;
}
.home-btn {
margin-top: 12px;
width: 100%;
height: 44px;
font-size: 16px;
border-radius: 22px;
}
</style>
<div id="app" v-cloak>
<div class="success-container">
<div class="success-icon">
<van-icon name="checked" />
</div>
<div class="success-title">选择成功</div>
<div class="success-desc">
您的福利选择已提交成功!
<br />
请在选择时间截止前,您仍可以重新选择并修改。
</div>
<div class="button-group">
<van-button type="primary" class="back-btn" @click="goToList">查看我的福利</van-button>
<van-button type="default" class="home-btn" @click="goToHome">返回首页</van-button>
</div>
</div>
</div>
<script nonce="${cspNonce!}">
new Vue({
el: "#app",
data() {
return {}
},
methods: {
goToList() {
this.$pjaxReplace("/platform/h5/welfare/mine/list")
},
goToHome() {
this.$pjaxReplace("/platform/h5/home")
}
}
})
</script>
<!--#
}
#-->