负卡金修改,会员转门店与取消还款添加
parent
2b65500ce9
commit
592d02c7ed
@ -0,0 +1,287 @@
|
||||
<template>
|
||||
<el-dialog :close-on-click-modal="false" v-dialogDrag :title="title" :visible.sync="detailDialog" width="80%" append-to-body :before-close="handleClose">
|
||||
<el-form :model="form" inline label-width="100px">
|
||||
<el-form-item label="单号:">
|
||||
<div class="editstaffdiv">
|
||||
{{form.docNum}}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="会员名字:">
|
||||
<div class="editstaffdiv">
|
||||
{{form.memberName }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="业务名称:">
|
||||
<div class="editstaffdiv">
|
||||
{{form.tradeName }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="类别:">
|
||||
<div class="editstaffdiv">
|
||||
<div v-show="form.docType=='card_use'">疗程单</div>
|
||||
<div v-show="form.docType=='card_recharge'">充值单</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<br>
|
||||
<el-form-item label="成交金额:">
|
||||
<div class="editstaffdiv">
|
||||
{{form.tradeMoney }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="待付金额:">
|
||||
<div class="editstaffdiv">
|
||||
{{form.debtMoney }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="还款金额:">
|
||||
<div class="editstaffdiv">
|
||||
{{form.repayMoney }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="实付金额:">
|
||||
<div class="editstaffdiv">
|
||||
{{form.payMoney }}
|
||||
</div>
|
||||
</el-form-item><br>
|
||||
<el-form-item label="补单日期:" v-show="form.isAddition==1">
|
||||
<div class="editstaffdiv">
|
||||
{{form.additionDate }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<div class="border-radius-10 border padding-xs bg-white margin-bottom-xs" style="width:905px;margin-left:100px">
|
||||
<el-table :data="form.repayAccountListRequests" :summary-method="getSummaries" show-summary>
|
||||
<el-table-column align="center" prop="accountNum" show-overflow-tooltip label="帐户编码" min-width="100"></el-table-column>
|
||||
<el-table-column align="center" prop="accountName" show-overflow-tooltip label="帐户名称" min-width="100"></el-table-column>
|
||||
<el-table-column align="center" prop="accountName" label="帐户类型" min-width="80">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.accountType==0?'充值':'疗程'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="payNumber" label="支付次数" min-width="75">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.payNumber?scope.row.payNumber:'--'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="payMoney" label="支付金额" min-width="75"></el-table-column>
|
||||
<el-table-column align="center" prop="storeNum" show-overflow-tooltip label="门店编码" min-width="100"></el-table-column>
|
||||
<el-table-column align="center" prop="storeName" show-overflow-tooltip label="门店名称" min-width="100"></el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<el-form-item style="display: inline-block;" label="业务员:">
|
||||
<div class="flex justify-start align-start flex-wrap">
|
||||
<staffsles ref="staffsles" @staffslesData="staffslesData"></staffsles>
|
||||
<admin ref="admin" @adminData="adminData"></admin>
|
||||
<manager ref="manager" @managerData="managerData"></manager>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button size="mini" type="primary" plain @click="cancel()">取 消</el-button>
|
||||
<el-button size="mini" v-if="form.isCancel==0&&title!='明细'" type="primary" @click="subStaffRatio()">修 改</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { repayEditStaff, selectOne } from "@/api/eashier.js";
|
||||
import admin from "@/components/staffList/admin/index";
|
||||
import manager from "@/components/staffList/manager/index";
|
||||
import staffsles from "@/components/staffList/staff/index";
|
||||
export default {
|
||||
components: {
|
||||
staffsles,
|
||||
manager,
|
||||
admin,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
detailDialog: false,
|
||||
activeNames: "员工",
|
||||
rowfromWidth: "80px",
|
||||
sessionStorageData: {}, //门店参数集合
|
||||
title: "", //弹窗标题
|
||||
form: {}, //主对象
|
||||
};
|
||||
},
|
||||
|
||||
methods: {
|
||||
//关闭弹窗前的回调方法
|
||||
handleClose() {
|
||||
this.form = Object.assign({});
|
||||
this.detailDialog = false;
|
||||
},
|
||||
setStaff() {
|
||||
var that = this;
|
||||
this.$nextTick(() => {
|
||||
that.$refs.staffsles.show(that.form.entities);
|
||||
that.$refs.admin.show(that.form.adminList);
|
||||
that.$refs.manager.show(that.form.managerList);
|
||||
});
|
||||
},
|
||||
//员工占比返回方法
|
||||
staffslesData(v) {
|
||||
console.log(v);
|
||||
this.form.entities = [...v];
|
||||
},
|
||||
//高管占比返回方法
|
||||
managerData(v) {
|
||||
this.form.managerList = [...v];
|
||||
},
|
||||
//管理员占比返回方法
|
||||
adminData(v) {
|
||||
this.form.adminList = [...v];
|
||||
},
|
||||
cancel() {
|
||||
this.detailDialog = false;
|
||||
this.$emit("detailData");
|
||||
},
|
||||
//组件传值
|
||||
show(form, text) {
|
||||
if (text == "明细") {
|
||||
this.title = text;
|
||||
} else {
|
||||
this.title = "明细/修改";
|
||||
}
|
||||
this.detailDialog = true;
|
||||
this.sessionStorageData = JSON.parse(
|
||||
sessionStorage.getItem("sessionStorageData")
|
||||
);
|
||||
this.getData(form);
|
||||
},
|
||||
getData(row) {
|
||||
this.form = { ...row };
|
||||
this.form.entities.forEach((item) => {
|
||||
item.staffName = item.saleStaffName;
|
||||
item.id = item.saleStaffId;
|
||||
item.identityCard = item.saleIdentityCard;
|
||||
item.ratio = item.saleRatio;
|
||||
item.staffNames = item.brandNumber + "--" + item.staffName;
|
||||
});
|
||||
selectOne({ type: 7, orderId: row.id }).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
let managerList = [];
|
||||
let 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 (this.form.entities.length == 0) {
|
||||
this.form.entities.push({ ratio: 100 });
|
||||
}
|
||||
this.form.managerLists = managerList;
|
||||
this.form.adminList = adminList;
|
||||
var that = this;
|
||||
this.$nextTick(() => {
|
||||
that.$refs.staffsles.show(that.form.entities);
|
||||
that.$refs.manager.show(that.form.managerLists);
|
||||
that.$refs.admin.show(that.form.adminList);
|
||||
});
|
||||
} else {
|
||||
this.$alert(res.message, "加载门店高管", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
//指定列求和
|
||||
//数组按对应字段合计返回方法
|
||||
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;
|
||||
},
|
||||
subStaffRatio() {
|
||||
this.form.entities.forEach((item) => {
|
||||
delete item.type;
|
||||
});
|
||||
let salesmens = [];
|
||||
this.form.managerLists.forEach((item) => {
|
||||
if (item.id) {
|
||||
item.staffType = 0;
|
||||
salesmens.push(item);
|
||||
}
|
||||
});
|
||||
this.form.adminList.forEach((item) => {
|
||||
if (item.id) {
|
||||
item.staffType = 1;
|
||||
salesmens.push(item);
|
||||
}
|
||||
});
|
||||
let ids = {
|
||||
id: this.form.id,
|
||||
repayDate: this.form.repayDate,
|
||||
staffRequests: this.form.entities,
|
||||
salesmens: salesmens,
|
||||
repayMoney: this.form.repayMoney,
|
||||
};
|
||||
repayEditStaff(ids).then((res) => {
|
||||
console.log(res);
|
||||
if (res.code == "000000") {
|
||||
this.$message.success({ message: res.message });
|
||||
this.detailDialog = false;
|
||||
this.$emit("detailData");
|
||||
} else {
|
||||
this.$alert(res.message, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
</style>
|
||||
@ -0,0 +1,310 @@
|
||||
<template>
|
||||
<el-dialog :close-on-click-modal="false" v-dialogDrag :title="title" :visible.sync="detailDialogVisible" width="80%" append-to-body :before-close="handleClose">
|
||||
<el-form :model="form" inline label-width="100px">
|
||||
<el-form-item label="还款单号:">
|
||||
<div class="form-width-xxs">
|
||||
{{form.repayNum}}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="还款时间:">
|
||||
<div class="form-width-xxs text-out" :title="form.repayDate">
|
||||
{{form.repayDate}}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="会员名字:">
|
||||
<div class="form-width-xxs">
|
||||
{{form.memberName}}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号码:">
|
||||
<div class="form-width-xxs">
|
||||
{{form.mobilePhone}}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="补单日期:" v-if="form.additionDate">
|
||||
<div class="form-width-xxs">
|
||||
{{form.additionDate}}
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table :data="form.repayTradeLists" row-key="index" :row-class-name="rowClassName" :expand-row-keys="expandRowKeys" :row-key="getRowKey" @row-click="rowClick" ref="list" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)' ,color:'#eeeeee'}">
|
||||
<el-table-column type="expand">
|
||||
<template slot-scope="props">
|
||||
<div style="width:920px;overflow: hidden;" class="border-radius-10 border padding-xs bg-white margin-bottom-xs">
|
||||
<el-table :data="props.row.repayAccountListRequests" :summary-method="getSummaries" show-summary>
|
||||
<el-table-column align="center" prop="accountNum" show-overflow-tooltip label="帐户编码" min-width="100"></el-table-column>
|
||||
<el-table-column align="center" prop="accountName" show-overflow-tooltip label="帐户名称" min-width="100"></el-table-column>
|
||||
<el-table-column align="center" prop="accountName" label="帐户类型" min-width="80">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.accountType==0?'充值':'疗程'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="payNumber" label="支付次数" min-width="75">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.payNumber?scope.row.payNumber:'--'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="payMoney" label="支付金额" min-width="75"></el-table-column>
|
||||
<el-table-column align="center" prop="storeNum" show-overflow-tooltip label="门店编码" min-width="100"></el-table-column>
|
||||
<el-table-column align="center" prop="storeName" show-overflow-tooltip label="门店名称" min-width="100"></el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex justify-start align-start flex-wrap">
|
||||
<staffsles ref="staffsles" @staffslesData="staffslesData"></staffsles>
|
||||
<admin ref="admin" @adminData="adminData"></admin>
|
||||
<manager ref="manager" @managerData="managerData"></manager>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="docNum" label="单号" min-width="120"></el-table-column>
|
||||
<el-table-column align="center" prop="tradeName" label="名称" min-width="120"></el-table-column>
|
||||
<el-table-column align="center" prop="docType" label="类别" min-width="120">
|
||||
<template slot-scope="scope">
|
||||
<div v-show="scope.row.docType=='card_recharge'">充值单</div>
|
||||
<div v-show="scope.row.docType=='card_use'">疗程单</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="tradeMoney" label="成交额" min-width="120"></el-table-column>
|
||||
<el-table-column align="center" prop="debtMoney" label="待付金额" min-width="120"></el-table-column>
|
||||
<el-table-column align="center" prop="payRechargeMoney" label="卡付" min-width="120"></el-table-column>
|
||||
<el-table-column align="center" prop="repayMoney" label="现付" min-width="120"></el-table-column>
|
||||
<el-table-column align="center" prop="payMoney" label="实付金额" min-width="120"></el-table-column>
|
||||
</el-table>
|
||||
<div style="width:280px" class="border-radius-10 border padding-xs bg-white">
|
||||
<el-table :data="form.payLists" :summary-method="getSummaries" show-summary :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)' ,color:'#eeeeee'}">
|
||||
<el-table-column align="center" prop="payName" label="支付方式" min-width="100"></el-table-column>
|
||||
<el-table-column align="center" prop="payMoney" label="支付金额" min-width="120"></el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<!-- <detail ref="detail" @detailData="detailData"></detail> -->
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button size="mini" type="primary" @click="handleClose">取消</el-button>
|
||||
<el-button size="mini" v-if="title=='修改'" type="primary" plain @click="confirm()">修改</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import detail from "./detail";
|
||||
import admin from "@/components/staffList/admin/index";
|
||||
import manager from "@/components/staffList/manager/index";
|
||||
import staffsles from "@/components/staffList/staff/index";
|
||||
import { repayEditStaff, selectOne } from "@/api/eashier.js";
|
||||
export default {
|
||||
components: {
|
||||
staffsles,
|
||||
manager,
|
||||
admin,
|
||||
detail,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
detailDialogVisible: false,
|
||||
title: "", //弹窗标题
|
||||
form: {}, //主对象
|
||||
staffLists: [{ brandNumber: "", staffName: "", ratio: 100 }],
|
||||
managerList: [{ brandNumber: "", staffName: "", ratio: 100 }],
|
||||
adminList: [{ brandNumber: "", staffName: "", ratio: 100 }],
|
||||
rowIndex: -1, //选中打开的下标
|
||||
getRowKey(row) {
|
||||
return row.id; // 返回当前行id
|
||||
},
|
||||
expandRowKeys: [],
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
//关闭弹窗前的回调方法
|
||||
handleClose() {
|
||||
this.form = Object.assign({});
|
||||
this.detailDialogVisible = false;
|
||||
this.$emit("detailData");
|
||||
},
|
||||
rowClassName({ row, rowIndex }) {
|
||||
row.index = rowIndex;
|
||||
},
|
||||
//员工占比返回方法
|
||||
staffslesData(v) {
|
||||
console.log(v);
|
||||
console.log(this.rowIndex);
|
||||
this.form.repayTradeLists[this.rowIndex].entities = [...v];
|
||||
console.log(this.form.repayTradeLists[this.rowIndex]);
|
||||
},
|
||||
//高管占比返回方法
|
||||
managerData(v) {
|
||||
this.form.repayTradeLists[this.rowIndex].managerList = [...v];
|
||||
},
|
||||
//管理员占比返回方法
|
||||
adminData(v) {
|
||||
this.form.repayTradeLists[this.rowIndex].adminList = [...v];
|
||||
},
|
||||
//组件传值
|
||||
show(form, title) {
|
||||
if (title == "明细") {
|
||||
this.title = title;
|
||||
} else {
|
||||
this.title = "修改";
|
||||
}
|
||||
this.form = form;
|
||||
console.log(form);
|
||||
|
||||
if (form.repayTradeLists.length == 1) {
|
||||
this.rowIndex = 0;
|
||||
form.repayTradeLists.forEach((item, index) => {
|
||||
item.index = index;
|
||||
});
|
||||
this.rowClick(form.repayTradeLists[0]);
|
||||
}
|
||||
form.repayTradeLists.forEach((item) => {
|
||||
item.additionDate = form.additionDate;
|
||||
item.isAddition = form.isAddition;
|
||||
});
|
||||
this.detailDialogVisible = true;
|
||||
},
|
||||
rowClick(row) {
|
||||
console.log(row);
|
||||
this.rowIndex = row.index;
|
||||
row.entities.forEach((item) => {
|
||||
item.staffName = item.saleStaffName;
|
||||
item.id = item.saleStaffId;
|
||||
item.identityCard = item.saleIdentityCard;
|
||||
item.ratio = item.saleRatio;
|
||||
item.staffNames = item.brandNumber + "--" + item.staffName;
|
||||
});
|
||||
selectOne({ type: 7, orderId: row.id }).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
let managerList = [];
|
||||
let 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 (row.entities.length == 0) {
|
||||
row.entities.push({ ratio: 100 });
|
||||
}
|
||||
row.managerList = managerList;
|
||||
row.adminList = adminList;
|
||||
this.$refs.list.toggleRowExpansion(row, true);
|
||||
var that = this;
|
||||
console.log(this.rowIndex);
|
||||
setTimeout(() => {
|
||||
that.$refs.staffsles.show(row.entities);
|
||||
that.$refs.manager.show(row.managerList);
|
||||
that.$refs.admin.show(row.adminList);
|
||||
}, 500);
|
||||
} else {
|
||||
this.$alert(res.message, "加载门店高管", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
confirm() {
|
||||
this.form.repayTradeLists.forEach((item) => {
|
||||
console.log(item);
|
||||
let entities = [];
|
||||
item.entities.forEach((items) => {
|
||||
delete items.type;
|
||||
if (items.id) {
|
||||
entities.push(items);
|
||||
}
|
||||
});
|
||||
let salesmens = [];
|
||||
item.managerList.forEach((items) => {
|
||||
if (items.id) {
|
||||
items.staffType = 0;
|
||||
salesmens.push(items);
|
||||
}
|
||||
});
|
||||
item.adminList.forEach((items) => {
|
||||
if (items.id) {
|
||||
items.staffType = 1;
|
||||
salesmens.push(items);
|
||||
}
|
||||
});
|
||||
item.salesmens = salesmens;
|
||||
item.staffRequests = entities;
|
||||
});
|
||||
repayEditStaff(this.form.repayTradeLists).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
this.$message.success({ message: res.message });
|
||||
this.$emit("detailData");
|
||||
this.detailDialogVisible = false;
|
||||
} else {
|
||||
this.$alert(res.message, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
//明细返回方法
|
||||
detailData(v) {
|
||||
this.detailDialogVisible = false;
|
||||
this.$emit("detailData");
|
||||
},
|
||||
detailEditStaff(row) {
|
||||
row.isCancel = this.form.isCancel;
|
||||
this.$refs.detail.show(row);
|
||||
},
|
||||
//指定列求和
|
||||
//数组按对应字段合计返回方法
|
||||
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;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
</style>
|
||||
@ -0,0 +1,723 @@
|
||||
<template>
|
||||
<!-- 还款单 -->
|
||||
<div class="repayment">
|
||||
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||||
<el-tab-pane label="还款单" name="还款单">
|
||||
<el-select v-if="headOffice == 1" ref="select" multiple collapse-tags filterable default-first-option v-model="queryForm.storeList" clearable @clear="getData" placeholder="请选择门店" @change="getData">
|
||||
<el-option v-for="item in options" :key="item.id" :label="item.label" :value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-input size="medium" class="form-width-ms" v-model="queryForm.docNum" placeholder="输入要查询的单据号" clearable></el-input>
|
||||
<el-input size="medium" class="form-width-ms" v-model="queryForm.memberName" placeholder="输入要查询的会员名字" clearable></el-input>
|
||||
<el-input size="medium" class="form-width-ms" maxlength="11" v-model="queryForm.mobilePhone" placeholder="输入要查询的11位会员手机号" oninput="this.value=this.value.replace(/\D/g,'')" pattern="[0-9]*" clearable></el-input>
|
||||
<el-button size="mini" type="primary" plain @click="getData">搜索</el-button>
|
||||
<el-table :data="billsList" class="margin-top-xs" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)' ,color:'#eeeeee'}" ref="multipleTable" highlight-current-row tooltip-effect="dark" stripe>
|
||||
<el-table-column align="center" label="状态" width="70" fixed="left">
|
||||
<template slot-scope="scope">
|
||||
<el-tag effect="dark" size="medium" :type="scope.row.isCancel==1?'primary':'success'"> <span v-show="scope.row.isCancel==1">作废</span><span v-show="scope.row.isCancel==0">正常</span> </el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="repayNum" label="单号" min-width="120"></el-table-column>
|
||||
<el-table-column align="center" prop="repayDate" label="日期" min-width="160"></el-table-column>
|
||||
<el-table-column align="center" prop="isAddition" label="是否补单" min-width="50">
|
||||
<template slot-scope="scope"><span v-show="scope.row.isAddition==0">否</span><span v-show="scope.row.isAddition==1">是</span></template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="memberName" label="会员名字" min-width="100"></el-table-column>
|
||||
<el-table-column align="center" prop="mobilePhone" label="手机号码" min-width="100"></el-table-column>
|
||||
<el-table-column align="center" prop="debtMoney" label="待付金额" min-width="80"></el-table-column>
|
||||
<el-table-column align="center" prop="payMoney" label="已支付" min-width="80"></el-table-column>
|
||||
<el-table-column align="center" prop="inputBy" label="录单人" min-width="80"></el-table-column>
|
||||
<el-table-column align="center" label="单据个数" min-width="80">
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.repayTradeLists!=undefined">
|
||||
{{scope.row.repayTradeLists.length}}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed="right" align="center" label="明细" width="76">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" plain @click="detail(scope.row,detailDialogVisible=true)">明细</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed="right" align="center" label="作废" width="76">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" :disabled="scope.row.isCancel==1" @click="cancel(scope.row)" v-role='5008002'>作废</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed="right" align="center" label="打印" width="76">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="success" :disabled="scope.row.isCancel==1" @click="print(scope.row,printDialogVisible=true) " v-role='5008003'>打印</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="block" style="margin-top:10px;">
|
||||
<!-- 分页组件 -->
|
||||
<el-pagination align="left" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="queryForm.pageNum" :page-sizes="[10,20,30,40,50]" :page-size="queryForm.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="取消欠款" name="取消欠款">
|
||||
<selec v-if="headOffice == 1" ref="selec" @selecData="selecData"></selec>
|
||||
<el-input size="medium" class="form-width-ms" v-model="queryForm.docNum" placeholder="输入要查询的单据号" clearable></el-input>
|
||||
<el-input size="medium" class="form-width-ms" v-model="queryForm.memberName" placeholder="输入要查询的会员名字" clearable></el-input>
|
||||
<el-input size="medium" class="form-width-ms" maxlength="11" v-model="queryForm.mobilePhone" placeholder="输入要查询的11位会员手机号" oninput="this.value=this.value.replace(/\D/g,'')" pattern="[0-9]*" clearable></el-input>
|
||||
<el-button size="mini" type="primary" plain @click="getData">搜索</el-button>
|
||||
<el-button @click="confirms(radioList)" size="mini" type="primary" :disabled="radioList.state==undefined">明细</el-button>
|
||||
<el-button @click="editOrder(1)" size="mini" type="primary" :disabled="radioList.state==3||radioList.state==5 ||radioList.state==1 ||radioList.state==undefined">送审</el-button>
|
||||
<el-button @click="editOrder(2)" size="mini" type="primary" :disabled="radioList.state==0||radioList.state==5||radioList.state==2||radioList.state==3||radioList.state==4||radioList.state==undefined" plain>回收</el-button>
|
||||
<el-button @click="editOrder(3)" size="mini" type="primary" :disabled="radioList.state==2||radioList.state==5||radioList.state==3 || radioList.state==0|| radioList.state==4||radioList.state==undefined">审核</el-button>
|
||||
<el-button @click="editOrder(4)" size="mini" type="primary" :disabled="radioList.state==0||radioList.state==5|| radioList.state==1||radioList.state==2|| radioList.state==4||radioList.state==undefined">反审核</el-button>
|
||||
<el-table :data="list" class="margin-top-xs" @row-dblclick="confirms" @row-click="clickRow" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)' ,color:'#eeeeee'}" ref="multipleTable" highlight-current-row tooltip-effect="dark" stripe>
|
||||
<el-table-column align="center" label="状态" min-width="130">
|
||||
<template slot-scope="scope">
|
||||
<div class="flex align-center">
|
||||
<el-radio v-model="radioValue" :label="scope.row.id" @change.native="(scope.row)">{{''}}
|
||||
</el-radio>
|
||||
<el-tag size="medium" effect="dark" :type="scope.row.state==0?'info':''||scope.row.state==1?'primary':''||scope.row.state==2?'info':''||scope.row.state==3?'success':''||scope.row.state==4?'warning':scope.row.state==5?'primary':''">
|
||||
<span v-show="scope.row.state==0">新创建</span>
|
||||
<span v-show="scope.row.state==1">已送审</span>
|
||||
<span v-show="scope.row.state==2">已回收</span>
|
||||
<span v-show="scope.row.state==3">已审核</span>
|
||||
<span v-show="scope.row.state==4">反审核</span>
|
||||
<span v-show="scope.row.state==5">已作废</span>
|
||||
<span v-show="scope.row.state==null">未划分</span>
|
||||
</el-tag>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="docType" label="类型" align="center" width="75">
|
||||
<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 align="center" prop="docNum" show-overflow-tooltip label="单号" min-width="120"></el-table-column>
|
||||
<el-table-column align="center" prop="docDate" show-overflow-tooltip label="日期" min-width="105"></el-table-column>
|
||||
<el-table-column align="center" prop="memberName" label="会员名字" min-width="80"></el-table-column>
|
||||
<el-table-column align="center" prop="mobilePhone" label="手机号码" min-width="100"></el-table-column>
|
||||
<el-table-column align="center" prop="tradeName" label="名称" min-width="120"></el-table-column>
|
||||
<el-table-column align="center" prop="tradeMoney" label="成交金额" min-width="80"></el-table-column>
|
||||
<el-table-column align="center" prop="debtMoney" label="待付金额" min-width="80"></el-table-column>
|
||||
<el-table-column align="center" prop="cancelMoney" label="取消欠款金额" min-width="110"></el-table-column>
|
||||
<el-table-column align="center" prop="cancelNum" label="取消欠款次数" min-width="110"></el-table-column>
|
||||
<el-table-column align="center" label="操作" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" :disabled="!(scope.row.state==4||scope.row.state==2||scope.row.state==0)" plain @click="(cancelForm=scope.row,cancelDialogVisible=true,title='修改')">修改</el-button>
|
||||
<el-button size="mini" type="primary" plain @click="del(scope.row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="block" style="margin-top:15px;">
|
||||
<!-- 分页组件 -->
|
||||
<el-pagination align="left" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="queryForm.pageNum" :page-sizes="[10,20,30,40,50]" :page-size="queryForm.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
<el-dialog :close-on-click-modal="false" v-dialogDrag :title="title" :visible.sync="cancelDialogVisible" width="650px" append-to-body>
|
||||
<el-form label-width="120px" inline>
|
||||
<div v-if="cancelForm.docType=='promotion_card_use'">
|
||||
<el-form-item label="会员名称">
|
||||
{{cancelForm.memberName}}
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号码">
|
||||
{{cancelForm.memberName}}
|
||||
</el-form-item>
|
||||
<el-form-item label="促销名称">
|
||||
{{cancelForm.tradeName}}
|
||||
</el-form-item>
|
||||
<el-form-item label="成交金额">
|
||||
<span class="text-red text-price">
|
||||
{{cancelForm.tradeMoney}}
|
||||
</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="欠款金额">
|
||||
<span class="text-cyan text-price">
|
||||
{{cancelForm.debtMoney}}
|
||||
</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="取消欠款">
|
||||
<span class="text-cyan text-price">
|
||||
{{cancelForm.cancelMoney}}
|
||||
</span>
|
||||
</el-form-item>
|
||||
<el-table :data="cancelForm.cancelDebtMxes" highlight-current-row tooltip-effect="dark">
|
||||
<el-table-column prop="courseProjectNum" show-overflow-tooltip label="项目编码" align="center" min-width="80"></el-table-column>
|
||||
<el-table-column prop="courseProjectName" show-overflow-tooltip label="项目名称" align="center" min-width="120"></el-table-column>
|
||||
<el-table-column prop="price" show-overflow-tooltip label="欠款" align="center" min-width="80">
|
||||
<el-table-column prop="debtMoney" show-overflow-tooltip label="金额" align="center" min-width="80"></el-table-column>
|
||||
<el-table-column prop="debtCount" show-overflow-tooltip label="次数" align="center" min-width="80"></el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column prop="price" show-overflow-tooltip label="取消欠款" align="center" min-width="80">
|
||||
<el-table-column prop="cancelMoney" show-overflow-tooltip label="金额" align="center" min-width="80">
|
||||
<template slot-scope="scope">
|
||||
<div @click.stop v-if="title=='修改'">
|
||||
<div class="text-cyan" v-if="editCancelMIndex!=scope.$index" @click="openEditCancelM(scope.row,scope.$index,editCancelMIndex=scope.$index)">
|
||||
{{scope.row.cancelMoney}}
|
||||
<i class="el-icon-edit text-cyan"></i>
|
||||
</div>
|
||||
<el-input v-focus type="number" class="form-input-width-xs" v-else @blur="endEditCancelM(scope.row,editCancelMIndex=-1)" v-model="scope.row.cancelMoney"></el-input>
|
||||
</div>
|
||||
<div v-else>{{scope.row.cancelMoney}}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="cancelNum" show-overflow-tooltip label="次数" align="center" min-width="80">
|
||||
<template slot-scope="scope">
|
||||
<div @click.stop v-if="title=='修改'">
|
||||
<div class="text-cyan" v-if="editCancelCIndex!=scope.$index" @click="openEditCancelC(scope.row,scope.$index,editCancelCIndex=scope.$index)">
|
||||
{{scope.row.cancelNum}}
|
||||
<i class="el-icon-edit text-cyan"></i>
|
||||
</div>
|
||||
<el-input v-focus type="number" class="form-input-width-xs" v-else @blur="endEditCancelC(scope.row,editCancelCIndex=-1)" v-model="scope.row.cancelNum"></el-input>
|
||||
</div>
|
||||
<div v-else>{{scope.row.cancelNum}}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div v-else>
|
||||
<el-form-item label="欠款帐户">
|
||||
{{cancelForm.tradeName}}
|
||||
</el-form-item>
|
||||
<el-form-item label="成交金额">
|
||||
<span class="text-red text-price">
|
||||
{{cancelForm.tradeMoney}}
|
||||
</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="欠款金额">
|
||||
<span class="text-cyan text-price">
|
||||
{{cancelForm.debtMoney}}
|
||||
</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="取消欠款金额">
|
||||
<el-input type="number" class="form-width-ms" v-model="cancelForm.cancelMoney"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="取消欠款次数" v-if="cancelForm.docType == 'card_use'">
|
||||
<el-input pattern="[0-9]*\" type="number" class="form-width-ms" v-model="cancelForm.cancelNum"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button size="mini" type="primary" plain @click="cancelDialogVisible = false">取 消</el-button>
|
||||
<el-button size="mini" v-if="title=='修改'" type="primary" @click="confirmCancel()">确 定 </el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog :close-on-click-modal="false" v-dialogDrag title="打印" :visible.sync="printDialogVisible" width="60%">
|
||||
<div id="printService" class="printDiv">
|
||||
<div class="text-center text-grey padding-xs">
|
||||
还款记录单
|
||||
</div>
|
||||
<hr>
|
||||
<el-form :model="printForm" :inline="true">
|
||||
<el-form-item label="">
|
||||
<div class="span" style="wdith:120px">{{printForm.storeName}}</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="">
|
||||
{{printForm.repayDate}}
|
||||
</el-form-item><br>
|
||||
<el-form-item label="还款单号:">
|
||||
{{printForm.repayNum}}
|
||||
</el-form-item><br>
|
||||
<el-form-item label="会员信息:">
|
||||
<div>{{printForm.memberName}} / {{printForm.mobilePhone}}</div>
|
||||
</el-form-item><br>
|
||||
<el-form-item label="欠款金额:">
|
||||
<div style="width:50px">{{printForm.debtMoney}}</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="还款金额:">
|
||||
<div>{{printForm.payMoney}}</div>
|
||||
</el-form-item>
|
||||
<div v-for="(item,index) in printForm.repayTradeLists" :key="index">
|
||||
<el-form-item label="帐户名称:">
|
||||
<div>
|
||||
<span class="text-bold">
|
||||
{{item.tradeName}}
|
||||
</span>
|
||||
<span class="text-cyan">
|
||||
还款:
|
||||
{{item.repayMoney}}
|
||||
</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<el-form-item label="签名:">
|
||||
<!-- <div style="height:30px;width:150px;border-bottom:1px solid #333"> </div> -->
|
||||
</el-form-item><br>
|
||||
<el-form-item label="服务热线:">
|
||||
{{printForm.telephone}}
|
||||
</el-form-item><br>
|
||||
<el-form-item label="打印时间:">
|
||||
{{printForm.printDate | dateFormat}}
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button size="mini" type="primary" plain @click="printDialogVisible = false">取 消</el-button>
|
||||
<el-button size="mini" type="primary" v-print="'#printService'">打 印</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
<el-dialog title="导入表格" :visible.sync="infoDialog" :close-on-click-modal='false'>
|
||||
<excel @fileData='fileData' @infoDialogV='infoDialogV'></excel>
|
||||
</el-dialog>
|
||||
<detail ref="detail" @detailData="detailData"></detail>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import {
|
||||
repayPage,
|
||||
repayCancel,
|
||||
repayEditStaff,
|
||||
selectOne,
|
||||
cancelDebtList,
|
||||
editCancelDebtList,
|
||||
auditCancelDebtList,
|
||||
theauditCancelDebtList,
|
||||
deleteCancelDebtList,
|
||||
recycleCancelDebtList,
|
||||
submitCancelDebtList,
|
||||
} from "@/api/eashier.js";
|
||||
import { organizations } from "@/api/storeManage.js";
|
||||
|
||||
import excel from "@/components/excel";
|
||||
import admin from "@/components/staffList/admin/index";
|
||||
import manager from "@/components/staffList/manager/index";
|
||||
import staffsles from "@/components/staffList/staff/index";
|
||||
import selec from "@/components/store/select/index";
|
||||
|
||||
export default {
|
||||
components: {
|
||||
staffsles,
|
||||
manager,
|
||||
admin,
|
||||
excel,
|
||||
detail,
|
||||
selec,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
headOffice: sessionStorage.getItem("headOffice") * 1,
|
||||
printDialogVisible: false, //打印弹窗开关
|
||||
detailDialogVisible: false,
|
||||
cancelDialogVisible: false,
|
||||
editStaffDialog: false,
|
||||
radiostaffvalue: "",
|
||||
radiostaffvalueList: {},
|
||||
activeName: "还款单",
|
||||
radioValue: null,
|
||||
radioList: {},
|
||||
options: [],
|
||||
editIndex: -1,
|
||||
title: "",
|
||||
pageNum: 1, // 当前页码
|
||||
pageSize: 10, // 每页的数据条数,
|
||||
printForm: {
|
||||
repayDate: "",
|
||||
recharge: "",
|
||||
repayNum: null,
|
||||
storeId: "",
|
||||
memberName: "",
|
||||
mobilePhone: null,
|
||||
money: null,
|
||||
backMoney: null,
|
||||
numMoney: null,
|
||||
numMoneys: null,
|
||||
telephone: "",
|
||||
printDate: new Date(),
|
||||
},
|
||||
editForm: {},
|
||||
billsList: [],
|
||||
form: {}, //主对象
|
||||
repayTradeLists: [],
|
||||
staffValue: "",
|
||||
entities: [],
|
||||
list: [], //主数组
|
||||
index: -1,
|
||||
total: 0, //分页总条数
|
||||
cancelForm: {},
|
||||
queryForm: {
|
||||
//查询对象
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
},
|
||||
infoDialog: false, //上传文件弹窗开关
|
||||
editCancelCIndex: -1,
|
||||
editCancelMIndex: -1,
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
confirms(row) {
|
||||
this.cancelForm = row;
|
||||
this.cancelDialogVisible = true;
|
||||
this.title = "明细";
|
||||
},
|
||||
openEditCancelM(row, index) {},
|
||||
endEditCancelM(row) {
|
||||
if (row.cancelMoney * 1 > row.debtMoney) {
|
||||
this.$message.waring({ message: "最高可以取消" + row.debtMoney });
|
||||
row.cancelMoney = row.debtMoney;
|
||||
} else {
|
||||
this.sumMoney();
|
||||
}
|
||||
},
|
||||
openEditCancelC(row, index) {
|
||||
let form = { ...row };
|
||||
},
|
||||
endEditCancelC(row) {
|
||||
if (row.cancelNum * 1 > row.debtCount) {
|
||||
this.$message.waring({ message: "最高可以取消" + row.debtCount });
|
||||
row.cancelNum = row.debtCount;
|
||||
} else {
|
||||
this.sumMoney();
|
||||
}
|
||||
},
|
||||
sumMoney() {
|
||||
let money = 0;
|
||||
let form = { ...this.cancelForm };
|
||||
this.cancelForm.cancelDebtMxes.forEach((item) => {
|
||||
money += item.cancelMoney * 1;
|
||||
});
|
||||
form.cancelMoney = money.toFixed(2) * 1;
|
||||
this.cancelForm = JSON.parse(JSON.stringify(form));
|
||||
},
|
||||
//明细返回方法
|
||||
detailData(v) {
|
||||
this.getData();
|
||||
},
|
||||
del(row) {
|
||||
deleteCancelDebtList({ id: row.id }).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
this.$message.success({ message: "删除成功!" });
|
||||
this.getData();
|
||||
} else {
|
||||
this.$alert(res.message, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
confirmCancel() {
|
||||
editCancelDebtList(this.cancelForm).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
this.cancelDialogVisible = false;
|
||||
this.$message.success({ message: "修改成功!" });
|
||||
this.getData();
|
||||
} else {
|
||||
this.$alert(res.message, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
editOrder(number) {
|
||||
if (number == 3) {
|
||||
let form = { id: this.radioList.id, state: number };
|
||||
auditCancelDebtList(form).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
this.$message.success({ message: "审核成功!" });
|
||||
this.getData();
|
||||
} else {
|
||||
this.$alert(res.message, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
if (number == 4) {
|
||||
let form = { id: this.radioList.id, state: number };
|
||||
theauditCancelDebtList(form).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
this.$message.success({ message: "反审核成功!" });
|
||||
this.getData();
|
||||
} else {
|
||||
this.$alert(res.message, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
if (number == 1) {
|
||||
let form = { id: this.radioList.id, state: number };
|
||||
submitCancelDebtList(form).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
this.$message.success({ message: "操作成功!" });
|
||||
this.getData();
|
||||
} else {
|
||||
this.$alert(res.message, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
if (number == 2) {
|
||||
let form = { id: this.radioList.id, state: number };
|
||||
recycleCancelDebtList(form).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
this.$message.success({ message: "操作成功!" });
|
||||
this.getData();
|
||||
} else {
|
||||
this.$alert(res.message, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
clickRow(row) {
|
||||
this.radioValue = row.id;
|
||||
this.radioList = row;
|
||||
},
|
||||
//切换标签页
|
||||
handleClick(tab, event) {
|
||||
console.log(tab, event);
|
||||
this.activeName = tab.name;
|
||||
this.getData();
|
||||
if (this.headOffice == 1) {
|
||||
this.$nextTick(() => {
|
||||
this.$refs.selec.show();
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
//上传文件方法
|
||||
fileData(v) {
|
||||
//console.log(v);
|
||||
},
|
||||
//返回上传文件弹窗状态
|
||||
infoDialogV(v) {
|
||||
this.infoDialog = v;
|
||||
},
|
||||
|
||||
//导出方法
|
||||
exit() {},
|
||||
|
||||
eidtStaff(index) {
|
||||
this.index = index;
|
||||
},
|
||||
//点击选中
|
||||
rowClick(row) {
|
||||
this.radiostaffvalue = row.id;
|
||||
this.radiostaffvalueList = row;
|
||||
},
|
||||
|
||||
detailEditStaff(row) {
|
||||
this.$refs.detail.show(row);
|
||||
},
|
||||
|
||||
//明细
|
||||
detail(row) {
|
||||
this.$refs.detail.show(row);
|
||||
},
|
||||
// 打印方法
|
||||
print(row) {
|
||||
//console.log(row);
|
||||
this.printForm = row;
|
||||
this.printForm.printDate = new Date();
|
||||
this.printForm.telephone = JSON.parse(
|
||||
sessionStorage.getItem("storeInfo")
|
||||
).telephone;
|
||||
},
|
||||
//作废
|
||||
cancel(row) {
|
||||
this.$confirm("确定作废, 是否继续?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning",
|
||||
cancelButtonClass: "cancelbtnFalses",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
})
|
||||
.then(() => {
|
||||
row.repayTradeLists.forEach((item) => {
|
||||
delete item.entities;
|
||||
delete item.achievementAmount;
|
||||
delete item.cardCommissionAmount;
|
||||
delete item.cardAchievementAmount;
|
||||
delete item.commissionAmount;
|
||||
delete item.repayDate;
|
||||
});
|
||||
delete row.payLists;
|
||||
//console.log(row);
|
||||
repayCancel(row).then((res) => {
|
||||
//console.log(res);
|
||||
if (res.code == "000000") {
|
||||
this.getData();
|
||||
this.$message.success({ message: res.message });
|
||||
} else {
|
||||
this.$alert(res.message, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(() => {
|
||||
this.$message.info({ message: "已取消操作!" });
|
||||
});
|
||||
},
|
||||
selecData(v) {
|
||||
this.queryForm.storeList = v;
|
||||
this.getData();
|
||||
},
|
||||
//获取数据
|
||||
async getData() {
|
||||
if (this.activeName == "还款单") {
|
||||
if (this.headOffice == 1) {
|
||||
setTimeout(() => {
|
||||
console.log(this.$refs.selec);
|
||||
this.$nextTick(() => {
|
||||
this.$refs.selec.show();
|
||||
});
|
||||
}, 800);
|
||||
}
|
||||
repayPage(this.queryForm).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
this.billsList = res.pageInfo.list;
|
||||
this.total = res.pageInfo.total;
|
||||
} else {
|
||||
this.$alert(res.message, "加载还款列表", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
cancelDebtList(this.queryForm).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
this.list = res.pageInfo.list;
|
||||
this.total = res.pageInfo.total;
|
||||
} else {
|
||||
this.$alert(res.message, "加载取消还款列表", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
//分页方法
|
||||
handleSizeChange(val) {
|
||||
this.queryForm.pageSize = val;
|
||||
this.getData();
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
this.queryForm.pageNum = val;
|
||||
this.getData();
|
||||
},
|
||||
//数组按对应字段合计返回方法
|
||||
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() {
|
||||
let list = JSON.parse(sessionStorage.getItem("list"));
|
||||
list.forEach((item) => {
|
||||
if (item.id == 5008001) {
|
||||
this.getData();
|
||||
organizations({ pageSize: 999 }).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
res.rows.forEach((item) => {
|
||||
item.label = item.storeNum + "-" + item.storeName;
|
||||
});
|
||||
this.options = res.rows;
|
||||
} else {
|
||||
this.$alert(res.message, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.repayment {
|
||||
padding: 10px;
|
||||
overflow: auto;
|
||||
margin-left: 10px;
|
||||
}
|
||||
.dialogDiv .el-radio__label {
|
||||
display: none;
|
||||
}
|
||||
.printDiv .el-form-item {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
.printDiv .el-form-item__label,
|
||||
.el-form-item__content {
|
||||
font-size: 12px;
|
||||
color: black;
|
||||
font-family: "宋体";
|
||||
padding: 0 5px 0 0;
|
||||
}
|
||||
.printDiv {
|
||||
width: 230px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.editstaffdiv {
|
||||
width: 120px;
|
||||
}
|
||||
.editStaffDialogDiv .el-radio__label {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
@ -0,0 +1,671 @@
|
||||
<template>
|
||||
<!-- 还款单 -->
|
||||
<div class="repayment">
|
||||
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||||
<el-tab-pane label="取消欠款" name="取消欠款">
|
||||
<selec v-if="headOffice == 1" ref="selec" @selecData="selecData"></selec>
|
||||
<el-input size="medium" class="form-width-ms" v-model="queryForm.docNum" placeholder="输入要查询的单据号" clearable></el-input>
|
||||
<el-input size="medium" class="form-width-ms" v-model="queryForm.memberName" placeholder="输入要查询的会员名字" clearable></el-input>
|
||||
<el-input size="medium" class="form-width-ms" maxlength="11" v-model="queryForm.mobilePhone" placeholder="输入要查询的11位会员手机号" oninput="this.value=this.value.replace(/\D/g,'')" pattern="[0-9]*" clearable></el-input>
|
||||
<el-button size="mini" type="primary" plain @click="getData">搜索</el-button>
|
||||
<el-button @click="confirms(radioList)" size="mini" type="primary" :disabled="radioList.state==undefined">明细</el-button>
|
||||
<el-button @click="editOrder(1)" size="mini" type="primary" :disabled="radioList.state==3||radioList.state==5 ||radioList.state==1 ||radioList.state==undefined">送审</el-button>
|
||||
<el-button @click="editOrder(2)" size="mini" type="primary" :disabled="radioList.state==0||radioList.state==5||radioList.state==2||radioList.state==3||radioList.state==4||radioList.state==undefined" plain>回收</el-button>
|
||||
<el-button @click="editOrder(3)" size="mini" type="primary" :disabled="radioList.state==2||radioList.state==5||radioList.state==3 || radioList.state==0|| radioList.state==4||radioList.state==undefined">审核</el-button>
|
||||
<el-button @click="editOrder(4)" size="mini" type="primary" :disabled="radioList.state==0||radioList.state==5|| radioList.state==1||radioList.state==2|| radioList.state==4||radioList.state==undefined">反审核</el-button>
|
||||
<el-table :data="list" class="margin-top-xs" @row-dblclick="confirms" @row-click="clickRow" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)' ,color:'#eeeeee'}" ref="multipleTable" highlight-current-row tooltip-effect="dark" stripe>
|
||||
<el-table-column align="center" label="状态" min-width="130">
|
||||
<template slot-scope="scope">
|
||||
<div class="flex align-center">
|
||||
<el-radio v-model="radioValue" :label="scope.row.id" @change.native="(scope.row)">{{''}}
|
||||
</el-radio>
|
||||
<el-tag size="medium" effect="dark" :type="scope.row.state==0?'info':''||scope.row.state==1?'primary':''||scope.row.state==2?'info':''||scope.row.state==3?'success':''||scope.row.state==4?'warning':scope.row.state==5?'primary':''">
|
||||
<span v-show="scope.row.state==0">新创建</span>
|
||||
<span v-show="scope.row.state==1">已送审</span>
|
||||
<span v-show="scope.row.state==2">已回收</span>
|
||||
<span v-show="scope.row.state==3">已审核</span>
|
||||
<span v-show="scope.row.state==4">反审核</span>
|
||||
<span v-show="scope.row.state==5">已作废</span>
|
||||
<span v-show="scope.row.state==null">未划分</span>
|
||||
</el-tag>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="docType" label="类型" align="center" width="75">
|
||||
<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 align="center" prop="docNum" show-overflow-tooltip label="单号" min-width="120"></el-table-column>
|
||||
<el-table-column align="center" prop="docDate" show-overflow-tooltip label="日期" min-width="105"></el-table-column>
|
||||
<el-table-column align="center" prop="memberName" label="会员名字" min-width="80"></el-table-column>
|
||||
<el-table-column align="center" prop="mobilePhone" label="手机号码" min-width="100"></el-table-column>
|
||||
<el-table-column align="center" prop="tradeName" label="名称" min-width="120"></el-table-column>
|
||||
<el-table-column align="center" prop="tradeMoney" label="成交金额" min-width="80"></el-table-column>
|
||||
<el-table-column align="center" prop="debtMoney" label="待付金额" min-width="80"></el-table-column>
|
||||
<el-table-column align="center" prop="cancelMoney" label="取消欠款金额" min-width="110"></el-table-column>
|
||||
<el-table-column align="center" prop="cancelNum" label="取消欠款次数" min-width="110"></el-table-column>
|
||||
<el-table-column align="center" label="操作" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" :disabled="!(scope.row.state==4||scope.row.state==2||scope.row.state==0)" plain @click="(cancelForm=scope.row,cancelDialogVisible=true,title='修改')">修改</el-button>
|
||||
<el-button size="mini" type="primary" plain @click="del(scope.row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="block" style="margin-top:15px;">
|
||||
<!-- 分页组件 -->
|
||||
<el-pagination align="left" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="queryForm.pageNum" :page-sizes="[10,20,30,40,50]" :page-size="queryForm.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
<el-dialog :close-on-click-modal="false" v-dialogDrag :title="title" :visible.sync="cancelDialogVisible" width="650px" append-to-body>
|
||||
<el-form label-width="120px" inline>
|
||||
<div v-if="cancelForm.docType=='promotion_card_use'">
|
||||
<el-form-item label="会员名称">
|
||||
{{cancelForm.memberName}}
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号码">
|
||||
{{cancelForm.memberName}}
|
||||
</el-form-item>
|
||||
<el-form-item label="促销名称">
|
||||
{{cancelForm.tradeName}}
|
||||
</el-form-item>
|
||||
<el-form-item label="成交金额">
|
||||
<span class="text-red text-price">
|
||||
{{cancelForm.tradeMoney}}
|
||||
</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="欠款金额">
|
||||
<span class="text-cyan text-price">
|
||||
{{cancelForm.debtMoney}}
|
||||
</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="取消欠款">
|
||||
<span class="text-cyan text-price">
|
||||
{{cancelForm.cancelMoney}}
|
||||
</span>
|
||||
</el-form-item>
|
||||
<el-table :data="cancelForm.cancelDebtMxes" highlight-current-row tooltip-effect="dark">
|
||||
<el-table-column prop="courseProjectNum" show-overflow-tooltip label="项目编码" align="center" min-width="80"></el-table-column>
|
||||
<el-table-column prop="courseProjectName" show-overflow-tooltip label="项目名称" align="center" min-width="120"></el-table-column>
|
||||
<el-table-column prop="price" show-overflow-tooltip label="欠款" align="center" min-width="80">
|
||||
<el-table-column prop="debtMoney" show-overflow-tooltip label="金额" align="center" min-width="80"></el-table-column>
|
||||
<el-table-column prop="debtCount" show-overflow-tooltip label="次数" align="center" min-width="80"></el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column prop="price" show-overflow-tooltip label="取消欠款" align="center" min-width="80">
|
||||
<el-table-column prop="cancelMoney" show-overflow-tooltip label="金额" align="center" min-width="80">
|
||||
<template slot-scope="scope">
|
||||
<div @click.stop v-if="title=='修改'">
|
||||
<div class="text-cyan" v-if="editCancelMIndex!=scope.$index" @click="openEditCancelM(scope.row,scope.$index,editCancelMIndex=scope.$index)">
|
||||
{{scope.row.cancelMoney}}
|
||||
<i class="el-icon-edit text-cyan"></i>
|
||||
</div>
|
||||
<el-input v-focus type="number" class="form-input-width-xs" v-else @blur="endEditCancelM(scope.row,editCancelMIndex=-1)" v-model="scope.row.cancelMoney"></el-input>
|
||||
</div>
|
||||
<div v-else>{{scope.row.cancelMoney}}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="cancelNum" show-overflow-tooltip label="次数" align="center" min-width="80">
|
||||
<template slot-scope="scope">
|
||||
<div @click.stop v-if="title=='修改'">
|
||||
<div class="text-cyan" v-if="editCancelCIndex!=scope.$index" @click="openEditCancelC(scope.row,scope.$index,editCancelCIndex=scope.$index)">
|
||||
{{scope.row.cancelNum}}
|
||||
<i class="el-icon-edit text-cyan"></i>
|
||||
</div>
|
||||
<el-input v-focus type="number" class="form-input-width-xs" v-else @blur="endEditCancelC(scope.row,editCancelCIndex=-1)" v-model="scope.row.cancelNum"></el-input>
|
||||
</div>
|
||||
<div v-else>{{scope.row.cancelNum}}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div v-else>
|
||||
<el-form-item label="欠款帐户">
|
||||
{{cancelForm.tradeName}}
|
||||
</el-form-item>
|
||||
<el-form-item label="成交金额">
|
||||
<span class="text-red text-price">
|
||||
{{cancelForm.tradeMoney}}
|
||||
</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="欠款金额">
|
||||
<span class="text-cyan text-price">
|
||||
{{cancelForm.debtMoney}}
|
||||
</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="取消欠款金额">
|
||||
<el-input type="number" class="form-width-ms" v-model="cancelForm.cancelMoney"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="取消欠款次数" v-if="cancelForm.docType == 'card_use'">
|
||||
<el-input pattern="[0-9]*\" type="number" class="form-width-ms" v-model="cancelForm.cancelNum"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button size="mini" type="primary" plain @click="cancelDialogVisible = false">取 消</el-button>
|
||||
<el-button size="mini" v-if="title=='修改'" type="primary" @click="confirmCancel()">确 定 </el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<!-- <el-dialog :close-on-click-modal="false" v-dialogDrag title="打印" :visible.sync="printDialogVisible" width="60%">
|
||||
<div id="printService" class="printDiv">
|
||||
<div class="text-center text-grey padding-xs">
|
||||
还款记录单
|
||||
</div>
|
||||
<hr>
|
||||
<el-form :model="printForm" :inline="true">
|
||||
<el-form-item label="">
|
||||
<div class="span" style="wdith:120px">{{printForm.storeName}}</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="">
|
||||
{{printForm.repayDate}}
|
||||
</el-form-item><br>
|
||||
<el-form-item label="还款单号:">
|
||||
{{printForm.repayNum}}
|
||||
</el-form-item><br>
|
||||
<el-form-item label="会员信息:">
|
||||
<div>{{printForm.memberName}} / {{printForm.mobilePhone}}</div>
|
||||
</el-form-item><br>
|
||||
<el-form-item label="欠款金额:">
|
||||
<div style="width:50px">{{printForm.debtMoney}}</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="还款金额:">
|
||||
<div>{{printForm.payMoney}}</div>
|
||||
</el-form-item>
|
||||
<div v-for="(item,index) in printForm.repayTradeLists" :key="index">
|
||||
<el-form-item label="帐户名称:">
|
||||
<div>
|
||||
<span class="text-bold">
|
||||
{{item.tradeName}}
|
||||
</span>
|
||||
<span class="text-cyan">
|
||||
还款:
|
||||
{{item.repayMoney}}
|
||||
</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<el-form-item label="签名:"> -->
|
||||
<!-- <div style="height:30px;width:150px;border-bottom:1px solid #333"> </div> -->
|
||||
<!-- </el-form-item><br>
|
||||
<el-form-item label="服务热线:">
|
||||
{{printForm.telephone}}
|
||||
</el-form-item><br>
|
||||
<el-form-item label="打印时间:">
|
||||
{{printForm.printDate | dateFormat}}
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button size="mini" type="primary" plain @click="printDialogVisible = false">取 消</el-button>
|
||||
<el-button size="mini" type="primary" v-print="'#printService'">打 印</el-button>
|
||||
</span>
|
||||
</el-dialog> -->
|
||||
<el-dialog title="导入表格" :visible.sync="infoDialog" :close-on-click-modal='false'>
|
||||
<excel @fileData='fileData' @infoDialogV='infoDialogV'></excel>
|
||||
</el-dialog>
|
||||
<detail ref="detail" @detailData="detailData"></detail>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import {
|
||||
repayPage,
|
||||
repayCancel,
|
||||
repayEditStaff,
|
||||
selectOne,
|
||||
cancelDebtList,
|
||||
editCancelDebtList,
|
||||
auditCancelDebtList,
|
||||
theauditCancelDebtList,
|
||||
deleteCancelDebtList,
|
||||
recycleCancelDebtList,
|
||||
submitCancelDebtList,
|
||||
} from "@/api/eashier.js";
|
||||
import { organizations } from "@/api/storeManage.js";
|
||||
|
||||
import excel from "@/components/excel";
|
||||
import admin from "@/components/staffList/admin/index";
|
||||
import manager from "@/components/staffList/manager/index";
|
||||
import staffsles from "@/components/staffList/staff/index";
|
||||
import detail from "./components/index";
|
||||
import selec from "@/components/store/select/index";
|
||||
|
||||
export default {
|
||||
components: {
|
||||
staffsles,
|
||||
manager,
|
||||
admin,
|
||||
excel,
|
||||
detail,
|
||||
selec,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
headOffice: sessionStorage.getItem("headOffice") * 1,
|
||||
printDialogVisible: false, //打印弹窗开关
|
||||
detailDialogVisible: false,
|
||||
cancelDialogVisible: false,
|
||||
editStaffDialog: false,
|
||||
radiostaffvalue: "",
|
||||
radiostaffvalueList: {},
|
||||
activeName: "取消欠款",
|
||||
radioValue: null,
|
||||
radioList: {},
|
||||
options: [],
|
||||
editIndex: -1,
|
||||
title: "",
|
||||
pageNum: 1, // 当前页码
|
||||
pageSize: 10, // 每页的数据条数,
|
||||
printForm: {
|
||||
repayDate: "",
|
||||
recharge: "",
|
||||
repayNum: null,
|
||||
storeId: "",
|
||||
memberName: "",
|
||||
mobilePhone: null,
|
||||
money: null,
|
||||
backMoney: null,
|
||||
numMoney: null,
|
||||
numMoneys: null,
|
||||
telephone: "",
|
||||
printDate: new Date(),
|
||||
},
|
||||
editForm: {},
|
||||
billsList: [],
|
||||
form: {}, //主对象
|
||||
repayTradeLists: [],
|
||||
staffValue: "",
|
||||
entities: [],
|
||||
list: [], //主数组
|
||||
index: -1,
|
||||
total: 0, //分页总条数
|
||||
cancelForm: {},
|
||||
queryForm: {
|
||||
//查询对象
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
},
|
||||
infoDialog: false, //上传文件弹窗开关
|
||||
editCancelCIndex: -1,
|
||||
editCancelMIndex: -1,
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
confirms(row) {
|
||||
this.cancelForm = row;
|
||||
this.cancelDialogVisible = true;
|
||||
this.title = "明细";
|
||||
},
|
||||
openEditCancelM(row, index) {},
|
||||
endEditCancelM(row) {
|
||||
if (row.cancelMoney * 1 > row.debtMoney) {
|
||||
this.$message.waring({ message: "最高可以取消" + row.debtMoney });
|
||||
row.cancelMoney = row.debtMoney;
|
||||
} else {
|
||||
this.sumMoney();
|
||||
}
|
||||
},
|
||||
openEditCancelC(row, index) {
|
||||
let form = { ...row };
|
||||
},
|
||||
endEditCancelC(row) {
|
||||
if (row.cancelNum * 1 > row.debtCount) {
|
||||
this.$message.waring({ message: "最高可以取消" + row.debtCount });
|
||||
row.cancelNum = row.debtCount;
|
||||
} else {
|
||||
this.sumMoney();
|
||||
}
|
||||
},
|
||||
sumMoney() {
|
||||
let money = 0;
|
||||
let form = { ...this.cancelForm };
|
||||
this.cancelForm.cancelDebtMxes.forEach((item) => {
|
||||
money += item.cancelMoney * 1;
|
||||
});
|
||||
form.cancelMoney = money.toFixed(2) * 1;
|
||||
this.cancelForm = JSON.parse(JSON.stringify(form));
|
||||
},
|
||||
//明细返回方法
|
||||
detailData(v) {
|
||||
this.getData();
|
||||
},
|
||||
del(row) {
|
||||
deleteCancelDebtList({ id: row.id }).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
this.$message.success({ message: "删除成功!" });
|
||||
this.getData();
|
||||
} else {
|
||||
this.$alert(res.message, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
confirmCancel() {
|
||||
editCancelDebtList(this.cancelForm).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
this.cancelDialogVisible = false;
|
||||
this.$message.success({ message: "修改成功!" });
|
||||
this.getData();
|
||||
} else {
|
||||
this.$alert(res.message, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
editOrder(number) {
|
||||
if (number == 3) {
|
||||
let form = { id: this.radioList.id, state: number };
|
||||
auditCancelDebtList(form).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
this.$message.success({ message: "审核成功!" });
|
||||
this.getData();
|
||||
} else {
|
||||
this.$alert(res.message, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
if (number == 4) {
|
||||
let form = { id: this.radioList.id, state: number };
|
||||
theauditCancelDebtList(form).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
this.$message.success({ message: "反审核成功!" });
|
||||
this.getData();
|
||||
} else {
|
||||
this.$alert(res.message, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
if (number == 1) {
|
||||
let form = { id: this.radioList.id, state: number };
|
||||
submitCancelDebtList(form).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
this.$message.success({ message: "操作成功!" });
|
||||
this.getData();
|
||||
} else {
|
||||
this.$alert(res.message, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
if (number == 2) {
|
||||
let form = { id: this.radioList.id, state: number };
|
||||
recycleCancelDebtList(form).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
this.$message.success({ message: "操作成功!" });
|
||||
this.getData();
|
||||
} else {
|
||||
this.$alert(res.message, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
clickRow(row) {
|
||||
this.radioValue = row.id;
|
||||
this.radioList = row;
|
||||
},
|
||||
//切换标签页
|
||||
handleClick(tab, event) {
|
||||
console.log(tab, event);
|
||||
this.activeName = tab.name;
|
||||
this.getData();
|
||||
if (this.headOffice == 1) {
|
||||
this.$nextTick(() => {
|
||||
this.$refs.selec.show();
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
//上传文件方法
|
||||
fileData(v) {
|
||||
//console.log(v);
|
||||
},
|
||||
//返回上传文件弹窗状态
|
||||
infoDialogV(v) {
|
||||
this.infoDialog = v;
|
||||
},
|
||||
|
||||
//导出方法
|
||||
exit() {},
|
||||
|
||||
eidtStaff(index) {
|
||||
this.index = index;
|
||||
},
|
||||
//点击选中
|
||||
rowClick(row) {
|
||||
this.radiostaffvalue = row.id;
|
||||
this.radiostaffvalueList = row;
|
||||
},
|
||||
|
||||
detailEditStaff(row) {
|
||||
this.$refs.detail.show(row);
|
||||
},
|
||||
|
||||
//明细
|
||||
detail(row) {
|
||||
this.$refs.detail.show(row);
|
||||
},
|
||||
// 打印方法
|
||||
print(row) {
|
||||
//console.log(row);
|
||||
this.printForm = row;
|
||||
this.printForm.printDate = new Date();
|
||||
this.printForm.telephone = JSON.parse(
|
||||
sessionStorage.getItem("storeInfo")
|
||||
).telephone;
|
||||
},
|
||||
//作废
|
||||
cancel(row) {
|
||||
this.$confirm("确定作废, 是否继续?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning",
|
||||
cancelButtonClass: "cancelbtnFalses",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
})
|
||||
.then(() => {
|
||||
row.repayTradeLists.forEach((item) => {
|
||||
delete item.entities;
|
||||
delete item.achievementAmount;
|
||||
delete item.cardCommissionAmount;
|
||||
delete item.cardAchievementAmount;
|
||||
delete item.commissionAmount;
|
||||
delete item.repayDate;
|
||||
});
|
||||
delete row.payLists;
|
||||
//console.log(row);
|
||||
repayCancel(row).then((res) => {
|
||||
//console.log(res);
|
||||
if (res.code == "000000") {
|
||||
this.getData();
|
||||
this.$message.success({ message: res.message });
|
||||
} else {
|
||||
this.$alert(res.message, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(() => {
|
||||
this.$message.info({ message: "已取消操作!" });
|
||||
});
|
||||
},
|
||||
selecData(v) {
|
||||
this.queryForm.storeList = v;
|
||||
this.getData();
|
||||
},
|
||||
//获取数据
|
||||
async getData() {
|
||||
if (this.activeName == "还款单") {
|
||||
if (this.headOffice == 1) {
|
||||
setTimeout(() => {
|
||||
console.log(this.$refs.selec);
|
||||
this.$nextTick(() => {
|
||||
this.$refs.selec.show();
|
||||
});
|
||||
}, 800);
|
||||
}
|
||||
repayPage(this.queryForm).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
this.billsList = res.pageInfo.list;
|
||||
this.total = res.pageInfo.total;
|
||||
} else {
|
||||
this.$alert(res.message, "加载还款列表", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
cancelDebtList(this.queryForm).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
this.list = res.pageInfo.list;
|
||||
this.total = res.pageInfo.total;
|
||||
} else {
|
||||
this.$alert(res.message, "加载取消还款列表", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
//分页方法
|
||||
handleSizeChange(val) {
|
||||
this.queryForm.pageSize = val;
|
||||
this.getData();
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
this.queryForm.pageNum = val;
|
||||
this.getData();
|
||||
},
|
||||
//数组按对应字段合计返回方法
|
||||
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() {
|
||||
let list = JSON.parse(sessionStorage.getItem("list"));
|
||||
list.forEach((item) => {
|
||||
if (item.id == 5008001) {
|
||||
this.getData();
|
||||
organizations({ pageSize: 999 }).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
res.rows.forEach((item) => {
|
||||
item.label = item.storeNum + "-" + item.storeName;
|
||||
});
|
||||
this.options = res.rows;
|
||||
} else {
|
||||
this.$alert(res.message, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.repayment {
|
||||
padding: 10px;
|
||||
overflow: auto;
|
||||
margin-left: 10px;
|
||||
}
|
||||
.dialogDiv .el-radio__label {
|
||||
display: none;
|
||||
}
|
||||
.printDiv .el-form-item {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
.printDiv .el-form-item__label,
|
||||
.el-form-item__content {
|
||||
font-size: 12px;
|
||||
color: black;
|
||||
font-family: "宋体";
|
||||
padding: 0 5px 0 0;
|
||||
}
|
||||
.printDiv {
|
||||
width: 230px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.editstaffdiv {
|
||||
width: 120px;
|
||||
}
|
||||
.editStaffDialogDiv .el-radio__label {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
@ -0,0 +1,245 @@
|
||||
<template>
|
||||
<el-dialog :close-on-click-modal="false" :title="title" :visible.sync="dialogFormVisible" width="80%" v-dialogDrag>
|
||||
<el-form :model="form" inline ref="form" class="max-height-60" label-width="80px">
|
||||
<el-form-item label="转出门店">
|
||||
<el-select class="form-width-m" filterable default-first-option clearable v-model="form.storesNum" placeholder="请选择" @change="changeOut">
|
||||
<el-option v-for="(item,index) in options" :key="index" :label="item.storeNum" :value="item.storeNum">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="门店名称">
|
||||
<div class="form-width-m">
|
||||
{{form.storesName}}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号码">
|
||||
<el-input class="form-width-ms" style="padding-left:0px;" ref="" oninput="this.value=this.value.replace(/\D/g,'')" pattern="[0-9]*" :maxlength="11" v-model="form.mobilePhone" @blur="query" @change="query">
|
||||
<el-button size="mini" slot="append" icon="el-icon-search" @click="openMember"></el-button>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="会员名字">
|
||||
{{form.memberName}}
|
||||
</el-form-item>
|
||||
<el-table :data="list" max-height="600" ref="list" v-loading="listLoading" :element-loading-text="elementLoadingText" @row-click="getCurrentRow" :row-class-name="rowName" @selection-change="handleSelectionChange" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)',color:'#eeeeee'}">
|
||||
<el-table-column type="selection" width="50"></el-table-column>
|
||||
<el-table-column align="center" prop="courseProjectNum" label="项目编码" sortable min-width="80"></el-table-column>
|
||||
<el-table-column align="center" prop="courseProjectName" label="项目名称" sortable min-width="80"></el-table-column>
|
||||
<el-table-column align="center" prop="price" label="项目单价" sortable min-width="80"></el-table-column>
|
||||
<el-table-column align="center" prop="courseRestCount" label="剩余次数" sortable min-width="80"></el-table-column>
|
||||
<el-table-column align="center" prop="courseRestPrice" label="剩余金额" sortable min-width="80"></el-table-column>
|
||||
<el-table-column align="center" prop="courseConsumeCount" label="可用次数" sortable min-width="80"></el-table-column>
|
||||
<el-table-column align="center" prop="courseConsumePrice" label="可用金额" sortable min-width="80"></el-table-column>
|
||||
<el-table-column align="center" label="转入门店">
|
||||
<el-table-column align="center" prop="storeNum" label="编码" min-width="80"></el-table-column>
|
||||
<el-table-column align="center" prop="storeName" label="名称" min-width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-select filterable default-first-option clearable @clear='clear(scope.row)' v-model="scope.row.storeName" @change="changeIn($event,scope.row)" placeholder="请选择">
|
||||
<el-option v-for="(item,index) in storeList" :key="index" :label="item.storeName" :value="item.storeName">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
</el-form>
|
||||
<member ref="member" @memberData="memberData"></member>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button size="mini" type="primary" @click="dialogFormVisible = false">取 消</el-button>
|
||||
<el-button size="mini" type="primary" @click="confirm()">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
addStoreTurnTreatment,
|
||||
staffPage,
|
||||
organizations,
|
||||
} from "@/api/storeManage.js";
|
||||
import { storeMemberOne, couAccountList } from "@/api/eashier.js";
|
||||
import member from "@/components/member/index";
|
||||
export default {
|
||||
components: { member },
|
||||
data() {
|
||||
return {
|
||||
dialogFormVisible: false, //弹窗开关
|
||||
listLoading: false, //list加载提示开启动画
|
||||
elementLoadingText: "加载中...", //list加载提示文字
|
||||
title: "", //弹窗标题
|
||||
form: {}, //主对象
|
||||
list: [], //主数组
|
||||
selection: [], //选中的会员列表
|
||||
queryForm: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
},
|
||||
options: [], //下拉门店列表
|
||||
storeList: [], //门店列表
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
//转出门店改变
|
||||
changeOut(e) {
|
||||
this.options.forEach((item) => {
|
||||
if (item.storeNum == e) {
|
||||
this.form.storesName = item.storeName;
|
||||
this.form.storesId = item.id;
|
||||
}
|
||||
});
|
||||
this.getData();
|
||||
},
|
||||
//转入门店改变
|
||||
changeIn(e, row) {
|
||||
let form = { ...row };
|
||||
this.storeList.forEach((item) => {
|
||||
if (item.storeName == e) {
|
||||
form.storeName = item.storeName;
|
||||
form.storeId = item.id;
|
||||
form.storeNum = item.storeNum;
|
||||
}
|
||||
});
|
||||
this.list.splice(row.index, 1, form);
|
||||
this.getCurrentRow(row);
|
||||
this.$nextTick(() => {
|
||||
this.$refs["list"].toggleRowSelection(this.list[row.index], true);
|
||||
});
|
||||
console.log(this.selection);
|
||||
},
|
||||
//删除下拉选择
|
||||
clear(row) {
|
||||
this.$nextTick(() => {
|
||||
this.$refs["list"].toggleRowSelection(this.list[row.index], false);
|
||||
});
|
||||
},
|
||||
//打开会员弹窗
|
||||
openMember() {
|
||||
this.$refs.member.show();
|
||||
},
|
||||
//会员弹窗返回值
|
||||
memberData(v) {
|
||||
this.form.mobilePhone = v.mobilePhone;
|
||||
this.query();
|
||||
},
|
||||
//查询会员信息
|
||||
query() {
|
||||
storeMemberOne({
|
||||
mobilePhone: this.form.mobilePhone,
|
||||
storeId: sessionStorage.getItem("parentId"),
|
||||
}).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
this.form.memberId = res.data.id;
|
||||
this.form.memberNum = res.data.memberNum;
|
||||
this.form.memberName = res.data.memberName;
|
||||
this.form.mobilePhone = res.data.mobilePhone;
|
||||
this.getCourse();
|
||||
} else {
|
||||
this.$alert(res.message, "查询会员", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
//获取会员疗程卡包
|
||||
getCourse() {
|
||||
var ids = {
|
||||
memberId: this.form.memberId,
|
||||
storeId: this.form.storesId,
|
||||
};
|
||||
couAccountList(ids).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
res.rows.forEach((item) => {
|
||||
item.storeNum = null;
|
||||
item.storeName = null;
|
||||
item.courseAccountId = item.id;
|
||||
});
|
||||
this.list = res.rows;
|
||||
} else {
|
||||
this.$alert(res.message, "查询会员疗程", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
//多选方法
|
||||
getCurrentRow(row) {
|
||||
this.$refs["list"].toggleRowSelection(row);
|
||||
},
|
||||
//列表返回方法
|
||||
rowName({ row, rowIndex }) {
|
||||
row.index = rowIndex;
|
||||
},
|
||||
//多选变动方法
|
||||
handleSelectionChange(selection) {
|
||||
this.selection = selection;
|
||||
},
|
||||
//组件传值
|
||||
show(row) {
|
||||
this.title = "员工转出门店";
|
||||
this.dialogFormVisible = true;
|
||||
this.getData();
|
||||
},
|
||||
//获取数据
|
||||
async getData() {
|
||||
let parentId = JSON.parse(sessionStorage.getItem("storeInfo")).id;
|
||||
organizations({ pageSize: 999 }).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
let list = [];
|
||||
res.rows.forEach((item) => {
|
||||
if (this.form.storesNum != item.storeNum) {
|
||||
list.push(item);
|
||||
}
|
||||
});
|
||||
this.options = res.rows;
|
||||
this.storeList = list;
|
||||
} else {
|
||||
this.$alert(res.message, "获取门店信息", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
//确定返回方法
|
||||
confirm() {
|
||||
this.selection.forEach((item) => {
|
||||
item.storesId = this.form.storesId;
|
||||
item.storesName = this.form.storesName;
|
||||
item.storesNum = this.form.storesNum;
|
||||
item.memberId = this.form.memberId;
|
||||
item.memberNum = this.form.memberNum;
|
||||
item.memberName = this.form.memberName;
|
||||
item.mobilePhone = this.form.mobilePhone;
|
||||
});
|
||||
addStoreTurnTreatment(this.selection).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
this.dialogFormVisible = false;
|
||||
this.$emit("editData");
|
||||
} else {
|
||||
this.$alert(res.message, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
</style>
|
||||
@ -0,0 +1,187 @@
|
||||
<template>
|
||||
<!-- 停用 -->
|
||||
<div class="displsy-mod">
|
||||
<el-button size="mini" @click="edit" type="primary">疗程转门店</el-button>
|
||||
<el-button size="mini" @click="quers" type="primary">批量确认</el-button>
|
||||
|
||||
<el-table class="margin-top-xs" :data="list" ref="list" v-loading="listLoading" max-height="600" :element-loading-text="elementLoadingText" @row-click="getCurrentRow" :row-class-name="rowName" @selection-change="handleSelectionChange" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)',color:'#eeeeee'}">
|
||||
<el-table-column type="selection" width="50"></el-table-column>
|
||||
|
||||
<el-table-column align="center" prop="job" label="状态" width="80">
|
||||
<template slot-scope="scope">
|
||||
<el-tag :type="scope.row.statu==2?'success':'primary'">
|
||||
{{scope.row.statu==2?'已通过':'新增'}}
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="转出门店">
|
||||
<el-table-column align="center" prop="storesNum" label="编码" min-width="100"></el-table-column>
|
||||
<el-table-column align="center" prop="storesName" label="名称" min-width="100"></el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="转入门店">
|
||||
<el-table-column align="center" prop="storeNum" label="编码" min-width="100"></el-table-column>
|
||||
<el-table-column align="center" prop="storeName" label="名称" min-width="100"></el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="会员信息">
|
||||
<el-table-column align="center" prop="memberNum" label="编码" sortable min-width="100"></el-table-column>
|
||||
<el-table-column align="center" prop="memberName" label="名字" sortable min-width="100"></el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="疗程">
|
||||
<el-table-column align="center" prop="courseProjectNum" label="编码" sortable min-width="100"></el-table-column>
|
||||
<el-table-column align="center" prop="courseProjectName" label="名称" sortable min-width="100"></el-table-column>
|
||||
<el-table-column align="center" prop="courseRestCount" label="剩余次数" sortable min-width="100"></el-table-column>
|
||||
<el-table-column align="center" prop="courseRestPrice" label="剩余金额" sortable min-width="100"></el-table-column>
|
||||
<el-table-column align="center" prop="courseConsumeCount" label="可用次数" sortable min-width="100"></el-table-column>
|
||||
<el-table-column align="center" prop="courseConsumePrice" label="可用金额" sortable min-width="100"></el-table-column>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column align="center" fixed="right" label="操作" width="80">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" @click="quer(scope.row)" plain>确认</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="block" style="margin-top:15px;">
|
||||
<el-pagination align="left" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="queryForm.pageNum" :page-sizes="[10,20,30,40,50]" :page-size="queryForm.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
|
||||
</div>
|
||||
<edit ref="edit" @editData="getData"></edit>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import edit from "./components/edit.vue";
|
||||
import {
|
||||
editStateStoreTurnTreatment,
|
||||
storeTurnTreatmentPage,
|
||||
} from "@/api/storeManage.js";
|
||||
export default {
|
||||
components: { edit },
|
||||
data() {
|
||||
return {
|
||||
dialogFormVisible: false,
|
||||
listLoading: false, //list加载提示开启动画
|
||||
elementLoadingText: "加载中...",
|
||||
list: [], //主数组
|
||||
queryForm: {
|
||||
pageSize: 10,
|
||||
pageNum: 1,
|
||||
},
|
||||
total: 0, //分页总条数
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
//组件传值
|
||||
show() {
|
||||
|
||||
},
|
||||
edit() {
|
||||
this.$refs.edit.show();
|
||||
},
|
||||
//多选方法
|
||||
getCurrentRow(row) {
|
||||
this.$refs["list"].toggleRowSelection(row);
|
||||
},
|
||||
//列表返回方法
|
||||
rowName({ row, rowIndex }) {
|
||||
row.index = rowIndex;
|
||||
},
|
||||
//多选变动方法
|
||||
handleSelectionChange(selection) {
|
||||
this.selection = selection;
|
||||
},
|
||||
//确认方法
|
||||
quer(row) {
|
||||
let list = [row.id];
|
||||
let form = { statu: 2, ids: list };
|
||||
this.confirm(form);
|
||||
},
|
||||
//批量确认方法
|
||||
quers() {
|
||||
let list = [];
|
||||
this.selection.forEach((item) => {
|
||||
list.push(item.id);
|
||||
});
|
||||
let form = { statu: 2, ids: list };
|
||||
this.confirm(form);
|
||||
},
|
||||
//确认返回方法
|
||||
confirm(form) {
|
||||
editStateStoreTurnTreatment(form).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
this.getData();
|
||||
} else {
|
||||
this.$alert(res.message, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
//分页方法
|
||||
handleSizeChange(val) {
|
||||
// console.log(`每页 ${val} 条`);
|
||||
this.queryForm.pageSize = val;
|
||||
this.getData();
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
// console.log(`当前页: ${val}`);
|
||||
this.queryForm.pageNum = val;
|
||||
this.getData();
|
||||
},
|
||||
//获取数据
|
||||
async getData() {
|
||||
storeTurnTreatmentPage(this.queryForm).then((res) => {
|
||||
if (res.code == "000000") {
|
||||
this.list = res.pageInfo.list;
|
||||
this.total = res.pageInfo.total;
|
||||
} else {
|
||||
this.$alert(res.message, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
confirmButtonClass: "confirmbtnFalses",
|
||||
type: "warning",
|
||||
center: true,
|
||||
callback: (action) => {},
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
},
|
||||
created(){
|
||||
this.getData();
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.el-input {
|
||||
width: 200px;
|
||||
}
|
||||
.el-col {
|
||||
border-radius: 4px;
|
||||
box-shadow: 5px 5px 5px #717070;
|
||||
margin: 0 30px;
|
||||
width: 360px;
|
||||
}
|
||||
.bg-purple {
|
||||
background: #d3dce6;
|
||||
}
|
||||
|
||||
.bg-purple-light {
|
||||
background: #d3dce6;
|
||||
}
|
||||
.grid-content {
|
||||
border-radius: 4px;
|
||||
min-height: 36px;
|
||||
padding: 10px;
|
||||
}
|
||||
.row-bg {
|
||||
padding: 10px 0;
|
||||
background-color: #d3dce6;
|
||||
}
|
||||
.examineForm .el-form-item {
|
||||
height: 30px;
|
||||
}
|
||||
</style>
|
||||
|
||||
Loading…
Reference in New Issue