<template>
|
<div>
|
<list-condition-template ref="table" :form="listQuery" :formLabel="formLabel" :tableData="tableData" :total="total" @page-info-change="handlePageInfoChange">
|
<template slot="otherElement">
|
<el-form-item>
|
<el-button size="mini" type="primary" @click="queryData">查询</el-button>
|
<el-button size="mini" @click="resetQuery">重置</el-button>
|
</el-form-item>
|
</template>
|
<template slot="operationSection">
|
<el-button size="mini" type="warning" v-customLoading="{isLoading:isLoading,percentage:percentage}" @click="exportData">导出</el-button>
|
</template>
|
<template slot="columns">
|
<el-table-column label="下单时间" prop="orderTime" width="160px"></el-table-column>
|
<el-table-column label="下单用户" prop="creatorName" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column label="商品类型" prop="mediaType" width="100px">
|
<template slot-scope="scope">
|
{{scope.row.spuType === '1' ? '实物商品' : '优惠券'}}
|
</template>
|
</el-table-column>
|
<el-table-column label="商品类目" prop="categoryId" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column label="商品名称" prop="spuName" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column label="积分价值" align="center" prop="integralWorth" width="150px">
|
</el-table-column>
|
</template>
|
</list-condition-template>
|
</div>
|
</template>
|
<script>
|
import { downloadFile } from '@/utils/downloadFile'
|
import integralRecodeApi from '@/api/member/integralRecode'
|
import integralProdApi from '@/api/member/integralProd'
|
|
var _this = this
|
export default {
|
data () {
|
return {
|
dialogVisible: false,
|
tableData: [],
|
total: 0,
|
listQuery: {
|
orderStartTime: null,
|
orderEndTime: null,
|
spuType: null,
|
categoryName: null,
|
creatorName: null
|
},
|
form: {},
|
formLabel: [
|
{
|
model: 'orderStartTime',
|
label: '下单时间',
|
type: 'date',
|
pickerOptions: {
|
disabledDate (time) {
|
return _this.listQuery.orderEndTime && time.getTime() >= new Date(_this.listQuery.orderEndTime).getTime() + 86400000
|
}
|
},
|
timeClass: 'start-time-style'
|
},
|
{
|
model: 'orderEndTime',
|
label: '-',
|
customLabel: '下单时间',
|
type: 'date',
|
labelWidth: '20px',
|
pickerOptions: {
|
disabledDate (time) {
|
return _this.listQuery.orderStartTime && time.getTime() <= new Date(_this.listQuery.orderStartTime).getTime() - 86400000
|
}
|
},
|
timeClass: 'end-time-style'
|
},
|
{
|
model: 'spuType',
|
label: '商品类型',
|
type: 'select',
|
opts: [
|
{
|
id: '1',
|
name: '实物商品'
|
},
|
{
|
id: '2',
|
name: '优惠券'
|
}
|
]
|
},
|
{
|
model: 'categoryName',
|
label: '商品类目',
|
type: 'select',
|
opts: []
|
},
|
{
|
model: 'creatorName',
|
label: '下单用户',
|
type: 'input'
|
}
|
],
|
exportQuery: {},
|
categoryArr: [],
|
percentage: 0, // 进度条数值
|
isLoading: false // 是否展示进度条遮罩
|
}
|
},
|
mounted () {
|
_this = this
|
this.getCategoryList() // 获取分类
|
},
|
/*
|
* 数据变化后刷新列表
|
*/
|
activated () {
|
this.queryList(this.$refs.table.getPageInfo())
|
},
|
methods: {
|
/**
|
*获取分类列表
|
*/
|
async getCategoryList () {
|
try {
|
const res = await integralProdApi.getCategoryList({
|
pageNum: 0,
|
pageSize: 0
|
})
|
if (res.code === '0' && res.data) {
|
this.formLabel[3].opts = res.data.list.map(item => {
|
return {
|
id: item.id,
|
name: item.categoryName
|
}
|
})
|
this.categoryArr = this.formLabel[3].opts
|
}
|
} catch (error) {
|
}
|
},
|
/**
|
* 导出
|
*/
|
async exportData () {
|
const config = {
|
onUploadProgress: ProgressEvent => {
|
const progressPercent = Math.round(ProgressEvent.loaded / ProgressEvent.total * 100 | 0)
|
this.percentage = progressPercent === 100 ? 99 : progressPercent
|
this.isLoading = true
|
},
|
onDownloadProgress: ProgressEvent => {
|
},
|
url: 'awl-product-service/ecIntegralExchangeRecord/getPageEcIntegralExchangeExcel',
|
data: this.exportQuery,
|
fileName: '用户兑换记录'
|
}
|
const res = await downloadFile(config)
|
if (res) {
|
this.percentage = 100
|
this.isLoading = false
|
this.exportQuery = {}
|
} else {
|
this.percentage = 0
|
this.isLoading = false
|
}
|
},
|
/**
|
* '分页信息改变时查询列表
|
*/
|
handlePageInfoChange (pageInfo) {
|
this.queryList(pageInfo)
|
},
|
|
/**
|
* 重置
|
*/
|
resetQuery () {
|
this.$refs.table.reloadCurrent()
|
},
|
/**
|
* 点击查询按钮
|
*/
|
queryData () {
|
this.$refs.table.changeCondition()
|
},
|
/**
|
* 查询列表
|
*/
|
async queryList (pageInfo = { pageNum: 1, pageSize: 10 }) {
|
const row = this.categoryArr.find(item => {
|
return this.listQuery.categoryName === item.id
|
})
|
if (row) {
|
this.listQuery.categoryId = row.name
|
}
|
if (this.listQuery.orderEndTime) {
|
this.listQuery.orderEndTime = this.listQuery.orderEndTime.split(' ')[0] + ' 23:59:59'
|
}
|
try {
|
const res = await integralRecodeApi.getList({ param: this.listQuery, ...pageInfo })
|
if (res.code === '0') {
|
this.tableData = res.data.list
|
this.total = res.data.total
|
this.exportQuery = JSON.parse(JSON.stringify(this.listQuery))
|
this.listQuery.categoryId = null
|
}
|
} catch (error) {
|
}
|
}
|
}
|
}
|
</script>
|