最近修改

master
wangxubin1999 3 years ago
parent 604eda206c
commit 97756eef9a

@ -208,7 +208,7 @@ export function listdeal(params) {
data: params
});
}
//历史
//历史(全都都有)
export function listdeals(params) {
return service({
url: "/api" + "/demay/ssm/couAccount/listdealsalls",
@ -216,7 +216,14 @@ export function listdeals(params) {
data: params
});
}
//历史(只有过期)
export function listdeales(params) {
return service({
url: "/api" + "/demay/ssm/couAccount/delay",
method: "post",
data: params
});
}
//不可用
export function couAccountListDisable(params) {
return service({
@ -681,6 +688,14 @@ export function cashListall(params) {
});
}
export function cashListalls(params) {
return service({
url: "/api" + "/demay/ssm/recAccount/delay",
method: "post",
data: params
});
}
// 疗程退页面疗程账户查询 (门店端-疗程退-疗程退页面疗程账户查询)
export function couAccountRefundList(params) {
return service({

@ -229,7 +229,14 @@ export function propageNew(params) {
data: params
});
}
//查询开疗程时人员
export function selectRatioInfo(params) {
return service({
url: "/api" + "/demay/ssm/staff/selectRatioInfo",
method: "post",
data: params
});
}
//项目删除
export function delpro(params) {
return service({

@ -67,7 +67,7 @@
</el-dialog>
</template>
<script>
import { propageNew } from "@/api/storeManage.js";
import { propageNew,selectRatioInfo } from "@/api/storeManage.js";
import { couAccountList } from "@/api/eashier.js";
export default {
data() {
@ -89,12 +89,16 @@ export default {
state: 1,
projectName: "",
},
courseProjectId: "", //
courseProjectId: "", //,
isform:"",
projectId:"",
rows:[]
};
},
methods: {
//
show(form, id) {
this.isform=form
this.courseProjectId = id;
this.coureList = [];
this.list = [];
@ -110,7 +114,6 @@ export default {
this.radioForm = {};
this.list = [];
this.dialogVisible = true;
console.log(form);
this.getData();
},
//
@ -179,7 +182,24 @@ export default {
}
},
confirms() {
this.$emit("projectData", this.radioForm);
console.log("🚀 ~ file: index.vue ~ line 186 ~ confirms ~ this.isform", this.isform)
if (this.isform == 1 || this.isform == 0 || this.isform == 3) {
this.$emit("projectData", this.radioForm);
} else {
let froms = {}
froms.id=this.radio,
froms.storeId=this.form.storeId
console.log("🚀 ~ file: index.vue ~ line 186 ~ confirms ~ froms", froms)
selectRatioInfo(froms).then((res)=>{
if (res.code == "000000") {
this.rows=res.rows
// this.radioForm.rows=res.rows
this.$emit("projectData", this.radioForm,this.rows);
}
})
}
this.dialogVisible = false;
},
},

@ -411,6 +411,14 @@ export default {
number: "5001600",
id:"8008026",
},
{
name: "充值账户延期",
icon: "el-icon-connection",
route: "/rechargingdelay",
index: "/rechargingdelay",
number: "5001800",
id:"8008027",
},
{
name: "充值内调单",
icon: "el-icon-sort",
@ -424,7 +432,7 @@ export default {
icon: "el-icon-sort",
route: "/transfer",
index: "transfer",
number: "4001500",
number: "5001500",
id:"8008024",
},
{
@ -432,7 +440,7 @@ export default {
icon: "el-icon-sort",
route: "/transferstore",
index: "transferstore",
number: "4001700",
number: "5001700",
id:"8008025",
},
// {
@ -494,7 +502,7 @@ export default {
icon: "el-icon-question",
route: "/errorOrder",
index: "errorOrder",
number: "500800",
number: "5001200",
id:"80080018",
},
{
@ -502,7 +510,7 @@ export default {
icon: "el-icon-refresh-right",
route: "/recountOrder",
index: "recountOrder",
number: "500800",
number: "5001300",
id:"80080019",
},

@ -30,7 +30,7 @@
</template>
<script>
import { listdeals } from "@/api/eashier.js";
import { listdeales } from "@/api/eashier.js";
import edit from "./edit";
import detail from "./prodetail";
export default {
@ -72,7 +72,7 @@ export default {
var ids = {
memberId: this.form.id,
};
listdeals(ids).then((res) => {
listdeales(ids).then((res) => {
if (res.code == "000000") {
this.list = res.rows;
} else {

@ -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,275 @@
<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: "促销还款",
},
],
};
},
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.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 { cashListalls } 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() {
cashListalls({
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,164 @@
<template>
<div>
<el-form inline :modal="form" label-width="100px">
<el-form-item label="会员编码">
<div class="form-width-ms">
<el-input v-model="form.memberNum" readonly></el-input>
</div>
</el-form-item>
<el-form-item label="手机号码:">
<div class="form-width-ms">
<el-input style="padding-left:0px;" ref="" oninput="this.value=this.value.replace(/\D/g,'')" pattern="[0-9]*" maxlength="11" v-model="form.mobilePhone" @blur="query" @change="query">
<el-button size="mini" slot="append" icon="el-icon-search" @click="openMember"></el-button>
</el-input>
</div>
</el-form-item>
<el-form-item label="会员名称:">
<div class="form-width-ms">
<span>{{ form.memberName }} <i v-if="form.sex==1" class="el-icon-male text-blue"></i>
<i v-else class="el-icon-female text-pink"></i></span>
</div>
</el-form-item>
<el-form-item label="月份:" v-if="activeName=='交易记录'">
<div class="form-width-ms block">
<span class="demonstration"></span>
<el-date-picker v-model="form.month" type="month" @change="change" placeholder="选择月份">
</el-date-picker>
</div>
</el-form-item>
</el-form>
<el-tabs disabled type="border-card" v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="充值延期" name="充值延期">
<recs ref="recs"></recs>
</el-tab-pane>
</el-tabs>
<member ref="member" @memberData="memberData"></member>
</div>
</template>
<script>
import { partten } from "../../../../partten/index";
import member from "@/components/member/index";
import recs from "./components/recs.vue";
import { storeMemberOne } from "@/api/eashier";
export default {
components: {
recs,
member,
},
data() {
return {
form: {
month: new Date(),
},
activeName: "充值延期", //
};
},
created(){
this.$refs.recs.show(this.form);
this.activeName =" 充值延期";
},
methods: {
//
change() {
this.$refs.cash.show(this.form);
},
//
//
handleClick(tab, event) {
if (this.form.memberName) {
if (tab.name == "充值延期") {
this.$refs.recs.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)) {
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>

@ -211,15 +211,10 @@ export default {
},
BranchData(v) {
this.StoreIds=v.id
this.label=v.label
this.setStaffRatio();
console.log("🚀 ~ file: index.vue ~ line 217 ~ BranchData ~ " , 'aaaa')
},
submit() {
this.proForm.rechargeInMoney = this.inMoneys;
@ -355,11 +350,6 @@ export default {
};
if (mobilePhone) {
console.log("🚀 ~ file: index.vue ~ line 347 ~ memberOne ~ this.StoreIds", this.StoreIds)
// if(this.StoreIds){
// form.storeId=this.StoreIds
// console.log("aaaaaaaaaaaaa")
// }
let form = {
mobilePhone: mobilePhone,
storeId: sessionStorage.getItem("parentId"),

@ -2,6 +2,13 @@
<!-- 转入 0 转出 1 -->
<div>
<el-form inline>
<el-form-item label="分店名称:" :label-width="labelWidth">
<div class="form-width-ms">
<el-input v-model="label">
<el-button size="mini" slot="append" icon="el-icon-search" @click="openBranch"></el-button>
</el-input>
</div>
</el-form-item>
<el-form-item label="手机号码:" :label-width="labelWidth">
<div class="form-width-ms">
<el-input oninput="this.value=this.value.replace(/\D/g,'')" pattern="[0-9]*" maxlength="11"
@ -41,6 +48,34 @@
<el-table :data="outList" empty-text=' , ' max-height="200"
:header-cell-style="{ background: 'linear-gradient(#6cb3ff, #1873d4)', color: '#eeeeee' }"
style="margin-top: 5px;">
<el-table-column type="expand">
<template slot-scope="scope">
<div class="flex justify-start align-center flex-wrap ">
<el-form inline class="margin-top-xs margin-left-xs">
<el-form-item label="员工">
<div class="flex align-center form-width-m">
<el-select
filterable
default-first-option
clearable
v-model="scope.row.staffLists[0].staffName"
placeholder="请选择"
>
</el-select>
<!-- <div class="el-icon-circle-close text-xs text-cyan" @click.stop="scope.row.smallLists=null,scope.row.smallList.splice(0,1)"></div> -->
<div
class="el-icon-edit-outline text-xs text-cyan"
@click.stop="
openStaffRatio(scope.row.staffLists, scope.$index)
"
></div>
</div>
</el-form-item>
<br />
</el-form>
</div>
</template>
</el-table-column>
<el-table-column label="项目编码" align="center" prop="courseProjectNum" min-width="80"></el-table-column>
<el-table-column label="账户名称" align="center" prop="courseProjectName" min-width="140"></el-table-column>
<el-table-column label="可用次数" align="center" prop="courseConsumeCount" min-width="80"></el-table-column>
@ -169,7 +204,8 @@
</el-form>
<member ref="member" @memberData="memberData"></member>
<project ref="project" @projectData="projectData"></project>
<Branch ref="Branch" @BranchData="BranchData"></Branch>
<staffratio ref="staffratio" @staffratioData="staffratioData"></staffratio>
</div>
</template>
@ -182,7 +218,9 @@ import {
couAccountList,
addCardChange,
} from "@/api/eashier.js";
import staffratio from "./staffratio";
import member from "@/components/member/index";
import Branch from "@/components/Branch/index";
import project from "@/components/project/index";
import admin from "@/components/staffList/admin/index";
import manager from "@/components/staffList/manager/index";
@ -194,6 +232,8 @@ export default {
admin,
member,
project,
Branch,
staffratio
},
data() {
return {
@ -240,16 +280,54 @@ export default {
debtMoney: 0,
isAddition: 0,
loading: false,
TransactionNum: 0
TransactionNum: 0,
StoreIds:"",
label:"",
staff:[]
};
},
methods: {
openStaffRatio(row, index, text) {
this.editIndex = index
this.$refs.staffratio.show(row);
this.$refs.staffratio.showdetele();
localStorage.setItem("row", JSON.stringify(row));
localStorage.setItem("text", text);
},
staffratioData(v) {
let form = this.outList[this.editIndex];
form.rows = v.list;
form.staffLists=v.list
form.cardAchievementAmount=v.list[0].cardAchievementAmount
form.cardCommissionAmount=v.list[0].cardCommissionAmount
form.cardSalesAchievement=v.list[0].cardSalesAchievement
form.cardSalesCommission=v.list[0].cardSalesCommission
console.log("🚀 ~ file: index.vue ~ line 302 ~ staffratioData ~ form", form)
this.outList.splice(this.editIndex, 1, form);
},
BranchData(v) {
this.StoreIds=v.id
this.label=v.label
this.setStaffRatio();
console.log("🚀 ~ file: index.vue ~ line 217 ~ BranchData ~ " , 'aaaa')
},
openBranch(){
this.$refs.Branch.show();
},
setStaffRatio() {
var that = this;
setTimeout(() => {
that.$refs.staffsles.show(that.proForm.staffLists);
that.$refs.manager.show(that.proForm.managerLists);
if(this.StoreIds){
that.$refs.staffsles.show(that.proForm.staffLists,that.StoreIds);
that.$refs.manager.show(that.proForm.managerLists,that.StoreIds);
that.$refs.admin.show(that.proForm.adminList,that.StoreIds);
}else{
that.$refs.staffsles.show(that.proForm.staffLists);
that.$refs.manager.show(that.proForm.managerLists);
that.$refs.admin.show(that.proForm.adminList);
}
}, 800);
},
//
@ -392,8 +470,9 @@ export default {
tableRowClassName({ row, rowIndex }) {
row.index = rowIndex;
},
projectData(form) {
console.log(form)
projectData(form,rows) {
console.log("🚀 ~ file: index.vue ~ line 478 ~ projectData ~ rows", rows)
console.log("🚀 ~ file: index.vue ~ line 474 ~ projectData ~ form", form)
form.memberId = this.proForm.memberId;
form.memberName = this.proForm.memberName;
form.mobilePhone = this.proForm.mobilePhone;
@ -433,7 +512,15 @@ export default {
form.changeOutTime = 0;
form.changeOutTimeShow = false;
form.accountId = form.id;
console.log("🚀 ~ file: index.vue ~ line 520 ~ projectData ~ rows", rows)
form.staffLists=rows
form.cardAchievementAmount=rows[0].cardAchievementAmount
form.cardCommissionAmount=rows[0].cardCommissionAmount
form.cardSalesAchievement=rows[0].cardSalesAchievement
form.cardSalesCommission=rows[0].cardSalesCommission
this.outList.push(form);
console.log("🚀 ~ file: index.vue ~ line 520 ~ projectData ~ this.outList", this.outList)
this.sumMoney();
}
//
@ -442,7 +529,7 @@ export default {
memberOne() {
let row = { ...this.proForm };
var mobilePhone = this.proForm.mobilePhone;
this.empty();
// this.empty();
if (mobilePhone) {
let form = {
mobilePhone: mobilePhone,
@ -521,12 +608,16 @@ export default {
this.openProText = num;
if (num == 0) {
this.$refs.project.show(0);
this.TransactionNum = this.inList.transactionMoney;
}
if (num == 1) {
if(this.StoreIds){
this.proForm.storeId=this.StoreIds
}else{
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)
}
},

@ -0,0 +1,301 @@
<template>
<el-dialog :close-on-click-model="false" v-dialogDrag :title="staffTitle" :visible.sync="dialogVisible" width="500px"
append-to-body :before-close="handleClose">
<el-button size="mini" type="primary" @click="add()"></el-button>
<el-button size="mini" type="primary" @click="del()"></el-button>
<div class="flex">
<el-table :data="list" max-height="600">
<el-table-column align="center" :label="staffTitle">
<el-table-column min-width="140" align="center" label="员工">
<template slot-scope="scope">
<el-select filterable default-first-option v-model="scope.row.label" placeholder="请选择"
@click="editclick($event, scope.$index)" @change="editChange($event, scope.$index)">
<el-option v-for="item in openList" :key="item.id" :label="item.label" :value="item.id">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column min-width="100" align="center" label="占比">
<template slot-scope="scope">
<el-input v-focus type="number" @blur="endEdit(scope.row, scope.$index)" :disabled="scope.$index == 0"
size="samll" v-model="scope.row.ratio"></el-input>
</template>
</el-table-column>
</el-table-column>
</el-table>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="handleClose"> </el-button>
<el-button size="mini" type="primary" @click="confirms()">
</el-button>
</span>
</el-dialog>
</template>
<script>
import { selectList, selectListType, QuerCompetent } from "@/api/eashier.js";
export default {
data() {
return {
dialogVisible: false, //
staffList: [],
list: [], //
form: {}, //
openList: [],
staffText: "",
staffTexts: "",
staffTitle: "",
staffTitles: "",
staffListCopy: [],
lists: [],
len: 0
};
},
methods: {
handleClose() {
let forms = {
// text: this.staffTexts,
list: this.lists
};
this.$emit("staffratioData", forms);
this.dialogVisible = false;
},
add() {
this.list.push({ label: "", ratio: 0 });
this.changeStaff();
},
endEdit(row, index) {
console.log("🚀 ~ file: staffratio.vue ~ line 71 ~ endEdit ~ row", row)
if (row.ratio * 1 > 100) {
this.$alert("输入值不能大于100", "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => { },
});
row.ratio = 0;
} else if (row.ratio * 1 < 0) {
this.$alert("输入值不能小于0", "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => { },
});
row.ratio = 0;
}
else {
row.ratio = row.ratio * 1;
}
let number = 0;
this.list.forEach((item, index) => {
if (index != 0) {
number += item.ratio * 1;
}
});
this.list[0].ratio = 100 - number;
if (this.list[0].ratio < 0) {
this.$alert("第一个人员占比过低", "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => { },
});
this.list[0].ratio = this.list[0].ratio + row.ratio
row.ratio = 0;
}
this.changeStaff();
},
editChange(e, index) {
let number = 0;
let row = this.list[index];
if (this.list.length == 1) {
row.ratio = 100;
} else {
row.ratio = 0
this.list.forEach((item, index) => {
if (index != 0) {
number += item.ratio * 1;
}
this.list[0].ratio = 100 - number;
})
}
let form = {};
this.openList.forEach((item) => {
if (e == item.id) {
form = { ...item };
}
})
form.ratio = row.ratio;
this.list.splice(index, 1, form);
this.changeStaff();
},
editclick(index) {
let row = this.list[index];
row.ratio=0
let number = 0;
this.list.forEach((item, index) => {
if (index != 0) {
number += item.ratio * 1;
}
this.list[0].ratio = 100 - number;
})
},
del() {
let index = this.list.length - 1;
this.list[0].ratio += this.list[index].ratio;
this.list.splice(index, 1);
this.changeStaff();
},
showdetele() {
setTimeout(() => {
this.$nextTick(() => {
let row = JSON.parse(localStorage.getItem('row'));
this.lists = JSON.parse(JSON.stringify([]))
this.lists = row;
this.len = this.lists.length
this.lists.forEach((item) => {
if (item.id) {
item.label = item.brandNumber + "-" + item.staffName;
}
});
this.dialogVisible = true;
this.getData();
this.changeStaff();
let number = 0;
this.lists.forEach((item, index) => {
if (index != 0) {
number += item.sale_ratio * 1;
}
});
if (this.lists.length > 0) {
this.lists[0].sale_ratio = (100 - number).toFixed(2) * 1;
}
});
}, 300);
},
show(form) {
setTimeout(() => {
this.$nextTick(() => {
this.list = JSON.parse(JSON.stringify([]));
this.form = { ...form };
this.list = form;
this.list.forEach((item) => {
if (item.id) {
item.label = item.brandNumber + "-" + item.staffName;
}
});
this.dialogVisible = true;
this.getData();
this.changeStaff();
let number = 0;
this.list.forEach((item, index) => {
if (index != 0) {
number += item.sale_ratio* 1;
}
});
if (this.list.length > 0) {
this.list[0].sale_ratio = (100 - number).toFixed(2) * 1;
}
this.list.push({ label: "", ratio: 0 });
});
}, 300);
},
changeStaff() {
var that = this;
let arr = [];
// var list = that.list.concat(that.staffListCopy).filter(function (v) {
// return (
// that.list.indexOf(v) === -1 || that.staffListCopy.indexOf(v) === -1
// );
// });
// list.forEach((item) => {
// if (item.id) {
// arr.push(item);
// }
// });
// this.openList = arr;
},
//
async getData() {
let form = { id: "" };
if (this.staffName) {
form.staffName = this.staffName;
}
selectList(form).then((res) => {
if (res.code == "000000") {
res.rows.forEach((item) => {
item.label = item.brandNumber + "-" + item.staffName;
item.ratio = 0;
});
this.openList = res.rows;
this.staffListCopy = res.rows;
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => { },
});
}
});
},
isRepeat(arr, key) {
var obj = {};
for (let i = 0; i < arr.length; i++) {
if (obj[arr[i][key]]) {
return false; //
} else {
obj[arr[i][key]] = arr[i];
}
}
return true;
},
confirms() {
let flag = this.isRepeat(this.list, "brandNumber");
this.list.forEach((item,index)=>{
if(item.staffName==""){
this.list.splice(index,1)
}
})
let form = {
// text: this.staffText,
list: this.list,
};
if (flag) {
this.$emit("staffratioData", form);
this.dialogVisible = false;
} else {
this.$alert("选择员工存在重复", "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => { },
});
}
},
},
};
</script>
<style>
</style>

@ -117,7 +117,17 @@
<div v-else></div>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip min-width="100" align="center" prop="collectionAmount" label="实付金额"></el-table-column>
<el-table-column show-overflow-tooltip min-width="100" align="center" prop="" label="实付金额">
<template slot-scope="scope">
<el-tooltip v-if="scope.row.courseAccountId!=null" class="item" effect="dark" content="疗程付" placement="top">
<div>{{scope.row.courseAccountId!=null?scope.row.transactionPrice:scope.row.collectionRechargeAmount+scope.row.collectionCashAmount}}</div>
</el-tooltip>
<el-tooltip v-else class="item" effect="dark" content="" placement="top">
<div>{{scope.row.courseAccountId!=null?scope.row.transactionPrice:scope.row.collectionRechargeAmount+scope.row.collectionCashAmount}}</div>
</el-tooltip>
</template>
</el-table-column>
<!-- <el-table-column show-overflow-tooltip min-width="100" align="center" prop="collectionAmount" label="实付金额"></el-table-column> -->
<el-table-column show-overflow-tooltip min-width="75" align="center" prop="collectionRechargeAmount" label="卡付金额"></el-table-column>
<el-table-column show-overflow-tooltip min-width="75" align="center" prop="collectionCashAmount" label="现付金额"></el-table-column>
<el-table-column show-overflow-tooltip min-width="75" align="center" prop="collectionAmount" label="性别">

@ -764,12 +764,16 @@ export default {
      */
let num = this.list.reduce((pre, item) => {
console.log("🚀 ~ file: service.vue ~ line 804 ~ num ~ item.courseAccountId", item.collectionAmounts)
item.transactionPrice = item.transactionPrice
?(item.transactionPrice*1).toFixed(2) * 1
: 0; // ,
if(item.courseAccountId == null){
item.collectionAmounts = (item.collectionAmounts*1).toFixed(2) * 1;
}else{
item.collectionAmounts =(item.transactionPrice*1).toFixed(2) * 1;
}
if (item.collectionAmounts) {
item.collectionAmounts = (item.collectionAmounts*1).toFixed(2) * 1;
return pre + (item.transactionPrice - item.collectionAmounts);
} // ,
else if (!item.collectionAmounts && item.transactionPrice) {
@ -787,14 +791,19 @@ export default {
      */
let num = this.list.reduce((pre, item) => {
console.log("🚀 ~ file: service.vue ~ line 804 ~ num ~ item.courseAccountId", item)
item.transactionPrice = item.transactionPrice
?(item.transactionPrice*1).toFixed(2) * 1
: 0; // ,
if(item.isCardPay !== 0){
return pre
}
if(item.courseAccountId == null){
item.collectionAmounts = (item.collectionAmounts*1).toFixed(2) * 1;
}else{
item.collectionAmounts =(item.transactionPrice*1).toFixed(2) * 1;
}
if (item.collectionAmounts) {
item.collectionAmounts = (item.collectionAmounts*1).toFixed(2) * 1;
return pre + (item.transactionPrice - item.collectionAmounts);
} // ,
else if (!item.collectionAmounts && item.transactionPrice) {
@ -1208,7 +1217,9 @@ export default {
this.recForm.collectionCashAmount +
this.recForm.collectionIntegralAmount
).toFixed(2) * 1;
console.log("🚀 ~ file: service.vue ~ line 1213 ~ sumNum ~ this.recForm", this.recForm)
this.recForm.collectionAmounts = spendMoney.toFixed(2) * 1;
this.recForm.rechargeAmount = spendNumber.toFixed(2) * 1;
this.list.splice(this.recForm.index, 1, this.recForm);
@ -1462,6 +1473,10 @@ export default {
row.courseMoney = 0;
} else {
row.courseMoney = row.courseConsumePrice;
// row.collectionAmounts=row.transactionPrice
console.log("🚀 ~ file: service.vue ~ line 1466 ~ setProOne ~ row.transactionPrice", row)
}
let form = {};
proOne({
@ -1636,6 +1651,7 @@ export default {
let sumMoney = 0;
this.list.forEach((item, index) => {
if (item.courseAccountId == null) {
sumMoney +=
(
@ -1643,10 +1659,15 @@ export default {
item.collRecAmonnt -
item.collectionIntegralAmount
).toFixed(2) * 1;
}else{
item.transactionPrice*1;
console.log("🚀 ~ file: service.vue ~ line 1649 ~ this.list.forEach ~ item.transactionPrice", item.transactionPrice)
console.log("🚀 ~ file: service.vue ~ line 1649 ~ this.list.forEach ~ this.appearPrices", this.appearPrices)
}
});
//console.log("🚀 ~ file: service.vue ~ line 1695 ~ confirm ~ sumMoney", sumMoney)
//console.log("🚀 ~ file: service.vue ~ line 1695 ~ confirm ~ this.form.collectionCashAmounts", this.appearPrices)
console.log("🚀 ~ file: service.vue ~ line 1695 ~ confirm ~ sumMoney", sumMoney)
console.log("🚀 ~ file: service.vue ~ line 1695 ~ confirm ~ this.form.collectionCashAmounts", this.appearPrices)
if (
this.balance <=
@ -1813,7 +1834,6 @@ export default {
},
openStaffRatio(row, index, text) {
this.editIndex = index;
this.$refs.staffratio.show(row, text);
this.$refs.staffratio.showdetele();
localStorage.setItem("row", JSON.stringify(row));

@ -13,11 +13,11 @@
</el-tag>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="100" label="支付方式">
<!-- <el-table-column show-overflow-tooltip align="center" min-width="100" label="支付方式">
<template slot-scope="scope">
<span>{{ scope.row.rechargeConsumeList.length?'卡付':'现金' }}</span>
</template>
</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="docNum" label="单据号"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="115" prop="inputDate" label="时间">

@ -18,11 +18,11 @@
<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">
<!-- <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-column> -->
</el-table>
<edit ref="edit" @editData="editData"></edit>
<detail ref="detail"></detail>

@ -18,11 +18,11 @@
<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">
<!-- <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-column> -->
</el-table>
<edit ref="edit" @editData="editData"></edit>
<detail ref="detail"></detail>

@ -2,15 +2,16 @@
<div>
<div class="flex justify-between align-center">
<div>
<el-button size="mini" type="primary" v-role="40015002" @click="add(0)"></el-button>
<el-button size="mini" type="primary" @click="add(0)"></el-button>
</div>
<div>
<el-button size="mini" v-if="radioRowValueList.state != undefined" type="" @click="detail" v-role="40015001"></el-button>
<el-button size="mini" type="primary" @click="edit(0)" v-role="40015003" v-if="radioRowValueList.state != undefined&&(radioRowValueList.state==0||radioRowValueList.state==2||radioRowValueList.state==4)" plain>修改</el-button>
<el-button size="mini" type="primary" @click="edit(1)" v-role="40015003" v-if="radioRowValueList.state != undefined&&(radioRowValueList.state==0||radioRowValueList.state==2||radioRowValueList.state==4)"></el-button>
<el-button size="mini" type="primary" @click="edit(2)" v-role="40015003" v-if="radioRowValueList.state != undefined&&(radioRowValueList.state==1)" plain>回收</el-button>
<el-button size="mini" type="primary" @click="edit(3)" v-role="40015004" v-if="radioRowValueList.state != undefined&&(radioRowValueList.state==1)"></el-button>
<el-button size="mini" type="primary" @click="edit(4)" v-role="40015006" v-if="radioRowValueList.state != undefined&&(radioRowValueList.state==3)" plain>反审核</el-button>
<el-button size="mini" :disabled="radioRowValueList.state == undefined" type="" @click="detail" >明细</el-button>
<el-button size="mini" type="primary" @click="edit(0)" :disabled="radioRowValueList.state == undefined||radioRowValueList.state==3||radioRowValueList.state==2||radioRowValueList.state==1" plain>修改</el-button>
<el-button size="mini" type="primary" @click="edit(1)" :disabled="radioRowValueList.state == undefined||radioRowValueList.state==3||radioRowValueList.state==2||radioRowValueList.state==1">送审</el-button>
<el-button size="mini" type="primary" @click="edit(2)" :disabled="radioRowValueList.state == undefined||radioRowValueList.state==2" plain>回收</el-button>
<el-button size="mini" type="primary" @click="edit(3)" :disabled="radioRowValueList.state == undefined||radioRowValueList.state==3||radioRowValueList.state==2||radioRowValueList.state==0">审核</el-button>
<el-button size="mini" type="primary" @click="edit(4)" :disabled="radioRowValueList.state == undefined||radioRowValueList.state==0||radioRowValueList.state==1||radioRowValueList.state==2||radioRowValueList.state==4" plain>反审核</el-button>
</div>
</div>
<!-- 会员转卡列表 -->

@ -331,10 +331,19 @@ const router = new VueRouter({
path: "/ireatmentdelay",
component: () => import("../pages/eashier/Ireatmentdelay/ireatmentdelay.vue"),
meta: {
title: "疗程转充值",
title: "疗程账户延期",
index: "ireatmentdelay"
}
},
//充值账户延期 rechargingdelay
{
path: "/rechargingdelay",
component: () => import("../pages/eashier/Rechargingdelay/rechargingdelay.vue"),
meta: {
title: "充值账户延期",
index: "rechargingdelay"
}
},
//充值内调单 within
{
path: "/within",

Loading…
Cancel
Save