card-mini/pages/mine/product/coupon/editcoupon.js

694 lines
20 KiB
JavaScript

// pages/mine/product/coupon/addcoupon.js
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
typeList: [{
id: '1',
name: '无门槛',
isInput: false,
isSel: true,
value: '',
pValue: '0',
key: 'type1'
}, {
id: '2',
name: '订单满',
isInput: true,
isSel: false,
pValue: '1',
value: '',
key: 'type2'
}], //使用门槛
scopeList: [{
id: '1',
name: '全部商品',
isSel: true,
pValue: '0',
isShowBtn: false,
}, {
id: '2',
name: '指定商品',
isSel: false,
pValue: '1',
isShowBtn: true,
}],
dueTimeList: [{
id: '1',
name: '',
startDate: '',
endDate: '',
type: 'picker',
isSel: true,
pValue: '0',
key: 'dueTime1',
value: ''
}, {
id: '2',
name: '领取当日开始',
startDate: '',
endDate: '',
type: 'input',
pValue: '1',
isSel: false,
key: 'dueTime2',
value: ''
}, {
id: '3',
name: '领取次日开始',
startDate: '',
endDate: '',
pValue: '2',
type: 'input',
isSel: false,
key: 'dueTime3',
value: ''
}], //有效期
rankList: [{
id: '1',
name: '不限',
isSel: true,
pValue: '0',
hint: ''
}, {
id: '2',
name: '仅注册用户可领取',
isSel: false,
hint: '',
pValue: '1',
}, {
id: '3',
name: '仅新客可领取',
isSel: false,
hint: '该限制仅在客户主动领取优惠券时生效',
pValue: '2',
}], //身份限制
astrictList: [{
id: '1',
name: '不限',
isInput: false,
isSel: true,
value: '',
key: 'type3',
pValue: '0',
}, {
id: '2',
name: '每人限领',
isInput: true,
isSel: false,
value: '',
pValue: '1',
key: 'type4'
}], //领取限制
showTemplete: {
name: '商品详情页可领取优惠券',
isSel: false
},
shareBean: {
name: '优惠券允许分享给好友领取',
isSel: false
},
startDate: '请选择',
endDate: '请选择',
couponName: '', //优惠券名称
couponCount: '', //优惠券张数
price: '',
summary: '', //使用说明
isShowGoods: false, //是否显示添加的商品
goodsList: [], //选中的商品
shopId: '', //商店ID
baseImageUrl: app.urls.baseImgUrl,
couponId: '',
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.setData({
couponId: options.id,
shopId: options.shopId
})
//获取详情
this.getDetail()
},
//获取详情
getDetail() {
wx.showLoading({
title: '加载中...',
})
var _self = this
app.http.get(app.urls.getCouponDetail.format({
couponId: _self.data.couponId
}), {
header: {
token: app.globalData.token
}
})
.then(res => {
_self.buildDetailData(res.data)
})
.catch(err => {
wx.hideLoading({})
})
},
//回显数据
buildDetailData(data) {
var _self = this
_self.setData({
couponName: data.couponName,
couponCount: data.distributionVolume,
price: data.amount,
summary: data.useExplain
})
//分享设置
if (data.share != '') {
_self.data.shareBean.isSel = true
_self.setData({
shareBean: _self.data.shareBean
})
}
//领取展示
if (data.getShow != '') {
_self.data.showTemplete.isSel = true
_self.setData({
showTemplete: _self.data.showTemplete
})
}
//使用门槛
if (data.useType == '1') {
_self.data.typeList[0].isSel = false
_self.data.typeList[1].isSel = true
_self.data.typeList[1].value = data.useAmount
_self.setData({
typeList: _self.data.typeList,
})
}
//可用商品
if (data.useCommodity == '1') {
_self.data.scopeList[0].isSel = false
_self.data.scopeList[1].isSel = true
_self.setData({
scopeList: _self.data.scopeList,
goodsList: data.shopGoodsDTOList,
isShowGoods: true
})
}
//有效期
switch (data.expiringDate) {
case 0:
_self.data.dueTimeList[0].isSel = true
_self.data.dueTimeList[1].isSel = false
_self.data.dueTimeList[2].isSel = false
_self.data.dueTimeList[0].startDate = data.startDate
_self.data.dueTimeList[0].endDate = data.endDate
break
case 1:
_self.data.dueTimeList[0].isSel = false
_self.data.dueTimeList[1].isSel = true
_self.data.dueTimeList[2].isSel = false
_self.data.dueTimeList[1].endDate = data.expiringDays
break
case 2:
_self.data.dueTimeList[0].isSel = false
_self.data.dueTimeList[1].isSel = false
_self.data.dueTimeList[2].isSel = true
_self.data.dueTimeList[2].endDate = data.expiringDays
break
}
_self.setData({
dueTimeList: _self.data.dueTimeList,
startDate: data.startDate == '' ? '请选择' : data.startDate,
endDate: data.endDate == '' ? '请选择' : data.endDate
})
//身份限制
switch (data.identityRestrictions) {
case 0:
_self.data.rankList['0'].isSel = true
_self.data.rankList['1'].isSel = false
_self.data.rankList['2'].isSel = false
break
case 1:
_self.data.rankList['0'].isSel = false
_self.data.rankList['1'].isSel = true
_self.data.rankList['2'].isSel = false
break
case 2:
_self.data.rankList['0'].isSel = false
_self.data.rankList['1'].isSel = false
_self.data.rankList['2'].isSel = true
break
}
_self.setData({
rankList: _self.data.rankList
})
//每人限领
if (data.quota == '1') {
// quotaEveryone
_self.data.astrictList[1].value = data.quotaEveryone
_self.data.astrictList[1].isSel = true
_self.data.astrictList[0].isSel = false
_self.setData({
astrictList: _self.data.astrictList
})
}
wx.hideLoading({})
},
//使用门槛
doSelType(e) {
var item = e.currentTarget.dataset.item
var _self = this
_self.data.typeList.forEach(it => {
if (it.id == item.id) {
it.isSel = true
} else {
it.isSel = false
}
})
_self.setData({
typeList: _self.data.typeList
})
},
//可用商品
doSelScope(e) {
var item = e.currentTarget.dataset.item
var _self = this
_self.data.scopeList.forEach(it => {
if (it.id == item.id) {
it.isSel = true
if (it.id == '2') {
_self.setData({
isShowGoods: true
})
} else {
_self.setData({
isShowGoods: false
})
}
} else {
it.isSel = false
}
})
_self.setData({
scopeList: _self.data.scopeList
})
},
//有效期
doSelDueTime(e) {
var item = e.currentTarget.dataset.item
// dueTimeList
var item = e.currentTarget.dataset.item
var _self = this
_self.data.dueTimeList.forEach(it => {
if (it.id == item.id) {
it.isSel = true
} else {
it.isSel = false
}
})
_self.setData({
dueTimeList: _self.data.dueTimeList
})
},
//日期选择
dateChange(e) {
var _self = this
var model = e.currentTarget.dataset.model
var value = e.detail.value
_self.data.dueTimeList.forEach(it => {
if (it.id == '1') {
it[model] = value
_self.setData({
[model]: value
})
}
})
_self.setData({
dueTimeList: _self.data.dueTimeList
})
console.log(e)
},
//身份限制
doSelRank(e) {
var item = e.currentTarget.dataset.item
var _self = this
_self.data.rankList.forEach(it => {
if (it.id == item.id) {
it.isSel = true
} else {
it.isSel = false
}
})
_self.setData({
rankList: _self.data.rankList
})
},
//领取展示
doSelShow() {
var _self = this
_self.data.showTemplete.isSel = !_self.data.showTemplete.isSel
_self.setData({
showTemplete: _self.data.showTemplete
})
},
doShare() {
var _self = this
_self.data.shareBean.isSel = !_self.data.shareBean.isSel
_self.setData({
shareBean: _self.data.shareBean
})
},
//使用条件
doSelCon(e) {
var item = e.currentTarget.dataset.item
var _self = this
_self.data.astrictList.forEach(it => {
if (it.id == item.id) {
it.isSel = true
} else {
it.isSel = false
}
})
_self.setData({
astrictList: _self.data.astrictList
})
},
//使用说明输入
textareaBInput(e) {
this.setData({
summary: e.detail.value
})
},
inputWatch(e) {
var model = e.currentTarget.dataset.model
var value = e.detail.value
var _self = this
switch (model) {
case 'type2': //使用门槛
_self.data.typeList.forEach(it => {
if (it.key == model) {
it.value = value
}
})
_self.setData({
typeList: _self.data.typeList
})
break
case 'dueTime2': //有效期
case 'dueTime3':
_self.data.dueTimeList.forEach(it => {
if (it.key == model) {
it.endDate = value
}
})
_self.setData({
dueTimeList: _self.data.dueTimeList
})
break
case 'type4': //每人限领
_self.data.astrictList.forEach(it => {
if (it.key == model) {
it.value = value
}
})
_self.setData({
astrictList: _self.data.astrictList
})
break
default:
_self.setData({
[model]: value
})
break
}
},
//选择商品
addGoods() {
var _self = this
_self.data.scopeList.forEach(it => {
if (it.id == '2') {
it.isSel = true
} else {
it.isSel = false
}
})
_self.setData({
scopeList: _self.data.scopeList,
isShowGoods: true
})
wx.navigateTo({
url: '/pages/mine/product/coupon/choosegoods?shopId=' + this.data.shopId,
})
},
//删除商品
delGoods(e) {
console.log(e)
var item = e.currentTarget.dataset.item
var index = e.currentTarget.dataset.index
var _self = this
wx.showModal({
title: '警告',
content: '确认要删除该商品吗?',
success(res) {
if (res.confirm) {
//去除
_self.data.goodsList.splice(index, 1)
_self.setData({
goodsList: _self.data.goodsList
})
}
}
})
},
//校验参数
checkParams() {
var _self = this
if (_self.data.couponName == '') {
wx.showToast({
title: '请输入卷名称',
icon: 'error'
})
return false
}
if (_self.data.price == 0) {
wx.showToast({
title: '请输入优惠金额',
icon: 'error'
})
return false
}
var type = true
_self.data.typeList.forEach(it => {
if (it.isSel) {
if (it.id == '2') {
if (it.value == '') {
wx.showToast({
title: '请输入使用门槛',
icon: 'error'
})
type = false
}
}
}
})
if (!type) {
return false
}
var scope = true
_self.data.scopeList.forEach(it => {
if (it.id == '2' && it.isSel) {
if (_self.data.goodsList.length <= 0) {
wx.showToast({
title: '请选择适用商品',
icon: 'error'
})
scope = false
}
}
})
if (!scope) {
return false
}
if (_self.data.couponCount == '') {
wx.showToast({
title: '请输入发行张数',
icon: 'error'
})
return false
}
var due = true
_self.data.dueTimeList.forEach(it => {
if (it.isSel) {
console.log('有效期')
if (it.id == '1') {
console.log('有效期选中')
//选择开始
if (_self.data.startDate == '请选择') {
console.log('未输入开始时间')
wx.showToast({
title: '请选择开始日期',
icon: 'error'
})
due = false
}
if (_self.data.endDate == '请选择') {
wx.showToast({
title: '请选择结束日期',
icon: 'error'
})
due = false
}
} else {
if (it.endDate == '') {
wx.showToast({
title: '请输入使用期限',
icon: 'error'
})
due = false
}
}
}
})
if (!due) {
return due
}
var astrict = true
_self.data.astrictList.forEach(it => {
if (it.id == '2' && it.isSel) {
if (it.value == '') {
wx.showToast({
title: '请输入每人限领',
icon: 'error'
})
astrict = false
}
}
})
if (!astrict) {
return false
}
return true
},
buildParams() {
var params = {}
var _self = this
params['shopId'] = _self.data.shopId //店铺ID
params['couponName'] = _self.data.couponName //名称
params['amount'] = _self.data.price //优惠金额
_self.data.typeList.forEach(it => {
if (it.isSel) {
if (it.id == '2') {
//输入
params['useType'] = it.pValue
params['useAmount'] = it.value
} else {
params['useType'] = it.pValue
}
}
})
_self.data.scopeList.forEach(it => {
if (it.isSel) {
if (it.id == '2') {
//指定商品
params['useCommodity'] = it.pValue
var ids = []
_self.data.goodsList.forEach(ii => {
var item = {
shopgoodId: ii.goodsId
}
ids.push(item)
})
params['shopgoodVOList'] = ids
} else {
//全部商品
params['useCommodity'] = it.pValue
}
}
})
params['distributionVolume'] = _self.data.couponCount //发放数量
//有效期
_self.data.dueTimeList.forEach(it => {
if (it.isSel) {
if (it.id == '1') {
//时间范围
params['expiringDate'] = it.pValue
params['startDate'] = it.startDate
params['endDate'] = it.endDate
} else {
//次日开始
params['expiringDays'] = it.endDate
params['expiringDate'] = it.pValue
}
}
})
//身份限制
_self.data.rankList.forEach(it => {
if (it.isSel) {
params['identityRestrictions'] = it.pValue
}
})
//使用条件
_self.data.astrictList.forEach(it => {
if (it.isSel) {
if (it.isSel) {
// 次数
params['quota'] = it.pValue
params['quotaEveryone'] = it.value
} else {
// 不限
params['quota'] = it.pValue
}
}
})
//领取展示
if (_self.data.showTemplete.isSel) {
params['getShow'] = '0'
}
// 分享
if (_self.data.shareBean.isSel) {
params['share'] = '0'
}
//使用说明
if (_self.data.summary != '') {
params['useExplain'] = _self.data.summary
}
return params
},
doSave() {
var _self = this
if (_self.checkParams()) {
var params = _self.buildParams()
wx.showLoading({
title: '修改中...',
})
app.http.put(app.urls.doUpdateCoupon.format({
couponId: _self.data.couponId
}), {
header: {
token: app.globalData.token
},
data: params
})
.then(res => {
wx.hideLoading({})
wx.showToast({
title: '修改成功',
icon: 'success'
})
let arr = getCurrentPages()
let lastPage = (arr.length >= 2) ? arr[arr.length - 2] : undefined
lastPage.setData({
isAddPage: true
})
wx.navigateBack({})
})
.catch(err => {
wx.hideLoading({})
})
}
}
})