<template> <div class="integral-page"> <el-form ref="searchFrom" :model="form" style="padding-top: 20px;background: white" label-width="80px" inline size="small"> <el-form-item label="昵称"> <el-input v-model="form.nickname" style="width: 120px;"></el-input> </el-form-item> <el-form-item label="用户ID"> <el-input v-model="form.user_id" style="width: 80px;"></el-input> </el-form-item> <el-form-item label="手机号"> <el-input v-model="form.mobile"></el-input> </el-form-item> <el-form-item label="获/抵方式"> <el-select v-model="form.source" @change="getList" style="width: 150px;" clearable> <el-option v-for="(data,index) in sourceOption" :key="index" :label="data.value" :value="data.id"> </el-option> </el-select> </el-form-item> <el-form-item> <el-button type="primary" plain @click="getList">搜索</el-button> <el-button type="success" plain @click="addIntegral" v-if="!$store.state.readonly">变更用户积分</el-button> </el-form-item> </el-form> <el-tabs v-model="form.is_add" type="card" style="background: white;padding-top: 10px" @tab-click="getList"> <el-tab-pane label="全部" name="-1"/> <el-tab-pane label="添加积分" name="1"/> <el-tab-pane label="减少积分" name="0"/> <el-tab-pane label="积分排行" name="-2"/> </el-tabs> <el-table :data="list" size="mini" style="width: 100%"> <el-table-column width="220" className="f-c" label="用户"> <template slot-scope="scope"> <img class="avatar" :src="scope.row.avatar"/> {{scope.row.nickname}}(ID:{{scope.row.user_id}})<br>手机:{{scope.row.mobile}} </template> </el-table-column> <el-table-column v-if="form.is_add !== '-2'" label="来源"> <template slot-scope="scope"> {{scope.row.source | INTEGRALFUN}} </template> </el-table-column> <el-table-column prop="desc" v-if="form.is_add !== '-2'" label="积分变更描述" /> <el-table-column v-if="form.is_add !== '-2'" label="变更积分值"> <template slot-scope="scope"> <span v-if="scope.row.is_add===1" style="color: green">+{{scope.row.value}}</span> <span v-if="scope.row.is_add===0" style="color: red">-{{scope.row.value}}</span> </template> </el-table-column> <el-table-column prop="last_value" :label="form.is_add !== '-2'?'变更后积分值':'最新积分'" /> <el-table-column prop="created_at" :label="form.is_add !== '-2'?'创建时间':'最新变更时间'" /> </el-table> <page :nowPage="nowPage" :total="total" :limit="limit" @pageChange="onPageChange" @sizeChange="onSizeChange"/> <new-integral :newIntegral="newIntegral" @subAdd="subAdd" @showUserList="showUserList"/> <user-list-page :show="userListShow" @addUser="addUser"/> </div> </template> <script> import {getIntegralListApi,changeIntegralApi,integralApi} from "../../service/api"; import {INTEGRALTYPE,INTEGRALFUN} from "../../util/wordbook"; import page from '../framework/page' import newIntegral from './newIntegral' import userListPage from './userList' export default { name: "index", components: { page, newIntegral, userListPage }, data(){ let is_addOption = []; for(let k in INTEGRALTYPE){ is_addOption.push({id:k,value:INTEGRALTYPE[k]}) } let sourceOption = []; for(let j in INTEGRALFUN){ sourceOption.push({id:j,value:INTEGRALFUN[j]}) } return { list:[], total:0, newIntegral:{ show:false, user_id:'', is_add:'', value:'', desc:'' }, is_addOption:is_addOption, sourceOption:sourceOption, limit:10, userListShow:{ show:false }, nowPage:1, form:{ is_add:'-1', source:'', user_id:'', mobile:'', nickname:'' } } }, mounted(){ this.initPage() }, filters:{ INTEGRALTYPE(value){ return INTEGRALTYPE[value] }, INTEGRALFUN(value){ return INTEGRALFUN[value] } }, methods:{ subAdd(){ let json = { user_id:this.newIntegral.user_id, is_add:this.newIntegral.is_add, value:this.newIntegral.value, desc:this.newIntegral.desc, }; changeIntegralApi(json).then(res=>{ this.getList(); this.newIntegral.show = false }) }, showUserList(){ this.userListShow.show = true }, addUser(value){ this.userListShow.show = false; this.newIntegral.user_id = value }, changeUserList(){}, addIntegral(){ this. newIntegral={ show:true, user_id:'', is_add:'', value:'', desc:'' } }, initPage(){ this.form = { is_add:'-1', source:'', user_id:'', mobile:'', nickname:'' }; this.getList() }, onPageChange(val){ this.nowPage = val; this.getList() }, onSizeChange(val){ this.limit = val; this.nowPage = 1; this.getList() }, getList(){ let json={ limit:this.limit, page: this.nowPage }; if(this.form.is_add === '-2'){ integralApi(json).then(res=>{ this.list = res.list; this.total = res.total }) }else{ if(this.form.is_add !== '' && this.form.is_add !== '-1'){ json.is_add = this.form.is_add } if(this.form.source !== ''){json.source = this.form.source} if(this.form.user_id !== ''){json.user_id = this.form.user_id} if(this.form.mobile !== ''){json.mobile = this.form.mobile} if(this.form.nickname !== ''){json.nickname = this.form.nickname} getIntegralListApi(json).then(res=>{ this.list = res.list; this.total = res.total }) } } } } </script> <style scoped lang="less"> @import "../../util/public"; .avatar{ width: 50px; min-width: 50px; height: 50px; margin-right: 5px; border-radius: 50%; } </style> <style> .f-c > .cell { display: flex !important; flex-flow: row; justify-content: flex-start; align-items: center; } </style>