<template>
|
<!--
|
作者 luoyiming
|
时间:2020-06-09
|
描述:会员-等级管理-编辑等级
|
-->
|
<div class="product-add">
|
<div class="common-form">编辑等级</div>
|
<el-form size="small" :model="form" ref="form">
|
<el-form-item label="等级名称" :label-width="formLabelWidth" prop="name" :rules="[{required: true,message: ' '}]">
|
<el-input v-model="form.name" autocomplete="off"></el-input>
|
</el-form-item>
|
<el-form-item label="等级权重" :label-width="formLabelWidth" prop="weight" :rules="[{required: true,message: '请输入等级权重'}]">
|
<el-input v-model="form.weight" type="number" placeholder="请输入等级权重"></el-input>
|
<div class="gray9">权重越大,等级越高</div>
|
</el-form-item>
|
<el-form-item label="等级折扣" :label-width="formLabelWidth" prop="equity" :rules="[{required: true,message: '请输入等级折扣'}]">
|
<el-input type="number" :precision="1" :step="1" :min="0" :max="100" placeholder="请输入等级折扣" v-model="form.equity">
|
<template slot="append">%</template>
|
</el-input>
|
</el-form-item>
|
<el-form-item label="奖励积分" :label-width="formLabelWidth" prop="give_points"
|
:rules="[{required: true,message: '请输入奖励积分'}]">
|
<el-input v-model="form.give_points" type="number" placeholder="请输入奖励积分"></el-input>
|
<div class="gray9">升级后奖励会员积分</div>
|
</el-form-item>
|
<el-form-item label="奖励名片有效期" :label-width="formLabelWidth" prop="business_card_time"
|
:rules="[{required: true,message: '请输入奖励名片有效期'}]">
|
<el-input v-model="form.business_card_time" type="number" placeholder="请输入奖励名片有效期"></el-input>
|
<div class="gray9">升级后奖励会员名片有效期,单位:月</div>
|
</el-form-item>
|
<el-form-item label="兑换比例" :label-width="formLabelWidth" prop="exchange_rate"
|
:rules="[{required: true,message: '请输入消费金额的兑换比例'}]">
|
<el-input v-model="form.exchange_rate" type="number" placeholder="请输入消费金额的兑换比例"></el-input>
|
<div class="gray9">消费金额按比例换算成积分,如填1,则消费1元=1积分,订单收货完成后即可到账</div>
|
</el-form-item>
|
<el-form-item label="升级赠送:" :label-width="formLabelWidth">
|
<el-checkbox v-model="form.open_coupon" :true-label="1" :false-label='0'> 优惠券</el-checkbox>
|
<el-checkbox v-model="form.open_product" :true-label="1" :false-label='0'> 券商品</el-checkbox>
|
</el-form-item>
|
<el-form-item label="优惠券:" :label-width="formLabelWidth" :rules="[{ required: true, message: '请填写优惠券' }]" prop="open_coupons"
|
v-if="form.open_coupon">
|
<div class="d-s-c">
|
<div style="width: 460px;border: 1px solid #dedede;min-height: 32px;"><span
|
v-for="(item,index) in form.open_coupons" :key="index">{{item.name+';'}}</span></div>
|
<el-button type="primary" @click="addCoupon()">添加优惠券</el-button>
|
</div>
|
</el-form-item>
|
<el-form-item label="" :label-width="formLabelWidth" v-if="form.open_coupon">
|
<el-table :data="form.open_coupons">
|
<el-table-column prop="name" label="券名称">
|
</el-table-column>
|
<el-table-column prop="number" label="每人领取数量" :rules="[{required: true,message: ' '}]">
|
<template slot-scope="scope">
|
<el-input type="number" v-model="scope.row.number" placeholder="">
|
</el-input>
|
</template>
|
</el-table-column>
|
<el-table-column label="操作" prop="address">
|
<template slot-scope="scope">
|
<el-button type="text" size="small" @click='delcoupon(scope.row)'> 删除</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-form-item>
|
<el-form-item label="券商品:" :label-width="formLabelWidth" :rules="[{ required: true, message: '请选择券商品' }]"
|
prop="model.open_product"
|
v-if="form.open_product">
|
<div class="d-s-c">
|
<div style="width: 460px;border: 1px solid #dedede;min-height: 32px;"><span
|
v-for="(item,index) in form.open_products" :key="index">{{ item.product_name + ';' }}</span></div>
|
<el-button type="primary" @click="addProduct()">添加券商品</el-button>
|
</div>
|
</el-form-item>
|
<el-form-item label="" :label-width="formLabelWidth" v-if="form.open_product">
|
<el-table :data="form.open_products">
|
<el-table-column prop="product_name" label="券商品名称">
|
</el-table-column>
|
<el-table-column label="操作" prop="address">
|
<template slot-scope="scope">
|
<el-button type="text" size="small" @click='delproduct(scope.row)'> 删除</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-form-item>
|
<el-form-item label="升级条件" :label-width="formLabelWidth" v-if="form.is_default==0">
|
<div class="gray9">满足以下勾选的其中一个条件,会员自动升级到该等级</div>
|
<div class="d-s-c mt16">
|
<el-checkbox v-model="form.open_money">累计消费满</el-checkbox>
|
<el-input v-model="form.upgrade_money" type="number" :disabled="form.open_money==0" style="width: 160px; margin-left: 10px;" ></el-input>
|
<span class="ml10">元</span>
|
</div>
|
<div class="d-s-c mt16">
|
<el-checkbox v-model="form.open_points">累计积分满</el-checkbox>
|
<el-input v-model="form.upgrade_points" type="number" :disabled="form.open_points==0" style="width: 160px;margin-left: 10px;"></el-input>
|
<span class="ml10">个</span>
|
</div>
|
<div class="d-s-c mt16">
|
<el-checkbox v-model="form.open_invite">推荐人数满</el-checkbox>
|
<el-input v-model="form.upgrade_invite" type="number" :disabled="form.open_invite==0" style="width: 160px;margin-left: 10px;"></el-input>
|
<span class="ml10">人</span>
|
</div>
|
<div class="d-s-c mt16">
|
<el-checkbox v-model="form.is_purchase_count">购买VIP专区商品次数</el-checkbox>
|
<el-input v-model="form.purchase_count" type="number" :disabled="form.is_purchase_count==0" style="width: 160px;margin-left: 10px;"></el-input>
|
<span class="ml10">次</span>
|
</div>
|
</el-form-item>
|
</el-form>
|
<!--选择优惠券-->
|
<GetCoupon v-if="open_add" :open_add="open_add" @closeDialog="closeCouponDialogFunc($event)">选择优惠券弹出层
|
</GetCoupon>
|
<!--选择商品-->
|
<Product :isproduct="isproduct" is_virtual="2" is_supplier="true" @closeDialog="closeProductDialogFunc($event)">
|
产品列表弹出层
|
</Product>
|
<div slot="footer" class="common-button-wrapper">
|
<el-button @click="dialogFormVisible">取 消</el-button>
|
<el-button type="primary" @click="editGrade" :disabled="submit_loading">确 定</el-button>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
import UserApi from '@/api/user.js';
|
import GetCoupon from '@/components/coupon/GetCoupon';
|
import Product from '@/components/product/Product';
|
|
export default {
|
components: {
|
GetCoupon,
|
Product
|
},
|
data() {
|
return {
|
/*左边长度*/
|
formLabelWidth: '120px',
|
/*是否显示*/
|
dialogVisible: false,
|
/*是否正在提交*/
|
submit_loading: false,
|
grade_id: '',
|
form: {
|
name: '',
|
weight: '',
|
equity: '',
|
is_default: 0,
|
open_money: 0,
|
upgrade_money: null,
|
open_points: 0,
|
upgrade_points: null,
|
open_invite: 0,
|
upgrade_invite: null,
|
is_purchase_count: 0,
|
purchase_count: null,
|
/*是否打开优惠券*/
|
open_coupon: 0,
|
/*优惠券*/
|
open_coupons: [],
|
/*是否打开券商品*/
|
open_product: 0,
|
/*券商品*/
|
open_products: [],
|
},
|
open_add: false,
|
isproduct: false,
|
};
|
},
|
created() {
|
/*获取列表*/
|
this.grade_id = this.$route.query.grade_id;
|
this.getDate();
|
},
|
methods: {
|
getDate(){
|
let self = this;
|
UserApi.getEditGrade({grade_id: self.grade_id}, true)
|
.then(data => {
|
self.form = data.data.model;
|
console.log(self.form)
|
self.form.open_money=self.form.open_money==1?true:false;
|
self.form.open_points=self.form.open_points==1?true:false;
|
self.form.open_invite=self.form.open_invite==1?true:false;
|
/*是否打开购买VIP专区商品次数*/
|
self.form.is_purchase_count=self.form.is_purchase_count==1?true:false;
|
self.dialogVisible = true;
|
})
|
.catch(error => {
|
self.submit_loading = false;
|
});
|
},
|
/*添加优惠券*/
|
addCoupon() {
|
if (this.form.open_coupons.length >= 15) {
|
this.$message.error('您已经选择了十五张优惠券,若要更换请删除其他优惠券!');
|
return
|
}
|
|
this.open_add = true;
|
},
|
/*关闭优惠券*/
|
closeCouponDialogFunc(e) {
|
let self = this;
|
self.open_add = e.openDialog;
|
if (e.type == 'success') {
|
let params = {
|
coupon_id: e.params.coupon_id,
|
name: e.params.name,
|
number: 1,
|
color: e.params.color,
|
discount: e.params.discount,
|
reduce_price: e.params.reduce_price,
|
coupon_type: e.params.coupon_type,
|
min_price: e.params.min_price,
|
}
|
self.form.open_coupons.push(params);
|
}
|
},
|
delcoupon(item) {
|
let self = this;
|
let n = self.form.open_coupons.indexOf(item);
|
self.form.open_coupons.splice(n, 1);
|
},
|
|
/*添加券商品*/
|
addProduct() {
|
this.isproduct = true;
|
},
|
/*关闭券商品*/
|
closeProductDialogFunc(e) {
|
let self = this;
|
self.isproduct = e.openDialog;
|
if (e.type == 'success') {
|
let params = {
|
product_id: e.params.product_id,
|
product_name: e.params.product_name,
|
}
|
self.form.open_products.push(params);
|
}
|
},
|
delproduct(item) {
|
let self = this;
|
let n = self.form.open_products.indexOf(item);
|
self.form.open_products.splice(n, 1);
|
},
|
/*修改用户*/
|
editGrade() {
|
let self = this;
|
let params = this.form;
|
self.$refs.form.validate((valid) => {
|
if (valid) {
|
self.submit_loading = true;
|
if(params.is_default==0){
|
params.open_money=params.open_money==true?1:0;
|
params.open_points=params.open_points==true?1:0;
|
params.open_invite=params.open_invite==true?1:0;
|
/*是否打开购买VIP专区商品次数*/
|
params.is_purchase_count=params.is_purchase_count==true?1:0;
|
}else{
|
delete params.open_money;
|
delete params.open_points;
|
delete params.open_invite;
|
delete params.upgrade_money;
|
delete params.upgrade_points;
|
delete params.upgrade_invite;
|
/*是否打开购买VIP专区商品次数*/
|
delete params.is_purchase_count;
|
delete params.purchase_count;
|
}
|
UserApi.editGrade(params, true)
|
.then(data => {
|
self.submit_loading = false;
|
self.$message({
|
message: '恭喜你,等级修改成功',
|
type: 'success'
|
});
|
self.dialogFormVisible(true);
|
|
})
|
.catch(error => {
|
self.submit_loading = false;
|
});
|
|
}
|
});
|
},
|
|
/*关闭弹窗*/
|
dialogFormVisible(e) {
|
this.$router.push('/user/grade/index');
|
if (e) {
|
this.$emit('closeDialog', {
|
type: 'success',
|
openDialog: false
|
})
|
} else {
|
this.$emit('closeDialog', {
|
type: 'error',
|
openDialog: false
|
})
|
}
|
}
|
|
}
|
};
|
</script>
|
|
<style></style>
|