mall_client/zyhs3_uniapp/pages/merchants/coupon/edit.vue

215 lines
5.2 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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>