This commit is contained in:
yanran200730
2023-02-02 15:38:39 +08:00
parent e45f6ee040
commit 2c49e28a58
2 changed files with 127 additions and 38 deletions

View File

@@ -83,6 +83,13 @@
<el-form-item prop="round4ActiveLimit" label="第四轮抽奖限制日活天数" :rules="[{required: true, message: '请输入', trigger: 'change'}]"> <el-form-item prop="round4ActiveLimit" label="第四轮抽奖限制日活天数" :rules="[{required: true, message: '请输入', trigger: 'change'}]">
<el-input-number size="small" v-model="form.round4ActiveLimit" :min="1"></el-input-number> <el-input-number size="small" v-model="form.round4ActiveLimit" :min="1"></el-input-number>
</el-form-item> </el-form-item>
<el-form-item style="width: 100%;" prop="wxQrcode" label="微信插件二维码" :rules="[{required: true, message: '请上传', trigger: 'change'}]">
<ai-uploader
:instance="instance"
v-model="form.wxQrcode"
:limit="1">
</ai-uploader>
</el-form-item>
<div> <div>
<el-form-item :label="'奖品' + (index + 1)" style="width: 100%;" v-for="(item, index) in form.prizes" :key="'prizes' + (index + 1)"> <el-form-item :label="'奖品' + (index + 1)" style="width: 100%;" v-for="(item, index) in form.prizes" :key="'prizes' + (index + 1)">
<div> <div>
@@ -92,7 +99,7 @@
<el-input size="small" style="width: 265px;" placeholder="请输入奖品名称" v-model="item.name"></el-input> <el-input size="small" style="width: 265px;" placeholder="请输入奖品名称" v-model="item.name"></el-input>
</div> </div>
<div class="prize-item"> <div class="prize-item">
<span>中奖名称</span> <span>中奖规则</span>
<el-input size="small" style="width: 265px;" placeholder="指定第x个抽奖的人中奖多个逗号隔开" v-model="item.rule"></el-input> <el-input size="small" style="width: 265px;" placeholder="指定第x个抽奖的人中奖多个逗号隔开" v-model="item.rule"></el-input>
</div> </div>
<div class="prize-item"> <div class="prize-item">
@@ -174,6 +181,7 @@
round2ActiveLimit: '', round2ActiveLimit: '',
round3ActiveLimit: '', round3ActiveLimit: '',
round4ActiveLimit: '', round4ActiveLimit: '',
wxQrcode: [],
prizes: [] prizes: []
}, },
id: '' id: ''
@@ -197,6 +205,9 @@
if (res.code === 0) { if (res.code === 0) {
this.form = res.data this.form = res.data
this.form.wxQrcode = [{
url: res.data.wxQrcode
}]
if (res.data.prizes.length) { if (res.data.prizes.length) {
this.form.prizes = res.data.prizes.map(v => { this.form.prizes = res.data.prizes.map(v => {
return { return {
@@ -233,6 +244,7 @@
this.instance.post(`/app/appmarketingactivityinfo/addOrUpdate`, { this.instance.post(`/app/appmarketingactivityinfo/addOrUpdate`, {
...this.form, ...this.form,
id: this.params.id || '', id: this.params.id || '',
wxQrcode: this.form.wxQrcode[0].url,
prizes: this.form.prizes.map(v => { prizes: this.form.prizes.map(v => {
return { return {
...v, ...v,

View File

@@ -1,44 +1,95 @@
<template> <template>
<ai-detail class="detail"> <ai-detail isHasSidebar>
<template slot="title"> <template slot="title">
<ai-title title="活动详情" isShowBack isShowBottomBorder @onBackClick="cancel(false)"> <ai-title title="活动详情" isShowBack isShowBottomBorder @onBackClick="cancel(false)">
</ai-title> </ai-title>
</template> </template>
<template slot="content"> <template slot="content">
<ai-card title="基本信息"> <AiSidebar :tabTitle="tabList" v-model="currIndex"></AiSidebar>
<template #content> <div v-show="currIndex === 0">
<ai-wrapper <ai-card title="基本信息">
label-width="120px"> <template #content>
<ai-info-item label="活动标题" :value="info.title"></ai-info-item> <ai-wrapper
<ai-info-item label="活动内容" isLine> label-width="180px">
<AiArticle :value="info.content"></AiArticle> <ai-info-item label="活动标题" isLine :value="info.title"></ai-info-item>
</ai-info-item> <ai-info-item label="开始时间" :value="info.beginTime"></ai-info-item>
<ai-info-item label="附件" isLine> <ai-info-item label="结束时间" :value="info.endTime"></ai-info-item>
<AiFileList :fileList="info.files"></AiFileList> <ai-info-item label="第一轮抽奖开始时间" :value="info.beginTime1"></ai-info-item>
</ai-info-item> <ai-info-item label="第一轮抽奖限制日活天数" :value="info.round1ActiveLimit"></ai-info-item>
</ai-wrapper> <ai-info-item label="第二轮抽奖开始时间" :value="info.beginTime2"></ai-info-item>
</template> <ai-info-item label="第二轮抽奖限制日活天数" :value="info.round2ActiveLimit"></ai-info-item>
</ai-card> <ai-info-item label="第三轮抽奖开始时间" :value="info.beginTime3"></ai-info-item>
<ai-card title="报名列表"> <ai-info-item label="第三轮抽奖限制日活天数" :value="info.round3ActiveLimit"></ai-info-item>
<template #content> <ai-info-item label="第四轮抽奖开始时间" :value="info.beginTime4"></ai-info-item>
<ai-table <ai-info-item label="第四轮抽奖限制日活天数" :value="info.round4ActiveLimit"></ai-info-item>
:tableData="tableData" <ai-info-item label="微信插件二维码" :value="info.round4ActiveLimit">
:col-configs="colConfigs" <ai-uploader
:total="total" :instance="instance"
style="margin-top: 6px;" disabled
:current.sync="search.current" :value="[{
:size.sync="search.size" url: info.wxQrcode
@getList="getList"> }]"
<!-- <el-table-column slot="options" width="90px" fixed="right" label="操作" align="center"> :limit="1">
<template slot-scope="{ row }"> </ai-uploader>
<div class="table-options"> </ai-info-item>
<el-button type="text" @click="toAdd(row.id)">编辑</el-button> </ai-wrapper>
</div> </template>
</template> </ai-card>
</el-table-column> --> <ai-card title="奖品">
</ai-table> <template #content>
</template> <ai-wrapper
</ai-card> v-for="(item, key) in info.prizes"
:key="key"
label-width="180px">
<ai-info-item label="奖品名称" isLine :value="item.name"></ai-info-item>
<ai-info-item label="中奖规则" :value="item.rule"></ai-info-item>
<ai-info-item label="奖品总数" :value="item.total"></ai-info-item>
<ai-info-item label="奖品排序" :value="item.belongRound"></ai-info-item>
<ai-info-item label="是否默认" :value="item.defaultPrize === '0' ? '否' : '是'"></ai-info-item>
<ai-info-item label="奖品图片">
<ai-uploader
:instance="instance"
disabled
:value="[{
url: item.picture
}]"
:limit="1">
</ai-uploader>
</ai-info-item>
</ai-wrapper>
</template>
</ai-card>
</div>
<div v-show="currIndex === 1">
<ai-card title="报名记录">
<template #content>
<ai-table
:tableData="tableData"
:col-configs="colConfigs"
:total="total"
style="margin-top: 6px;"
:current.sync="search.current"
:size.sync="search.size"
@getList="getList">
</ai-table>
</template>
</ai-card>
</div>
<div v-show="currIndex === 2">
<ai-card title="抽奖记录">
<template #content>
<ai-table
:tableData="prizeList"
:col-configs="prizeColConfigs"
:total="prizeSearch.total"
style="margin-top: 6px;"
:current.sync="prizeSearch.current"
:size.sync="prizeSearch.size"
@getList="getPrizeList">
</ai-table>
</template>
</ai-card>
</div>
</template> </template>
</ai-detail> </ai-detail>
</template> </template>
@@ -55,11 +106,23 @@
data () { data () {
return { return {
currIndex: 0,
tabList: ['基本信息', '报名记录', '抽奖记录'],
colConfigs: [ colConfigs: [
{ prop: 'userName', label: '姓名', align: 'left', width: '200px' }, { prop: 'userName', label: '姓名', align: 'left', width: '200px' },
{ prop: 'userPhone', label: '手机号', align: 'center' }, { prop: 'userPhone', label: '手机号', align: 'center' },
{ prop: 'createTime', label: '报名时间', align: 'center' } { prop: 'createTime', label: '报名时间', align: 'center' }
], ],
prizeColConfigs: [
{ prop: 'userName', label: '姓名', align: 'left', width: '200px' },
{ prop: 'userPhone', label: '手机号', align: 'center' },
{ prop: 'createTime', label: '报名时间', align: 'center' }
],
prizeList: [],
prizeSearch: {
size: 10,
current: 1
},
search: { search: {
size: 10, size: 10,
current: 1 current: 1
@@ -73,11 +136,12 @@
created () { created () {
this.getInfo() this.getInfo()
this.getList() this.getList()
this.getPrizeList()
}, },
methods: { methods: {
getList() { getList() {
this.instance.post(`/app/appactivityinfo/signUpList?activityId=${this.params.id}`, null, { this.instance.post(`/app/appmarketingactivityinfo/signUpList?activityId=${this.params.id}`, null, {
params: { params: {
...this.search ...this.search
} }
@@ -89,8 +153,21 @@
}) })
}, },
getPrizeList() {
this.instance.post(`/app/appmarketingactivityinfo/raffleList?activityId=${this.params.id}`, null, {
params: {
...this.search
}
}).then(res => {
if (res.code == 0) {
this.prizeList = res.data.records
this.prizeSearch.total = res.data.total
}
})
},
getInfo () { getInfo () {
this.instance.post(`/app/appactivityinfo/queryDetailById?id=${this.params.id}`).then(res => { this.instance.post(`/app/appmarketingactivityinfo/queryDetailById?id=${this.params.id}`).then(res => {
if (res.code == 0) { if (res.code == 0) {
if (res.data) { if (res.data) {
this.info = res.data this.info = res.data