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-left">
<div class="center-vh"> <div class="center-vh">
<div class="center-left-top"> <div class="center-left-top">
<div class="vip-bottom" v-if="isMember == false" @click="dialogVisiblevip = true"> <!-- <div class="vip-bottom" v-if="isMember == false" @click="dialogVisiblevip = true">-->
<div>会员搜索</div> <!-- <div>会员搜索</div>-->
</div> <!-- </div>-->
<div v-else style="width: 96%;margin: 0 auto;display: flex;justify-content: space-between"> <!-- <div v-else style="width: 96%;margin: 0 auto;display: flex;justify-content: space-between">-->
<div <!-- <div-->
style="display: flex;color: white;justify-content: space-around;width: 55%; <!-- style="display: flex;color: white;justify-content: space-around;width: 55%;-->
height: 90%;border-radius: 10px; <!-- height: 90%;border-radius: 10px;-->
padding-top: 10px; <!-- padding-top: 10px;-->
background-color: rgb(67,119,204)"> <!-- background-color: rgb(67,119,204)">-->
<div> <!-- <div>-->
<template> <!-- <template>-->
<img v-if="member.avatar" class="list-avatar" :src="baseUrl + member.avatar"> <!-- <img v-if="member.avatar" class="list-avatar" :src="baseUrl + member.avatar">-->
<img v-else class="list-avatar" src="@/assets/images/avatar.png"> <!-- <img v-else class="list-avatar" src="@/assets/images/avatar.png">-->
</template> <!-- </template>-->
</div> <!-- </div>-->
<div style="text-align: center"> <!-- <div style="text-align: center">-->
<span style="margin-bottom: 10px">{{ member.name }}</span><br/> <!-- <span style="margin-bottom: 10px">{{ member.name }}</span><br/>-->
<span>{{ member.mobile }}</span> <!-- <span>{{ member.mobile }}</span>-->
</div> <!-- </div>-->
<div style="background-color: rgba(46,82,142,0.65);width: 50px;height: 45px;padding-top: 5px; <!-- <div style="background-color: rgba(46,82,142,0.65);width: 50px;height: 45px;padding-top: 5px;-->
border-radius: 5px;text-align: center"> <!-- border-radius: 5px;text-align: center">-->
<el-tooltip placement="top"> <!-- <el-tooltip placement="top">-->
<div slot="content"> <!-- <div slot="content">-->
<p>会员储值账户余额{{ member.cardBalance }}</p> <!-- <p>会员储值账户余额{{ member.cardBalance }}</p>-->
<p>积分余额{{ member.points }}</p> <!-- <p>积分余额{{ member.points }}</p>-->
</div> <!-- </div>-->
<i class="el-icon-bank-card" style="font-size: 35px"></i> <!-- <i class="el-icon-bank-card" style="font-size: 35px"></i>-->
</el-tooltip> <!-- </el-tooltip>-->
</div> <!-- </div>-->
<div style="background-color: rgba(46,82,142,0.65);width: 50px;height: 45px;padding-top: 5px; <!-- <div style="background-color: rgba(46,82,142,0.65);width: 50px;height: 45px;padding-top: 5px;-->
border-radius: 5px;text-align: center"> <!-- border-radius: 5px;text-align: center">-->
<el-tooltip placement="top"> <!-- <el-tooltip placement="top">-->
<div slot="content"> <!-- <div slot="content">-->
会员等级{{ gradeName }} <!-- 会员等级{{ gradeName }}-->
</div> <!-- </div>-->
<i class="el-icon-medal" style="font-size: 35px"></i> <!-- <i class="el-icon-medal" style="font-size: 35px"></i>-->
</el-tooltip> <!-- </el-tooltip>-->
</div> <!-- </div>-->
</div> <!-- </div>-->
<div class="vip-bottom" style="height: 40px;margin-top: 10px" @click="resetMember"> <!-- <div class="vip-bottom" style="height: 40px;margin-top: 10px" @click="resetMember">-->
<div>重置会员</div> <!-- <div>重置会员</div>-->
</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>
<div class="center-left-hj"> <div class="center-left-hj">
<div>使用积分</div> <div>使用积分</div>
<div>-{{allPoints}}</div> <div>-{{allPoints}}</div>
</div> </div>
<div class="center-left-hj">
<div>积分余额账户余额:318积分)</div>
<div>-{{allPoints}}</div>
</div>
<div class="center-left-hj" v-show="isMember"> <div class="center-left-hj" v-show="isMember">
<div> <div>
积分余额 积分余额
@ -72,7 +132,7 @@
<div class="bule">{{allPoints}}</div> <div class="bule">{{allPoints}}</div>
</div> </div>
<div class="th-box"> <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 style="cursor: pointer;color: crimson" @click="dialogVisible = true" >{{ staff.realName }}</div>
</div> </div>
</div> </div>
@ -105,13 +165,13 @@
</div> </div>
<!-- 右侧--> <!-- 右侧-->
<div class="center-right"> <div class="center-right">
<div class="center-right-top"> <div class="center-right-top" style="margin-left: 25px;">
<el-tabs v-model="queryParams.categoryId" @tab-click="handleClick"> <el-tabs v-model="queryParams.categoryId" style="width: 100%" @tab-click="handleClick">
<el-tab-pane label="全部" name='first'></el-tab-pane> <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-tab-pane v-for="(item,index) in giftCategoryList" :label="item.categoryName" :name='item.id.toString()'></el-tab-pane>
</el-tabs> </el-tabs>
</div> </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> <el-input v-model="queryParams.giftName" @input="getGift()" placeholder="请输入内容"></el-input>
</div> </div>
<div class="wrap-right"> <div class="wrap-right">
@ -152,7 +212,7 @@
<div class="ddjil" @click="orderHistoryMethod">订单记录</div> <div class="ddjil" @click="orderHistoryMethod">订单记录</div>
<div class="gwuc" @click="shoppingCartMethod()"> <div class="gwuc" @click="shoppingCartMethod()">
<el-badge :hidden="markPurchasesAll<1" :value="markPurchasesAll" class="item"> <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> </el-badge>
</div> </div>
</div> </div>
@ -450,7 +510,7 @@ import {
import BigNumber from 'bignumber.js'; import BigNumber from 'bignumber.js';
import PointsCashier from "@/views/cashier/NewComponents/integralOrder/pointsCashier"; import PointsCashier from "@/views/cashier/NewComponents/integralOrder/pointsCashier";
import {getDicts} from "@/api/dict/data"; 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 {getUserGrade, listUserGrade} from "@/api/cashier/usergrade";
import {queryStaffs, staffInfo} from "@/api/cashier/staff"; import {queryStaffs, staffInfo} from "@/api/cashier/staff";
import {connectFlag, getLodop} from "@/api/LodopFuncs"; import {connectFlag, getLodop} from "@/api/LodopFuncs";
@ -463,8 +523,9 @@ import {getReturnCode, printIntegralReport, sendPrintIndex} from "@/api/print";
dict: [], dict: [],
data(){ data(){
return{ return{
userMobile:null,
seekZero :0, seekZero :0,
userInfo: false,
baseUrl:process.env.VUE_APP_BASE_API, baseUrl:process.env.VUE_APP_BASE_API,
shoppingCart:[], shoppingCart:[],
giftList:'', giftList:'',
@ -708,6 +769,16 @@ import {getReturnCode, printIntegralReport, sendPrintIndex} from "@/api/print";
this.dialogVisibleMember = true; 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){ // getGrade(id){
// getUserGrade(id).then( response => { // getUserGrade(id).then( response => {
@ -1342,7 +1413,9 @@ import {getReturnCode, printIntegralReport, sendPrintIndex} from "@/api/print";
display: flex; display: flex;
box-sizing: border-box; box-sizing: border-box;
padding: 10px; padding: 10px;
padding-top: 20px;
height: 100vh; height: 100vh;
justify-content: space-between;
} }
.center-left{ .center-left{
width: 33%; width: 33%;
@ -1350,6 +1423,7 @@ import {getReturnCode, printIntegralReport, sendPrintIndex} from "@/api/print";
overflow: hidden; overflow: hidden;
height: 98vh; height: 98vh;
position: relative; position: relative;
margin-left: 15px;
} }
.bottom-posi{ .bottom-posi{
width: 100%; width: 100%;
@ -1364,7 +1438,7 @@ import {getReturnCode, printIntegralReport, sendPrintIndex} from "@/api/print";
} }
.center-right{ .center-right{
width: 65%; width: 64%;
border-radius: 8px; border-radius: 8px;
overflow: hidden; overflow: hidden;
margin: 0px 10px; margin: 0px 10px;
@ -1535,27 +1609,14 @@ import {getReturnCode, printIntegralReport, sendPrintIndex} from "@/api/print";
width: 31%; width: 31%;
background: #ffffff; background: #ffffff;
border-radius: 8px; border-radius: 8px;
height: 80px; height: 44px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
margin-bottom: 10px; 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{ .wrap-box2{
background: #30a1ff !important; background: #30a1ff !important;
color: white; color: white;
@ -1666,6 +1727,8 @@ import {getReturnCode, printIntegralReport, sendPrintIndex} from "@/api/print";
overflow: auto; overflow: auto;
} }
.ts-box{ .ts-box{
box-sizing: border-box;
padding: 0px 15px;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
} }
@ -1776,4 +1839,68 @@ import {getReturnCode, printIntegralReport, sendPrintIndex} from "@/api/print";
height: 98vh; height: 98vh;
position: relative; 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> </style>

View File

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

View File

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