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.

901 lines
33 KiB
Vue

<template>
<el-dialog :close-on-click-modal="false" v-dialogDrag :title="title" :visible.sync="dialogVisible" width="80%" append-to-body :before-close="handleClose">
<div style="height:60vh;width:100%">
<el-form inline style="overflow: auto;height:57vh;">
<el-form-item label="名字:">
<div class="repayDiv">{{form.memberName}}
<i v-if="form.sex==1" class="el-icon-male text-blue"></i>
<i v-else class="el-icon-female text-pink"></i>
</div>
</el-form-item>
<el-form-item label="手机号码:">
<div class="repayDiv">{{form.mobilePhone}}</div>
</el-form-item>
<el-form-item label="总欠款:">
<div class="repayDiv text-price text-red">{{form.debtMoney}}</div>
</el-form-item>
<el-form-item label="本次还款:">
<div class="repayDiv text-price text-cyan">{{paymentMoney}}</div>
</el-form-item>
<el-form-item label="待付金额:">
<div class="repayDiv text-price text-cyan">{{debtMoneys}}</div>
</el-form-item>
<el-form-item label="疗程付:">
<div class="repayDiv text-price text-red">{{courseMoney}}</div>
</el-form-item>
<el-form-item label="充值付:">
<div class="repayDiv text-price text-red">{{recMoney}}</div>
</el-form-item>
<el-form-item label="现付金额:">
<div class="repayDiv text-price text-red">{{payMoney}}</div>
</el-form-item>
<el-form-item label="补单: ">
<div class="rowformdivs ">
<span style="cursor: pointer;" @click="openDate(recDateShow=true)" v-show="!recDateShow">{{form.additionDate }} </span>
<el-button size="mini" type="text" @click="(recDateShow=true)" v-if="!recDateShow"><i class="el-icon-edit"></i>补单</el-button>
<el-date-picker @blur='(recDateShow=false)' v-else v-focus ref="recDate" class="rowformdiv" v-model="form.additionDate" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker>
</div>
</el-form-item>
<el-alert title="选中列表进行还款" type="info" show-icon></el-alert>
<el-table :data="list" @selection-change="selRoleChangeHand" :row-key="getRowKey" :expand-row-keys="expandRowKeys" :row-class-name="tableRowClassName" @row-click="handleRowClick" ref="multipleTable" highlight-current-row tooltip-effect="dark">
<el-table-column type="selection" width="30" align="center"></el-table-column>
<el-table-column type="expand" width="0">
<template slot-scope="scope">
<el-form inline class="margin-top-xs margin-left-xs">
<el-form-item label='员工'>
<div class="flex align-center form-width-m">
<el-select filterable default-first-option clearable @clear="clear(scope.row,'staffList')" v-model="scope.row.staffLists" placeholder="请选择" @change="handleChange($event,scope.row,'staffList')">
<el-option v-for="(item,index) in options" :key="index" :label="item.label" :value="item.id">
</el-option>
</el-select>
<div class="el-icon-edit-outline text-xs text-cyan" @click.stop="openStaffRatio(scope.row,'staffList')"></div>
</div>
</el-form-item>
<el-form-item label='高管'>
<div class="flex align-center form-width-m">
<el-select filterable default-first-option clearable @clear="clear(scope.row,'managerList')" v-model="scope.row.managerLists" placeholder="请选择" @change="handleChange($event,scope.row,'managerList')">
<el-option v-for="(item,index) in managerOptions" :key="index" :label="item.label" :value="item.id">
</el-option>
</el-select>
<div class="el-icon-edit-outline text-xs text-cyan" @click.stop="openStaffRatio(scope.row,'managerList')"></div>
</div>
</el-form-item>
<el-form-item label='管理层'>
<div class="flex align-center form-width-m">
<el-select filterable default-first-option clearable @clear="clear(scope.row,'adminList')" v-model="scope.row.adminLists" placeholder="请选择" @change="handleChange($event,scope.row,'adminList')">
<el-option v-for="(item,index) in adminOptions" :key="index" :label="item.label" :value="item.id">
</el-option>
</el-select>
<div class="el-icon-edit-outline text-xs text-cyan" @click.stop="openStaffRatio(scope.row,'adminList')"></div>
</div>
</el-form-item>
</el-form>
</template>
</el-table-column>
<el-table-column prop="storeNum" label="门店编码" show-overflow-tooltip align="center" min-width="70"></el-table-column>
<el-table-column prop="storeName" label="门店名称" show-overflow-tooltip align="center" min-width="80"></el-table-column>
<el-table-column prop="docNum" show-overflow-tooltip label="单号" align="center" min-width="80"></el-table-column>
<el-table-column prop="docDate" show-overflow-tooltip label="时间" align="center" min-width="100"></el-table-column>
<el-table-column prop="docType" label="类型" align="center" width="70">
<template slot-scope="scope">
<div>{{scope.row.docType=='card_use'?'疗程':scope.row.docType=='promotion_card_use'?'促销':scope.row.liftType==1?'升降级':'正常充值'}}</div>
</template>
</el-table-column>
<el-table-column prop="tradeName" show-overflow-tooltip label="名称" align="center" min-width="90"></el-table-column>
<el-table-column prop="tradeMoney" label="成交额" align="center" width="75"></el-table-column>
<el-table-column prop="debtMoney" label="欠款" align="center" width="75"></el-table-column>
<el-table-column prop="paymentMoney" label="本次还款" align="center" width="75">
<template slot-scope="scope">
<div @click.stop>
<div class="text-cyan" v-if="editDebtIndex!=scope.$index" @click="openEditPayMoney(scope.row,scope.$index,editDebtIndex=scope.$index)">
{{scope.row.paymentMoney}}
<i class="el-icon-edit text-cyan"></i>
</div>
<el-input v-focus type="number" class="form-input-width-xs" v-else @blur="endEdutPayMoney(scope.row,editDebtIndex=-1)" v-model="scope.row.paymentMoney"></el-input>
</div>
</template>
</el-table-column>
<el-table-column prop="courseMoney" label="疗程付" align="center" width="75"></el-table-column>
<el-table-column prop="recMoney" label="充值付" align="center" width="75"></el-table-column>
<el-table-column prop="repayMoney" label="现付" align="center" width="75"></el-table-column>
<el-table-column v-if="headOffice" label="疗程还款" align="center" width="90">
<template slot-scope="props">
<!-- 疗程卡付列表 -->
<div @click.stop="">
<el-button size="mini" slot="reference" @click="openPro(props.row)">疗程卡包</el-button>
</div>
</template>
</el-table-column>
<el-table-column v-if="headOffice" label="充值还款" align="center" width="90">
<template slot-scope="props">
<!-- 充值卡付列表 -->
<el-button size="mini" slot="reference" @click="openRec(props.row)">充值卡包</el-button>
<!-- <div @click.stop="" v-if="props.row.docType!='card_recharge'">
</div>
<div v-else click.stop="" class="text-red">不能卡付</div> -->
</template>
</el-table-column>
<el-table-column align="center" label="操作" width="90" v-if="headOffice">
<template slot-scope="scope">
<el-button @click.stop="cancel(scope.row)" size="mini" type="primary">取消欠款</el-button>
</template>
</el-table-column>
</el-table>
<!-- 现付列表 -->
<el-form-item label="支付:">
<div style="width:300px" class="padding-xs border border-radius-10 margin-top-xs">
<el-table :data="payLists" :summary-method="getSummaries" show-summary>
<el-table-column align="center" prop="payName" label="支付方式" min-width="100">
<template slot-scope="scope"><span style="cursor: pointer;" @click="openEditMoney(scope.row,scope.$index)">{{scope.row.payName}}</span></template>
</el-table-column>
<el-table-column align="center" prop="payMoney" label="本次支付" min-width="80">
<template slot-scope="scope">
<div class="form-input-width pointer text-cayn" v-if="payIndex!=scope.$index" @click="openEditMoney(scope.row,scope.$index,payIndex=scope.$index)" style="width:60px;cursor: pointer;margin-left:30px">
{{scope.row.payMoney}}
<i class="el-icon-edit text-cyan"></i>
</div>
<el-input v-focus class="form-input-width-xs" v-model="scope.row.payMoney" @blur="endEditMoney(scope.row,payIndex=-1)" type="number" v-else></el-input>
</template>
</el-table-column>
</el-table>
</div>
</el-form-item>
</el-form>
</div>
<!-- 取消还款组件 -->
<cancel ref="cancel" @cancelData="getData"></cancel>
<rec ref="rec" @recData="recData"></rec>
<pro ref="pro" @proData="proData"></pro>
<staffratio ref="staffratio" @staffratioData="staffratioData"></staffratio>
<span slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="handleClose">取 消</el-button>
<el-button size="mini" type="primary" :loading="loading" :disabled="multipleSelection.length==0" @click="confirms(loading=true)"> </el-button>
</span>
</el-dialog>
</template>
<script>
import {
ctlist,
selectList,
debtPage,
addrepay,
selectOne,
addCancelDebtList,
couAccountList,
recAccountCashList,
selectListType,
QuerCompetent,
} from "@/api/eashier.js";
import cancel from "./components/cancel.vue";
import admin from "@/components/staffList/admin/index";
import manager from "@/components/staffList/manager/index";
import staffsles from "@/components/staffList/staff/index";
import rec from "./components/rec.vue";
import pro from "./components/pro.vue";
import staffratio from "@/components/staffList/staffratio/index";
export default {
components: {
cancel,
staffsles,
manager,
admin,
rec,
pro,
staffratio,
},
data() {
return {
headOffice: false, //是否总店
staffList: [], //员工占比列表
proList: [], //疗程支付列表
recList: [], //充值支付列表
proCopyList: [], //疗程支付列表初始值
recCopyList: [], //充值支付列表初始值
payIndex: -1, //现付列表>本次支付:下标
editDebtIndex: -1, //欠款列表>待付金额:下标
dialogVisible: false, //弹窗开关 //弹窗开关
title: "还款", //弹窗标题
expandRowKeys: [],
list: [], //主数组
payLists: [], //现付列表
recDateShow: false, //是否补单 补单日期开关
debtMoneys: 0, //总待付金额
payMoney: 0, //总实付金额
multipleSelection: [], //多选选中列表
loading: false, //提交加载动画
form: {}, //主对象
rowIndex: -1, //欠款列表下标
proIndex: -1, //疗程支付列表>支付次数:下标
recIndex: -1, //充值支付列表>支付次数:下标
recMoney: 0,
courseMoney: 0,
payMoney: 0,
paymentMoney: 0,
clickIndex: -1, //欠款列表>打开疗程/充值列表:下标
options: [], //员工下拉选择列表
adminOptions: [], //管理员下拉选择列表
managerOptions: [], //高管下拉选择列表
getRowKey(row) {
return row.index; // 返回当前行id
},
};
},
methods: {
openStaffRatio(row, text) {
this.$refs.staffratio.show(row, text);
},
staffratioData(v) {
console.log(v);
this.list.forEach((item, index) => {
if (index == v.index) {
item[text] = v.list;
}
});
},
clear(row, text) {
let form = { ...row };
form[text] = [];
console.log(form);
this.list.splice(row.index, 1, form);
},
//打开充值卡付列表
openPro(row) {
let proList = [];
this.list.forEach((item, index) => {
console.log(item);
item.proList.forEach((items) => {
if (items.payNumber > 0) {
items.courseRestCount = items.courseRestCount;
} else {
items.courseRestCount = items.courseRestCount - items.payNumber;
}
});
});
this.$refs.pro.show(row);
},
proData(v) {
console.log(v);
let form = JSON.parse(JSON.stringify(v));
console.log(form);
this.list.splice(form.index, 1, form);
console.log(this.list);
this.sumList();
// this.restPro(form);
},
restPro(form) {
if (form.courseMoney > 0) {
var list = [];
var listCopy = [];
form.proList.forEach((item) => {
item.courseConsumeCount = item.courseConsumeCount - item.payNumber;
item.courseRestCount = item.courseRestCount - item.payNumber;
list.push(item);
});
this.list.forEach((item) => {
let proList = [];
if (item.index != form.index) {
item.proList.forEach((items, indexs) => {
if (items.payNumber == 0) {
list[indexs].payNumber = 0;
list[indexs].payMoney = 0;
items = list[indexs];
}
proList.push(items);
});
item.proList = proList;
}
listCopy.push(item);
});
this.list = listCopy;
console.log(this.list);
}
},
openRec(row) {
this.$refs.rec.show(row);
},
recData(v) {
let form = JSON.parse(JSON.stringify(v));
this.list.splice(form.index, 1, form);
this.sumList();
// this.restRec(form);
},
restRec(form) {
if (form.recMoney > 0) {
var list = [];
form.recList.forEach((item) => {
item.cardRestMoney = item.cardRestMoney - item.payMoney;
item.cardConsumeMoney = item.cardConsumeMoney - item.payMoney;
list.push(item);
});
this.list.forEach((item) => {
let recList = [];
if (item.index != form.index) {
item.recList.forEach((items, indexs) => {
if (items.payMoney == 0) {
list[indexs].payMoney = 0;
items = list[indexs];
}
recList.push(items);
console.log(recList);
});
item.recList = recList;
}
});
}
},
//关闭弹窗前的回调方法
handleClose() {
this.form = Object.assign({});
this.debtMoneys = 0;
this.payMoney = 0;
this.tradeMoney = 0;
this.payLists = [];
this.list = [];
this.multipleSelection = [];
this.staffList = [];
this.dialogVisible = false;
},
//打开取消还款弹窗
cancel(row) {
delete row.adminList;
delete row.entities;
delete row.managerList;
delete row.docDate;
delete row.adminList;
this.$refs.cancel.show(row);
},
//组件传值
show(form) {
Object.assign(this.$data, this.$options.data.call(this));
this.form = { ...form };
this.dialogVisible = true;
this.headOffice =
sessionStorage.getItem("headOffice") * 1 == 1 ? true : false;
this.getData();
},
//获取会员疗程卡包 充值卡包
getPage() {
// 充值卡包
recAccountCashList({
memberId: this.form.id,
}).then((res) => {
if (res.code == "000000") {
let recCopyList = [];
res.rows.forEach((item) => {
item.cardOver = item.cardRestMoney;
item.payMoney = 0;
if (item.cardRestMoney == item.cardConsumeMoney) {
recCopyList.push(item);
}
});
this.recCopyList = recCopyList;
} else {
this.$alert(res.message, "查询会员卡包", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
// 疗程卡包
couAccountList({ memberId: this.form.id }).then((res) => {
if (res.code == "000000") {
let proCopyList = [];
res.rows.forEach((item) => {
item.payMoney = 0;
item.payNumber = 0;
item.payMoney = (item.payNumber * item.price).toFixed(2) * 1;
if (item.courseRestCount == item.courseConsumeCount) {
proCopyList.push(item);
}
});
this.proCopyList = proCopyList;
} else {
this.$alert(res.message, "查询会员疗程", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
},
//获取数据
async getData() {
this.getPage();
//获取员工列表
selectList({ id: "" }).then((res) => {
if (res.code == "000000") {
res.rows.forEach((item) => {
item.label = item.brandNumber + "-" + item.staffName;
delete item.state;
item.ratio = 100;
});
this.options = Array.from(new Set(res.rows));
} else {
this.$alert(res.message, "加载员工列表", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
//获取员工列表
selectListType({ type: 0 }).then((res) => {
if (res.code == "000000") {
res.rows.forEach((item) => {
item.label = item.brandNumber + "-" + item.staffName;
item.ratio = 100;
delete item.state;
});
this.adminOptions = res.rows;
} else {
this.$alert(res.message, "加载员工提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
//获取高管列表
QuerCompetent({ type: 0, pageSize: 999 }).then((res) => {
if (res.code == "000000") {
res.pageInfo.list.forEach((item) => {
item.label = item.brandNumber + "-" + item.staffName;
item.ratio = 100;
delete item.state;
});
this.managerOptions = res.pageInfo.list;
} else {
this.$alert(res.message, "加载高管提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
//获取现付列表
ctlist({ id: "" }).then((res) => {
if (res.code == "000000") {
res.rows.forEach((item) => {
item.payMoney = 0;
item.payName = item.collectionTypeName;
item.payId = item.id;
});
this.payLists = res.rows;
}
});
let form = {
pageSize: 99,
memberId: this.form.id,
state: 0,
storeId: this.form.storeId,
};
//获取欠款列表
debtPage(form).then((res) => {
if (res.code == "000000") {
let list = [];
res.pageInfo.list.forEach((element) => {
element.yetMoney = element.tradeMoney - element.debtMoney;
if (element.docType == "card_use") {
element.type = "疗程";
}
if (element.docType == "card_recharge") {
element.type = "充值";
}
element.entities.forEach((item) => {
item.staffName = item.saleStaffName;
item.id = item.saleStaffId;
item.identityCard = item.saleIdentityCard;
item.ratio = item.saleRatio;
item.ratioShow = false;
if (item.id) {
item.staffNames = item.brandNumber + "--" + item.staffName;
}
});
element.staffList = element.entities;
selectOne({ type: 7, orderId: element.id }).then((res) => {
if (res.code == "000000") {
var managerList = [];
var adminList = [];
res.rows.forEach((item) => {
if (item.staffType == 0) {
item.staffNames = item.brandNumber + "--" + item.staffName;
managerList.push(item);
}
if (item.staffType == 1) {
item.staffNames = item.brandNumber + "--" + item.staffName;
adminList.push(item);
}
});
if (managerList.length == 0) {
managerList.push({ ratio: 100 });
}
if (adminList.length == 0) {
adminList.push({ ratio: 100 });
}
if (element.entities.length == 0) {
element.entities.push({ ratio: 100 });
element.staffList.push({ ratio: 100 });
}
element.staffList.forEach((items, index) => {
if (items.id) {
if (index == 0) {
element.staffLists =
items.brandNumber + "-" + items.staffName;
}
} else {
element.staffLists = "";
}
});
adminList.forEach((items, index) => {
if (items.id) {
if (index == 0) {
element.adminLists =
items.brandNumber + "-" + items.staffName;
}
} else {
element.adminLists = "";
}
});
managerList.forEach((items, index) => {
if (items.id) {
if (index == 0) {
element.managerLists =
items.brandNumber + "-" + items.staffName;
}
} else {
element.managerLists = "";
}
});
var form = {
debtId: element.id,
storeName: element.storeName,
storeNum: element.storeNum,
memberId: element.memberId,
memberName: element.memberName,
memberIdentityCard: element.memberIdentityCard,
mobilePhone: element.mobilePhone,
docId: element.docId,
docNum: element.docNum,
docDate: element.docDate,
docType: element.docType,
tradeId: element.tradeId,
tradeName: element.tradeName,
tradeMoney: element.tradeMoney,
yetMoney: element.yetMoney,
debtMoney: element.debtMoney,
accountId: element.accountId,
paymentMoney: element.debtMoney,
managerLists: element.managerLists,
adminLists: element.adminLists,
staffLists: element.staffLists,
recMoney: 0,
courseMoney: 0,
repayMoney: element.debtMoney,
entities: element.entities,
staffList: element.staffList,
salesAchievement: element.salesAchievement,
salesCommission: element.salesCommission,
cardSalesAchievement: element.cardSalesAchievement,
cardSalesCommission: element.cardSalesCommission,
typeRatio: element.typeRatio,
adminList: adminList,
managerList: managerList,
cancelDebtMxes: element.cancelDebtMxes,
};
var that = this;
setTimeout(() => {
form.proList = that.proCopyList;
form.recList = that.recCopyList;
console.log(form);
list.push(form);
}, 300);
} else {
this.$alert(res.message, "加载高管", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
});
this.list = list;
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
},
//返回当前行的下标
tableRowClassName({ row, rowIndex }) {
row.index = rowIndex;
},
//确定返回方法
confirms() {
if (this.form.additionDate) {
this.form.isAddition = 1;
} else {
this.form.isAddition = 0;
}
let payLists = [];
let debtMoney = 0;
this.payLists.forEach((item) => {
if (item.payMoney > 0) {
let items = {
payId: item.payId,
payName: item.payName,
payMoney: item.payMoney,
};
payLists.push(items);
}
});
delete this.form.moneys;
this.form.paymentMoney = this.payMoney;
this.form.payMoney = this.payMoney;
let repayAccountListRequests = [];
console.log(this.multipleSelection);
this.multipleSelection.forEach((item) => {
console.log(item);
debtMoney += item.debtMoney;
item.payMoney = item.paymentMoney;
item.paymentMoney = item.paymentMoney;
item.entities = [...item.staffList];
item.proList.forEach((items) => {
if (items.payNumber > 0 || items.payMoney > 0) {
let pro = {
accountName: items.courseProjectName,
accountNum: items.courseProjectNum,
payNumber: items.payNumber,
payMoney: items.payMoney,
accountType: 1,
accountId: items.id,
storeId: items.storeId,
storeName: items.storeName,
};
repayAccountListRequests.push(pro);
}
});
item.recList.forEach((items) => {
if (items.payMoney > 0) {
let rec = {
accountName: items.rechargeTypeName,
accountNum: items.rechargeTypeNum,
payMoney: items.payMoney,
accountType: 0,
accountId: items.id,
storeId: items.storeId,
storeName: items.storeName,
};
repayAccountListRequests.push(rec);
}
});
item.repayAccountListRequests = repayAccountListRequests;
delete item.type;
delete item.docDate;
delete item.yetMoney;
});
this.form.debtMoney = debtMoney;
if (this.debtMoneys != 0) {
this.$message.error({
message: "还存在欠款, 不能进行还款 !",
});
this.loading = false;
} else {
this.form.payLists = payLists;
let repayTradeLists = [];
this.multipleSelection.forEach((item) => {
item.staffRequests = item.entities;
let salesmens = [];
item.managerList.forEach((item) => {
if (item.id) {
item.staffType = 0;
salesmens.push(item);
}
});
item.adminList.forEach((item) => {
if (item.id) {
item.staffType = 1;
salesmens.push(item);
}
});
item.salesmens = salesmens;
repayTradeLists.push(item);
});
delete this.form.debtMoneys;
this.form.repayTradeLists = repayTradeLists;
addrepay(this.form).then((res) => {
this.loading = false;
if (res.code == "000000") {
this.$message.success({
message: res.message,
});
this.dialogVisible = false;
this.$emit("repaymentData");
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
}
},
//打开每张欠款单支付的金额
openEditPayMoney(row, index) {
row.paymentMoney = row.paymentMoney * 1;
},
//关闭每张欠款单支付的金额
endEdutPayMoney(row) {
row.paymentMoney = row.paymentMoney * 1;
row.repayMoney =
(row.paymentMoney - row.courseMoney - row.recMoney).toFixed(2) * 1;
this.multipleSelection = this.noRepeat(this.multipleSelection);
this.sumList();
},
//选择单据选中
selRoleChangeHand(row) {
this.multipleSelection = row;
this.multipleSelection = this.noRepeat(this.multipleSelection);
console.log(this.multipleSelection);
this.multipleSelection.forEach((item) => {
this.$nextTick(() => {
this.expandRowKeys.push(item.index);
});
this.handleRowClick(item);
});
this.sumList(1);
},
//点击行触发,选中或不选中复选框
handleRowClick(row) {
this.rowIndex = row.index;
this.$nextTick(() => {
this.$refs.multipleTable.toggleRowExpansion(row);
});
this.sumList(1);
var that = this;
setTimeout(() => {
this.$nextTick(() => {
if (that.$refs.staffsles) {
that.$refs.staffsles.show(row.entities);
that.$refs.manager.show(row.managerList);
that.$refs.admin.show(row.adminList);
}
});
}, 200);
},
//打开修改现付金额
openEditMoney(row, index) {
if (this.form.numMoney != 0) {
row.payMoney = (row.payMoney * 1 + this.debtMoneys).toFixed(2) * 1;
}
},
//关闭修改现付金额
endEditMoney(row) {
var number = 0;
if (row.payMoney) {
row.payMoney = row.payMoney * 1;
} else {
row.payMoney = 0;
}
this.multipleSelection = this.noRepeat(this.multipleSelection);
this.multipleSelection.forEach((item) => {
number += item.repayMoney * 1;
});
let num = 0;
this.payLists.forEach((item) => {
num += item.payMoney * 1;
});
this.payMoney = num;
this.debtMoneys = (this.debtMoneys - num).toFixed(2) * 1;
if (this.payMoney != number) {
this.debtMoneys = (number - this.payMoney).toFixed(2) * 1;
} else {
this.debtMoneys = 0;
}
},
sumList() {
let course = 0;
let rec = 0;
let pay = 0;
var payMoney = 0;
let paymentMoney = 0;
this.multipleSelection = this.noRepeat(this.multipleSelection);
this.multipleSelection.forEach((item) => {
payMoney += item.repayMoney * 1;
course += item.courseMoney * 1;
rec += item.recMoney * 1;
pay += item.repayMoney * 1;
paymentMoney += item.paymentMoney * 1;
});
this.courseMoney = course.toFixed(2) * 1;
this.recMoney = rec.toFixed(2) * 1;
this.payMoney = pay.toFixed(2) * 1;
this.paymentMoney = paymentMoney.toFixed(2) * 1;
this.debtMoneys = 0;
this.debtMoneys = payMoney;
},
//数组按对应字段合计返回方法
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 {
return prev;
}
}, 0);
sums[index] += " ";
} else {
sums[index] = "--";
}
});
return sums;
},
},
mounted() {
this.$nextTick(function () {
this.$on("list", function () {
//console.log('我是子组件方法');
});
});
},
};
</script>
<style scoped>
.repayDiv {
width: 100px;
}
.setting {
border-bottom: #333 1px solid;
}
.setting .el-form-item {
margin: 0;
padding: 0;
}
.setting .el-form-item__content {
line-height: 50px;
}
.setting i {
display: none;
}
.el-table__expand-icon {
display: none !important;
}
</style>