commit
5fcfb45d49
@ -0,0 +1,28 @@ |
||||
import { axios } from '@/utils/request' |
||||
|
||||
// api接口列表
|
||||
const api = { |
||||
info: '/invite/getConfig', |
||||
edit: '/invite/editConfig', |
||||
} |
||||
|
||||
// 列表记录
|
||||
export function info(params) { |
||||
return axios({ |
||||
url: api.info, |
||||
method: 'post', |
||||
params, |
||||
}) |
||||
} |
||||
|
||||
/** |
||||
* 更新 |
||||
* @param {*} data |
||||
*/ |
||||
export function edit(data) { |
||||
return axios({ |
||||
url: api.edit, |
||||
method: 'post', |
||||
data, |
||||
}) |
||||
} |
@ -0,0 +1,109 @@ |
||||
<template> |
||||
<a-card :bordered="false"> |
||||
<div class="card-title">邀请设置</div> |
||||
<a-spin :spinning="isLoading"> |
||||
<a-form-model ref="myForm" class="my-form" :model="form" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
||||
<a-form-model-item label="赠送优惠券" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="couponId"> |
||||
<SelectCoupon :multiple="false" v-model="form.coupon_id" /> |
||||
<div class="form-item-help"> |
||||
<small>请先确保优惠券剩余数量充足,否则将会导致发送失败</small> |
||||
</div> |
||||
</a-form-model-item> |
||||
<a-form-item label="首单返利" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="one_order_rate"> |
||||
<a-input-number :min="0" :max="9.9" :precision="1" v-model="form.one_order_rate" /> |
||||
<span class="ml-5">%</span> |
||||
<p class="form-item-help"> |
||||
<small>返利率范围 0-9.9,8代表返利8%,0代表不返利</small> |
||||
</p> |
||||
</a-form-item> |
||||
<a-form-item label="赠送积分" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
||||
<a-input-number |
||||
:min="0" |
||||
v-decorator="['integral', { initialValue: 1, rules: [{ message: '请输入积分' }] }]" |
||||
v-model="form.integral" |
||||
/> |
||||
</a-form-item> |
||||
<a-form-model-item :wrapperCol="{ span: wrapperCol.span, offset: labelCol.span }"> |
||||
<a-button type="primary" :loading="confirmLoading" @click="handleSubmit">保存</a-button> |
||||
</a-form-model-item> |
||||
</a-form-model> |
||||
</a-spin> |
||||
</a-card> |
||||
</template> |
||||
|
||||
<script> |
||||
import { cloneDeep } from 'lodash' |
||||
import { SelectCoupon } from '@/components' |
||||
import * as InviteApi from '@/api/invite/invite' |
||||
// 默认数据 |
||||
const defaultData = { |
||||
coupon_id: 0, |
||||
one_order_rate: 0, |
||||
integral: 0, |
||||
} |
||||
|
||||
export default { |
||||
components: { |
||||
SelectCoupon, |
||||
}, |
||||
data() { |
||||
return { |
||||
// 标签布局属性 |
||||
labelCol: { span: 4 }, |
||||
// 输入框布局属性 |
||||
wrapperCol: { span: 12 }, |
||||
// 加载状态 |
||||
isLoading: false, |
||||
confirmLoading: false, |
||||
// 当前记录详情 |
||||
form: cloneDeep(defaultData), |
||||
} |
||||
}, |
||||
// 初始化数据 |
||||
created() { |
||||
this.handleInfo() |
||||
}, |
||||
methods: { |
||||
// 确认按钮 |
||||
handleSubmit(e) { |
||||
const app = this |
||||
app.$refs.myForm.validate((valid) => { |
||||
if (valid) { |
||||
this.confirmLoading = true |
||||
InviteApi.edit({ form: app.form }) |
||||
.then((result) => { |
||||
app.$message.success(result.message, 1.5) |
||||
// app.form = cloneDeep(defaultData) |
||||
// 跳转到列表页 |
||||
// setTimeout(() => this.$router.push('./receive/index'), 1200) |
||||
}) |
||||
.finally((result) => (app.confirmLoading = false)) |
||||
} |
||||
}) |
||||
}, |
||||
handleInfo() { |
||||
InviteApi.info() |
||||
.then((result) => { |
||||
this.form.integral = result.data.info.integral |
||||
this.form.one_order_rate = result.data.info.one_order_rate |
||||
this.form.coupon_id = result.data.info.coupon_id |
||||
}) |
||||
.finally(() => (this.isLoading = false)) |
||||
}, |
||||
}, |
||||
} |
||||
</script> |
||||
<style lang="less" scoped> |
||||
.ant-form-item { |
||||
.ant-form-item { |
||||
margin-bottom: 0; |
||||
} |
||||
} |
||||
|
||||
/deep/.ant-form-item-control { |
||||
padding-left: 10px; |
||||
.ant-form-item-control { |
||||
padding-left: 0; |
||||
} |
||||
} |
||||
</style> |
Loading…
Reference in new issue