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.

955 lines
36 KiB
Vue

<template>
<div class="sellpacking">
<el-form :model="form" inline label-width="80px">
<el-form-item label="手机号码">
<div class="form-width-ms flex">
<el-input style="padding-left:0px;" ref="" oninput="this.value=this.value.replace(/\D/g,'')" pattern="[0-9]*" maxlength="11" v-model="form.mobilePhone" @change="memberOne" @blur="memberOne">
<el-button size="mini" slot="append" icon="el-icon-search" @click="openMember"></el-button>
</el-input>
<el-button icon="el-icon-circle-plus-outline" type="text" @click="openAddMember"></el-button>
</div>
</el-form-item>
<el-form-item label="会员名字">
<div class="form-width-ms text-cyan text-bold">
{{form.memberName}}
</div>
</el-form-item>
<el-form-item label="促销名称:">
<div class="form-width-ms text-red text-bold">
{{form.promotionName}}
<!-- <div v-if="form.promotionName!=''" @click="openPromotion( openPromotionDialog=true)"> {{form.promotionName}} </div>
<el-button size="mini" type="text" @click="openPromotion( openPromotionDialog=true)" v-else>选择</el-button> -->
</div>
</el-form-item>
<el-form-item label="促销总价:">
<div class="form-width-ms text-red text-price">
{{form.totalMoney}}
</div>
</el-form-item>
<br>
<el-form-item label="促销单价:">
<div class="form-width-ms ">
<span class="text-red" v-if="form.moneyType==1&&checkTableList.length==0">选择下列项目</span>
<span v-else class="text-red text-price">{{form.saleMoney}}</span>
</div>
</el-form-item>
<el-form-item label="购买套数:">
<div class="form-width-ms text-cyan text-bold">
<div style="width:100%;cursor: pointer;" v-if="!countShow" @click="editCount">{{form.count}}
</div>
<el-input class="form-width-xs" ref="countInput" v-else v-model="form.count" @blur="endEditCount()"></el-input>
</div>
</el-form-item>
<el-form-item label="销售金额:">
<div class="form-width-ms text-red text-price">
{{form.amount}}
</div>
</el-form-item>
<el-form-item label="待付金额">
<div class="form-width-ms text-green text-price">
{{form.debtMoney}}
</div>
</el-form-item>
<br>
<el-form-item label="适用对象:">
<div class="form-width-ms">
<span v-show="form.suitableObject==0">全部会员</span>
<span v-show="form.suitableObject==1">生日会员</span>
<span v-show="form.suitableObject==2">指定会员</span>
</div>
</el-form-item>
<el-form-item label="限购套数:">
<div class="form-width-ms">
<span v-show="form.limitBuy==0">不限购</span>
<span v-show="form.limitBuy==1"> 限购{{form.limitCount}}套</span>
</div>
</el-form-item>
<el-form-item label="卡付折扣:">
<div class="form-width-ms">
<span v-show="form.cardBuy==0">不允许卡付</span>
<span v-show="form.cardBuy==1">允许卡付
<!-- <span v-show="form.cardLimit==1">可打折</span> <span v-show="form.cardLimit==0">不可打折</span> -->
</span>
</div>
</el-form-item>
<el-form-item label="开始时间:">
<div>
{{form.beginDate }}
</div>
</el-form-item>
<br>
<el-form-item label="结束时间:">
<div class="form-width-ms">
{{form.endDate }}
</div>
</el-form-item>
<el-form-item label="购买备注:">
<el-input size="small" type="textarea" :autosize="{ minRows: 1.5, maxRows: 2 }" v-model="form.description" style="max-width:600px;width:600px"></el-input>
</el-form-item>
<div class="border-radius-10 border bg-white padding-xs" v-if="form.projectCount" style="width:920px;margin-left:20px">
<el-table ref="regTable" @selection-change="handleSelectionChange" @row-click="rowClicks" :data="projectList" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)',color:'#eeeeee',}">
<el-table-column type="selection" width="55"></el-table-column>
<!-- :selectable="checkStatus" -->
<el-table-column prop="projectNum" label="项目编码" align="center" min-width="120"></el-table-column>
<el-table-column prop="projectName" label="项目名称" align="center" min-width="120"></el-table-column>
<el-table-column prop="priceMember" label="标准价" align="center" min-width="120"></el-table-column>
<el-table-column prop="required" label="必选" align="center" min-width="80">
<template slot-scope="scope">{{scope.row.required==0?'是':"否"}}</template>
</el-table-column>
<el-table-column prop="times" label="次数" align="center" min-width="120"></el-table-column>
<el-table-column prop="projectTotalMoney" label="总价值" align="center" min-width="120"></el-table-column>
</el-table>
</div>
<br>
<div class="flex justify-center align-start flex-wrap padding-top-xs padding-left margin-left" style="width:940px">
<div style="width:610px" class="border-radius-10 border margin-right-xs bg-white padding-xs" v-if="form.cardBuy==1">
<el-table :data="rechargeAccountList" :summary-method="getSummaries" show-summary>
<el-table-column align="center" :show-overflow-tooltip="true" prop="rechargeTypeName" label="名称" min-width="120"></el-table-column>
<el-table-column show-overflow-tooltip min-width="70" align="center" prop="cardRestMoney" label="剩余金额"></el-table-column>
<el-table-column align="center" prop="cardOver" label="可用金额" width="70"></el-table-column>
<!-- <el-table-column v-if="form.cardLimit==1" align="center" prop="offsetMoney" label="可抵扣额" width="90"></el-table-column> -->
<el-table-column align="center" prop="spendMoney" label="本次支付" width="100">
<template slot-scope="scope">
<div v-if="!scope.row.isShow" @click="openCard(scope.row,scope.$index)" class="form-width-xs">
<span>{{scope.row.spendMoney}}</span>
<i class="el-icon-edit text-cyan"></i>
</div>
<el-input v-focus class="form-input-wdith-xs" @change="endEditCard(scope.row)" @blur="endEditCard(scope.row)" v-else v-model="scope.row.spendMoney" type="number"></el-input>
</template>
</el-table-column>
<!-- <el-table-column v-if="form.cardLimit==1" align="center" prop="discoutMoney" label="抵扣支付" width="90"> </el-table-column> -->
<el-table-column align="center" prop="cardOvers" label="可用余额" width="90"></el-table-column>
<el-table-column show-overflow-tooltip align="center" prop="storeName" label="所属门店" width="100"></el-table-column>
</el-table>
<!-- <div class="close">
<span>合计</span>
<span style="margin-right:110px;" v-if="form.cardLimit==1">¥{{spendMoneys}}</span>
<span v-else style="margin-right:300px;">¥{{spendMoneys}}</span>
</div> -->
</div>
<div style="width:300px" class="border-radius-10 border margin-right-xs bg-white padding-xs">
<el-table :data="payLists" :summary-method="getSummaries" show-summary>
<el-table-column align="center" prop="payName" label="支付方式" min-width="100"></el-table-column>
<el-table-column align="center" prop="payMoney" fixed="right" label="本次支付 ( ¥ )" width="120">
<template slot-scope="scope">
<div style="padding:0 10px" v-if="!scope.row.isShow" @click="openpay(scope.row,scope.$index)">
<span>{{scope.row.payMoney}}</span>
<i class="el-icon-edit text-cyan"></i>
</div>
<el-input v-else v-focus type="number" @blur="endEdit(scope.row)" v-model="scope.row.payMoney">
</el-input>
</template>
</el-table-column>
</el-table>
<!-- <div class="close">
<span>合计</span>
<span>¥{{payMoneys}}</span>
</div> -->
</div>
</div>
<div class="flex justify-start align-start flex-wrap padding-top-xs padding-left margin-left">
<staffsles ref="staffsles" @staffslesData="staffslesData"></staffsles>
<admin ref="admin" @adminData="adminData"></admin>
<manager ref="manager" @managerData="managerData"></manager>
</div>
</el-form>
<div class="sellpackingDiv">
<el-dialog :close-on-click-modal="false" v-dialogDrag title="促销列表" :visible.sync="sellListDialog" width="80%">
<el-table :data="sellList">
<el-table-column prop="isCancel" label="状态" align="center" width="80" fixed="left">
<template slot-scope="scope">
<el-tag size="medium" effect="dark" :type="scope.row.isCancel==0?'success':''||scope.row.isCancel==1?'primary':''">
<span v-show="scope.row.isCancel==0">正常</span>
<span v-show="scope.row.isCancel==1">作废</span>
</el-tag>
</template>
</el-table-column>
<el-table-column prop="docNum" label="促销单号" align="center" min-width="120"></el-table-column>
<el-table-column prop="docDate" label="购买时间" align="center" min-width="160"></el-table-column>
<el-table-column prop="promotionName" label="促销名称" align="center" min-width="80"></el-table-column>
<el-table-column prop="promotionNum" label="促销编码" align="center" min-width="120"></el-table-column>
<el-table-column prop="memberName" label="会员名称" align="center" min-width="80"></el-table-column>
<el-table-column prop="mobilePhone" label="手机号码" align="center" min-width="120">
<template slot-scope="scope">
{{scope.row.mobilePhone | phone}}
</template>
</el-table-column>
<el-table-column prop="price" label="促销单价" align="center" min-width="80"></el-table-column>
<el-table-column prop="count" label="购买套数" align="center" min-width="80"></el-table-column>
<el-table-column prop="amount" label="销售价格" align="center" min-width="80"></el-table-column>
<el-table-column label="操作" align="center" width="160" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="primary" @click="cancel(scope.row)" plain>作废</el-button>
<el-button size="mini" type="success">打印</el-button>
</template>
</el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" @click="sellListDialog = false" plain>关闭</el-button>
</div>
</el-dialog>
<el-dialog :close-on-click-modal="false" v-dialogDrag title="促销列表" :visible.sync="openPromotionDialog" width="50%">
<el-table :data="promotionList" @row-click="rowClick" @row-dblclick="confirmPromotion(openPromotionDialog=false)">
<el-table-column label="选择" width="80">
<template slot-scope="scope">
<el-radio v-model="radioPromotionValue" :label="scope.row.id" @change.native="scope.row"></el-radio>
</template>
</el-table-column>
<el-table-column align="center" min-width="120" prop="promotionNum" label="促销编码"></el-table-column>
<el-table-column align="center" min-width="100" prop="promotionName" label="促销编码"></el-table-column>
<el-table-column align="center" min-width="160" prop="beginDate" label="开始时间"></el-table-column>
<el-table-column align="center" min-width="160" prop="endDate" label="结束时间"></el-table-column>
<el-table-column align="center" min-width="80" prop="totalMoney" label="总价金额"></el-table-column>
<el-table-column align="center" min-width="80" prop="saleMoney" label="销售单价"></el-table-column>
<el-table-column align="center" min-width="100" label="限购">
<template slot-scope="scope">
<div v-if="scope.row.limitBuy==0">不限购</div>
<div v-else>
限购{{scope.row.limitCount}}套
</div>
</template>
</el-table-column>
<el-table-column align="center" min-width="100" label="充值卡付">
<template slot-scope="scope">
<div v-if="scope.row.cardBuy==0">不允许</div>
<div v-else>
允许卡付
</div>
</template>
</el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" @click="openPromotionDialog = false">取 消</el-button>
<el-button size="mini" type="primary" @click="confirmPromotion(openPromotionDialog=false)">确 定</el-button>
</div>
</el-dialog>
</div>
<div style="display: flex;justify-content: center;width:960px" class="padding-top margin-top">
<el-button style="margin:0 15px" size="mini" type="info" @click="reset()">重置</el-button>
<el-button style="margin:0 15px" size="mini" type="success" @click="openSellList(sellListDialog=true)">列表</el-button>
<el-button style="margin:0 15px;" :disabled="form.projectCount>checkTableList.length" size="mini" type="primary" :loading="loadingShow" @click="submit">提交</el-button>
</div>
<el-dialog :close-on-click-modal="false" v-dialogDrag title="提示" :visible.sync="paymentcodeDialog" width="400px">
<span style="font-size:14px; margin-left:10px;color:#999">本次支付需要验证支付密码</span>
<el-form :model="paymentform">
<el-form-item label="支付密码 : ">
<el-input style="width:150px" size="small" v-model="paymentform.cashPassword" type="password" placeholder="会员的支付密码"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="paymentcodeDialog = false">取 消</el-button>
<el-button size="mini" type="primary" @click="payment( paymentcodeDialog=false)">确 定</el-button>
</span>
</el-dialog>
<member ref="member" @memberData="memberData"></member>
<addmember ref="addmember"></addmember>
</div>
</template>
<script>
import {
ctlist,
recAccountList,
storeMemberOne,
checkCashWord,
} from "@/api/eashier.js";
import { partten } from "@/../partten/index.js";
import {
addDocPromotion,
docPromotionPage,
cancelDocPromotion,
} from "@/api/home.js";
import { promotionPage } from "@/api/promotion.js";
import member from "@/components/member/index";
import admin from "@/components/staffList/admin/index";
import manager from "@/components/staffList/manager/index";
import staffsles from "@/components/staffList/staff/index";
import addmember from "@/components/member/edit/index";
export default {
inject: ["reload"],
components: {
staffsles,
manager,
admin,
member,
addmember,
},
data() {
return {
openPromotionDialog: false, //促销列表弹窗开关
paymentcodeDialog: false, //会员填写密码弹窗开关
sellListDialog: false, //促销单据列表弹窗开关
countShow: false, //购买套数修改输入框开关
loadingShow: false, //提交等待动画
radioPromotionValue: "", //单选促销项目值
radioPromotionValueList: {}, //单选促销项目对象
sessionStorageData: {}, //门店参数集合
checkTableList: [],
paymentform: {
//支付密码
cashPassword: null,
},
projectList: [],
form: {
//主表单
cardBuy: 1,
memberName: "",
description: "",
count: 1,
amount: null,
collectionRechargeAmount: 0,
collectionCashAmount: 0,
manageStaffName: "",
},
copyForm: {}, //复制留存表单
rechargeAccountList: [], //卡付列表
recCopyList: [], //复制卡付列表
promotionList: [], //促销列表
payLists: [], //现付列表
sellList: [], //促销单据
payMoneys: 0, //现付总金额
spendMoneys: 0, //卡付总金额
vip: {}, //会员信息
sell: {}, //提交表单
staffLists: [{ ratio: 100 }], //员工占比初始化
managerLists: [{ ratio: 100 }], //员工占比初始化
adminList: [{ ratio: 100 }], //员工占比初始化
};
},
methods: {
openAddMember() {
this.$refs.addmember.show("添加");
},
checkStatus(row) {
if (row.status == 1) {
return true;
}
return false;
},
handleSelectionChange(val, row) {
this.checkTableList = this.noRepeat(val);
this.projectList.forEach((item) => {
if (item.required == 0) {
this.$nextTick(() => {
this.$refs["regTable"].toggleRowSelection(item, true);
});
this.checkTableList.push(item);
}
});
this.checkTableList = this.noRepeat(this.checkTableList);
console.log(this.checkTableList.length);
console.log(this.form.projectCount);
if (this.checkTableList.length > this.form.projectCount) {
this.$message.warning({ message: "请根据提示选择" });
this.checkTableList.forEach((item) => {
this.$nextTick(() => {
this.$refs["regTable"].toggleRowSelection(item, false);
});
});
}
if (this.form.moneyType == 1) {
this.sumTotal();
}
},
sumTotal() {
let money = 0;
let form = { ...this.form };
this.checkTableList.forEach((item) => {
money += item.projectTotalMoney;
});
console.log(this.checkTableList);
console.log(money);
form.amount = money.toFixed(2) * 1;
form.saleMoney = form.amount;
form.debtMoney = form.amount;
this.form = JSON.parse(JSON.stringify(form));
this.resetPay();
},
//重置支付
resetPay() {
this.payLists.forEach((item) => {
item.payMoney = 0;
});
this.rechargeAccountList = this.recCopyList;
this.sumMoney();
},
handleSelectionAllChange(data) {
// 过滤当前表格数据
this.projectList.forEach((v, index) => {
if (index >= this.form.projectCount) {
// 大于设置的条数,取消选择
this.$refs["regTable"].toggleRowSelection(v, false);
}
});
},
rowClicks(row) {
// 单击行,设置选中
if (row.required == 1) {
const check = this.checkTableList.find((v) => {
return v.id == row.id;
});
this.checkTableList.push(row);
this.checkTableList = this.noRepeat(this.checkTableList);
console.log(this.checkTableList);
console.log(this.checkTableList.length);
if (this.checkTableList.length > this.form.projectCount) {
this.$refs["regTable"].toggleRowSelection(row, false);
this.$message.warning(`最多只能选${this.form.projectCount}条!`);
} else {
if (!check && this.checkTableList.length > this.form.projectCount) {
this.$message.warning(`最多只能选${this.form.projectCount}条!`);
// this.projectList.forEach((item) => {
// if (item.id == row.id) {
// item.status = 0;
// }
// });
return;
}
this.$refs["regTable"].toggleRowSelection(row);
// this.projectList.forEach((item) => {
// if (item.id == row.id) {
// item.status = 1;
// }
// });
}
} else {
this.$message.warning(`必选项目!`);
}
},
//打开选择会员弹窗
openMember() {
this.$refs.member.show();
},
//选中会员返回方法
memberData(v) {
this.form.mobilePhone = v.mobilePhone;
this.memberOne();
},
//触发员工占比组件
toStaffRatio() {
var that = this;
setTimeout(() => {
that.$refs.staffsles.show(that.staffLists);
that.$refs.manager.show(that.managerLists);
that.$refs.admin.show(that.adminList);
}, 500);
},
//员工占比返回方法
staffslesData(v) {
this.staffLists = [...v];
},
//高管占比返回方法
managerData(v) {
this.managerLists = [...v];
},
//管理员占比返回方法
adminData(v) {
this.adminList = [...v];
},
//填写密码提交
payment() {
checkCashWord(this.paymentform).then((res) => {
if (res.data == true) {
addDocPromotion(this.sell).then((res) => {
if (res.code == "000000") {
this.$message.success({ message: "购买 , " + res.message });
this.reset();
} else {
this.$message.error({ message: "购买 , " + res.message });
}
});
} else {
this.$message.error({ message: "密码错误 !" });
}
});
},
//重置清空
reset(number) {
this.form = { ...this.copyForm };
this.payLists = [];
this.staffLists = [{ ratio: 100 }];
this.managerLists = [{ ratio: 100 }];
this.adminList = [{ ratio: 100 }];
this.rechargeAccountList = [];
this.payMoneys = 0;
this.spendMoneys = 0;
console.log(number);
if (number) {
this.$router.push({ path: "/home", query: {} });
this.reload();
} else {
this.ctlist();
this.toStaffRatio();
}
},
//提交信息
submit() {
setTimeout(() => {
this.loadingShow = false;
}, 3000);
this.loadingShow = true;
let payLists = [];
this.payLists.forEach((item) => {
delete item.isShow;
if (item.payMoney > 0) {
payLists.push(item);
}
});
this.form.payLists = payLists;
let rechargeAccountList = [];
this.rechargeAccountList.forEach((item) => {
if (item.spendMoney > 0) {
rechargeAccountList.push(item);
}
});
this.form.rechargeAccountList = rechargeAccountList;
this.form.staffLists = this.staffLists;
let salesmens = [];
this.managerLists.forEach((item) => {
if (item.id) {
item.staffType = 0;
salesmens.push(item);
}
});
this.adminList.forEach((item) => {
if (item.id) {
item.staffType = 1;
salesmens.push(item);
}
});
this.form.salesmens = salesmens;
this.sell = {
storeId: this.form.storeId,
storeName: this.form.storeName,
memberName: this.form.memberName,
memberId: this.form.memberId,
mobilePhone: this.form.mobilePhone,
promotionId: this.form.id,
promotionNum: this.form.promotionNum,
promotionName: this.form.promotionName,
price: this.form.saleMoney * 1,
count: this.form.count,
amount: this.form.amount,
debtMoney: this.form.debtMoney,
salesmens: this.form.salesmens,
projectCount: this.form.projectCount,
projectTotal: this.form.projectTotal,
collectionCashAmount: this.form.collectionCashAmount,
collectionRechargeAmount: this.form.collectionRechargeAmount,
salesCommission: this.form.salesCommission * 1,
cardSalesCommission: this.form.cardSalesCommission * 1,
payLists: this.form.payLists,
staffLists: this.form.staffLists,
rechargeAccountList: this.form.rechargeAccountList,
moneyType: this.form.moneyType,
};
if (this.form.debtMoney > 0) {
this.sell.isDebt = 1;
} else {
this.sell.isDebt = 0;
}
let checkTableList = this.noRepeat(this.checkTableList);
this.sell.promotionProjects = checkTableList;
addDocPromotion(this.sell).then((res) => {
this.loadingShow = false;
if (res.code == "000000") {
this.$message.success({ message: res.message });
setTimeout(() => {
this.reset(1);
}, 1000);
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
},
//查询会员信息
memberOne() {
var number = partten.phoneNum;
if (!number.test(this.form.mobilePhone)) {
this.$message.info({ message: "请输入正确的手机号 ! " });
} else {
this.rechargeAccountList = [];
storeMemberOne({
mobilePhone: this.form.mobilePhone,
}).then((res) => {
//console.log(res);
if (res.code == "000000") {
this.vip = res.data;
this.form.memberName = res.data.memberName;
this.form.memberId = res.data.id;
this.form.integral = res.data.integral;
this.form.consumeIntegral = res.data.consumeIntegral;
this.form.integralMoney = res.data.integralMoney;
let form = { ...this.form };
this.form = JSON.parse(JSON.stringify(form));
var ids = { memberId: res.data.id };
recAccountList(ids).then((res) => {
var rechargeAccountList = [];
res.rows.forEach((item) => {
item.isShow = false;
item.isShows = false;
item.spendMoney = 0.0;
item.discoutMoney = 0.0;
item.cardOver = item.cardConsumeMoney;
//+ item.giftConsumeMoney;
item.cardOvers = item.cardConsumeMoney;
//+ item.giftConsumeMoney;
if (this.form.cardBuy == 1) {
if (item.type == 1) {
item.offsetMoney =
item.cardConsumeMoney / (item.discount / 100);
item.offsetMoney = Math.floor(item.offsetMoney * 100) / 100;
item.offsetMoney = this.getDecimal(item.offsetMoney);
} else {
item.offsetMoney = item.cardConsumeMoney;
//item.giftConsumeMoney +
}
} else {
item.offsetMoney = item.cardConsumeMoney;
//item.giftConsumeMoney+
}
rechargeAccountList.push(item);
});
this.rechargeAccountList = rechargeAccountList;
this.recCopyList = rechargeAccountList;
});
} else {
this.$message.warning({ message: res.message });
}
});
}
},
//打开修改购买套数
editCount() {
if (this.form.promotionName != "") {
this.countShow = true;
this.$nextTick(() => {
this.$refs.countInput.focus();
this.$refs.countInput.select();
});
}
},
//关闭修改购买套数
endEditCount() {
if (this.form.limitBuy == 1) {
if (this.form.count * 1 <= this.form.limitCount * 1) {
this.form.count = this.form.count * 1;
} else {
this.$message.info({
message: "每人限购" + this.form.limitCount + "套",
});
this.form.count = this.form.limitCount;
}
} else {
this.countShow = false;
}
this.form.amount =
(this.form.count * 1 * this.form.saleMoney).toFixed(2) * 1;
this.resetPay();
},
//打开修改卡付金额
openCard(row, index) {
if (this.form.memberName) {
if (row.cardOver <= this.form.debtMoney) {
row.spendMoney = row.cardOver;
} else {
row.spendMoney = this.form.debtMoney;
}
row.isShow = true;
row.spendMoney = row.spendMoney.toFixed(2) * 1;
} else {
this.$message.warning({ message: "请先输入会员手机号!" });
}
},
//关闭修改卡付金额
endEditCard(row) {
if (row.spendMoney * 1 > row.cardOver) {
this.$message.warning({ message: "支付金额不能大于可用金额!" });
} else {
row.spendMoney = row.spendMoney * 1;
row.isShow = false;
if (row.spendMoney * 1 >= 0) {
row.discoutMoney = (row.spendMoney / (row.discount / 100)).toFixed(2);
row.cardOvers = row.cardOver - row.spendMoney;
}
}
this.sumMoney();
},
//打开修改现付金额\
openpay(row, index) {
if (this.form.memberName) {
row.isShow = true;
row.payMoney = (this.form.debtMoney + row.payMoney).toFixed(2) * 1;
} else {
this.$message.info({ message: "请先输入会员手机号 !" });
}
},
//关闭修改现付金额\
endEdit(row) {
if (row.payMoney) {
row.payMoney = row.payMoney * 1;
} else {
row.payMoney = 0;
}
row.isShow = false;
this.sumMoney();
},
//打开促销项目单选列表
openPromotion() {
promotionPage({ pushState: 1 }).then((res) => {
//console.log(res);
if (res.code == "000000") {
let promotionList = [];
res.pageInfo.list.forEach((item) => {
item.beginDates = item.beginDate.replace(/\-/g, "/");
item.endDates = item.endDate.replace(/\-/g, "/");
if (
item.endDates > partten.dates &&
partten.dates > item.beginDates &&
item.state != 6
) {
promotionList.push(item);
}
});
this.promotionList = promotionList;
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
},
//点击选中
rowClick(row) {
this.radioPromotionValue = row.id;
this.radioPromotionValueList = row;
},
//选中促销项目确定方法
confirmPromotion() {
this.form = Object.assign(this.form, this.radioPromotionValueList);
this.form.amount = this.form.saleMoney * 1 * this.form.count * 1;
},
//打开促销列表
openSellList() {
this.getDocPage();
},
//获取促销单据列表
getDocPage() {
docPromotionPage({ id: "" }).then((res) => {
if (res.code == "000000") {
this.sellList = res.pageInfo.list;
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
},
//作废单据
cancel(row) {
cancelDocPromotion({ id: row.id }).then((res) => {
if (res.code == "000000") {
this.$message.success({ message: res.message });
this.getDocPage();
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
},
//获取现付列表
ctlist() {
ctlist({ id: "" }).then((res) => {
let payLists = [];
res.rows.forEach((item) => {
let items = {
payName: item.collectionTypeName,
payId: item.id,
payMoney: 0,
isShow: false,
};
payLists.push(items);
});
this.payLists = payLists;
});
},
//合计支付金额
sumMoney() {
let form = JSON.parse(JSON.stringify(this.form));
let payMoney = 0;
let spendMoney = 0;
let discoutMoney = 0;
this.payLists.forEach((item) => {
payMoney += item.payMoney * 1;
});
this.payMoneys = payMoney;
form.collectionCashAmount = payMoney;
this.rechargeAccountList.forEach((item) => {
spendMoney += item.spendMoney * 1;
if (form.cardLimit == 0) {
discoutMoney += item.spendMoney * 1;
} else {
discoutMoney += item.discoutMoney * 1;
}
});
this.spendMoneys = discoutMoney.toFixed(2) * 1;
this.payMoneys = payMoney.toFixed(2) * 1;
form.collectionRechargeAmount = spendMoney.toFixed(2) * 1;
form.debtMoney =
(form.amount - this.payMoneys - this.spendMoneys).toFixed(2) * 1;
this.form = JSON.parse(JSON.stringify(form));
},
// 保留两位小数
getDecimal(num) {
//判断是否有小数点
var s = num.toString().indexOf(".");
if (s == -1) {
//是整数
return (
(num || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, "$1,") + ".00"
);
} else {
//是小数
var arr = num.toString().split(".");
if (arr.length > 1 && arr[1].length < 2) {
//一位小数
return (
(arr[0] || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, "$1,") +
"." +
arr[1] +
"0"
);
} else {
//两位小数
return (
(arr[0] || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, "$1,") +
"." +
arr[1]
);
}
}
},
//指定列求和
//数组按对应字段合计返回方法
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 == "spendMoney") {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
sums[index] = "--";
}
}, 0);
sums[index] += " ";
} else 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() {
this.form = JSON.parse(JSON.stringify({}));
if (this.$route.query.promotionName != undefined) {
this.form = Object.assign(this.$route.query);
console.log(this.$route.query);
this.form.count = 1;
if (this.form.moneyType == 1) {
this.form.amount = 0;
this.form.debtMoney = 0;
this.form.saleMoney = 0;
} else {
this.form.amount = this.form.saleMoney * 1;
this.form.debtMoney = this.form.amount;
}
this.projectList = this.form.projectList;
this.projectList.forEach((item) => {
if (item.required == 0) {
item.status = 1;
this.$nextTick(() => {
this.$refs["regTable"].toggleRowSelection(item, true);
});
this.checkTableList.push(item);
} else {
item.status = 0;
}
});
this.copyForm = { ...this.form };
this.sessionStorageData = JSON.parse(
sessionStorage.getItem("sessionStorageData")
);
console.log(this.form);
}
this.ctlist();
this.toStaffRatio();
// 进入home组件的那一刻就会打印
// console.log("哎呀看见我了");
// console.log("----------activated--------");
},
};
</script>
<style>
.sellpacking {
width: 100%;
/* height: 100%; */
margin-bottom: 60px;
}
.sellpacking .el-collapse-item {
width: 600px;
}
.sellpacking .close {
display: flex;
justify-content: space-between;
padding-right: 50px;
}
.sellpackingDiv .el-radio__label {
display: none;
}
</style>