|
|
|
@ -5,7 +5,7 @@ |
|
|
|
|
:size="1000" |
|
|
|
|
:visible.sync="drawer" |
|
|
|
|
:direction="direction" |
|
|
|
|
:before-close="handleClose" |
|
|
|
|
:before-close="handleClose" |
|
|
|
|
> |
|
|
|
|
<div v-loading="loading" v-if="psInfo"> |
|
|
|
|
<div class="head"> |
|
|
|
@ -19,7 +19,7 @@ |
|
|
|
|
<img class="svip-img" src="../../../assets/images/svip.png"> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div> |
|
|
|
|
<div v-if="isUser"> |
|
|
|
|
<el-button |
|
|
|
@ -43,44 +43,40 @@ |
|
|
|
|
@click="onEdit" |
|
|
|
|
>完成</el-button |
|
|
|
|
> |
|
|
|
|
<el-dropdown @command="handleCommand" class="ml10"> |
|
|
|
|
<el-button icon="el-icon-more" size="small"></el-button> |
|
|
|
|
<el-dropdown-menu slot="dropdown"> |
|
|
|
|
<el-dropdown-item command="integral">设置积分</el-dropdown-item> |
|
|
|
|
<el-dropdown-item command="balance">设置余额</el-dropdown-item> |
|
|
|
|
<el-dropdown-item command="group">设置分组</el-dropdown-item> |
|
|
|
|
<el-dropdown-item command="label">设置标签</el-dropdown-item> |
|
|
|
|
<el-dropdown-item command="reference">修改推荐人</el-dropdown-item> |
|
|
|
|
<el-dropdown-item command="password">修改密码</el-dropdown-item> |
|
|
|
|
<el-dropdown-item command="svipLevel">编辑会员等级</el-dropdown-item> |
|
|
|
|
<el-dropdown-item command="svipSet">付费会员设置</el-dropdown-item> |
|
|
|
|
</el-dropdown-menu> |
|
|
|
|
</el-dropdown> |
|
|
|
|
<!-- <el-dropdown @command="handleCommand" class="ml10">--> |
|
|
|
|
<!-- <el-button icon="el-icon-more" size="small"></el-button>--> |
|
|
|
|
<!-- <el-dropdown-menu slot="dropdown">--> |
|
|
|
|
<!-- <el-dropdown-item command="integral">设置积分</el-dropdown-item>--> |
|
|
|
|
<!-- <el-dropdown-item command="balance">设置余额</el-dropdown-item>--> |
|
|
|
|
<!-- <el-dropdown-item command="group">设置分组</el-dropdown-item> --> |
|
|
|
|
<!-- <el-dropdown-item command="label">设置标签</el-dropdown-item> --> |
|
|
|
|
<!-- <el-dropdown-item command="reference">修改推荐人</el-dropdown-item> --> |
|
|
|
|
<!-- <el-dropdown-item command="password">修改密码</el-dropdown-item> --> |
|
|
|
|
<!-- <el-dropdown-item command="svipLevel">编辑会员等级</el-dropdown-item> --> |
|
|
|
|
<!-- <el-dropdown-item command="svipSet">付费会员设置</el-dropdown-item> --> |
|
|
|
|
<!-- </el-dropdown-menu>--> |
|
|
|
|
<!-- </el-dropdown>--> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<div> |
|
|
|
|
<ul class="list"> |
|
|
|
|
<li class="item"> |
|
|
|
|
<div class="title">余额</div> |
|
|
|
|
<div class="title">消费积分</div> |
|
|
|
|
<div> |
|
|
|
|
<div class="value1">{{psInfo.now_money}}元</div> |
|
|
|
|
<div>{{psInfo.assets.integral_buy}}</div> |
|
|
|
|
</div> |
|
|
|
|
</li> |
|
|
|
|
<li class="item"> |
|
|
|
|
<div class="title">总计订单</div> |
|
|
|
|
<div>{{psInfo.pay_count}}笔</div> |
|
|
|
|
</li> |
|
|
|
|
<li class="item"> |
|
|
|
|
<div class="title">总消费金额</div> |
|
|
|
|
<div>{{psInfo.pay_price}}元</div> |
|
|
|
|
<div class="title">提现积分</div> |
|
|
|
|
<div>{{psInfo.assets.integral_withdraw}}</div> |
|
|
|
|
</li> |
|
|
|
|
<li class="item"> |
|
|
|
|
<div class="title">积分</div> |
|
|
|
|
<div>{{psInfo.integral}}</div> |
|
|
|
|
<div class="title">钻石</div> |
|
|
|
|
<div>{{psInfo.assets.diamond}}</div> |
|
|
|
|
</li> |
|
|
|
|
<li class="item"> |
|
|
|
|
<div class="title">用户成长值</div> |
|
|
|
|
<div>{{psInfo.member_value}}</div> |
|
|
|
|
<div class="title">本票</div> |
|
|
|
|
<div>{{psInfo.assets.stock}}</div> |
|
|
|
|
</li> |
|
|
|
|
</ul> |
|
|
|
|
</div> |
|
|
|
@ -120,30 +116,30 @@ |
|
|
|
|
<div class="section"> |
|
|
|
|
<div class="title">用户概况</div> |
|
|
|
|
<ul class="list"> |
|
|
|
|
<li class="item"> |
|
|
|
|
<div>推广员:</div> |
|
|
|
|
<div class="value">{{psInfo.is_promoter == 1 ? '是' : '否'}}</div> |
|
|
|
|
</li> |
|
|
|
|
<li class="item"> |
|
|
|
|
<div>用户状态:</div> |
|
|
|
|
<div class="value">{{psInfo.status == 1 ? '开启' : '关闭'}}</div> |
|
|
|
|
</li> |
|
|
|
|
<li class="item"> |
|
|
|
|
<div>用户等级:</div> |
|
|
|
|
<div class="value">{{psInfo.member_level}}</div> |
|
|
|
|
</li> |
|
|
|
|
<li class="item"> |
|
|
|
|
<div>用户标签:</div> |
|
|
|
|
<div class="value"> |
|
|
|
|
<span v-for="(item,index) in psInfo.userLabel" :key="index"> |
|
|
|
|
{{item.label_name}} |
|
|
|
|
</span> |
|
|
|
|
</div> |
|
|
|
|
</li> |
|
|
|
|
<li class="item"> |
|
|
|
|
<div>用户分组:</div> |
|
|
|
|
<div class="value">{{psInfo.group && psInfo.group.group_name || '无'}}</div> |
|
|
|
|
</li> |
|
|
|
|
<!-- <li class="item">--> |
|
|
|
|
<!-- <div>推广员:</div>--> |
|
|
|
|
<!-- <div class="value">{{psInfo.is_promoter == 1 ? '是' : '否'}}</div>--> |
|
|
|
|
<!-- </li>--> |
|
|
|
|
<!-- <li class="item">--> |
|
|
|
|
<!-- <div>用户状态:</div>--> |
|
|
|
|
<!-- <div class="value">{{psInfo.status == 1 ? '开启' : '关闭'}}</div>--> |
|
|
|
|
<!-- </li>--> |
|
|
|
|
<!-- <li class="item">--> |
|
|
|
|
<!-- <div>用户等级:</div>--> |
|
|
|
|
<!-- <div class="value">{{psInfo.member_level}}</div>--> |
|
|
|
|
<!-- </li>--> |
|
|
|
|
<!-- <li class="item">--> |
|
|
|
|
<!-- <div>用户标签:</div>--> |
|
|
|
|
<!-- <div class="value">--> |
|
|
|
|
<!-- <span v-for="(item,index) in psInfo.userLabel" :key="index">--> |
|
|
|
|
<!-- {{item.label_name}}--> |
|
|
|
|
<!-- </span>--> |
|
|
|
|
<!-- </div>--> |
|
|
|
|
<!-- </li>--> |
|
|
|
|
<!-- <li class="item">--> |
|
|
|
|
<!-- <div>用户分组:</div>--> |
|
|
|
|
<!-- <div class="value">{{psInfo.group && psInfo.group.group_name || '无'}}</div>--> |
|
|
|
|
<!-- </li>--> |
|
|
|
|
<li class="item"> |
|
|
|
|
<div>推广人:</div> |
|
|
|
|
<div class="value">{{psInfo.spread && psInfo.spread.nickname || '无'}}</div> |
|
|
|
@ -156,21 +152,21 @@ |
|
|
|
|
<div>登录时间:</div> |
|
|
|
|
<div class="value">{{psInfo.last_time}}</div> |
|
|
|
|
</li> |
|
|
|
|
<li v-if="psInfo.is_svip == 1 || psInfo.is_svip == 2" class="item"> |
|
|
|
|
<div>会员到期时间:</div> |
|
|
|
|
<div class="value">{{psInfo.svip_endtime}}</div> |
|
|
|
|
</li> |
|
|
|
|
</ul> |
|
|
|
|
</div> |
|
|
|
|
<div class="section"> |
|
|
|
|
<div class="title">用户备注</div> |
|
|
|
|
<ul class="list"> |
|
|
|
|
<li class="item"> |
|
|
|
|
<div>备注:</div> |
|
|
|
|
<div class="value">{{ psInfo.mark ? psInfo.mark : '-' }}</div> |
|
|
|
|
</li> |
|
|
|
|
<!-- <li v-if="psInfo.is_svip == 1 || psInfo.is_svip == 2" class="item">--> |
|
|
|
|
<!-- <div>会员到期时间:</div>--> |
|
|
|
|
<!-- <div class="value">{{psInfo.svip_endtime}}</div>--> |
|
|
|
|
<!-- </li>--> |
|
|
|
|
</ul> |
|
|
|
|
</div> |
|
|
|
|
<!-- <div class="section">--> |
|
|
|
|
<!-- <div class="title">用户备注</div>--> |
|
|
|
|
<!-- <ul class="list">--> |
|
|
|
|
<!-- <li class="item">--> |
|
|
|
|
<!-- <div>备注:</div>--> |
|
|
|
|
<!-- <div class="value">{{ psInfo.mark ? psInfo.mark : '-' }}</div>--> |
|
|
|
|
<!-- </li>--> |
|
|
|
|
<!-- </ul>--> |
|
|
|
|
<!-- </div>--> |
|
|
|
|
<div class="section"> |
|
|
|
|
<div class="title">补充信息</div> |
|
|
|
|
<ul class="list"> |
|
|
|
@ -186,7 +182,7 @@ |
|
|
|
|
</ul> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</el-tab-pane> |
|
|
|
|
<el-tab-pane v-else-if="isEdit&&!isDetail" label="用户信息" name="userInfo"> |
|
|
|
|
<el-form |
|
|
|
@ -265,75 +261,75 @@ |
|
|
|
|
</el-col> --> |
|
|
|
|
</el-row> |
|
|
|
|
</div> |
|
|
|
|
<div class="section"> |
|
|
|
|
<div class="title">用户概况</div> |
|
|
|
|
<el-row :gutter="24" class="mt20"> |
|
|
|
|
<el-col :span="12"> |
|
|
|
|
<el-form-item label="用户等级:"> |
|
|
|
|
<el-select |
|
|
|
|
size="small" |
|
|
|
|
v-model="psInfo.member_level" |
|
|
|
|
placeholder="请选择" |
|
|
|
|
class="selWidth" |
|
|
|
|
> |
|
|
|
|
<el-option |
|
|
|
|
v-for="item in memberList" |
|
|
|
|
:key="item.value" |
|
|
|
|
:label="item.label" |
|
|
|
|
:value="item.value" |
|
|
|
|
/> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-col> |
|
|
|
|
<el-col :span="12"> |
|
|
|
|
<el-form-item label="用户分组:"> |
|
|
|
|
<el-select |
|
|
|
|
size="small" |
|
|
|
|
v-model="psInfo.group_id" |
|
|
|
|
placeholder="请选择" |
|
|
|
|
class="selWidth" |
|
|
|
|
> |
|
|
|
|
<el-option value="">全部</el-option> |
|
|
|
|
<el-option v-for="(item, index) in groupList" :key="index" :value="item.group_id" :label="item.group_name" /> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-col> |
|
|
|
|
<el-col :span="12"> |
|
|
|
|
<el-form-item label="用户标签:"> |
|
|
|
|
<el-select |
|
|
|
|
size="small" |
|
|
|
|
v-model="psInfo.label_id" |
|
|
|
|
multiple |
|
|
|
|
placeholder="请选择" |
|
|
|
|
class="selWidth" |
|
|
|
|
> |
|
|
|
|
<el-option value="">全部</el-option> |
|
|
|
|
<el-option v-for="(item, index) in labelLists" :key="index" :value="item.label_id" :label="item.label_name" /> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-col> |
|
|
|
|
</el-row> |
|
|
|
|
<el-row :gutter="24"> |
|
|
|
|
<el-form-item label="推广员:" prop="is_promoter"> |
|
|
|
|
<el-radio-group |
|
|
|
|
v-model="psInfo.is_promoter" |
|
|
|
|
> |
|
|
|
|
<el-radio :label="1" class="radio">开启</el-radio> |
|
|
|
|
<el-radio :label="0">关闭</el-radio> |
|
|
|
|
</el-radio-group> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-row> |
|
|
|
|
<el-row :gutter="24"> |
|
|
|
|
<el-form-item label="用户状态:" prop="status"> |
|
|
|
|
<el-radio-group |
|
|
|
|
v-model="psInfo.status" |
|
|
|
|
> |
|
|
|
|
<el-radio :label="1" class="radio">开启</el-radio> |
|
|
|
|
<el-radio :label="0">关闭</el-radio> |
|
|
|
|
</el-radio-group> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-row> |
|
|
|
|
</div> |
|
|
|
|
<!-- <div class="section">--> |
|
|
|
|
<!-- <div class="title">用户概况</div>--> |
|
|
|
|
<!-- <el-row :gutter="24" class="mt20">--> |
|
|
|
|
<!-- <el-col :span="12">--> |
|
|
|
|
<!-- <el-form-item label="用户等级:">--> |
|
|
|
|
<!-- <el-select--> |
|
|
|
|
<!-- size="small"--> |
|
|
|
|
<!-- v-model="psInfo.member_level"--> |
|
|
|
|
<!-- placeholder="请选择"--> |
|
|
|
|
<!-- class="selWidth"--> |
|
|
|
|
<!-- >--> |
|
|
|
|
<!-- <el-option--> |
|
|
|
|
<!-- v-for="item in memberList"--> |
|
|
|
|
<!-- :key="item.value"--> |
|
|
|
|
<!-- :label="item.label"--> |
|
|
|
|
<!-- :value="item.value"--> |
|
|
|
|
<!-- />--> |
|
|
|
|
<!-- </el-select>--> |
|
|
|
|
<!-- </el-form-item>--> |
|
|
|
|
<!-- </el-col>--> |
|
|
|
|
<!-- <el-col :span="12">--> |
|
|
|
|
<!-- <el-form-item label="用户分组:">--> |
|
|
|
|
<!-- <el-select--> |
|
|
|
|
<!-- size="small"--> |
|
|
|
|
<!-- v-model="psInfo.group_id"--> |
|
|
|
|
<!-- placeholder="请选择"--> |
|
|
|
|
<!-- class="selWidth"--> |
|
|
|
|
<!-- >--> |
|
|
|
|
<!-- <el-option value="">全部</el-option>--> |
|
|
|
|
<!-- <el-option v-for="(item, index) in groupList" :key="index" :value="item.group_id" :label="item.group_name" />--> |
|
|
|
|
<!-- </el-select>--> |
|
|
|
|
<!-- </el-form-item>--> |
|
|
|
|
<!-- </el-col>--> |
|
|
|
|
<!-- <el-col :span="12">--> |
|
|
|
|
<!-- <el-form-item label="用户标签:">--> |
|
|
|
|
<!-- <el-select--> |
|
|
|
|
<!-- size="small"--> |
|
|
|
|
<!-- v-model="psInfo.label_id"--> |
|
|
|
|
<!-- multiple--> |
|
|
|
|
<!-- placeholder="请选择"--> |
|
|
|
|
<!-- class="selWidth"--> |
|
|
|
|
<!-- >--> |
|
|
|
|
<!-- <el-option value="">全部</el-option>--> |
|
|
|
|
<!-- <el-option v-for="(item, index) in labelLists" :key="index" :value="item.label_id" :label="item.label_name" />--> |
|
|
|
|
<!-- </el-select>--> |
|
|
|
|
<!-- </el-form-item>--> |
|
|
|
|
<!-- </el-col>--> |
|
|
|
|
<!-- </el-row>--> |
|
|
|
|
<!-- <el-row :gutter="24">--> |
|
|
|
|
<!-- <el-form-item label="推广员:" prop="is_promoter">--> |
|
|
|
|
<!-- <el-radio-group--> |
|
|
|
|
<!-- v-model="psInfo.is_promoter"--> |
|
|
|
|
<!-- >--> |
|
|
|
|
<!-- <el-radio :label="1" class="radio">开启</el-radio>--> |
|
|
|
|
<!-- <el-radio :label="0">关闭</el-radio>--> |
|
|
|
|
<!-- </el-radio-group>--> |
|
|
|
|
<!-- </el-form-item>--> |
|
|
|
|
<!-- </el-row>--> |
|
|
|
|
<!-- <el-row :gutter="24">--> |
|
|
|
|
<!-- <el-form-item label="用户状态:" prop="status">--> |
|
|
|
|
<!-- <el-radio-group--> |
|
|
|
|
<!-- v-model="psInfo.status"--> |
|
|
|
|
<!-- >--> |
|
|
|
|
<!-- <el-radio :label="1" class="radio">开启</el-radio>--> |
|
|
|
|
<!-- <el-radio :label="0">关闭</el-radio>--> |
|
|
|
|
<!-- </el-radio-group>--> |
|
|
|
|
<!-- </el-form-item>--> |
|
|
|
|
<!-- </el-row>--> |
|
|
|
|
<!-- </div>--> |
|
|
|
|
<div class="section"> |
|
|
|
|
<div class="title">用户备注</div> |
|
|
|
|
<el-row :gutter="24" class="mt20"> |
|
|
|
@ -359,7 +355,7 @@ |
|
|
|
|
v-model="item.value" |
|
|
|
|
:placeholder="item.msg" |
|
|
|
|
class="selWidth" |
|
|
|
|
/> |
|
|
|
|
/> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item v-else-if="item.type=='int'" :label="item.title+':'" :required="item.is_require==1"> |
|
|
|
|
<el-input |
|
|
|
@ -368,7 +364,7 @@ |
|
|
|
|
v-model="item.value" |
|
|
|
|
:placeholder="item.msg" |
|
|
|
|
class="selWidth" |
|
|
|
|
/> |
|
|
|
|
/> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item v-else-if="item.type=='email'" :label="item.title+':'" :required="item.is_require==1"> |
|
|
|
|
<el-input |
|
|
|
@ -376,7 +372,7 @@ |
|
|
|
|
v-model="item.value" |
|
|
|
|
:placeholder="item.msg" |
|
|
|
|
class="selWidth" |
|
|
|
|
/> |
|
|
|
|
/> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item v-else-if="item.type=='date'" :label="item.title+':'" :required="item.is_require==1"> |
|
|
|
|
<el-date-picker |
|
|
|
@ -396,7 +392,7 @@ |
|
|
|
|
v-model="item.value" |
|
|
|
|
:placeholder="item.msg" |
|
|
|
|
class="selWidth" |
|
|
|
|
/> |
|
|
|
|
/> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item v-else-if="item.type=='phone'" :label="item.title+':'" :required="item.is_require==1"> |
|
|
|
|
<el-input |
|
|
|
@ -405,7 +401,7 @@ |
|
|
|
|
v-model="item.value" |
|
|
|
|
:placeholder="item.msg" |
|
|
|
|
class="selWidth" |
|
|
|
|
/> |
|
|
|
|
/> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item v-else-if="item.type=='radio'" :label="item.title+':'" :required="item.is_require==1"> |
|
|
|
|
<el-radio-group v-model="item.value"> |
|
|
|
@ -420,13 +416,13 @@ |
|
|
|
|
v-model="item.value" |
|
|
|
|
:placeholder="item.msg" |
|
|
|
|
class="selWidth" |
|
|
|
|
/> |
|
|
|
|
/> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-col> |
|
|
|
|
</el-row> |
|
|
|
|
</div> |
|
|
|
|
</el-form> |
|
|
|
|
|
|
|
|
|
</el-form> |
|
|
|
|
|
|
|
|
|
</el-tab-pane> |
|
|
|
|
<el-tab-pane label="消费记录" name="record"> |
|
|
|
|
<template v-if="activeName=='record'"> |
|
|
|
@ -451,8 +447,8 @@ |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
</el-tab-pane> |
|
|
|
|
<el-tab-pane label="积分明细" name="detailed"> |
|
|
|
|
<template v-if="activeName == 'detailed'"> |
|
|
|
|
<el-tab-pane label="积分" name="integral"> |
|
|
|
|
<template v-if="activeName == 'integral'"> |
|
|
|
|
<el-table :data="tableData.data" size="small"> |
|
|
|
|
<el-table-column |
|
|
|
|
v-for="(item, index) in columns" |
|
|
|
@ -461,19 +457,6 @@ |
|
|
|
|
:label="item.title" |
|
|
|
|
width="item.minWidth" |
|
|
|
|
> |
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
<div v-if="item.key == 'number'"> |
|
|
|
|
<span v-if="scope.row.pm == 1" style="color:rgb(255, 59, 48);">+{{scope.row.number}}</span> |
|
|
|
|
<span v-else-if="scope.row.pm == 0" style="color:rgb(130, 228, 147);">-{{scope.row.number}}</span> |
|
|
|
|
</div> |
|
|
|
|
<div v-else-if="item.key == 'status'"> |
|
|
|
|
<span v-if="scope.row.status == 1">已解冻</span> |
|
|
|
|
<span v-else-if="scope.row.status == 0">冻结中</span> |
|
|
|
|
</div> |
|
|
|
|
<div v-else> |
|
|
|
|
<span>{{scope.row[item.key]}}</span> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
</el-table-column> |
|
|
|
|
</el-table> |
|
|
|
|
<div class="block"> |
|
|
|
@ -488,108 +471,9 @@ |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
</el-tab-pane> |
|
|
|
|
<el-tab-pane label="签到记录" name="signRecord"> |
|
|
|
|
<template v-if="activeName == 'signRecord'"> |
|
|
|
|
<el-table :data="tableData.data" size="small"> |
|
|
|
|
<el-table-column |
|
|
|
|
v-for="(item, index) in columns" |
|
|
|
|
:key="index" |
|
|
|
|
:prop="item.key" |
|
|
|
|
:label="item.title" |
|
|
|
|
width="item.minWidth" |
|
|
|
|
/> |
|
|
|
|
</el-table> |
|
|
|
|
<div class="block"> |
|
|
|
|
<el-pagination |
|
|
|
|
:page-size="tableFrom.limit" |
|
|
|
|
:current-page="tableFrom.page" |
|
|
|
|
layout="prev, pager, next" |
|
|
|
|
:total="tableData.total" |
|
|
|
|
@size-change="handleSizeChange" |
|
|
|
|
@current-change="pageChange" |
|
|
|
|
/> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
</el-tab-pane> |
|
|
|
|
<el-tab-pane label="持有优惠券" name="coupon"> |
|
|
|
|
<template v-if="activeName == 'coupon'"> |
|
|
|
|
<el-table :data="tableData.data" size="small"> |
|
|
|
|
<el-table-column |
|
|
|
|
v-for="(item, index) in columns" |
|
|
|
|
:key="index" |
|
|
|
|
:prop="item.key" |
|
|
|
|
:label="item.title" |
|
|
|
|
width="item.minWidth" |
|
|
|
|
/> |
|
|
|
|
</el-table> |
|
|
|
|
<div class="block"> |
|
|
|
|
<el-pagination |
|
|
|
|
:page-size="tableFrom.limit" |
|
|
|
|
:current-page="tableFrom.page" |
|
|
|
|
layout="prev, pager, next" |
|
|
|
|
:total="tableData.total" |
|
|
|
|
@size-change="handleSizeChange" |
|
|
|
|
@current-change="pageChange" |
|
|
|
|
/> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
</el-tab-pane> |
|
|
|
|
<el-tab-pane label="余额变更" name="balance" size="small"> |
|
|
|
|
<template v-if="activeName == 'balance'"> |
|
|
|
|
<el-table :data="tableData.data" size="small"> |
|
|
|
|
<el-table-column |
|
|
|
|
v-for="(item, index) in columns" |
|
|
|
|
:key="index" |
|
|
|
|
:prop="item.key" |
|
|
|
|
:label="item.title" |
|
|
|
|
width="item.minWidth" |
|
|
|
|
/> |
|
|
|
|
</el-table> |
|
|
|
|
<div class="block"> |
|
|
|
|
<el-pagination |
|
|
|
|
:page-size="tableFrom.limit" |
|
|
|
|
:current-page="tableFrom.page" |
|
|
|
|
layout="prev, pager, next" |
|
|
|
|
:total="tableData.total" |
|
|
|
|
@size-change="handleSizeChange" |
|
|
|
|
@current-change="pageChange" |
|
|
|
|
/> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
</el-tab-pane> |
|
|
|
|
<el-tab-pane label="用户成长值" name="growth" size="small"> |
|
|
|
|
<template v-if="activeName == 'growth'"> |
|
|
|
|
<el-table :data="tableData.data" size="small"> |
|
|
|
|
<el-table-column |
|
|
|
|
v-for="(item, index) in columns" |
|
|
|
|
:key="index" |
|
|
|
|
:prop="item.key" |
|
|
|
|
:label="item.title" |
|
|
|
|
width="item.minWidth" |
|
|
|
|
> |
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
<div v-if="item.key == 'number'"> |
|
|
|
|
<span v-if="scope.row['pm']>0" style="color: #ff0000;">+{{scope.row[item.key]}}</span> |
|
|
|
|
<span v-else style="color: #00C050;">-{{scope.row[item.key]}}</span> |
|
|
|
|
</div> |
|
|
|
|
<span v-else>{{scope.row[item.key]}}</span> |
|
|
|
|
</template> |
|
|
|
|
</el-table-column> |
|
|
|
|
</el-table> |
|
|
|
|
<div class="block"> |
|
|
|
|
<el-pagination |
|
|
|
|
:page-size="tableFrom.limit" |
|
|
|
|
:current-page="tableFrom.page" |
|
|
|
|
layout="prev, pager, next" |
|
|
|
|
:total="tableData.total" |
|
|
|
|
@size-change="handleSizeChange" |
|
|
|
|
@current-change="pageChange" |
|
|
|
|
/> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
</el-tab-pane> |
|
|
|
|
<el-tab-pane label="浏览足迹" name="footsteps"> |
|
|
|
|
<template v-if="activeName == 'footsteps'"> |
|
|
|
|
|
|
|
|
|
<el-tab-pane label="钻石" name="diamond"> |
|
|
|
|
<template v-if="activeName == 'diamond'"> |
|
|
|
|
<el-table :data="tableData.data" size="small"> |
|
|
|
|
<template> |
|
|
|
|
<el-table-column |
|
|
|
@ -599,16 +483,7 @@ |
|
|
|
|
:label="item.title" |
|
|
|
|
width="item.minWidth" |
|
|
|
|
> |
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
<div v-if="item.key == 'image'" class="acea-row" style="align-items: center;"> |
|
|
|
|
<div class="demo-image__preview"> |
|
|
|
|
<el-image v-if="scope.row.spu" :src="scope.row.spu&&scope.row.spu.image" :preview-src-list="[scope.row.spu.image]" /> |
|
|
|
|
</div> |
|
|
|
|
<span class="priceBox" style="margin-left: 10px;width: 220px;">{{scope.row.spu&&scope.row.spu.store_name}}</span> |
|
|
|
|
</div> |
|
|
|
|
<span v-else-if="item.key == 'create_time'">{{scope.row[item.key]}}</span> |
|
|
|
|
<span v-else>{{scope.row.spu&&scope.row.spu[item.key]}}</span> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
</el-table-column> |
|
|
|
|
</template> |
|
|
|
|
</el-table> |
|
|
|
@ -624,20 +499,20 @@ |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
</el-tab-pane> |
|
|
|
|
<el-tab-pane label="推荐人变更记录" name="recommend"> |
|
|
|
|
<template v-if="activeName == 'recommend'"> |
|
|
|
|
<el-tab-pane label="本票" name="stock"> |
|
|
|
|
<template v-if="activeName == 'stock'"> |
|
|
|
|
<el-table :data="tableData.data" size="small"> |
|
|
|
|
<el-table-column prop="spread.uid" label="上级推荐人ID" min-width="100"> |
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
<span>{{(scope.row.spread && scope.row.spread.uid) || '-'}}</span> |
|
|
|
|
</template> |
|
|
|
|
</el-table-column> |
|
|
|
|
<el-table-column prop="spread.nickname" label="上级推荐人昵称" min-width="100"> |
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
<span>{{(scope.row.spread && scope.row.spread.nickname) || '用户已注销'}}</span> |
|
|
|
|
</template> |
|
|
|
|
</el-table-column> |
|
|
|
|
<el-table-column prop="create_time" label="绑定时间" min-width="100" /> |
|
|
|
|
<template> |
|
|
|
|
<el-table-column |
|
|
|
|
v-for="(item, index) in columns" |
|
|
|
|
:key="index" |
|
|
|
|
:prop="item.key" |
|
|
|
|
:label="item.title" |
|
|
|
|
width="item.minWidth" |
|
|
|
|
> |
|
|
|
|
|
|
|
|
|
</el-table-column> |
|
|
|
|
</template> |
|
|
|
|
</el-table> |
|
|
|
|
<div class="block"> |
|
|
|
|
<el-pagination |
|
|
|
@ -667,7 +542,7 @@ |
|
|
|
|
// +---------------------------------------------------------------------- |
|
|
|
|
// | Author: CRMEB Team <admin@crmeb.com> |
|
|
|
|
// +---------------------------------------------------------------------- |
|
|
|
|
import { userOrderApi, userDetailApi, userCouponApi, userBillApi, |
|
|
|
|
import { userOrderApi, userDetailApi, userCouponApi, userBillApi,assetsLogList, |
|
|
|
|
modifyUserRefLog, userPointsApi, userSignLogApi, userHistoryApi, memberGrowthLog, userEditApi } from '@/api/user' |
|
|
|
|
import { verifyEmail } from '@/utils/toolsValidate'; |
|
|
|
|
export default { |
|
|
|
@ -749,7 +624,7 @@ export default { |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
mounted() { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
|
beforeUpdate(){ |
|
|
|
|
this.$nextTick(() =>{ |
|
|
|
@ -816,23 +691,24 @@ export default { |
|
|
|
|
this.loading = false |
|
|
|
|
}) |
|
|
|
|
break |
|
|
|
|
case 'recommend': |
|
|
|
|
modifyUserRefLog(this.uid, this.tableFrom).then(res => { |
|
|
|
|
case 'integral': |
|
|
|
|
let data = {'uid':this.uid,asset_type:1,page:this.tableFrom.page, limit:this.tableFrom.limit} |
|
|
|
|
assetsLogList(data).then(res => { |
|
|
|
|
this.tableData.data = res.data.list |
|
|
|
|
this.tableData.total = res.data.count |
|
|
|
|
this.columns = [ |
|
|
|
|
{ |
|
|
|
|
title: '上级推荐人ID', |
|
|
|
|
key: 'spread.uid', |
|
|
|
|
title: '分值来源', |
|
|
|
|
key: 'type', |
|
|
|
|
minWidth: 120 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '上级推荐人昵称', |
|
|
|
|
key: 'spread.nickname', |
|
|
|
|
title: '变动情况', |
|
|
|
|
key: 'count', |
|
|
|
|
minWidth: 120 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '绑定时间', |
|
|
|
|
title: '变动时间', |
|
|
|
|
key: 'create_time', |
|
|
|
|
minWidth: 120 |
|
|
|
|
} |
|
|
|
@ -842,239 +718,97 @@ export default { |
|
|
|
|
this.loading = false |
|
|
|
|
}) |
|
|
|
|
break |
|
|
|
|
case 'signRecord': |
|
|
|
|
userSignLogApi(this.uid, this.tableFrom).then(res => { |
|
|
|
|
this.tableData.data = res.data.list |
|
|
|
|
this.tableData.total = res.data.count |
|
|
|
|
this.columns = [ |
|
|
|
|
{ |
|
|
|
|
title: '获得积分', |
|
|
|
|
key: 'number', |
|
|
|
|
minWidth: 120 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '签到时间', |
|
|
|
|
key: 'create_time', |
|
|
|
|
minWidth: 120 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '备注', |
|
|
|
|
key: 'title', |
|
|
|
|
minWidth: 120 |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
] |
|
|
|
|
this.loading = false |
|
|
|
|
}).catch(() => { |
|
|
|
|
this.loading = false |
|
|
|
|
}) |
|
|
|
|
break |
|
|
|
|
case 'coupon': |
|
|
|
|
userCouponApi(this.uid, this.tableFrom).then(res => { |
|
|
|
|
this.tableData.data = res.data.list |
|
|
|
|
this.tableData.total = res.data.count |
|
|
|
|
this.columns = [ |
|
|
|
|
{ |
|
|
|
|
title: '优惠券名称', |
|
|
|
|
key: 'coupon_title', |
|
|
|
|
minWidth: 120 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '面值', |
|
|
|
|
key: 'coupon_price', |
|
|
|
|
minWidth: 120 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '最低消费额', |
|
|
|
|
key: 'use_min_price', |
|
|
|
|
minWidth: 120 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '兑换时间', |
|
|
|
|
key: 'use_time', |
|
|
|
|
minWidth: 120 |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
this.loading = false |
|
|
|
|
}).catch(() => { |
|
|
|
|
this.loading = false |
|
|
|
|
}) |
|
|
|
|
break |
|
|
|
|
case 'balance': |
|
|
|
|
userBillApi(this.uid, this.tableFrom).then(res => { |
|
|
|
|
this.tableData.data = res.data.list |
|
|
|
|
this.tableData.total = res.data.count |
|
|
|
|
this.columns = [ |
|
|
|
|
{ |
|
|
|
|
title: '变动金额', |
|
|
|
|
key: 'number', |
|
|
|
|
minWidth: 90 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '变动后', |
|
|
|
|
key: 'balance', |
|
|
|
|
minWidth: 90 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '类型', |
|
|
|
|
key: 'title', |
|
|
|
|
minWidth: 100 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '创建时间', |
|
|
|
|
key: 'create_time', |
|
|
|
|
minWidth: 150 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '备注', |
|
|
|
|
key: 'mark', |
|
|
|
|
minWidth: 200 |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
this.loading = false |
|
|
|
|
}).catch(() => { |
|
|
|
|
this.loading = false |
|
|
|
|
}) |
|
|
|
|
break |
|
|
|
|
case 'growth': |
|
|
|
|
this.tableFrom.uid = this.uid |
|
|
|
|
memberGrowthLog(this.tableFrom).then(res => { |
|
|
|
|
this.tableData.data = res.data.list |
|
|
|
|
this.tableData.total = res.data.count |
|
|
|
|
this.columns = [ |
|
|
|
|
{ |
|
|
|
|
title: '成长值来源', |
|
|
|
|
key: 'title', |
|
|
|
|
minWidth: 90 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '成长值变化', |
|
|
|
|
key: 'number', |
|
|
|
|
minWidth: 90 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '变化后成长值', |
|
|
|
|
key: 'balance', |
|
|
|
|
minWidth: 100 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '日期', |
|
|
|
|
key: 'create_time', |
|
|
|
|
minWidth: 150 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '备注', |
|
|
|
|
key: 'mark', |
|
|
|
|
minWidth: 200 |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
this.loading = false |
|
|
|
|
}).catch(() => { |
|
|
|
|
this.loading = false |
|
|
|
|
}) |
|
|
|
|
break |
|
|
|
|
case 'detailed': |
|
|
|
|
userPointsApi(this.uid, this.tableFrom).then(res => { |
|
|
|
|
this.tableData.data = res.data.list |
|
|
|
|
this.tableData.total = res.data.count |
|
|
|
|
this.columns = [ |
|
|
|
|
{ |
|
|
|
|
title: '来源/用途', |
|
|
|
|
key: 'title', |
|
|
|
|
minWidth: 90 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '积分变化', |
|
|
|
|
key: 'number', |
|
|
|
|
minWidth: 90 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '状态', |
|
|
|
|
key: 'status', |
|
|
|
|
minWidth: 90 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '当前有效积分', |
|
|
|
|
key: 'balance', |
|
|
|
|
minWidth: 100 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '日期', |
|
|
|
|
key: 'create_time', |
|
|
|
|
minWidth: 150 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '备注', |
|
|
|
|
key: 'mark', |
|
|
|
|
minWidth: 200 |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
this.loading = false |
|
|
|
|
}).catch(() => { |
|
|
|
|
this.loading = false |
|
|
|
|
}) |
|
|
|
|
break |
|
|
|
|
case 'footsteps': |
|
|
|
|
userHistoryApi(this.uid, this.tableFrom).then(res => { |
|
|
|
|
this.tableData.data = res.data.list |
|
|
|
|
this.tableData.total = res.data.count |
|
|
|
|
this.columns = [ |
|
|
|
|
{ |
|
|
|
|
title: '商品信息', |
|
|
|
|
key: 'image', |
|
|
|
|
minWidth: 200 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '价格', |
|
|
|
|
key: 'price', |
|
|
|
|
minWidth: 50 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '浏览时间', |
|
|
|
|
key: 'create_time', |
|
|
|
|
minWidth: 50 |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
this.loading = false |
|
|
|
|
}).catch(() => { |
|
|
|
|
this.loading = false |
|
|
|
|
}) |
|
|
|
|
break |
|
|
|
|
default: |
|
|
|
|
userBillApi(this.uid, this.tableFrom).then(res => { |
|
|
|
|
this.tableData.data = res.data.list |
|
|
|
|
this.tableData.total = res.data.count |
|
|
|
|
this.columns = [ |
|
|
|
|
{ |
|
|
|
|
title: '变动金额', |
|
|
|
|
key: 'number', |
|
|
|
|
minWidth: 90 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '变动后', |
|
|
|
|
key: 'balance', |
|
|
|
|
minWidth: 90 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '类型', |
|
|
|
|
key: 'title', |
|
|
|
|
minWidth: 100 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '创建时间', |
|
|
|
|
key: 'create_time', |
|
|
|
|
minWidth: 150 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '备注', |
|
|
|
|
key: 'mark', |
|
|
|
|
minWidth: 200 |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
this.loading = false |
|
|
|
|
}).catch(() => { |
|
|
|
|
this.loading = false |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
case 'diamond': |
|
|
|
|
data = {'uid':this.uid,asset_type:2,page:this.tableFrom.page, limit:this.tableFrom.limit} |
|
|
|
|
assetsLogList(data).then(res => { |
|
|
|
|
this.tableData.data = res.data.list |
|
|
|
|
this.tableData.total = res.data.count |
|
|
|
|
this.columns = [ |
|
|
|
|
{ |
|
|
|
|
title: '分值来源', |
|
|
|
|
key: 'type', |
|
|
|
|
minWidth: 120 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '变动情况', |
|
|
|
|
key: 'count', |
|
|
|
|
minWidth: 120 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '变动时间', |
|
|
|
|
key: 'create_time', |
|
|
|
|
minWidth: 120 |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
this.loading = false |
|
|
|
|
}).catch(() => { |
|
|
|
|
this.loading = false |
|
|
|
|
}) |
|
|
|
|
break |
|
|
|
|
case 'stock': |
|
|
|
|
data = {'uid':this.uid,asset_type:3,page:this.tableFrom.page, limit:this.tableFrom.limit} |
|
|
|
|
assetsLogList(data).then(res => { |
|
|
|
|
console.log(res); |
|
|
|
|
this.tableData.data = res.data.list |
|
|
|
|
this.tableData.total = res.data.count |
|
|
|
|
this.columns = [ |
|
|
|
|
{ |
|
|
|
|
title: '分值来源', |
|
|
|
|
key: 'type', |
|
|
|
|
minWidth: 120 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '变动情况', |
|
|
|
|
key: 'count', |
|
|
|
|
minWidth: 120 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '变动时间', |
|
|
|
|
key: 'create_time', |
|
|
|
|
minWidth: 120 |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
this.loading = false |
|
|
|
|
}).catch(() => { |
|
|
|
|
this.loading = false |
|
|
|
|
}) |
|
|
|
|
break |
|
|
|
|
default: |
|
|
|
|
userBillApi(this.uid, this.tableFrom).then(res => { |
|
|
|
|
this.tableData.data = res.data.list |
|
|
|
|
this.tableData.total = res.data.count |
|
|
|
|
this.columns = [ |
|
|
|
|
{ |
|
|
|
|
title: '变动金额', |
|
|
|
|
key: 'number', |
|
|
|
|
minWidth: 90 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '变动后', |
|
|
|
|
key: 'balance', |
|
|
|
|
minWidth: 90 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '类型', |
|
|
|
|
key: 'title', |
|
|
|
|
minWidth: 100 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '创建时间', |
|
|
|
|
key: 'create_time', |
|
|
|
|
minWidth: 150 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '备注', |
|
|
|
|
key: 'mark', |
|
|
|
|
minWidth: 200 |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
this.loading = false |
|
|
|
|
}).catch(() => { |
|
|
|
|
this.loading = false |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
handleClose() { |
|
|
|
@ -1165,7 +899,7 @@ export default { |
|
|
|
|
this.$emit('setMember',{uid: this.uid}); |
|
|
|
|
} else if (command == 'svipSet') { |
|
|
|
|
this.$emit('giveMember',{uid: this.uid}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
pageChange(page) { |
|
|
|
|
this.tableFrom.page = page |
|
|
|
@ -1284,7 +1018,7 @@ export default { |
|
|
|
|
margin-right: 7px; |
|
|
|
|
} |
|
|
|
|
.svip{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.svip-img{ |
|
|
|
|
width: 40px; |
|
|
|
|
height: 15px; |
|
|
|
|