You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
783 lines
30 KiB
Vue
783 lines
30 KiB
Vue
<template>
|
|
<div>
|
|
<el-form inline style="min-height:50vh" label-width="80px">
|
|
<div class="flex justify-between align-center">
|
|
<div class="flex">
|
|
<el-form-item label="顾客类型:">
|
|
<div class="form-width-xs flex align-center">
|
|
<el-switch style="display: inline-block" v-model="form.cashNumber" active-color="#13ce66" inactive-color="#ff4949" @change="sumMoney">
|
|
</el-switch>
|
|
<div class="padding-left-xs">{{form.cashNumber?'会员':'散客'}}</div>
|
|
</div>
|
|
</el-form-item>
|
|
<el-form-item label="手机号码:">
|
|
<el-input v-if="!form.cashNumber" maxlength="11" type="number" class="form-width-ms" v-model="form.mobilePhone"></el-input>
|
|
<div v-else class="form-width text-cyan">
|
|
<el-input maxlength="11" v-model="form.mobilePhone" @change="query" @blur="query">
|
|
<el-button size="mini" slot="append" icon="el-icon-search" @click="openMember"></el-button>
|
|
</el-input>
|
|
</div>
|
|
</el-form-item>
|
|
<el-form-item label="名字:">
|
|
<el-input v-if="!form.cashNumber" class="form-width-ms border-only-bottom border" v-model="form.memberName"></el-input>
|
|
<div v-else class="form-width-xs">
|
|
{{form.memberName}}
|
|
<i v-if="form.sex==1" class="el-icon-male text-blue"></i>
|
|
<i v-if="form.sex==0" class="el-icon-female text-pink"></i>
|
|
</div>
|
|
</el-form-item>
|
|
<!-- <el-form-item label="手工单号:">
|
|
<el-input class="form-width-ms border-only-bottom border" v-model="form.orderNums"></el-input>
|
|
</el-form-item> -->
|
|
<el-form-item label="男客:">
|
|
<el-input-number class="form-width-xs" size="small" v-model="form.man" :min="0" :max="10" label="男客数量"></el-input-number>
|
|
</el-form-item>
|
|
<el-form-item label="女客:">
|
|
<el-input-number class="form-width-xs" size="small" v-model="form.woman" :min="0" :max="10" label="女客数量"></el-input-number>
|
|
</el-form-item>
|
|
</div>
|
|
<div>
|
|
<!-- <el-form-item label="单据日期:">
|
|
<el-input class="form-width-ms border-only-bottom border" v-model="form.orderDate"></el-input>
|
|
</el-form-item> -->
|
|
<!-- <el-form-item label="单据号:">
|
|
<el-input class="form-width-ms border-only-bottom border" v-model="form.orderNum"></el-input>
|
|
</el-form-item> -->
|
|
</div>
|
|
</div>
|
|
<el-table :data="list" border :row-class-name="rowClassName" stripe style="width: 100%" :header-cell-style=" {background: 'linear-gradient(#6cb3ff, #1873d4)' , color: '#eeeeee' , }">
|
|
<el-table-column align="center" prop="projectNum" label="编码" min-width="80" show-overflow-tooltip></el-table-column>
|
|
<el-table-column align="center" prop="projectName" label="名称" min-width="100" show-overflow-tooltip></el-table-column>
|
|
<el-table-column align="center" prop="transactionPrice" label="价格" min-width="70" show-overflow-tooltip>
|
|
<template slot-scope="scope">
|
|
<div>
|
|
<span class="text-red text-price">{{scope.row.transactionPrice }}</span>
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" prop="numberTimes" label="数量" min-width="89" show-overflow-tooltip>
|
|
<!-- <template slot-scope="scope">
|
|
<el-input-number style="width:80px" v-model="scope.row.numberTimes" size="mini" :min="1" :max="10" label="数量"></el-input-number>
|
|
</template> -->
|
|
</el-table-column>
|
|
<el-table-column align="center" prop="amount" label="总价格" min-width="80" show-overflow-tooltip>
|
|
<template slot-scope="scope">
|
|
<div>
|
|
<span class="text-red text-price">{{scope.row.amount }}</span>
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
|
|
<el-table-column align="center" prop="noDiscount" label="卡付打折" min-width="70" show-overflow-tooltip>
|
|
<template slot-scope="scope">
|
|
{{
|
|
scope.row.noDiscount == 0 ? "是" : scope.row.noDiscount == 1?'否':"未设"
|
|
}}
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" prop="renew" label="加钟" min-width="80" show-overflow-tooltip>
|
|
<template slot-scope="scope">
|
|
<el-switch disabled v-model="scope.row.renew==1?true:false" @change="renewChange($event,scope.row,scope.$index)">
|
|
</el-switch>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" prop="isClock" label="点牌" min-width="80" show-overflow-tooltip>
|
|
<template slot-scope="scope">
|
|
<el-switch disabled v-model="scope.row.isClock==1?true:false">
|
|
</el-switch>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" prop="projectNum" label="时长" min-width="80" show-overflow-tooltip>
|
|
<template slot-scope="scope">
|
|
<div>
|
|
<i class="text-green text-bold el-icon-timer"></i>
|
|
<span>{{scope.row.servicingTime}}</span>
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" prop="serviceTechnicianOneStaffName" label="员工姓名" min-width="75" show-overflow-tooltip></el-table-column>
|
|
<el-table-column align="center" prop="staffName" label="推销员工" min-width="75" show-overflow-tooltip></el-table-column>
|
|
<el-table-column align="center" prop="price" label="备注" min-width="90" show-overflow-tooltip>
|
|
<template slot-scope="scope">
|
|
<el-input v-model="scope.row.beiz"></el-input>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" label="疗程付款" v-if="form.cashNumber">
|
|
<el-table-column align="center" prop="courseProjectName" label="疗程付款" min-width="100" show-overflow-tooltip v-if="form.cashNumber">
|
|
<template slot-scope="scope">
|
|
<div @click="openPro(scope.row,scope.$index)">
|
|
<span class="text-red">{{scope.row.courseProjectName?scope.row.courseProjectName:'点击选择'}}</span>
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" prop="courseConsumeCount" label="次数" min-width="70"></el-table-column>
|
|
</el-table-column>
|
|
<el-table-column align="center" label="充值卡付" v-if="form.cashNumber">
|
|
<el-table-column align="center" prop="rechargeTypeName" label="充值卡款" min-width="100" show-overflow-tooltip v-if="form.cashNumber">
|
|
<template slot-scope="scope">
|
|
<div @click="openRec(scope.row,scope.$index)">
|
|
<span class="text-red">{{scope.row.rechargeTypeName ?(scope.row.rechargeTypeName + ' / 折扣'+scope.row.discount+'%'):'点击选择'}}</span>
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" prop="cardConsumeMoney" label="可用金额" min-width="80" show-overflow-tooltip></el-table-column>
|
|
<el-table-column align="center" prop="spendMoney" label="本次支付" min-width="80" show-overflow-tooltip>
|
|
<template slot-scope="scope">
|
|
<div class="form-width-xl">
|
|
<div v-if="spendIndex!=scope.$index" class="text-red" @click="openSpendMoney(scope.row,scope.$index)">
|
|
{{scope.row.spendMoney}}
|
|
<i class="el-icon-edit text-cyan"></i>
|
|
</div>
|
|
<el-input style="width:80%" v-model="scope.row.spendMoney" type="number" v-focus v-else @blur="endSpendMoney(scope.row,scope.$index)" @change="endSpendMoney(scope.row,scope.$index)"></el-input>
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" prop="cardGiftMoney" label="赠送可用" min-width="80" show-overflow-tooltip></el-table-column>
|
|
<el-table-column align="center" prop="giftSpendMoney" label="赠送支付" min-width="80" show-overflow-tooltip></el-table-column>
|
|
</el-table-column>
|
|
</el-table>
|
|
<!-- <el-form-item label="原价:">
|
|
<div class="text-red text-price">0.00</div>
|
|
</el-form-item>
|
|
<el-form-item label="折前:">
|
|
<div class="text-red text-price">0.00</div>
|
|
</el-form-item>
|
|
<el-form-item label="折后:">
|
|
<div class="text-red text-price">0.00</div>
|
|
</el-form-item>
|
|
<el-form-item label="消费备注:">
|
|
</el-form-item> -->
|
|
<el-form-item label="应收:">
|
|
<div class="text-red text-price">{{form.amount | money}}</div>
|
|
</el-form-item>
|
|
</el-form>
|
|
<div class="bing-foot flex justify-between align-center">
|
|
<div class="padding-left">现付</div>
|
|
<div class="flex align-center padding-right">
|
|
<span style="margin-top:5px" class="text-red text-bold text-price text-xl margin-right">{{form.payMoney | money}}</span>
|
|
<el-button type="primary" @click="openPay">去结算</el-button>
|
|
</div>
|
|
</div>
|
|
<el-drawer title="现付收银" :visible.sync="openDrawer" direction="rtl">
|
|
<div class="padding-left-xs text-xs text-bold">
|
|
待付金额 <span class="text-red text-price">{{form.debtMoney | money}}</span>
|
|
<span class="padding-left-xs text-xs text-bold"><span class="padding-right">现付</span> <span class="text-red text-price">{{form.collectionCashAmount | money}}</span> </span>
|
|
</div>
|
|
<el-table class="margin-top" :data="payLists" :summary-method="getSummaries" show-summary>
|
|
<el-table-column align="center" prop="payName" label="支付方式" min-width="100">
|
|
<template slot-scope="scope">
|
|
<div class="padding-xs">{{scope.row.payName}}</div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" prop="payMoney" fixed="right" label="本次支付" width="150">
|
|
<template slot-scope="scope">
|
|
<div class="form-input-width" v-if="editIndex!= scope.$index" @click="editPay(scope.row, scope.$index)">
|
|
{{ scope.row.payMoney}}
|
|
<i class="el-icon-edit text-cyan"></i>
|
|
</div>
|
|
<el-input v-else v-focus size="samll" @blur="endEdit(scope.row, scope.$index)" @change="endEdit(scope.row, scope.$index)" v-model="scope.row.payMoney" class="form-input-width-xs" type="number"></el-input>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
<div class="text-center margin-top">
|
|
<el-button type="primary" @click="confirm">确认收银</el-button>
|
|
</div>
|
|
</el-drawer>
|
|
<member ref="member" @memberData="memberData"></member>
|
|
<project ref="project" @projectData="projectData"></project>
|
|
<reccard ref="reccard" @recTypeData="recTypeData"></reccard>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { ctlist, storeMemberOne } from "@/api/eashier.js";
|
|
import { addServiceOrders } from "@/api/api.js";
|
|
import project from "@/components/project/index";
|
|
import member from "@/components/member/index";
|
|
import reccard from "@/components/recharge/index";
|
|
export default {
|
|
components: {
|
|
member,
|
|
project,
|
|
reccard,
|
|
},
|
|
data() {
|
|
return {
|
|
form: {
|
|
orderNum: 1011001,
|
|
woman: 0,
|
|
man: 0,
|
|
number: 1,
|
|
amount: 0,
|
|
collectionCashAmount: 0,
|
|
payMoney: 0,
|
|
debtMoney: 0,
|
|
cashNumber: true,
|
|
},
|
|
openDrawer: false,
|
|
editIndex: -1,
|
|
rowIndex: -1,
|
|
spendIndex: -1,
|
|
payLists: [], //现付列表
|
|
list: [], //主数组
|
|
useRecharge:
|
|
JSON.parse(sessionStorage.getItem("sessionStorageData")).useRecharge *
|
|
1,
|
|
balance:
|
|
JSON.parse(sessionStorage.getItem("sessionStorageData")).balance * 1 +
|
|
0.01,
|
|
};
|
|
},
|
|
methods: {
|
|
// 本次支付显示输入框
|
|
openSpendMoney(row, index) {
|
|
if (row.rechargeTypeId) {
|
|
this.spendIndex = index;
|
|
let form = this.toSpend(row, index);
|
|
this.list.splice(index, 1, form);
|
|
this.sumSpend();
|
|
}
|
|
},
|
|
toSpend(item, index) {
|
|
let form = { ...item };
|
|
item.cashAmount =
|
|
(
|
|
item.collectionCashAmount +
|
|
item.collectionIntegralAmount +
|
|
item.collectionRechargeAmount
|
|
).toFixed(2) * 1;
|
|
let debtMoney = (item.amount - item.cashAmount).toFixed(2) * 1;
|
|
let cardMoney = (form.offsetMoney + form.offsetGiftMoney).toFixed(2) * 1;
|
|
if (debtMoney > 0) {
|
|
if (cardMoney < debtMoney) {
|
|
form.spendMoney = form.cardOver;
|
|
form.giftSpendMoney = form.giftConsumeMoney;
|
|
form.discoutMoney = form.offsetMoney;
|
|
form.discoutGiftMoney = form.offsetGiftMoney;
|
|
} else {
|
|
if (form.type == 2 || form.type == 0) {
|
|
if (this.useRecharge == 2) {
|
|
//先用充值再用赠送
|
|
if (form.noDiscount == 0) {
|
|
if (form.offsetMoney > debtMoney) {
|
|
form.spendMoney =
|
|
((debtMoney * form.discount) / 100).toFixed(2) * 1;
|
|
form.discoutMoney = debtMoney;
|
|
} else {
|
|
form.spendMoney = form.cardOver;
|
|
form.discoutMoney =
|
|
(form.cardOver * (form.discount / 100)).toFixed(2) * 1;
|
|
|
|
form.giftSpendMoney =
|
|
(
|
|
(debtMoney - form.discoutMoney) *
|
|
(form.discountFreeAmount / 100)
|
|
).toFixed(2) * 1;
|
|
form.discoutGiftMoney =
|
|
(debtMoney - form.discoutMoney).toFixed(2) * 1;
|
|
}
|
|
} else {
|
|
console.log("不打折");
|
|
if (form.offsetMoney > debtMoney) {
|
|
form.spendMoney = debtMoney;
|
|
form.discoutMoney =
|
|
((debtMoney * form.discount) / 100).toFixed(2) * 1;
|
|
} else {
|
|
form.spendMoney = form.cardOver;
|
|
form.discoutMoney = form.cardOver.toFixed(2) * 1;
|
|
form.giftSpendMoney =
|
|
(debtMoney - form.discoutMoney).toFixed(2) * 1;
|
|
form.discoutGiftMoney =
|
|
(debtMoney - form.discoutMoney).toFixed(2) * 1;
|
|
}
|
|
}
|
|
} else {
|
|
//按比例使用
|
|
let sunRatio =
|
|
(form.cardRestMoney + form.cardGiftOvers).toFixed(2) * 1;
|
|
let recRatio = (form.cardRestMoney / sunRatio).toFixed(2) * 1;
|
|
let recGiftRatio = (form.cardGiftOvers / sunRatio).toFixed(2) * 1;
|
|
if (form.offsetMoney > debtMoney * recRatio) {
|
|
if (form.noDiscount == 0) {
|
|
form.spendMoney =
|
|
(debtMoney * recRatio * (form.discount / 100)).toFixed(2) *
|
|
1;
|
|
form.discoutMoney = (debtMoney * recRatio).toFixed(2) * 1;
|
|
form.giftSpendMoney =
|
|
(
|
|
debtMoney *
|
|
recGiftRatio *
|
|
(form.discountFreeAmount / 100)
|
|
).toFixed(2) * 1;
|
|
form.discoutGiftMoney =
|
|
(debtMoney * recGiftRatio).toFixed(2) * 1;
|
|
} else {
|
|
form.spendMoney = (debtMoney * recRatio).toFixed(2) * 1;
|
|
form.discoutMoney = (debtMoney * recRatio).toFixed(2) * 1;
|
|
form.giftSpendMoney =
|
|
(debtMoney * recGiftRatio).toFixed(2) * 1;
|
|
form.discoutGiftMoney =
|
|
(debtMoney * recGiftRatio).toFixed(2) * 1;
|
|
}
|
|
} else {
|
|
form.spendMoney = form.cardOver;
|
|
form.discoutMoney =
|
|
(form.cardOver / (form.discount / 100)).toFixed(2) * 1;
|
|
form.giftSpendMoney =
|
|
debtMoney * recRatio -
|
|
form.discoutMoney +
|
|
(debtMoney * recGiftRatio).toFixed(2) * 1;
|
|
form.discoutGiftMoney =
|
|
(
|
|
debtMoney * recRatio -
|
|
form.discoutMoney +
|
|
(debtMoney * recGiftRatio) / (form.discountFreeAmount / 100)
|
|
).toFixed(2) * 1;
|
|
}
|
|
}
|
|
if (form.spendMoney == 0) {
|
|
form.giftSpendMoney = 0;
|
|
form.discoutMoney = 0;
|
|
form.discoutGiftMoney = 0;
|
|
}
|
|
} else {
|
|
if (form.noDiscount == 0) {
|
|
// 可以打折
|
|
form.spendMoney =
|
|
((debtMoney * form.discount) / 100).toFixed(2) * 1;
|
|
} else {
|
|
// 不可以打折
|
|
form.spendMoney = debtMoney;
|
|
}
|
|
form.discoutMoney = debtMoney;
|
|
}
|
|
}
|
|
form.collectionRechargeAmount =
|
|
(form.discoutGiftMoney + form.discoutMoney).toFixed(2) * 1;
|
|
} else {
|
|
form.spendMoney = 0;
|
|
form.collectionRechargeAmount = 0;
|
|
form.giftSpendMoney = 0;
|
|
}
|
|
return form;
|
|
},
|
|
sumSpend() {
|
|
let payMoney = 0;
|
|
this.list.forEach((item) => {
|
|
console.log(item);
|
|
if (item.courseAccountId == null) {
|
|
if (item.spendMoney) {
|
|
item.collectionRechargeAmount =
|
|
(item.discoutGiftMoney + item.discoutMoney).toFixed(2) * 1;
|
|
} else {
|
|
item.collectionRechargeAmount = 0;
|
|
}
|
|
item.cashAmount =
|
|
(
|
|
item.collectionCashAmount +
|
|
item.collectionRechargeAmount +
|
|
item.collectionIntegralAmount
|
|
).toFixed(2) * 1;
|
|
item.collectionAmount =
|
|
(
|
|
item.collectionCashAmount +
|
|
item.spendMoney +
|
|
item.collectionIntegralAmount
|
|
).toFixed(2) * 1;
|
|
} else {
|
|
item.cashAmount = item.amount;
|
|
item.collectionAmount = item.amount;
|
|
}
|
|
console.log(item.collectionRechargeAmount);
|
|
console.log(item.cashAmount);
|
|
payMoney += (item.amount - item.cashAmount).toFixed(2) * 1;
|
|
});
|
|
this.form.payMoney = payMoney;
|
|
},
|
|
endSpendMoney(row, index) {
|
|
console.log(row.spendMoney);
|
|
let form = { ...row };
|
|
form.spendMoney = form.spendMoney ? form.spendMoney * 1 : 0;
|
|
form.giftSpendMoney = form.giftSpendMoney ? form.giftSpendMoney * 1 : 0;
|
|
if (form.noDiscount == 0) {
|
|
form.discoutMoney =
|
|
((form.spendMoney / form.discount) * 100).toFixed(2) * 1;
|
|
if (form.type == 2) {
|
|
form.discoutGiftMoney =
|
|
((form.giftSpendMoney / form.discountFreeAmount) * 100).toFixed(2) *
|
|
1;
|
|
} else {
|
|
form.discoutGiftMoney = form.giftSpendMoney;
|
|
}
|
|
} else {
|
|
form.discoutMoney = form.spendMoney;
|
|
form.discoutGiftMoney = form.giftSpendMoney;
|
|
}
|
|
console.log(form);
|
|
this.spendIndex = -1;
|
|
this.list.splice(index, 1, form);
|
|
this.sumSpend();
|
|
},
|
|
//打开选择会员弹窗
|
|
openMember() {
|
|
this.cashNumber = true;
|
|
this.$refs.member.show();
|
|
},
|
|
//选中会员返回方法
|
|
memberData(v) {
|
|
let form = { ...this.form };
|
|
form.mobilePhone = v.mobilePhone;
|
|
form.memberName = v.memberName;
|
|
form.memberId = v.id;
|
|
form.id = v.id;
|
|
form.sex = v.sex;
|
|
form.cashNumber = true;
|
|
this.form = form;
|
|
},
|
|
openPro(row, index) {
|
|
this.rowIndex = index;
|
|
this.$refs.project.show(this.form, row.projectId);
|
|
},
|
|
projectData(v) {
|
|
let form = { ...this.list[this.rowIndex] };
|
|
form.courseProjectName = v.courseProjectName;
|
|
form.transactionPrice = v.price;
|
|
form.amount = (v.price * form.numberTimes).toFixed(2) * 1;
|
|
form.courseConsumeCount = 1;
|
|
form.courseAccountId = v.id;
|
|
this.list.splice(this.rowIndex, 1, form);
|
|
this.sumSpend();
|
|
},
|
|
openRec(row, index) {
|
|
if (row.courseAccountId == null) {
|
|
this.rowIndex = index;
|
|
this.$refs.reccard.show(this.form);
|
|
} else {
|
|
this.$message.warning({ message: "已选择疗程付" });
|
|
}
|
|
},
|
|
recTypeData(v) {
|
|
let form = { ...this.list[this.rowIndex] };
|
|
this.list.forEach((item) => {
|
|
if (item.spendMoney > 0 && item.rechargeTypeId == v.id) {
|
|
v.cardRestMoney = v.cardRestMoney - item.spendMoney;
|
|
v.cardConsumeMoney = v.cardConsumeMoney - item.spendMoney;
|
|
v.cardGiftMoney = v.cardGiftMoney - item.giftSpendMoney;
|
|
v.giftConsumeMoney = v.giftConsumeMoney - item.giftSpendMoney;
|
|
}
|
|
});
|
|
v.cardGiftOvers = 0;
|
|
v.spendMoney = 0;
|
|
v.giftSpendMoney = 0;
|
|
v.discoutMoney = 0;
|
|
v.discoutGiftMoney = 0;
|
|
v.collectionRechargeAmount = 0;
|
|
if (v.type == 0) {
|
|
v.offsetMoney = v.cardConsumeMoney;
|
|
v.offsetGiftMoney = v.giftConsumeMoney;
|
|
}
|
|
if (v.type == 1) {
|
|
if (form.noDiscount == 0) {
|
|
v.offsetMoney = v.cardConsumeMoney;
|
|
v.offsetGiftMoney = 0;
|
|
} else {
|
|
v.offsetMoney =
|
|
(v.cardConsumeMoney / (v.discount / 100)).toFixed(2) * 1;
|
|
v.offsetGiftMoney = 0;
|
|
}
|
|
}
|
|
if (v.type == 2) {
|
|
if (form.noDiscount == 0) {
|
|
v.offsetMoney = v.cardConsumeMoney;
|
|
v.offsetGiftMoney = 0;
|
|
} else {
|
|
v.offsetMoney =
|
|
(v.cardConsumeMoney / (v.discount / 100)).toFixed(2) * 1;
|
|
v.offsetGiftMoney =
|
|
(v.giftConsumeMoney / (v.discountFreeAmount / 100)).toFixed(2) * 1;
|
|
}
|
|
}
|
|
form.offsetMoney = v.offsetMoney;
|
|
form.offsetGiftMoney = v.offsetGiftMoney;
|
|
form.rechargeTypeNum = v.rechargeTypeNum;
|
|
form.spendMoney = 0;
|
|
form.rechargeTypeId = v.id;
|
|
form.rechargeTypeName = v.rechargeTypeName;
|
|
form.cardRestMoney = v.cardRestMoney;
|
|
form.cardConsumeMoney = v.cardConsumeMoney;
|
|
form.discount = v.discount;
|
|
form.cardGiftMoney = v.cardGiftMoney;
|
|
form.discountFreeAmount = v.discountFreeAmount;
|
|
form.giftConsumeMoney = v.giftConsumeMoney;
|
|
form.endTime = v.endTime;
|
|
form.discoutGiftMoney = 0;
|
|
form.discoutMoney = 0;
|
|
form.giftSpendMoney = 0;
|
|
form.type = v.type;
|
|
let row = this.toSpend(form, this.rowIndex);
|
|
form = { ...form, ...row };
|
|
this.list.splice(this.rowIndex, 1, form);
|
|
this.sumSpend();
|
|
},
|
|
//查询方法
|
|
query() {
|
|
storeMemberOne({
|
|
mobilePhone: this.form.mobilePhone,
|
|
storeId: sessionStorage.getItem("parentId"),
|
|
}).then((res) => {
|
|
if (res.code == "000000") {
|
|
this.form = { ...this.form, ...res.data };
|
|
} else {
|
|
this.$alert(res.message, "提示", {
|
|
confirmButtonText: "确定",
|
|
confirmButtonClass: "confirmbtnFalses",
|
|
type: "warning",
|
|
center: true,
|
|
callback: (action) => { },
|
|
});
|
|
}
|
|
});
|
|
},
|
|
//确定返回方法
|
|
confirm() {
|
|
if (this.form.debtMoney > 0 || this.form.debtMoney < 0.5) {
|
|
let payLists = [];
|
|
this.payLists.forEach((item) => {
|
|
if (item.payMoney > 0) {
|
|
payLists.push(item);
|
|
}
|
|
});
|
|
this.list.forEach((item) => {
|
|
item.memberName = this.form.memberName;
|
|
item.mobilePhone = this.form.mobilePhone;
|
|
if (this.form.memberId) {
|
|
item.memberId = this.form.memberId;
|
|
item.sex = this.form.sex;
|
|
}
|
|
if (item.courseAccountId != null) {
|
|
} else {
|
|
item.collectionCashAmount =
|
|
(
|
|
item.amount -
|
|
item.collectionIntegralAmount -
|
|
item.collectionRechargeAmount
|
|
).toFixed(2) * 1;
|
|
}
|
|
item.collectionAmount =
|
|
(
|
|
item.collectionCashAmount +
|
|
item.collectionIntegralAmount +
|
|
item.collectionRechargeAmount
|
|
).toFixed(2) * 1;
|
|
item.cashAmount = item.collectionAmount;
|
|
});
|
|
this.list[0].payLists = payLists;
|
|
this.addCash();
|
|
} else {
|
|
this.$message.warning({ message: "请支付全部的金额才能收银 !" });
|
|
}
|
|
},
|
|
addCash() {
|
|
let list = [];
|
|
|
|
this.list.forEach((item) => {
|
|
let rechargeAccountList = [];
|
|
let rechargeAccountLists = [];
|
|
if (this.form.cashNumber == true) {
|
|
item.cashNumber = 1;
|
|
} else {
|
|
item.cashNumber = 0;
|
|
}
|
|
if (item.isClock == true) {
|
|
item.isClock = 1;
|
|
} else {
|
|
item.isClock = 0;
|
|
}
|
|
if (item.spendMoney > 0) {
|
|
let form = {
|
|
id: item.rechargeTypeId,
|
|
rechargeTypeNum: item.rechargeTypeNum,
|
|
rechargeTypeName: item.rechargeTypeName,
|
|
discount: item.discount,
|
|
discountFreeAmount: item.discountFreeAmount,
|
|
type: item.type,
|
|
spendMoney: item.spendMoney,
|
|
cardConsumeMoney: item.cardConsumeMoney,
|
|
cardRestMoney: item.cardRestMoney,
|
|
endTime: item.endTime,
|
|
giftConsumeMoney: item.giftConsumeMoney,
|
|
cardGiftMoney: item.cardGiftMoney,
|
|
giftSpendMoney: item.giftSpendMoney,
|
|
};
|
|
rechargeAccountList.push(form);
|
|
}
|
|
item.rechargeAccountList = rechargeAccountList;
|
|
// item.rechargeAccountLists.forEach((items) => {
|
|
// if (items.spendMoney == items.spendMoney) {
|
|
// rechargeAccountList.push(items);
|
|
// }
|
|
// });
|
|
// item.rechargeAccountList = rechargeAccountList;
|
|
list.push(item);
|
|
});
|
|
|
|
addServiceOrders(list).then((res) => {
|
|
if (res.code == "000000") {
|
|
this.$message.success({ message: "收银成功 !" });
|
|
this.openDrawer = false;
|
|
this.form = {
|
|
orderNum: 1011001,
|
|
sex2: 0,
|
|
number: 0,
|
|
amount: 0,
|
|
collectionCashAmount: 0,
|
|
payMoney: 0,
|
|
debtMoney: 0,
|
|
};
|
|
this.list = [];
|
|
} else {
|
|
this.$alert(res.message, "提示", {
|
|
confirmButtonText: "确定",
|
|
confirmButtonClass: "confirmbtnFalses",
|
|
type: "warning",
|
|
center: true,
|
|
callback: (action) => { },
|
|
});
|
|
}
|
|
});
|
|
},
|
|
editPay(row, index) {
|
|
this.editIndex = index;
|
|
let form = { ...row };
|
|
form.payMoney = this.form.debtMoney;
|
|
this.payLists.splice(index, 1, form);
|
|
},
|
|
endEdit(row, index) {
|
|
if (!row.payMoney) {
|
|
row.payMoney = 0;
|
|
} else {
|
|
row.payMoney = row.payMoney * 1;
|
|
}
|
|
this.editIndex = -1;
|
|
this.sumPay();
|
|
},
|
|
sumPay() {
|
|
let payMoney = 0;
|
|
this.payLists.forEach((item) => {
|
|
payMoney += item.payMoney;
|
|
});
|
|
this.form.collectionCashAmount = payMoney.toFixed(2) * 1;
|
|
this.form.debtMoney =
|
|
(this.form.payMoney - this.form.collectionCashAmount).toFixed(2) * 1;
|
|
console.log(this.form);
|
|
},
|
|
openPay() {
|
|
this.openDrawer = true;
|
|
this.sumPay();
|
|
},
|
|
getCtList() {
|
|
ctlist({ id: "" }).then((res) => {
|
|
if (res.code == "000000") {
|
|
var list = [];
|
|
res.rows.forEach((item) => {
|
|
let items = {
|
|
payId: item.id,
|
|
payMoney: 0,
|
|
payName: item.collectionTypeName,
|
|
};
|
|
list.push(items);
|
|
});
|
|
this.payLists = list;
|
|
} else {
|
|
this.$alert("现付列表" + res.message, "提示", {
|
|
confirmButtonText: "确定",
|
|
confirmButtonClass: "confirmbtnFalses",
|
|
type: "warning",
|
|
center: true,
|
|
callback: (action) => { },
|
|
});
|
|
}
|
|
});
|
|
},
|
|
//组件传值
|
|
show(list) {
|
|
this.list = [...list];
|
|
this.list.forEach((item) => {
|
|
item.collectionRechargeAmount = 0;
|
|
item.collectionIntegralAmount = 0;
|
|
item.cashAmount = 0;
|
|
item.collectionAmount = 0;
|
|
item.collectionCashAmount = 0;
|
|
});
|
|
this.getCtList();
|
|
this.sumMoney();
|
|
},
|
|
|
|
rowClassName({ row, rowIndex }) {
|
|
row.index = rowIndex;
|
|
},
|
|
sumMoney() {
|
|
console.log(this.form.cashNumber);
|
|
let amount = 0;
|
|
let payMoney = 0;
|
|
this.list.forEach((item) => {
|
|
if (this.form.cashNumber == true) {
|
|
item.amount = (item.priceMember * item.numberTimes).toFixed(2) * 1;
|
|
item.transactionPrice = item.priceMember;
|
|
} else {
|
|
item.transactionPrice = item.price;
|
|
item.amount = (item.price * item.numberTimes).toFixed(2) * 1;
|
|
}
|
|
amount += item.amount * 1;
|
|
payMoney += item.amount;
|
|
});
|
|
this.form.amount = amount.toFixed(2) * 1;
|
|
this.form.payMoney = payMoney.toFixed(2) * 1;
|
|
this.form.debtMoney = payMoney.toFixed(2) * 1;
|
|
this.form.collectionCashAmount = "0.00";
|
|
},
|
|
//指定列求和
|
|
//数组按对应字段合计返回方法
|
|
getSummaries(param) {
|
|
const { columns, data } = param;
|
|
const sums = [];
|
|
columns.forEach((column, index) => {
|
|
if (index === 0) {
|
|
sums[index] = "合计";
|
|
return;
|
|
}
|
|
const values = data.map((item) => Number(item[column.property]));
|
|
if (column.property == "payMoney") {
|
|
sums[index] = values.reduce((prev, curr) => {
|
|
const value = Number(curr);
|
|
if (!isNaN(value)) {
|
|
return prev + curr;
|
|
} else {
|
|
sums[index] = "--";
|
|
}
|
|
}, 0);
|
|
sums[index] += " ";
|
|
} else {
|
|
sums[index] = "--";
|
|
}
|
|
});
|
|
return sums;
|
|
},
|
|
},
|
|
created() {
|
|
var scrollDiv = document.getElementsByClassName("bing-foot");
|
|
scrollDiv.scrollTop = scrollDiv.scrollHeight;
|
|
this.getCtList();
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style scoped>
|
|
.bing-foot {
|
|
height: 100px;
|
|
width: 100%;
|
|
background: rgb(255, 246, 228);
|
|
line-height: 100px;
|
|
}
|
|
</style>
|