Browse Source

PC端志愿者公益积分管理功能 init

feature/lc_issueAdjustment
liuchuang 4 years ago
parent
commit
1550ceb104
  1. 80
      src/views/modules/user/volunteer-points-records.vue
  2. 112
      src/views/modules/user/volunteer-points-static-detail.vue
  3. 173
      src/views/modules/user/volunteer-points-static.vue
  4. 3
      src/views/modules/user/volunteerinfo.vue

80
src/views/modules/user/volunteer-points-records.vue

@ -0,0 +1,80 @@
<template>
<el-dialog width="80%" title="积分记录" :visible.sync="visible" append-to-body>
<el-table :data="volunteerPointsRecords" border style="width: 100%;">
<el-table-column label="姓名" header-align="center" align="center">{{ dataForm.realName }}</el-table-column>
<el-table-column prop="actName" label="参与活动名称" header-align="center" align="center"></el-table-column>
<el-table-column prop="volunteerPoints" label="获得积分" header-align="center" align="center"></el-table-column>
</el-table>
<el-pagination
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]"
:page-size="limitVal"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandleNew"
@current-change="pageCurrentChangeHandleNew">
</el-pagination>
</el-dialog>
</template>
<script>
export default {
data () {
return {
visible: false,
dataForm: {
userId: '',
realName: '',
startTime: '',
endTime: ''
},
volunteerPointsRecords: [],
order: '',
orderField: '',
pageIndex: 1,
limitVal: 10,
total: 0
}
},
methods: {
init () {
this.visible = true
this.order = ''
this.orderField = ''
this.pageIndex = 1
this.limitVal = 10
this.total = 0
this.$nextTick(() => {
if (this.dataForm.userId) {
this.getVolunteerPointsRecords()
}
})
},
getVolunteerPointsRecords () {
this.$http.get(`analysis/volunteer/volunteerPointsRecords`, { params: { userId: this.dataForm.userId, startTime: this.dataForm.startTime, endTime: this.dataForm.endTime, order: this.order, orderField: this.orderField, page: this.pageIndex, limit: this.limitVal }
}).then(({ data: res }) => {
if (res.code !== 0) {
this.volunteers = []
this.total = 0
return this.$message.error(res.msg)
}
this.volunteerPointsRecords = res.data.list
this.total = res.data.total
}).catch(() => {})
},
pageSizeChangeHandleNew (val) {
this.pageIndex = 1
this.limitVal = val
this.getVolunteerPointsRecords()
},
pageCurrentChangeHandleNew (val) {
this.pageIndex = val
this.getVolunteerPointsRecords()
}
}
}
</script>
<style scoped>
</style>

112
src/views/modules/user/volunteer-points-static-detail.vue

@ -0,0 +1,112 @@
<template>
<el-dialog width="90%" title="志愿者" :visible.sync="visible" append-to-body>
<el-table :data="volunteers" border style="width: 100%;">
<el-table-column prop="realName" label="姓名" header-align="center" align="center"></el-table-column>
<el-table-column prop="identityNo" label="身份证号" header-align="center" align="center"></el-table-column>
<el-table-column prop="mobile" label="联系电话" header-align="center" align="center"></el-table-column>
<el-table-column prop="tagName" label="所在小组" header-align="center" align="center"></el-table-column>
<el-table-column prop="volunteerSignature" label="格言" header-align="center" align="center"></el-table-column>
<el-table-column prop="address" label="居住地址" header-align="center" align="center"></el-table-column>
<el-table-column prop="volunteerPoints" label="公益积分" header-align="center" align="center"></el-table-column>
<el-table-column :label="$t('handle')" header-align="center" align="center" width="150">
<template slot-scope="scope">
<el-button type="text" size="small" @click="pointsRecords(scope.row.userId, scope.row.realName)">积分记录</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]"
:page-size="limitVal"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandleNew"
@current-change="pageCurrentChangeHandleNew">
</el-pagination>
<!-- 积分记录 -->
<volunteer-points-records v-if="volunteerPointsRecordsVisible"
@firstDialogCallBack="firstDialogCallBack"
ref="volunteerPointsRecords"></volunteer-points-records>
</el-dialog>
</template>
<script>
import volunteerPointsRecords from './volunteer-points-records'
export default {
data () {
return {
visible: false,
volunteerPointsRecordsVisible: false,
dataForm: {
volunteerDeptId: '',
startTime: '',
endTime: ''
},
volunteers: [],
order: '',
orderField: '',
pageIndex: 1,
limitVal: 10,
total: 0
}
},
methods: {
init () {
this.visible = true
this.order = ''
this.orderField = ''
this.pageIndex = 1
this.limitVal = 10
this.total = 0
this.$nextTick(() => {
if (this.dataForm.volunteerDeptId) {
this.getVolunteerList()
}
})
},
getVolunteerList () {
this.$http.get(`analysis/volunteer/volunteers`, { params: { volunteerDeptId: this.dataForm.volunteerDeptId, startTime: this.dataForm.startTime, endTime: this.dataForm.endTime, order: this.order, orderField: this.orderField, page: this.pageIndex, limit: this.limitVal }
}).then(({ data: res }) => {
if (res.code !== 0) {
this.volunteers = []
this.total = 0
return this.$message.error(res.msg)
}
this.volunteers = res.data.list
this.total = res.data.total
}).catch(() => {})
},
pointsRecords (userId, realName) {
this.volunteerPointsRecordsVisible = true
this.$nextTick(() => {
this.$refs.volunteerPointsRecords.dataForm.userId = userId
this.$refs.volunteerPointsRecords.dataForm.realName = realName
this.$refs.volunteerPointsRecords.dataForm.startTime = this.dataForm.startTime
this.$refs.volunteerPointsRecords.dataForm.endTime = this.dataForm.endTime
this.$refs.volunteerPointsRecords.init()
})
},
pageSizeChangeHandleNew (val) {
this.pageIndex = 1
this.limitVal = val
this.getVolunteerList()
},
pageCurrentChangeHandleNew (val) {
this.pageIndex = val
this.getVolunteerList()
},
firstDialogCallBack (value) {
if (value) {
this.getVolunteerList()
}
}
},
components: {
volunteerPointsRecords
}
}
</script>
<style scoped>
</style>

173
src/views/modules/user/volunteer-points-static.vue

@ -0,0 +1,173 @@
<template>
<el-card shadow="never"
class="aui-card--fill">
<div class="mod-epdc__user}">
<el-form :inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()">
<el-form-item label="部门">
<el-select v-model="dataForm.id" placeholder="请选择" clearable>
<el-option
v-for="item in volunteerDepts"
:key="item.id"
:label="item.deptName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<span class="demonstration">时间</span>&nbsp;&nbsp;
<el-date-picker @change='setTime'
v-model="time"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"></el-date-picker>&nbsp;
<el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item>
</el-form>
<el-table v-loading="dataListLoading"
:data="dataList"
border
style="width: 100%;">
<el-table-column label="序号"
align="center"
width="50px"
type="index"
:index="table_index"></el-table-column>
<el-table-column prop="deptName"
label="部门"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="volunteerNum"
label="注册志愿者人数"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="volunteerPoints"
label="累计公益积分"
header-align="center"
align="center"></el-table-column>
<el-table-column :label="$t('handle')"
fixed="right"
header-align="center"
align="center">
<template slot-scope="scope">
<el-button type="text"
size="small"
@click="volunteerPointsStaticDetail(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>
<!-- 志愿者 -->
<volunteer-points-static-detail v-if="volunteerPointsStaticDetailVisible"
@firstDialogCallBack="firstDialogCallBack"
ref="volunteerPointsStaticDetail"
@refreshDataList="getDataList"></volunteer-points-static-detail>
</div>
</el-card>
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
import volunteerPointsStaticDetail from './volunteer-points-static-detail'
export default {
mixins: [mixinViewModule],
data () {
return {
mixinViewModuleOptions: {
getDataListURL: 'analysis/volunteer/volunteerpointsstatic',
getDataListIsPage: true
},
dataForm: {
id: '',
startTime: '',
endTime: ''
},
volunteerDepts: [],
time: '',
volunteerPointsStaticDetailVisible: false
}
},
created () {
this.getVolunteerDepts()
},
methods: {
//
getVolunteerDepts () {
this.$http.get(`/app-user/volunteerdept/volunteerdepts`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.volunteerDepts = {
...this.volunteerDepts,
...res.data
}
}).catch(() => {})
},
setTime () {
this.dataForm.startTime = this.time[0]
this.dataForm.endTime = this.time[1]
},
//
getDataList () {
if (this.time === null) {
this.dataForm.startTime = ''
this.dataForm.endTime = ''
}
this.dataListLoading = true
this.$http.get(this.mixinViewModuleOptions.getDataListURL, {
params: {
order: this.order,
orderField: this.orderField,
page: this.mixinViewModuleOptions.getDataListIsPage ? this.page : null,
limit: this.mixinViewModuleOptions.getDataListIsPage ? this.limit : null,
...this.dataForm
}
}).then(({ data: res }) => {
this.dataListLoading = false
if (res.code !== 0) {
this.dataList = []
this.total = 0
return this.$message.error(res.msg)
}
this.dataList = this.mixinViewModuleOptions.getDataListIsPage ? res.data.list : res.data
this.total = this.mixinViewModuleOptions.getDataListIsPage ? res.data.total : 0
}).catch(() => {
this.dataListLoading = false
})
},
volunteerPointsStaticDetail (volunteerDeptId) {
this.volunteerPointsStaticDetailVisible = true
this.$nextTick(() => {
this.$refs.volunteerPointsStaticDetail.dataForm.volunteerDeptId = volunteerDeptId
this.$refs.volunteerPointsStaticDetail.dataForm.startTime = this.dataForm.startTime
this.$refs.volunteerPointsStaticDetail.dataForm.endTime = this.dataForm.endTime
this.$refs.volunteerPointsStaticDetail.init()
})
},
firstDialogCallBack (value) {
if (value) {
this.getDataList()
}
},
table_index (index) {
return (this.page - 1) * this.limit + index + 1
}
},
components: {
volunteerPointsStaticDetail
}
}
</script>
<style scoped>
</style>

3
src/views/modules/user/volunteerinfo.vue

@ -258,7 +258,7 @@ export default {
}
},
methods: {
//
//
getVolunteerDepts () {
this.$http.get(`/app-user/volunteerdept/volunteerdepts`).then(({ data: res }) => {
if (res.code !== 0) {
@ -268,7 +268,6 @@ export default {
...this.volunteerDepts,
...res.data
}
console.log(JSON.stringify(this.volunteerDepts))
}).catch(() => {})
},
//

Loading…
Cancel
Save