日任务中心-活动奖励配置,奖励发放记录新增相关内容

This commit is contained in:
chenruiye
2025-05-28 16:17:39 +08:00
parent a22e4b8e6e
commit a969dca1a9
3 changed files with 103 additions and 17 deletions

View File

@@ -64,3 +64,12 @@ export const getAwardRecordList = query => {
params: query params: query
}); });
}; };
// 导出
export const exportActivityAwardRecord = query => {
return request({
url: `/activityH5AwardRecord/export`,
method: 'post',
params: query,
responseType: 'blob'
});
};

View File

@@ -27,6 +27,11 @@
<el-table-column prop="level" align="center" label="等级" /> <el-table-column prop="level" align="center" label="等级" />
<el-table-column prop="partitionDesc" align="center" label="分区" /> <el-table-column prop="partitionDesc" align="center" label="分区" />
<el-table-column prop="awardTypeName" align="center" label="奖励类型" /> <el-table-column prop="awardTypeName" align="center" label="奖励类型" />
<el-table-column prop="awardStatus" align="center" label="奖励状态" >
<template v-slot="scope">
{{ scope.row.awardStatus === 1 ? '有效' : '无效' }}
</template>
</el-table-column>
<el-table-column prop="awardId" align="center" label="奖励ID" /> <el-table-column prop="awardId" align="center" label="奖励ID" />
<el-table-column prop="awardPic" align="center" label="奖励样式"> <el-table-column prop="awardPic" align="center" label="奖励样式">
<template v-slot="scope"> <template v-slot="scope">
@@ -81,6 +86,19 @@
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
<div style="margin-bottom: 25px">
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">奖励状态</span>
<el-select v-model="addFormData.awardStatus" placeholder="请选择">
<el-option label="有效" :value="1"></el-option>
<el-option label="无效" :value="2"></el-option>
</el-select>
</div>
<div style="margin-bottom: 25px" v-if="addFormData.type == 20">
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">兑换积分</span>
<el-input v-model="addFormData.referenceValue" style="width: 50%" class="input"></el-input>
</div>
<div style="margin-bottom: 25px"> <div style="margin-bottom: 25px">
<span style="display: inline-block; margin-right: 20px; width: 100px" <span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">奖励ID</span> class="col-sm-2 control-label">奖励ID</span>
@@ -126,8 +144,9 @@ export default {
awardType: '', awardType: '',
awardId: '', awardId: '',
awardNum: '', awardNum: '',
level: '' level: '',
awardStatus:'',
referenceValue:undefined
}) })
const tableData = reactive({ const tableData = reactive({
data: [], data: [],
@@ -162,7 +181,9 @@ export default {
awardId: '', awardId: '',
awardNum: '', awardNum: '',
level: '', level: '',
id:null id:null,
awardStatus:'',
referenceValue:undefined
}); });
} }
// 新增 // 新增

View File

@@ -15,14 +15,24 @@
<span>分区</span> <span>分区</span>
<partition-select v-model:partition-id="formData.partitionId" @update:partitionId="changeLevel" /> <partition-select v-model:partition-id="formData.partitionId" @update:partitionId="changeLevel" />
</div> </div>
<div class="inquire" v-if="levelList.length > 0 && formData.type !=''"> <div class="inquire">
<div class="block">
<span class="demonstration">日期</span>
<el-date-picker v-model="dateTime" type="datetimerange" range-separator="至"
start-placeholder="开始日期" end-placeholder="结束日期">
</el-date-picker>
</div>
</div>
<div class="inquire" v-if="levelList.length > 0 && formData.type != ''">
<span>等级</span> <span>等级</span>
<el-select v-model="formData.level" placeholder="请选择"> <el-select v-model="formData.level" placeholder="请选择">
<el-option v-for="item in levelList" :key="item.level" :label="item.level + '('+item.name + ')'" :value="item.level"> <el-option v-for="item in levelList" :key="item.level" :label="item.level + '(' + item.name + ')'"
:value="item.level">
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
<el-button class="primary" type="primary" @click="getData()">查询</el-button> <el-button class="primary" type="primary" @click="getData()">查询</el-button>
<el-button class="primary" type="primary" @click="confirmExport2Excel()">导出</el-button>
<!-- 表格数据 --> <!-- 表格数据 -->
<el-table v-loading="tableData.loading" :data="tableData.data" ref="multipleTable" <el-table v-loading="tableData.loading" :data="tableData.data" ref="multipleTable"
@selection-change="handleSelectionChange" border style="width: 100%; margin-top: 25px"> @selection-change="handleSelectionChange" border style="width: 100%; margin-top: 25px">
@@ -39,14 +49,15 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="awardNum" align="center" label="奖励数量&天数" /> <el-table-column prop="awardNum" align="center" label="奖励数量&天数" />
<el-table-column prop="createTime" align="center" label="发放时间" > <el-table-column prop="referenceValue" align="center" label="消耗积分" />
<el-table-column prop="createTime" align="center" label="发放时间">
<template v-slot="scope"> <template v-slot="scope">
{{dateFormat(scope.row.createTime)}} {{ dateFormat(scope.row.createTime) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="rewardStatus" align="center" label="发放状态" > <el-table-column prop="rewardStatus" align="center" label="发放状态">
<template v-slot="scope"> <template v-slot="scope">
{{scope.row.rewardStatus == 1 ? '成功' : '失败'}} {{ scope.row.rewardStatus == 1 ? '成功' : '失败' }}
</template> </template>
</el-table-column> </el-table-column>
@@ -62,8 +73,11 @@
<script> <script>
import { ref, onMounted, reactive } from 'vue' import { ref, onMounted, reactive } from 'vue'
import PartitionSelect from "@/views/common/partitionSelect.vue"; import PartitionSelect from "@/views/common/partitionSelect.vue";
import { getActivitylList, getLevelList,getAwardRecordList} from "@/api/SsGuild/rewardConfiguration.js"; import { getActivitylList, getLevelList, getAwardRecordList ,exportActivityAwardRecord} from "@/api/SsGuild/rewardConfiguration.js";
import { ElMessage, ElMessageBox } from "element-plus"; import { ElMessage, ElMessageBox } from "element-plus";
import { dateFormat } from "@/utils/system-helper";
import { formatDate } from "@/utils/relDate";
export default { export default {
name: 'rewardDistributionRecord', name: 'rewardDistributionRecord',
components: { components: {
@@ -75,9 +89,12 @@ export default {
erbanNo: '', erbanNo: '',
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
level:'', level: '',
type:'' type: '',
startTime:'',
endTime:''
}) })
const dateTime = ref([])
const tableData = reactive({ const tableData = reactive({
data: [], data: [],
total: 0, total: 0,
@@ -86,12 +103,12 @@ export default {
const activitylList = ref([]) const activitylList = ref([])
const levelList = ref([]) const levelList = ref([])
const changeLevel = (e) => { const changeLevel = (e) => {
if(e){ if (e) {
formData.partitionId = e; formData.partitionId = e;
} }
levelList.value = [] levelList.value = []
formData.level = '' formData.level = ''
const { type ,partitionId} = formData const { type, partitionId } = formData
getLevelList({ partitionId, type }).then(res => { getLevelList({ partitionId, type }).then(res => {
if (res.code == 200) { if (res.code == 200) {
levelList.value = res.data levelList.value = res.data
@@ -100,7 +117,16 @@ export default {
} }
const getData = () => { const getData = () => {
tableData.loading = true tableData.loading = true
getAwardRecordList(formData).then(res=>{ let time = dateTime.value;
if (time && time.length > 0) {
formData.startTime = dateFormat(time[0], "yyyy-MM-dd hh:mm:ss");
formData.endTime = dateFormat(time[1], "yyyy-MM-dd hh:mm:ss");
}else{
formData.startTime ='';
formData.endTime ='';
}
getAwardRecordList(formData).then(res => {
if (res.code == 200) { if (res.code == 200) {
tableData.data = res.data.records tableData.data = res.data.records
tableData.total = res.data.total tableData.total = res.data.total
@@ -111,6 +137,34 @@ export default {
} }
}) })
} }
// 导出
const confirmExport2Excel = async () => {
// Object.assign(formData, { pageSize: 10000, pageNo: 1 });
try {
const res = await exportActivityAwardRecord(formData)
if (res) {
ElMessage({
message: '导出成功',
type: 'success',
});
let time = formatDate(new Date());
let alink = document.createElement("a");
alink.download = `奖励发放记录${time}.xls`;
alink.style.display = "none";
const blob = new Blob([res]);
alink.href = URL.createObjectURL(blob);
document.body.appendChild(alink);
alink.click();
URL.revokeObjectURL(alink.href);
}
} catch (error) {
ElMessage({
message: error.message,
type: 'error',
});
}
}
const dateFormat = (row) => { const dateFormat = (row) => {
const date = new Date(row); const date = new Date(row);
return date.format("yyyy-MM-dd hh:mm:ss"); return date.format("yyyy-MM-dd hh:mm:ss");
@@ -139,7 +193,9 @@ export default {
changeLevel, changeLevel,
dateFormat, dateFormat,
handleSizeChange, handleSizeChange,
handleCurrentChange handleCurrentChange,
dateTime,
confirmExport2Excel
} }
} }
} }