6 changed files with 276 additions and 30 deletions
@ -0,0 +1,17 @@ |
|||||
|
*.class |
||||
|
|
||||
|
# Mobile Tools for Java (J2ME) |
||||
|
.mtj.tmp/ |
||||
|
|
||||
|
# Package Files # |
||||
|
*.jar |
||||
|
*.war |
||||
|
*.ear |
||||
|
*.zip |
||||
|
|
||||
|
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml |
||||
|
hs_err_pid* |
||||
|
node_modules |
||||
|
dist |
||||
|
epdc-admin |
||||
|
.idea/ |
||||
@ -0,0 +1,119 @@ |
|||||
|
<template> |
||||
|
<el-card shadow="never" |
||||
|
class="aui-card--fill"> |
||||
|
<div class="mod-sys__user"> |
||||
|
<el-form :inline="true" |
||||
|
:model="dataForm" |
||||
|
@keyup.enter.native="getPointsOverview()"> |
||||
|
<span class="demonstration">统计时间</span> |
||||
|
<el-date-picker @change='setRegistTime' |
||||
|
v-model="time" |
||||
|
value-format="yyyy-MM-dd" |
||||
|
type="daterange" |
||||
|
range-separator="至" |
||||
|
start-placeholder="开始日期" |
||||
|
end-placeholder="结束日期"> |
||||
|
</el-date-picker> |
||||
|
<el-form-item> |
||||
|
<el-button @click="getPointsOverview()">{{ $t('query') }}</el-button> |
||||
|
</el-form-item> |
||||
|
<div id="myChart" |
||||
|
:style="{width: '700px', height: '400px'}"></div> |
||||
|
</el-form> |
||||
|
</div> |
||||
|
</el-card> |
||||
|
</template> |
||||
|
<script> |
||||
|
// import mixinViewModule from '@/mixins/view-module' |
||||
|
|
||||
|
export default { |
||||
|
data () { |
||||
|
return { |
||||
|
dataForm: { |
||||
|
startTime: '', |
||||
|
endTime: '' |
||||
|
}, |
||||
|
time: '', |
||||
|
resultData: { |
||||
|
}, |
||||
|
myChart: '' |
||||
|
} |
||||
|
}, |
||||
|
mounted () { |
||||
|
this.myChart = this.$echarts.init(document.getElementById('myChart')) |
||||
|
this.myChart.setOption({ |
||||
|
title: { |
||||
|
text: '积分统计', |
||||
|
subtext: '', |
||||
|
x: 'center' |
||||
|
}, |
||||
|
tooltip: { |
||||
|
trigger: 'item', |
||||
|
formatter: '{a} <br/>{b} : {c} ({d}%)' |
||||
|
}, |
||||
|
legend: { |
||||
|
orient: 'vertical', |
||||
|
bottom: 'bottom', |
||||
|
data: ['剩余积分'] |
||||
|
}, |
||||
|
series: [ |
||||
|
{ |
||||
|
name: '访问来源', |
||||
|
type: 'pie', |
||||
|
radius: '55%', |
||||
|
data: [ |
||||
|
{ value: this.resultData.allPoints, name: '已兑换积分' }, |
||||
|
{ value: this.resultData.residuePoints, name: '剩余积分' } |
||||
|
], |
||||
|
label: { |
||||
|
normal: { |
||||
|
show: true, |
||||
|
position: 'inner', |
||||
|
formatter: '{b} {c} ({d}%)' |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
] |
||||
|
}) |
||||
|
}, |
||||
|
created () { |
||||
|
this.getPointsOverview() |
||||
|
}, |
||||
|
methods: { |
||||
|
getPointsOverview () { |
||||
|
if (this.time === null) { |
||||
|
this.dataForm.startTime = '' |
||||
|
this.dataForm.endTime = '' |
||||
|
} |
||||
|
console.log(this.dataForm) |
||||
|
this.$http |
||||
|
.get(`points/pointslogs/point/pointsOverview`, { params: this.dataForm }) |
||||
|
.then(({ data: res }) => { |
||||
|
this.myChart.setOption({ |
||||
|
title: { |
||||
|
subtext: '总积分' + res.data.allPoints |
||||
|
}, |
||||
|
series: [{ |
||||
|
data: [ |
||||
|
{ value: (res.data.allPoints - res.data.residuePoints), name: '剩余积分' }, |
||||
|
{ value: res.data.residuePoints, name: '' } |
||||
|
] |
||||
|
}] |
||||
|
}) |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg) |
||||
|
} |
||||
|
this.resultData = res.data |
||||
|
console.log(this.resultData) |
||||
|
}) |
||||
|
.catch(() => { }) |
||||
|
}, |
||||
|
setRegistTime () { |
||||
|
this.dataForm.startTime = this.time[0] |
||||
|
this.dataForm.endTime = this.time[1] |
||||
|
} |
||||
|
}, |
||||
|
components: { |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
@ -0,0 +1,113 @@ |
|||||
|
<template> |
||||
|
<el-card shadow="never" |
||||
|
class="aui-card--fill"> |
||||
|
<div class="mod-sys__user"> |
||||
|
<el-form :inline="true" |
||||
|
:model="dataForm" |
||||
|
@keyup.enter.native="getDataList()"> |
||||
|
<el-select v-model="dataForm.ruleCode" |
||||
|
placeholder="积分类别" |
||||
|
clearable> |
||||
|
<el-option v-for="item in options" |
||||
|
:key="item.ruleCode" |
||||
|
:label="item.ruleDesc" |
||||
|
:value="item.ruleCode"> |
||||
|
</el-option> |
||||
|
</el-select> |
||||
|
|
||||
|
<span class="demonstration">统计时间</span> |
||||
|
<el-date-picker @change='setRegistTime' |
||||
|
v-model="time" |
||||
|
value-format="yyyy-MM-dd" |
||||
|
type="daterange" |
||||
|
range-separator="至" |
||||
|
start-placeholder="开始日期" |
||||
|
end-placeholder="结束日期"> |
||||
|
</el-date-picker> |
||||
|
<el-form-item> |
||||
|
<el-button @click="getDataList()">{{ $t('query') }}</el-button> |
||||
|
</el-form-item> |
||||
|
|
||||
|
</el-form> |
||||
|
<el-table v-loading="dataListLoading" |
||||
|
:data="dataList" |
||||
|
border |
||||
|
@selection-change="dataListSelectionChangeHandle" |
||||
|
@sort-change="dataListSortChangeHandle" |
||||
|
style="width: 100%;"> |
||||
|
<el-table-column prop="operationDesc" |
||||
|
label="积分类别" |
||||
|
header-align="center" |
||||
|
align="center"></el-table-column> |
||||
|
<el-table-column prop="allPoints" |
||||
|
label="总积分" |
||||
|
header-align="center" |
||||
|
align="center"></el-table-column> |
||||
|
</el-table> |
||||
|
<el-pagination :current-page="page" |
||||
|
:page-sizes="[10, 20, 50, 100]" |
||||
|
:page-size="limit" |
||||
|
:total="total" |
||||
|
layout="total, sizes, prev, pager, next, jumper" |
||||
|
@size-change="pageSizeChangeHandle" |
||||
|
@current-change="pageCurrentChangeHandle"> |
||||
|
</el-pagination> |
||||
|
</div> |
||||
|
</el-card> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import mixinViewModule from '@/mixins/view-module' |
||||
|
export default { |
||||
|
mixins: [mixinViewModule], |
||||
|
data () { |
||||
|
return { |
||||
|
mixinViewModuleOptions: { |
||||
|
getDataListURL: 'points/pointslogs/point/listPagePoints', |
||||
|
getDataListIsPage: true |
||||
|
}, |
||||
|
dataForm: { |
||||
|
ruleCode: '', |
||||
|
startTime: '', |
||||
|
endTime: '' |
||||
|
}, |
||||
|
time: '', |
||||
|
options: [] |
||||
|
} |
||||
|
}, |
||||
|
created () { |
||||
|
this.$http |
||||
|
.get(`/points/pointsrule/ruleList`) |
||||
|
.then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg) |
||||
|
} |
||||
|
this.options = res.data |
||||
|
}) |
||||
|
.catch(() => { }) |
||||
|
}, |
||||
|
watch: { |
||||
|
'time': function (val) { |
||||
|
if (this.time === null) { |
||||
|
this.dataForm.startTime = '' |
||||
|
this.dataForm.endTime = '' |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
realNameFormat (row, column) { |
||||
|
if (row.realName) { |
||||
|
return row.realName |
||||
|
} |
||||
|
return row.nickname |
||||
|
}, |
||||
|
setRegistTime () { |
||||
|
// console.log(this.time[0]) |
||||
|
this.dataForm.startTime = this.time[0] |
||||
|
this.dataForm.endTime = this.time[1] |
||||
|
} |
||||
|
}, |
||||
|
components: { |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
Loading…
Reference in new issue