master
Wangxubin 4 years ago
parent f7dab98746
commit 11cfe6d6fc

Binary file not shown.

22538
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -116,4 +116,4 @@
"last 2 versions",
"not ie <= 8"
]
}
}

@ -71,6 +71,12 @@
import { propageNew,selectRatioInfo } from "@/api/storeManage.js";
import { couAccountList } from "@/api/eashier.js";
export default {
props:{
storeId:{
type:String,
default:""
}
},
data() {
return {
radio: null, //
@ -165,6 +171,7 @@ export default {
});
} else {
this.title = "选择门店项目";
if(this.storeId)this.queryForm.storeId = this.storeId
propageNew(this.queryForm).then((res) => {
this.listLoading = false;
if (res.code == "000000") {

@ -6,7 +6,7 @@
<el-input class="form-width-m margin-left-xs" size="small" v-model="queryForm.projectName" clearable placeholder="项目名称搜索"></el-input>
<el-button class="margin-left-xs" size="mini" type="primary" @click="fetchData"></el-button>
</div>
<el-table border :data="list" max-height="600" ref="list" v-loading="listLoading" :element-loading-text="elementLoadingText" @row-click="getCurrentRow" :row-class-name="rowName" @selection-change="handleSelectionChange">
<el-table border :data="list" max-height="450" ref="list" v-loading="listLoading" :element-loading-text="elementLoadingText" @row-click="getCurrentRow" :row-class-name="rowName" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column :show-overflow-tooltip="true" align="center" prop="projectNum" label="项目编码" min-width="100"></el-table-column>
<el-table-column :show-overflow-tooltip="true" align="center" prop="projectName" label="项目名称" min-width="120"></el-table-column>
@ -71,14 +71,14 @@ export default {
}
})
if(list.length){
this.queryForm.projectTypeName = list.join(',')
this.queryForm.projectTypeIds = list.join(',')
}else{
this.queryForm.projectTypeName = null
this.queryForm.projectTypeIds = null
}
},
getOptions(){
proTypeList().then(res => {
res.rows = res.rows.map(item=>{return{ ...item,value:item.projectTypeName,label:item.projectTypeName+`(${item.projectTypeNum})`}})
res.rows = res.rows.map(item=>{return{ ...item,value:item.id,label:item.projectTypeName+`(${item.projectTypeNum})`}})
res.rows.forEach(item => {
if (!item.parentId) {
item.parentId = 0;

@ -79,7 +79,7 @@
<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>
<div>{{scope.row.docType=='card_use'?'疗程':scope.row.docType=='promotion_card_use'?'疗程促销':scope.row.docType=='card_recharge'?'正常充值':'加价转疗程'}}</div>
</template>
</el-table-column>
<el-table-column prop="tradeName" show-overflow-tooltip label="名称" align="center" min-width="90"></el-table-column>
@ -103,7 +103,7 @@
<template slot-scope="props">
<!-- 疗程卡付列表 -->
<div @click.stop="">
<el-button size="mini" slot="reference" @click="openPro(props.row)"></el-button>
<el-button size="mini" slot="reference" @click="openPro(props.row,props.$index)"></el-button>
</div>
</template>
</el-table-column>
@ -186,6 +186,7 @@ export default {
},
data() {
return {
index:0,
headOffice: false, //
staffList: [], //
proList: [], //
@ -271,9 +272,9 @@ export default {
console.log(form);
// this.list.splice(row.index, 1, form);
},
openPro(row) {
openPro(row,index) {
let proList = [];
console.log('row---->',row)
this.index = index
this.list.forEach((item, index) => {
item.proList.forEach((items) => {
if (items.payNumber > 0) {
@ -287,9 +288,6 @@ export default {
},
proData(v) {
let form = JSON.parse(JSON.stringify(v));
// console.log(form);
// this.list.splice(form.index, 1, form);
// console.log('form--->',form,'form.index--->',form.index)
for(let key in form){
if(key!='recList')this.$set(this.list[form.index],key,form[key])
}
@ -329,7 +327,6 @@ export default {
recData(v) {
let form = JSON.parse(JSON.stringify(v));
console.log(form,'index--->',form.index)
// this.list.splice(form.index, 1, form);
for(let key in form){
if(key!='proList')this.$set(this.list[form.index],key,form[key])
}
@ -690,10 +687,9 @@ export default {
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);
let repayAccountListRequests = [];
debtMoney += item.debtMoney;
item.payMoney = item.paymentMoney;
item.paymentMoney = item.paymentMoney;

@ -198,8 +198,8 @@ export default {
show(list, storeId) {
this.$nextTick(()=>{
this.staffLists = [...list];
console.log('list--->',this.staffLists)
this.staffLists.forEach((item) => {
item.ratio = item.saleRatio
if (item.id || item.saleStaffId) {
item.staffNames = item.brandNumber + "-" + item.saleStaffName;
} else {

@ -0,0 +1,355 @@
<template>
<div>
<el-table border v-loading="listLoading" :data="list" :element-loading-text="elementLoadingText" @row-dblclick="rowdbClick" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)',color:'#eeeeee'}">
<el-table-column show-overflow-tooltip align="center" min-width="110" prop="docTypeName" label="类别">
<template slot-scope="scope">
<div>{{scope.row.isAddition==1?'(补)':''}}{{scope.row.docTypeName}}</div>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="orderStatu" label="状态">
<template slot-scope="scope">
<el-tag :type="scope.row.orderStatu==0?'success':scope.row.orderStatu==0?'danger':''">
{{scope.row.orderStatu==0?'正常':scope.row.orderStatu==1?'作废':'反审核'}}
</el-tag>
</template>
</el-table-column>
<!-- <el-table-column show-overflow-tooltip align="center" min-width="100" label="支付方式">
<template slot-scope="scope">
<span>{{ paymentMethods(scope.row) }}</span>
</template>
</el-table-column> -->
<el-table-column show-overflow-tooltip align="center" label="单据">
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="docNum" label="单据号"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="115" prop="inputDate" label="时间">
<template slot-scope="scope">
<div>{{scope.row.isAddition==1?'(补)':''}}{{scope.row.inputDate}}</div>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="130" prop="storeName" label="门店名称"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" label="交易">
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="accountNum" label="编码"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="130" prop="tradeName" label="名称"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="price" label="单价">
<template slot-scope="scope">
<div>
{{scope.row.price?scope.row.price:'--'}}
</div>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="tradeCount" label="数量">
<template slot-scope="scope">
<div>
{{scope.row.tradeCount?scope.row.tradeCount:'--'}}
</div>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="tradeMoney" label="成交金额"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="debtMoney" label="欠款金额"></el-table-column>
</el-table-column>
<!-- <el-table-column show-overflow-tooltip align="center" min-width="90" prop="cashMoney" label="现付总金额"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="90" prop="cardMoney" label="卡付总金额"></el-table-column> -->
<el-table-column show-overflow-tooltip align="center" min-width="90" prop="cashMoney" label="现付总金额"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="90" prop="cardMoney" label="卡付总金额"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="90" prop="additionDate" label="补单日期">
<template slot-scope="scope">
<span>{{ scope.row.additionDate?scope.row.additionDate:"暂无" }}</span>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" label="剩余">
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="accountRestCount" label="次数">
<template slot-scope="scope">
<div>
{{scope.row.accountRestCount?scope.row.accountRestCount:'--'}}
</div>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="accountRestMoney" label="金额"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" label="可用">
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="accountConsumeCount" label="次数">
<template slot-scope="scope">
<div>
{{scope.row.accountConsumeCount?scope.row.accountConsumeCount:'--'}}
</div>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="accountConsumeMoney" label="金额"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="inputBy" label="录单人"></el-table-column>
</el-table>
<div class="block margin-top-xs">
<!-- 分页组件 -->
<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>
<orderdetail ref="orderdetail"></orderdetail>
</div>
</template>
<script>
import { listByMembers } from "@/api/eashier";
import orderdetail from "@/components/order/detail.vue";
export default {
components: { orderdetail },
// computed:{
// paymentMethods(){
// return (row)=>{
// if(row.rechargeConsumeList.length&&row.payLists.length){
// //
// return '/'
// }
// if(row.rechargeConsumeList.length){
// //
// return ''
// }else{
// //
// return ''
// }
// }
// }
// },
data() {
return {
itemList: [
//
{
docType: "upgrade_out",
docTypeName: "升级转出",
},
{
docType: "upgrade_in",
docTypeName: "升级充值",
},
{
docType: "demotion_out",
docTypeName: "降级转出",
},
{
docType: "demotion_in",
docTypeName: "降级充值",
},
{
docType: "store_room",
docTypeName: "前台收银",
},
{
docType: "init",
docTypeName: "初始化",
},
{
docType: "card_recharge",
docTypeName: "充值开卡",
},
{
docType: "recharge_roll_course",
docTypeName: "疗程转充值卡",
},
{
docType: "card_change",
docTypeName: "加价转疗程",
},
{
docType: "card_use",
docTypeName: "疗程开卡",
},
{
docType: "card_use_additione",
docTypeName: "疗程开卡补单",
},
{
docType: "store_cash",
docTypeName: "收银",
},
{
docType: "card_repay",
docTypeName: "还款",
},
{
docType: "refund_recharge",
docTypeName: "充值退款",
},
{
docType: "refund_course",
docTypeName: "疗程退款",
},
{
docType: "refund_cash",
docTypeName: "消费退款",
},
{
docType: "promotion",
docTypeName: "促销活动",
},
{
docType: "promotion_card_repay",
docTypeName: "促销还款",
},
],
form: {}, //
list: [], //
total: 0, //
listLoading: false, //list
elementLoadingText: "加载中...", //list
queryForm: {
//
pageNum: 1,
pageSize: 10,
},
};
},
methods: {
//
rowdbClick(row) {
this.$refs.orderdetail.show(row);
},
//
show(form) {
this.form = { ...form };
this.getData();
},
//
handleSizeChange(val) {
this.queryForm.pageSize = val;
this.getData();
//console.log(val);
},
handleCurrentChange(val) {
this.queryForm.pageNum = val;
this.getData();
//console.log(val);
},
//
async getData() {
if (this.form.month) {
this.queryForm.inputDate = this.formatTime(
this.form.month,
"YYYY-MM-DD hh:mm:ss"
);
} else{
this.queryForm.inputDate = this.formatTime(
new Date(),
"YYYY-MM-DD hh:mm:ss"
);
}
this.queryForm.memberId = this.form.id;
this.queryForm.memberName = this.form.memberName;
this.queryForm.memberPhone = this.form.mobilePhone;
listByMembers(this.queryForm).then((res) => {
if (res.code == "000000") {
res.pageInfo.list.forEach((item) => {
this.itemList.forEach((items) => {
if (item.docType == items.docType) {
item.docTypeName = items.docTypeName;
}
});
});
res.pageInfo.list.forEach((item) => {
if (item.type == "card_repay") {
item.docTypeName = "还款";
}
if(item.accountType == 'recharge_groupon·'){
item.docTypeName = '团购卡'
}
if(item.accountType == 'project_consume'&& item.docType == 'store_cash'){
item.docTypeName = '收银疗程卡付'
}
if(item.accountType == 'project_consume'&& item.docType == 'card_change'){
item.docTypeName = '加价转疗程转出'
}
if(item.accountType == 'project'){
item.docTypeName = '加价转疗程转入'
}
if (item.type == "card_repay") {
if (item.orderType == "course") {
item.docTypeName = "疗程" + item.docTypeName;
}
if (item.orderType == "recharge") {
item.docTypeName = "充值" + item.docTypeName;
}
}
if(item.docType == 'card_use_addition'){
item.docTypeName = '疗程开卡补单'
}
if (item.docType == "refund_cash_room") {
if (item.accountType == "refund_cash_unaudit_room") {
item.docTypeName = "房间退反审核";
}
if (item.accountType == "refund_cash_audit_room") {
item.docTypeName = "房间消费退";
}
}
if (item.docType == "recharge_Transition") {
if (item.accountType == "recharge_Transition_out") {
item.docTypeName = "充值卡内调转出";
}
if (item.accountType == "recharge_Transition_out_cancel") {
item.docTypeName = "充值内调作废";
}
if (item.accountType == "recharge_Transition_in") {
item.docTypeName = "充值卡内调转入";
}
if (item.accountType == "recharge_Transition_in_cancel") {
item.docTypeName = "充值内调作废";
}
if (item.accountType == "recharge_Transition_out_cancel") {
item.docTypeName = "充值转出反审核";
}
}
if (item.accountType == "recharge_in") {
item.docTypeName = "转卡充值卡包转入";
}
if (item.accountType == "recharge_out") {
item.docTypeName = "转卡充值卡包转出";
}
if (item.accountType == "recharge_in_cancel") {
item.docTypeName = "转卡充值卡包转入";
}
if (item.accountType == "recharge_out_cancel") {
item.docTypeName = "转卡充值卡包转出";
}
if (item.accountType == "project_in") {
item.docTypeName = "转卡疗程账户转出";
}
if (item.accountType == "project_out") {
item.docTypeName = "转卡疗程账户转入";
}
if (item.accountType == "project_in_cancel") {
item.docTypeName = "转卡疗程账户转出";
}
if (item.accountType == "project_out_cancel") {
item.docTypeName = "转卡疗程账户转入";
}
if (item.type == "turn_card_use") {
if (item.orderType == "project_in ") {
item.docTypeName = "转卡转入";
}
}
});
this.list.forEach((item)=>{
item.tradeMoney=item.cashMoney+item.cardMoney
})
this.list = res.pageInfo.list;
this.total = res.pageInfo.total;
} else {
this.$alert(res.message, "查询会员疗程", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
},
},
};
</script>
<style>
</style>

@ -0,0 +1,112 @@
<template>
<el-dialog :close-on-click-modal="false" v-dialogDrag rechargeTypeId="form" :title="title" :visible.sync="dialogFormVisible">
<el-form :model="form" :rules="rules" ref="form" label-width="120px">
<el-form-item label="编码:" prop="rechargeTypeNum">
<div>
{{form.courseProjectNum}}{{form.rechargeTypeNum}}
</div>
</el-form-item>
<el-form-item label="名称:" prop="rechargeTypeName">
<div>
{{form.courseProjectName}}{{form.rechargeTypeName}}
</div>
</el-form-item>
<el-form-item label="到期日期:" prop="discount">
<el-date-picker v-model="form.endTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="dialogFormVisible = false"> </el-button>
<el-button size="mini" type="primary" @click="confirm"> </el-button>
</div>
</el-dialog>
</template>
<script>
import { editCouAccount, editRecAccount } from "@/api/eashier.js";
export default {
data() {
return {
rules: {
rechargeTypeName: {
required: true,
message: "请输入充值名称",
trigger: ["blur", "change"],
},
rechargeTypeNum: {
required: true,
message: "请输入充值编码",
trigger: ["blur", "change"],
},
rechargeMoney: {
required: true,
message: "请输入充值金额",
trigger: ["blur", "change"],
},
},
form: {}, //
title: "", //
dialogFormVisible: false, //
};
},
methods: {
//
show(form) {
this.title = "帐户延期";
this.form = { ...form };
this.dialogFormVisible = true;
},
//
confirm() {
var form = {
id: this.form.id,
endTime: this.form.endTime,
};
if (this.form.rechargeTypeName) {
editRecAccount(form)
.then((res) => {
if (res.code == "000000") {
this.$emit("editData");
this.dialogFormVisible = false;
this.$message.success({
message: "修改成功!",
});
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
})
.catch((err) => {
console.log(err);
});
} else {
editCouAccount(form).then((res) => {
if (res.code == "000000") {
this.$emit("editData");
this.dialogFormVisible = false;
this.$message.success({
message: res.message,
});
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
}
},
},
};
</script>
<style>
</style>

@ -0,0 +1,79 @@
<template>
<div>
<el-table border v-loading="listLoading" :data="list" :element-loading-text="elementLoadingText" @row-dblclick="rowdbClick" max-height="650" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)',color:'#eeeeee'}">
<el-table-column type="index" width="40" align="center"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="courseProjectNum" label="编码"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="courseProjectName" label="名称"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="price" label="单价"></el-table-column>
<el-table-column show-overflow-tooltip align="center" label="余次">
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="courseRestCount" label="剩余"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="courseConsumeCount" label="可消费"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" label="余额">
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="courseRestPrice" label="剩余"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="courseConsumePrice" label="可消费"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" label="门店">
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="storeNum" label="编码"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="120" prop="storeName" label="名称"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="endTime" sortable label="到期时间"></el-table-column>
</el-table>
<detail ref="detail"></detail>
</div>
</template>
<script>
import { listdeal } from "@/api/eashier.js";
import detail from "./prodetail";
export default {
components: { detail },
data() {
return {
form: {}, //
list: [], //
total: 0, //
listLoading: false, //list
elementLoadingText: "加载中...", //list
queryForm: {
//
pageNum: 1,
pageSize: 10,
},
};
},
methods: {
//
rowdbClick(row) {
this.$refs.detail.show(row);
},
//
show(form) {
this.form = { ...form };
this.getData();
},
//
async getData() {
var ids = {
memberId: this.form.id,
};
listdeal(ids).then((res) => {
if (res.code == "000000") {
this.list = res.rows;
} else {
this.$alert(res.message, "查询会员疗程", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
},
},
};
</script>
<style>
</style>

@ -0,0 +1,280 @@
<template >
<el-dialog :close-on-click-modal="false" v-dialogDrag rechargeTypeId="form" :title="title" :visible.sync="dialogFormVisible" width="75%">
<div class="form-width-ms block">
<span class="demonstration"></span>
<el-date-picker v-model="queryForm.month" type="month" @change="getData" placeholder="选择月份">
</el-date-picker>
</div>
<el-table border v-loading="listLoading" :data="list" :element-loading-text="elementLoadingText" @row-dblclick="rowdbClick" max-height="650" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)',color:'#eeeeee'}">
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="docTypeName" label="类别"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="orderStatu" label="状态">
<template slot-scope="scope">
<el-tag :type="scope.row.orderStatu==0?'success':scope.row.orderStatu==0?'danger':''">
{{scope.row.orderStatu==0?'正常':scope.row.orderStatu==1?'作废':'反审核'}}
</el-tag>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="inputBy" label="操作人"></el-table-column>
<el-table-column show-overflow-tooltip align="center" label="单据">
<el-table-column show-overflow-tooltip align="center" min-width="120" prop="docNum" label="单据号"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="115" prop="inputDate" label="时间"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="storeNum" label="门店编码"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="140" prop="storeName" label="门店名称"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" label="交易">
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="tradeName" label="名称"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="price" label="单价">
<template slot-scope="scope">
<div>
{{scope.row.price?scope.row.price:'--'}}
</div>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="tradeCount" label="数量">
<template slot-scope="scope">
<div>
{{scope.row.tradeCount?scope.row.tradeCount:'--'}}
</div>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="tradeMoney" label="成交金额"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="debtMoney" label="欠款金额"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" label="收入">
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="accountInMoney" label="金额"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="accountInCount" label="次数"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" label="支出">
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="accountSpendMoney" label="金额"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="accountSpendCount" label="次数"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" label="结余">
<el-table-column show-overflow-tooltip align="center" label="剩余">
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="accountRestMoney" label="金额"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="accountRestCount" label="次数"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" label="可用">
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="accountConsumeMoney" label="金额"> </el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="accountConsumeCount" label="次数"></el-table-column>
</el-table-column>
</el-table-column>
</el-table>
<div class="block margin-top-xs">
<!-- 分页组件 -->
<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>
<orderdetail ref="orderdetail"></orderdetail>
<div slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="dialogFormVisible = false">关闭</el-button>
</div>
</el-dialog>
</template>
<script>
import { listByMembers } from "@/api/eashier";
import orderdetail from "@/components/order/detail.vue";
export default {
components: { orderdetail },
data() {
return {
form: {}, //
list: [], //
total: 0, //
title: "", //
listLoading: false, //list
dialogFormVisible: false, //
elementLoadingText: "加载中...", //list
queryForm: {
//
pageNum: 1,
pageSize: 10,
},
itemList: [
//
{
docType: "store_room",
docTypeName: "前台收银",
},
{
docType: "upgrade_out",
docTypeName: "升级转出",
},
{
docType: "upgrade_in",
docTypeName: "升级充值",
},
{
docType: "demotion_out",
docTypeName: "降级转出",
},
{
docType: "demotion_in",
docTypeName: "降级充值",
},
{
docType: "init",
docTypeName: "初始化",
},
{
docType: "card_recharge",
docTypeName: "充值开卡",
},
{
docType: "recharge_roll_course",
docTypeName: "疗程转充值卡",
},
{
docType: "card_change",
docTypeName: "加价转疗程",
},
{
docType: "card_use",
docTypeName: "疗程开卡",
},
{
docType: "store_cash",
docTypeName: "收银",
},
{
docType: "card_repay",
docTypeName: "还款",
},
{
docType: "refund_recharge",
docTypeName: "充值退款",
},
{
docType: "refund_course",
docTypeName: "疗程退款",
},
{
docType: "refund_cash",
docTypeName: "消费退款",
},
{
docType: "promotion",
docTypeName: "促销活动",
},
{
docType: "promotion_card_repay",
docTypeName: "促销还款",
},
],
};
},
methods: {
//
rowdbClick(row) {
this.$refs.orderdetail.show(row);
},
//
show(form) {
this.dialogFormVisible = true;
this.title = form.courseProjectName;
this.form = { ...form };
this.getData();
},
edit(row) {
this.$refs.edit.show(row);
},
//
handleSizeChange(val) {
this.queryForm.pageSize = val;
this.getData();
//console.log(val);
},
handleCurrentChange(val) {
this.queryForm.pageNum = val;
this.getData();
//console.log(val);
},
//
async getData() {
if (this.queryForm.month) {
this.queryForm.inputDate = this.formatTime(
this.queryForm.month,
"YYYY-MM-DD hh:mm:ss"
);
} else {
this.queryForm.inputDate = this.formatTime(
new Date(),
"YYYY-MM-DD hh:mm:ss"
);
}
this.queryForm.memberId = this.form.memberId;
this.queryForm.memberName = this.form.memberName;
this.queryForm.memberPhone = this.form.mobilePhone;
this.queryForm.accountId = this.form.id;
listByMembers(this.queryForm).then((res) => {
if (res.code == "000000") {
res.pageInfo.list.forEach((item) => {
this.itemList.forEach((items) => {
if (item.docType == items.docType) {
item.docTypeName = items.docTypeName;
}
});
});
res.pageInfo.list.forEach((item) => {
if (item.type == "card_repay") {
item.docTypeName = "还款";
}
if (item.type == "card_repay") {
if (item.orderType == "course") {
item.docTypeName = "疗程" + item.docTypeName;
}
if (item.orderType == "recharge") {
item.docTypeName = "充值" + item.docTypeName;
}
}
if (item.docType == "refund_cash_room") {
if (item.accountType == "refund_cash_unaudit_room") {
item.docTypeName = "房间退反审核";
}
if (item.accountType == "refund_cash_audit_room") {
item.docTypeName = "房间消费退";
}
}
if (item.docType == "recharge_Transition") {
if (item.accountType == "recharge_Transition_out") {
item.docTypeName = "充值卡内调转出";
}
if (item.accountType == "recharge_Transition_out_cancel") {
item.docTypeName = "充值内调作废";
}
if (item.accountType == "recharge_Transition_in") {
item.docTypeName = "充值卡内调转入";
}
if (item.accountType == "recharge_Transition_in_cancel") {
item.docTypeName = "充值内调作废";
}
if (item.accountType == "recharge_Transition_out_cancel") {
item.docTypeName = "充值转出反审核";
}
}
});
this.list = res.pageInfo.list;
this.total = res.pageInfo.total;
} else {
this.$alert(res.message, "查询会员疗程", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
},
},
};
</script>
<style>
</style>

@ -0,0 +1,94 @@
<template>
<div>
<el-table border v-loading="listLoading" :data="list" :element-loading-text="elementLoadingText" @row-dblclick="rowdbClick" max-height="650" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)',color:'#eeeeee'}">
<el-table-column type="index" width="40" align="center"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="courseProjectNum" label="编码"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="courseProjectName" label="名称"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="price" label="单价"></el-table-column>
<el-table-column show-overflow-tooltip align="center" label="余次">
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="courseRestCount" label="剩余"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="courseConsumeCount" label="可消费"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" label="余额">
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="courseRestPrice" label="剩余"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="courseConsumePrice" label="可消费"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" label="门店">
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="storeNum" label="编码"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="120" prop="storeName" label="名称"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="endTime" sortable label="到期时间"></el-table-column>
<!-- <el-table-column align="center" fixed="right" label="操作" width="100" v-role="50011003">
<template slot-scope="scope">
<el-button @click="edit(scope.row)" size="mini" type="primary">帐户延期</el-button>
</template>
</el-table-column> -->
</el-table>
<edit ref="edit" @editData="editData"></edit>
<detail ref="detail"></detail>
</div>
</template>
<script>
import { listdeals } from "@/api/eashier.js";
import edit from "./edit";
import detail from "./prodetail";
export default {
components: { edit, detail },
data() {
return {
form: {}, //
list: [], //
total: 0, //
listLoading: false, //list
elementLoadingText: "加载中...", //list
queryForm: {
//
pageNum: 1,
pageSize: 10,
},
};
},
methods: {
//
rowdbClick(row) {
this.$refs.detail.show(row);
},
//
show(form) {
this.form = { ...form };
this.getData();
},
//
edit(row) {
this.$refs.edit.show(row);
},
//
editData() {
this.getData();
},
//
async getData() {
var ids = {
memberId: this.form.id,
};
listdeals(ids).then((res) => {
if (res.code == "000000") {
this.list = res.rows;
} else {
this.$alert(res.message, "查询会员疗程", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
},
},
};
</script>
<style>
</style>

@ -0,0 +1,89 @@
<template>
<div>
<el-table border v-loading="listLoading" :data="list" :element-loading-text="elementLoadingText" @row-dblclick="rowdbClick" max-height="650" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)',color:'#eeeeee'}">
<el-table-column type="index" width="40" align="center"></el-table-column>
<el-table-column show-overflow-tooltip align="center" label="充值类别">
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="rechargeTypeNum" label="编码"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="rechargeTypeName" label="名称"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="160" prop="cardRechargeMoney" label="金额"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="160" prop="discount" label="折扣"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" label="充值">
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="cardRestMoney" label="剩余"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="cardConsumeMoney" label="可用"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" label="赠送">
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="cardGiftMoney" label="剩余"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="giftConsumeMoney" label="可用"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="endTime" sortable label="到期时间"></el-table-column>
</el-table>
<detail ref="detail"></detail>
</div>
</template>
<script>
import { recAccountCashList } from "@/api/eashier.js";
import detail from "./recdetail";
export default {
components: { detail },
data() {
return {
form: {}, //
list: [], //
total: 0, //
listLoading: false, //list
elementLoadingText: "加载中...", //list
queryForm: {
//
pageNum: 1,
pageSize: 10,
},
};
},
methods: {
//
rowdbClick(row) {
this.$refs.detail.show(row);
},
//
show(form) {
this.form = { ...form };
this.getData();
},
//
handleSizeChange(val) {
this.queryForm.pageSize = val;
this.getData();
//console.log(val);
},
handleCurrentChange(val) {
this.queryForm.pageNum = val;
this.getData();
//console.log(val);
},
//
async getData() {
recAccountCashList({
memberId: this.form.id,
}).then((res) => {
if (res.code == "000000") {
this.list = res.rows;
} else {
this.$alert(res.message, "查询会员卡包", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
},
},
};
</script>
<style>
</style>

@ -0,0 +1,282 @@
<template>
<el-dialog :close-on-click-modal="false" v-dialogDrag rechargeTypeId="form" :title="title" :visible.sync="dialogFormVisible" width="75%">
<div class="form-width-ms block">
<span class="demonstration"></span>
<el-date-picker v-model="queryForm.month" type="month" @change="getData" placeholder="选择月份">
</el-date-picker>
</div>
<el-table border v-loading="listLoading" :data="list" :element-loading-text="elementLoadingText" @row-dblclick="rowdbClick" max-height="650" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)',color:'#eeeeee'}">
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="docTypeName" label="类别"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="orderStatu" label="状态">
<template slot-scope="scope">
<el-tag :type="scope.row.orderStatu==0?'success':scope.row.orderStatu==0?'danger':''">
{{scope.row.orderStatu==0?'正常':scope.row.orderStatu==1?'作废':'反审核'}}
</el-tag>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="inputBy" label="操作人"></el-table-column>
<el-table-column show-overflow-tooltip align="center" label="单据">
<el-table-column show-overflow-tooltip align="center" min-width="120" prop="docNum" label="单据号"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="115" prop="inputDate" label="时间"></el-table-column>
<!-- <el-table-column show-overflow-tooltip align="center" min-width="160" prop="updatedTime" label="操作人"></el-table-column> -->
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="storeNum" label="门店编码"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="140" prop="storeName" label="门店名称"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" label="交易">
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="tradeName" label="成交金额"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="price" label="单价">
<template slot-scope="scope">
<div>
{{scope.row.price?scope.row.price:'--'}}
</div>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="tradeCount" label="数量">
<template slot-scope="scope">
<div>
{{scope.row.tradeCount?scope.row.tradeCount:'--'}}
</div>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="tradeMoney" label="成交金额"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="debtMoney" label="欠款金额"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" label="收入">
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="accountInMoney" label="金额"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="giftInMenoy" label="赠送金额"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" label="支出">
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="accountSpendMoney" label="金额"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="accountGiftSpendMoney" label="赠送金额"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" label="结余">
<el-table-column show-overflow-tooltip align="center" label="剩余">
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="accountRestMoney" label="金额"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="accountGiftRestMoney" label="赠送金额"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" label="可用">
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="accountConsumeMoney" label="金额"> </el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="80" prop="accountGiftConsumeMoney" label="赠送金额"></el-table-column>
</el-table-column>
</el-table-column>
</el-table>
<div class="block margin-top-xs">
<!-- 分页组件 -->
<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>
<orderdetail ref="orderdetail"></orderdetail>
<div slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="dialogFormVisible = false">关闭</el-button>
</div>
</el-dialog>
</template>
<script>
import orderdetail from "@/components/order/detail.vue";
import { listByMembers } from "@/api/eashier";
export default {
components: { orderdetail },
data() {
return {
form: {}, //
title: "", //
list: [], //
total: 0, //
listLoading: false, //list
dialogFormVisible: false, //
elementLoadingText: "加载中...", //list
queryForm: {
//
pageNum: 1,
pageSize: 10,
},
itemList: [
//
{
docType: "store_room",
docTypeName: "前台收银",
},
{
docType: "upgrade_out",
docTypeName: "升级转出",
},
{
docType: "upgrade_in",
docTypeName: "升级充值",
},
{
docType: "demotion_out",
docTypeName: "降级转出",
},
{
docType: "demotion_in",
docTypeName: "降级充值",
},
{
docType: "init",
docTypeName: "初始化",
},
{
docType: "card_recharge",
docTypeName: "充值开卡",
},
{
docType: "recharge_roll_course",
docTypeName: "疗程转充值卡",
},
{
docType: "card_change",
docTypeName: "加价转疗程",
},
{
docType: "card_use",
docTypeName: "疗程开卡",
},
{
docType: "store_cash",
docTypeName: "收银",
},
{
docType: "card_repay",
docTypeName: "还款",
},
{
docType: "refund_recharge",
docTypeName: "充值退款",
},
{
docType: "refund_course",
docTypeName: "疗程退款",
},
{
docType: "refund_cash",
docTypeName: "消费退款",
},
{
docType: "promotion",
docTypeName: "促销活动",
},
{
docType: "promotion_card_repay",
docTypeName: "促销还款",
},
{
docType: 'recharge_groupon',
docTypeName: "团购卡"
}
],
};
},
methods: {
//
rowdbClick(row) {
this.$refs.orderdetail.show(row);
},
//
show(form) {
this.form = { ...form };
this.title = form.rechargeTypeName;
this.dialogFormVisible = true;
this.getData();
},
//
handleSizeChange(val) {
this.queryForm.pageSize = val;
this.getData();
//console.log(val);
},
handleCurrentChange(val) {
this.queryForm.pageNum = val;
this.getData();
//console.log(val);
},
//
async getData() {
if (this.queryForm.month) {
this.queryForm.inputDate = this.formatTime(
this.queryForm.month,
"YYYY-MM-DD hh:mm:ss"
);
} else {
this.queryForm.inputDate = this.formatTime(
new Date(),
"YYYY-MM-DD hh:mm:ss"
);
}
this.queryForm.memberId = this.form.memberId;
this.queryForm.memberName = this.form.memberName;
this.queryForm.memberPhone = this.form.mobilePhone;
this.queryForm.accountId = this.form.id;
listByMembers(this.queryForm).then((res) => {
if (res.code == "000000") {
res.pageInfo.list.forEach((item) => {
this.itemList.forEach((items) => {
if (item.docType == items.docType) {
item.docTypeName = items.docTypeName;
}
});
});
res.pageInfo.list.forEach((item) => {
if( item.accountType == 'recharge_groupon'){
item.docTypeName = "团购卡";
}
if (item.type == "card_repay") {
item.docTypeName = "还款";
}
if (item.type == "card_repay") {
if (item.orderType == "course") {
item.docTypeName = "疗程" + item.docTypeName;
}
if (item.orderType == "recharge") {
item.docTypeName = "充值" + item.docTypeName;
}
}
if (item.docType == "refund_cash_room") {
if (item.accountType == "refund_cash_unaudit_room") {
item.docTypeName = "房间退反审核";
}
if (item.accountType == "refund_cash_audit_room") {
item.docTypeName = "房间消费退";
}
}
if (item.docType == "recharge_Transition") {
if (item.accountType == "recharge_Transition_out") {
item.docTypeName = "充值卡内调转出";
}
if (item.accountType == "recharge_Transition_out_cancel") {
item.docTypeName = "充值内调作废";
}
if (item.accountType == "recharge_Transition_in") {
item.docTypeName = "充值卡内调转入";
}
if (item.accountType == "recharge_Transition_in_cancel") {
item.docTypeName = "充值内调作废";
}
if (item.accountType == "recharge_Transition_out_cancel") {
item.docTypeName = "充值转出反审核";
}
}
});
this.list = res.pageInfo.list;
this.total = res.pageInfo.total;
} else {
this.$alert(res.message, "查询会员疗程", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
},
},
};
</script>
<style>
</style>

@ -0,0 +1,103 @@
<template>
<div>
<el-table border v-loading="listLoading" :data="list" :element-loading-text="elementLoadingText" @row-dblclick="rowdbClick" max-height="650" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)',color:'#eeeeee'}">
<el-table-column type="index" width="40" align="center"></el-table-column>
<el-table-column show-overflow-tooltip align="center" label="充值类别">
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="rechargeTypeNum" label="编码"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="rechargeTypeName" label="名称"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="160" prop="cardRechargeMoney" label="金额"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="160" prop="discount" label="折扣"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" label="充值">
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="cardRestMoney" label="剩余"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="cardConsumeMoney" label="可用"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" label="赠送">
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="cardGiftMoney" label="剩余"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="giftConsumeMoney" label="可用"></el-table-column>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="endTime" sortable label="到期时间"></el-table-column>
<!-- <el-table-column align="center" fixed="right" label="操作" width="100" v-role="50011003">
<template slot-scope="scope">
<el-button @click="edit(scope.row)" size="mini" type="primary">帐户延期</el-button>
</template>
</el-table-column> -->
</el-table>
<edit ref="edit" @editData="editData"></edit>
<detail ref="detail"></detail>
</div>
</template>
<script>
import { cashListall } from "@/api/eashier.js";
import edit from "./edit";
import detail from "./recdetail";
export default {
components: { edit, detail },
data() {
return {
form: {}, //
list: [], //
total: 0, //
listLoading: false, //list
elementLoadingText: "加载中...", //list
queryForm: {
//
pageNum: 1,
pageSize: 10,
},
};
},
methods: {
//
rowdbClick(row) {
this.$refs.detail.show(row);
},
//
show(form) {
this.form = { ...form };
this.getData();
},
//
edit(row) {
this.$refs.edit.show(row);
},
//
editData() {
this.getData();
},
//
handleSizeChange(val) {
this.queryForm.pageSize = val;
this.getData();
},
handleCurrentChange(val) {
this.queryForm.pageNum = val;
this.getData();
//console.log(val);
},
//
async getData() {
cashListall({
memberId: this.form.id,
}).then((res) => {
if (res.code == "000000") {
this.list = res.rows;
} else {
this.$alert(res.message, "查询会员卡包", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
},
},
};
</script>
<style>
</style>

@ -0,0 +1,246 @@
<template>
<div>
<el-dialog :close-on-click-modal="false" title="会员交易记录" :visible.sync="dialogFormVisible" width="80%" v-dialogDrag>
<el-tabs disabled type="border-card" v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="充值" name="充值">
<rec ref="rec"></rec>
</el-tab-pane>
<el-tab-pane label="历史充值" name="历史充值">
<recs ref="recs"></recs>
</el-tab-pane>
<el-tab-pane label="疗程" name="疗程">
<pro ref="pro"></pro>
</el-tab-pane>
<el-tab-pane label="历史疗程" name="历史疗程">
<pros ref="pros"></pros>
</el-tab-pane>
<el-tab-pane label="交易记录" name="交易记录">
<cash ref="cash"></cash>
</el-tab-pane>
</el-tabs>
<member ref="member" @memberData="memberData"></member>
<div slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" @click="dialogFormVisible = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { partten } from "../../../partten/index";
import member from "@/components/member/index";
import rec from "./components/rec.vue";
import recs from "./components/recs.vue";
import pro from "./components/pro.vue";
import pros from "./components/pros.vue";
import cash from "./components/cash.vue";
import { storeMemberOne } from "@/api/eashier";
export default {
props:{
mobilePhone:{
type:String,
default:''
}
},
components: {
rec,
recs,
pro,
pros,
cash,
member,
},
data() {
return {
dialogFormVisible:false,
form: {
month: new Date(),
},
activeName: "充值", //
};
},
watch:{
dialogFormVisible:{
handler(show){
if(show){
let mobilePhone = this.mobilePhone
this.form.mobilePhone = mobilePhone
storeMemberOne({
mobilePhone: this.form.mobilePhone,
storeId: sessionStorage.getItem("parentId"),
}).then((res) => {
if (res.data != undefined && res.data.state == 0) {
this.$message.error({
message: "账户已锁定, 不允许使用 ! ",
});
this.$alert("账户已锁定, 不允许使用 !", "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
} else {
if (res.code == "000000" || res.code == "200004") {
if (res.code == "000000") {
this.form = res.data;
if (this.activeName == "充值") {
this.$refs.rec.show(this.form);
}
if (this.activeName == "疗程") {
this.$refs.pro.show(this.form);
}
if (this.activeName == "交易记录") {
this.$refs.cashAchi.show(this.form);
}
} else {
if (res.code == "200004") {
this.$confirm(res.message + ",请先注册!", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
cancelButtonClass: "cancelbtnFalses",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
}).then(() => {});
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
}
} else {
this.$alert("查询会员信息 : " + res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
}
});
}
},
immediate:true
}
},
methods: {
//
change(date) {
// this.form.month = ''
console.log(date)
this.$refs.cash.show(this.form);
},
//
//
handleClick(tab, event) {
if (this.form.memberName) {
if (tab.name == "充值") {
this.$refs.rec.show(this.form);
}
if (tab.name == "疗程") {
this.$refs.pro.show(this.form);
}
if (tab.name == "历史充值") {
this.$refs.recs.show(this.form);
}
if (tab.name == "历史疗程") {
this.$refs.pros.show(this.form);
}
if (tab.name == "交易记录") {
this.$refs.cash.show(this.form);
}
this.activeName = tab.name;
} else {
this.$message.error({ message: "请先选择会员!" });
}
},
//
openMember() {
this.$refs.member.show(this.vip);
},
//
memberData(v) {
this.form.mobilePhone = v.mobilePhone;
this.query();
},
//
//
query() {
var number = partten.phoneNum;
if (!number.test(this.form.mobilePhone*1)) {
this.$message.info({
message: "请输入正确的手机号 ! ",
});
} else {
storeMemberOne({
mobilePhone: this.form.mobilePhone,
storeId: sessionStorage.getItem("parentId"),
}).then((res) => {
if (res.data != undefined && res.data.state == 0) {
this.$message.error({
message: "账户已锁定, 不允许使用 ! ",
});
this.$alert("账户已锁定, 不允许使用 !", "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
} else {
if (res.code == "000000" || res.code == "200004") {
if (res.code == "000000") {
this.form = res.data;
if (this.activeName == "充值") {
this.$refs.rec.show(this.form);
}
if (this.activeName == "疗程") {
this.$refs.pro.show(this.form);
}
if (this.activeName == "交易记录") {
this.$refs.cashAchi.show(this.form);
}
} else {
if (res.code == "200004") {
this.$confirm(res.message + ",请先注册!", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
cancelButtonClass: "cancelbtnFalses",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
}).then(() => {});
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
}
} else {
this.$alert("查询会员信息 : " + res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
}
});
}
},
},
created() {},
};
</script>
<style>
</style>

@ -18,7 +18,7 @@
<i class="el-icon-s-platform icon-plat-form"></i>
</el-tooltip>
<span class="text-white ">
{{storeName}}({{headOffice}})
{{storeName}}({{isStoreName}})
</span>
</div>
</div>
@ -172,6 +172,10 @@ export default {
},
computed: {
...mapState(["collapse"]),
isStoreName(){
let userInfo = JSON.parse(sessionStorage.getItem('userInfo'))
return userInfo.parentId?'分店':'总店'
}
},
components: {
asider,
@ -215,6 +219,7 @@ export default {
message: "已退出登录!",
});
sessionStorage.clear();
localStorage.clear();
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
@ -284,6 +289,7 @@ export default {
that.storeNum = JSON.parse(sessionStorage.getItem("storeInfo")).storeNum;
that.headOffice =
sessionStorage.getItem("headOffice") == 1 ? "总店" : "分店";
console.log('that.headOffice--->',that.headOffice)
if (!that.roleName) {
that.roleName = sessionStorage.getItem("roleName");
}

@ -229,7 +229,6 @@ export default {
//
storeData(v) {
console.log(v);
this.loading = false;
this.rowForm = { ...v };
if (this.showLogin == 0) {

@ -40,6 +40,9 @@ import "./utils/rem.js";
Vue.use(animated);
Vue.use(vueEsign);
import trading from "./components/trading";
Vue.component('trading',trading)
import print from "vue-print-nb";
directives: {
print;

@ -17,6 +17,7 @@
<i v-if="form.sex==1" class="el-icon-male text-blue"></i>
<i v-if="form.sex==0" class="el-icon-female text-pink"></i>
</span>
<el-button size="mini" type="text" v-show="debtMoneys != 0" @click="routePush"></el-button>
</div>
</el-form-item>
<el-form-item v-if="sessionStorageData.recDebt&&debtMoneys" label="以往欠款:">
@ -361,6 +362,7 @@
<repayment ref="repayment" @repaymentData="query"></repayment>
<updo ref="updo" @recTypeData="recTypeData"></updo>
<detail ref="detail" @detailData="detailData"></detail>
<trading ref="trading" :mobilePhone='form.mobilePhone'/>
</div>
</template>
<script>
@ -408,6 +410,7 @@ export default {
},
data() {
return {
giveType:undefined,
printDialogVisible: false, //
listDialogVisible: false,
postponeDialog: false,
@ -496,6 +499,9 @@ export default {
};
},
methods: {
routePush(){
this.$refs.trading.dialogFormVisible = true
},
close() {
this.listDialogVisible = false;
},
@ -585,6 +591,7 @@ export default {
},
recTypeData(v, number) {
this.giveType = v.giveType
this.form.liftType = this.liftType;
if (v.rawCardId) {
this.form.rawCardId = v.rawCardId;
@ -1146,6 +1153,7 @@ export default {
this.saveloading = false;
}, 3000);
if (this.liftType == 0) {
// this.form.giveType = this.giveType
addrec(this.form).then((res) => {
this.saveloading = false;
if (res.code == "000000") {
@ -1166,7 +1174,6 @@ export default {
}
});
} else {
upgrade(this.form).then((res) => {
this.saveloading = false;
if (res.code == "000000") {

@ -0,0 +1,277 @@
<template>
<div>
<el-dialog
title="取消欠款"
:visible.sync="dialogFormVisible"
width="70%"
:close-on-click-modal="false"
v-dialogDrag
append-to-body
>
<div>
<el-form :model="form" :inline="true" label-width="80px">
<el-form-item label="手机号码:">
<div class="form-width-ms flex">
<el-input oninput="this.value=this.value.replace(/\D/g,'')" placeholder="请输入会员手机号" style="height:100%" pattern="[0-9]*" maxlength="11" v-model="queryForm.mobilePhone" @change.native.stop="query">
<el-button size="mini" slot="append" icon="el-icon-search" @click="openMember"></el-button>
</el-input>
</div>
</el-form-item>
</el-form>
</div>
<el-table
:header-cell-style="{
background: 'linear-gradient(#6cb3ff, #1873d4)',
color: '#eeeeee',
}"
:data="list"
:element-loading-text="elementLoadingText"
v-loading="loading"
max-height="600"
>
<el-table-column
show-overflow-tooltip
prop="memberName"
align="center"
min-width="100"
label="会员名称"
></el-table-column>
<el-table-column
show-overflow-tooltip
prop="mobilePhone"
align="center"
min-width="100"
label="手机号码"
></el-table-column>
<el-table-column
show-overflow-tooltip
prop="storeNum"
align="center"
min-width="100"
label="门店编码"
></el-table-column>
<el-table-column
show-overflow-tooltip
prop="storeName"
align="center"
min-width="100"
label="门店名称"
></el-table-column>
<el-table-column
show-overflow-tooltip
prop="docNum"
align="center"
min-width="100"
label="单号"
></el-table-column>
<el-table-column
show-overflow-tooltip
prop="docDate"
align="center"
min-width="100"
label="时间"
></el-table-column>
<el-table-column
show-overflow-tooltip
prop="docType"
align="center"
min-width="100"
label="类型"
>
<template slot-scope="scope">
<span>{{ scope.row.docType=='card_recharge'?'正常充值':scope.row.docType=='card_use'?'疗程':scope.row.docType=='card_change'?'加价转疗程':scope.row.docType=='promotion_card_use'?'疗程促销':'暂无' }}</span>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="tradeName"
align="center"
min-width="100"
label="名称"
></el-table-column>
<el-table-column
show-overflow-tooltip
prop="tradeMoney"
align="center"
min-width="100"
label="成交金额"
></el-table-column>
<el-table-column
show-overflow-tooltip
prop="debtMoney"
align="center"
min-width="100"
label="欠款"
></el-table-column>
<el-table-column
show-overflow-tooltip
align="center"
min-width="100"
label="操作"
>
<template slot-scope="scope">
<el-button size="mini" type="primary" @click="cancel(scope.row)"
>取消欠款</el-button
>
</template>
</el-table-column>
</el-table>
<el-pagination
:current-page="queryForm.pageNum"
:layout="layout"
:page-size="queryForm.pageSize"
:total="total"
@current-change="handleCurrentChange"
@size-change="handleSizeChange"
/>
<span slot="footer" class="dialog-footer">
<el-button
size="mini"
type="primary"
plain
@click="dialogFormVisible = false"
> </el-button
>
</span>
</el-dialog>
<cancel ref="cancel"></cancel>
<member ref='member' @memberData="memberData"/>
</div>
</template>
<script>
import cancel from "../../../../components/repayment/components/cancel.vue";
import { debtPage,storeMemberOne } from "@/api/eashier.js";
import { organizations } from "@/api/storeManage.js";
import member from "@/components/member/index";
export default {
components: { cancel,member },
data() {
return {
form:{},
dialogFormVisible: false,
layout: "total, sizes, prev, pager, next, jumper",
elementLoadingText: "加载中",
total: 0,
list: [],
loading: false,
queryForm: {
pageNum: 1,
pageSize: 10,
mobilePhone:""
},
options:[]
};
},
watch:{
dialogFormVisible:{
handler(show){
if(show){
this.queryForm.mobilePhone = ''
this.list = []
}
},
immediate:true
}
},
methods: {
memberData(v){
this.queryForm.memberId = v.id
this.init()
},
openMember(){
this.$refs.member.show({})
},
query(){
let myreg = /^[1][3,4,5,6,7,8,9][0-9]{9}$/;
console.log(myreg.test(this.queryForm.mobilePhone))
if (myreg.test(this.queryForm.mobilePhone)){
let params = {
mobilePhone:this.queryForm.mobilePhone,
storeId: sessionStorage.getItem("parentId"),
}
storeMemberOne(params).then(res=>{
if(res.code == "000000"){
this.queryForm.memberId = res.data.memberId
this.init()
}else{
this.$message.warning({
message: res.message,
});
}
})
}else{
this.$message.info({
message: "请输入正确的手机号 ! ",
});
}
},
getOption(){
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) => {},
});
}
});
},
handleCurrentChange(current) {
this.queryForm.pageNum = current;
this.init()
},
handleSizeChange(size) {
this.queryForm.pageSize = size;
this.init()
},
cancel(row) {
delete row.adminList;
delete row.entities;
delete row.managerList;
delete row.docDate;
delete row.adminList;
row.debtId = row.id
for(let k in row){
if(!row[k]){
delete row[k]
}
}
this.$refs.cancel.show(row);
},
init() {
this.loading = true
let params = {
...this.queryForm,
state: 0,
storeId: sessionStorage.getItem("storeId"),
};
debtPage(params).then((res) => {
this.loading = false
if (res.code == "000000"){
this.list = res.pageInfo.list;
this.total = res.pageInfo.total
}
});
},
},
created() {
this.getOption()
},
};
</script>
<style scoped>
.right{
display: flex;
justify-content: flex-end;
}
</style>

@ -100,7 +100,7 @@
<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" :disabled="!(scope.row.state==4||scope.row.state==2||scope.row.state==0)" plain @click="handleUpdata(scope.row)"></el-button>
<el-button size="mini" type="primary" plain @click="del(scope.row)"></el-button>
</template>
</el-table-column>
@ -347,6 +347,12 @@ export default {
};
},
methods: {
handleUpdata(row){
console.log(row)
this.cancelForm={ ...row }
this.cancelDialogVisible=true
this.title='修改'
},
confirms(row) {
this.cancelForm = row;
this.cancelDialogVisible = true;

@ -7,6 +7,7 @@
<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="addCancel"></el-button>
<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>
@ -47,7 +48,7 @@
<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" :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>
@ -121,6 +122,15 @@
</el-table>
</div>
<div v-else>
<el-form-item label="用户名">
{{cancelForm.memberName}}
</el-form-item>
<el-form-item label="类型">
{{cancelForm.docType=='card_use'?'疗程':cancelForm.docType=='promotion_card_use'?'促销':cancelForm.liftType==1?'升降级':'正常充值'}}
</el-form-item>
<el-form-item label="时间">
{{cancelForm.docDate}}
</el-form-item>
<el-form-item label="欠款帐户">
{{cancelForm.tradeName}}
</el-form-item>
@ -209,6 +219,7 @@
<excel @fileData='fileData' @infoDialogV='infoDialogV'></excel>
</el-dialog>
<detail ref="detail" @detailData="detailData"></detail>
<cancel-arrears ref="cancelArrears" />
</div>
</template>
<script>
@ -226,7 +237,7 @@ import {
submitCancelDebtList,
} from "@/api/eashier.js";
import { organizations } from "@/api/storeManage.js";
import cancelArrears from './components/cancelArrears.vue'
import excel from "@/components/excel";
import admin from "@/components/staffList/admin/index";
import manager from "@/components/staffList/manager/index";
@ -242,6 +253,7 @@ export default {
excel,
detail,
selec,
cancelArrears
},
data() {
return {
@ -295,8 +307,11 @@ export default {
};
},
methods: {
addCancel(){
this.$refs.cancelArrears.dialogFormVisible = true
},
confirms(row) {
this.cancelForm = row;
this.cancelForm = {...row};
this.cancelDialogVisible = true;
this.title = "明细";
},

@ -97,7 +97,7 @@ export default {
staffslesout,
manager,
admin,
staffslesout
// staffslesout
},
data() {
return {
@ -135,6 +135,7 @@ export default {
setStaffs() {
var that = this;
this.$nextTick(() => {
console.log(this.form.staffListsout)
that.$refs.staffslesout.show(that.form.staffListsout);
});
},

@ -179,17 +179,13 @@
</template>
</el-table-column>
</el-table>
<div style="text-align:center;width: 100%;" @click="endEdits()" v-if="!shows"></div>
<div style="display:flex" v-if="shows">
<div style="margin-left:30%">现付金额为:</div>
<div style="margin-left: 20%;">{{ payMoneys }}</div>
</div>
</div>
</div>
<div class="into-table-width flex justify-center align-start flex-wrap padding-top padding-left-lg">
<staffsles ref="staffsles" @staffslesData="staffslesData"></staffsles>
<admin ref="admin" @adminData="adminData"></admin>
@ -199,13 +195,12 @@
<el-button size="mini" type="info" @click='empty()' plain>清空</el-button>
<el-button size="mini" v-if="isAddition == 0" type="primary" @click="isAddition = 1"></el-button>
<el-button size="mini" v-else type="success" @click="isAddition = 0">加价</el-button>
<el-button size="mini" type="primary" @click='raiseProList()' plain>列表</el-button>
<el-button size="mini" type="primary" @click='submit(true, loading = true)' :loading="loading"
:disabled="outList.length == 0 && inList.length == 0">提交</el-button>
<el-button size="mini" type="primary" @click='raiseProList()' plain v-role='5004103'>列表</el-button>
<el-button size="mini" type="primary" @click='submit(true, loading = true)' :loading="loading" v-role="5004101" :disabled="outList.length == 0 && inList.length == 0"></el-button>
</div>
</el-form>
<member ref="member" @memberData="memberData"></member>
<project ref="project" @projectData="projectData"></project>
<project ref="project" @projectData="projectData" :storeId='StoreIds'></project>
<Branch ref="Branch" @BranchData="BranchData"></Branch>
<staffratio ref="staffratio" @staffratioData="staffratioData"></staffratio>
</div>
@ -244,6 +239,8 @@ export default {
return time.getTime() > Date.now();
},
},
storeName:"",
storeId:"",
projectDialogVisible: false,
shows: false,
recDateShow: false,
@ -373,6 +370,10 @@ export default {
});
let salesmens = [];
if(this.storeName){
this.proForm.storeName = this.storeName
this.proForm.storeId = this.storeId
}
this.proForm.managerLists.forEach((item) => {
if (item.id) {
item.staffType = 0;
@ -387,13 +388,9 @@ export default {
salesmens.push(item);
}
});
this.proForm.changeInPayMoney = payMoneys;
this.proForm.changeInMoney = this.inMoneys.toFixed(2) * 1;
this.proForm.changeOutMoney = this.outMoneys.toFixed(2) * 1;
console.log("🚀 ~ file: index.vue ~ line 394 ~ submit ~ this.debtMoney", this.debtMoney)
console.log("🚀 ~ file: index.vue ~ line 400 ~ submit ~ this.proForm.debtMoney", this.proForm.debtMoney)
this.proForm.isAddition = this.isAddition;
this.proForm.payLists = payLists;
this.proForm.cardChangeOutProjectRequests = this.outList;
@ -402,7 +399,6 @@ export default {
this.proForm.cardChangeInProjectRequest.staffLists =
this.proForm.staffLists;
if (this.debtMoney < 0) {
this.proForm.differenceMoney = this.debtMoney * -1;
this.proForm.debtMoney = 0;
this.proForm.isDebt = 0;
@ -413,14 +409,6 @@ export default {
this.proForm.isDebt = 1;
this.proForm.cardChangeInProjectRequest.isDebt = 1;
}
// if (this.proForm.cardChangeInProjectRequest.debtMoney != 0) {
// this.proForm.cardChangeInProjectRequest.isDebt = 1;
// this.proForm.isDebt = 1;
// } else {
// this.proForm.isDebt = 0;
// this.proForm.cardChangeInProjectRequest.isDebt = 0;
// }
let falg = true;
if (this.isAddition == 1) {
if (this.proForm.additionDate) {
@ -486,6 +474,8 @@ export default {
row.index = rowIndex;
},
projectData(form,rows) {
this.storeName = form.storeName
this.storeId = form.storeId
form.memberId = this.proForm.memberId;
form.memberName = this.proForm.memberName;
form.mobilePhone = this.proForm.mobilePhone;
@ -517,7 +507,7 @@ export default {
}
if (this.openProText == 1) {
form.unitMoney =
(form.courseProjectMoney / form.courseCount).toFixed(2) * 1;
(form.courseProjectMoney / form.courseCount).toFixed(2) * 1;project
// form.changeOutMoney =
// (form.courseConsumeCount * form.unitMoney).toFixed(2) * 1;
form.changeOutMoney = 0;
@ -553,12 +543,23 @@ export default {
row.id = res.data.id;
row.memberName = res.data.memberName;
row.mobilePhone = res.data.mobilePhone;
row.storeId = res.data.storeId;
row.storeName = res.data.storeName;
row.memberIdentityCard = res.data.identityCard;
this.proForm = {};
this.proForm = row;
// console.log(this.proForm);
this.outList = []
this.inList = []
if(this.proForm.payLists.length){
this.proForm.payLists.forEach(item=>{
item.payMoney = 0
})
}
this.inMoneys = 0
this.outMoneys = 0
this.payMoneys = 0
this.debtMoney = 0
this.$refs.staffsles.staffLists= [{ ratio: 100 }]
this.$refs.admin.staffLists= [{ ratio: 100 }]
this.$refs.admin.staffLists = [{ ratio: 100 }]
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
@ -576,6 +577,7 @@ export default {
//.
editPay(row, index) {
// scope.row.payMoney
// console.log(row)
var form = {
...row,
@ -627,8 +629,6 @@ export default {
this.proForm.storeId=""
}
this.$refs.project.show(this.proForm);
console.log("🚀 ~ file: index.vue ~ line 530 ~ openPro ~ this.proForm", this.proForm)
console.log(this.inList)
}
},
delOldPro(index) {
@ -822,6 +822,7 @@ export default {
},
sumMoney() {
// debtMoney
// scope.row.payMoney
console.log('this.inList',this.inList,'this.outList',this.outList,'this.proForm.payLists',this.proForm.payLists)
let inMoneys = 0;
let outMoneys = 0;
@ -838,6 +839,7 @@ export default {
});
//
this.proForm.payLists.forEach((item) => {
item.payMoney = item.payMoney?item.payMoney*1:0
payMoneys += item.payMoney * 1;
});
this.outMoneys = outMoneys.toFixed(2) * 1;

@ -8,7 +8,7 @@
<el-input maxlength="11" placeholder="请输入会员手机号" class="form-width-ms" v-model="queryForm.mobilePhone" clearable></el-input>
<el-button size="mini" type="primary" @click="getData"></el-button>
</div>
<div>
<div v-role="5004102">
<el-button size="mini" type="" @click="detail" :disabled="radioRowValueList.state == undefined">明细</el-button>
<el-button size="mini" type="" @click="del" v-if="radioRowValueList.state!=undefined&&radioRowValueList.state==0"></el-button>
<el-button size="mini" type="primary" @click="edit(0)" v-if="radioRowValueList.state!=undefined&&(radioRowValueList.state==0||radioRowValueList.state==2)" plain>修改</el-button>

@ -14,6 +14,7 @@
<div class="form-width-ms">
<span>{{ form.memberName }} <i v-if="form.sex==1" class="el-icon-male text-blue"></i>
<i v-if="form.sex==0" class="el-icon-female text-pink"></i></span>
<el-button size="mini" type="text" v-if="form.memberName" @click="routePush"></el-button>
</div>
</el-form-item>
<el-form-item label="业务时间:" v-if="isAddition==1">
@ -127,7 +128,7 @@
<i class="el-icon-edit text-cyan"></i>
</div>
<el-input v-focus οninput="value=value.replace(/^0[0-9]+/,val=>val[1]).replace(/^(\.)+/,'').replace(/[^\d.]/g,'').replace(/\.+/,'.').replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')"
class="form-input-width-xs" @change="endEditCard(scope.row)" @blur="endEditCard(scope.row)" v-else v-model.lazy="scope.row.spendMoney" precision="2"></el-input>
class="form-input-width-xs" @change="endEditCard(scope.row)" @blur="endEditCard(scope.row)" v-else v-model.lazy="scope.row.spendMoney" precision="2"></el-input>
</template>
</el-table-column>
<!-- <el-table-column align="center" prop="discoutMoney" label="抵扣支付" width="90">
@ -386,6 +387,7 @@
<repayment ref="repayment" @repaymentData="query"></repayment>
<project ref="project" @projectData="proConfirm"></project>
<detail ref="detail" @detailData="detailData"></detail>
<trading ref="trading" :mobilePhone='form.mobilePhone'/>
</div>
</template>
<script>
@ -653,7 +655,11 @@ export default {
}
},
methods: {
routePush(){
this.$refs.trading.dialogFormVisible = true
},
changeDeal(val){
if(typeof(val)=='object')return this.menberShow = false
this.form.numberTimes?this.form.numberTimes*1:0 //
this.form.amount = val*1
if((val>(this.form.numberTimes*this.form.topPriceMember))||(val<(this.form.minumumPriceMember*this.form.numberTimes))){ //
@ -664,10 +670,11 @@ export default {
"高于" +
this.form.numberTimes*this.form.topPriceMember,
});
this.form.amount = this.form.salesPrice*this.form.numberTimes
this.form.amount = (this.form.salesPrice*this.form.numberTimes).toFixed(2)*1
this.form.salesPrice = (this.form.amount/this.form.numberTimes).toFixed(2)*1
}else{
this.form.salesPrice = (this.form.amount/this.form.numberTimes).toFixed(2)*1
// this.form.amount = (this.form.salesPrice*this.form.numberTimes).toFixed(2)*1
}
this.menberShow = false
},
@ -1048,21 +1055,22 @@ export default {
this.buysShow = false;
} else {
this.buysShow = false;
this.form.salesPrice = (this.form.amount*1/this.form.numberTimes).toFixed(2)*1
// this.form.salesPrice = (this.form.amount*1/this.form.numberTimes).toFixed(2)*1
this.form.amount = (this.form.numberTimes*this.form.salesPrice).toFixed(2)*1
this.form.debtMoney = this.form.amount;
this.resetAmount()
}
},
//.
openpay(row, $index) {
console.log('---',this.payLists)
if (this.form.projectName) {
if (row.payMoney) {
row.payMoney = row.payMoney * 1;
} else {
row.payMoney = 0;
}
row.payMoney = (this.form.debtMoney + row.payMoney).toFixed(2) * 1;
// row.payMoney = (this.form.debtMoney + row.payMoney).toFixed(2) * 1
row.payMoney = this.treatAmount
if (!row.payMoney) {
row.payMoney = 0;
}

@ -31,7 +31,7 @@
</el-form-item>
<el-form-item label="成交金额:" prop="sex">
<div class="form-width-ms">
<span>{{summoney}}</span>
<span>{{summoney?summoney:''}}</span>
</div>
</el-form-item>
<el-form-item label="退款金额:" prop="sex">
@ -145,7 +145,7 @@
<el-table-column align="center" min-width="175" v-if="title=='修改'" prop="cashDate" label="消费时间"></el-table-column>
<el-table-column align="center" min-width="150" prop="projectName" label="消费项目">
</el-table-column>
<el-table-column align="center" min-width="80" prop="collectionAmount" label="成交金额"></el-table-column>
<el-table-column align="center" min-width="80" prop="transactionPrice" label="成交金额"></el-table-column>
<el-table-column align="center" min-width="80" prop="cashRefundMoney" label="退款金额">
<template slot-scope="scope">
<div v-show="title=='明细'">
@ -178,7 +178,7 @@
</div>
</el-form-item><br>
<el-form-item label="附带文件">
<div v-if="title=='明细'" v-for="(item,index) in fileList" :key="index">
<div v-show="title=='明细'" v-for="(item,index) in fileList" :key="index">
<div style="width:100px;cursor: pointer; margin:0 5px;">
<el-image @click="(url = item.url,openImageDialog=true,urlForm = item)" :src='item.url'>
<div slot="error" class="image-slot">
@ -456,7 +456,7 @@ export default {
let num = 0;
res.rows.forEach((item) => {
item.sourceDocNum = form.sourceDocNum;
num += item.collectionAmount * 1;
num += item.transactionPrice * 1;
});
this.summoney = num;

@ -4,7 +4,7 @@
<el-form :model="refund" :inline="true">
<el-form-item label="是否会员:" :label-width="formLabelwidth" prop="staff">
<div class="form-width-ms">
<el-checkbox v-model="isVip">{{isVip?'':''}}</el-checkbox>
<el-checkbox v-model="isVip" @change="checkChange">{{isVip?'':''}}</el-checkbox>
</div>
</el-form-item>
<el-form-item label="手机号码:" :label-width="formLabelwidth" prop="mobilePhone">
@ -47,7 +47,7 @@
</el-form-item>
<el-form-item label="退款金额:" :label-width="formLabelwidth" prop="sex">
<div class="form-width-ms">
<el-input v-model="refundMoney" type="number"></el-input>
<el-input v-model="refundMoney" type="number" :disabled='refund.memberName'></el-input>
</div>
</el-form-item><br>
<el-form-item label="补偿金额:" :label-width="formLabelwidth" prop="compensation">
@ -230,6 +230,9 @@
<template slot-scope="scope">{{scope.row.memberName==null?'散客':scope.row.memberName}}</template>
</el-table-column>
<el-table-column align="center" min-width="120" prop="mobilePhone" label="手机号码">
<template slot-scope="scope">
{{ scope.row.mobilePhone!='null'?scope.row.mobilePhone:'暂无' }}
</template>
</el-table-column>
<el-table-column align="center" min-width="130" prop="sourceDocNum" label="消费单号"></el-table-column>
<el-table-column align="center" min-width="80" prop="refundMoney" label="退款金额"></el-table-column>
@ -773,6 +776,13 @@ export default {
};
},
methods: {
checkChange(){
this.refund = {}
this.refCashListsShow = false
this.refCashLists = []
this.summoney=null
this.refundMoney = null
},
clear(row, text) {
console.log(text);
let form = { ...row };
@ -952,9 +962,10 @@ export default {
this.fileData.append("type", 2);
this.fileData.append("sourceDocNum", this.refund.sourceDocNum);
this.fileData.append("mobilePhone", this.refund.mobilePhone);
let num = (this.refundMoney*1 + this.compensation*1).toFixed(2) * 1
this.fileData.append(
"actualRefundMoney",
(this.refundMoney + this.compensation).toFixed(2) * 1
num
);
this.fileData.append("refundMoney", this.refundMoney);
this.fileData.append("compensation", this.compensation);
@ -962,6 +973,7 @@ export default {
this.fileData.append("refundAccount", this.refundAccount);
this.fileData.append("refundReason", this.refund.refundReason);
this.fileData.append("payee", this.payee);
console.log(this.multipleSelection,'---')
this.multipleSelection.forEach((item) => {
item.manageStaffId = this.refund.manageStaffId;
item.manageStaffName = this.refund.manageStaffName;
@ -1069,22 +1081,20 @@ export default {
isCancel: 0,
startTime: null,
endTime: null,
cashNumber: 0,
cashNumber: this.isVip?1:-1,
};
if (this.refund.mobilePhone) {
ids.mobilePhone = this.refund.mobilePhone;
}
}
cashLists(ids).then((res) => {
//console.log(res);
if (res.code == "000000") {
this.refListDialogVisible = true;
this.refList = res.pageInfo.list;
if (res.pageInfo.total > 0) {
this.refund.memberName = res.pageInfo.list[0].memberName;
this.refund.mobilePhone = res.pageInfo.list[0].mobilePhone;
}
// if (res.pageInfo.total > 0) {
// this.refund.memberName = res.pageInfo.list[0].memberName;
// this.refund.mobilePhone = res.pageInfo.list[0].mobilePhone;
// }
} else {
this.$alert("查询服务收银列表 " + res.message, "提示", {
confirmButtonText: "确定",
@ -1456,8 +1466,6 @@ export default {
});
},
confirmEdit() {
//console.log(this.multipleSelection);
//console.log(this.refund);
this.fileData = new FormData();
this.$refs.uploads.submit();
this.fileData.append("type", 2);
@ -1472,9 +1480,10 @@ export default {
this.refund.memberName ? this.refund.memberName : "散客"
);
this.fileData.append("mobilePhone", this.refund.mobilePhone);
let numTotal = (this.refundMoney*1 + this.compensation*1).toFixed(2) * 1
this.fileData.append(
"actualRefundMoney",
(this.refundMoney + this.compensation).toFixed(2) * 1
numTotal
);
this.fileData.append("refundMoney", this.refundMoney);

@ -35,6 +35,7 @@
<el-form-item prop="paid" label="购买来源:">
<div class="form-width-ms">
<span v-if="form.courseType=='0'"></span>
<span v-else-if="form.courseType=='3'">加价转疗程</span>
<span v-else></span>
</div>
</el-form-item>

@ -134,9 +134,10 @@
</el-table-column>
<el-table-column align="center" prop="courseType" min-width="70" label="购买来源">
<template slot-scope="scope">
<div v-show="scope.row.courseType == '0'"></div>
<div v-show="scope.row.courseType == '1'"></div>
<div v-show="scope.row.courseType == '2'"></div>
<div v-show="scope.row.courseType == '0'"></div>
<div v-show="scope.row.courseType == '1'"></div>
<div v-show="scope.row.courseType == '2'"></div>
<div v-show="scope.row.courseType == '3'"></div>
</template>
</el-table-column>
<el-table-column align="center" prop="price" min-width="70" label="单价"></el-table-column>

@ -1420,7 +1420,7 @@ export default {
recCashQuery() {
let page = {
accountId: this.refund.recAccountId,
inputDate: this.formatTime(this.month, "YYYY-MM-DD hh:mm:ss"),
inputDate: this.formatTime(new Date(), "YYYY-MM-DD hh:mm:ss"),
memberId: this.refund.memberId,
memberName: this.refund.memberName,
docTypes: ["card_use", "store_cash", "card_use"],
@ -1573,6 +1573,7 @@ export default {
delete this.refund.lastConsumeTime;
this.refund.staffLists = staffLists;
this.refund.recRefundMoney = this.refund.refundMoney;
this.refund.refundGiftMoney=this.refund.refundGiftMoney?this.refund.refundGiftMoney:0
this.fileData.append("type", 0);
this.fileData.append("memberId", this.refund.memberId);
this.fileData.append("memberName", this.refund.memberName);

@ -25,14 +25,14 @@
<el-table-column align="left" prop="projectName" label="项目"></el-table-column>
<el-table-column align="center" prop="transactionPrice" label="价格"></el-table-column>
</el-table> -->
<div class="print-table flex justify-center align-center">
<div class="text-left" style="width:50%">项目 </div>
<div class="print-table flex justify-center align-center" style="justify-content:space-around">
<div class="text-left" style="width:30%">项目 </div>
<div class="text-left" style="width:25%">标价 </div>
<div class="text-left" style="width:25%">折后 </div>
</div>
<div style="height:15px"></div>
<div class="print-table flex justify-center align-center" v-for="(item, index) in printForm.projectList" :key="index">
<div class="text-left" style="width:50%"> <span class="text-cyan text-out">{{ item.projectName }}</span></div>
<div class="print-table flex justify-center align-center" v-for="(item, index) in printForm.projectList" :key="index" style="justify-content:space-around">
<div class="text-left" style="width:30%"> <span class="text-cyan text-out">{{ item.projectName }}</span></div>
<div class="text-left" style="width:25%"> <span class="text-red text-price">{{ item.amount }}</span></div>
<div class="text-left" style="width:25%"> <span class="text-red text-price">{{ item.discountmoney }}</span>
</div>
@ -40,33 +40,39 @@
<div style="height:8px"></div>
<hr class="text-grey">
<div style="height:8px"></div>
<div v-if="recList.length != 0">
<div class="print-table flex justify-center align-center">
<div class="text-left" style="width:50%">充值帐户 </div>
<div class="text-left" style="width:25%;padding-right:5px">充值支付</div>
<div class="text-left" style="width:25%;padding-right:5px">余额支付</div>
<div class="text-left" style="width:25%;padding-right:5px">剩余 </div>
<div v-if="printForm.payLists.length != 0">
<div class="print-table flex justify-center align-center" style="justify-content:space-around">
<div class="text-left" style="width:30%">支付方式 </div>
<div class="text-left" style="width:25%">支付 </div>
<div class="text-left" style="width:25%"> </div>
</div>
<div style="height:15px"></div>
<div class="print-table flex justify-center align-center" v-for="(item, index) in recList" :key="index">
<div class="text-left" style="width:50%"> <span class="text-cyan text-out">{{ item.rechargeTypeName }}</span>
</div>
<div class="text-left" style="width:25%"> <span class="text-red text-price">{{ item.spendMoney }}</span></div>
<div class="text-left" style="width:25%"> <span class="text-red text-price">{{ item.accountGiftSpendMoney}}</span></div>
<div class="text-left" style="width:25%"> <span class="text-red text-price">{{ item.cardRestMoney }}</span>
</div>
<div class="print-table flex justify-center align-center" v-for="(item, index) in printForm.payLists" :key="index" style="justify-content:space-around">
<div class="text-left" style="width:30%"> <span class="text-cyan text-out">{{ item.payName }}</span></div>
<div class="text-left" style="width:25%"> <span class="text-red text-price">{{ item.payMoney }}</span></div>
<div class="text-left" style="width:25%"> <span></span></div>
</div>
<hr class="text-grey">
</div>
<div v-if="printForm.payLists.length != 0">
<div class="print-table flex justify-center align-center">
<div class="text-left" style="width:50%">支付方式 </div>
<div class="text-left" style="width:50%;">支付 </div>
<div v-if="recList.length != 0">
<div class="print-table flex justify-center align-center" style="justify-content:space-between">
<div class="text-left" >充值帐户 </div>
<div class="text-left">充值支付</div>
<div class="text-left">赠送金额</div>
<div class="text-left">剩余 </div>
</div>
<div style="height:15px"></div>
<div class="print-table flex justify-center align-center" v-for="(item, index) in printForm.payLists" :key="index">
<div class="text-left" style="width:50%"> <span class="text-cyan text-out">{{ item.payName }}</span></div>
<div class="text-left" style="width:50%"> <span class="text-red text-price">{{ item.payMoney }}</span></div>
<div class="print-table flex justify-center align-center" v-for="(item, index) in recList" :key="index" style="justify-content:space-between">
<div class="text-left" > <span class="text-cyan text-out">{{ item.rechargeTypeName }}</span>
</div>
<div class="text-left"> <span class="text-red text-price">{{ item.spendMoney }}</span></div>
<div class="text-left"> <span class="text-red text-price">{{ item.accountGiftSpendMoney}}</span></div>
<div class="text-left"> <span class="text-red text-price">{{ item.cardRestMoney }}</span>
</div>
</div>
</div>
<!-- <div class="flex justify-start align-center padding-top-xs padding-bottom-xs">
<div style="width:33%">卡付: <span class="text-red text-price">{{item.collectionRechargeAmount}}</span></div>

@ -95,6 +95,7 @@
<el-button slot="reference" style="height: 0.2rem;">项目包</el-button>
</el-popover>
<el-button v-if="cashNumber ===1 " @click="updataPassword" style="height: 0.2rem;"></el-button>
<el-button v-if="cashNumber ===1 " @click="vipShow" style="height: 0.2rem;"></el-button>
<el-form-item label="补单日期:" v-if="isAddition == 1">
<div class="activeFormDiv">
<el-date-picker
@ -806,6 +807,7 @@
<orders ref="orders"></orders>
<message :message="message" ref="message"></message>
<captcha @handleSubimt='handleSubimt' @getCodeOperate='getCodeOperate' @handleNewPassword='handleNewPassword' ref="captcha"/>
<trading ref="trading" :mobilePhone='memberForm.mobilePhone'/>
</div>
</template>
<script>
@ -1008,6 +1010,9 @@ export default {
}
},
methods: {
vipShow(){
this.$refs.trading.dialogFormVisible = true
},
updataCollection(){
let card = 0; //
let Course = 0; //
@ -1019,11 +1024,11 @@ export default {
if(item.collectionRechargeAmount){
//
card+=((item.collectionRechargeAmount).toFixed(2)*1)
item.rechargeAccountList.forEach(item=>{ //
item.giftSpendMoney?item.giftSpendMoney:0
card+=item.giftSpendMoney
card = card.toFixed(2)*1
})
// item.rechargeAccountList.forEach(item=>{ //
// item.giftSpendMoney?item.giftSpendMoney:0
// card+=item.giftSpendMoney
// card = card.toFixed(2)*1
// })
}
if(item.courseAccountId){
//
@ -1224,7 +1229,7 @@ export default {
if(this.list[this.projectIndex].noDiscount == 0){
//
this.list[this.projectIndex].rechargeAccountList.forEach(item=>{
collectionRechargeAmount += item.spendMoney*1
collectionRechargeAmount += (item.spendMoney*1+ (item.giftSpendMoney?item.giftSpendMoney*1:0) )
collectionAmounts += ( ( (item.spendMoney*1)/ ((item.discount?item.discount:100)/100) ) + ((item.giftSpendMoney?item.giftSpendMoney*1:0)/(item.discountFreeAmount?item.discountFreeAmount/100:1)))
})
this.$set(this.list[this.projectIndex],'collectionRechargeAmount',collectionRechargeAmount.toFixed(2)*1)
@ -1236,7 +1241,7 @@ export default {
}else{
//
this.list[this.projectIndex].rechargeAccountList.forEach(item=>{
collectionRechargeAmount += item.spendMoney*1
collectionRechargeAmount += (item.spendMoney*1+ (item.giftSpendMoney?item.giftSpendMoney*1:0) )
collectionAmounts += ((item.spendMoney*1) + (item.giftSpendMoney?item.giftSpendMoney*1:0))
})
this.$set(this.list[this.projectIndex],'collectionRechargeAmount',(collectionRechargeAmount).toFixed(2)*1)
@ -2183,7 +2188,6 @@ export default {
this.$refs.repayment.show(this.memberForm);
},
inputMember() {
console.log('到了这里--->')
if (partten.phoneNum.test(this.memberForm.mobilePhone)) {
storeMemberOne({
mobilePhone: this.memberForm.mobilePhone,
@ -2191,6 +2195,7 @@ export default {
}).then(res => {
if (res.code == "000000") {
this.memberForm = res.data;
this.memberForm.manNumber = 1
this.debtMoneys = res.data.debtMoneys;
this.cashNumber = 1;
this.list = [];
@ -2314,6 +2319,7 @@ export default {
cashNumber: this.cashNumber,
numberTimes: 1,
minumumTimes: res.data.minumumTimes,
sex:0
// radio:'2' //
};
this.setRecList(form);
@ -2494,7 +2500,7 @@ export default {
passShow = true;
}
item.rechargeAccountList.forEach(items => {
if (items.spendMoney > 0) {
if (items.spendMoney > 0 || items.giftSpendMoney) {
passShow = true;
}
});
@ -2509,8 +2515,7 @@ export default {
addCashConfirm() {
let list = [];
console.log(this.list)
// collectionAmount
this.list.forEach(item => {
if (item.courseAccountId == null) {
item.collectionCashAmount =
@ -2558,7 +2563,7 @@ export default {
item.payListsCopy = this.payLists;
item.payLists = payLists;
item.rechargeAccountList.forEach(item => {
if (item.spendMoney > 0) {
if (item.spendMoney > 0 || item.giftSpendMoney) {
rechargeAccountList.push(item);
}
});
@ -2627,12 +2632,12 @@ export default {
payLists: this.payLists,
rechargeAccountList: [], //
collectionCashAmounts: 0,
collectionAmounts: 0
collectionAmounts: 0,
sex:0
};
this.projectMomey = 0;
this.recIndex = -1;
this.list.push(list);
console.log('添加了list---',this.list)
},
delPro(row) {
//console.log("🚀 ~ file: service.vue ~ line 1761 ~ delPro ~ row", row)

@ -42,6 +42,12 @@
<el-radio :label="1">比例赠送</el-radio>
</el-radio-group>
</el-form-item>
<!-- <el-form-item label="仅本店使用:" prop="giveType">
<el-radio-group v-model="form.giveType">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item> -->
<el-form-item label="赠送金额:" prop="giftMoney">
<el-input type="number" :placeholder="form.donateType==0?'固定金额':form.donateType==1?'比例赠送(%)':''" class="form-width" v-model="form.giftMoney" autocomplete="on" :disabled="form.type === 1">
</el-input>
@ -149,6 +155,13 @@ export default {
trigger: ["change", "blur"],
},
],
giveType: [
{
required: true,
message: "请选择是否使用",
trigger: ["change", "blur"],
},
],
},
dialogFormVisible: false, //
};
@ -159,7 +172,6 @@ export default {
show(form) {
if (form == "添加") {
this.title = form;
this.form = {};
} else {
this.title = "修改";
this.form = {
@ -197,7 +209,10 @@ export default {
callbackFun(res) {
if (res.code == "000000") {
this.$emit("editData");
this.$message.success({ success: this.title + "成功" });
this.$message.success({
message: "操作成功!",
});
// this.$message.success({ success: this.title + "" });
this.close();
} else {
this.$alert(res.message, "查询充值促销", {

@ -81,7 +81,7 @@
</el-table-column>
</el-table-column>
<el-table-column align="center" min-width="60" prop="refundMoney" label="退款金额"></el-table-column>
<el-table-column align="center" min-width="60" prop="refundMoney" label="消费退"></el-table-column>
<el-table-column align="center" min-width="60" prop="cashRefundMoney" label="消费退"></el-table-column>
</el-table>
</div>
<div class="right">
@ -121,7 +121,7 @@ export default {
this.tableDate = this.tableDate.map(item=>{
return{
...item,
numAmount:(item.rechargeMoneys?item.rechargeMoneys*1:0)+(item.coursexMoneys?item.coursexMoneys*1:0)+(item.coursekMoney?item.coursekMoney*1:0)+(item.cashierCashMoney?item.cashierCashMoney*1:0)
numAmount:(item.rechargeMoneys?item.rechargeMoneys*1:0)+(item.coursexMoneys?item.coursexMoneys*1:0)+(item.cashierCashMoney?item.cashierCashMoney*1:0)
}
})
}else{

@ -727,11 +727,12 @@
>分派</el-button
>
</div>
<!-- getData((wageDialogVisible = false))-->
<div>
<el-button
size="mini"
type="primary"
@click="getData((wageDialogVisible = false))"
@click="wageDialogVisible = false"
plain
> </el-button
>
@ -1227,7 +1228,6 @@ export default {
//
search() {
//
propage(this.searchForm).then(res => {
if (res.code == "000000") {
res.pageInfo.list.forEach(item => {
@ -1479,6 +1479,8 @@ export default {
//
handleSizeChange(val) {
this.pageSize = val;
console.log(val)
this.searchTrue = false
if (this.searchTrue == true) {
this.search();
} else {
@ -1487,6 +1489,7 @@ export default {
},
handleCurrentChange(val) {
this.pageNum = val;
this.searchTrue = false
if (this.searchTrue == true) {
this.search();
} else {
@ -1498,6 +1501,7 @@ export default {
if(this.refreshtext == true)this.searchForm = {...searchForm}
this.queryForm.pageNum = this.pageNum;
this.queryForm.pageSize = this.pageSize;
console.log(this.pageNum, this.pageSize)
if (this.radioRow) {
if (this.radioRow.projectTypeName == "显示全部") {
delete this.queryForm.projectTypeName;

@ -4,7 +4,7 @@
<el-option v-for="item in options" :key="item.id" :label="item.label" :value="item.id">
</el-option>
</el-select>
<el-table class="margin-top-xs" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)',color: '#eeeeee'}" border v-loading="listLoading" :data="list" ref="list" :element-loading-text="elementLoadingText" @row-click="getCurrentRow" :row-class-name="rowName" @selection-change="handleSelectionChange">
<el-table class="margin-top-xs" max-height="600" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)',color: '#eeeeee'}" border v-loading="listLoading" :data="list" ref="list" :element-loading-text="elementLoadingText" @row-click="getCurrentRow" :row-class-name="rowName" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="45"></el-table-column>
<el-table-column align="center" prop="projectNum" label="编码" sortable min-width="80"></el-table-column>
<el-table-column align="center" sortable prop="projectName" :show-overflow-tooltip="true" label="项目名称" min-width="120"></el-table-column>
@ -57,7 +57,7 @@ export default {
data() {
return {
title: "",
listLoading: true,
listLoading: false,
dialogFormVisible: false,
layout: "total, sizes, prev, pager, next, jumper",
total: 0, //
@ -82,6 +82,7 @@ export default {
this.getPro();
},
getPro() {
this.listLoading = true
propage(this.queryForm).then((res) => {
this.listLoading = false;
if (res.code == "000000") {

@ -65,7 +65,7 @@
</el-form-item>
<el-form-item label="工种">
<el-select :disabled="title=='查看'" v-model="form.wordTypeName" placeholder="请选择" >
<el-option v-for="item in jobList" :key="item.id" :label="item.wordTypeName" :value="item.id">
<el-option v-for="item in jobList" :key="item.id" :label="item.wordTypeName" :value="item.label">
</el-option>
</el-select>
</el-form-item>

@ -104,6 +104,10 @@ export default {
docType: "recharge_groupon",
docTypeName: "团购卡",
},
{
docType:"card use",
docTypeName:"充值还款"
}
],
};
},
@ -128,6 +132,9 @@ export default {
departmentPerformance3(form).then((res) => {
if (res.code == "000000") {
res.rows.forEach((item) => {
if(item.type == 'card repay'&&item.docType=="card use" ||item.docType=='recharge'){
return item.docTypeName = item.docType=="card use"?'疗程还款':'充值还款'
}
this.itemList.forEach((items) => {
if (item.type == "card_repay") {
item.docType = item.type;

@ -5,7 +5,7 @@
background: 'linear-gradient(#6cb3ff, #1873d4)',
color: '#eeeeee',
}" show-summary border max-height="700">
<el-table-column align="center" prop="date" min-width="120" label="日期"></el-table-column>
<!-- <el-table-column align="center" prop="date" min-width="120" label="日期"></el-table-column>
<el-table-column align="center" prop="recharge" label="充值" min-width="75" show-overflow-tooltip> </el-table-column>
<el-table-column align="center" label="疗程">
<el-table-column align="center" prop="courseTotal" label="总业绩" min-width="75" show-overflow-tooltip> </el-table-column>
@ -40,7 +40,29 @@
</el-table-column>
<el-table-column align="center" prop="cashReceipts" label="现金收款" min-width="75" show-overflow-tooltip> </el-table-column>
<el-table-column align="center" prop="courseYj" label="疗程业绩" min-width="75" show-overflow-tooltip> </el-table-column>
<el-table-column align="center" prop="cashYj" label="服务业绩" min-width="75" show-overflow-tooltip> </el-table-column>
<el-table-column align="center" prop="cashYj" label="服务业绩" min-width="75" show-overflow-tooltip> </el-table-column> -->
<el-table-column align="center" prop="deptNames" label="部门" min-width="80" show-overflow-tooltip> </el-table-column>
<el-table-column align="center" label="充值业绩" min-width="80" show-overflow-tooltip>
<el-table-column align="center" prop="recharge" label="总业绩" min-width="80" show-overflow-tooltip> </el-table-column>
<el-table-column align="center" prop="rechargecar" label="充值" min-width="80" show-overflow-tooltip> </el-table-column>
<el-table-column align="center" prop="repaymentRecharge" label="还款" min-width="80" show-overflow-tooltip> </el-table-column>
</el-table-column>
<el-table-column align="center" label="疗程业绩" min-width="80" show-overflow-tooltip>
<el-table-column align="center" prop="courseSum" label="总业绩" min-width="80" show-overflow-tooltip> </el-table-column>
<el-table-column align="center" prop="course" label="疗程" min-width="80" show-overflow-tooltip> </el-table-column>
<el-table-column align="center" prop="courseRepay" label="还款" min-width="80" show-overflow-tooltip> </el-table-column>
</el-table-column>
<el-table-column align="center" label="服务" min-width="80" show-overflow-tooltip>
<el-table-column align="center" prop="cashierCash" label="现付" min-width="80" show-overflow-tooltip> </el-table-column>
<el-table-column align="center" prop="cashierRecharge" label="充值卡付" min-width="80" show-overflow-tooltip> </el-table-column>
<el-table-column align="center" prop="cashierCard" label="疗程卡付" min-width="80" show-overflow-tooltip> </el-table-column>
</el-table-column>
<el-table-column align="center" prop="courseCard" label="充值卡购买疗程" min-width="80" show-overflow-tooltip> </el-table-column>
<el-table-column align="center" label="退款" min-width="80" show-overflow-tooltip>
<el-table-column align="center" prop="refundRechagre" label="充值" min-width="80" show-overflow-tooltip> </el-table-column>
<el-table-column align="center" prop="refundCourse" label="疗程" min-width="80" show-overflow-tooltip> </el-table-column>
<el-table-column align="center" prop="refundCash" label="消费" min-width="80" show-overflow-tooltip> </el-table-column>
</el-table-column>
</el-table>
<detail ref="detail"></detail>
<span slot="footer" class="dialog-footer">

@ -25,7 +25,7 @@
<el-table-column align="center" prop="courseCard" label="充值卡购买疗程" min-width="80" show-overflow-tooltip> </el-table-column>
<el-table-column align="center" label="退款" min-width="80" show-overflow-tooltip>
<el-table-column align="center" prop="refundRechagre" label="充值" min-width="80" show-overflow-tooltip> </el-table-column>
<el-table-column align="center" prop="courseYj" label="疗程" min-width="80" show-overflow-tooltip> </el-table-column>
<el-table-column align="center" prop="refundCourse" label="疗程" min-width="80" show-overflow-tooltip> </el-table-column>
<el-table-column align="center" prop="refundCash" label="消费" min-width="80" show-overflow-tooltip> </el-table-column>
</el-table-column>
<!-- <el-table-column align="center" prop="deptNames" label="部门" min-width="80" show-overflow-tooltip> </el-table-column>

@ -1,9 +1,9 @@
<template>
<el-dialog :close-on-click-modal="false" v-dialogDrag :title="title" :visible.sync="dialogVisible" width="75vw" :before-close="handleClose">
<el-tabs type="border-card" :value='tabName' v-if="isShow">
<el-tab-pane v-for="(item,index) in rolepowerList" :key="index" :label="item.powerName" :name="item.powerName">
<el-tab-pane v-for="(item,index) in rolepowerList" :key="item.id" :label="item.powerName" :name="item.powerName">
<el-checkbox v-model="item.flag" @change="changerow(item,index)"></el-checkbox>
<el-tree ref="tree" :data="item.menuList" show-checkbox node-key="powerId" :default-checked-keys="arrkeys" :props="defaultProps"></el-tree>
<el-tree ref="tree" :data="item.menuList" check-strictly show-checkbox node-key="powerId" :default-checked-keys="arrkeys" :props="defaultProps"></el-tree>
</el-tab-pane>
</el-tabs>
<span slot="footer" class="dialog-footer">
@ -119,10 +119,10 @@ export default {
roleMuenPage({ roleId: this.form.id }).then((res) => {
if (res.code == "000000") {
let list = [];
this.arrkeys = []
res.pageInfo.list.forEach((item) => {
list.push(item.powerId);
this.arrkeys.push(item.powerId)
});
this.arrkeys = list;
} else {
this.$alert(res.message, "获取关联门店", {
confirmButtonText: "确定",
@ -173,6 +173,7 @@ export default {
this.$message.success({ message: res.message });
this.dialogVisible = false;
this.$emit("storeData");
this.getPower()
} else {
this.$alert(res.message, "关联门店", {
confirmButtonText: "确定",

@ -253,7 +253,10 @@ export default {
if(item.accountType == 'recharge_groupon·'){
item.docTypeName = '团购卡'
}
if(item.accountType == 'project_consume'){
if(item.accountType == 'project_consume'&& item.docType == 'store_cash'){
item.docTypeName = '收银疗程卡付'
}
if(item.accountType == 'project_consume'&& item.docType == 'card_change'){
item.docTypeName = '加价转疗程转出'
}
if(item.accountType == 'project'){

@ -74,6 +74,75 @@ export default {
activeName: "充值", //
};
},
watch:{
'$route.query.id':{
handler(mobilePhone){
if(mobilePhone){
this.isTrue = false
this.form.mobilePhone = mobilePhone
storeMemberOne({
mobilePhone: this.form.mobilePhone,
storeId: sessionStorage.getItem("parentId"),
}).then((res) => {
if (res.data != undefined && res.data.state == 0) {
this.$message.error({
message: "账户已锁定, 不允许使用 ! ",
});
this.$alert("账户已锁定, 不允许使用 !", "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
} else {
if (res.code == "000000" || res.code == "200004") {
if (res.code == "000000") {
this.form = res.data;
if (this.activeName == "充值") {
this.$refs.rec.show(this.form);
}
if (this.activeName == "疗程") {
this.$refs.pro.show(this.form);
}
if (this.activeName == "交易记录") {
this.$refs.cashAchi.show(this.form);
}
} else {
if (res.code == "200004") {
this.$confirm(res.message + ",请先注册!", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
cancelButtonClass: "cancelbtnFalses",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
}).then(() => {});
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
}
} else {
this.$alert("查询会员信息 : " + res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
}
});
}
},
immediate:true
}
},
methods: {
//
change(date) {
@ -118,7 +187,7 @@ export default {
//
query() {
var number = partten.phoneNum;
if (!number.test(this.form.mobilePhone)) {
if (!number.test(this.form.mobilePhone*1)) {
this.$message.info({
message: "请输入正确的手机号 ! ",
});

@ -213,10 +213,15 @@ export default {
},
//
confirm() {
if(!this.selection.length)return this.$message.info({ message: "请至少选中一条!" });
if(!this.selection.every(item=>item.storeName)){
return this.$message.info({ message: "列表门店不能为空!" });
}
let storeInfo = JSON.parse(sessionStorage.getItem('storeInfo'))
this.selection.forEach((item) => {
item.storesId = this.form.storesId;
item.storesName = this.form.storesName;
item.storesNum = this.form.storesNum;
item.storesId = this.form.storesId?this.form.storesId:storeInfo.id;
item.storesName = this.form.storesName?this.form.storesName:storeInfo.storeName;
item.storesNum = this.form.storesNum?this.form.storesNum:storeInfo.storeNum;
item.memberId = this.form.memberId;
item.memberNum = this.form.memberNum;
item.memberName = this.form.memberName;

Loading…
Cancel
Save