This commit is contained in:
DESKTOP-369JRHT\12997 2024-10-10 15:07:52 +08:00
parent 6341a4b932
commit 94fb9e5b34
3 changed files with 218 additions and 94 deletions

View File

@ -4,60 +4,120 @@
<div class="center-left">
<div class="center-vh">
<div class="center-left-top">
<div class="vip-bottom" v-if="isMember == false" @click="dialogVisiblevip = true">
<div>会员搜索</div>
</div>
<div v-else style="width: 96%;margin: 0 auto;display: flex;justify-content: space-between">
<div
style="display: flex;color: white;justify-content: space-around;width: 55%;
height: 90%;border-radius: 10px;
padding-top: 10px;
background-color: rgb(67,119,204)">
<div>
<template>
<img v-if="member.avatar" class="list-avatar" :src="baseUrl + member.avatar">
<img v-else class="list-avatar" src="@/assets/images/avatar.png">
</template>
</div>
<div style="text-align: center">
<span style="margin-bottom: 10px">{{ member.name }}</span><br/>
<span>{{ member.mobile }}</span>
</div>
<div style="background-color: rgba(46,82,142,0.65);width: 50px;height: 45px;padding-top: 5px;
border-radius: 5px;text-align: center">
<el-tooltip placement="top">
<div slot="content">
<p>会员储值账户余额{{ member.cardBalance }}</p>
<p>积分余额{{ member.points }}</p>
</div>
<i class="el-icon-bank-card" style="font-size: 35px"></i>
</el-tooltip>
</div>
<div style="background-color: rgba(46,82,142,0.65);width: 50px;height: 45px;padding-top: 5px;
border-radius: 5px;text-align: center">
<el-tooltip placement="top">
<div slot="content">
会员等级{{ gradeName }}
</div>
<i class="el-icon-medal" style="font-size: 35px"></i>
</el-tooltip>
</div>
</div>
<div class="vip-bottom" style="height: 40px;margin-top: 10px" @click="resetMember">
<div>重置会员</div>
</div>
</div>
<!-- <div class="vip-bottom" v-if="isMember == false" @click="dialogVisiblevip = true">-->
<!-- <div>会员搜索</div>-->
<!-- </div>-->
<!-- <div v-else style="width: 96%;margin: 0 auto;display: flex;justify-content: space-between">-->
<!-- <div-->
<!-- style="display: flex;color: white;justify-content: space-around;width: 55%;-->
<!-- height: 90%;border-radius: 10px;-->
<!-- padding-top: 10px;-->
<!-- background-color: rgb(67,119,204)">-->
<!-- <div>-->
<!-- <template>-->
<!-- <img v-if="member.avatar" class="list-avatar" :src="baseUrl + member.avatar">-->
<!-- <img v-else class="list-avatar" src="@/assets/images/avatar.png">-->
<!-- </template>-->
<!-- </div>-->
<!-- <div style="text-align: center">-->
<!-- <span style="margin-bottom: 10px">{{ member.name }}</span><br/>-->
<!-- <span>{{ member.mobile }}</span>-->
<!-- </div>-->
<!-- <div style="background-color: rgba(46,82,142,0.65);width: 50px;height: 45px;padding-top: 5px;-->
<!-- border-radius: 5px;text-align: center">-->
<!-- <el-tooltip placement="top">-->
<!-- <div slot="content">-->
<!-- <p>会员储值账户余额{{ member.cardBalance }}</p>-->
<!-- <p>积分余额{{ member.points }}</p>-->
<!-- </div>-->
<!-- <i class="el-icon-bank-card" style="font-size: 35px"></i>-->
<!-- </el-tooltip>-->
<!-- </div>-->
<!-- <div style="background-color: rgba(46,82,142,0.65);width: 50px;height: 45px;padding-top: 5px;-->
<!-- border-radius: 5px;text-align: center">-->
<!-- <el-tooltip placement="top">-->
<!-- <div slot="content">-->
<!-- 会员等级{{ gradeName }}-->
<!-- </div>-->
<!-- <i class="el-icon-medal" style="font-size: 35px"></i>-->
<!-- </el-tooltip>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="vip-bottom" style="height: 40px;margin-top: 10px" @click="resetMember">-->
<!-- <div>重置会员</div>-->
<!-- </div>-->
<!-- </div>-->
<!---->
<div class="o-top" v-if="userInfo">
<div style="width: 50%">
<div class="d-s">
<img src="./imgs/new_user.png" style="width: 32px;height: 32px;margin-right: 10px">
<div >
<div style="font-weight: bold;margin-bottom: 2px">{{chooseVipUser.name||'匿名'}}</div>
<div class="d-s">
<span>{{chooseVipUser.mobile}}</span>
<sapn style="margin: 0px 5px">普通会员</sapn>
<el-popover
placement="bottom"
trigger="hover">
<div> 储值卡1000.00 </div>
<div> 储值卡1000.00 </div>
<div> 储值卡1000.00 </div>
<div> 储值卡1000.00 </div>
<div> 储值卡1000.00 </div>
<img slot="reference" src="./imgs/kbao.png" style="width: 24px;height: 24px;margin-right: 10px">
</el-popover>
</div>
</div>
</div>
<!-- <div class="d-s" >-->
<!-- <div style="font-size: 12px;margin-right: 5px">储值卡{{chooseVipUser.cardBalance}} </div>-->
<!-- <div style="font-size: 12px">囤油卡1000.000</div>-->
<!-- </div>-->
</div>
<div class="d-s" style="width: 50%">
<div class="an_bor" @click="addMemberRecharge()">会员充值</div>
<div class="an_bor" @click="restVipUser">重置会员</div>
<div class="an_bor" @click="addFreeTicket()" >赠送优惠券</div>
</div>
</div>
<div class="o-top" v-if="!userInfo">
<div class="left_input">
<el-autocomplete
v-model="userMobile"
style="width: 95%; "
:fetch-suggestions="getUsers"
placeholder="请输入会员手机号"
>
<template slot-scope="{ item }">
<div class="name" @click="chooseUser(item)">{{ item.name+" "+item.mobile }}</div>
</template>
</el-autocomplete>
<i class="el-icon-search" style="font-size: 18px;margin-right: 10px" ></i>
</div>
<div class="d-s">
<div class="an_bor" @click="addVip()">新增会员</div>
</div>
<!-- 渲染会员列表 -->
<div class="taber-box" v-for="(item,index) in vipUserList" :key="index">
<div class="goods_name">
<!-- <img src="../../../assets/images/goods.png" style="width: 30px;height: 30px">-->
{{ item.name }}
</div>
</div>
</div>
</div>
<div class="center-left-hj">
<div>使用积分</div>
<div>-{{allPoints}}</div>
</div>
<div class="center-left-hj">
<div>积分余额账户余额:318积分)</div>
<div>-{{allPoints}}</div>
</div>
<div class="center-left-hj" v-show="isMember">
<div>
积分余额
@ -72,7 +132,7 @@
<div class="bule">{{allPoints}}</div>
</div>
<div class="th-box">
<div @click="dialogVisible = true">加油</div>
<div @click="dialogVisible = true">操作</div>
<div style="cursor: pointer;color: crimson" @click="dialogVisible = true" >{{ staff.realName }}</div>
</div>
</div>
@ -105,13 +165,13 @@
</div>
<!-- 右侧-->
<div class="center-right">
<div class="center-right-top">
<el-tabs v-model="queryParams.categoryId" @tab-click="handleClick">
<div class="center-right-top" style="margin-left: 25px;">
<el-tabs v-model="queryParams.categoryId" style="width: 100%" @tab-click="handleClick">
<el-tab-pane label="全部" name='first'></el-tab-pane>
<el-tab-pane v-for="(item,index) in giftCategoryList" :label="item.categoryName" :name='item.id.toString()'></el-tab-pane>
</el-tabs>
</div>
<div style="width: 200px;margin-left: 2%; ">
<div style="width: 200px;margin-left: 30px; ">
<el-input v-model="queryParams.giftName" @input="getGift()" placeholder="请输入内容"></el-input>
</div>
<div class="wrap-right">
@ -152,7 +212,7 @@
<div class="ddjil" @click="orderHistoryMethod">订单记录</div>
<div class="gwuc" @click="shoppingCartMethod()">
<el-badge :hidden="markPurchasesAll<1" :value="markPurchasesAll" class="item">
<i class="el-icon-shopping-cart-2"></i> <span style="margin-left: 5px">购物车1</span>
<i class="el-icon-shopping-cart-2"></i> <span style="margin-left: 5px">购物车</span>
</el-badge>
</div>
</div>
@ -450,7 +510,7 @@ import {
import BigNumber from 'bignumber.js';
import PointsCashier from "@/views/cashier/NewComponents/integralOrder/pointsCashier";
import {getDicts} from "@/api/dict/data";
import {getUserInfoMobile, getUserVoMobile, getUserVoName} from "@/api/cashier/user";
import {getUserInfoMobile, getUserVoMobile, getUserVoName, userListByPhone} from "@/api/cashier/user";
import {getUserGrade, listUserGrade} from "@/api/cashier/usergrade";
import {queryStaffs, staffInfo} from "@/api/cashier/staff";
import {connectFlag, getLodop} from "@/api/LodopFuncs";
@ -463,8 +523,9 @@ import {getReturnCode, printIntegralReport, sendPrintIndex} from "@/api/print";
dict: [],
data(){
return{
userMobile:null,
seekZero :0,
userInfo: false,
baseUrl:process.env.VUE_APP_BASE_API,
shoppingCart:[],
giftList:'',
@ -708,6 +769,16 @@ import {getReturnCode, printIntegralReport, sendPrintIndex} from "@/api/print";
this.dialogVisibleMember = true;
}
},
getUsers(queryString, cb){
userListByPhone({mobile:queryString}).then( response => {
if (response.data){
cb(response.data)
console.log(response.data,608)
}else {
this.$modal.msgError("会员信息不存在")
}
})
},
//
// getGrade(id){
// getUserGrade(id).then( response => {
@ -1342,7 +1413,9 @@ import {getReturnCode, printIntegralReport, sendPrintIndex} from "@/api/print";
display: flex;
box-sizing: border-box;
padding: 10px;
padding-top: 20px;
height: 100vh;
justify-content: space-between;
}
.center-left{
width: 33%;
@ -1350,6 +1423,7 @@ import {getReturnCode, printIntegralReport, sendPrintIndex} from "@/api/print";
overflow: hidden;
height: 98vh;
position: relative;
margin-left: 15px;
}
.bottom-posi{
width: 100%;
@ -1364,7 +1438,7 @@ import {getReturnCode, printIntegralReport, sendPrintIndex} from "@/api/print";
}
.center-right{
width: 65%;
width: 64%;
border-radius: 8px;
overflow: hidden;
margin: 0px 10px;
@ -1535,27 +1609,14 @@ import {getReturnCode, printIntegralReport, sendPrintIndex} from "@/api/print";
width: 31%;
background: #ffffff;
border-radius: 8px;
height: 80px;
height: 44px;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 10px;
border: 1px solid #00afff;
}
.wrap-box :hover{
/*background: #00afff !important;*/
width: 100%;
height: 100%;
border-radius: 8px;
height: 80px;
display: flex;
align-items: center;
justify-content: center;
border: 1px solid #00afff;
cursor: pointer;
/*color: white;*/
}
.wrap-box2{
background: #30a1ff !important;
color: white;
@ -1666,6 +1727,8 @@ import {getReturnCode, printIntegralReport, sendPrintIndex} from "@/api/print";
overflow: auto;
}
.ts-box{
box-sizing: border-box;
padding: 0px 15px;
display: flex;
flex-wrap: wrap;
}
@ -1776,4 +1839,68 @@ import {getReturnCode, printIntegralReport, sendPrintIndex} from "@/api/print";
height: 98vh;
position: relative;
}
.o-top {
width: 100%;
height: 80px;
background: #FF9655;
box-sizing: border-box;
padding: 15px;
display: flex;
align-items: center;
font-size: 14px;
color: #fff;
justify-content: space-between;
}
.d-s {
display: flex;
align-items: center;
}
.left_input {
width: 80%;
overflow: hidden;
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
border-radius: 8px;
color: white;
border: 1px solid #fff;
::v-deep.el-input__inner {
background: transparent !important;
border: transparent 1px solid;
color: #fff;
.el-input__placeholder{
color: #fff !important;
}
}
::v-deep input:-moz-placeholder,
::v-deep textarea:-moz-placeholder {
color: #fff;
}
::v-deep input:-ms-input-placeholder,
::v-deep textarea:-ms-input-placeholder {
color: #fff;
}
::v-deep input::-webkit-input-placeholder,
::v-deep textarea::-webkit-input-placeholder {
color: #fff ;
}
}
.an_bor {
box-sizing: border-box;
padding: 5px;
border: 1px solid #fff;
border-radius: 50px;
display: flex;
align-items: center;
font-size: 14px;
color: #FFFFFF;
justify-content: center;
margin: 0px 5px;
cursor: pointer;
}
</style>

View File

@ -3,17 +3,17 @@
<div class="app-containers">
<div class="top_new">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="100px">
<el-form-item label="" prop="giftName">
<el-form-item label="" prop="giftName">
<el-input
v-model="queryParams.orderNumber"
placeholder="交易单号1"
placeholder="交易单号"
clearable
style="width: 220px;"
style="width: 170px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="">
<el-select v-model="queryParams.status" style="width: 220px" placeholder="兑换状态" clearable>
<el-select v-model="queryParams.status" style="width: 170px" placeholder="兑换状态" clearable>
<el-option label="未支付" value="unpaid">未支付</el-option>
<el-option label="付款成功" value="paid">付款成功</el-option>
<el-option label="付款失败" value="payFail">付款失败</el-option>
@ -24,31 +24,33 @@
v-model="queryParams.mobile"
placeholder="手机号码"
clearable
style="width: 220px;"
style="width: 170px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="">
<el-date-picker
v-model="beginTime"
style="width: 220px"
style="width: 170px"
type="date"
placeholder="开始日期">
</el-date-picker>
<el-date-picker
v-model="endTime"
style="width: 220px"
style="width: 170px"
type="date"
placeholder="结束日期">
</el-date-picker>
</el-form-item>
</el-form>
<div style="display: flex;align-items: center;">
<div style="display: flex; height: 32px">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
<el-button type="primary" @click="exportExcelVip()">导出</el-button>
</div>
</div>
@ -329,9 +331,7 @@ export default {
text-align: left;
font-style: normal;
text-transform: none;
.nei {
width: 150px;
}
}
.size-bole{
height: 31px;
@ -364,6 +364,7 @@ export default {
height: 60px;
background: rgba(255,150,85,0.05);
border-radius: 6px 6px 6px 6px;
border: 1px solid #FF9655;
}
.top_new{
@ -371,11 +372,13 @@ export default {
justify-content: space-between;
background: #fff;
width: 98%;
margin: 5px auto;
margin: 0px auto;
border-radius: 8px;
box-sizing: border-box;
padding: 15px;
height: 64px;
padding: 0px 15px;
border-bottom: 1px solid #eceff1;
padding-bottom: 0px;
}
.cont_box{
background: #fff;

View File

@ -11,12 +11,8 @@
<div class="d-s">
<span>{{chooseVipUser.mobile}}</span>
<sapn style="margin: 0px 5px">普通会员</sapn>
<el-popover
placement="bottom"
trigger="hover">
<div> 储值卡1000.00 </div>
<div> 储值卡1000.00 </div>
@ -29,10 +25,10 @@
</div>
</div>
</div>
<div class="d-s" >
<div style="font-size: 12px;margin-right: 5px">储值卡{{chooseVipUser.cardBalance}} </div>
<div style="font-size: 12px">囤油卡1000.000</div>
</div>
<!-- <div class="d-s" >-->
<!-- <div style="font-size: 12px;margin-right: 5px">储值卡{{chooseVipUser.cardBalance}} </div>-->
<!-- <div style="font-size: 12px">囤油卡1000.000</div>-->
<!-- </div>-->
</div>
<div class="d-s" style="width: 50%">
@ -2164,8 +2160,6 @@ input {
border-radius: 8px;
color: white;
border: 1px solid #fff;
::v-deep.el-input__inner {
background: transparent !important;
border: transparent 1px solid;