页面重置方法添加

master
十七 4 years ago
parent 9bf67edb3b
commit 201ad44807

Binary file not shown.

@ -54,7 +54,7 @@
<el-table-column prop="tradeName" show-overflow-tooltip label="名称" align="center" min-width="100"></el-table-column>
<el-table-column prop="tradeMoney" label="成交额" align="center" width="80"></el-table-column>
<el-table-column prop="debtMoney" label="欠款" align="center" width="80"></el-table-column>
<el-table-column prop="tradeMoney" label="疗程还款" align="center" width="90">
<el-table-column prop="tradeMoney" v-if="headOffice" label="疗程还款" align="center" width="90">
<template slot-scope="props">
<!-- 疗程卡付列表 -->
<div @click.stop="">
@ -79,7 +79,7 @@
</div>
</template>
</el-table-column>
<el-table-column prop="tradeMoney" label="充值还款" align="center" width="90">
<el-table-column prop="tradeMoney" v-if="headOffice" label="充值还款" align="center" width="90">
<template slot-scope="props">
<!-- 充值卡付列表 -->
<div @click.stop="" v-if="props.row.docType!='card_recharge'">

@ -135,8 +135,9 @@ export default {
this.$emit("adminData", list);
},
//
changeStaff() {
changeStaff() {
var that = this;
let arr = [];
var list = that.staffLists
.concat(that.staffListCopy)
.filter(function (v) {
@ -145,7 +146,12 @@ export default {
that.staffListCopy.indexOf(v) === -1
);
});
this.staffList = list;
list.forEach((item) => {
if (item.id) {
arr.push(item);
}
});
this.staffList = arr;
},
//
//

@ -131,6 +131,7 @@ export default {
//
changeStaff() {
var that = this;
let arr = [];
var list = that.staffLists
.concat(that.staffListCopy)
.filter(function (v) {
@ -139,7 +140,12 @@ export default {
that.staffListCopy.indexOf(v) === -1
);
});
this.staffList = list;
list.forEach((item) => {
if (item.id) {
arr.push(item);
}
});
this.staffList = arr;
},
//
//

@ -137,6 +137,7 @@ export default {
//
changeStaff() {
var that = this;
let arr = [];
var list = that.staffLists
.concat(that.staffListCopy)
.filter(function (v) {
@ -145,7 +146,12 @@ export default {
that.staffListCopy.indexOf(v) === -1
);
});
this.staffList = list;
list.forEach((item) => {
if (item.id) {
arr.push(item);
}
});
this.staffList = arr;
},
//
//

@ -376,7 +376,7 @@ export default {
sessionStorage.setItem("staffName", res.data.staffName);
sessionStorage.setItem("roleName", res.data.roleName);
sessionStorage.setItem("storeName", res.data.storeName);
sessionStorage.setItem("storeId", res.data.id);
sessionStorage.setItem("storeId", res.data.storeId);
sessionStorage.setItem("mobilePhone", res.data.mobilePhone);
sessionStorage.setItem("userInfo", JSON.stringify(res.data));
@ -521,7 +521,7 @@ export default {
sessionStorage.setItem("staffName", res.data.staffName);
sessionStorage.setItem("roleName", res.data.roleName);
sessionStorage.setItem("storeName", res.data.storeName);
sessionStorage.setItem("storeId", res.data.id);
sessionStorage.setItem("storeId", res.data.storeId);
sessionStorage.setItem("mobilePhone", res.data.mobilePhone);
sessionStorage.setItem("userInfo", JSON.stringify(res.data));
@ -655,11 +655,7 @@ export default {
sessionStorage.setItem("staffName", res.data.staffName);
sessionStorage.setItem("roleName", res.data.roleName);
sessionStorage.setItem("storeName", res.data.storeName);
sessionStorage.setItem("storeId", res.data.id);
sessionStorage.setItem("storeId", res.data.id);
sessionStorage.setItem("storeId", res.data.id);
sessionStorage.setItem("storeId", res.data.storeId);
sessionStorage.setItem("mobilePhone", res.data.mobilePhone);
sessionStorage.setItem("userInfo", JSON.stringify(res.data));
sessionStorage.setItem("list", JSON.stringify(res.data.list));

File diff suppressed because it is too large Load Diff

@ -854,7 +854,6 @@ export default {
collectionIntegralAmount: 0,
collectionAmount: 0,
projectId: res.data.id,
projectName: res.data.projectName,
// cashNum: res.data.cashNum,
storeId: res.data.storeId,
storeName: res.data.storeName,
@ -883,6 +882,11 @@ export default {
}
form.memberId = this.memberForm.id;
form.integral = this.memberForm.integral;
if (this.proIndex != -1) {
// if (this.list[this.proIndex].projectName) {
// this.czRecList(this.list[this.proIndex]);
// }
}
form.rechargeAccountList = this.recListCopy;
} else {
form.amount = res.data.price;
@ -901,6 +905,9 @@ export default {
}
if (this.proIndex != -1) {
if (this.list[this.proIndex].projectName) {
this.czRecList(this.list[this.proIndex]);
}
form.index = this.proIndex;
this.list.splice(this.proIndex, 1, form);
this.expand.push(this.proIndex);
@ -1185,8 +1192,29 @@ export default {
this.list.push(list);
},
delPro(row) {
this.czRecList(row);
this.list.splice(row.index, 1);
},
czRecList(row) {
let list = [];
row.rechargeAccountList.forEach((item) => {
if (item.spendMoney > 0) {
list.push(item);
}
});
this.recListCopy.forEach((item) => {
list.forEach((items) => {
if (item.id == items.id) {
item.cardOver = (item.cardOver + items.spendMoney).toFixed(2) * 1;
item.cardOvers = (item.cardOvers + items.spendMoney).toFixed(2) * 1;
item.cardGiftOvers =
(item.giftConsumeMoney + items.giftSpendMoney).toFixed(2) * 1;
item.giftConsumeMoney =
(item.giftConsumeMoney + items.giftSpendMoney).toFixed(2) * 1;
}
});
});
},
//
openMember() {
this.cashNumber = 1;

@ -1,115 +1,122 @@
<template>
<el-dialog :close-on-click-modal="false" v-dialogDrag title="打印" append-to-body :visible.sync="printDialogVisible" width="60%">
<div id="printService" class="printDiv">
<div class="text-center text-grey padding-xs">
收银记录单
</div>
<hr />
<el-form :model="printForm" inline>
<el-form-item label="门店:"> {{ printForm.storeName }} </el-form-item>
<el-form-item label="时间:"> {{ printForm.cashDate }} </el-form-item>
<el-form-item label="单号:">{{ printForm.cashNum }} </el-form-item>
<el-form-item label="顾客:">
<div class="form-width-sm">
{{ printForm.memberName?printForm.memberName:'散客' }}/{{ printForm.mobilePhone?printForm.mobilePhone:'******' }}
</div>
</el-form-item>
<el-form-item label="收银:">
<div>{{ staffName }} </div>
</el-form-item>
<br />
<hr class="text-gray">
<el-table :data="printForm.projectList" style="wdith: 180px">
<el-table-column align="left" prop="projectName" label="项目"></el-table-column>
<el-table-column align="center" prop="transactionPrice" label="价格"></el-table-column>
</el-table>
<hr class="text-gray">
<el-form-item label="卡付:">
<div class="form-width-sm">
{{ printForm.collectionRechargeAmount }}
</div>
</el-form-item>
<el-form-item label="现付:">
<div style="width: 40px">
{{ printForm.collectionCashAmount }}
</div>
</el-form-item>
<br />
<el-form-item label="卡包:">
<div class="form-width-sm">
<span v-if="printForm.courseAccountId != null">{{
printForm.projectName
}}</span>
</div>
</el-form-item>
<el-form-item label="实付:">
<div>{{ printForm.numPayMoney }}</div>
</el-form-item>
<br />
<br />
<el-form-item label="签名:">
<div style="height: 30px; width: 80px">
<img style="width: 100%" :src="printForm.signature" alt="" />
</div>
</el-form-item><br />
<el-form-item label="服务热线:">
{{ printForm.telephone }} </el-form-item><br />
<el-form-item>
{{ printForm.printDate | dateFormat }}
</el-form-item>
<br /><br />
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="printDialogVisible = false"> </el-button>
<el-button size="mini" type="primary" v-print="'#printService'"> </el-button>
</span>
</el-dialog>
</template>
<script>
export default {
data() {
return {
printForm: {},
printDialogVisible: false,
staffName: sessionStorage.getItem("staffName"),
};
},
methods: {
//
show(form) {
console.log(form);
this.printForm = { ...form };
this.printDialogVisible = true;
},
},
};
</script>
<style scoped>
.printDiv .el-form-item {
margin-bottom: 0px;
}
.printDiv .el-form-item__label,
.el-form-item__content {
font-size: 12px;
color: black;
font-family: "宋体";
padding: 0 5px 0 0;
}
.printDiv {
width: 180px;
margin: 0 auto;
}
.printDiv .el-table td,
.printDiv .el-table th {
padding: 0;
font-size: 12px;
color: black;
font-weight: 300;
}
</style>
<template>
<el-dialog :close-on-click-modal="false" v-dialogDrag title="打印" append-to-body :visible.sync="printDialogVisible" width="60%">
<div id="printService" class="printDiv">
<div class="text-center text-grey padding-xs">
收银记录单
</div>
<hr />
<el-form :model="printForm" inline>
<el-form-item label="门店:"> {{ printForm.storeName }} </el-form-item>
<el-form-item label="时间:"> {{ printForm.cashDate }} </el-form-item>
<el-form-item label="单号:">{{ printForm.cashNum }} </el-form-item>
<el-form-item label="顾客:">
<div class="form-width-sm">
{{ printForm.memberName?printForm.memberName:'散客' }}/{{ printForm.mobilePhone?printForm.mobilePhone:'******' }}
</div>
</el-form-item>
<el-form-item label="收银:">
<div>{{ staffName }} </div>
</el-form-item>
<br />
<hr class="text-gray">
<!-- <el-table :data="printForm.projectList" style="wdith: 180px">
<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 v-for="(item,index) in printForm.projectList">
<span>项目: <span class="text-cyan">{{item.projectName}}</span></span>
<span>价格: <span class="text-red text-price">{{item.transactionPrice}}</span></span>
<span>卡付: <span class="text-red text-price">{{item.collectionRechargeAmount}}</span></span>
<span>现付: <span class="text-red text-price">{{item.collectionCashAmount}}</span></span>
<span>疗程付: <span class="text-red text-price" v-if="item.courseAccountId!=null">{{item.transactionPrice}}</span><span class="text-red text-price" v-else>0</span></span>
<hr class="text-gray">
</div>
<!-- <el-form-item label="卡付:">
<div class="form-width-sm">
{{ printForm.collectionRechargeAmount }}
</div>
</el-form-item>
<el-form-item label="现付:">
<div style="width: 40px">
{{ printForm.collectionCashAmount }}
</div>
</el-form-item>
<br />
<el-form-item label="卡包:">
<div class="form-width-sm">
<span v-if="printForm.courseAccountId != null">{{
printForm.projectName
}}</span>
</div>
</el-form-item>
<el-form-item label="实付:">
<div>{{ printForm.numPayMoney }}</div>
</el-form-item> -->
<br />
<br />
<el-form-item label="签名:">
<div style="height: 30px; width: 80px">
<img style="width: 100%" :src="printForm.signature" alt="" />
</div>
</el-form-item><br />
<el-form-item label="服务热线:">
{{ printForm.telephone }} </el-form-item><br />
<el-form-item>
{{ printForm.printDate | dateFormat }}
</el-form-item>
<br /><br />
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="printDialogVisible = false"> </el-button>
<el-button size="mini" type="primary" v-print="'#printService'"> </el-button>
</span>
</el-dialog>
</template>
<script>
export default {
data() {
return {
printForm: {},
printDialogVisible: false,
staffName: sessionStorage.getItem("staffName"),
};
},
methods: {
//
show(form) {
console.log(form);
this.printForm = { ...form };
this.printDialogVisible = true;
},
},
};
</script>
<style scoped>
.printDiv .el-form-item {
margin-bottom: 0px;
}
.printDiv .el-form-item__label,
.el-form-item__content {
font-size: 12px;
color: black;
font-family: "宋体";
padding: 0 5px 0 0;
}
.printDiv {
width: 190px;
margin: 0 auto;
}
.printDiv .el-table td,
.printDiv .el-table th {
padding: 0;
font-size: 12px;
color: black;
font-weight: 300;
}
</style>

@ -578,29 +578,8 @@ export default {
}
},
empty() {
this.proForm = {
additionDate: new Date(),
manageStaffName: null,
mobilePhone: null,
outList: [],
inList: [],
payLists: [], //
staffLists: [{ ratio: 100 }], //
managerLists: [{ ratio: 100 }], //
adminList: [{ ratio: 100 }], //
};
var that = this;
setTimeout(() => {
that.$refs.staffsles.show(that.proForm.staffLists);
that.$refs.manager.show(that.proForm.managerLists);
that.$refs.admin.show(that.proForm.adminList);
}, 1000);
this.debtMoney = 0;
this.inMoneys = 0;
this.outMoneys = 0;
this.selectList();
this.ctlist();
this.proForm.additionDate = this.formatTime(new Date(), "YYYY-MM-DD");
Object.assign(this.$data, this.$options.data.call(this));
this.setPage();
},
raiseProList() {
@ -704,15 +683,18 @@ export default {
}
});
},
setPage() {
this.selectList();
this.ctlist();
this.setStaffRatio();
this.sessionStorageData = JSON.parse(
sessionStorage.getItem("sessionStorageData")
);
this.proForm.additionDate = this.formatTime(new Date(), "YYYY-MM-DD");
},
},
created() {
this.selectList();
this.ctlist();
this.setStaffRatio();
this.sessionStorageData = JSON.parse(
sessionStorage.getItem("sessionStorageData")
);
this.proForm.additionDate = this.formatTime(new Date(), "YYYY-MM-DD");
this.setPage();
},
};
</script>

@ -1196,33 +1196,6 @@ export default {
}
},
empty() {
// this.form = {
// mobilePhone: null,
// integralCheckbox: false,
// description: "",
// salesPrice: "",
// numberTimes: "",
// menberShow: false,
// courseReatmentAmount: 0,
// isDebt: false,
// collectionRechargeAmount: 0,
// collectionCashAmount: 0,
// collectionIntegralAmount: 0,
// integral: 0,
// integralMoney: 0,
// consumeIntegral: 0,
// debtMoney: 0,
// };
// this.debtMoneys = 0;
// this.staffLists = [{ brandNumber: "", staffName: "", ratio: 100 }];
// this.rechargeAccountList = [];
// this.rechargeAccountLis = [];
// this.payLists = [];
// this.managerLists = [{ ratio: 100 }];
// this.adminList = [{ ratio: 100 }];
// this.activeName = "";
// this.ctlist();
// this.setStaffRatio();
Object.assign(this.$data, this.$options.data.call(this));
this.setPage();
},

File diff suppressed because it is too large Load Diff

@ -784,28 +784,8 @@ export default {
},
//
reset() {
this.refund = {
mobilePhone: null,
memberName: "",
memberId: "",
courseProjectName: "",
courseCompensation: 0,
manageStaffName: "",
refundNumber: null,
courseRefundMoney: null,
type: 0,
};
this.refundReason = "";
this.staffLists = [{ ratio: 100 }];
this.managerLists = [{ ratio: 100 }];
this.adminList = [{ ratio: 100 }];
this.fileList = [];
this.loading = false;
this.payee = "";
this.refundAccount = "";
this.refundType = "";
this.giftMoney = null;
this.toStaff();
Object.assign(this.$data, this.$options.data.call(this));
this.setPage();
},
//
@ -1490,13 +1470,16 @@ export default {
this.getOrder();
}
},
setPage() {
this.toStaff();
this.editAtion = "/demay/ssm/refOrder/update";
this.sessionStorageData = JSON.parse(
sessionStorage.getItem("sessionStorageData")
);
},
},
created() {
this.toStaff();
this.editAtion = "/demay/ssm/refOrder/update";
this.sessionStorageData = JSON.parse(
sessionStorage.getItem("sessionStorageData")
);
this.setPage();
},
watch: {
refDialogVisible(val, oldVal) {

File diff suppressed because it is too large Load Diff

@ -1,198 +1,215 @@
<template>
<el-dialog :title="title" :visible.sync="dialogFormVisible" width="800px" @close="close">
<el-form ref="form" :model="form" label-width="120px" inline :rules="rules">
<el-form-item required label="充值编码:" prop="rechargeTypeNum">
<el-input :disabled="title == '明细'" class="form-width" v-model="form.rechargeTypeNum" placeholder="请输入类别编码" autocomplete="on"></el-input>
</el-form-item>
<el-form-item required label="类别名称" prop="rechargeTypeName">
<el-input class="form-width" :disabled="title == '明细'" v-model.trim="form.rechargeTypeName" autocomplete="off" placeholder="请输入类别名称" maxlength="50"></el-input>
</el-form-item>
<el-form-item required label="有效期(月)" prop="validTime">
<el-input class="form-width" :disabled="title == '明细'" v-model.trim="form.validTime" autocomplete="off" placeholder="请选择有效期(月)">
</el-input>
</el-form-item>
<el-form-item label="到期日期:" title="会员卡包统一到期日期" prop="unifiedDue">
<el-date-picker class="form-width" v-model="form.unifiedDue" type="date" value-format="yyyy-MM-dd" format="yyyy-MM-dd" placeholder="选择到期日期"></el-date-picker>
</div>
</el-form-item>
<el-form-item required label="开始日期" prop="startDates">
<el-date-picker class="form-width" :disabled="title == '明细'" v-model.trim="form.startDates" type="date" value-format="yyyy-MM-dd" placeholder="请选择日期"></el-date-picker>
</el-form-item>
<el-form-item required label="结束日期" title="类别销售到期日期" prop="stopDates">
<el-date-picker class="form-width" :disabled="title == '明细'" v-model.trim="form.stopDates" type="date" value-format="yyyy-MM-dd" placeholder="请选择日期"></el-date-picker>
</el-form-item>
<el-form-item required label="现付提成" prop="typeRatio">
<el-input class="form-width" type="number" :disabled="title == '明细'" v-model.trim="form.typeRatio" autocomplete="off" placeholder="请选择现付提成">
</el-input>
</el-form-item>
<el-form-item required label="首充金额" prop="firstAmount">
<el-input class="form-width" type="number" :disabled="title == '明细'" v-model.trim="form.firstAmount" autocomplete="off" placeholder="请输入首充金额">
</el-input>
</el-form-item>
<el-divider content-position="left">充值</el-divider>
<el-form-item required label="续充金额" prop="rechargeMoney">
<el-input class="form-width" type="number" :disabled="title == '明细'" v-model.trim="form.rechargeMoney" autocomplete="off" placeholder="请输入续充金额" maxlength="50"></el-input>
</el-form-item>
<el-form-item required label="享受折扣(%)" prop="discount">
<el-input class="form-width" type="number" :disabled="title == '明细'" v-model.trim="form.discount" autocomplete="off" placeholder="请输入充值享受折扣(%)" maxlength="50"></el-input>
</el-form-item>
<el-divider content-position="left">赠送</el-divider>
<el-form-item required label="赠送金额" prop="giftMoney">
<el-input class="form-width" type="number" :disabled="title == '明细'" v-model.trim="form.giftMoney" autocomplete="off" placeholder="请输入赠送金额" maxlength="50"></el-input>
</el-form-item>
<el-form-item required label="赠送折扣(%)" prop="discountFreeAmount">
<el-input class="form-width" type="number" :disabled="title == '明细'" v-model.trim="form.discountFreeAmount" autocomplete="off" placeholder="请输入赠送享受折扣(%)" maxlength="50"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button size="mini" @click="close"> </el-button>
<el-button size="mini" type="primary" @click="save"> </el-button>
</div>
</el-dialog>
</template>
<script>
import { addrecType, editrecType } from "@/api/storeManage.js";
export default {
data() {
return {
form: {}, //
title: "", //
rules: {
rechargeTypeNum: [
{
required: true,
message: "请输入充值编码",
trigger: ["change", "blur"],
},
],
rechargeTypeName: [
{
required: true,
message: "请输入充值名称",
trigger: ["change", "blur"],
},
],
validTime: [
{
required: true,
message: "请输入有效期",
trigger: ["change", "blur"],
},
],
startDates: [
{
required: true,
message: "请选择开始日期",
trigger: ["change", "blur"],
},
],
stopDates: [
{
required: true,
message: "请选择结束日期",
trigger: ["change", "blur"],
},
],
typeRatio: [
{
required: true,
message: "请输入现付提成",
trigger: ["change", "blur"],
},
],
firstAmount: [
{
required: true,
message: "请输入首充金额",
trigger: ["change", "blur"],
},
],
rechargeMoney: [
{
required: true,
message: "请输入购买金额",
trigger: ["change", "blur"],
},
],
discount: [
{
required: true,
message: "请输入享受折扣",
trigger: ["change", "blur"],
},
],
giftMoney: [
{
required: true,
message: "请输入赠送金额",
trigger: ["change", "blur"],
},
],
discountFreeAmount: [
{
required: true,
message: "请输入赠送折扣",
trigger: ["change", "blur"],
},
],
},
dialogFormVisible: false, //
};
},
created() {},
methods: {
//
show(form) {
if (form == "添加") {
this.title = form;
this.form = {};
} else {
this.title = "修改";
this.form = {
...form,
};
}
this.dialogFormVisible = true;
},
//
close() {
this.form = {};
this.dialogFormVisible = false;
this.$refs.form.clearValidate();
},
//
//
save() {
this.form.type = 2;
this.$refs["form"].validate(async (valid) => {
if (valid) {
if (this.title == "添加") {
await addrecType(this.form).then((res) => this.callbackFun(res));
} else {
await editrecType(this.form).then((res) => this.callbackFun(res));
}
} else {
return false;
}
});
},
//
callbackFun(res) {
if (res.code == "000000") {
this.$emit("editData");
this.$message.success({ success: this.title + "成功" });
this.close();
} else {
this.$alert(res.message, "查询充值促销", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
},
},
};
</script>
<template>
<el-dialog :title="title" :visible.sync="dialogFormVisible" width="800px" @close="close">
<el-form ref="form" :model="form" label-width="120px" inline :rules="rules">
<el-form-item required label="充值编码:" prop="rechargeTypeNum">
<el-input :disabled="title == '明细'" class="form-width" v-model="form.rechargeTypeNum" placeholder="请输入类别编码" autocomplete="on"></el-input>
</el-form-item>
<el-form-item required label="类别名称" prop="rechargeTypeName">
<el-input class="form-width" :disabled="title == '明细'" v-model.trim="form.rechargeTypeName" autocomplete="off" placeholder="请输入类别名称" maxlength="50"></el-input>
</el-form-item>
<el-form-item required label="有效期(月)" prop="validTime">
<el-input class="form-width" :disabled="title == '明细'" v-model.trim="form.validTime" autocomplete="off" placeholder="请选择有效期(月)">
</el-input>
</el-form-item>
<el-form-item label="到期日期:" title="会员卡包统一到期日期" prop="unifiedDue">
<el-date-picker class="form-width" v-model="form.unifiedDue" type="date" value-format="yyyy-MM-dd" format="yyyy-MM-dd" placeholder="选择到期日期"></el-date-picker>
</div>
</el-form-item>
<el-form-item required label="开始日期" prop="startDates">
<el-date-picker class="form-width" :disabled="title == '明细'" v-model.trim="form.startDates" type="date" value-format="yyyy-MM-dd" placeholder="请选择日期"></el-date-picker>
</el-form-item>
<el-form-item required label="结束日期" title="类别销售到期日期" prop="stopDates">
<el-date-picker class="form-width" :disabled="title == '明细'" v-model.trim="form.stopDates" type="date" value-format="yyyy-MM-dd" placeholder="请选择日期"></el-date-picker>
</el-form-item>
<el-form-item required label="现付提成" prop="typeRatio">
<el-input class="form-width" type="number" :disabled="title == '明细'" v-model.trim="form.typeRatio" autocomplete="off" placeholder="请选择现付提成">
</el-input>
</el-form-item>
<el-form-item required label="首充金额" prop="firstAmount">
<el-input class="form-width" type="number" :disabled="title == '明细'" v-model.trim="form.firstAmount" autocomplete="off" placeholder="请输入首充金额">
</el-input>
</el-form-item>
<el-divider content-position="left">充值</el-divider>
<el-form-item required label="续充金额" prop="rechargeMoney">
<el-input class="form-width" type="number" :disabled="title == '明细'" v-model.trim="form.rechargeMoney" autocomplete="off" placeholder="请输入续充金额" maxlength="50"></el-input>
</el-form-item>
<el-form-item required label="享受折扣(%)" prop="discount">
<el-input class="form-width" type="number" :disabled="title == '明细'" v-model.trim="form.discount" autocomplete="off" placeholder="请输入充值享受折扣(%)" maxlength="50"></el-input>
</el-form-item>
<el-form-item label="赠送方式:" v-if="form.type==0" prop="donateType">
<el-radio-group v-model="form.donateType">
<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" oninput="this.value=this.value.replace(/\D*(\d*)(\.?)(\d{0,2})\d*/,'$1$2$3')" pattern="[0-9]*\.?[0-9]{0,2}" v-model="form.giftMoney" autocomplete="on" :disabled="form.type === 1">
</el-input>
</el-form-item>
<el-divider content-position="left">赠送</el-divider>
<el-form-item required label="赠送金额" prop="giftMoney">
<el-input class="form-width" type="number" :disabled="title == '明细'" v-model.trim="form.giftMoney" autocomplete="off" placeholder="请输入赠送金额" maxlength="50"></el-input>
</el-form-item>
<el-form-item required label="赠送折扣(%)" prop="discountFreeAmount">
<el-input class="form-width" type="number" :disabled="title == '明细'" v-model.trim="form.discountFreeAmount" autocomplete="off" placeholder="请输入赠送享受折扣(%)" maxlength="50"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button size="mini" @click="close"> </el-button>
<el-button size="mini" type="primary" @click="save"> </el-button>
</div>
</el-dialog>
</template>
<script>
import { addrecType, editrecType } from "@/api/storeManage.js";
export default {
data() {
return {
form: {}, //
title: "", //
rules: {
rechargeTypeNum: [
{
required: true,
message: "请输入充值编码",
trigger: ["change", "blur"],
},
],
rechargeTypeName: [
{
required: true,
message: "请输入充值名称",
trigger: ["change", "blur"],
},
],
validTime: [
{
required: true,
message: "请输入有效期",
trigger: ["change", "blur"],
},
],
startDates: [
{
required: true,
message: "请选择开始日期",
trigger: ["change", "blur"],
},
],
stopDates: [
{
required: true,
message: "请选择结束日期",
trigger: ["change", "blur"],
},
],
typeRatio: [
{
required: true,
message: "请输入现付提成",
trigger: ["change", "blur"],
},
],
firstAmount: [
{
required: true,
message: "请输入首充金额",
trigger: ["change", "blur"],
},
],
rechargeMoney: [
{
required: true,
message: "请输入购买金额",
trigger: ["change", "blur"],
},
],
discount: [
{
required: true,
message: "请输入享受折扣",
trigger: ["change", "blur"],
},
],
giftMoney: [
{
required: true,
message: "请输入赠送金额",
trigger: ["change", "blur"],
},
],
discountFreeAmount: [
{
required: true,
message: "请输入赠送折扣",
trigger: ["change", "blur"],
},
],
donateType: [
{
required: true,
message: "请选择赠送方式",
trigger: ["change", "blur"],
},
],
},
dialogFormVisible: false, //
};
},
created() {},
methods: {
//
show(form) {
if (form == "添加") {
this.title = form;
this.form = {};
} else {
this.title = "修改";
this.form = {
...form,
};
}
this.dialogFormVisible = true;
},
//
close() {
this.form = {};
this.dialogFormVisible = false;
this.$refs.form.clearValidate();
},
//
//
save() {
this.form.type = 2;
this.$refs["form"].validate(async (valid) => {
if (valid) {
if (this.title == "添加") {
await addrecType(this.form).then((res) => this.callbackFun(res));
} else {
await editrecType(this.form).then((res) => this.callbackFun(res));
}
} else {
return false;
}
});
},
//
callbackFun(res) {
if (res.code == "000000") {
this.$emit("editData");
this.$message.success({ success: this.title + "成功" });
this.close();
} else {
this.$alert(res.message, "查询充值促销", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
},
},
};
</script>

@ -1,396 +1,403 @@
<template>
<div class="displsy-mod">
<div class="header_flex">
<div>
<el-button size="mini" type="primary" :disabled="!headOffice" @click="edit('添加')" v-role="4006002">
</el-button>
<small v-show="!headOffice"></small>
</div>
<div>
<el-button size="mini" type="primary" v-if="headOffice" @click="download()"></el-button>
<el-button size="mini" type="warning" v-if="headOffice" @click="infoDialog = true"></el-button>
<el-button size="mini" type="success" v-if="headOffice" @click="exit()"></el-button>
</div>
</div>
<hr />
<el-table :data="list" stripe style="width: 100%" :header-cell-style="{
background: 'linear-gradient(#6cb3ff, #1873d4)',
color: '#eeeeee',
}">
<el-table-column align="center" prop="rechargeTypeNum" label="充值编码" min-width="100" sortable> </el-table-column>
<el-table-column align="center" prop="rechargeTypeName" label="充值名称" min-width="120" :show-overflow-tooltip="true" sortable></el-table-column>
<el-table-column align="center" label="状态" min-width="100" v-role="4006005">
<template slot-scope="scope">
<el-switch v-model="scope.row.state" :disabled="!headOffice" active-text=" " inactive-text="" :active-value="1" :inactive-value="0" inactive-color="#cccccc" class="demo" @change="state(scope.row)" />
</template>
</el-table-column>
<el-table-column align="center" prop="firstAmount" label="首充金额" min-width="80" sortable></el-table-column>
<el-table-column align="center" prop="typeRatio" label="充值提成" min-width="80" sortable></el-table-column>
<el-table-column align="center" prop="rechargeMoney" label="续充金额" min-width="80" sortable></el-table-column>
<el-table-column align="center" prop="discount" label="享受折扣( % )" min-width="150" sortable></el-table-column>
<el-table-column align="center" prop="giftMoney" label="赠送金额" min-width="80" sortable></el-table-column>
<el-table-column align="center" prop="discountFreeAmount" label="赠送折扣( % )" min-width="140" sortable></el-table-column>
<el-table-column align="center" prop="startDates" label="开始日期" min-width="105" :show-overflow-tooltip="true" sortable></el-table-column>
<el-table-column align="center" prop="stopDates" label="结束日期" min-width="105" :show-overflow-tooltip="true" sortable></el-table-column>
<el-table-column align="center" prop="validTime" label="有效期(月)" min-width="80" sortable></el-table-column>
<el-table-column align="center" prop="founderStaff" label="创建人" min-width="80" sortable></el-table-column>
<el-table-column align="center" prop="storeName" label="所属门店" min-width="80" :show-overflow-tooltip="true" sortable></el-table-column>
<el-table-column align="center" prop="founderDatetime" label="创建时间" :show-overflow-tooltip="true" min-width="105" sortable></el-table-column>
<el-table-column align="center" prop="modifyBy" label="最近操作人" min-width="80" sortable></el-table-column>
<el-table-column align="center" prop="modifyDatetime" label="操作时间" :show-overflow-tooltip="true" min-width="105" sortable></el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="160">
<template slot-scope="scope" fixed="right">
<el-button :disabled="!headOffice" @click="edit(scope.row)" size="mini" type="primary" v-role="4006003"></el-button>
<el-button :disabled="!headOffice" size="mini" type="primary" @click="del(scope.row)" plain v-role="4006004"></el-button>
</template>
</el-table-column>
</el-table>
<div class="block" style="margin-top: 10px">
<el-pagination align="left" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="queryForm.pageNum" :page-sizes="[10, 20, 30, 40, 50]" :page-size="queryForm.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
</div>
<el-dialog title="搜索" :visible.sync="searchDialog">
<el-form :model="searchForm">
<el-form-item label="充值名称搜索:" label-width="120px">
<div class="searchDiv">
<el-input size="medium" v-model="searchForm.rechargeTypeName" placeholder="输入要查询的用充值类别名称" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="根据状态搜索:" label-width="120px">
<div class="searchDiv">
<el-radio-group v-model="searchForm.state" fill="#f78989">
<el-radio :label="1" @click.native.prevent="clickitem(1)" size="medium" type="primary">启用中</el-radio>
<el-radio :label="0" @click.native.prevent="clickitem(0)" size="medium" type="primary">已停用</el-radio>
</el-radio-group>
</div>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="searchDialog = false"> </el-button>
<el-button type="primary" size="mini" @click="search((searchDialog = false))"> </el-button>
</span>
</el-dialog>
<el-dialog title="导入表格" :visible.sync="infoDialog" :close-on-click-modal="false">
<excel @fileData="fileData" @infoDialogV="infoDialogV"></excel>
</el-dialog>
<el-dialog title="导入提示" :visible.sync="infoErrorDialog">
<span>以下导入 充值名称 存在重复 , 请检查修改后重新导入</span>
<el-table :data="infoList">
<el-table-column align="center" prop="rechargeTypeNum" label="充值编码" min-width="120" sortable> </el-table-column>
<el-table-column align="center" prop="rechargeTypeName" label="充值类别" min-width="120" :show-overflow-tooltip="true" sortable>
<template slot-scope="scope">{{
scope.row.type == 2 ? "活动卡" : "折扣卡"
}}</template>
</el-table-column>
<el-table-column align="center" prop="rechargeTypeName" label="充值名称" min-width="120" :show-overflow-tooltip="true" sortable></el-table-column>
<el-table-column align="center" label="状态" min-width="100" v-role="4006005">
<template slot-scope="scope">
<el-switch v-model="scope.row.state" active-text=" " inactive-text="" :active-value="1" :inactive-value="0" inactive-color="#cccccc" class="demo" @change="state(scope.row)" />
</template>
</el-table-column>
<el-table-column align="center" prop="typeRatio" label="充值提成" min-width="110" sortable>
</el-table-column>
<el-table-column align="center" prop="rechargeMoney" label="续充金额" min-width="110" sortable>
</el-table-column>
<el-table-column align="center" prop="discount" label="享受折扣( % )" min-width="150" sortable>
</el-table-column>
<el-table-column align="center" prop="giftMoney" label="赠送金额" min-width="110" sortable>
</el-table-column>
<el-table-column align="center" prop="giftMoney" label="赠送折扣" min-width="110" sortable>
</el-table-column>
<el-table-column align="center" prop="giftMoney" label="开始日期" min-width="110" sortable></el-table-column>
<el-table-column align="center" prop="giftMoney" label="结束日期" min-width="110" sortable></el-table-column>
<el-table-column align="center" prop="validTime" label="有效期(月)" min-width="130" sortable>
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="infoErrorDialog = false"> </el-button>
</span>
</el-dialog>
<edit ref="edit" @editData="editData"></edit>
</div>
</template>
<script>
import edit from "./components/edit";
import excel from "@/components/excel";
import {
addrecType,
editrecType,
delrecType,
recTypeNewPages,
recTypeStates,
recTypeDownloads,
recTypeImports,
recTypeExports,
} from "@/api/storeManage.js";
export default {
components: {
excel,
edit,
},
rechargeTypeName: "",
data() {
return {
searchDialog: false, //
refreshtext: false, //
headOffice: false, //
infoErrorDialog: false, //
infoList: [], //
searchForm: {
//
rechargeTypeName: "",
state: 1,
},
sessionStorageData: {}, //
list: [], //
total: 0, //
queryForm: {
//
pageSize: 10,
pageNum: 1,
},
infoDialog: false, //
};
},
methods: {
//
download() {
recTypeDownloads().then((res) => {
let blob = new Blob([res]);
console.log(blob);
var a = document.createElement("a");
var url = window.URL.createObjectURL(blob);
console.log(url);
a.href = url;
a.download = "充值促销模板.xlsx";
a.click();
window.URL.revokeObjectURL(url);
});
},
//
//
exit() {
if (this.searchForm.rechargeTypeName == "") {
delete this.searchForm.rechargeTypeName;
}
recTypeExports(this.searchForm).then((res) => {
let blob = new Blob([res]);
var a = document.createElement("a");
var url = window.URL.createObjectURL(blob);
console.log(url);
a.href = url;
a.download = "充值促销导出表.xlsx";
a.click();
window.URL.revokeObjectURL(url);
});
},
//
fileData(v) {
var fileData = new FormData();
if (v == null) {
this.$alert("请选择需要上传的文件", "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
} else {
fileData.append("multipartFile", v);
recTypeImports(fileData).then((res) => {
if (res.rows != undefined) {
this.infoList = res.rows;
this.infoErrorDialog = true;
} else {
if (res.code == "000000") {
this.$message.success({
message: res.message,
});
this.getData();
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
}
});
}
},
//
infoDialogV(v) {
this.infoDialog = v;
},
//
search() {
//
this.searchForm.storeId = sessionStorage.getItem("parentId");
recTypeNewPages(this.searchForm).then((res) => {
if (res.code == "000000") {
this.searchTrue = true;
this.list = res.pageInfo.list;
this.total = res.pageInfo.total;
if (res.pageInfo.total == 0) {
this.$message.warning({
message: "没有找到符合条件的充值类别",
});
}
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
},
///
clickitem(e) {
e === this.searchForm.state
? (this.searchForm.state = null)
: (this.searchForm.state = e);
},
//
del(row) {
this.$confirm("此操作将永久删除该数据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
cancelButtonClass: "cancelbtnFalses",
confirmButtonClass: "confirmbtnFalses",
})
.then(() => {
delrecType({ id: row.id }).then((res) => {
if (res.code == "000000") {
this.getData();
this.$message.success({
message: "删除成功!",
});
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
})
.catch(() => {
this.$message.info({
message: "已取消操作!",
});
});
},
///
edit(form) {
this.$refs.edit.show(form);
},
//
state(row) {
var state = {
id: row.id,
state: row.state,
};
recTypeStates(state)
.then((res) => {
//console.log(res);
this.getData();
if (res.code == "000000") {
if (row.state == 1) {
this.$message.success({
message: "状态启用!",
});
} else {
this.$message.success({
message: "状态停用!",
});
}
}
})
.catch((err) => {
//console.log(err);
});
},
//
handleSizeChange(val) {
this.queryForm.pageSize = val;
if (this.searchTrue == true) {
this.search();
} else {
this.getData();
}
},
handleCurrentChange(val) {
this.queryForm.pageNum = val;
if (this.searchTrue == true) {
this.search();
} else {
this.getData();
}
},
///
editData() {
if (this.searchTrue == true) {
this.search();
} else {
this.getData();
}
},
//
async getData() {
this.queryForm.type = 2;
this.queryForm.storeId = sessionStorage.getItem("parentId");
recTypeNewPages(this.queryForm)
.then((res) => {
if (this.refreshtext == true) {
this.$message.success({
message: "已刷新最新数据",
});
this.refreshtext = false;
this.searchTrue = false;
}
this.list = res.pageInfo.list;
this.total = res.pageInfo.total;
})
.catch((err) => {
//console.log(err);
});
},
},
created() {
this.headOffice =
sessionStorage.getItem("headOffice") * 1 == 1 ? true : false;
console.log(this.headOffice);
let list = JSON.parse(sessionStorage.getItem("list"));
this.sessionStorage = JSON.parse(
sessionStorage.getItem("sessionStorageData")
);
list.forEach((item) => {
if (item.id == 4006001) {
this.getData();
}
});
},
};
</script>
<style scoped>
.el-button {
margin-bottom: 10px;
}
.el-input {
width: 200px;
}
</style>
<template>
<div class="displsy-mod">
<div class="header_flex">
<div>
<el-button size="mini" type="primary" :disabled="!headOffice" @click="edit('添加')" v-role="4006002">
</el-button>
<small v-show="!headOffice"></small>
</div>
<div>
<el-button size="mini" type="primary" v-if="headOffice" @click="download()"></el-button>
<el-button size="mini" type="warning" v-if="headOffice" @click="infoDialog = true"></el-button>
<el-button size="mini" type="success" v-if="headOffice" @click="exit()"></el-button>
</div>
</div>
<hr />
<el-table :data="list" stripe style="width: 100%" :header-cell-style="{
background: 'linear-gradient(#6cb3ff, #1873d4)',
color: '#eeeeee',
}">
<el-table-column align="center" prop="rechargeTypeNum" label="充值编码" min-width="100" sortable> </el-table-column>
<el-table-column align="center" prop="rechargeTypeName" label="充值名称" min-width="120" :show-overflow-tooltip="true" sortable></el-table-column>
<el-table-column align="center" label="状态" min-width="100" v-role="4006005">
<template slot-scope="scope">
<el-switch v-model="scope.row.state" :disabled="!headOffice" active-text=" " inactive-text="" :active-value="1" :inactive-value="0" inactive-color="#cccccc" class="demo" @change="state(scope.row)" />
</template>
</el-table-column>
<el-table-column align="center" prop="firstAmount" label="首充金额" min-width="80" sortable></el-table-column>
<el-table-column align="center" prop="typeRatio" label="充值提成" min-width="80" sortable></el-table-column>
<el-table-column align="center" prop="rechargeMoney" label="续充金额" min-width="80" sortable></el-table-column>
<el-table-column align="center" prop="discount" label="享受折扣( % )" min-width="150" sortable></el-table-column>
<el-table-column align="center" prop="giftMoney" label="赠送金额" min-width="80" sortable>
<template slot-scope="scope">
<span v-if="scope.row.donateType==0"></span>
<span v-if="scope.row.donateType==1"></span>
<span>{{scope.row.giftMoney}}</span>
<span v-if="scope.row.donateType==1">%</span>
</template>
</el-table-column>
<el-table-column align="center" prop="discountFreeAmount" label="赠送折扣( % )" min-width="140" sortable></el-table-column>
<el-table-column align="center" prop="startDates" label="开始日期" min-width="105" :show-overflow-tooltip="true" sortable></el-table-column>
<el-table-column align="center" prop="stopDates" label="结束日期" min-width="105" :show-overflow-tooltip="true" sortable></el-table-column>
<el-table-column align="center" prop="validTime" label="有效期(月)" min-width="80" sortable></el-table-column>
<el-table-column align="center" prop="founderStaff" label="创建人" min-width="80" sortable></el-table-column>
<el-table-column align="center" prop="storeName" label="所属门店" min-width="80" :show-overflow-tooltip="true" sortable></el-table-column>
<el-table-column align="center" prop="founderDatetime" label="创建时间" :show-overflow-tooltip="true" min-width="105" sortable></el-table-column>
<el-table-column align="center" prop="modifyBy" label="最近操作人" min-width="80" sortable></el-table-column>
<el-table-column align="center" prop="modifyDatetime" label="操作时间" :show-overflow-tooltip="true" min-width="105" sortable></el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="160">
<template slot-scope="scope" fixed="right">
<el-button :disabled="!headOffice" @click="edit(scope.row)" size="mini" type="primary" v-role="4006003"></el-button>
<el-button :disabled="!headOffice" size="mini" type="primary" @click="del(scope.row)" plain v-role="4006004"></el-button>
</template>
</el-table-column>
</el-table>
<div class="block" style="margin-top: 10px">
<el-pagination align="left" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="queryForm.pageNum" :page-sizes="[10, 20, 30, 40, 50]" :page-size="queryForm.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
</div>
<el-dialog title="搜索" :visible.sync="searchDialog">
<el-form :model="searchForm">
<el-form-item label="充值名称搜索:" label-width="120px">
<div class="searchDiv">
<el-input size="medium" v-model="searchForm.rechargeTypeName" placeholder="输入要查询的用充值类别名称" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="根据状态搜索:" label-width="120px">
<div class="searchDiv">
<el-radio-group v-model="searchForm.state" fill="#f78989">
<el-radio :label="1" @click.native.prevent="clickitem(1)" size="medium" type="primary">启用中</el-radio>
<el-radio :label="0" @click.native.prevent="clickitem(0)" size="medium" type="primary">已停用</el-radio>
</el-radio-group>
</div>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="searchDialog = false"> </el-button>
<el-button type="primary" size="mini" @click="search((searchDialog = false))"> </el-button>
</span>
</el-dialog>
<el-dialog title="导入表格" :visible.sync="infoDialog" :close-on-click-modal="false">
<excel @fileData="fileData" @infoDialogV="infoDialogV"></excel>
</el-dialog>
<el-dialog title="导入提示" :visible.sync="infoErrorDialog">
<span>以下导入 充值名称 存在重复 , 请检查修改后重新导入</span>
<el-table :data="infoList">
<el-table-column align="center" prop="rechargeTypeNum" label="充值编码" min-width="120" sortable> </el-table-column>
<el-table-column align="center" prop="rechargeTypeName" label="充值类别" min-width="120" :show-overflow-tooltip="true" sortable>
<template slot-scope="scope">{{
scope.row.type == 2 ? "活动卡" : "折扣卡"
}}</template>
</el-table-column>
<el-table-column align="center" prop="rechargeTypeName" label="充值名称" min-width="120" :show-overflow-tooltip="true" sortable></el-table-column>
<el-table-column align="center" label="状态" min-width="100" v-role="4006005">
<template slot-scope="scope">
<el-switch v-model="scope.row.state" active-text=" " inactive-text="" :active-value="1" :inactive-value="0" inactive-color="#cccccc" class="demo" @change="state(scope.row)" />
</template>
</el-table-column>
<el-table-column align="center" prop="typeRatio" label="充值提成" min-width="110" sortable>
</el-table-column>
<el-table-column align="center" prop="rechargeMoney" label="续充金额" min-width="110" sortable>
</el-table-column>
<el-table-column align="center" prop="discount" label="享受折扣( % )" min-width="150" sortable>
</el-table-column>
<el-table-column align="center" prop="giftMoney" label="赠送金额" min-width="110" sortable>
</el-table-column>
<el-table-column align="center" prop="giftMoney" label="赠送折扣" min-width="110" sortable>
</el-table-column>
<el-table-column align="center" prop="giftMoney" label="开始日期" min-width="110" sortable></el-table-column>
<el-table-column align="center" prop="giftMoney" label="结束日期" min-width="110" sortable></el-table-column>
<el-table-column align="center" prop="validTime" label="有效期(月)" min-width="130" sortable>
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="infoErrorDialog = false"> </el-button>
</span>
</el-dialog>
<edit ref="edit" @editData="editData"></edit>
</div>
</template>
<script>
import edit from "./components/edit";
import excel from "@/components/excel";
import {
addrecType,
editrecType,
delrecType,
recTypeNewPages,
recTypeStates,
recTypeDownloads,
recTypeImports,
recTypeExports,
} from "@/api/storeManage.js";
export default {
components: {
excel,
edit,
},
rechargeTypeName: "",
data() {
return {
searchDialog: false, //
refreshtext: false, //
headOffice: false, //
infoErrorDialog: false, //
infoList: [], //
searchForm: {
//
rechargeTypeName: "",
state: 1,
},
sessionStorageData: {}, //
list: [], //
total: 0, //
queryForm: {
//
pageSize: 10,
pageNum: 1,
},
infoDialog: false, //
};
},
methods: {
//
download() {
recTypeDownloads().then((res) => {
let blob = new Blob([res]);
console.log(blob);
var a = document.createElement("a");
var url = window.URL.createObjectURL(blob);
console.log(url);
a.href = url;
a.download = "充值促销模板.xlsx";
a.click();
window.URL.revokeObjectURL(url);
});
},
//
//
exit() {
if (this.searchForm.rechargeTypeName == "") {
delete this.searchForm.rechargeTypeName;
}
recTypeExports(this.searchForm).then((res) => {
let blob = new Blob([res]);
var a = document.createElement("a");
var url = window.URL.createObjectURL(blob);
console.log(url);
a.href = url;
a.download = "充值促销导出表.xlsx";
a.click();
window.URL.revokeObjectURL(url);
});
},
//
fileData(v) {
var fileData = new FormData();
if (v == null) {
this.$alert("请选择需要上传的文件", "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
} else {
fileData.append("multipartFile", v);
recTypeImports(fileData).then((res) => {
if (res.rows != undefined) {
this.infoList = res.rows;
this.infoErrorDialog = true;
} else {
if (res.code == "000000") {
this.$message.success({
message: res.message,
});
this.getData();
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
}
});
}
},
//
infoDialogV(v) {
this.infoDialog = v;
},
//
search() {
//
this.searchForm.storeId = sessionStorage.getItem("parentId");
recTypeNewPages(this.searchForm).then((res) => {
if (res.code == "000000") {
this.searchTrue = true;
this.list = res.pageInfo.list;
this.total = res.pageInfo.total;
if (res.pageInfo.total == 0) {
this.$message.warning({
message: "没有找到符合条件的充值类别",
});
}
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
},
///
clickitem(e) {
e === this.searchForm.state
? (this.searchForm.state = null)
: (this.searchForm.state = e);
},
//
del(row) {
this.$confirm("此操作将永久删除该数据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
cancelButtonClass: "cancelbtnFalses",
confirmButtonClass: "confirmbtnFalses",
})
.then(() => {
delrecType({ id: row.id }).then((res) => {
if (res.code == "000000") {
this.getData();
this.$message.success({
message: "删除成功!",
});
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
})
.catch(() => {
this.$message.info({
message: "已取消操作!",
});
});
},
///
edit(form) {
this.$refs.edit.show(form);
},
//
state(row) {
var state = {
id: row.id,
state: row.state,
};
recTypeStates(state)
.then((res) => {
//console.log(res);
this.getData();
if (res.code == "000000") {
if (row.state == 1) {
this.$message.success({
message: "状态启用!",
});
} else {
this.$message.success({
message: "状态停用!",
});
}
}
})
.catch((err) => {
//console.log(err);
});
},
//
handleSizeChange(val) {
this.queryForm.pageSize = val;
if (this.searchTrue == true) {
this.search();
} else {
this.getData();
}
},
handleCurrentChange(val) {
this.queryForm.pageNum = val;
if (this.searchTrue == true) {
this.search();
} else {
this.getData();
}
},
///
editData() {
if (this.searchTrue == true) {
this.search();
} else {
this.getData();
}
},
//
async getData() {
this.queryForm.type = 2;
this.queryForm.storeId = sessionStorage.getItem("parentId");
recTypeNewPages(this.queryForm)
.then((res) => {
if (this.refreshtext == true) {
this.$message.success({
message: "已刷新最新数据",
});
this.refreshtext = false;
this.searchTrue = false;
}
this.list = res.pageInfo.list;
this.total = res.pageInfo.total;
})
.catch((err) => {
//console.log(err);
});
},
},
created() {
this.headOffice =
sessionStorage.getItem("headOffice") * 1 == 1 ? true : false;
console.log(this.headOffice);
let list = JSON.parse(sessionStorage.getItem("list"));
this.sessionStorage = JSON.parse(
sessionStorage.getItem("sessionStorageData")
);
list.forEach((item) => {
if (item.id == 4006001) {
this.getData();
}
});
},
};
</script>
<style scoped>
.el-button {
margin-bottom: 10px;
}
.el-input {
width: 200px;
}
</style>

@ -13,7 +13,7 @@
<el-table @row-dblclick="confirm" :data="tableDate" :header-cell-style="{
background: 'linear-gradient(#6cb3ff, #1873d4)',
color: '#eeeeee',
}" :summary-method="getSummaries" show-summary border max-height="700">
}" show-summary border max-height="700">
<el-table-column align="center" min-width="80" prop="date" label="日期"></el-table-column>
<el-table-column align="center" min-width="80" prop="cashPeopleNum" label="客单数">
<template slot-scope="scope">
@ -61,12 +61,12 @@
{{scope.row.newMemberNum?scope.row.newMemberNum:'--'}}
</template>
</el-table-column>
<el-table-column align="center" min-width="80" prop="startMemberNum" label="启用会员">
<el-table-column align="center" min-width="80" label="启用会员">
<template slot-scope="scope">
{{scope.row.startMemberNum?scope.row.startMemberNum:'--'}}
</template>
</el-table-column>
<el-table-column align="center" min-width="80" prop="memberNum" label="会员总数">
<el-table-column align="center" min-width="80" label="会员总数">
<template slot-scope="scope">
{{scope.row.memberNum?scope.row.memberNum:'--'}}
</template>
@ -159,16 +159,10 @@ export default {
getData() {
this.queryForm.startDate = this.days[0];
this.queryForm.endDate = this.days[1];
this.queryForm.storeId = sessionStorage.getItem("storeId");
storeDailys(this.queryForm).then((res) => {
if (res.code == "000000") {
res.rows.forEach((item) => {
item.baseSalary = item.baseSalary == null ? 0 : item.baseSalary * 1;
item.commSalary = item.commSalary == null ? 0 : item.commSalary * 1;
item.sumNumber = (item.baseSalary + item.commSalary).toFixed(2) * 1;
item.startDate = form.startDate;
item.endDate = form.endDate;
});
this.tableDate = res.rows;
this.tableDate = res.data;
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
@ -181,8 +175,8 @@ export default {
});
},
confirm(row) {
row.type = 3;
this.$refs.perform.show(row);
// row.type = 3;
// this.$refs.perform.show(row);
},
//
//

@ -136,7 +136,7 @@ export default {
this.form.baseStores = this.selection;
assignProject(this.form).then((res) => {
if (res.code == "000000") {
this.$message.success({ message: "引入成功!" });
this.$message.success({ message: "分派成功!" });
this.$emit("detailData");
this.dialogFormVisible = false;
} else {

@ -5,44 +5,43 @@
</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-column type="selection" width="55"></el-table-column>
<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="150"></el-table-column>
<el-table-column align="center" sortable prop="projectName" :show-overflow-tooltip="true" label="项目名称" min-width="120"></el-table-column>
<el-table-column align="center" label="散客价">
<el-table-column align="center" sortable prop="price" label="标价" min-width="100"></el-table-column>
<el-table-column align="center" sortable prop="minumumPrice" label="最低价" min-width="100">
</el-table-column>
<el-table-column align="center" sortable prop="price" label="标价" min-width="70"></el-table-column>
<el-table-column align="center" sortable prop="topPrice" label="最高价" min-width="75"></el-table-column>
<el-table-column align="center" sortable prop="minumumPrice" label="最低价" min-width="75"></el-table-column>
</el-table-column>
<el-table-column align="center" label="会员">
<el-table-column align="center" sortable prop="priceMember" label="标价" min-width="100">
</el-table-column>
<el-table-column align="center" sortable prop="minumumPriceMember" label="最低价" min-width="100">
</el-table-column>
<el-table-column align="center" sortable prop="priceMember" label="标价" min-width="70"></el-table-column>
<el-table-column align="center" sortable prop="topPriceMember" label="最高价" min-width="75"></el-table-column>
<el-table-column align="center" sortable prop="minumumPriceMember" label="最低价" min-width="75"></el-table-column>
</el-table-column>
<el-table-column align="center" sortable prop="minumumTimes" label="单次最少销售次数" min-width="100">
<el-table-column align="center" sortable prop="minumumTimes" label="单次最少销售次数" min-width="70">
</el-table-column>
<el-table-column align="center" sortable prop="directConsumption" label="直接消费" min-width="105">
<el-table-column align="center" sortable prop="directConsumption" label="直接消费" min-width="75">
<template slot-scope="scope">{{
scope.row.directConsumption == 1 ? "是" : "否"
}}</template>
</el-table-column>
<el-table-column align="center" sortable prop="noDiscount" label="卡付打折" min-width="105">
<el-table-column align="center" sortable prop="noDiscount" label="卡付打折" min-width="75">
<template slot-scope="scope">{{
scope.row.noDiscount == 0 ? "是" : scope.row.noDiscount == 1?'否':"未设"
}}</template>
</el-table-column>
<el-table-column align="center" sortable prop="directConsumption" label="合作项目/抽佣比例" min-width="105">
<el-table-column align="center" sortable prop="directConsumption" label="合作项目/抽佣比例" min-width="75">
<template slot-scope="scope">{{
scope.row.isCooperation == 1 ? "是" + "/" + scope.row.brokerage : "否"
}}</template>
</el-table-column>
<el-table-column align="center" v-if="sessionStorageData.allowValid" sortable prop="validTime" label="有效期限(月)" min-width="130">
<el-table-column align="center" v-if="sessionStorageData.allowValid" sortable prop="validTime" label="有效期限(月)" min-width="75">
<template slot-scope="scope">
{{ scope.row.directConsumption == "否" ? scope.row.validTime : null }}
</template>
</el-table-column>
<el-table-column align="center" sortable prop="label" :show-overflow-tooltip="true" label="标签" min-width="110"></el-table-column>
<el-table-column align="center" prop="storeName" :show-overflow-tooltip="true" label="所属门店" min-width="140"></el-table-column>
<el-table-column align="center" sortable prop="label" :show-overflow-tooltip="true" label="标签" min-width="75"></el-table-column>
<el-table-column align="center" prop="storeName" :show-overflow-tooltip="true" label="所属门店" min-width="100"></el-table-column>
</el-table>
<el-pagination background :current-page="queryForm.pageNum" :page-size="queryForm.pageSize" :layout="layout" :total="total" @size-change="handleSizeChange" @current-change="handleCurrentChange"></el-pagination>
<div slot="footer" class="dialog-footer">
@ -84,7 +83,6 @@ export default {
},
methods: {
radioChange(v) {
console.log(v);
this.queryForm.storeId = v;
this.getPro();
},
@ -176,7 +174,7 @@ export default {
});
},
show() {
this.selection = [];
Object.assign(this.$data, this.$options.data.call(this));
this.dialogFormVisible = true;
this.getData();
},

@ -1,152 +1,151 @@
import axios from "axios";
import { Message, MessageBox } from "element-ui";
// import { getToken, removeToken, setToken } from "@/utils/token";
import { getCookie, delCookie } from "./utils.js";
import router from "../router/index.js";
import { name } from "../../config/dev.env.js";
let base = "/api";
let baseURL = base;
// 根据环境变量对host进行判断
// axios.defaults.baseURL = process.env.baseURL
// axios.defaults.baseURL = '/api'
axios.defaults.headers.post["Content-Type"] = "application/json;charset=UTF-8";
// const rLoading = this.openLoading();
// 创建axios实例
const service = axios.create({
baseURL: baseURL,
timeout: 15000 // 请求超时时间
});
// request拦截器
service.interceptors.request.use(
config => {
// 在此处设置请求头参数
const token = localStorage.getItem("token");
if (token != null) {
config.headers.token = token;
}
return config;
},
error => {
return Promise.reject(error);
}
);
var flag = false;
// axios response 拦截器
service.interceptors.response.use(
response => {
// loadingObj.close();
switch (response.data.code) {
case "502001":
if (flag) {
break;
} else {
flag = true;
MessageBox.confirm(response.data.message + "!重新登录?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
cancelButtonClass: "cancelbtnFalses",
confirmButtonClass: "confirmbtnFalses",
type: "warning"
}).then(() => {
router.push("/login");
delCookie("token");
});
setTimeout(() => {
flag = false;
}, 15000);
console.log(flag);
}
break;
case "510002":
if (flag) {
break;
} else {
flag = true;
MessageBox.confirm("登录已过期 , 是否重新登录?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
cancelButtonClass: "cancelbtnFalses",
confirmButtonClass: "confirmbtnFalses",
type: "warning"
}).then(() => {
router.push("/login");
delCookie("token");
});
//解决当token过期时同一个页面有多个请求造成 “是否重新登录”弹框多次弹出 的BUG
setTimeout(() => {
flag = false;
}, 15000);
break;
}
default:
break;
}
// 返回请求成功结果status=200
return response.data;
},
err => {
// 判断请求失败
// 请求失败时即status!=200
if (err && err.response) {
switch (err.response.status) {
case 400:
err.message = "错误格式请求";
break;
case 401:
err.message = "未授权,请重新登录";
break;
case 403:
err.message = "禁止访问";
break;
case 404:
err.message = "请求错误,未找到该请求方法";
break;
case 405:
err.message = "请求方法未允许";
break;
case 408:
err.message = "请求超时";
break;
case 413:
err.message = "上传文件过大";
break;
case 500:
err.message = "服务器端出错";
break;
case 501:
err.message = "网络未实现";
break;
case 502:
err.message = "网络错误";
break;
case 503:
err.message = "服务不可用";
break;
case 504:
err.message = "网络超时";
break;
case 505:
err.message = "http版本不支持该请求";
break;
default:
err.message = `连接错误,${err.res.message}`;
}
} else {
err.message = "连接不上服务器";
}
Message({
type: "warning",
message: err.message,
showClose: true,
duration: 1500
});
return Promise.reject(err);
}
);
// export default service;
export { service };
import axios from "axios";
import { Message, MessageBox } from "element-ui";
// import { getToken, removeToken, setToken } from "@/utils/token";
import { getCookie, delCookie } from "./utils.js";
import router from "../router/index.js";
import { name } from "../../config/dev.env.js";
let base = "/api";
let baseURL = base;
// 根据环境变量对host进行判断
// axios.defaults.baseURL = process.env.baseURL
// axios.defaults.baseURL = '/api'
axios.defaults.headers.post["Content-Type"] = "application/json;charset=UTF-8";
// const rLoading = this.openLoading();
// 创建axios实例
const service = axios.create({
baseURL: baseURL,
timeout: 15000 // 请求超时时间
});
// request拦截器
service.interceptors.request.use(
config => {
// 在此处设置请求头参数
const token = localStorage.getItem("token");
if (token != null) {
config.headers.token = token;
}
return config;
},
error => {
return Promise.reject(error);
}
);
var flag = false;
// axios response 拦截器
service.interceptors.response.use(
response => {
// loadingObj.close();
switch (response.data.code) {
case "502001":
if (flag) {
break;
} else {
flag = true;
MessageBox.confirm(response.data.message + "!重新登录?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
cancelButtonClass: "cancelbtnFalses",
confirmButtonClass: "confirmbtnFalses",
type: "warning"
}).then(() => {
router.push("/login");
delCookie("token");
});
setTimeout(() => {
flag = false;
}, 15000);
console.log(flag);
}
break;
case "510002":
if (flag) {
break;
} else {
flag = true;
MessageBox.confirm("登录已过期 , 是否重新登录?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
cancelButtonClass: "cancelbtnFalses",
confirmButtonClass: "confirmbtnFalses",
type: "warning"
}).then(() => {
router.push("/login");
delCookie("token");
});
//解决当token过期时同一个页面有多个请求造成 “是否重新登录”弹框多次弹出 的BUG
setTimeout(() => {
flag = false;
}, 15000);
break;
}
default:
break;
}
// 返回请求成功结果status=200
return response.data;
},
err => {
// 判断请求失败
// 请求失败时即status!=200
if (err && err.response) {
switch (err.response.status) {
case 400:
err.message = "错误格式请求";
break;
case 401:
err.message = "未授权,请重新登录";
break;
case 403:
err.message = "禁止访问";
break;
case 404:
err.message = "请求错误,未找到该请求方法";
break;
case 405:
err.message = "请求方法未允许";
break;
case 408:
err.message = "请求超时";
break;
case 413:
err.message = "上传文件过大";
break;
case 500:
err.message = "服务器端出错";
break;
case 501:
err.message = "网络未实现";
break;
case 502:
err.message = "网络错误";
break;
case 503:
err.message = "服务不可用";
break;
case 504:
err.message = "网络超时";
break;
case 505:
err.message = "http版本不支持该请求";
break;
default:
err.message = `连接错误,${err.res.message}`;
}
} else {
err.message = "连接不上服务器";
}
Message({
type: "warning",
message: err.message,
showClose: true,
duration: 1500
});
return Promise.reject(err);
}
);
// export default service;
export { service };

@ -1,36 +1,40 @@
//获取cookie、
export function getCookie(name) {
var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
if (arr = document.cookie.match(reg))
return (arr[2]);
else
return null;
}
//设置cookie,增加到vue实例方便全局调用    //expiredays==null时关闭浏览器自动清除cookie
export function setCookie(c_name, value, expiredays) {
var exdate = new Date();
exdate.setDate(exdate.getDate() + expiredays);
document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? '' : ";expires=" + exdate.toGMTString());
};
//删除cookie
export function delCookie(name) {
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = getCookie(name);
if (cval != null)
document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
};
export function getDate() {
var dd = new Date()
var y = dd.getFullYear()
var M = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1
var d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate()
var h = dd.getHours() < 10 ? '0' + dd.getHours() : dd.getHours()
var m = dd.getMinutes() < 10 ? '0' + dd.getMinutes() : dd.getMinutes()
var s = dd.getSeconds() < 10 ? '0' + dd.getSeconds() : dd.getSeconds()
//   return y + '-' + m + '-' + d
return y + '' + M + '' + d +'' + h + '' + m + '' + s
}
//获取cookie、
export function getCookie(name) {
var arr,
reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
if ((arr = document.cookie.match(reg))) return arr[2];
else return null;
}
//设置cookie,增加到vue实例方便全局调用    //expiredays==null时关闭浏览器自动清除cookie
export function setCookie(c_name, value, expiredays) {
var exdate = new Date();
exdate.setDate(exdate.getDate() + expiredays);
document.cookie =
c_name +
"=" +
escape(value) +
(expiredays == null ? "" : ";expires=" + exdate.toGMTString());
}
//删除cookie
export function delCookie(name) {
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = getCookie(name);
if (cval != null)
document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
}
export function getDate() {
var dd = new Date();
var y = dd.getFullYear();
var M =
dd.getMonth() + 1 < 10 ? "0" + (dd.getMonth() + 1) : dd.getMonth() + 1;
var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate();
var h = dd.getHours() < 10 ? "0" + dd.getHours() : dd.getHours();
var m = dd.getMinutes() < 10 ? "0" + dd.getMinutes() : dd.getMinutes();
var s = dd.getSeconds() < 10 ? "0" + dd.getSeconds() : dd.getSeconds();
//   return y + '-' + m + '-' + d
return y + "" + M + "" + d + "" + h + "" + m + "" + s;
}

Loading…
Cancel
Save