add: 修复

This commit is contained in:
gyq
2025-09-29 09:05:52 +08:00
parent 37a61e5c79
commit 610410afa6

View File

@@ -1,23 +1,11 @@
<template> <template>
<div class="gyq_container"> <div class="gyq_container">
<div class="gyq_content"> <div class="gyq_content">
<HeaderCard <HeaderCard name="智慧充值" intro="允许客户充值并使用余额支付" icon="zhcz" showSwitch v-model:isOpen="form.isEnable"></HeaderCard>
name="智慧充值"
intro="允许客户充值并使用余额支付"
icon="zhcz"
showSwitch
v-model:isOpen="form.isEnable"
></HeaderCard>
<div style="padding-top: 14px"> <div style="padding-top: 14px">
<el-tabs v-model="tabsValue"> <el-tabs v-model="tabsValue">
<el-tab-pane label="基础设置" :name="1"> <el-tab-pane label="基础设置" :name="1">
<el-form <el-form ref="formRef" :model="form" :rules="rules" label-width="120" label-position="right">
ref="formRef"
:model="form"
:rules="rules"
label-width="120"
label-position="right"
>
<el-form-item label="充值面额" required> <el-form-item label="充值面额" required>
<el-button type="primary" @click="AddDialogRef.open()"> <el-button type="primary" @click="AddDialogRef.open()">
添加面额 添加面额
@@ -26,18 +14,9 @@
<el-form-item prop="rechargeDetailList"> <el-form-item prop="rechargeDetailList">
<el-table :data="form.rechargeDetailList" border stripe> <el-table :data="form.rechargeDetailList" border stripe>
<el-table-column label="ID" prop="id"></el-table-column> <el-table-column label="ID" prop="id"></el-table-column>
<el-table-column <el-table-column label="充值金额(元)" prop="amount"></el-table-column>
label="充值金额(元)" <el-table-column label="赠送金额" prop="rewardAmount"></el-table-column>
prop="amount" <el-table-column label="赠送积分" prop="rewardPoints"></el-table-column>
></el-table-column>
<el-table-column
label="赠送金额"
prop="rewardAmount"
></el-table-column>
<el-table-column
label="赠送积分"
prop="rewardPoints"
></el-table-column>
<el-table-column label="赠送优惠券" prop="couponInfoList"> <el-table-column label="赠送优惠券" prop="couponInfoList">
<template #default="scope"> <template #default="scope">
<div class="column"> <div class="column">
@@ -53,60 +32,34 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" width="120"> <el-table-column label="操作" width="120">
<template #default="scope"> <template #default="scope">
<el-button <el-button type="primary" link @click="AddDialogRef.open(scope.row, scope.$index)">
type="primary"
link
@click="AddDialogRef.open(scope.row, scope.$index)"
>
编辑 编辑
</el-button> </el-button>
<el-button <el-button type="danger" link @click="
type="danger" form.rechargeDetailList.splice(scope.$index, 1)
link ">
@click="
form.rechargeDetailList.splice(scope.$index, 1)
"
>
删除 删除
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="选择门店" prop="useType" v-if="shopInfo.isHeadShop">
label="选择门店"
prop="useType"
v-if="shopInfo.isHeadShop"
>
<el-radio-group v-model="form.useType"> <el-radio-group v-model="form.useType">
<el-radio label="全部门店" value="all"></el-radio> <el-radio label="全部门店" value="all"></el-radio>
<el-radio label="指定门店可用" value="part"></el-radio> <el-radio label="指定门店可用" value="part"></el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="选择门店" v-if="form.useType == 'part'"> <el-form-item label="选择门店" v-if="form.useType == 'part'">
<el-select <el-select v-model="form.shopIdList" multiple clearable placeholder="请选择门店" style="width: 300px">
v-model="form.shopIdList" <el-option :label="item.shopName" :value="item.id" v-for="item in branchList"
multiple :key="item.id"></el-option>
clearable
placeholder="请选择门店"
style="width: 300px"
>
<el-option
:label="item.shopName"
:value="item.id"
v-for="item in branchList"
:key="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="自定义金额"> <el-form-item label="自定义金额">
<div class="column"> <div class="column">
<div class="center"> <div class="center">
<el-switch <el-switch v-model="form.isCustom" :active-value="1" :inactive-value="0" />
v-model="form.isCustom"
:active-value="1"
:inactive-value="0"
/>
<span class="tips">自定义金额不参与赠送优惠</span> <span class="tips">自定义金额不参与赠送优惠</span>
</div> </div>
</div> </div>
@@ -114,11 +67,7 @@
<el-form-item label="充值并下单"> <el-form-item label="充值并下单">
<div class="column"> <div class="column">
<div class="center"> <div class="center">
<el-switch <el-switch v-model="form.isOrder" :active-value="1" :inactive-value="0" />
v-model="form.isOrder"
:active-value="1"
:inactive-value="0"
/>
<span class="tips">开启后订单支付页面显示充值选项</span> <span class="tips">开启后订单支付页面显示充值选项</span>
</div> </div>
</div> </div>
@@ -126,13 +75,8 @@
<el-form-item label="充值说明" prop="remark"> <el-form-item label="充值说明" prop="remark">
<div class="column"> <div class="column">
<div class="item"> <div class="item">
<el-input <el-input type="textarea" :rows="4" :maxlength="250" v-model="form.remark"
type="textarea" placeholder="填写内容"></el-input>
:rows="4"
:maxlength="250"
v-model="form.remark"
placeholder="填写内容"
></el-input>
</div> </div>
<div class="item textarea-num"> <div class="item textarea-num">
{{ form.remark.length }}/250字内单文本 {{ form.remark.length }}/250字内单文本
@@ -170,46 +114,46 @@ const AddDialogRef = ref(null);
const tabsValue = ref(1); const tabsValue = ref(1);
const formRef = ref(null); const formRef = ref(null);
const form = ref({ const form = ref({
isEnable: 1, isEnable: 1,
id: "", id: "",
shopIdList: "", shopIdList: "",
useType: "all", useType: "all",
isCustom: 0, isCustom: 0,
isOrder: 0, isOrder: 0,
remark: "", remark: "",
rechargeDetailList: [], rechargeDetailList: [],
}); });
const rules = ref({ const rules = ref({
rechargeDetailList: [ rechargeDetailList: [
{ {
validator: (rule, value, callback) => { validator: (rule, value, callback) => {
if (form.value.rechargeDetailList.length == 0) { if (form.value.rechargeDetailList.length == 0) {
callback(new Error("请添加面额")); callback(new Error("请添加面额"));
} else { } else {
callback(); callback();
} }
}, },
trigger: "change", trigger: "change",
}, },
], ],
remark: [{ required: true, message: "请输入充值说明", trigger: "blur" }], remark: [{ required: true, message: "请输入充值说明", trigger: "blur" }],
}); });
function submitHandle() { function submitHandle() {
formRef.value.validate(async (valid) => { formRef.value.validate(async (valid) => {
try { try {
if (valid) { if (valid) {
await shopRecharge(form.value); await shopRecharge(form.value);
ElNotification({ ElNotification({
title: "注意", title: "注意",
message: "保存成功", message: "保存成功",
type: "success", type: "success",
}); });
} }
} catch (err) { } catch (err) {
console.log(err); console.log(err);
} }
}); });
} }
// 点前登录店铺信息 // 点前登录店铺信息
@@ -218,124 +162,122 @@ const shopInfo = ref("");
// 获取分店列表 // 获取分店列表
const branchList = ref([]); const branchList = ref([]);
async function getBranchPageAjax() { async function getBranchPageAjax() {
try { try {
const res = await getBranchPage(); const res = await getBranchPage();
branchList.value = res.records; branchList.value = res.records;
} catch (err) { } catch (err) {
console.log(err); console.log(err);
} }
} }
function addSuccess(data) { function addSuccess(data) {
console.log("addSuccess===", data); console.log("addSuccess===", data);
if (data.index == null) { if (data.index == null) {
form.value.rechargeDetailList.push(data.data); form.value.rechargeDetailList.push(data.data);
} else { } else {
form.value.rechargeDetailList[data.index] = data.data; form.value.rechargeDetailList[data.index] = data.data;
} }
} }
// 获取优惠券列表 // 获取优惠券列表
const couponList = ref([]); const couponList = ref([]);
async function couponPageAjax() { async function couponPageAjax() {
try { try {
const res = await couponPage({ const res = await couponPage({
page: 1, page: 1,
size: 500, size: 500,
}); });
couponList.value = res.records; couponList.value = res.records;
} catch (err) { } catch (err) {
console.log(err); console.log(err);
} }
} }
// 用id寻找优惠券名称 // 用id寻找优惠券名称
function couponListFilter(id) { function couponListFilter(id) {
if (id) { if (id) {
let obj = couponList.value.find((item) => item.id == id); let obj = couponList.value.find((item) => item.id == id);
return obj.title; return obj.title;
} else { } else {
return ""; return "";
} }
} }
// 从本地获取商户信息 // 从本地获取商户信息
function getLocalShopInfo() { function getLocalShopInfo() {
shopInfo.value = JSON.parse(localStorage.getItem("userInfo")); shopInfo.value = JSON.parse(localStorage.getItem("userInfo"));
} }
function back() { function back() {
router.back(); router.back();
} }
// 配置信息获取 // 配置信息获取
async function shopRechargeGetAjax() { async function shopRechargeGetAjax() {
try { try {
const res = await shopRechargeGet(); const res = await shopRechargeGet();
res.rechargeDetailList.map((item) => { res.rechargeDetailList.map((item) => {
item.couponInfoList.map((val) => { item.couponInfoList.map((val) => {
val.id = val.coupon ? val.coupon.id : null; val.id = val.coupon ? val.coupon.id : null;
}); });
}); });
form.value = res; form.value = res;
console.log(form.value); console.log(form.value);
} catch (err) { } catch (err) {
console.log(err); console.log(err);
} }
} }
onMounted(async () => { onMounted(async () => {
await couponPageAjax(); await couponPageAjax();
getLocalShopInfo(); getLocalShopInfo();
getBranchPageAjax(); getBranchPageAjax();
shopRechargeGetAjax(); shopRechargeGetAjax();
}); });
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
<<<<<<< HEAD
.gyq_container { .gyq_container {
padding: 14px; padding: 14px;
.gyq_content { .gyq_content {
padding: 14px; padding: 14px;
background-color: #fff; background-color: #fff;
border-radius: 8px; border-radius: 8px;
} }
=======
.container {
padding: 14px;
.content {
padding: 14px;
background-color: #fff;
border-radius: 8px;
}
>>>>>>> b5635f70ae9ce11a8b36341d218349454a0f5e88
} }
.column { .column {
flex: 1; flex: 1;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 8px; gap: 8px;
.item {
flex: 1; .item {
} flex: 1;
}
} }
.center { .center {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 10px; gap: 10px;
} }
.tips { .tips {
color: #666; color: #666;
} }
.footer { .footer {
display: flex; display: flex;
justify-content: center; justify-content: center;
} }
.textarea-num { .textarea-num {
color: #999; color: #999;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
} }
</style> </style>