1093 lines
43 KiB
Vue
1093 lines
43 KiB
Vue
<template>
|
|
<div class="app-container">
|
|
<el-card>
|
|
<div slot="header" style="display: flex;justify-content: space-between;padding-right: 0px">
|
|
<div>
|
|
<el-page-header @back="goBack" content="详情页面"></el-page-header>
|
|
</div>
|
|
<div>
|
|
<el-button type="primary" plain round @click="subCard">子卡管理<i class="el-icon-bank-card el-icon--right"></i></el-button>
|
|
<el-button type="primary" plain round>会员码</el-button>
|
|
</div>
|
|
</div>
|
|
<div>基础资料</div>
|
|
<div style="display: flex;margin-top: 20px">
|
|
<div class="left">
|
|
<div>
|
|
<img v-if="form.avatar" :src="form.avatar" style="width: 80px;height: 80px">
|
|
<img v-else src="@/assets/images/avatar.png" style="width: 80px;height: 80px">
|
|
</div>
|
|
<el-button type="warning" plain round size="mini" style="margin: 10px" @click="bindIdCard">绑定实体卡</el-button><br>
|
|
<el-button type="primary" icon="el-icon-bank-card" round style="margin: 10px;width: 50%;height: 40px" @click="userRecharge">会员充值</el-button>
|
|
</div>
|
|
<div class="right">
|
|
<el-descriptions>
|
|
<el-descriptions-item label="手机号">{{form.mobile}}
|
|
<el-tag size="mini" @click="replaceMobile">更换</el-tag>
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="会员昵称">{{form.name}}</el-descriptions-item>
|
|
<el-descriptions-item label="实体卡号">{{form.idcard}}</el-descriptions-item>
|
|
<el-descriptions-item label="绑定信息"></el-descriptions-item>
|
|
<el-descriptions-item label="会员状态">
|
|
<dict-tag :options="dict.type.zhzt" :value="form.status"/>
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="加油次数">{{form.consumeNum}}</el-descriptions-item>
|
|
<el-descriptions-item label="加油总金额">{{form.refuelMoney}}</el-descriptions-item>
|
|
<el-descriptions-item label="所属油站">{{ store.name }}</el-descriptions-item>
|
|
<el-descriptions-item label="注册时间">{{form.createTime}}</el-descriptions-item>
|
|
<el-descriptions-item label="关联副卡">
|
|
<span style="color: #00afff" @click="secondCard">副卡管理</span>
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="会员等级">
|
|
{{ grade.name }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="储值优惠"></el-descriptions-item>
|
|
<el-descriptions-item label="每日笔数">
|
|
<span style="color: #00afff" @click="configuration">跟随全局总配置</span>
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="固定等级">
|
|
<span style="color: #00afff" @click="level">
|
|
<dict-tag :options="dict.type.zcrzdj" :value="form.fixingLevel"/></span>
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="备注信息">{{ form.description }}</el-descriptions-item>
|
|
</el-descriptions>
|
|
</div>
|
|
</div>
|
|
</el-card>
|
|
|
|
<el-card style="margin: 20px 0">
|
|
<div>会员资产</div>
|
|
<div>
|
|
<template>
|
|
<div>
|
|
<el-row :gutter="20">
|
|
<el-col :span="4">
|
|
<div class="sta">
|
|
<el-statistic
|
|
group-separator=","
|
|
:value="form.point"
|
|
title="累计积分"
|
|
></el-statistic>
|
|
</div>
|
|
</el-col>
|
|
<el-col :span="4">
|
|
<div class="sta">
|
|
<el-statistic
|
|
group-separator=","
|
|
:value="form.refuelMoney"
|
|
title="加油金">
|
|
</el-statistic>
|
|
</div>
|
|
</el-col>
|
|
<el-col :span="4">
|
|
<div class="sta">
|
|
<el-statistic
|
|
group-separator=","
|
|
:precision="2"
|
|
:value="form.balance"
|
|
title="账户余额"
|
|
></el-statistic>
|
|
</div>
|
|
</el-col>
|
|
<el-col :span="4">
|
|
<div class="sta">
|
|
<el-statistic
|
|
group-separator=","
|
|
:precision="2"
|
|
:value="form.literCard"
|
|
title="升数卡余额"
|
|
></el-statistic>
|
|
</div>
|
|
</el-col>
|
|
</el-row>
|
|
</div>
|
|
</template>
|
|
</div>
|
|
</el-card>
|
|
|
|
<el-card>
|
|
<template>
|
|
<el-tabs v-model="activeName" @tab-click="handleClick">
|
|
<el-tab-pane label="加油订单" name="refuelOrder">
|
|
<el-table ref="tables" v-loading="loading" :data="list">
|
|
<el-table-column label="所属油站" prop="id" align="center"/>
|
|
<el-table-column label="订单时间" align="center"/>
|
|
<el-table-column label="交易终端" align="center" prop="userNo"/>
|
|
<el-table-column label="油品/油枪" align="center" prop="name" />
|
|
<el-table-column label="订单金额" align="center" prop="mobile"/>
|
|
<el-table-column label="优惠金额" align="center" prop="gradeId"/>
|
|
<el-table-column label="实付金额" align="center" prop="balance"/>
|
|
<el-table-column label="付款类型" align="center" prop="balance"/>
|
|
<el-table-column label="订单号" align="center" prop="balance"/>
|
|
<el-table-column label="订单类型" align="center" prop="point"/>
|
|
</el-table>
|
|
|
|
<pagination
|
|
:total="total"
|
|
:page.sync="queryParams.page"
|
|
:limit.sync="queryParams.pageSize"
|
|
@pagination="getList"
|
|
/>
|
|
</el-tab-pane>
|
|
<el-tab-pane label="商品订单" name="shopOrder">
|
|
<el-table ref="tables" v-loading="loading" :data="list">
|
|
<el-table-column label="所属油站" prop="id" align="center"/>
|
|
<el-table-column label="订单时间" align="center"/>
|
|
<el-table-column label="订单金额" align="center" prop="userNo"/>
|
|
<el-table-column label="商品数量" align="center" prop="name" />
|
|
<el-table-column label="储值卡" align="center" prop="mobile"/>
|
|
<el-table-column label="实付金额" align="center" prop="balance"/>
|
|
<el-table-column label="付款类型" align="center" prop="balance"/>
|
|
<el-table-column label="订单号" align="center" prop="balance"/>
|
|
<el-table-column label="订单类型" align="center" prop="point"/>
|
|
</el-table>
|
|
|
|
<pagination
|
|
:total="total"
|
|
:page.sync="queryParams.page"
|
|
:limit.sync="queryParams.pageSize"
|
|
@pagination="getList"
|
|
/>
|
|
</el-tab-pane>
|
|
<el-tab-pane label="余额记录" name="balanceRecord">
|
|
<!-- <el-tabs v-model="balanceRecord" type="card" @tab-click="handleClick">-->
|
|
<!-- <el-tab-pane label="储值卡记录" name="first">储值卡记录</el-tab-pane>-->
|
|
<!-- <el-tab-pane label="升数卡记录" name="second">升数卡记录</el-tab-pane>-->
|
|
<!-- </el-tabs>-->
|
|
<el-radio-group v-model="tabPosition" size="mini" style="margin-bottom: 30px;">
|
|
<el-radio-button label="giftCard">储值卡记录</el-radio-button>
|
|
<el-radio-button label="literCard">升数卡记录</el-radio-button>
|
|
</el-radio-group>
|
|
<div v-if="tabPosition=='giftCard'">
|
|
<el-table ref="tables" v-loading="loading" :data="list">
|
|
<el-table-column prop="date" label="所属油站"/>
|
|
<el-table-column prop="date" label="变动账户"/>
|
|
<el-table-column prop="date" label="类型"/>
|
|
<el-table-column label="详细信息">
|
|
<el-table-column prop="name" label="变动金额"/>
|
|
<el-table-column prop="address" label="变动前余额"/>
|
|
<el-table-column prop="address" label="变动后余额"/>
|
|
</el-table-column>
|
|
<el-table-column prop="date" label="订单号"/>
|
|
<el-table-column prop="date" label="描述"/>
|
|
<el-table-column prop="date" label="变动时间"/>
|
|
</el-table>
|
|
|
|
<pagination
|
|
:total="total"
|
|
:page.sync="queryParams.page"
|
|
:limit.sync="queryParams.pageSize"
|
|
@pagination="getList"
|
|
/>
|
|
</div>
|
|
<div v-else>
|
|
<el-table ref="tables" v-loading="loading" :data="list">
|
|
<el-table-column label="所属油站" prop="id" align="center"/>
|
|
<el-table-column label="变动账户" align="center"/>
|
|
<el-table-column label="类型" align="center" prop="userNo"/>
|
|
<el-table-column label="变动升数" align="center" prop="name" />
|
|
<el-table-column label="订单号" align="center" prop="balance"/>
|
|
<el-table-column label="描述" align="center" prop="balance"/>
|
|
<el-table-column label="变动时间" align="center" prop="point"/>
|
|
</el-table>
|
|
|
|
<pagination
|
|
:total="total"
|
|
:page.sync="queryParams.page"
|
|
:limit.sync="queryParams.pageSize"
|
|
@pagination="getList"
|
|
/>
|
|
</div>
|
|
</el-tab-pane>
|
|
<el-tab-pane label="积分记录" name="pointRecord">
|
|
<el-table ref="tables" v-loading="loading" :data="list">
|
|
<el-table-column label="所属油站" prop="id" align="center"/>
|
|
<el-table-column label="变动时间" align="center"/>
|
|
<el-table-column label="类型" align="center" prop="userNo"/>
|
|
<el-table-column label="变动积分" align="center" prop="name" />
|
|
<el-table-column label="描述" align="center" prop="balance"/>
|
|
</el-table>
|
|
|
|
<pagination
|
|
:total="total"
|
|
:page.sync="queryParams.page"
|
|
:limit.sync="queryParams.pageSize"
|
|
@pagination="getList"
|
|
/>
|
|
</el-tab-pane>
|
|
<el-tab-pane label="卡券列表" name="cardList">
|
|
<el-radio-group v-model="cardList" size="mini" style="margin-bottom: 30px;">
|
|
<el-radio-button label="notUse">未使用</el-radio-button>
|
|
<el-radio-button label="used">已使用</el-radio-button>
|
|
<el-radio-button label="expired">已过期</el-radio-button>
|
|
<el-radio-button label="whole">全部</el-radio-button>
|
|
</el-radio-group>
|
|
<div>
|
|
<el-table ref="tables" v-loading="loading" :data="list">
|
|
<el-table-column prop="date" label="所属油站"/>
|
|
<el-table-column prop="date" label="优惠券名称"/>
|
|
<el-table-column prop="date" label="卡券类型"/>
|
|
<el-table-column prop="date" label="满减金额"/>
|
|
<el-table-column prop="date" label="券面额"/>
|
|
<el-table-column prop="date" label="适用油品"/>
|
|
<el-table-column prop="date" label="状态"/>
|
|
<el-table-column label="卡券可用规则">
|
|
<el-table-column prop="name" label="有效期"/>
|
|
<el-table-column prop="address" label="周期与时段"/>
|
|
</el-table-column>
|
|
<el-table-column prop="date" label="领取时间"/>
|
|
<el-table-column prop="date" label="描述"/>
|
|
</el-table>
|
|
|
|
<pagination
|
|
:total="total"
|
|
:page.sync="queryParams.page"
|
|
:limit.sync="queryParams.pageSize"
|
|
@pagination="getList"
|
|
/>
|
|
</div>
|
|
</el-tab-pane>
|
|
<el-tab-pane label="成长值记录" name="growthValue">
|
|
<el-radio-group v-model="growthValue" size="mini" style="margin-bottom: 30px;">
|
|
<el-radio-button label="whole">全部</el-radio-button>
|
|
<el-radio-button label="gasoline">汽油成长值</el-radio-button>
|
|
<el-radio-button label="diesel">柴油成长值</el-radio-button>
|
|
<el-radio-button label="naturalGas">天然气成长值</el-radio-button>
|
|
</el-radio-group>
|
|
<div>
|
|
<el-table ref="tables" v-loading="loading" :data="list">
|
|
<el-table-column label="所属油站" prop="id" align="center"/>
|
|
<el-table-column label="变动时间" align="center"/>
|
|
<el-table-column label="类型" align="center" prop="userNo"/>
|
|
<el-table-column label="变动成长值" align="center" prop="name" />
|
|
<el-table-column label="描述" align="center" prop="balance"/>
|
|
</el-table>
|
|
|
|
<pagination
|
|
:total="total"
|
|
:page.sync="queryParams.page"
|
|
:limit.sync="queryParams.pageSize"
|
|
@pagination="getList"
|
|
/>
|
|
</div>
|
|
</el-tab-pane>
|
|
<el-tab-pane label="加油金记录" name="refuelMoney">
|
|
<el-table ref="tables" v-loading="loading" :data="list">
|
|
<el-table-column label="所属油站" prop="id" align="center"/>
|
|
<el-table-column label="变动时间" align="center"/>
|
|
<el-table-column label="类型" align="center" prop="userNo"/>
|
|
<el-table-column label="变动数据" align="center" prop="name" />
|
|
<el-table-column label="记录单号" align="center" prop="name" />
|
|
<el-table-column label="变动描述" align="center" prop="balance"/>
|
|
<el-table-column label="场景来源" align="center" prop="balance"/>
|
|
</el-table>
|
|
|
|
<pagination
|
|
:total="total"
|
|
:page.sync="queryParams.page"
|
|
:limit.sync="queryParams.pageSize"
|
|
@pagination="getList"
|
|
/>
|
|
</el-tab-pane>
|
|
</el-tabs>
|
|
</template>
|
|
</el-card>
|
|
|
|
<!-- 会员充值-->
|
|
<el-dialog width="75%" :close-on-click-modal="false" :title="title" :visible.sync="openRecharge" append-to-body>
|
|
<template>
|
|
<el-tabs v-model="activeRecharge" type="card" @tab-click="handleClick">
|
|
<el-tab-pane label="储值卡" name="balance">
|
|
<div>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<div style="display: flex">
|
|
<div style="width: 7%;line-height: 40px">油品类型</div>
|
|
<el-radio-button>储值卡充值</el-radio-button>
|
|
</div>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<div style="display: flex;margin: 20px 0">
|
|
<div style="height: 50px;line-height: 50px">充值金额</div>
|
|
<div class="mon"
|
|
v-for="(item,index) in storeCard" :key="index"
|
|
:class="activeKey === index ? 'select' : ''"
|
|
@click="recharge(index)">
|
|
<div class="top1"><span class="amount1">{{ item.recharge }}</span>元</div>
|
|
<div>赠送<span class="amount">{{ item.give }}</span>元</div>
|
|
</div>
|
|
</div>
|
|
<div style="width: 30%;margin-left: 7%"
|
|
:class="activeKey === 4 ? 'select' : ''"
|
|
@click="recharge(4)">
|
|
<el-input placeholder="请输入充值金额"
|
|
v-model="storeCardAmount.recharge">
|
|
<template slot="prepend">自定义</template>
|
|
<template slot="append">元</template>
|
|
</el-input>
|
|
</div>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<div style="display: flex;justify-content: space-between;margin: 20px 0">
|
|
<div class="jine">
|
|
<div class="zeng">赠送金额</div>
|
|
<div>
|
|
<el-input placeholder="0.00"
|
|
v-model="storeCardAmount.give"
|
|
disabled>
|
|
<template slot="append">元</template>
|
|
</el-input>
|
|
<span class="bom">赠送金额 仅自定义金额模式下可手动输入赠送、活动充值赠送金额不可手动更改</span>
|
|
</div>
|
|
</div>
|
|
<div class="jine">
|
|
<div class="zeng">赠加油金</div>
|
|
<div>
|
|
<el-input placeholder="0.00"
|
|
v-model="storeCardAmount.refuelMoney"
|
|
disabled>
|
|
<template slot="append">元</template>
|
|
</el-input>
|
|
<span class="bom">赠送加油金金额 仅自定义金额模式下可手动输入赠送、活动充值赠送金额不可手动更改</span>
|
|
</div>
|
|
</div>
|
|
<div class="jine">
|
|
<div class="zeng">赠送积分</div>
|
|
<div>
|
|
<el-input placeholder="0"
|
|
v-model="storeCardAmount.point"
|
|
disabled>
|
|
<template slot="append">积分</template>
|
|
</el-input>
|
|
<span class="bom">赠送积分 仅自定义金额模式下可手动输入,活动充值赠送积分不可手动更改[需开启积分活动有效]</span>
|
|
</div>
|
|
</div>
|
|
<div class="jine">
|
|
<div class="zeng">提成员工</div>
|
|
<div>
|
|
<el-input placeholder="请选择提成员工">
|
|
<template slot="append">选择员工</template>
|
|
</el-input>
|
|
<span class="bom">仅系统储值档次支持提成员工选择、自定义充值金额暂不支持选择提成员工</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<div style="display: flex">
|
|
<div style="width: 7%">充值备注</div>
|
|
<el-input
|
|
type="textarea"
|
|
placeholder=""
|
|
v-model="rechargeDesc"
|
|
maxlength="255"
|
|
show-word-limit
|
|
>
|
|
</el-input>
|
|
</div>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<div style="display: flex;margin: 20px 0">
|
|
<div style="width: 7%">支付方式</div>
|
|
<div>
|
|
<el-radio v-model="payment" label="扫码支付" border>扫码支付</el-radio>
|
|
<el-radio v-model="payment" label="现金支付" border>现金支付</el-radio>
|
|
<el-radio v-model="payment" label="POS刷卡" border>POS刷卡</el-radio>
|
|
<el-radio v-model="payment" label="随便付" border>随便付</el-radio>
|
|
<el-radio v-model="payment" label="银行卡" border>银行卡</el-radio>
|
|
</div>
|
|
</div>
|
|
</el-col>
|
|
</el-row>
|
|
<div style="margin: 20px 0;text-align: center">
|
|
<el-button type="primary" @click="confirm">确认充值</el-button>
|
|
<el-button @click="cancel">取 消</el-button>
|
|
</div>
|
|
</div>
|
|
</el-tab-pane>
|
|
<el-tab-pane label="升数卡" name="literCard">
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<div style="display: flex">
|
|
<div style="width: 7%;line-height: 40px">油品类型</div>
|
|
<el-radio-group v-model="tabOilType" style="margin-bottom: 30px;">
|
|
<el-radio-button label="92">92#汽油</el-radio-button>
|
|
<el-radio-button label="95">95#汽油</el-radio-button>
|
|
</el-radio-group>
|
|
</div>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<div style="display: flex;margin: 20px 0">
|
|
<div style="height: 50px;line-height: 50px;width: 8%">充值金额</div>
|
|
<div class="mon2"
|
|
v-for="(item,index) in literCard" :key="index"
|
|
:class="activeKey === index ? 'select' : ''"
|
|
@click="recharge(index)">
|
|
<div class="top1"><span class="amount1">{{ item.liter }}</span>L</div>
|
|
<div>售价<span class="amount">{{ item.amount }}</span>元</div>
|
|
<div>锁价<span class="amount">{{ item.lockPrice }}</span>/升</div>
|
|
</div>
|
|
</div>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<div style="display: flex;margin: 20px 0">
|
|
<div class="jine">
|
|
<div class="zeng">赠送积分</div>
|
|
<div>
|
|
<el-input placeholder="300" disabled>
|
|
<template slot="append">积分</template>
|
|
</el-input>
|
|
<span class="bom">升数卡充值不支持自定义积分,选择对应充值活动获得对应积分[需开启积分活动有效]</span>
|
|
</div>
|
|
</div>
|
|
<div style="display:flex;margin-left: 20px">
|
|
<div style="line-height: 40px;width: 20%">提成员工</div>
|
|
<div>
|
|
<el-input placeholder="请选择提成员工">
|
|
<template slot="append">选择员工</template>
|
|
</el-input>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<div style="display: flex">
|
|
<div style="width: 7%">充值备注</div>
|
|
<el-input
|
|
type="textarea"
|
|
placeholder=""
|
|
v-model="rechargeDesc"
|
|
maxlength="255"
|
|
show-word-limit
|
|
>
|
|
</el-input>
|
|
</div>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<div style="display: flex;margin: 20px 0">
|
|
<div style="width: 7%">支付方式</div>
|
|
<div>
|
|
<el-radio v-model="payment" label="扫码支付" border>扫码支付</el-radio>
|
|
<el-radio v-model="payment" label="现金" border>现金支付</el-radio>
|
|
<el-radio v-model="payment" label="POS刷卡" border>POS刷卡</el-radio>
|
|
<el-radio v-model="payment" label="随便付" border>随便付</el-radio>
|
|
<el-radio v-model="payment" label="银行卡" border>银行卡</el-radio>
|
|
</div>
|
|
</div>
|
|
</el-col>
|
|
</el-row>
|
|
<div style="margin: 20px 0;text-align: center">
|
|
<el-button type="primary" @click="confirm">确认充值</el-button>
|
|
<el-button @click="cancel">取 消</el-button>
|
|
</div>
|
|
</el-tab-pane>
|
|
</el-tabs>
|
|
</template>
|
|
</el-dialog>
|
|
|
|
<!-- 确认充值-->
|
|
<el-dialog :close-on-click-modal="false" :title="title" :visible.sync="openConfirm" width="500px" append-to-body>
|
|
<div style="text-align: center;font-size: 15px;font-weight: bold">付款金额</div>
|
|
<div style="text-align: center;font-size: 30px;font-weight: bold;color: red;margin: 10px 0">
|
|
¥300.00
|
|
<el-tag
|
|
effect="dark">
|
|
汽油
|
|
</el-tag>
|
|
</div>
|
|
<div style="text-align: center;margin-bottom: 10px">赠送金额</div>
|
|
<div>
|
|
<el-input placeholder="扫描或输入付款码、支持微信、支付宝、云闪付">
|
|
<i
|
|
slot="suffix">
|
|
<svg t="1697791915471" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1479" width="32" height="32"><path d="M149.333333 170.858667A21.546667 21.546667 0 0 1 170.858667 149.333333H384V106.666667H170.858667A64.213333 64.213333 0 0 0 106.666667 170.858667V384h42.666666V170.858667zM170.858667 874.666667A21.546667 21.546667 0 0 1 149.333333 853.141333V640H106.666667v213.141333A64.213333 64.213333 0 0 0 170.858667 917.333333H384v-42.666666H170.858667zM853.12 149.333333A21.546667 21.546667 0 0 1 874.666667 170.858667V384h42.666666V170.858667A64.213333 64.213333 0 0 0 853.141333 106.666667H640v42.666666h213.141333zM874.666667 853.141333A21.546667 21.546667 0 0 1 853.141333 874.666667H640v42.666666h213.141333A64.213333 64.213333 0 0 0 917.333333 853.141333V640h-42.666666v213.141333zM106.666667 490.666667h810.666666v42.666666H106.666667v-42.666666z" fill="#3D3D3D" p-id="1480"></path></svg>
|
|
</i>
|
|
</el-input>
|
|
</div>
|
|
<div class="demo-image">
|
|
<div class="block" style="text-align: center">
|
|
<el-image
|
|
style="width: 200px; height: 200px"
|
|
fit="cover"
|
|
src="https://oil.wudb.cn/static/img/scan-demo.fcb8b1ab.png"></el-image>
|
|
</div>
|
|
</div>
|
|
<el-divider></el-divider>
|
|
<div style="display: flex;justify-content: space-around">
|
|
<el-button @click="cancelCollection">取消收款</el-button>
|
|
<el-button type="primary">确定收款</el-button>
|
|
</div>
|
|
</el-dialog>
|
|
|
|
<!-- 更换手机号对话框-->
|
|
<el-dialog :close-on-click-modal="false" :title="title" :visible.sync="openMobile" style="margin-top: 200px" width="500px" append-to-body>
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<el-form-item label="新手机号" prop="mobile" style="width: 420px">
|
|
<el-input v-model="form.mobile" placeholder="请输入新手机号" maxlength="30" />
|
|
<span style="font-size: 12px;color: grey">
|
|
手机号更换后,旧手机号将无法使用,更换后实时生效
|
|
</span>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
<div slot="footer" class="dialog-footer">
|
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
|
<el-button @click="cancel">取 消</el-button>
|
|
</div>
|
|
</el-dialog>
|
|
|
|
<!-- 副卡管理-->
|
|
<el-dialog :close-on-click-modal="false" :title="title" :visible.sync="openSecondCard" width="60%" append-to-body>
|
|
<div style="display: flex;justify-content: space-between;margin: 10px 0">
|
|
<div style="font-size: 16px">副卡账户</div>
|
|
<el-button type="primary">创建副卡账户</el-button>
|
|
</div>
|
|
<div>
|
|
<el-alert
|
|
type="error"
|
|
title="关于副卡"
|
|
:closable="false">
|
|
<p v-for="(item,index) in aboutSecondCard" :id="index">
|
|
{{item}}
|
|
</p>
|
|
</el-alert>
|
|
</div>
|
|
<div>
|
|
<el-table ref="tables" v-loading="loading" :data="list">
|
|
<el-table-column prop="date" label="账户ID"/>
|
|
<el-table-column prop="date" label="账户名称"/>
|
|
<el-table-column label="余额">
|
|
<el-table-column prop="name" label="储值卡"/>
|
|
<el-table-column prop="address" label="升数卡"/>
|
|
</el-table-column>
|
|
<el-table-column label="会员等级">
|
|
<el-table-column prop="name" label="汽油"/>
|
|
<el-table-column prop="address" label="柴油"/>
|
|
</el-table-column>
|
|
<el-table-column label="统计">
|
|
<el-table-column prop="name" label="可用积分"/>
|
|
<el-table-column prop="address" label="消费次数"/>
|
|
</el-table-column>
|
|
<el-table-column prop="date" label="实体卡号"/>
|
|
<el-table-column prop="date" label="状态"/>
|
|
<el-table-column prop="date" label="创建时间"/>
|
|
</el-table>
|
|
|
|
<pagination
|
|
:total="total"
|
|
:page.sync="queryParams.page"
|
|
:limit.sync="queryParams.pageSize"
|
|
@pagination="getList"
|
|
/>
|
|
</div>
|
|
</el-dialog>
|
|
|
|
<!-- 绑定实体卡-->
|
|
<el-dialog :close-on-click-modal="false" :title="title" width="450px" :visible.sync="openBindIdCard" append-to-body>
|
|
<div style="text-align: center">
|
|
<img v-if="form.avatar" :src="form.avatar" style="width: 80px;height: 80px">
|
|
<img v-else src="@/assets/images/avatar.png" style="width: 80px;height: 80px">
|
|
</div>
|
|
<p class="idcard" style="color: #00afff">{{form.name}}</p>
|
|
<p class="idcard" style="font-size: 16px">{{form.mobile}}</p>
|
|
<p class="idcard" style="font-size: 16px">请绑定实体卡号</p>
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
|
<div style="width: 80%;margin: 0 auto">
|
|
<el-input v-model="form.idcard" placeholder="请读卡或输入卡号"></el-input>
|
|
<p style="font-size: 12px;color: grey;">实体卡号最低5位且不可重复、绑定后不可删除、如需更换卡号请在会员详情页面内进行卡片重新绑定</p>
|
|
</div>
|
|
</el-form>
|
|
<div slot="footer" class="dialog-footer">
|
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
|
<el-button @click="cancel">取 消</el-button>
|
|
</div>
|
|
</el-dialog>
|
|
|
|
<!-- 子卡管理-->
|
|
<el-dialog :close-on-click-modal="false" width="60%" :title="title" :visible.sync="openSubCard" append-to-body>
|
|
<el-tabs v-model="subCardActive" @tab-click="handleClick">
|
|
<el-tab-pane label="子卡管理" name="subCardManage">
|
|
<div style="display: flex;justify-content: space-between;margin: 10px 0">
|
|
<div style="font-size: 16px">会员信息:{{form.mobile}}</div>
|
|
<el-button type="primary">新增子卡</el-button>
|
|
</div>
|
|
<div>
|
|
<el-table ref="tables" v-loading="loading" :data="list">
|
|
<el-table-column prop="date" label="子卡卡号"/>
|
|
<el-table-column label="基础信息">
|
|
<el-table-column prop="name" label="子卡姓名"/>
|
|
<el-table-column prop="address" label="手机号"/>
|
|
<el-table-column prop="address" label="车牌号"/>
|
|
</el-table-column>
|
|
<el-table-column label="额度管理">
|
|
<el-table-column prop="name" label="配额额度"/>
|
|
<el-table-column prop="address" label="已用额度"/>
|
|
<el-table-column prop="address" label="可用额度"/>
|
|
</el-table-column>
|
|
<el-table-column prop="date" label="状态"/>
|
|
<el-table-column prop="date" label="操作"/>
|
|
</el-table>
|
|
|
|
<pagination
|
|
:total="total"
|
|
:page.sync="queryParams.page"
|
|
:limit.sync="queryParams.pageSize"
|
|
@pagination="getList"
|
|
/>
|
|
</div>
|
|
<el-alert
|
|
title="关于子卡"
|
|
type="info"
|
|
description="子卡为会员子母卡功能,子卡共享母卡的储值额度及信息,子卡为实体会员卡信息,消费需在PC或手持机中才可进行使用">
|
|
</el-alert>
|
|
</el-tab-pane>
|
|
<el-tab-pane label="子卡消费记录" name="consumption">
|
|
<div style="display: flex;justify-content: space-between;margin: 10px 0">
|
|
<div style="font-size: 16px">
|
|
<el-form ref="form" :model="subCardList" :rules="rules" label-width="120px">
|
|
<el-row>
|
|
<el-col :span="8">
|
|
<el-form-item label="子卡卡号" prop="userNo">
|
|
<el-input
|
|
v-model="subCardList.idCard"
|
|
placeholder="请输入卡号信息"
|
|
clearable
|
|
/>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-form-item label="关联单号">
|
|
<el-input
|
|
v-model="subCardList.orderId"
|
|
placeholder="关联单号信息"
|
|
clearable
|
|
/>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-form-item>
|
|
<el-button type="primary">新增子卡</el-button>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<el-table ref="tables" v-loading="loading" :data="list">
|
|
<el-table-column prop="date" label="子卡卡号"/>
|
|
<el-table-column prop="date" label="消费金额"/>
|
|
<el-table-column label="消费信息">
|
|
<el-table-column prop="name" label="关联单号"/>
|
|
<el-table-column prop="address" label="描述信息"/>
|
|
</el-table-column>
|
|
<el-table-column prop="date" label="消费时间"/>
|
|
</el-table>
|
|
|
|
<pagination
|
|
:total="total"
|
|
:page.sync="queryParams.page"
|
|
:limit.sync="queryParams.pageSize"
|
|
@pagination="getList"
|
|
/>
|
|
</div>
|
|
<el-alert
|
|
title="关于子卡"
|
|
type="info"
|
|
description="当前会员的所有子卡消费记录信息,可根据对应子卡卡号进行检索查询">
|
|
</el-alert>
|
|
</el-tab-pane>
|
|
</el-tabs>
|
|
</el-dialog>
|
|
|
|
<!-- 每日交易次数-->
|
|
<el-dialog :close-on-click-modal="false" :title="title" :visible.sync="openConfig" style="margin-top: 200px" width="400px" append-to-body>
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<div style="margin-bottom: 20px">
|
|
{{transaction}}
|
|
</div>
|
|
<el-input v-model="config" />
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
<div slot="footer" class="dialog-footer">
|
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
|
<el-button @click="cancel">取 消</el-button>
|
|
</div>
|
|
</el-dialog>
|
|
|
|
<!-- 固定等级-->
|
|
<el-dialog :close-on-click-modal="false" :title="title" :visible.sync="openLevel" style="margin-top: 200px" width="500px" append-to-body>
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<el-form-item label="变更认证" prop="fixingLevel" style="width: 420px">
|
|
<el-select
|
|
v-model="form.fixingLevel"
|
|
clearable
|
|
style="width: 240px"
|
|
>
|
|
<el-option
|
|
v-for="dict in dict.type.zcrzdj"
|
|
:key="dict.value"
|
|
:label="dict.label"
|
|
:value="dict.value"
|
|
/>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
<div slot="footer" class="dialog-footer">
|
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
|
<el-button @click="cancel">取 消</el-button>
|
|
</div>
|
|
</el-dialog>
|
|
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import {getUser, updateUser} from "@/api/staff/user/user";
|
|
import {ljStoreInfo} from "@/api/staff/store";
|
|
import {getUserGrade} from "@/api/staff/user/usergrade";
|
|
import {getSysConfig} from "@/api/staff/user/sysconfig";
|
|
import item from "../../layout/components/Sidebar/Item.vue";
|
|
|
|
export default {
|
|
computed: {
|
|
item() {
|
|
return item
|
|
}
|
|
},
|
|
dicts: ['official','zhzt','zcrzdj'],
|
|
data(){
|
|
return{
|
|
// 储值卡
|
|
storeCard:[
|
|
{recharge:300,give:3,refuelMoney:0,point:0},
|
|
{recharge:500,give:5},
|
|
{recharge:1000,give:10},
|
|
],
|
|
storeCardAmount:{
|
|
recharge:'',give:0,refuelMoney:0,point:0
|
|
},
|
|
// 升数卡
|
|
literCard:[
|
|
{liter:73.75,amount:500,lockPrice:6.78,point:50},
|
|
{liter:151.98,amount:1000,lockPrice:6.58,point:100},
|
|
{liter:318.47,amount:2000,lockPrice:6.28,point:200},
|
|
{liter:493.42,amount:3000,lockPrice:6.08,point:300},
|
|
{liter:896.06,amount:5000,lockPrice:5.58,point:500},
|
|
{liter:1968.50,amount:10000,lockPrice:5.08,point:1000},
|
|
],
|
|
// 充值金额
|
|
amount:'',
|
|
// 充值备注
|
|
rechargeDesc:'',
|
|
// 支付方式
|
|
payment:'扫码支付',
|
|
activeKey:0,
|
|
// 每日交易介绍
|
|
transaction:"",
|
|
config:'-1',
|
|
num:1,
|
|
// 操作类型
|
|
type:'add',
|
|
title:'',
|
|
// 是否显示修改对话框
|
|
openMobile: false,
|
|
openRecharge: false,
|
|
openSecondCard:false,
|
|
openBindIdCard:false,
|
|
openSubCard:false,
|
|
openConfig:false,
|
|
openLevel:false,
|
|
openConfirm:false,
|
|
growthValue:'whole',
|
|
cardList:'notUse',
|
|
tabPosition: 'giftCard',
|
|
balanceRecord: 'first',
|
|
tabOilType: '92',
|
|
// 关于副卡信息
|
|
aboutSecondCard:[],
|
|
// 遮罩层
|
|
loading: false,
|
|
id:'',
|
|
// 会员信息
|
|
form:{},
|
|
// 店铺信息
|
|
store:'',
|
|
// 会员等级信息
|
|
grade:'',
|
|
activeName: 'refuelOrder',
|
|
subCardActive:'subCardManage',
|
|
activeRecharge:'balance',
|
|
tableData:[],
|
|
total:0,
|
|
queryParams: {
|
|
page: 1,
|
|
pageSize: 10,
|
|
mobile: '',
|
|
id: '',
|
|
name: '',
|
|
status: '',
|
|
},
|
|
subCardList:[],
|
|
list: [],
|
|
// 表单校验
|
|
rules: {
|
|
mobile: [{ required: true, message: "请输入手机号", trigger: "blur" }],
|
|
type: [{ required: true, message: "请选择操作类型", trigger: "blur" }],
|
|
fixingLevel: [{ required: true, message: "请选择认证信息", trigger: "blur" }],
|
|
}
|
|
}
|
|
},
|
|
created() {
|
|
this.id = this.$route.query.id;
|
|
this.getUserInfo();
|
|
this.getInformation();
|
|
},
|
|
methods: {
|
|
// 更换手机号
|
|
replaceMobile(){
|
|
this.openMobile = true;
|
|
this.title = '更换手机号'
|
|
},
|
|
// 副卡管理
|
|
secondCard(){
|
|
this.openSecondCard = true;
|
|
this.title = this.form.secondCard+'-副卡账户管理'
|
|
},
|
|
// 实体卡绑定
|
|
bindIdCard(){
|
|
this.openBindIdCard = true;
|
|
this.title = '实体卡绑定'
|
|
},
|
|
// 子卡管理
|
|
subCard(){
|
|
this.openSubCard = true;
|
|
this.title = '子卡管理'
|
|
},
|
|
// 每日笔数
|
|
configuration(){
|
|
this.openConfig = true;
|
|
this.title = '每日交易次数'
|
|
},
|
|
// 固定等级
|
|
level(){
|
|
this.openLevel = true;
|
|
this.title = '固定等级(原专车认证)'
|
|
},
|
|
// 会员充值
|
|
userRecharge(){
|
|
this.openRecharge = true;
|
|
this.title = '会员充值'
|
|
},
|
|
// 确认充值
|
|
confirm(){
|
|
this.openConfirm = true;
|
|
this.title = this.payment
|
|
},
|
|
// 获取副卡信息
|
|
getInformation(){
|
|
getSysConfig('second_card').then(response => {
|
|
this.aboutSecondCard = response.data.split(";")
|
|
});
|
|
getSysConfig('transaction').then(response => {
|
|
this.transaction = response.data
|
|
});
|
|
},
|
|
getList(){
|
|
|
|
},
|
|
// 获取详情
|
|
getUserInfo(){
|
|
let _this = this;
|
|
// 获取会员详情
|
|
getUser(this.id).then(response => {
|
|
this.form = response.data;
|
|
this.getGrade(response.data.gradeId);
|
|
});
|
|
// 获取店铺详情
|
|
ljStoreInfo().then(response => {
|
|
this.store = response.data;
|
|
});
|
|
},
|
|
// 获取会员等级详情
|
|
getGrade(id){
|
|
getUserGrade(id).then(response => {
|
|
this.grade = response.data;
|
|
});
|
|
},
|
|
// 选择充值金额
|
|
recharge(index){
|
|
this.activeKey = index;
|
|
},
|
|
// 提交按钮
|
|
submitForm: function() {
|
|
this.$refs["form"].validate(valid => {
|
|
if (valid) {
|
|
if (this.form.id) {
|
|
updateUser(this.form).then(response => {
|
|
this.$modal.msgSuccess("修改成功");
|
|
this.openMobile = false;
|
|
this.openConfig = false;
|
|
this.openLevel = false;
|
|
this.openBindIdCard = false;
|
|
this.getUserInfo();
|
|
});
|
|
}
|
|
}
|
|
});
|
|
},
|
|
// 表单重置
|
|
reset() {
|
|
this.resetForm("form");
|
|
this.form= {}
|
|
},
|
|
// 取消按钮
|
|
cancel() {
|
|
this.openMobile = false;
|
|
this.openConfig = false;
|
|
this.openLevel = false;
|
|
this.openBindIdCard = false;
|
|
this.openRecharge = false;
|
|
},
|
|
cancelCollection(){
|
|
this.openConfirm = false;
|
|
},
|
|
handleClick(tab, event) {
|
|
// console.log(tab, event);
|
|
},
|
|
handleChange(value) {
|
|
// console.log(value);
|
|
},
|
|
// 返回
|
|
goBack() {
|
|
this.$router.back(-1);
|
|
}
|
|
// 积分表、储值卡详情表、积分详情表、储值卡表、储值卡模板表、用户储值卡关联表、
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.app-container{
|
|
width: 100%;
|
|
height: 100%;
|
|
background: #f6f8f9;
|
|
}
|
|
.left{
|
|
width: 20%;
|
|
display: table-cell;
|
|
/*垂直居中 */
|
|
vertical-align: middle;
|
|
/*水平居中*/
|
|
text-align: center;
|
|
}
|
|
.right{
|
|
flex: 1;
|
|
}
|
|
.sta{
|
|
height: 100px;
|
|
margin-top: 10px;
|
|
padding-top: 30px;
|
|
}
|
|
.idcard{
|
|
text-align: center;
|
|
font-weight: bold
|
|
}
|
|
.mon{
|
|
width: 20%;
|
|
height: 50px;
|
|
border: 0.5px #dadfe6 solid;
|
|
line-height: 25px;
|
|
border-radius: 5px;
|
|
text-align: center;
|
|
margin: 0 10px;
|
|
}
|
|
.select {
|
|
position: relative;
|
|
background-color: #fff;
|
|
box-shadow: 0px 2px 7px 0px rgba(85, 110, 97, 0.35);
|
|
border-radius: 5px;
|
|
border: 1px solid #00aaff;
|
|
}
|
|
|
|
.select:before {
|
|
content: '';
|
|
position: absolute;
|
|
right: 0;
|
|
bottom: 0;
|
|
border: 10px solid #00aaff;
|
|
border-top-color: transparent;
|
|
border-left-color: transparent;
|
|
}
|
|
|
|
.select:after {
|
|
content: '';
|
|
width: 4px;
|
|
height: 6px;
|
|
position: absolute;
|
|
right: 4px;
|
|
bottom: 3px;
|
|
border: 2px solid #fff;
|
|
border-top-color: transparent;
|
|
border-left-color: transparent;
|
|
transform: rotate(45deg);
|
|
}
|
|
.amount{
|
|
color: #00afff;
|
|
}
|
|
.amount1{
|
|
color: #00afff;
|
|
font-size: 20px;
|
|
}
|
|
.top1{
|
|
font-size: 16px;
|
|
}
|
|
.jine{
|
|
width: 24%;
|
|
display: flex;
|
|
}
|
|
.bom{
|
|
font-size: 12px;
|
|
color: grey;
|
|
}
|
|
.zeng{
|
|
width: 95%;
|
|
line-height: 40px;
|
|
}
|
|
.mon2{
|
|
width: 20%;
|
|
height: 75px;
|
|
border: 0.5px #dadfe6 solid;
|
|
line-height: 25px;
|
|
border-radius: 5px;
|
|
text-align: center;
|
|
margin: 0 10px;
|
|
}
|
|
</style>
|