Files
springboot_vue_xhs/web/src/views/business/cashier/cashierDesk.vue
2024-12-06 22:42:03 +08:00

1001 lines
34 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="app-container" style="border-box:box-sizing;">
<el-row :gutter="30">
<!-- 左侧菜单-->
<el-col :span="2">
<el-menu :default-active="menu" class="el-menu-vertical-demo" @select="leftMenuSelect">
<el-menu-item index="1">
<i class="el-icon-goods">普通收银</i>
</el-menu-item>
<el-menu-item :disabled="app.isEmpty(member.memberId)" index="2" style="border-top: none;">
<i class="el-icon-bank-card">开卡</i>
</el-menu-item>
<el-menu-item :disabled="app.isEmpty(memberCard.memberCardId)" index="3" style="border-top: none;">
<i class="el-icon-bank-card">续卡</i>
</el-menu-item>
</el-menu>
</el-col>
<el-col :span="13">
<!-- 中间 会员信息-->
<el-autocomplete
style="width: 35%"
popper-class="my-autocomplete"
v-model="querySearchStr"
:fetch-suggestions="querySearch"
placeholder="会员检索"
@select="handleMemberSelect">
<i
class="el-icon-search el-input__icon"
slot="prefix"
>
</i>
<template slot-scope="{ item }">
<div v-if="item.errorMsg">
{{item.errorMsg}}
</div>
<template v-else>
<div class="name">
<i class="el-icon-user"></i>
{{ item.memberName }}
</div>
<span class="addr">
<i class="el-icon-phone"></i>
{{ item.memberPhone }}
</span>
</template>
</template>
</el-autocomplete>
<el-autocomplete
style="width: 35%;margin-left: 50px;"
popper-class="my-autocomplete"
v-model="queryCardSearchStr"
:fetch-suggestions="queryCardSearch"
placeholder="会员卡号检索"
@select="handleMemberCardSelect">
<i
class="el-icon-search el-input__icon"
slot="prefix"
>
</i>
<template slot-scope="{ item }">
<div v-if="item.errorMsg">
{{item.errorMsg}}
</div>
<template v-else>
<div class="name">
<i class="el-icon-bank-card"></i>
{{ item.cardNo }}
</div>
<div class="name">
<i class="el-icon-user"></i>
{{ item.member.memberName }}
</div>
<span class="addr">
<i class="el-icon-phone"></i>
{{ item.member.memberPhone }}
</span>
</template>
</template>
</el-autocomplete>
<el-descriptions :column="2" border title="用户信息" v-if="member.memberId"
style="margin-top: 20px;margin-bottom: 20px;">
<el-descriptions-item :labelStyle="{ 'width': '80px' }" label="用户名">{{member.memberName}}
<el-button style="margin-left: 30px;" size="mini" type="success" plain @click="clearMember">重选</el-button>
</el-descriptions-item>
<el-descriptions-item :labelStyle="{ 'width': '80px' }" label="手机号">{{member.memberPhone}}
</el-descriptions-item>
<el-descriptions-item :span="2" :labelStyle="{ 'width': '80px' }" label="备注">
<el-input
type="textarea"
:rows="2"
placeholder="请输入内容"
v-model="member.remark">
</el-input>
</el-descriptions-item>
<el-descriptions-item :span="2" label="会员卡" :labelStyle="{ 'height': '100px' }">
<el-collapse v-if="app.isNotEmpty(memberCard.memberCardId)" v-model="collapseItem"
style="border-top: none;">
<el-collapse-item name="1">
<el-tag
slot="title"
class="el-tag"
@click="chooseMemberCard(item)"
type="danger"
effect="light">
卡号{{memberCard.cardNo}} 卡名{{ memberCard.cardName }} <br/>余额{{memberCard.amount}}
赠送金额{{memberCard.giveAmount}}
</el-tag>
<el-tag
class="el-tag"
@click="chooseMemberCard(item)"
v-for="item in memberCardList"
:key="item.memberCardId"
type="danger"
:effect="memberCard.memberCardId==item.memberCardId?'light':'plain'">
卡号{{item.cardNo}} 卡名{{ item.cardName }} <br/>余额{{item.amount}} 赠送金额{{item.giveAmount}}
</el-tag>
</el-collapse-item>
</el-collapse>
<span v-else class="info-text" style="cursor: pointer;" @click="menu = '2'">去开卡</span>
</el-descriptions-item>
</el-descriptions>
<el-descriptions border title="用户信息" v-else style="margin-top: 20px;margin-bottom: 20px;">
<el-descriptions-item label="用户名">散客
<el-button style="margin-left: 30px;" size="mini" type="success" plain @click="addMember">快速建档</el-button>
</el-descriptions-item>
</el-descriptions>
<!-- 中间 购物车信息-->
<div class="grid-content bg-purple">
<el-table
v-if="menu == '1'"
border
height="270"
max-height="270"
:data="shopCart"
style="width: 100%;margin-bottom: 20px;">
<el-table-column
align="center"
prop="categoryName"
label="分类"
width="100">
</el-table-column>
<el-table-column
align="center"
prop="productName"
label="商品名"
width="120"
>
</el-table-column>
<el-table-column
align="center"
prop="productAmount"
label="价格"
width="80"
>
<template slot-scope="scope">
<span v-if="app.isEmpty(member.memberId)" class="price-text">{{ scope.row.productAmount }}</span>
<span v-else="member.memberId" class="price-text">{{ scope.row.productMemberAmount }}</span>
</template>
</el-table-column>
<el-table-column
v-if="app.isNotEmpty(memberCard.memberCardId)"
align="center"
label="折扣"
width="80"
>
<template slot-scope="scope">
<span class="price-text">{{ scope.row.discount}}</span>
</template>
</el-table-column>
<el-table-column
align="center"
label="折后价"
width="80"
>
<template slot-scope="scope">
<span class="price-text">{{ scope.row.realAmount}}</span>
</template>
</el-table-column>
<el-table-column
align="center"
prop="count"
label="数量"
width="155"
>
<template slot-scope="scope">
<el-input-number size="mini" :min="0" :max="100" v-model="scope.row.count"
@change="handleShopCartChange($event,scope)"></el-input-number>
</template>
</el-table-column>
<el-table-column
align="center"
prop="totalRealAmount"
label="总金额"
width="80"
>
<template slot-scope="scope">
<span class="price-text">{{ scope.row.totalRealAmount }}</span>
</template>
</el-table-column>
<el-table-column
align="center"
label="关联员工"
>
<template slot-scope="scope">
<el-tag
v-for="tag in scope.row.serverList"
:key="tag.serverId"
closable
@close="handleServerClose(scope.row.serverList,index)"
type="warning">
{{tag.serverName}}
</el-tag>
<el-button size="mini" type="success" plain @click="addServer(scope.$index)">选择</el-button>
</template>
</el-table-column>
</el-table>
<el-table
v-if="menu == '2'"
border
height="200"
max-height="200"
:data="shopCart"
style="width: 100%;margin-bottom: 20px;">
<el-table-column
align="center"
prop="cardName"
label="卡名"
>
</el-table-column>
<el-table-column
align="center"
prop="cardNo"
label="设置卡号"
width="200"
>
<template slot-scope="scope">
<el-input placeholder="请输入卡号" v-model="scope.row.cardNo">
<!-- <template slot="append">.com</template>-->
</el-input>
</template>
</el-table-column>
<el-table-column
align="center"
prop="cardDiscount"
label="卡折扣"
>
</el-table-column>
<el-table-column
align="center"
prop="todos"
label="工本费"
>
</el-table-column>
<el-table-column
align="center"
prop="cardAmount"
label="开卡金额"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.cardAmount"
@keyup.native="app.clearNoNum"
placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column
align="center"
prop="giveAmount"
label="赠送金额"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.giveAmount"
@keyup.native="app.clearNoNum"
placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column
align="center"
label="关联员工"
>
<template slot-scope="scope">
<el-tag
v-for="tag in scope.row.serverList"
:key="tag.serverId"
closable
@close="handleServerClose(scope.row.serverList,index)"
type="warning">
{{tag.serverName}}
</el-tag>
<el-button size="mini" type="success" plain @click="addServer(scope.$index)">选择</el-button>
</template>
</el-table-column>
</el-table>
<el-table
v-if="menu == '3'"
border
height="200"
max-height="200"
:data="shopCart"
style="width: 100%;margin-bottom: 20px;">
<el-table-column
align="center"
prop="cardName"
label="卡名"
>
</el-table-column>
<el-table-column
align="center"
prop="cardNo"
label="设置卡号"
width="200"
>
</el-table-column>
<el-table-column
align="center"
prop="discount"
label="卡折扣"
>
</el-table-column>
<el-table-column
align="center"
prop="chargedCardAmount"
label="续卡金额"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.chargedCardAmount"
@keyup.native="app.clearNoNum"
placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column
align="center"
prop="chargedGiveAmount"
label="赠送金额"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.chargedGiveAmount"
@keyup.native="app.clearNoNum"
placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column
align="center"
label="关联员工"
>
<template slot-scope="scope">
<el-tag
v-for="tag in scope.row.serverList"
:key="tag.serverId"
closable
@close="handleServerClose(scope.row.serverList,index)"
type="warning">
{{tag.serverName}}
</el-tag>
<el-button size="mini" type="success" plain @click="addServer(scope.$index)">选择</el-button>
</template>
</el-table-column>
</el-table>
<el-divider></el-divider>
<div>
总金额: <span class="price-text">{{app.getFloatStr(getTotalRealAmount)}}</span>
</div>
<el-input placeholder="不填则自动生成" size="small " v-model="sellNo"
style="width: 300px;margin-bottom: 15px;margin-top: 10px;">
<template slot="prepend">订单号</template>
</el-input>
<el-row>
<el-button @click="pay" type="success">结算</el-button>
<el-button @click="pendingOrder" type="warning">挂单</el-button>
<el-button @click="takePendingOrder" type="primary">取单</el-button>
<pay-type ref="payTypeRef" @ok="getPayList"/>
</el-row>
</div>
</el-col>
<!-- 右侧商品卡项选择-->
<el-col :span="9">
<div class="grid-content bg-purple">
<el-tabs v-if="menu == 1" v-model="activeName" @tab-click="handleCategoryClick" type="border-card"
style="height: calc(100vh - 180px);width: 100%;overflow: scroll;overflow:hidden;">
<el-tab-pane
v-for="(item, index) in categoryList"
:key="item.categoryId"
:label="item.categoryName"
:name="item.categoryId"
>
<div>
<el-row :gutter="20" style="" v-if="productList.length>0">
<el-col @click.native="chooseProduct(item)" :span="8" v-for="item in productList"
:key="item.productId" style="margin-top: 10px;cursor: pointer;">
<el-card class="product-card" :body-style="{ padding: '0px' }" style="height: 210px;">
<div
style="height: 110px;display: flex;align-items: center;justify-content: center; box-sizing: border-box;">
<img style="width:85%;height: 90px;border-radius: 5px;border: 1px solid #eee;"
:src="baseUrl + item.productImageUrl" class="image"/>
</div>
<div style="padding:10px 0 0 10px;font-size: 16px;">
{{item.productName}} <br/><span style="font-size: 12px;" class="gray-text"
v-show="item.stockControl==1">库存{{item.productCount}}&nbsp;</span>
</div>
<div style="padding:5px 0 0 10px;">
<span style="font-size: 14px;"> 散客价 <span
class="price-text">¥ {{item.productAmount}}</span></span><br/>
<span style="font-size: 14px;"> 会员价 <span
class="price-text">¥ {{item.productMemberAmount}}</span></span>
</div>
</el-card>
</el-col>
</el-row>
<div v-else>
<el-empty description="该分类商品为空">
</el-empty>
</div>
</div>
</el-tab-pane>
</el-tabs>
<el-tabs v-if="menu == 2" v-model="cardActiveName" @tab-click="handleCardClick" type="border-card"
style="height: calc(100vh - 180px);width: 100%;overflow: scroll;overflow:hidden;">
<el-tab-pane
v-for="(item, index) in cardTypeList"
:key="item.cardType"
:label="item.cardName"
:name="item.cardType"
>
<div>
<el-row :gutter="20" style="" v-if="cardList.length>0">
<el-col @click.native="chooseCard(item)" :span="8" v-for="item in cardList" :key="item.cardId"
style="margin-top: 10px;cursor: pointer;">
<el-card class="product-card" :body-style="{ padding: '0px' }" style="height: 190px;">
<div
style="height: 110px;display: flex;align-items: center;justify-content: center; box-sizing: border-box;">
<i style="font-size:60px !important;border-radius: 5px;color: #409EFF;"
class="el-icon-bank-card"></i>
<!-- <img style="width:85%;height: 140px;border-radius: 5px;border: 1px solid #eee;" :src="baseUrl + item.productImageUrl" class="image"/>-->
</div>
<div style="padding:10px 0 0 10px;font-size: 16px;">
{{item.cardName}}
</div>
<div style="padding:5px 0 0 10px;">
<span style="font-size: 14px;"> 开卡金额 <span
class="price-text">¥ {{item.cardAmount}}</span></span><br/>
<span style="font-size: 14px;"> 赠送金额 <span
class="price-text">¥ {{item.giveAmount}}</span></span>
</div>
</el-card>
</el-col>
</el-row>
<div v-else>
<el-empty description="该分类商品为空">
</el-empty>
</div>
</div>
</el-tab-pane>
</el-tabs>
</div>
</el-col>
</el-row>
<choose-sell ref="chooseSellRef" @ok="getPendingSell"/>
<add-member ref="addMemberRef" @ok="getAddMember"/>
<choose-server ref="chooseServerRef" @ok="getServer"/>
</div>
</template>
<script>
import {addSelljson} from "@/api/business/sellJson/sellJson";
import addMember from "@/views/business/member/addMember";
import {accAdd, accMul, isEmpty, isNotEmpty, getFormattedTimeAsSerialNumber, getSelectObj, deepClone} from "@/utils";
import confirm from "@/utils/confirm";
import {getCategoryList} from "@/api/business/category/category";
import {getProductList} from "@/api/business/product/product";
import {getMemberList,getMemberSearchList} from "@/api/business/member/member";
import {getCardList} from "@/api/business/card/card";
import PayType from "@/views/business/cashier/payType";
import {buildCard, productPay, chargedCard} from "@/api/business/pay/pay";
import {getMemberCardList,getMemberCardSearchList} from "@/api/business/memberCard/memberCard";
import ChooseSell from "@/views/business/cashier/chooseSell";
import ChooseServer from "@/views/business/cashier/chooseServer";
export default {
name: "cashierDesk",
components: {ChooseServer, ChooseSell, PayType,addMember},
data() {
return {
//基础信息
menu: "",
cardTypeList: [
{cardType: "1", cardName: '折扣卡'}
],
categoryList: [],
cardList: [],
productList: [],
//商品分类当前激活菜单
activeName: "",
cardActiveName: "",
//会员信息
collapseItem: 1,
member: {},
memberCard: {},
memberCardList: [],
//搜索信息
querySearchStr: '',
queryCardSearchStr: '',
//结算相关
shopCart: [],
shopCartIndex:0,
sellNo: '',
//挂单id
pendingSellId: ''
}
},
mounted() {
//初始化 获取相关信息
this.getCategoryList()
this.getCardList()
this.menu = '1'
this.cardActiveName = this.cardTypeList[0].cardType
},
computed: {
//计算总支付金额
getTotalRealAmount() {
let totalRealAmount = 0;
if (this.shopCart.length == 0) {
return totalRealAmount;
}
if (this.menu == "1") {
for (let product of this.shopCart) {
const noMember = isEmpty(this.member.memberId)
let productTotalRealAmount
if (noMember) {
this.$set(product, 'realAmount', product.productAmount);
productTotalRealAmount = accMul(product.productAmount, product.count)
} else if (isNotEmpty(this.memberCard.memberCardId)) {
let realDiscount = accMul(this.memberCard.discount, 0.1);
this.$set(product, 'discount', realDiscount)
let realAmount = accMul(product.productMemberAmount, realDiscount);
this.$set(product, 'realAmount', realAmount)
productTotalRealAmount = accMul(realAmount, product.count)
} else {
this.$set(product, 'realAmount', product.productMemberAmount);
productTotalRealAmount = accMul(product.productMemberAmount, product.count)
}
this.$set(product, 'totalRealAmount', productTotalRealAmount)
totalRealAmount = accAdd(totalRealAmount, productTotalRealAmount);
}
} else if (this.menu == "2") {
let cardAmount = this.shopCart[0].cardAmount
let todos = this.shopCart[0].todos
totalRealAmount = accAdd(cardAmount, todos);
this.$set(this.shopCart[0], 'totalRealAmount', totalRealAmount)
} else if (this.menu == "3") {
totalRealAmount = this.shopCart[0].chargedCardAmount
this.$set(this.shopCart[0], 'totalRealAmount', totalRealAmount)
}
return totalRealAmount;
}
},
watch: {
//监听购物车改变 暂时没用到
shopCart(newVal, oldVal) {
let showCardList = newVal
console.log('这是监听属性新的')
},
//会员改变时 会员卡信同时改变
member(newVal, oldVal) {
console.log('这是监听属性新的')
console.log(newVal)
if (isEmpty(newVal.memberId)) {
console.log('member为空了')
this.memberCard = this.$options.data().memberCard
this.memberCardList = this.$options.data().memberCardList
//没有会员自然跳转到商品结算页
this.menu = '1'
}
//当会员切换时 清空购物车
// this.shopCart = this.$options.data().shopCart
}
},
methods: {
//添加会员
addMember(){
this.$refs.addMemberRef.open()
},
getAddMember(e){
this.member = e
},
clearMember() {
this.member = this.$options.data().member
this.shopCart = this.$options.data().shopCart
},
//搜索会员
querySearch(queryString, cb) {
if (queryString) {
getMemberSearchList({querySearch: queryString}).then(res => {
// 调用 callback 返回建议列表的数据
if(res.data.length>0){
cb(res.data);
}else{
cb([
{errorMsg: '暂无数据'}
])
}
})
} else {
cb([
{errorMsg: '暂无数据'}
])
}
},
handleMemberSelect(e) {
console.log(e)
this.member = e
this.getMemberCardList()
},
queryCardSearch(queryString, cb) {
if (queryString) {
getMemberCardSearchList({querySearch: queryString}).then(res => {
// 调用 callback 返回建议列表的数据
if(res.data.length>0){
cb(res.data);
}else{
cb([
{errorMsg: '暂无数据'}
])
};
})
} else {
cb([
{errorMsg: '暂无数据'}
])
}
},
handleMemberCardSelect(e) {
console.log(e)
this.member = e.member
this.getMemberCardList(e.memberCardId)
},
//获取基本信息
getCategoryList() {
getCategoryList({categoryStatus:0}).then(res => {
this.categoryList = res.data
if (this.categoryList.length > 0) {
this.activeName = this.categoryList[0].categoryId
getProductList({categoryId: this.activeName,productStatus:0}).then(res => {
this.productList = res.data
})
}
})
},
handleCategoryClick(e) {
//拿到分类id
const categoryId = e.name
getProductList({categoryId: categoryId}).then(res => {
this.productList = res.data
})
},
handleCardClick(e) {
},
getCardList() {
getCardList().then(res => {
this.cardList = res.data
})
},
chooseCard(e) {
let card = e;
let findCardIndex = this.shopCart.findIndex(p => p.cardId == card.cardId);
console.log(findCardIndex)
if (findCardIndex == -1) {
card.cardNo = getFormattedTimeAsSerialNumber()
this.shopCart.push(deepClone(card))
}
},
//选择商品添加购物车
chooseProduct(e) {
let product = e;
let findProductIndex = this.shopCart.findIndex(p => p.productId == product.productId);
console.log(findProductIndex)
if (findProductIndex == -1) {
this.$set(product, 'count', 1)
this.shopCart.push(product)
} else {
this.shopCart[findProductIndex].count += 1
}
console.log(this.shopCart)
},
handleShopCartChange(e, scope) {
console.log(e)
console.log(scope.$index)
if (e == 0) {
confirm('要删除该条目吗?').then(res => {
if (res) {
this.shopCart.splice(scope.$index, 1)
} else {
this.shopCart[scope.$index].count = 1
}
})
}
},
//获取某个会员下的所有会员卡 传入则选中目标卡项
getMemberCardList(memberCardId) {
if (isEmpty(this.member.memberId)) return
// 发送请求获取会员卡列表
getMemberCardList({memberId: this.member.memberId}).then(response => {
console.log('getMemberCardList===>' + response.data)
// 如果获取到的列表长度为 0
if (response.data.length == 0) {
// 恢复默认的会员卡列表和会员卡信息
this.memberCardList = this.$options.data().memberCardList
this.memberCard = this.$options.data().memberCard
} else {
// 设置获取到的会员卡列表
this.memberCardList = response.data
// 如果会员卡id不为空
if (isNotEmpty(memberCardId)) {
// 根据会员卡id获取选中的对象
const memberCard = getSelectObj(memberCardId, this.memberCardList, 'memberCardId')
this.memberCard = memberCard
} else {
// 否则设置为列表中的第一个会员卡
this.memberCard = this.memberCardList[0]
}
}
})
},
//选择某个会员卡
chooseMemberCard(item) {
this.memberCard = item
if (this.menu == '3') {
this.shopCart = this.$options.data().shopCart
let memberCard = this.memberCard;
let findCardIndex = this.shopCart.findIndex(p => p.meberCardId == memberCard.meberCardId);
console.log(findCardIndex)
if (findCardIndex == -1) {
//使用克隆 避免改变会员卡原始信息
this.shopCart.push(deepClone(memberCard))
}
}
},
//左侧菜单切换
leftMenuSelect(e) {
this.menu = e
//切换时清空购物车
this.shopCart = this.$options.data().shopCart
if (this.menu == '3') {
let memberCard = this.memberCard;
let findCardIndex = this.shopCart.findIndex(p => p.meberCardId == memberCard.meberCardId);
console.log(findCardIndex)
if (findCardIndex == -1) {
//使用克隆 避免改变会员卡原始信息
this.shopCart.push(deepClone(memberCard))
}
}
},
//打开支付页
pay() {
this.$refs.payTypeRef.open(this.getTotalRealAmount, this.memberCard, this.menu)
},
//商品页面支付完成
payDone(sell) {
//支付完成清空购物车
this.shopCart = this.$options.data().shopCart
this.sellNo = this.$options.data().sellNo
this.pendingSellId = this.$options.data().pendingSellId
this.member = {}
if (isNotEmpty(this.member.memberId)) {
//传入memberCardId 则默认选中
this.getMemberCardList(sell.memberCardId)
}
this.getCategoryList()
},
//充卡页面支付完成
payCardDone(sell) {
//支付完成清空购物车
this.shopCart = this.$options.data().shopCart
this.sellNo = this.$options.data().sellNo
this.pendingSellId = this.$options.data().pendingSellId
if (isNotEmpty(this.member.memberId)) {
//传入memberCardId 则默认选中
this.getMemberCardList(sell.memberCardId)
}
//支付完成跳转
this.menu = '1'
this.getCategoryList()
},
//打开取单
takePendingOrder() {
this.$refs.chooseSellRef.open()
},
addServer(shopCartIndex) {
this.$refs.chooseServerRef.open()
this.shopCartIndex = shopCartIndex
},
handleServerClose(serverList,index){
serverList.splice(index,1);
//取消选中状态
},
getServer(e){
console.log(e)
if(!this.shopCart[this.shopCartIndex].serverList){
this.$set(this.shopCart[this.shopCartIndex],'serverList',[])
}
this.shopCart[this.shopCartIndex].serverList = this.shopCart[this.shopCartIndex].serverList.concat(e)
},
getPendingSell(e) {
console.log(e)
const data = JSON.parse(e.sellJson)
Object.assign(this.$data, data)
this.pendingSellId = e.jsonId
//重新获取用户卡余额
this.getMemberCardList()
},
//保存挂单
handleAddSelljson() {
const data = {
sellJson: JSON.stringify(this.$data),
memberName: isEmpty(this.member.memberName) ? '散客' : this.member.memberName,
memberPhone: this.member.memberPhone,
//如果传入原始挂单id 则为修改
jsonId: this.pendingSellId
}
addSelljson(data).then(response => {
this.payDone()
})
},
pendingOrder() {
confirm("确定要挂单吗?挂单后稍后可继续结算").then(res => {
if (res) {
if (isNotEmpty(this.pendingSellId)) {
confirm('该订单已是待结算订单,继续则覆盖之前挂单信息?').then(res => {
if (res) {
this.handleAddSelljson()
}
})
} else {
this.handleAddSelljson()
}
}
})
},
//支付支付支付
getPayList(e) {
console.log(e)
console.log(this.$options.data())
//结算传输相关参数
//会员信息 开卡信息 支付信息
const pay = {
sellNo: '',
memberCardId: this.memberCard.memberCardId,
memberId: this.member.memberId,
memberName: this.member.memberName,
sellAmount: this.getTotalRealAmount,
sellPayList: e,
sellJson: JSON.stringify(this.$data),
jsonId: this.pendingSellId
}
if (this.menu == '1') {
pay.productFormList = this.shopCart
productPay(pay).then(response => {
console.log(response)
this.payDone(response.data)
})
}
//开卡续卡不刷新 可能会去结算
if (this.menu == '2') {
pay.buildCardForm = this.shopCart[0]
buildCard(pay).then(response => {
console.log(response)
this.payCardDone(response.data)
})
}
if (this.menu == '3') {
pay.chargedCardForm = this.shopCart[0]
chargedCard(pay).then(response => {
console.log(response)
this.payCardDone(response.data)
})
}
}
}
}
</script>
<style scoped>
::v-deep .el-tabs--border-card > .el-tabs__header .el-tabs__item {
height: 50px;
line-height: 50px;
font-size: 14px;
}
/*左侧菜单*/
.el-menu-vertical-demo {
border-right: none;
padding-left: 0;
width: 100%;
}
.el-menu-vertical-demo .el-menu-item {
padding: 0 16px !important;
border: 1px solid #eee;
}
.el-menu-vertical-demo .el-menu-item [class^=el-icon-] {
font-size: 15px !important;
}
/*会员卡*/
.el-tag {
white-space: normal;
height: auto;
margin: 5px;
cursor: pointer;
}
/*会员卡折叠无边框*/
::v-deep .el-collapse-item__header {
border-bottom: none;
}
::v-deep .el-collapse-item__content {
padding-top: 20px;
}
</style>