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-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"
:key="item.id"></el-option>
</el-select>
@@ -75,6 +75,11 @@
import { tbShopCategoryGet, tbProduct } from "@/api/shop";
export default {
props: {
// 是否禁用分类
disableCategory: {
type: Boolean,
default: false
},
// 是否为单选
radio: {
type: Boolean,

View File

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

View File

@@ -26,7 +26,7 @@
<span class="t">{{ shopInfo.name }}</span>
</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">
<i class="el-icon-folder-delete"></i>
</div>
@@ -323,7 +323,7 @@ export default {
}
.preview_wrap {
width: 328px;
width: 300px;
height: 368px;
background-color: #EDEDED;
position: relative;
@@ -337,10 +337,24 @@ export default {
display: flex;
.content {
width: 200px;
width: 180px;
background-color: #fff;
border-radius: 4px;
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 {
display: flex;
@@ -360,6 +374,10 @@ export default {
}
}
.title {
font-size: 12px;
}
.btm {
font-size: 10px;
color: #999;
@@ -378,8 +396,8 @@ export default {
}
.avatar {
width: 40px;
height: 40px;
width: 30px;
height: 30px;
margin-left: 10px;
}
}
@@ -412,13 +430,13 @@ export default {
.ipt {
flex: 1;
height: 36px;
height: 30px;
background-color: #fff;
border-radius: 4px;
}
.icon {
font-size: 28px;
font-size: 22px;
color: #333;
}
}

View File

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

View File

@@ -10,14 +10,14 @@
<el-form-item label="优惠券券名" prop="title" style="width: 100%;">
<el-input v-model="form.title" placeholder="" style="width: 289px;" />
</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: 180px;margin-right: 66px;">
<el-form-item v-if="form.type == 1" label="使用门槛" prop="fullAmount">
<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="append"></template>
</el-input>
</el-form-item>
<el-form-item label="" prop="discountAmount">
<el-input v-model="form.discountAmount" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" placeholder="" style="width: 180px;">
<el-form-item v-if="form.type == 1" label="" prop="discountAmount">
<el-input v-model="form.discountAmount" oninput="value= value.replace(/[^\d|\.]/g, '')" placeholder="" style="width: 180px;">
<template slot="prepend"></template>
<template slot="append"></template>
</el-input>
@@ -29,6 +29,11 @@
</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"
@@ -41,11 +46,6 @@
@change="validityChange"
/>
</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-input v-model="form.daysToTakeEffect" placeholder="" style="width: 200px;">
<template slot="prepend"></template>
@@ -87,25 +87,81 @@
</el-form-item>
</el-form>
<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>
</span>
</div>
<!-- 商品券 -->
<div v-if="form.type == 2" class="content">
<div v-if="form.type == 2">
<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-form-item>
<el-form-item label="发放数量" prop="number">
<el-input v-model="form.number" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" placeholder="" style="width: 289px;" />
<el-form-item label="使用门槛" prop="fullAmount">
全额满<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">
<i class="el-icon-question" />
</el-tooltip>
</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">
<div>
<el-button type="primary" icon="el-icon-plus" @click="$refs.shopListRef.show([...form.products])">
@@ -123,10 +179,9 @@
</div>
</div>
</el-form-item>
</el-form>
<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>
</span>
</div>
@@ -266,6 +321,7 @@ export default {
*/
tabClick(item) {
console.log(this.form)
this.form = this.resetForm
this.form.number = ''
this.form.type = item.type
this.$refs.form.resetFields()

View File

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

View File

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

View File

@@ -5,12 +5,14 @@
<el-form-item label="充值">
<template>
<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="append"></template>
</el-input>
<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="append"></template>
</el-input>
@@ -38,7 +40,7 @@
</el-form-item> -->
<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 label="数量">
<el-input-number v-model="form.num" controls-position="right" :min="1"></el-input-number>
@@ -176,6 +178,10 @@ export default {
return false;
}
this.form.couponId = this.productIds[0].id
} else {
this.form.couponId = ''
this.form.couponName = ''
this.productIds = []
}
// let arr = []
// this.productIds.forEach(ele => {
@@ -206,14 +212,15 @@ export default {
})
},
async show(obj) {
this.productIds = []
this.dialogVisible = true
if (obj && obj.id) {
this.form = { ...obj }
// 留着以后说不定多个优惠劵
// let res = await activate(obj.id)
// this.productIds = res
if (obj.couponName) {
this.productIds = [{ title: obj.couponName }]
if (obj.couponId) {
this.productIds = [{ title: obj.couponName,id:obj.couponId }]
}
console.log(obj, '调试1')
}