Browse Source

积分总览

feature/syp_points
曲树通 5 years ago
parent
commit
1166b62dc4
  1. 54
      package-lock.json
  2. 1
      package.json
  3. 3
      src/main.js
  4. 134
      src/views/modules/points/points-overview.vue
  5. 10
      src/views/modules/points/points-statistics.vue

54
package-lock.json

@ -4869,6 +4869,14 @@
"safer-buffer": "^2.1.0" "safer-buffer": "^2.1.0"
} }
}, },
"echarts": {
"version": "4.8.0",
"resolved": "https://registry.npm.taobao.org/echarts/download/echarts-4.8.0.tgz",
"integrity": "sha1-ssHPuSKbE9No7hBPyO6mALV01MQ=",
"requires": {
"zrender": "4.3.1"
}
},
"ee-first": { "ee-first": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "http://r.cnpmjs.org/ee-first/download/ee-first-1.1.1.tgz", "resolved": "http://r.cnpmjs.org/ee-first/download/ee-first-1.1.1.tgz",
@ -6388,8 +6396,7 @@
"ansi-regex": { "ansi-regex": {
"version": "2.1.1", "version": "2.1.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true
"optional": true
}, },
"aproba": { "aproba": {
"version": "1.2.0", "version": "1.2.0",
@ -6410,14 +6417,12 @@
"balanced-match": { "balanced-match": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true
"optional": true
}, },
"brace-expansion": { "brace-expansion": {
"version": "1.1.11", "version": "1.1.11",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"balanced-match": "^1.0.0", "balanced-match": "^1.0.0",
"concat-map": "0.0.1" "concat-map": "0.0.1"
@ -6432,20 +6437,17 @@
"code-point-at": { "code-point-at": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true
"optional": true
}, },
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true
"optional": true
}, },
"console-control-strings": { "console-control-strings": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true
"optional": true
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
@ -6562,8 +6564,7 @@
"inherits": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"bundled": true, "bundled": true,
"dev": true, "dev": true
"optional": true
}, },
"ini": { "ini": {
"version": "1.3.5", "version": "1.3.5",
@ -6575,7 +6576,6 @@
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"number-is-nan": "^1.0.0" "number-is-nan": "^1.0.0"
} }
@ -6590,7 +6590,6 @@
"version": "3.0.4", "version": "3.0.4",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"brace-expansion": "^1.1.7" "brace-expansion": "^1.1.7"
} }
@ -6598,14 +6597,12 @@
"minimist": { "minimist": {
"version": "0.0.8", "version": "0.0.8",
"bundled": true, "bundled": true,
"dev": true, "dev": true
"optional": true
}, },
"minipass": { "minipass": {
"version": "2.2.4", "version": "2.2.4",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"safe-buffer": "^5.1.1", "safe-buffer": "^5.1.1",
"yallist": "^3.0.0" "yallist": "^3.0.0"
@ -6624,7 +6621,6 @@
"version": "0.5.1", "version": "0.5.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"minimist": "0.0.8" "minimist": "0.0.8"
} }
@ -6705,8 +6701,7 @@
"number-is-nan": { "number-is-nan": {
"version": "1.0.1", "version": "1.0.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true
"optional": true
}, },
"object-assign": { "object-assign": {
"version": "4.1.1", "version": "4.1.1",
@ -6718,7 +6713,6 @@
"version": "1.4.0", "version": "1.4.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"wrappy": "1" "wrappy": "1"
} }
@ -6804,8 +6798,7 @@
"safe-buffer": { "safe-buffer": {
"version": "5.1.1", "version": "5.1.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true
"optional": true
}, },
"safer-buffer": { "safer-buffer": {
"version": "2.1.2", "version": "2.1.2",
@ -6841,7 +6834,6 @@
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"code-point-at": "^1.0.0", "code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0", "is-fullwidth-code-point": "^1.0.0",
@ -6861,7 +6853,6 @@
"version": "3.0.1", "version": "3.0.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"ansi-regex": "^2.0.0" "ansi-regex": "^2.0.0"
} }
@ -6905,14 +6896,12 @@
"wrappy": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true, "dev": true
"optional": true
}, },
"yallist": { "yallist": {
"version": "3.0.2", "version": "3.0.2",
"bundled": true, "bundled": true,
"dev": true, "dev": true
"optional": true
} }
} }
}, },
@ -17524,6 +17513,11 @@
"dev": true "dev": true
} }
} }
},
"zrender": {
"version": "4.3.1",
"resolved": "https://registry.npm.taobao.org/zrender/download/zrender-4.3.1.tgz",
"integrity": "sha1-uviqbcgYei+BlpLX1fm+36K5D6M="
} }
} }
} }

1
package.json

@ -16,6 +16,7 @@
"dependencies": { "dependencies": {
"axios": "^0.18.1", "axios": "^0.18.1",
"babel-plugin-component": "^1.1.1", "babel-plugin-component": "^1.1.1",
"echarts": "^4.8.0",
"element-theme": "^2.0.1", "element-theme": "^2.0.1",
"element-theme-chalk": "^2.4.7", "element-theme-chalk": "^2.4.7",
"gulp-autoprefixer": "^6.0.0", "gulp-autoprefixer": "^6.0.0",

3
src/main.js

@ -11,7 +11,8 @@ import http from '@/utils/request'
import { hasPermission } from '@/utils' import { hasPermission } from '@/utils'
import cloneDeep from 'lodash/cloneDeep' import cloneDeep from 'lodash/cloneDeep'
import '@/element-ui/theme/cascader-new.css' import '@/element-ui/theme/cascader-new.css'
import echarts from 'echarts'
Vue.prototype.$echarts = echarts
Vue.config.productionTip = false Vue.config.productionTip = false
Vue.use(Element, { Vue.use(Element, {

134
src/views/modules/points/points-overview.vue

@ -4,12 +4,7 @@
<div class="mod-sys__user"> <div class="mod-sys__user">
<el-form :inline="true" <el-form :inline="true"
:model="dataForm" :model="dataForm"
@keyup.enter.native="getDataList()"> @keyup.enter.native="getPointsOverview()">
<el-form-item label="积分类别">
<el-input v-model="dataForm.realName"
placeholder="积分类别"
clearable></el-input>
</el-form-item>
<span class="demonstration">统计时间</span>&nbsp;&nbsp; <span class="demonstration">统计时间</span>&nbsp;&nbsp;
<el-date-picker @change='setRegistTime' <el-date-picker @change='setRegistTime'
v-model="time" v-model="time"
@ -20,88 +15,95 @@
end-placeholder="结束日期"> end-placeholder="结束日期">
</el-date-picker> </el-date-picker>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button @click="getPointsOverview()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<br><br><br><br><br>
<div id="myChart"
:style="{width: '500px', height: '300px'}"></div>
</el-form> </el-form>
<el-table v-loading="dataListLoading"
:data="dataList"
border
@selection-change="dataListSelectionChangeHandle"
@sort-change="dataListSortChangeHandle"
style="width: 100%;">
<el-table-column prop="realName"
label="姓名"
header-align="center"
align="center"
:formatter="realNameFormat"></el-table-column>
<el-table-column :label="$t('handle')"
fixed="right"
header-align="center"
align="center"
width="150">
<template slot-scope="scope">
<el-button type="text"
size="small"
@click="pointsAdjustHandle(scope.row.id)">积分调整</el-button>
<el-button type="text"
size="small"
@click="pointsLogs(scope.row.id)">积分记录</el-button>
</template>
</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> </div>
</el-card> </el-card>
</template> </template>
<script> <script>
import mixinViewModule from '@/mixins/view-module' // import mixinViewModule from '@/mixins/view-module'
export default { export default {
mixins: [mixinViewModule],
data () { data () {
return { return {
mixinViewModuleOptions: {
getDataListURL: '/app-user/user/pageForPoints',
getDataListIsPage: true
},
dataForm: { dataForm: {
realName: '', startTime: '',
mobile: '', endTime: ''
streetId: '', },
communityId: '', time: '',
gridId: '' 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}%)'
}, },
time: '' legend: {
orient: 'vertical',
bottom: 'bottom',
data: ['总积分', '剩余积分']
},
series: [
{
name: '访问来源',
type: 'pie',
radius: '55%',
data: [
{ value: this.resultData.allPoints, name: '总积分' },
{ value: this.resultData.residuePoints, name: '剩余积分' }
],
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
} }
]
})
}, },
created () { methods: {
getPointsOverview () {
if (this.time === null) {
this.dataForm.startTime = ''
this.dataForm.endTime = ''
}
console.log(this.dataForm)
this.$http this.$http
.get(`/sys/user/deptOptions/getByLoginUser`) .get(`points/pointslogs/point/pointsOverview`, { params: this.dataForm })
.then(({ data: res }) => { .then(({ data: res }) => {
this.myChart.setOption({
series: [{
data: [
{ value: res.data.allPoints, name: '总积分' },
{ value: res.data.residuePoints, name: '剩余积分' }
]
}]
})
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg)
} }
this.options = res.data.options this.resultData = res.data
console.log(this.resultData)
}) })
.catch(() => { }) .catch(() => { })
}, },
methods: {
realNameFormat (row, column) {
if (row.realName) {
return row.realName
}
return row.nickname
},
setRegistTime () { setRegistTime () {
console.log(this.time[0])
this.dataForm.startTime = this.time[0] this.dataForm.startTime = this.time[0]
this.dataForm.endTime = this.time[1] this.dataForm.endTime = this.time[1]
} }

10
src/views/modules/points/points-statistics.vue

@ -89,6 +89,14 @@ export default {
}) })
.catch(() => { }) .catch(() => { })
}, },
watch: {
'time': function (val) {
if (this.time === null) {
this.dataForm.startTime = ''
this.dataForm.endTime = ''
}
}
},
methods: { methods: {
realNameFormat (row, column) { realNameFormat (row, column) {
if (row.realName) { if (row.realName) {
@ -97,7 +105,7 @@ export default {
return row.nickname return row.nickname
}, },
setRegistTime () { setRegistTime () {
console.log(this.time[0]) // console.log(this.time[0])
this.dataForm.startTime = this.time[0] this.dataForm.startTime = this.time[0]
this.dataForm.endTime = this.time[1] this.dataForm.endTime = this.time[1]
} }

Loading…
Cancel
Save