215 lines
5.2 KiB
Vue
215 lines
5.2 KiB
Vue
|
|
<template>
|
|||
|
|
<view class="content">
|
|||
|
|
<view class="wrap bg-w">
|
|||
|
|
<view class="box">
|
|||
|
|
<view class="box_left">名称:</view>
|
|||
|
|
<view class="box_right">
|
|||
|
|
<input type="text" v-model="form.titleName" :maxlength="20" placeholder-class="placeholder" placeholder="优惠券名称" />
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class="box">
|
|||
|
|
<view class="box_left">金额:</view>
|
|||
|
|
<view class="box_right">
|
|||
|
|
<input type="number" v-model="form.discountAmount" placeholder-class="placeholder" placeholder="优惠券金额" />
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class="box">
|
|||
|
|
<view class="box_left">数量:</view>
|
|||
|
|
<view class="box_right">
|
|||
|
|
<switch color="#F8D247" :checked="numberChecked" style="transform:scale(0.8)" @change="switchBtn($event, 'numberChecked')" />
|
|||
|
|
<text>不限制</text>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class="box" v-if="!numberChecked">
|
|||
|
|
<view class="box_right">
|
|||
|
|
<input type="number" v-model="form.number" placeholder-class="placeholder" placeholder="请输入优惠券数量" />
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class="box">
|
|||
|
|
<view class="box_left">有效期:</view>
|
|||
|
|
<view class="box_right">
|
|||
|
|
<switch color="#F8D247" :checked="timeChecked" style="transform:scale(0.8)" @change="switchBtn($event, 'timeChecked')" />
|
|||
|
|
<text>永久有效</text>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class="box" v-if="!timeChecked">
|
|||
|
|
<view class="box_right">
|
|||
|
|
<input type="number" v-model="form.expireTimeDay" placeholder-class="placeholder" placeholder="有效期(最长90天)" />
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class="box">
|
|||
|
|
<view class="box_left">重复领取:</view>
|
|||
|
|
<view class="box_right">
|
|||
|
|
<switch color="#F8D247" :checked="form.repeatedCollectionStatus === 2" style="transform:scale(0.8)" @change="switchBtn($event, 'repeatedCollectionStatus')" />
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class="box">
|
|||
|
|
<view class="box_left">使用标准:</view>
|
|||
|
|
<view class="box_right">
|
|||
|
|
<input type="number" v-model="form.useStandardAmount" placeholder-class="placeholder" placeholder="如100,买满100可用此优惠券抵扣" />
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class="box bor-no">
|
|||
|
|
<view class="box_left">状态:</view>
|
|||
|
|
<view class="box_right">
|
|||
|
|
<switch color="#F8D247" :checked="form.status === 1" style="transform:scale(0.8)" @change="switchBtn($event, 'status')" />
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
|
|||
|
|
<button class="btn bg-base" :loading="loading" :disabled="loading" @click="submit">保存</button>
|
|||
|
|
</view>
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<script>
|
|||
|
|
import url from "@/common/http/url.js"
|
|||
|
|
export default{
|
|||
|
|
data(){
|
|||
|
|
return {
|
|||
|
|
loading: false,
|
|||
|
|
form: {
|
|||
|
|
status: 1,
|
|||
|
|
repeatedCollectionStatus: 1
|
|||
|
|
},
|
|||
|
|
numberChecked: true, // 数量不限制
|
|||
|
|
timeChecked: true, // 有效期
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
onLoad(option) {
|
|||
|
|
let title = '新增优惠券';
|
|||
|
|
if (option.id) {
|
|||
|
|
title = '编辑优惠券';
|
|||
|
|
this.$http("GET", url.store.getDiscountInfoById, {discountId: option.id}).then(res =>{
|
|||
|
|
this.form = res.data
|
|||
|
|
if (res.data.number > 0) {
|
|||
|
|
this.numberChecked = false
|
|||
|
|
}
|
|||
|
|
if (res.data.expireTimeDay > 0){
|
|||
|
|
this.timeChecked = false
|
|||
|
|
}
|
|||
|
|
delete this.form.createTime
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
uni.setNavigationBarTitle({
|
|||
|
|
title: title
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
methods:{
|
|||
|
|
submit() {
|
|||
|
|
this.loading = true
|
|||
|
|
if (this.numberChecked) {
|
|||
|
|
this.form.number = -1
|
|||
|
|
}
|
|||
|
|
if (this.timeChecked){
|
|||
|
|
this.form.expireTimeDay = -1
|
|||
|
|
}
|
|||
|
|
let path = url.store.addDiscount
|
|||
|
|
if (this.form.id) {
|
|||
|
|
path = url.store.updateDiscount
|
|||
|
|
}
|
|||
|
|
this.$http("POST", path, this.form).then(res =>{
|
|||
|
|
this.$msg(res.data)
|
|||
|
|
this.$navigateBack(1, 500)
|
|||
|
|
}).catch(()=>{
|
|||
|
|
this.loading = false
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
switchBtn(e, name) {
|
|||
|
|
let value = e.detail.value
|
|||
|
|
if (name === "repeatedCollectionStatus") { // 重复领取
|
|||
|
|
this.form[name] = value ? 2 : 1
|
|||
|
|
} else if (name === "status"){ // 状态
|
|||
|
|
this.form[name] = value ? 1 : 2
|
|||
|
|
} else { // 数量,有效期
|
|||
|
|
this[name] = value
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
<style scoped lang="scss">
|
|||
|
|
.content {
|
|||
|
|
font-size: 28upx;
|
|||
|
|
color: #676769;
|
|||
|
|
min-height: 100vh;
|
|||
|
|
padding: 20rpx;
|
|||
|
|
}
|
|||
|
|
.wrap{
|
|||
|
|
padding: 20rpx;
|
|||
|
|
border-radius: 20rpx;
|
|||
|
|
}
|
|||
|
|
.box {
|
|||
|
|
height: 100upx;
|
|||
|
|
display: flex;
|
|||
|
|
align-items: center;
|
|||
|
|
border-bottom: 1upx solid #EEEEEE;
|
|||
|
|
}
|
|||
|
|
.placeholder{
|
|||
|
|
font-size: 32rpx;
|
|||
|
|
color: #c3c1c4;
|
|||
|
|
}
|
|||
|
|
.box_left {
|
|||
|
|
width: 25%;
|
|||
|
|
display: flex;
|
|||
|
|
align-items: center;
|
|||
|
|
font-size: 32rpx;
|
|||
|
|
}
|
|||
|
|
.box_left_two {
|
|||
|
|
width: 550upx;
|
|||
|
|
font-size: 32rpx;
|
|||
|
|
}
|
|||
|
|
.box_right {
|
|||
|
|
// width: 70%;
|
|||
|
|
display: flex;
|
|||
|
|
flex-grow: 1;
|
|||
|
|
align-items: center;
|
|||
|
|
}
|
|||
|
|
.box_right_right {
|
|||
|
|
width: 70%;
|
|||
|
|
height: 80upx;
|
|||
|
|
display: flex;
|
|||
|
|
align-items: center;
|
|||
|
|
justify-content: space-between;
|
|||
|
|
flex-grow: 1;
|
|||
|
|
// padding-left: 3%;
|
|||
|
|
}
|
|||
|
|
.box_right_right input {
|
|||
|
|
width: 87%;
|
|||
|
|
height: 70upx;
|
|||
|
|
line-height: 70upx;
|
|||
|
|
}
|
|||
|
|
.box_right_right image {
|
|||
|
|
width: 60upx;
|
|||
|
|
height: 60upx;
|
|||
|
|
margin-left: 20rpx;
|
|||
|
|
}
|
|||
|
|
.box_right_two {
|
|||
|
|
width: 160upx;
|
|||
|
|
text-align: right;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.box_right input {
|
|||
|
|
width: 97%;
|
|||
|
|
height: 80upx;
|
|||
|
|
// padding-left: 3%;
|
|||
|
|
background-color: #ffffff;
|
|||
|
|
}
|
|||
|
|
.btn {
|
|||
|
|
width: 690upx;
|
|||
|
|
height: 90upx;
|
|||
|
|
line-height: 90upx;
|
|||
|
|
color: #ffffff;
|
|||
|
|
font-size: 32upx;
|
|||
|
|
margin-top: 120upx;
|
|||
|
|
border-radius: 50rpx;
|
|||
|
|
}
|
|||
|
|
.citybtn {
|
|||
|
|
width: 100%;
|
|||
|
|
height: 80upx;
|
|||
|
|
line-height: 80upx;
|
|||
|
|
overflow: hidden;
|
|||
|
|
}
|
|||
|
|
</style>
|