会员等级管理
This commit is contained in:
parent
6a8dd263de
commit
bf99a60269
|
@ -39,7 +39,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="tipsLevel">
|
<div class="tipsLevel">
|
||||||
<div>
|
<div>
|
||||||
<span style="margin-right: 30px">全部等级({{list.length}})</span
|
<span style="margin-right: 30px">全部等级({{ list.length }})</span
|
||||||
><el-button @click="add(null)" type="primary">+新增套餐</el-button>
|
><el-button @click="add(null)" type="primary">+新增套餐</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
@ -74,10 +74,16 @@
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div>
|
<div>
|
||||||
<span>{{scope.row.enableMemberDiscount ? '会员折扣,' :''}}</span>
|
<span>{{ scope.row.enableMemberDiscount ? "会员折扣," : "" }}</span>
|
||||||
<span>{{scope.row.enablePointsRedemption ? '积分兑换,' : ''}}</span>
|
<span>{{
|
||||||
<span>{{scope.row.enableBirthdayCoupons ? '生日优惠卷,' : ''}}</span>
|
scope.row.enablePointsRedemption ? "积分兑换," : ""
|
||||||
<span>{{scope.row.enableBirthdayReward ? '生日双倍积分' : ''}}</span>
|
}}</span>
|
||||||
|
<span>{{
|
||||||
|
scope.row.enableBirthdayCoupons ? "生日优惠卷," : ""
|
||||||
|
}}</span>
|
||||||
|
<span>{{
|
||||||
|
scope.row.enableBirthdayReward ? "生日双倍积分" : ""
|
||||||
|
}}</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -102,7 +108,7 @@
|
||||||
<!-- </el-table-column> -->
|
<!-- </el-table-column> -->
|
||||||
</el-table>
|
</el-table>
|
||||||
<!-- 添加 -->
|
<!-- 添加 -->
|
||||||
<addOrUpdate ref="addOrUpdate"></addOrUpdate>
|
<addOrUpdate @getList="getList" ref="addOrUpdate"></addOrUpdate>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -127,7 +133,7 @@ export default {
|
||||||
this.formInline = {
|
this.formInline = {
|
||||||
unitType: JSON.parse(sessionStorage.getItem("userInfo")).unitType,
|
unitType: JSON.parse(sessionStorage.getItem("userInfo")).unitType,
|
||||||
marketId: this.marketId,
|
marketId: this.marketId,
|
||||||
shopId: "",
|
shopId: this.shopId,
|
||||||
};
|
};
|
||||||
this.getList();
|
this.getList();
|
||||||
},
|
},
|
||||||
|
|
|
@ -26,10 +26,24 @@ export default {
|
||||||
show: false,
|
show: false,
|
||||||
width: "60%",
|
width: "60%",
|
||||||
},
|
},
|
||||||
modalData: {},
|
modalData: {
|
||||||
value1: [],
|
couponsName: "",
|
||||||
|
couponsThreshold: 0,
|
||||||
|
couponsMinus: 0,
|
||||||
|
couponsEffectiveTimeType: "1",
|
||||||
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
watch: {
|
||||||
|
"modalConfig.show"(newVal) {
|
||||||
|
if (newVal) {
|
||||||
|
//关闭弹窗清空校验
|
||||||
|
setTimeout(() => {
|
||||||
|
this.$refs.modal.resetFields();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
queryTableData(pageNo, pageSize) {},
|
queryTableData(pageNo, pageSize) {},
|
||||||
toggle(e) {
|
toggle(e) {
|
||||||
|
@ -37,43 +51,33 @@ export default {
|
||||||
this.modalConfig.show = true;
|
this.modalConfig.show = true;
|
||||||
} else {
|
} else {
|
||||||
this.modalConfig.show = false;
|
this.modalConfig.show = false;
|
||||||
this.$refs.modal.resetFields();
|
|
||||||
}
|
}
|
||||||
if (e) {
|
if (e) {
|
||||||
this.init(cloneDeep(e));
|
this.init(cloneDeep(e));
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
add: (row) => {
|
add: (row) => {
|
||||||
this.modalConfig.title = "添加优惠卷";
|
console.log(row);
|
||||||
this.$nextTick(() => {
|
if (row.length > 0) {
|
||||||
this.$refs.modal?.resetFields();
|
|
||||||
});
|
|
||||||
this.isAdd = true;
|
|
||||||
if (row) {
|
|
||||||
this.modalData = row[0];
|
this.modalData = row[0];
|
||||||
|
} else {
|
||||||
console.log("111");
|
console.log("111");
|
||||||
return;
|
this.modalData = {
|
||||||
|
couponsName: "",
|
||||||
|
couponsThreshold: 0,
|
||||||
|
couponsMinus: 0,
|
||||||
|
couponsEffectiveTimeType: "1",
|
||||||
|
};
|
||||||
}
|
}
|
||||||
this.modalData = {
|
this.modalConfig.title = "添加优惠卷";
|
||||||
couponsName: "",
|
this.isAdd = true;
|
||||||
couponsThreshold: 0,
|
|
||||||
couponsMinus: 0,
|
|
||||||
couponsEffectiveTimeType: "1",
|
|
||||||
};
|
|
||||||
console.log("qqw");
|
|
||||||
},
|
},
|
||||||
update: () => {
|
update: () => {
|
||||||
this.isAdd = false;
|
this.isAdd = false;
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
init(row) {
|
init(row) {},
|
||||||
if (row) {
|
|
||||||
this.modalData = row;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
console.log("123");
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
modalCols() {
|
modalCols() {
|
||||||
|
@ -146,7 +150,7 @@ export default {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "当月",
|
label: "当月",
|
||||||
value: "2",
|
value: "3",
|
||||||
},
|
},
|
||||||
].map((item) => {
|
].map((item) => {
|
||||||
return (
|
return (
|
||||||
|
@ -176,8 +180,11 @@ export default {
|
||||||
loading: this.isLoading,
|
loading: this.isLoading,
|
||||||
submit: true,
|
submit: true,
|
||||||
handle: () => {
|
handle: () => {
|
||||||
console.log(this.modalData);
|
console.log(JSON.parse(JSON.stringify(this.modalData)));
|
||||||
this.$emit("addCouponData", this.modalData);
|
this.$emit(
|
||||||
|
"addCouponData",
|
||||||
|
JSON.parse(JSON.stringify(this.modalData))
|
||||||
|
);
|
||||||
this.toggle();
|
this.toggle();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
<obj-table-plus
|
<obj-table-plus
|
||||||
style="height: 70vh"
|
style="height: 70vh"
|
||||||
ref="oTableThree"
|
ref="oTableThree"
|
||||||
v-model="modalData.tableData"
|
v-model="modalData.levelList"
|
||||||
:tableCols="tableCols"
|
:tableCols="tableCols"
|
||||||
:tableProp="tableProp"
|
:tableProp="tableProp"
|
||||||
:toolbarProp="toolbarProp"
|
:toolbarProp="toolbarProp"
|
||||||
|
@ -28,6 +28,7 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
import { mapState } from "vuex";
|
||||||
import addCoupon from "./add-coupon.vue";
|
import addCoupon from "./add-coupon.vue";
|
||||||
import { debounce, cloneDeep } from "lodash";
|
import { debounce, cloneDeep } from "lodash";
|
||||||
export default {
|
export default {
|
||||||
|
@ -41,6 +42,7 @@ export default {
|
||||||
tableProp: {
|
tableProp: {
|
||||||
height: "auto",
|
height: "auto",
|
||||||
border: true,
|
border: true,
|
||||||
|
"show-overflow": false,
|
||||||
"auto-resize": false,
|
"auto-resize": false,
|
||||||
"print-config": {},
|
"print-config": {},
|
||||||
},
|
},
|
||||||
|
@ -58,7 +60,7 @@ export default {
|
||||||
marketId: "",
|
marketId: "",
|
||||||
shopId: "",
|
shopId: "",
|
||||||
unitType: "",
|
unitType: "",
|
||||||
tableData: [
|
levelList: [
|
||||||
{
|
{
|
||||||
levelName: "",
|
levelName: "",
|
||||||
requiredGrowthValue: 0,
|
requiredGrowthValue: 0,
|
||||||
|
@ -90,7 +92,7 @@ export default {
|
||||||
enableBirthdayReward: false,
|
enableBirthdayReward: false,
|
||||||
discountRate: "",
|
discountRate: "",
|
||||||
rewardEffectiveTimeType: "",
|
rewardEffectiveTimeType: "",
|
||||||
memberLevelCouponsList: "",
|
memberLevelCouponsList: [],
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
@ -125,7 +127,8 @@ export default {
|
||||||
addCouponData(data) {
|
addCouponData(data) {
|
||||||
console.log(data);
|
console.log(data);
|
||||||
let row = JSON.parse(JSON.stringify(data));
|
let row = JSON.parse(JSON.stringify(data));
|
||||||
this.modalData.tableData[this.couponIndex].memberLevelCouponsList = [row];
|
this.modalData.levelList[this.couponIndex].memberLevelCouponsList = [row];
|
||||||
|
this.$refs.modalForm.validate();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
@ -147,7 +150,7 @@ export default {
|
||||||
let row = e.row;
|
let row = e.row;
|
||||||
return (
|
return (
|
||||||
<el-form-item
|
<el-form-item
|
||||||
prop={`tableData.${e.$rowIndex}.levelName`}
|
prop={`levelList.${e.$rowIndex}.levelName`}
|
||||||
rules={{
|
rules={{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入等级名称",
|
message: "请输入等级名称",
|
||||||
|
@ -168,15 +171,26 @@ export default {
|
||||||
width: "170px",
|
width: "170px",
|
||||||
type: "jsx",
|
type: "jsx",
|
||||||
render: (e) => {
|
render: (e) => {
|
||||||
|
let changUpperLimit = () => {
|
||||||
|
console.log(
|
||||||
|
e.$rowIndex,
|
||||||
|
e,
|
||||||
|
e.data[e.$rowIndex - 1].growthValueUpperLimit,
|
||||||
|
e.data[e.$rowIndex].requiredGrowthValue
|
||||||
|
);
|
||||||
|
e.data[e.$rowIndex - 1].growthValueUpperLimit =
|
||||||
|
e.data[e.$rowIndex].requiredGrowthValue - 1;
|
||||||
|
};
|
||||||
return (
|
return (
|
||||||
<el-form-item
|
<el-form-item
|
||||||
prop={`tableData.${e.$rowIndex}.requiredGrowthValue`}
|
prop={`levelList.${e.$rowIndex}.requiredGrowthValue`}
|
||||||
rules={{
|
rules={{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入所需成长值",
|
message: "请输入所需成长值",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<el-input-number
|
<el-input-number
|
||||||
|
onChange={changUpperLimit}
|
||||||
disabled={e.$rowIndex == 0}
|
disabled={e.$rowIndex == 0}
|
||||||
style="width:150px"
|
style="width:150px"
|
||||||
controls-position="right"
|
controls-position="right"
|
||||||
|
@ -199,14 +213,14 @@ export default {
|
||||||
render: (e) => {
|
render: (e) => {
|
||||||
return (
|
return (
|
||||||
<el-form-item
|
<el-form-item
|
||||||
prop={`tableData.${e.$rowIndex}.requiredGrowthValue`}
|
prop={`levelList.${e.$rowIndex}.requiredGrowthValue`}
|
||||||
rules={{
|
rules={{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入所需成长值",
|
message: "请输入所需成长值",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<el-input-number
|
<el-input-number
|
||||||
disabled={this.modalData.tableData.length == e.$rowIndex + 1}
|
disabled={this.modalData.levelList.length == e.$rowIndex + 1}
|
||||||
style="width:150px"
|
style="width:150px"
|
||||||
controls-position="right"
|
controls-position="right"
|
||||||
precision={0}
|
precision={0}
|
||||||
|
@ -232,10 +246,12 @@ export default {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return (
|
return (
|
||||||
<el-switch
|
<el-form-item>
|
||||||
onchange={changeDiscountRate}
|
<el-switch
|
||||||
v-model={row.enableMemberDiscount}
|
onchange={changeDiscountRate}
|
||||||
></el-switch>
|
v-model={row.enableMemberDiscount}
|
||||||
|
></el-switch>
|
||||||
|
</el-form-item>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -249,7 +265,7 @@ export default {
|
||||||
if (e.row.enableMemberDiscount) {
|
if (e.row.enableMemberDiscount) {
|
||||||
return (
|
return (
|
||||||
<el-form-item
|
<el-form-item
|
||||||
prop={`tableData.${e.$rowIndex}.discountRate`}
|
prop={`levelList.${e.$rowIndex}.discountRate`}
|
||||||
rules={{
|
rules={{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入所需成长值",
|
message: "请输入所需成长值",
|
||||||
|
@ -278,7 +294,14 @@ export default {
|
||||||
width: "120px",
|
width: "120px",
|
||||||
type: "jsx",
|
type: "jsx",
|
||||||
render: ({ row }) => {
|
render: ({ row }) => {
|
||||||
return <el-switch v-model={row.enablePointsRedemption}></el-switch>;
|
return (
|
||||||
|
<el-form-item>
|
||||||
|
{" "}
|
||||||
|
<el-switch
|
||||||
|
v-model={row.enablePointsRedemption}
|
||||||
|
></el-switch>{" "}
|
||||||
|
</el-form-item>
|
||||||
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -290,14 +313,16 @@ export default {
|
||||||
render: ({ row }) => {
|
render: ({ row }) => {
|
||||||
let changeCouponsList = () => {
|
let changeCouponsList = () => {
|
||||||
if (!row.enableBirthdayCoupons) {
|
if (!row.enableBirthdayCoupons) {
|
||||||
row.memberLevelCouponsList = "";
|
row.memberLevelCouponsList = [];
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return (
|
return (
|
||||||
<el-switch
|
<el-form-item>
|
||||||
onchange={changeCouponsList}
|
<el-switch
|
||||||
v-model={row.enableBirthdayCoupons}
|
onchange={changeCouponsList}
|
||||||
></el-switch>
|
v-model={row.enableBirthdayCoupons}
|
||||||
|
></el-switch>
|
||||||
|
</el-form-item>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -316,7 +341,7 @@ export default {
|
||||||
if (e.row.enableBirthdayCoupons) {
|
if (e.row.enableBirthdayCoupons) {
|
||||||
return (
|
return (
|
||||||
<el-form-item
|
<el-form-item
|
||||||
prop={`tableData.${e.$rowIndex}.memberLevelCouponsList`}
|
prop={`levelList.${e.$rowIndex}.memberLevelCouponsList`}
|
||||||
rules={{
|
rules={{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请添加优惠卷",
|
message: "请添加优惠卷",
|
||||||
|
@ -349,10 +374,12 @@ export default {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return (
|
return (
|
||||||
<el-switch
|
<el-form-item>
|
||||||
onchange={changeReward}
|
<el-switch
|
||||||
v-model={row.enableBirthdayReward}
|
onchange={changeReward}
|
||||||
></el-switch>
|
v-model={row.enableBirthdayReward}
|
||||||
|
></el-switch>
|
||||||
|
</el-form-item>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -366,7 +393,7 @@ export default {
|
||||||
if (e.row.enableBirthdayReward) {
|
if (e.row.enableBirthdayReward) {
|
||||||
return (
|
return (
|
||||||
<el-form-item
|
<el-form-item
|
||||||
prop={`tableData.${e.$rowIndex}.rewardEffectiveTimeType`}
|
prop={`levelList.${e.$rowIndex}.rewardEffectiveTimeType`}
|
||||||
rules={{
|
rules={{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入所需成长值",
|
message: "请输入所需成长值",
|
||||||
|
@ -408,7 +435,7 @@ export default {
|
||||||
render: (e) => {
|
render: (e) => {
|
||||||
let add = () => {
|
let add = () => {
|
||||||
console.log(e);
|
console.log(e);
|
||||||
this.modalData.tableData.splice(e.$rowIndex + 1, 0, {
|
this.modalData.levelList.splice(e.$rowIndex + 1, 0, {
|
||||||
levelName: "",
|
levelName: "",
|
||||||
requiredGrowthValue: "0",
|
requiredGrowthValue: "0",
|
||||||
growthValueUpperLimit: "999999999",
|
growthValueUpperLimit: "999999999",
|
||||||
|
@ -418,16 +445,16 @@ export default {
|
||||||
enableBirthdayReward: false,
|
enableBirthdayReward: false,
|
||||||
discountRate: "",
|
discountRate: "",
|
||||||
rewardEffectiveTimeType: "",
|
rewardEffectiveTimeType: "",
|
||||||
memberLevelCouponsList: "",
|
memberLevelCouponsList: [],
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
let remove = () => {
|
let remove = () => {
|
||||||
this.modalData.tableData.splice(e.$rowIndex, 1);
|
this.modalData.levelList.splice(e.$rowIndex, 1);
|
||||||
};
|
};
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<el-button
|
<el-button
|
||||||
v-show={this.modalData.tableData.length == e.$rowIndex + 1}
|
v-show={this.modalData.levelList.length == e.$rowIndex + 1}
|
||||||
style="margin-right: 10px"
|
style="margin-right: 10px"
|
||||||
type="primary"
|
type="primary"
|
||||||
size="mini"
|
size="mini"
|
||||||
|
@ -436,7 +463,7 @@ export default {
|
||||||
>
|
>
|
||||||
添加
|
添加
|
||||||
</el-button>
|
</el-button>
|
||||||
{this.modalData.tableData.length > 1 && e.$rowIndex != 0 ? (
|
{this.modalData.levelList.length > 1 && e.$rowIndex != 0 ? (
|
||||||
<el-popconfirm title="确认要删除吗?" onConfirm={remove}>
|
<el-popconfirm title="确认要删除吗?" onConfirm={remove}>
|
||||||
<el-button
|
<el-button
|
||||||
class="ml-1"
|
class="ml-1"
|
||||||
|
@ -473,12 +500,26 @@ export default {
|
||||||
).unitType;
|
).unitType;
|
||||||
console.log(this.modalData);
|
console.log(this.modalData);
|
||||||
this.$refs.modalForm.validate((valid) => {
|
this.$refs.modalForm.validate((valid) => {
|
||||||
console.log(valid);
|
if (valid) {
|
||||||
|
this.$api.marketing
|
||||||
|
.addMarketingLevel(this.modalData)
|
||||||
|
.then((res) => {
|
||||||
|
this.$emit("getList");
|
||||||
|
this.toggle();
|
||||||
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}, 300),
|
}, 300),
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
},
|
},
|
||||||
|
...mapState("userData", [
|
||||||
|
"isMerchant",
|
||||||
|
"marketList",
|
||||||
|
"storeList",
|
||||||
|
"marketId",
|
||||||
|
"shopId",
|
||||||
|
]),
|
||||||
},
|
},
|
||||||
asyncComputed: {},
|
asyncComputed: {},
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue