更新优化
This commit is contained in:
parent
1a4a8515c3
commit
2432c53a73
|
|
@ -74,6 +74,7 @@ const accountList = reactive([
|
|||
{ username: "19191703856", type: 'warning', label: '喜气洋洋' },
|
||||
{ username: "19107220837", type: 'danger', label: '快乐时光店铺' },
|
||||
{ username: "18199991111", type: 'success', label: '草莓加盟主店可直接管理' },
|
||||
{ username: "18821670757", type: 'primary', label: '强盛集团' },
|
||||
]);
|
||||
|
||||
// 快捷模拟登录
|
||||
|
|
|
|||
|
|
@ -1,75 +1,77 @@
|
|||
<template>
|
||||
<div class="m-4 bg-white p-4">
|
||||
<HeaderCard name="生日有礼" intro="用户生日管理设置" icon="birthdayGift"
|
||||
:showSwitch="shopInfo.isHeadShop == 1 || shopInfo.shopType == 'only'" v-model:isOpen="basicForm.isEnable">
|
||||
</HeaderCard>
|
||||
<el-tabs class="mt-4" v-model="activeTab" type="border-card">
|
||||
<el-tab-pane :label="item.label" v-for="item in configs" :key="item.name" :name="item.name">
|
||||
<template v-if="item.name == 'basic'">
|
||||
<el-form ref="form" :model="basicForm">
|
||||
<div class="u-m-b-10">
|
||||
<el-button type="primary" @click="refDialogPlans.open()"
|
||||
v-if="shopInfo.isHeadShop == 1 || shopInfo.shopType == 'only'">添加</el-button>
|
||||
<div v-if="shopInfo.isHeadShop == 1 || isUse">
|
||||
<HeaderCard name="生日有礼" intro="用户生日管理设置" icon="birthdayGift"
|
||||
:showSwitch="shopInfo.isHeadShop == 1 || shopInfo.shopType == 'only'" v-model:isOpen="basicForm.isEnable">
|
||||
</HeaderCard>
|
||||
<el-tabs class="mt-4" v-model="activeTab" type="border-card">
|
||||
<el-tab-pane :label="item.label" v-for="item in configs" :key="item.name" :name="item.name">
|
||||
<template v-if="item.name == 'basic'">
|
||||
<el-form ref="form" :model="basicForm">
|
||||
<div class="u-m-b-10">
|
||||
<el-button type="primary" @click="refDialogPlans.open()"
|
||||
v-if="shopInfo.isHeadShop == 1 || shopInfo.shopType == 'only'">添加</el-button>
|
||||
</div>
|
||||
<el-form-item label="">
|
||||
<el-table :data="basicForm.configList" border style="width: 60%">
|
||||
<el-table-column label="用户类型" align="center">
|
||||
<template #default="scope">
|
||||
{{ returnUserType(scope.row.userType) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="赠送优惠券" align="center">
|
||||
<template #default="scope">
|
||||
<div v-for="item in scope.row.couponInfoList" :key="item.id">
|
||||
<span>{{ item.title }}</span>
|
||||
<span class="m-l-4">{{ item.num }} 张</span>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="is_auto_renew" label="发放时间" align="center">
|
||||
<template #default="scope">
|
||||
{{ returnDeliverDate(scope.row) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center">
|
||||
<template #default="scope">
|
||||
<el-button type="text" @click="editPlan(scope.row, scope.$index)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button type="text" style="color: red" @click="deletePlan(scope.row)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="短信祝福">
|
||||
<el-switch v-model="basicForm.sendSms" :active-value="1" :inactive-value="0"></el-switch>
|
||||
<span class="color-666 font-size-[12px] m-l-4">
|
||||
开启后,将会在用户生日当天,发送祝福短信
|
||||
</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="短信内容">
|
||||
<span class="color-666 font-size-[14px]">
|
||||
亲爱的{用户昵称},[店铺名称]祝您生日快乐!感谢您一直的陪伴。为您准备了{num}张超值优惠券,已经放入账户,愿我们的礼物能为您增添一份喜悦。
|
||||
</span>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="flex mt-10 justify-center gap-10" v-if="shopInfo.isHeadShop">
|
||||
<el-button style="width: 100px" type="primary" @click="basicSubmit" size="large">
|
||||
保存
|
||||
</el-button>
|
||||
<el-button @click="close" style="width: 100px" size="large">取消</el-button>
|
||||
</div>
|
||||
<el-form-item label="">
|
||||
<el-table :data="basicForm.configList" border style="width: 60%">
|
||||
<el-table-column label="用户类型" align="center">
|
||||
<template #default="scope">
|
||||
{{ returnUserType(scope.row.userType) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="赠送优惠券" align="center">
|
||||
<template #default="scope">
|
||||
<div v-for="item in scope.row.couponInfoList" :key="item.id">
|
||||
<span>{{ item.title }}</span>
|
||||
<span class="m-l-4">{{ item.num }} 张</span>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="is_auto_renew" label="发放时间" align="center">
|
||||
<template #default="scope">
|
||||
{{ returnDeliverDate(scope.row) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center">
|
||||
<template #default="scope">
|
||||
<el-button type="text" @click="editPlan(scope.row, scope.$index)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button type="text" style="color: red" @click="deletePlan(scope.row)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="短信祝福">
|
||||
<el-switch v-model="basicForm.sendSms" :active-value="1" :inactive-value="0"></el-switch>
|
||||
<span class="color-666 font-size-[12px] m-l-4">
|
||||
开启后,将会在用户生日当天,发送祝福短信
|
||||
</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="短信内容">
|
||||
<span class="color-666 font-size-[14px]">
|
||||
亲爱的{用户昵称},[店铺名称]祝您生日快乐!感谢您一直的陪伴。为您准备了{num}张超值优惠券,已经放入账户,愿我们的礼物能为您增添一份喜悦。
|
||||
</span>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="flex mt-10 justify-center gap-10" v-if="shopInfo.isHeadShop">
|
||||
<el-button style="width: 100px" type="primary" @click="basicSubmit" size="large">
|
||||
保存
|
||||
</el-button>
|
||||
<el-button @click="close" style="width: 100px" size="large">取消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="item.name == 'record'">
|
||||
<recordLists :recordList="recordList"></recordLists>
|
||||
</template>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
<DialogPlans ref="refDialogPlans" @submitSuccess="submitSuccess"></DialogPlans>
|
||||
</template>
|
||||
<template v-if="item.name == 'record'">
|
||||
<recordLists :recordList="recordList"></recordLists>
|
||||
</template>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
<DialogPlans ref="refDialogPlans" @submitSuccess="submitSuccess"></DialogPlans>
|
||||
</div>
|
||||
<div style="padding-top: 14px;" v-else>门店未参与生日有礼或主店未开启活动,如需开启参与请联系主店</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
@ -85,7 +87,7 @@ import { ref, reactive, watch, toRaw, getCurrentInstance, onMounted } from "vue"
|
|||
import { ElMessage } from "element-plus";
|
||||
import { useRouter } from "vue-router";
|
||||
|
||||
const shopInfo = ref("");
|
||||
const shopInfo = ref(JSON.parse(localStorage.getItem("userInfo")));
|
||||
const inputStyle = {
|
||||
width: "340px",
|
||||
};
|
||||
|
|
@ -150,21 +152,40 @@ function basicSubmit() {
|
|||
});
|
||||
}
|
||||
|
||||
|
||||
const isUse = ref(false)
|
||||
async function init() {
|
||||
birthdayGiftApi.getConfig().then((res) => {
|
||||
res.configList = res.configList || [];
|
||||
Object.assign(basicForm, res);
|
||||
basicForm.isEnable = basicForm.isEnable;
|
||||
|
||||
if (res.isEnable == 1) {
|
||||
isUse.value = true
|
||||
// if (shopInfo.value.shopType == 'only') {
|
||||
// isUse.value = true
|
||||
// }
|
||||
// else {
|
||||
// if (res.useType == 'all') {
|
||||
// isUse.value = true
|
||||
// } else {
|
||||
// let currentShopId = shopInfo.value.shopId;
|
||||
// res.shopIdList.some((item) => {
|
||||
// if (item == currentShopId) {
|
||||
// isUse.value = true;
|
||||
// return true;
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
} else {
|
||||
isUse.value = false
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 从本地获取商户信息
|
||||
function getLocalShopInfo() {
|
||||
shopInfo.value = JSON.parse(localStorage.getItem("userInfo"));
|
||||
}
|
||||
onMounted(() => {
|
||||
init();
|
||||
getLocalShopInfo();
|
||||
});
|
||||
//计算总优惠券数量
|
||||
function totalCount(arr) {
|
||||
|
|
|
|||
|
|
@ -2,82 +2,85 @@
|
|||
<template>
|
||||
<div class="gyq_container">
|
||||
<div class="gyq_content">
|
||||
<HeaderCard name="消费返现" intro="允许客户充值并使用余额支付" icon="xffx"
|
||||
:showSwitch="shopInfo.isHeadShop == 1 || shopInfo.shopType == 'only'" v-model:isOpen="form.isEnable">
|
||||
</HeaderCard>
|
||||
<div style="padding-top: 14px;">
|
||||
<el-tabs v-model="tabsValue">
|
||||
<el-tab-pane label="基础明细" :name="1">
|
||||
<el-form ref="formRef" :model="form" :rules="rules" label-position="left" label-width="100px">
|
||||
<el-form-item label="可用门店">
|
||||
<el-radio-group v-model="form.useType">
|
||||
<el-radio label="全部门店" value="all"></el-radio>
|
||||
<el-radio label="指定门店可用" value="part"></el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="选择门店" prop="shopIdList" v-if="form.useType == 'part'">
|
||||
<selectBranchs v-model="form.shopIdList" />
|
||||
</el-form-item>
|
||||
<el-form-item label="适用用户">
|
||||
<el-radio-group v-model="form.applicableUser">
|
||||
<el-radio label="全部用户" value="all"></el-radio>
|
||||
<el-radio label="仅限新用户" value="new"></el-radio>
|
||||
<el-radio label="仅会员(分店需开启超级会员可用)" value="vip"></el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="返现类型">
|
||||
<el-radio-group v-model="form.cashbackType">
|
||||
<el-radio label="按比例返现" value="percentage"></el-radio>
|
||||
<el-radio label="固定金额" value="fix"></el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="阶梯设置" prop="stepValidate">
|
||||
<div class="row">
|
||||
<div class="item border" v-for="(item, index) in form.cashbackStepList" :key="index">
|
||||
<div class="row_title">
|
||||
<span>{{ `第${index + 1}组` }}</span>
|
||||
<el-icon @click="form.cashbackStepList.splice(index, 1)">
|
||||
<Delete />
|
||||
</el-icon>
|
||||
</div>
|
||||
<div class="ipt">
|
||||
<div class="ipt_row">
|
||||
<span>返现门槛</span>
|
||||
<el-input placeholder="请输入返现门槛" :maxlength="8" v-model="item.amount"
|
||||
@input="e => item.amount = filterNumberInput(e)">
|
||||
<template #append>元</template>
|
||||
</el-input>
|
||||
</div>
|
||||
<div class="ipt_row">
|
||||
<span>{{ form.cashbackType == 'percentage' ? '返现比例' : '返现金额' }}</span>
|
||||
<el-input :maxlength="8"
|
||||
:placeholder="form.cashbackType == 'percentage' ? '请输入返现比例' : '请输入返现金额'"
|
||||
v-model="item.cashbackAmount" @input="e => item.cashbackAmount = filterNumberInput(e)">
|
||||
<template #append>
|
||||
{{ form.cashbackType == 'percentage' ? '%' : '元' }}
|
||||
</template>
|
||||
</el-input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item" v-if="shopInfo.isHeadShop == 1 || shopInfo.shopType == 'only'">
|
||||
<el-button type="primary" @click="addCashBackItem">添加阶梯</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<div v-if="shopInfo.isHeadShop == 1 || shopInfo.shopType == 'only'">
|
||||
<el-form-item style="margin-top: 50px;">
|
||||
<el-button type="primary" @click="submitHandle">保存</el-button>
|
||||
<el-button @click="router.back()">取消</el-button>
|
||||
<div v-if="shopInfo.isHeadShop == 1 || isUse">
|
||||
<HeaderCard name="消费返现" intro="允许客户充值并使用余额支付" icon="xffx"
|
||||
:showSwitch="shopInfo.isHeadShop == 1 || shopInfo.shopType == 'only'" v-model:isOpen="form.isEnable">
|
||||
</HeaderCard>
|
||||
<div style="padding-top: 14px;">
|
||||
<el-tabs v-model="tabsValue">
|
||||
<el-tab-pane label="基础明细" :name="1">
|
||||
<el-form ref="formRef" :model="form" :rules="rules" label-position="left" label-width="100px">
|
||||
<el-form-item label="可用门店">
|
||||
<el-radio-group v-model="form.useType">
|
||||
<el-radio label="全部门店" value="all"></el-radio>
|
||||
<el-radio label="指定门店可用" value="part"></el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="返现明细" :name="2">
|
||||
<record />
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
<el-form-item label="选择门店" prop="shopIdList" v-if="form.useType == 'part'">
|
||||
<selectBranchs v-model="form.shopIdList" />
|
||||
</el-form-item>
|
||||
<el-form-item label="适用用户">
|
||||
<el-radio-group v-model="form.applicableUser">
|
||||
<el-radio label="全部用户" value="all"></el-radio>
|
||||
<el-radio label="仅限新用户" value="new"></el-radio>
|
||||
<el-radio label="仅会员(分店需开启超级会员可用)" value="vip"></el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="返现类型">
|
||||
<el-radio-group v-model="form.cashbackType">
|
||||
<el-radio label="按比例返现" value="percentage"></el-radio>
|
||||
<el-radio label="固定金额" value="fix"></el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="阶梯设置" prop="stepValidate">
|
||||
<div class="row">
|
||||
<div class="item border" v-for="(item, index) in form.cashbackStepList" :key="index">
|
||||
<div class="row_title">
|
||||
<span>{{ `第${index + 1}组` }}</span>
|
||||
<el-icon @click="form.cashbackStepList.splice(index, 1)">
|
||||
<Delete />
|
||||
</el-icon>
|
||||
</div>
|
||||
<div class="ipt">
|
||||
<div class="ipt_row">
|
||||
<span>返现门槛</span>
|
||||
<el-input placeholder="请输入返现门槛" :maxlength="8" v-model="item.amount"
|
||||
@input="e => item.amount = filterNumberInput(e)">
|
||||
<template #append>元</template>
|
||||
</el-input>
|
||||
</div>
|
||||
<div class="ipt_row">
|
||||
<span>{{ form.cashbackType == 'percentage' ? '返现比例' : '返现金额' }}</span>
|
||||
<el-input :maxlength="8"
|
||||
:placeholder="form.cashbackType == 'percentage' ? '请输入返现比例' : '请输入返现金额'"
|
||||
v-model="item.cashbackAmount" @input="e => item.cashbackAmount = filterNumberInput(e)">
|
||||
<template #append>
|
||||
{{ form.cashbackType == 'percentage' ? '%' : '元' }}
|
||||
</template>
|
||||
</el-input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item" v-if="shopInfo.isHeadShop == 1 || shopInfo.shopType == 'only'">
|
||||
<el-button type="primary" @click="addCashBackItem">添加阶梯</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<div v-if="shopInfo.isHeadShop == 1 || shopInfo.shopType == 'only'">
|
||||
<el-form-item style="margin-top: 50px;">
|
||||
<el-button type="primary" @click="submitHandle">保存</el-button>
|
||||
<el-button @click="router.back()">取消</el-button>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="返现明细" :name="2">
|
||||
<record />
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else>门店未参与消费返现或主店已关闭活动,如需开启参与请联系主店</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -182,6 +185,7 @@ function submitHandle() {
|
|||
}
|
||||
|
||||
// 配置信息获取
|
||||
const isUse = ref(false)
|
||||
async function consumeCashbackAjax() {
|
||||
try {
|
||||
const res = await consumeCashback()
|
||||
|
|
@ -189,6 +193,22 @@ async function consumeCashbackAjax() {
|
|||
res.cashbackStepList = []
|
||||
}
|
||||
form.value = res
|
||||
|
||||
if (res.isEnable == 1) {
|
||||
if (res.useType == 'all' || shopInfo.value.shopType == 'only') {
|
||||
isUse.value = true
|
||||
} else {
|
||||
let currentShopId = shopInfo.value.shopId;
|
||||
res.shopIdList.some((item) => {
|
||||
if (item == currentShopId) {
|
||||
isUse.value = true;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
} else {
|
||||
isUse.value = false
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -808,43 +808,43 @@ function convertTimeToDate(timeStr, options = {}) {
|
|||
// input过滤
|
||||
const time = 500;
|
||||
const discountNumInput = _.debounce(function (value) {
|
||||
form.value.discountNum = filterNumberInput(value, true);
|
||||
form.value.discountNum = filterNumberInput(value, 1);
|
||||
if (form.value.discountNum == "") {
|
||||
form.value.discountNum = 1;
|
||||
}
|
||||
}, time);
|
||||
|
||||
const discountRateInput = _.debounce(function (value) {
|
||||
form.value.discountRate = filterNumberInput(value, true);
|
||||
form.value.discountRate = filterNumberInput(value, 1);
|
||||
if (form.value.discountRate >= 100) {
|
||||
form.value.discountRate = 100;
|
||||
}
|
||||
}, time);
|
||||
|
||||
const validDaysInput = _.debounce(function (value) {
|
||||
form.value.validDays = filterNumberInput(value, true);
|
||||
form.value.validDays = filterNumberInput(value, 1);
|
||||
}, time);
|
||||
|
||||
const daysToTakeEffectInput = _.debounce(function (value) {
|
||||
form.value.daysToTakeEffect = filterNumberInput(value, true);
|
||||
form.value.daysToTakeEffect = filterNumberInput(value, 1);
|
||||
if (form.value.daysToTakeEffect === "") {
|
||||
form.value.daysToTakeEffect = 0;
|
||||
}
|
||||
}, time);
|
||||
|
||||
const giveNumInput = _.debounce(function (value) {
|
||||
form.value.giveNum = filterNumberInput(value, true);
|
||||
form.value.giveNum = filterNumberInput(value, 1);
|
||||
}, time);
|
||||
|
||||
const getLimitInput = _.debounce(function (value) {
|
||||
form.value.getLimit = filterNumberInput(value, true);
|
||||
form.value.getLimit = filterNumberInput(value, 1);
|
||||
if (form.value.getLimit == "") {
|
||||
form.value.getLimit = 1;
|
||||
}
|
||||
}, time);
|
||||
|
||||
const useLimitInput = _.debounce(function (value) {
|
||||
form.value.useLimit = filterNumberInput(value, true);
|
||||
form.value.useLimit = filterNumberInput(value, 1);
|
||||
if (form.value.useLimit >= form.value.getLimit) {
|
||||
form.value.useLimit = form.value.getLimit;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,36 +1,15 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-dialog
|
||||
v-model="dialogVisible"
|
||||
:title="titleOptions.title"
|
||||
width="80%"
|
||||
@closed="closedReset"
|
||||
>
|
||||
<el-form
|
||||
ref="formRef"
|
||||
:model="form"
|
||||
:rules="formRules"
|
||||
label-width="100px"
|
||||
class="dialog-form"
|
||||
>
|
||||
<el-dialog v-model="dialogVisible" :title="titleOptions.title" width="80%" @closed="closedReset">
|
||||
<el-form ref="formRef" :model="form" :rules="formRules" label-width="100px" class="dialog-form">
|
||||
<el-form-item label="赠券门槛" prop="fullAmount">
|
||||
<div class="center">
|
||||
<el-input
|
||||
v-model="form.fullAmount"
|
||||
placeholder="请输入赠券门槛"
|
||||
style="width: 240px"
|
||||
input-style="text-align: center;"
|
||||
@input="(e) => (form.fullAmount = filterNumberInput(e))"
|
||||
>
|
||||
<el-input v-model="form.fullAmount" placeholder="请输入赠券门槛" style="width: 240px"
|
||||
input-style="text-align: center;" @input="(e) => (form.fullAmount = filterNumberInput(e))">
|
||||
<template #prepend>满</template>
|
||||
<template #append>元</template>
|
||||
</el-input>
|
||||
<el-tooltip
|
||||
class="box-item"
|
||||
effect="dark"
|
||||
content="每单消费满此金额后赠送券 "
|
||||
placement="top-start"
|
||||
>
|
||||
<el-tooltip class="box-item" effect="dark" content="每单消费满此金额后赠送券 " placement="top-start">
|
||||
<el-icon size="18">
|
||||
<QuestionFilled />
|
||||
</el-icon>
|
||||
|
|
@ -39,17 +18,8 @@
|
|||
</el-form-item>
|
||||
<el-form-item label="优惠券" prop="coupon">
|
||||
<div class="center">
|
||||
<el-select
|
||||
v-model="couponGiftList"
|
||||
placeholder="请选择优惠券"
|
||||
style="width: 300px"
|
||||
>
|
||||
<el-option
|
||||
:label="item.title"
|
||||
:value="item.id"
|
||||
v-for="item in couponList"
|
||||
:key="item.id"
|
||||
/>
|
||||
<el-select v-model="couponGiftList" placeholder="请选择优惠券" style="width: 300px">
|
||||
<el-option :label="item.title" :value="item.id" v-for="item in couponList" :key="item.id" />
|
||||
</el-select>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
|
@ -70,46 +40,28 @@
|
|||
<span>关闭则为无限制</span>
|
||||
</div>
|
||||
<div v-if="infiniteGiveNum" style="margin-top: 10px">
|
||||
<el-input
|
||||
v-model="form.giveNum"
|
||||
placeholder="请输入总发放数量"
|
||||
style="width: 200px"
|
||||
input-style="text-align: center;"
|
||||
@input="giveNumInput"
|
||||
>
|
||||
<el-input v-model="form.giveNum" placeholder="请输入总发放数量" style="width: 200px"
|
||||
input-style="text-align: center;" @input="giveNumInput">
|
||||
<template #append>张</template>
|
||||
</el-input>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="每次赠送">
|
||||
<el-input
|
||||
v-model="couponGiveNum"
|
||||
placeholder="请输入"
|
||||
style="width: 200px"
|
||||
input-style="text-align: center;"
|
||||
@input="couponGiveNumInput"
|
||||
>
|
||||
<el-input v-model="couponGiveNum" placeholder="请输入" style="width: 200px" input-style="text-align: center;"
|
||||
@input="couponGiveNumInput">
|
||||
<template #append>张</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="每人限量" prop="getLimit">
|
||||
<div class="column">
|
||||
<div class="center">
|
||||
<el-switch
|
||||
v-model="infiniteUseLimit"
|
||||
@change="infiniteUseLimitChange"
|
||||
/>
|
||||
<el-switch v-model="infiniteUseLimit" @change="infiniteUseLimitChange" />
|
||||
<span>关闭则为无限制</span>
|
||||
</div>
|
||||
<div v-if="infiniteUseLimit" style="margin-top: 10px">
|
||||
<el-input
|
||||
v-model="form.getLimit"
|
||||
placeholder="请输入每人限量"
|
||||
style="width: 200px"
|
||||
input-style="text-align: center;"
|
||||
@input="getLimitInput"
|
||||
>
|
||||
<el-input v-model="form.getLimit" placeholder="请输入每人限量" style="width: 200px"
|
||||
input-style="text-align: center;" @input="getLimitInput">
|
||||
<template #append>张</template>
|
||||
</el-input>
|
||||
</div>
|
||||
|
|
@ -315,7 +267,7 @@ function resetHandle() {
|
|||
// 显示弹窗
|
||||
function show(t, obj = null) {
|
||||
console.log(obj);
|
||||
|
||||
|
||||
let m = titleOptions.couponTypeList.find((item) => item.value == t);
|
||||
if (obj && obj.id) {
|
||||
titleOptions.title = `编辑${m.label}`;
|
||||
|
|
@ -369,18 +321,18 @@ onMounted(() => {
|
|||
// input过滤
|
||||
const time = 500;
|
||||
const couponGiveNumInput = _.debounce(function (value) {
|
||||
couponGiveNum.value = filterNumberInput(value, true);
|
||||
couponGiveNum.value = filterNumberInput(value, 1);
|
||||
if (couponGiveNum.value == "") {
|
||||
couponGiveNum.value = 1;
|
||||
}
|
||||
}, time);
|
||||
|
||||
const giveNumInput = _.debounce(function (value) {
|
||||
form.value.giveNum = filterNumberInput(value, true);
|
||||
form.value.giveNum = filterNumberInput(value, 1);
|
||||
}, time);
|
||||
|
||||
const getLimitInput = _.debounce(function (value) {
|
||||
form.value.getLimit = filterNumberInput(value, true);
|
||||
form.value.getLimit = filterNumberInput(value, 1);
|
||||
}, time);
|
||||
|
||||
defineExpose({
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="gyq_content" v-else>
|
||||
门店未参券兑换码活动,如需开启参与请联系主店
|
||||
门店未参与券兑换码活动或主店未开启活动,如需开启参与请联系主店
|
||||
</div>
|
||||
<useShops ref="useShopsRef" />
|
||||
<add ref="addRef" @success="getTableData" />
|
||||
|
|
@ -168,20 +168,25 @@ async function rechargeRedemptionEnableStatusAjax() {
|
|||
const res = await couponRedemptionEnableStatus();
|
||||
queryForm.value.isEnable = res.isEnable;
|
||||
|
||||
if (shopInfo.value.shopType == 'only') {
|
||||
isUse.value = true
|
||||
} else {
|
||||
if (res.useType == 'all') {
|
||||
|
||||
if (res.isEnable == 1) {
|
||||
if (shopInfo.value.shopType == 'only') {
|
||||
isUse.value = true
|
||||
} else {
|
||||
let currentShopId = shopInfo.value.shopId;
|
||||
res.shopIdList.some((item) => {
|
||||
if (item == currentShopId) {
|
||||
isUse.value = true;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
if (res.useType == 'all') {
|
||||
isUse.value = true
|
||||
} else {
|
||||
let currentShopId = shopInfo.value.shopId;
|
||||
res.shopIdList.some((item) => {
|
||||
if (item == currentShopId) {
|
||||
isUse.value = true;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
} else {
|
||||
isUse.value = false;
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
|
|
|
|||
|
|
@ -419,7 +419,7 @@ function convertTimeToDate(timeStr, options = {}) {
|
|||
// input过滤
|
||||
const time = 500;
|
||||
const discountNumInput = _.debounce(function (value) {
|
||||
form.value.discountNum = filterNumberInput(value, true);
|
||||
form.value.discountNum = filterNumberInput(value, 1);
|
||||
if (form.value.discountNum == "") {
|
||||
form.value.discountNum = 1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -187,7 +187,7 @@ const form = ref({
|
|||
|
||||
// 折扣输入处理
|
||||
const discountRateInput = _.debounce(function (value) {
|
||||
form.value.discountRate = filterNumberInput(value, true);
|
||||
form.value.discountRate = filterNumberInput(value, 1);
|
||||
if (form.value.discountRate > 99) {
|
||||
form.value.discountRate = 99;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
<!-- 限时折扣 -->
|
||||
<template>
|
||||
|
||||
<div class="gyq_container">
|
||||
<div class="gyq_content">
|
||||
<HeaderCard name="限时折扣" intro="批量设置商品折扣" icon="xszk"></HeaderCard>
|
||||
|
|
|
|||
|
|
@ -347,6 +347,7 @@ async function distributionGetAjax() {
|
|||
const res = await distributionGet()
|
||||
nextTick(() => {
|
||||
form.value = { ...res }
|
||||
delete form.value.isEnable
|
||||
if (form.value.rewardCount == -1) {
|
||||
isLimitCount.value = 1
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
<template>
|
||||
<div class="gyq_container">
|
||||
<div class="gyq_content">
|
||||
<HeaderCard name="分销" intro="用户成为业务员,可促进消费" icon="xffx"
|
||||
:showSwitch="shopInfo.isHeadShop == 1 || shopInfo.shopType == 'only'" v-model:isOpen="form.isEnable">
|
||||
<HeaderCard name="分销" intro="用户成为业务员,可促进消费" icon="xffx" showSwitch v-model:isOpen="form.isEnable">
|
||||
</HeaderCard>
|
||||
<div class="row mt14">
|
||||
<tabHeader v-model="tabActiveIndex" :list="tabList" />
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="gyq_content" v-else>
|
||||
门店未参与霸王餐活动,如需开启参与请联系主店
|
||||
门店未参与霸王餐活动或主店未开启活动,如需开启参与请联系主店
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -138,20 +138,24 @@ async function freeDingGetAjax() {
|
|||
form.value = { ...res }
|
||||
form.value.enable = res.enable ? 1 : 0
|
||||
|
||||
if (shopInfo.value.shopType == 'only') {
|
||||
isUse.value = true
|
||||
} else {
|
||||
if (res.useType == 'all') {
|
||||
if (res.enable == true) {
|
||||
if (shopInfo.value.shopType == 'only') {
|
||||
isUse.value = true
|
||||
} else {
|
||||
let currentShopId = shopInfo.value.shopId;
|
||||
res.shopIdList.some((item) => {
|
||||
if (item == currentShopId) {
|
||||
isUse.value = true;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
if (res.useType == 'all') {
|
||||
isUse.value = true
|
||||
} else {
|
||||
let currentShopId = shopInfo.value.shopId;
|
||||
res.shopIdList.some((item) => {
|
||||
if (item == currentShopId) {
|
||||
isUse.value = true;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
} else {
|
||||
isUse.value = false
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
|
|
|
|||
|
|
@ -3,25 +3,15 @@
|
|||
<el-dialog title="添加方案" v-model="show" @closed="reset" width="730px">
|
||||
<el-form ref="formRef" :model="form" :rules="rules" label-width="120px">
|
||||
<el-form-item label="减免金额" prop="amount">
|
||||
<el-input
|
||||
v-model="form.amount"
|
||||
placeholder="请输入减免金额"
|
||||
style="width: 270px"
|
||||
:maxlength="8"
|
||||
@input="amountInput"
|
||||
>
|
||||
<el-input v-model="form.amount" placeholder="请输入减免金额" style="width: 270px" :maxlength="8"
|
||||
@input="amountInput">
|
||||
<template #append>元</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="概率" prop="probability">
|
||||
<div class="column">
|
||||
<div class="item">
|
||||
<el-input
|
||||
v-model="form.probability"
|
||||
placeholder="请输入概率"
|
||||
style="width: 270px"
|
||||
@input="probabilityInput"
|
||||
>
|
||||
<el-input v-model="form.probability" placeholder="请输入概率" style="width: 270px" @input="probabilityInput">
|
||||
<template #append>%</template>
|
||||
</el-input>
|
||||
</div>
|
||||
|
|
@ -63,7 +53,7 @@ const amountInput = _.debounce(function (value) {
|
|||
form.value.amount = filterNumberInput(value);
|
||||
}, time);
|
||||
const probabilityInput = _.debounce(function (value) {
|
||||
form.value.probability = filterNumberInput(value, true);
|
||||
form.value.probability = filterNumberInput(value, 1);
|
||||
if (form.value.probability >= 100) {
|
||||
form.value.probability = 100;
|
||||
}
|
||||
|
|
@ -162,6 +152,7 @@ function filterNumberInput(value, isIntegerOnly = false) {
|
|||
.column {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.item {
|
||||
flex: 1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="gyq_content" v-else>
|
||||
门店未参与充值兑换码活动,如需开启参与请联系主店
|
||||
门店未参与充值兑换码活动或主店未开启活动,如需开启参与请联系主店
|
||||
</div>
|
||||
<useShops ref="useShopsRef" />
|
||||
<add ref="addRef" @success="getTableData" />
|
||||
|
|
@ -150,20 +150,24 @@ async function rechargeRedemptionEnableStatusAjax() {
|
|||
const res = await rechargeRedemptionEnableStatus();
|
||||
queryForm.value.isEnable = res.isEnable;
|
||||
|
||||
if (shopInfo.value.shopType == 'only') {
|
||||
isUse.value = true
|
||||
} else {
|
||||
if (res.useType == 'all') {
|
||||
if (res.isEnable == 1) {
|
||||
if (shopInfo.value.shopType == 'only') {
|
||||
isUse.value = true
|
||||
} else {
|
||||
let currentShopId = shopInfo.value.shopId;
|
||||
res.shopIdList.some((item) => {
|
||||
if (item == currentShopId) {
|
||||
isUse.value = true;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
if (res.useType == 'all') {
|
||||
isUse.value = true
|
||||
} else {
|
||||
let currentShopId = shopInfo.value.shopId;
|
||||
res.shopIdList.some((item) => {
|
||||
if (item == currentShopId) {
|
||||
isUse.value = true;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
} else {
|
||||
isUse.value = false
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
|
|
|
|||
|
|
@ -247,7 +247,7 @@
|
|||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
<div style="padding-top: 14px;" v-else>门店未参券兑换码活动,如需开启参与请联系主店</div>
|
||||
<div style="padding-top: 14px;" v-else>门店未参与超级会员活动或主店未开启活动,如需开启参与请联系主店</div>
|
||||
<DialogPlans ref="refDialogPlans" @submitSuccess="submitSuccess"></DialogPlans>
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -528,16 +528,20 @@ async function init() {
|
|||
});
|
||||
console.log(conditionLists.value);
|
||||
|
||||
if (res.useType == 'all' || shopInfo.value.shopType == 'only') {
|
||||
isUse.value = true
|
||||
if (res.isOpen == 1) {
|
||||
if (res.memberPriceShopType == 'ALL' || shopInfo.value.shopType == 'only') {
|
||||
isUse.value = true
|
||||
} else {
|
||||
let currentShopId = shopInfo.value.shopId;
|
||||
res.memberPriceShopIdList.some((item) => {
|
||||
if (item == currentShopId) {
|
||||
isUse.value = true;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
} else {
|
||||
let currentShopId = shopInfo.value.shopId;
|
||||
res.memberPriceShopIdList.some((item) => {
|
||||
if (item == currentShopId) {
|
||||
isUse.value = true;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
isUse.value = false;
|
||||
}
|
||||
});
|
||||
memberApi.levelList().then((res) => {
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@
|
|||
</el-tabs>
|
||||
</div>
|
||||
</div>
|
||||
<div class="gyq_content err" v-else>门店未参与充值活动,如需开启参与请联系主店</div>
|
||||
<div class="gyq_content err" v-else>门店未参与智慧充值活动,如需开启参与请联系主店</div>
|
||||
<AddDialog ref="AddDialogRef" :couponList="couponList" @success="addSuccess" />
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
Loading…
Reference in New Issue