This commit is contained in:
2024-11-19 09:26:58 +08:00
8 changed files with 128 additions and 38 deletions

View File

@@ -5,7 +5,7 @@
<el-input v-model="searhForm.name" placeholder="商品名称"></el-input> <el-input v-model="searhForm.name" placeholder="商品名称"></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-select v-model="searhForm.category" placeholder="商品分类"> <el-select v-model="searhForm.category" placeholder="商品分类" :disabled="disableCategory">
<el-option :label="item.name" :value="item.id" v-for="item in categoryList" <el-option :label="item.name" :value="item.id" v-for="item in categoryList"
:key="item.id"></el-option> :key="item.id"></el-option>
</el-select> </el-select>
@@ -75,6 +75,11 @@
import { tbShopCategoryGet, tbProduct } from "@/api/shop"; import { tbShopCategoryGet, tbProduct } from "@/api/shop";
export default { export default {
props: { props: {
// 是否禁用分类
disableCategory: {
type: Boolean,
default: false
},
// 是否为单选 // 是否为单选
radio: { radio: {
type: Boolean, type: Boolean,

View File

@@ -80,6 +80,9 @@
<el-button type="primary" @click="addRewardHandle('rewardCoupons')">添加券</el-button> <el-button type="primary" @click="addRewardHandle('rewardCoupons')">添加券</el-button>
</el-form-item> </el-form-item>
<el-form-item prop="rewardCoupons"> <el-form-item prop="rewardCoupons">
<div>
<div class="tips">奖励券不受优惠券发放数量影响</div>
</div>
<el-table :data="form.rewardCoupons" border style="width: 600px;"> <el-table :data="form.rewardCoupons" border style="width: 600px;">
<el-table-column label="券ID" prop="couponId"></el-table-column> <el-table-column label="券ID" prop="couponId"></el-table-column>
<el-table-column label="名称" prop="couponName"></el-table-column> <el-table-column label="名称" prop="couponName"></el-table-column>

View File

@@ -26,7 +26,7 @@
<span class="t">{{ shopInfo.name }}</span> <span class="t">{{ shopInfo.name }}</span>
</div> </div>
<div class="title">{{ form.title }}</div> <div class="title">{{ form.title }}</div>
<el-image :src="form.shareImg" style="width: 100%;height: 130px;" fit="cover"> <el-image :src="form.shareImg" style="width: 100%;height: 110px;" fit="cover">
<div slot="error" class="image-slot"> <div slot="error" class="image-slot">
<i class="el-icon-folder-delete"></i> <i class="el-icon-folder-delete"></i>
</div> </div>
@@ -323,7 +323,7 @@ export default {
} }
.preview_wrap { .preview_wrap {
width: 328px; width: 300px;
height: 368px; height: 368px;
background-color: #EDEDED; background-color: #EDEDED;
position: relative; position: relative;
@@ -337,10 +337,24 @@ export default {
display: flex; display: flex;
.content { .content {
width: 200px; width: 180px;
background-color: #fff; background-color: #fff;
border-radius: 4px; border-radius: 4px;
padding: 10px 10px 6px; padding: 10px 10px 6px;
position: relative;
&::before {
$size: 8px;
content: "";
width: $size;
height: $size;
border-radius: 1px;
background-color: #fff;
position: absolute;
top: 10px;
right: $size / 2 * -1;
transform: rotate(-45deg);
}
.name { .name {
display: flex; display: flex;
@@ -360,6 +374,10 @@ export default {
} }
} }
.title {
font-size: 12px;
}
.btm { .btm {
font-size: 10px; font-size: 10px;
color: #999; color: #999;
@@ -378,8 +396,8 @@ export default {
} }
.avatar { .avatar {
width: 40px; width: 30px;
height: 40px; height: 30px;
margin-left: 10px; margin-left: 10px;
} }
} }
@@ -412,13 +430,13 @@ export default {
.ipt { .ipt {
flex: 1; flex: 1;
height: 36px; height: 30px;
background-color: #fff; background-color: #fff;
border-radius: 4px; border-radius: 4px;
} }
.icon { .icon {
font-size: 28px; font-size: 22px;
color: #333; color: #333;
} }
} }

View File

@@ -24,7 +24,7 @@ export default {
}, },
data() { data() {
return { return {
activeName: '2' activeName: '1'
} }
}, },
methods: {} methods: {}

View File

@@ -10,14 +10,14 @@
<el-form-item label="优惠券券名" prop="title" style="width: 100%;"> <el-form-item label="优惠券券名" prop="title" style="width: 100%;">
<el-input v-model="form.title" placeholder="" style="width: 289px;" /> <el-input v-model="form.title" placeholder="" style="width: 289px;" />
</el-form-item> </el-form-item>
<el-form-item label="使用门槛" prop="fullAmount"> <el-form-item v-if="form.type == 1" label="使用门槛" prop="fullAmount">
<el-input v-model="form.fullAmount" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" placeholder="" style="width: 180px;margin-right: 66px;"> <el-input v-model="form.fullAmount" oninput="value= value.replace(/[^\d|\.]/g, '')" placeholder="" style="width: 180px;margin-right: 66px;">
<template slot="prepend"></template> <template slot="prepend"></template>
<template slot="append"></template> <template slot="append"></template>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="" prop="discountAmount"> <el-form-item v-if="form.type == 1" label="" prop="discountAmount">
<el-input v-model="form.discountAmount" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" placeholder="" style="width: 180px;"> <el-input v-model="form.discountAmount" oninput="value= value.replace(/[^\d|\.]/g, '')" placeholder="" style="width: 180px;">
<template slot="prepend"></template> <template slot="prepend"></template>
<template slot="append"></template> <template slot="append"></template>
</el-input> </el-input>
@@ -29,6 +29,11 @@
</el-radio> </el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item v-if="form.validityType == 'fixed'" label="有效期(天)" prop="validDays" style="width: 100%;">
<el-input v-model="form.validDays" placeholder="" style="width: 200px;">
<template slot="append"></template>
</el-input>
</el-form-item>
<el-form-item v-if="form.validityType == 'custom'" label="有效时间" prop="validEndTime" style="width: 100%;"> <el-form-item v-if="form.validityType == 'custom'" label="有效时间" prop="validEndTime" style="width: 100%;">
<el-date-picker <el-date-picker
v-model="validityTime" v-model="validityTime"
@@ -41,11 +46,6 @@
@change="validityChange" @change="validityChange"
/> />
</el-form-item> </el-form-item>
<el-form-item label="有效期(天)" prop="validDays" style="width: 100%;">
<el-input v-model="form.validDays" placeholder="" style="width: 200px;">
<template slot="append"></template>
</el-input>
</el-form-item>
<!-- <el-form-item label="使用门槛" prop="daysToTakeEffect" style="width: 100%;"> <!-- <el-form-item label="使用门槛" prop="daysToTakeEffect" style="width: 100%;">
<el-input v-model="form.daysToTakeEffect" placeholder="" style="width: 200px;"> <el-input v-model="form.daysToTakeEffect" placeholder="" style="width: 200px;">
<template slot="prepend"></template> <template slot="prepend"></template>
@@ -87,25 +87,81 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button> <!-- <el-button @click="dialogVisible = false"> </el-button> -->
<el-button type="primary" :loading="loading" @click="onSubmitHandle"> </el-button> <el-button type="primary" :loading="loading" @click="onSubmitHandle"> </el-button>
</span> </span>
</div> </div>
<!-- 商品券 --> <div v-if="form.type == 2">
<div v-if="form.type == 2" class="content">
<el-form ref="form" :model="form" :rules="rules" label-width="120px" label-position="left"> <el-form ref="form" :model="form" :rules="rules" label-width="120px" label-position="left">
<el-form-item label="商品券券名" prop="title"> <el-form-item label="优惠券券名" prop="title" style="width: 100%;">
<el-input v-model="form.title" placeholder="" style="width: 289px;" /> <el-input v-model="form.title" placeholder="" style="width: 289px;" />
</el-form-item> </el-form-item>
<el-form-item label="发放数量" prop="number"> <el-form-item label="使用门槛" prop="fullAmount">
<el-input v-model="form.number" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" placeholder="" style="width: 289px;" /> 全额满<el-input v-model="form.fullAmount" oninput="value= value.replace(/[^\d|\.]/g, '')" placeholder="" style="width: 100px;margin: 0 23px;"><template slot="suffix"></template></el-input>可用
</el-form-item>
<el-form-item label="有效期类型" style="width: 100%;">
<el-radio-group v-model="form.validityType">
<el-radio v-for="item in couponEnum.validityType" :key="item.value" :label="item.value">
{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.validityType == 'fixed'" label="有效期(天)" prop="validDays" style="width: 100%;">
<el-input v-model="form.validDays" placeholder="" style="width: 200px;">
<template slot="append"></template>
</el-input>
</el-form-item>
<el-form-item v-if="form.validityType == 'custom'" label="有效时间" prop="validEndTime" style="width: 100%;">
<el-date-picker
v-model="validityTime"
type="daterange"
range-separator=""
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="['06:00:00', '23:59:59']"
value-format="yyyy-MM-dd HH:mm:ss"
@change="validityChange"
/>
</el-form-item>
<!-- <el-form-item label="使用门槛" prop="daysToTakeEffect" style="width: 100%;">
<el-input v-model="form.daysToTakeEffect" placeholder="" style="width: 200px;">
<template slot="prepend"></template>
<template slot="append">天生效</template>
</el-input>
<el-tooltip class="item" effect="dark" content="领取后0天后0点0分" placement="top-start">
<i class="el-icon-question" />
</el-tooltip>
</el-form-item> -->
<el-form-item label="可用周期" prop="userDays" style="width: 100%;">
<el-checkbox-group v-model="form.userDays">
<el-checkbox v-for="(city,index) in couponEnum.cycle" :key="index" :label="city.label" @change="userDayChagne">{{ city.label }}</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="指定时间段" style="width: 100%;">
<el-radio-group v-model="form.useTimeType">
<el-radio v-for="item in couponEnum.useTimeType" :key="item.value" :label="item.value">
{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.useTimeType == 'custom'" label="指定时间段" prop="useEndTime" style="width: 100%;">
<el-time-picker
v-model="useTime"
is-range
range-separator=""
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']"
value-format="HH:mm"
@change="useTimeChange"
/>
</el-form-item>
<el-form-item label="发放数量" prop="number" style="width: 100%;">
<el-input v-model="form.number" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" placeholder="" style="width: 200px;" />
<el-tooltip class="item" effect="dark" content="限用户自行领取,(当库存为 0时集草等活动仍会赠送" placement="top-start"> <el-tooltip class="item" effect="dark" content="限用户自行领取,(当库存为 0时集草等活动仍会赠送" placement="top-start">
<i class="el-icon-question" /> <i class="el-icon-question" />
</el-tooltip> </el-tooltip>
</el-form-item> </el-form-item>
<el-form-item label="使用门槛" prop="fullAmount">
全额满<el-input v-model="form.fullAmount" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" placeholder="" style="width: 100px;margin: 0 23px;"><template slot="suffix"></template></el-input>可用
</el-form-item>
<el-form-item label="赠送商品" prop="products"> <el-form-item label="赠送商品" prop="products">
<div> <div>
<el-button type="primary" icon="el-icon-plus" @click="$refs.shopListRef.show([...form.products])"> <el-button type="primary" icon="el-icon-plus" @click="$refs.shopListRef.show([...form.products])">
@@ -123,10 +179,9 @@
</div> </div>
</div> </div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button> <!-- <el-button @click="dialogVisible = false"> </el-button> -->
<el-button type="primary" :loading="loading" @click="onSubmitHandle"> </el-button> <el-button type="primary" :loading="loading" @click="onSubmitHandle"> </el-button>
</span> </span>
</div> </div>
@@ -266,6 +321,7 @@ export default {
*/ */
tabClick(item) { tabClick(item) {
console.log(this.form) console.log(this.form)
this.form = this.resetForm
this.form.number = '' this.form.number = ''
this.form.type = item.type this.form.type = item.type
this.$refs.form.resetFields() this.$refs.form.resetFields()

View File

@@ -46,7 +46,7 @@
<el-button type="primary" :loading="loading" @click="submitHandle"> </el-button> <el-button type="primary" :loading="loading" @click="submitHandle"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<shopList ref="shopList" radio @success="selectConfirmGoods" /> <shopList ref="shopList" disableCategory radio @success="selectConfirmGoods" />
</div> </div>
</template> </template>

View File

@@ -38,8 +38,9 @@
<el-table-column label="赠送积分" prop="giftPoints"></el-table-column> <el-table-column label="赠送积分" prop="giftPoints"></el-table-column>
<el-table-column label="是否使用优惠券" prop="isUseCoupon"> <el-table-column label="是否使用优惠券" prop="isUseCoupon">
<template v-slot="scope"> <template v-slot="scope">
<el-switch v-model="scope.row.isUseCoupon" :active-value="1" :inactive-value="0" <!-- <el-switch v-model="scope.row.isUseCoupon" :active-value="1" :inactive-value="0"
@change="statusChange($event, scope.row)"></el-switch> @change="statusChange($event, scope.row)" disabled></el-switch> -->
{{ scope.row.isUseCoupon == 1 ? '是':'否'}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" width="120"> <el-table-column label="操作" width="120">

View File

@@ -5,12 +5,14 @@
<el-form-item label="充值"> <el-form-item label="充值">
<template> <template>
<div style="display: flex;"> <div style="display: flex;">
<el-input style="width: 220px;" placeholder="请输入金额" v-model="form.amount"> <el-input style="width: 220px;" placeholder="请输入金额" v-model="form.amount"
@input="(v) => (form.amount = v.replace(/^(0+)|[^\d]+/g, ''))">
<template slot="prepend"></template> <template slot="prepend"></template>
<template slot="append"></template> <template slot="append"></template>
</el-input> </el-input>
<el-input style="margin-left: 20px; width: 220px;" placeholder="请输入金额" <el-input style="margin-left: 20px; width: 220px;" placeholder="请输入金额"
v-model="form.giftAmount"> v-model="form.giftAmount"
@input="(v) => (form.giftAmount = v.replace(/^(0+)|[^\d]+/g, ''))">
<template slot="prepend"></template> <template slot="prepend"></template>
<template slot="append"></template> <template slot="append"></template>
</el-input> </el-input>
@@ -38,7 +40,7 @@
</el-form-item> --> </el-form-item> -->
<el-form-item label="是否使用优惠券"> <el-form-item label="是否使用优惠券">
<el-switch v-model="form.isUseCoupon" :active-value="1" :inactive-value="0"></el-switch> <el-switch v-model="form.isUseCoupon" :active-value="1" :inactive-value="0"></el-switch>
</el-form-item> </el-form-item>
<el-form-item label="数量"> <el-form-item label="数量">
<el-input-number v-model="form.num" controls-position="right" :min="1"></el-input-number> <el-input-number v-model="form.num" controls-position="right" :min="1"></el-input-number>
@@ -176,6 +178,10 @@ export default {
return false; return false;
} }
this.form.couponId = this.productIds[0].id this.form.couponId = this.productIds[0].id
} else {
this.form.couponId = ''
this.form.couponName = ''
this.productIds = []
} }
// let arr = [] // let arr = []
// this.productIds.forEach(ele => { // this.productIds.forEach(ele => {
@@ -206,14 +212,15 @@ export default {
}) })
}, },
async show(obj) { async show(obj) {
this.productIds = []
this.dialogVisible = true this.dialogVisible = true
if (obj && obj.id) { if (obj && obj.id) {
this.form = { ...obj } this.form = { ...obj }
// 留着以后说不定多个优惠劵
// let res = await activate(obj.id) // let res = await activate(obj.id)
// this.productIds = res // this.productIds = res
if (obj.couponName) { if (obj.couponId) {
this.productIds = [{ title: obj.couponName }] this.productIds = [{ title: obj.couponName,id:obj.couponId }]
} }
console.log(obj, '调试1') console.log(obj, '调试1')
} }