|
@@ -1,6 +1,6 @@
|
|
<template>
|
|
<template>
|
|
<div class="app-container">
|
|
<div class="app-container">
|
|
- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
|
|
|
|
|
+ <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
|
|
<el-form-item label="UID" prop="userid">
|
|
<el-form-item label="UID" prop="userid">
|
|
<el-input
|
|
<el-input
|
|
v-model="queryParams.userid"
|
|
v-model="queryParams.userid"
|
|
@@ -25,6 +25,14 @@
|
|
@keyup.enter.native="handleQuery"
|
|
@keyup.enter.native="handleQuery"
|
|
/>
|
|
/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
+ <el-form-item label="登录ip地址" prop="ipaddr">
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="queryParams.ipaddr"
|
|
|
|
+ placeholder="请输入手机号 "
|
|
|
|
+ clearable
|
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
|
+ />
|
|
|
|
+ </el-form-item>
|
|
<el-form-item label="在线状态" prop="onlineStatus">
|
|
<el-form-item label="在线状态" prop="onlineStatus">
|
|
<el-select v-model="queryParams.onlineStatus" placeholder="请选择" clearable>
|
|
<el-select v-model="queryParams.onlineStatus" placeholder="请选择" clearable>
|
|
<el-option
|
|
<el-option
|
|
@@ -109,15 +117,21 @@
|
|
<el-table v-loading="loading" :data="userList" style="width: 100%" @scroll="handleScroll" @selection-change="handleSelectionChange">
|
|
<el-table v-loading="loading" :data="userList" style="width: 100%" @scroll="handleScroll" @selection-change="handleSelectionChange">
|
|
<el-table-column type="selection" width="55" align="center" />
|
|
<el-table-column type="selection" width="55" align="center" />
|
|
<el-table-column fixed label="UID" align="center" prop="userid" />
|
|
<el-table-column fixed label="UID" align="center" prop="userid" />
|
|
- <el-table-column fixed label="昵称 " align="center" prop="username" />
|
|
|
|
|
|
+ <el-table-column fixed label="昵称 " align="center" prop="username" width="200"/>
|
|
<el-table-column label="头像" align="center" prop="avatar" width="100">
|
|
<el-table-column label="头像" align="center" prop="avatar" width="100">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<image-preview :src="scope.row.avatar" :width="50" :height="50"/>
|
|
<image-preview :src="scope.row.avatar" :width="50" :height="50"/>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column label="金币" align="center" prop="coin" />
|
|
|
|
- <el-table-column label="余额" align="center" prop="diamondCoin" />
|
|
|
|
- <el-table-column label=" 手机号" align="center" prop="mobile" />
|
|
|
|
|
|
+ <el-table-column label="金币" align="center" prop="coin" width="150"/>
|
|
|
|
+ <el-table-column label="余额" align="center" prop="diamondCoin" width="150"/>
|
|
|
|
+ <el-table-column label="手机号" align="center" prop="mobile" width="150"/>
|
|
|
|
+ <el-table-column label="最近一次登录ip" align="center" prop="ipaddr" width="150"/>
|
|
|
|
+ <el-table-column label=" 上次登录时间" align="center" prop="lastLoginTime" width="180">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <span>{{ parseTime(scope.row.lastLoginTime, '{y}-{m}-{d}') }}</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
<el-table-column label="最大连续签到天数" align="center" prop="maxSignCount" />
|
|
<el-table-column label="最大连续签到天数" align="center" prop="maxSignCount" />
|
|
<el-table-column label="主播等级" align="center" prop="anchorGrade" />
|
|
<el-table-column label="主播等级" align="center" prop="anchorGrade" />
|
|
<el-table-column label="主播积分" align="center" prop="anchorPoint" />
|
|
<el-table-column label="主播积分" align="center" prop="anchorPoint" />
|
|
@@ -125,25 +139,19 @@
|
|
<el-table-column label="魅力等级" align="center" prop="charmGrade" />
|
|
<el-table-column label="魅力等级" align="center" prop="charmGrade" />
|
|
<el-table-column label="魅力积分" align="center" prop="charmPoint" />
|
|
<el-table-column label="魅力积分" align="center" prop="charmPoint" />
|
|
<el-table-column label="可兑换" align="center" prop="coinCash" />
|
|
<el-table-column label="可兑换" align="center" prop="coinCash" />
|
|
- <el-table-column label="消费总额(财富积分)" align="center" prop="consumption" />
|
|
|
|
|
|
+ <el-table-column label="消费总额(财富积分)" align="center" prop="consumption" width="150"/>
|
|
<el-table-column label="注册时间" align="center" prop="createTime" width="180">
|
|
<el-table-column label="注册时间" align="center" prop="createTime" width="180">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
|
|
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column label="邀请码" align="center" prop="inviteCode" />
|
|
<el-table-column label="邀请码" align="center" prop="inviteCode" />
|
|
- <el-table-column label="用户当前的位置" align="center" prop="ipaddr" />
|
|
|
|
<el-table-column label="主播是否认证" align="center" prop="isAnchorAuth">
|
|
<el-table-column label="主播是否认证" align="center" prop="isAnchorAuth">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<dict-tag :options="dict.type.is_anchor_auth" :value="scope.row.isAnchorAuth"/>
|
|
<dict-tag :options="dict.type.is_anchor_auth" :value="scope.row.isAnchorAuth"/>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column label="最后登录ip" align="center" prop="lastLoginIp" />
|
|
|
|
- <el-table-column label=" 上次登录时间" align="center" prop="lastLoginTime" width="180">
|
|
|
|
- <template slot-scope="scope">
|
|
|
|
- <span>{{ parseTime(scope.row.lastLoginTime, '{y}-{m}-{d}') }}</span>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
|
|
+<!-- <el-table-column label="最后登录ip" align="center" prop="lastLoginIp" />-->
|
|
<el-table-column label=" 离线时间" align="center" prop="lastOffLineTime" width="180">
|
|
<el-table-column label=" 离线时间" align="center" prop="lastOffLineTime" width="180">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<span>{{ parseTime(scope.row.lastOffLineTime, '{y}-{m}-{d}') }}</span>
|
|
<span>{{ parseTime(scope.row.lastOffLineTime, '{y}-{m}-{d}') }}</span>
|
|
@@ -174,7 +182,7 @@
|
|
<dict-tag :options="dict.type.app_user_status" :value="scope.row.status"/>
|
|
<dict-tag :options="dict.type.app_user_status" :value="scope.row.status"/>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column fixed="right" label="操作" align="center" class-name="small-padding fixed-width">
|
|
|
|
|
|
+ <el-table-column fixed="right" label="操作" align="center" width="200" class-name="small-padding fixed-width">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<el-button
|
|
<el-button
|
|
size="mini"
|
|
size="mini"
|
|
@@ -183,6 +191,12 @@
|
|
v-if="scope.row.role == 1 && scope.row.liveLive"
|
|
v-if="scope.row.role == 1 && scope.row.liveLive"
|
|
@click="handleLive(scope.row)"
|
|
@click="handleLive(scope.row)"
|
|
>{{scope.row.liveLive.islive==1?'关播':'虚拟开播'}}</el-button>
|
|
>{{scope.row.liveLive.islive==1?'关播':'虚拟开播'}}</el-button>
|
|
|
|
+ <el-button
|
|
|
|
+ size="mini"
|
|
|
|
+ type="text"
|
|
|
|
+ icon="el-icon-edit"
|
|
|
|
+ @click="getUserDetail(scope.row)"
|
|
|
|
+ >查看详情</el-button>
|
|
<el-button
|
|
<el-button
|
|
size="mini"
|
|
size="mini"
|
|
type="text"
|
|
type="text"
|
|
@@ -484,19 +498,288 @@
|
|
<el-button @click="cancel">取 消</el-button>
|
|
<el-button @click="cancel">取 消</el-button>
|
|
</div>
|
|
</div>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <!-- 用户详情对话框 -->
|
|
|
|
+ <el-dialog :title="title" :visible.sync="superOpen" width="80%" append-to-body>
|
|
|
|
+ <el-form >
|
|
|
|
+ <el-form-item label="">
|
|
|
|
+ <span>
|
|
|
|
+ <image-preview :src="userInfo.avatar" :width="50" :height="50"/>
|
|
|
|
+ </span>
|
|
|
|
+ <span style="margin-left: 1rem;">{{userInfo.userid}} {{userInfo.role==0?"普通用户":"主播"}}</span>
|
|
|
|
+ <span style="margin-left: 1rem;">注册IP:{{userInfo.registerIp}}</span>
|
|
|
|
+ <span style="margin-left: 1rem;">最后登录IP:{{userInfo.ipaddr}}</span>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="">
|
|
|
|
+ <span>
|
|
|
|
+ 金币:{{userInfo.coin}}
|
|
|
|
+ </span>
|
|
|
|
+ <span style="margin-left: 1rem;">
|
|
|
|
+ 余额:{{userInfo.diamondCoin}}
|
|
|
|
+ </span>
|
|
|
|
+ </el-form-item>
|
|
|
|
+
|
|
|
|
+ <el-form-item label="">
|
|
|
|
+ <el-tabs v-model="activeName" @tab-click="handleClick" style="width: 100%">
|
|
|
|
+ <el-tab-pane label="上级推荐人列表" name="first">
|
|
|
|
+ <el-table
|
|
|
|
+ :data="superUserList"
|
|
|
|
+ stripe
|
|
|
|
+ style="width: 100%">
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="userId"
|
|
|
|
+ label="UID">
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="pid"
|
|
|
|
+ label="上级UID">
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table>
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ <el-tab-pane label="用户待遇" name="second">
|
|
|
|
+ <el-form-item label="">
|
|
|
|
+ <span>
|
|
|
|
+ 直播分红:{{undefined!=userInfo.infoDetail?userInfo.infoDetail.liveRate+"%":"-"}}
|
|
|
|
+ </span>
|
|
|
|
+ <span style="margin-left: 1rem;">
|
|
|
|
+ 保底分红:{{undefined!=userInfo.infoDetail?userInfo.infoDetail.dividendGuaranteeRate+"%":"-"}}
|
|
|
|
+ </span>
|
|
|
|
+ <el-table
|
|
|
|
+ :data="undefined!=userInfo.infoDetail?userInfo.infoDetail.gameCommissionList:[]"
|
|
|
|
+ stripe
|
|
|
|
+ style="width: 100%">
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="gameName"
|
|
|
|
+ label="游戏">
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="gameRate"
|
|
|
|
+ label="返佣">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ {{scope.row.gameRate + "%"}}
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ <el-tab-pane label="同IP登录用户" name="three">
|
|
|
|
+ <el-table
|
|
|
|
+ v-loading="ipLoading"
|
|
|
|
+ :data="ipUserList"
|
|
|
|
+ stripe
|
|
|
|
+ style="width: 100%">
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="userid"
|
|
|
|
+ label="UID">
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="username"
|
|
|
|
+ label="昵称">
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="ipaddr"
|
|
|
|
+ label="最后登录ip">
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table>
|
|
|
|
+ <pagination
|
|
|
|
+ v-show="ipTotal>0"
|
|
|
|
+ :total="ipTotal"
|
|
|
|
+ :page.sync="queryIpParams.pageNum"
|
|
|
|
+ :limit.sync="queryIpParams.pageSize"
|
|
|
|
+ @pagination="getIpList"
|
|
|
|
+ />
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ <el-tab-pane label="绑定提现账号" name="four">
|
|
|
|
+ <el-table
|
|
|
|
+ :data="accountList"
|
|
|
|
+ v-loading="accountLoading"
|
|
|
|
+ stripe
|
|
|
|
+ style="width: 100%">
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="uid"
|
|
|
|
+ label="UID">
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="account"
|
|
|
|
+ label="账号">
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table>
|
|
|
|
+ <pagination
|
|
|
|
+ v-show="accountTotal>0"
|
|
|
|
+ :total="accountTotal"
|
|
|
|
+ :page.sync="queryAccountParams.pageNum"
|
|
|
|
+ :limit.sync="queryAccountParams.pageSize"
|
|
|
|
+ @pagination="getAccountList"
|
|
|
|
+ />
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ <el-tab-pane label="兑换记录" name="five">
|
|
|
|
+ <el-table
|
|
|
|
+ :data="orderList"
|
|
|
|
+ v-loading="orderLoading"
|
|
|
|
+ stripe
|
|
|
|
+ style="width: 100%">
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="uid"
|
|
|
|
+ label="UID">
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="productNames"
|
|
|
|
+ label="商品">
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column label="交易金额(实付金额)" align="center" prop="transactionAmount" />
|
|
|
|
+ <el-table-column label="收货人地址" align="center" prop="address" width="200"/>
|
|
|
|
+ <el-table-column label="订单状态" align="center" prop="status">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <dict-tag :options="dict.type.app_goods_order_status" :value="scope.row.status"/>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table>
|
|
|
|
+ <pagination
|
|
|
|
+ v-show="orderTotal>0"
|
|
|
|
+ :total="orderTotal"
|
|
|
|
+ :page.sync="queryOrderParams.pageNum"
|
|
|
|
+ :limit.sync="queryOrderParams.pageSize"
|
|
|
|
+ @pagination="getOrderList"
|
|
|
|
+ />
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ <el-tab-pane label="直播获得的游戏投注返佣" name="six">
|
|
|
|
+ <el-table
|
|
|
|
+ :data="liveList"
|
|
|
|
+ v-loading="liveLoading"
|
|
|
|
+ stripe
|
|
|
|
+ style="width: 100%">
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="userId"
|
|
|
|
+ label="UID">
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="gameName"
|
|
|
|
+ label="游戏">
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column label="期号" align="center" prop="gameDate" />
|
|
|
|
+ <el-table-column label="佣金" align="center" prop="commission" />
|
|
|
|
+ </el-table>
|
|
|
|
+ <pagination
|
|
|
|
+ v-show="liveTotal>0"
|
|
|
|
+ :total="liveTotal"
|
|
|
|
+ :page.sync="queryLiveParams.pageNum"
|
|
|
|
+ :limit.sync="queryLiveParams.pageSize"
|
|
|
|
+ @pagination="getLiveList"
|
|
|
|
+ />
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ <el-tab-pane label="收到的礼物" name="seven">
|
|
|
|
+ <el-table
|
|
|
|
+ :data="giftList"
|
|
|
|
+ v-loading="giftLoading"
|
|
|
|
+ stripe
|
|
|
|
+ style="width: 100%">
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="fromUid"
|
|
|
|
+ label="UID">
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="coinChange"
|
|
|
|
+ label="礼物收益">
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="remarks"
|
|
|
|
+ label="礼物">
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="createTime"
|
|
|
|
+ label="时间">
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table>
|
|
|
|
+ <pagination
|
|
|
|
+ v-show="giftTotal>0"
|
|
|
|
+ :total="giftTotal"
|
|
|
|
+ :page.sync="queryGiftParams.pageNum"
|
|
|
|
+ :limit.sync="queryGiftParams.pageSize"
|
|
|
|
+ @pagination="getGiftList"
|
|
|
|
+ />
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ <el-tab-pane label="下注记录" name="eight">
|
|
|
|
+ <el-table
|
|
|
|
+ :data="bettingList"
|
|
|
|
+ v-loading="bettingLoading"
|
|
|
|
+ stripe
|
|
|
|
+ style="width: 100%">
|
|
|
|
+ <el-table-column label="游戏" align="center" prop="gameId">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <span>{{ getTypeName(scope.row.gameId) }}</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column label="用户ID" align="center" prop="userId" />
|
|
|
|
+ <el-table-column label="游戏期号" align="center" prop="gameDate" />
|
|
|
|
+ <el-table-column label="主播ID" align="center" prop="liveUserId" />
|
|
|
|
+ <el-table-column label="直播房间号" align="center" prop="liveRoomId" />
|
|
|
|
+ <el-table-column label="是否直播间投注 " align="center" prop="isLive">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <dict-tag :options="dict.type.app_betting_is_live" :value="scope.row.isLive"/>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column label="投注类型" align="center" prop="bettingType">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <dict-tag :options="dict.type.app_game_betting_type" :value="scope.row.bettingType"/>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column label="投注选项" align="center" prop="bettingItem">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ {{getItemName(scope.row)}}
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column label="投注选项倍数" align="center" prop="bettingMultiple" />
|
|
|
|
+ <el-table-column label="投注金额" align="center" prop="bettingAmount" />
|
|
|
|
+ <el-table-column label="投注佣金" align="center" prop="bettingCommission" />
|
|
|
|
+ <el-table-column label="是否中奖" align="center" prop="isWinning">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <dict-tag :options="dict.type.app_game_betting_winning" :value="scope.row.isWinning"/>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table>
|
|
|
|
+ <pagination
|
|
|
|
+ v-show="bettingTotal>0"
|
|
|
|
+ :total="bettingTotal"
|
|
|
|
+ :page.sync="queryBettingParams.pageNum"
|
|
|
|
+ :limit.sync="queryBettingParams.pageSize"
|
|
|
|
+ @pagination="getBettingList"
|
|
|
|
+ />
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ </el-tabs>
|
|
|
|
+ </el-form-item>
|
|
|
|
+
|
|
|
|
+ </el-form>
|
|
|
|
+
|
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
|
+ <el-button @click="cancel">关闭</el-button>
|
|
|
|
+ </div>
|
|
|
|
+ </el-dialog>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
-import { listUser, getUser, delUser, addUser, updateUser,resetUser,userCharge,channelList,withdraw,openLive } from "@/api/business/user";
|
|
|
|
|
|
+import { listUser, getUser, delUser, addUser, updateUser,resetUser,userCharge,channelList,withdraw,openLive,userDetail,liveCommission,getGift } from "@/api/business/user";
|
|
|
|
+import { listAccount} from "@/api/business/account";
|
|
|
|
+import { listOrder } from "@/api/business/order";
|
|
|
|
+import { listBetting} from "@/api/business/betting";
|
|
|
|
+import {allGameList } from "@/api/business/game_item";
|
|
|
|
+import {allList} from "@/api/business/lottery";
|
|
|
|
|
|
export default {
|
|
export default {
|
|
name: "User",
|
|
name: "User",
|
|
- dicts: ['is_anchor_auth', 'app_user_role', 'app_user_status', 'app_user_online_status','app_user_coin_type','app_charge_rate'],
|
|
|
|
|
|
+ dicts: ['is_anchor_auth', 'app_user_role', 'app_user_status', 'app_user_online_status','app_user_coin_type','app_charge_rate','app_goods_order_status','app_betting_is_live','app_game_betting_type','app_game_betting_winning'],
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
|
|
+ activeName:"first",
|
|
// 遮罩层
|
|
// 遮罩层
|
|
loading: true,
|
|
loading: true,
|
|
|
|
+ ipLoading: true,
|
|
|
|
+ accountLoading: true,
|
|
|
|
+ orderLoading: true,
|
|
|
|
+ liveLoading: true,
|
|
|
|
+ giftLoading: true,
|
|
|
|
+ bettingLoading: true,
|
|
// 选中数组
|
|
// 选中数组
|
|
ids: [],
|
|
ids: [],
|
|
// 非单个禁用
|
|
// 非单个禁用
|
|
@@ -507,8 +790,20 @@ export default {
|
|
showSearch: true,
|
|
showSearch: true,
|
|
// 总条数
|
|
// 总条数
|
|
total: 0,
|
|
total: 0,
|
|
|
|
+ ipTotal: 0,
|
|
|
|
+ accountTotal: 0,
|
|
|
|
+ orderTotal: 0,
|
|
|
|
+ liveTotal: 0,
|
|
|
|
+ giftTotal: 0,
|
|
|
|
+ bettingTotal: 0,
|
|
// app用户表格数据
|
|
// app用户表格数据
|
|
userList: [],
|
|
userList: [],
|
|
|
|
+ ipUserList: [],
|
|
|
|
+ accountList: [],
|
|
|
|
+ orderList: [],
|
|
|
|
+ liveList: [],
|
|
|
|
+ giftList: [],
|
|
|
|
+ bettingList: [],
|
|
// 弹出层标题
|
|
// 弹出层标题
|
|
title: "",
|
|
title: "",
|
|
// 是否显示弹出层
|
|
// 是否显示弹出层
|
|
@@ -525,7 +820,45 @@ export default {
|
|
channelMap:{},
|
|
channelMap:{},
|
|
liveLive:{},
|
|
liveLive:{},
|
|
liveOpen:false,
|
|
liveOpen:false,
|
|
|
|
+ superOpen:false,
|
|
|
|
+ userInfo:{},
|
|
closeMsg:null,
|
|
closeMsg:null,
|
|
|
|
+ superUserList:[],
|
|
|
|
+ typeMap:{},
|
|
|
|
+ typeList:[],
|
|
|
|
+ gameItemMap:{},
|
|
|
|
+ gameItemList:[],
|
|
|
|
+ gameItemShowList:[],
|
|
|
|
+ queryIpParams: {
|
|
|
|
+ pageNum: 1,
|
|
|
|
+ pageSize: 10,
|
|
|
|
+ ipaddr: null,
|
|
|
|
+ },
|
|
|
|
+ queryAccountParams: {
|
|
|
|
+ pageNum: 1,
|
|
|
|
+ pageSize: 10,
|
|
|
|
+ uid: null,
|
|
|
|
+ },
|
|
|
|
+ queryOrderParams: {
|
|
|
|
+ pageNum: 1,
|
|
|
|
+ pageSize: 10,
|
|
|
|
+ uid: null,
|
|
|
|
+ },
|
|
|
|
+ queryLiveParams: {
|
|
|
|
+ pageNum: 1,
|
|
|
|
+ pageSize: 10,
|
|
|
|
+ userId: null,
|
|
|
|
+ },
|
|
|
|
+ queryGiftParams: {
|
|
|
|
+ pageNum: 1,
|
|
|
|
+ pageSize: 10,
|
|
|
|
+ userId: null,
|
|
|
|
+ },
|
|
|
|
+ queryBettingParams: {
|
|
|
|
+ pageNum: 1,
|
|
|
|
+ pageSize: 10,
|
|
|
|
+ userId: null,
|
|
|
|
+ },
|
|
// 查询参数
|
|
// 查询参数
|
|
queryParams: {
|
|
queryParams: {
|
|
pageNum: 1,
|
|
pageNum: 1,
|
|
@@ -596,7 +929,34 @@ export default {
|
|
};
|
|
};
|
|
},
|
|
},
|
|
created() {
|
|
created() {
|
|
- this.getList();
|
|
|
|
|
|
+ let that = this;
|
|
|
|
+ allList().then(response => {
|
|
|
|
+ if(response.data){
|
|
|
|
+ for(var i in response.data){
|
|
|
|
+ var item = response.data[i];
|
|
|
|
+ that.gameItemMap[item.itemLocation.toString() + "_" + item.gameId] = item.itemName;
|
|
|
|
+ that.gameItemList.push({
|
|
|
|
+ value:item.itemLocation+"_"+item.gameId,
|
|
|
|
+ label:item.itemName,
|
|
|
|
+ gameId:item.gameId
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ allGameList().then(response => {
|
|
|
|
+ if(response.data){
|
|
|
|
+ for(var i in response.data){
|
|
|
|
+ var item = response.data[i];
|
|
|
|
+ that.typeMap[item.id.toString()] = item.name;
|
|
|
|
+ that.typeList.push({
|
|
|
|
+ value:item.id,
|
|
|
|
+ label:item.name
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ that.getList();
|
|
|
|
+
|
|
|
|
+ });
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
currentRules:function(){
|
|
currentRules:function(){
|
|
@@ -611,6 +971,29 @@ export default {
|
|
},
|
|
},
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ getItemName(row){
|
|
|
|
+ let that = this;
|
|
|
|
+ let bettingGameType = row.bettingGameType;
|
|
|
|
+ let bettingItem = row.bettingItem;
|
|
|
|
+ let gameId = row.gameId;
|
|
|
|
+ if("0" == bettingGameType){
|
|
|
|
+ return that.gameItemMap[bettingItem+"_"+gameId];
|
|
|
|
+ }else{
|
|
|
|
+ let name = "";
|
|
|
|
+ let arr = JSON.parse(bettingItem);
|
|
|
|
+ for(var i in arr){
|
|
|
|
+ let item = arr[i];
|
|
|
|
+ if("" != name){
|
|
|
|
+ name = name + ",";
|
|
|
|
+ }
|
|
|
|
+ name = name + that.gameItemMap[item["bettingItem"]+"_"+gameId];
|
|
|
|
+ }
|
|
|
|
+ return name;
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ getTypeName(id) {
|
|
|
|
+ return this.typeMap[id.toString()];
|
|
|
|
+ },
|
|
/** 查询app用户列表 */
|
|
/** 查询app用户列表 */
|
|
getList() {
|
|
getList() {
|
|
this.loading = true;
|
|
this.loading = true;
|
|
@@ -620,6 +1003,66 @@ export default {
|
|
this.loading = false;
|
|
this.loading = false;
|
|
});
|
|
});
|
|
},
|
|
},
|
|
|
|
+ /** 查询同ip app用户列表 */
|
|
|
|
+ getIpList() {
|
|
|
|
+ this.ipLoading = true;
|
|
|
|
+ this.queryIpParams.ipaddr = this.userInfo.ipaddr;
|
|
|
|
+ listUser(this.queryIpParams).then(response => {
|
|
|
|
+ this.ipUserList = response.rows;
|
|
|
|
+ this.ipTotal = response.total;
|
|
|
|
+ this.ipLoading = false;
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ /** 查询提现账号列表 */
|
|
|
|
+ getAccountList() {
|
|
|
|
+ this.accountLoading = true;
|
|
|
|
+ this.queryAccountParams.uid = this.userInfo.userid;
|
|
|
|
+ listAccount(this.queryIpParams).then(response => {
|
|
|
|
+ this.accountList = response.rows;
|
|
|
|
+ this.accountTotal = response.total;
|
|
|
|
+ this.accountLoading = false;
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ /** 查询兑换列表 */
|
|
|
|
+ getOrderList() {
|
|
|
|
+ this.orderLoading = true;
|
|
|
|
+ this.queryOrderParams.uid = this.userInfo.userid;
|
|
|
|
+ listOrder(this.queryOrderParams).then(response => {
|
|
|
|
+ this.orderList = response.rows;
|
|
|
|
+ this.orderTotal = response.total;
|
|
|
|
+ this.orderLoading = false;
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ /** 查询兑换列表 */
|
|
|
|
+ getLiveList() {
|
|
|
|
+ this.liveLoading = true;
|
|
|
|
+ this.queryLiveParams.userId = this.userInfo.userid;
|
|
|
|
+ liveCommission(this.queryLiveParams).then(response => {
|
|
|
|
+ this.liveList = response.rows;
|
|
|
|
+ this.liveTotal = response.total;
|
|
|
|
+ this.liveLoading = false;
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ /** 查询礼物列表 */
|
|
|
|
+ getGiftList() {
|
|
|
|
+ this.giftLoading = true;
|
|
|
|
+ this.queryGiftParams.userId = this.userInfo.userid;
|
|
|
|
+ getGift(this.queryGiftParams).then(response => {
|
|
|
|
+ this.giftList = response.rows;
|
|
|
|
+ this.giftTotal = response.total;
|
|
|
|
+ this.giftLoading = false;
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ /** 查询下注记录 */
|
|
|
|
+ getBettingList() {
|
|
|
|
+ this.bettingLoading = true;
|
|
|
|
+ this.queryBettingParams.userId = this.userInfo.userid;
|
|
|
|
+ listBetting(this.queryBettingParams).then(response => {
|
|
|
|
+ this.bettingList = response.rows;
|
|
|
|
+ this.bettingTotal = response.total;
|
|
|
|
+ this.bettingLoading = false;
|
|
|
|
+ });
|
|
|
|
+ },
|
|
// 取消按钮
|
|
// 取消按钮
|
|
cancel() {
|
|
cancel() {
|
|
this.open = false;
|
|
this.open = false;
|
|
@@ -627,6 +1070,7 @@ export default {
|
|
this.chargeopen = false;
|
|
this.chargeopen = false;
|
|
this.resetWithdrawopen = false;
|
|
this.resetWithdrawopen = false;
|
|
this.liveOpen = false;
|
|
this.liveOpen = false;
|
|
|
|
+ this.superOpen = false;
|
|
this.reset();
|
|
this.reset();
|
|
this.resetPwd();
|
|
this.resetPwd();
|
|
this.resetCharge();
|
|
this.resetCharge();
|
|
@@ -1078,7 +1522,42 @@ export default {
|
|
this.rate = rate;
|
|
this.rate = rate;
|
|
}
|
|
}
|
|
// this.chargeRules = rule;
|
|
// this.chargeRules = rule;
|
|
|
|
+ },
|
|
|
|
+ getUserDetail(row){
|
|
|
|
+ let that = this;
|
|
|
|
+ that.title = "用户详情"
|
|
|
|
+ that.activeName = "first";
|
|
|
|
+ that.userInfo = row;
|
|
|
|
+ that.userInfo["infoDetail"] = {};
|
|
|
|
+ userDetail({"userId":row.userid}).then(response => {
|
|
|
|
+ that.superUserList = response.data.superUserList;
|
|
|
|
+ this.userInfo["infoDetail"] = response.data;
|
|
|
|
+ that.superOpen = true;
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ handleClick(tab, event) {
|
|
|
|
+ if("three" == tab.$options.propsData.name){
|
|
|
|
+ this.getIpList();
|
|
|
|
+ }
|
|
|
|
+ if("four" == tab.$options.propsData.name){
|
|
|
|
+ this.getAccountList();
|
|
|
|
+ }
|
|
|
|
+ if("five" == tab.$options.propsData.name){
|
|
|
|
+ this.getOrderList();
|
|
|
|
+ }
|
|
|
|
+ if("six" == tab.$options.propsData.name){
|
|
|
|
+ this.getLiveList();
|
|
|
|
+ }
|
|
|
|
+ if("seven" == tab.$options.propsData.name){
|
|
|
|
+ this.getGiftList();
|
|
|
|
+ }
|
|
|
|
+ if("eight" == tab.$options.propsData.name){
|
|
|
|
+ this.getBettingList();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|
|
|
|
+<style scoped>
|
|
|
|
+
|
|
|
|
+</style>
|