xlb-main-login
Version:
``` yarn install ```
406 lines (382 loc) • 16.7 kB
JavaScript
import { axios } from '@/utils/request'
import moment from 'moment'
import { weichat } from '@/api/config'
import { chinaNum } from '@/views/friend/utils/util.js'
//新增活动 ID:jP81P62q
export function addEvent(formData, eventId = '') {
let formTemp = {}
// demoWorkEvent 活动基本数据
formTemp = {
title: formData.information.title,
description: formData.information.description,
endTime: moment(formData.information.endTime).format('YYYY-MM-DD HH:mm:ss'), // 结束时间
startTime: moment(formData.information.startTime).format('YYYY-MM-DD HH:mm:ss'), // 开始时间
eventType: 1, // 活动类型 对应的值 1好友获客 2任务获客 3红包获客 4群获客 5抽奖获客
enableComplaint: 0, // 开启投诉 1_开启 0_关闭
path: formData.information.coverImg,
state: formData.advanced.demoWorkEventState || 0, // 状态 对应的值?
enableEventInfo: formData.information.enableEventInfo ? 1 : 0, //是否开启活动信息 1_开启 0_关闭
enableOnlyNew: formData.advanced.enableOnlyNew ? 1 : 0, //助力限制 1_开启 0_关闭
enableBrand: formData.advanced.brandEnable ? 1 : 0, // 是否开启品牌 1_开启 0_关闭
enableExtraReward: 1, // 默认1
intoGroupType: formData.configuration.groupValue, //进群方式 1:顺序进群,2:随机进群
antiRush: formData.advanced.intelligentEnable ? 1 : 0, // 智能防刷 1_开启 0_关闭
enableBan: formData.advanced.antiEnable ? 1 : 0, // 防刷检测 1_开启 0_关闭
enableRepeat: formData.advanced.enableRepeat ? 1 : 0, // 助力失效 1_开启 0_关闭
version: formData.advanced.version ? formData.advanced.version : 'SECOND', // 助力失效 1_开启 0_关闭
}
if (eventId) {
formTemp.id = formData.advanced.demoWorkEventId || ''
}
const demoWorkEventRewardListTemp = JSON.parse(JSON.stringify(formData.information.tableDataTemp))
let prizeTabTemp = demoWorkEventRewardListTemp
if (formData.advanced.version === 'FIRST') {
prizeTabTemp = JSON.parse(JSON.stringify(formData.information.prizeTab)) // 老活动
}
// debugger
const rewardExtraConfigListTemp = []
demoWorkEventRewardListTemp.forEach((item, index) => {
demoWorkEventRewardListTemp[index].dr = item.dr || 0
demoWorkEventRewardListTemp[index].id = item.id || ''
demoWorkEventRewardListTemp[index].eventId = eventId
demoWorkEventRewardListTemp[index].grade = index + 1
demoWorkEventRewardListTemp[index].rewardName = item.rewardName
demoWorkEventRewardListTemp[index].rewardImage = item.rewardImage
demoWorkEventRewardListTemp[index].enableRemain = item.enableRemain
demoWorkEventRewardListTemp[index].enable = 1
if (prizeTabTemp[index]) {
const rewardData = {
grade: index + 1,
type: prizeTabTemp[index].formData.type,
enable: 1,
id: '',
redemptionCodeId: prizeTabTemp[index].formData.redemptionCodeId || '',
writeOffCodeId: prizeTabTemp[index].formData.redemptionWriteOffCodeId || '', //核销码
link: '',
formId: prizeTabTemp[index].formData.redemptionFormId || '',
context: '',
}
// if (rewardData.type != 5) {
// rewardData.writeOffCodeId = ''
// }
if (prizeTabTemp[index].formData.type === 0) {
rewardData.link = prizeTabTemp[index].formData.link
} else if (prizeTabTemp[index].formData.type === 1) {
rewardData.context = prizeTabTemp[index].formData.codeHtml
} else if (prizeTabTemp[index].formData.type === 2) {
rewardData.context = prizeTabTemp[index].formData.customHtml
} else if (prizeTabTemp[index].formData.type === 4) {
rewardData.context = prizeTabTemp[index].formData.selectText.join()
rewardData.link = prizeTabTemp[index].formData.productLink
} else {
rewardData.context = ''
}
rewardExtraConfigListTemp.push(rewardData)
}
})
//群配置
let groupConfigList = JSON.parse(JSON.stringify(formData.configuration.dataSource))
const intoGroupType = JSON.parse(JSON.stringify(formData.configuration.groupValue))
if (formData.configuration.delInfo && formData.configuration.delInfo.length > 0) {
groupConfigList = [...groupConfigList, ...formData.configuration.delInfo]
}
groupConfigList.forEach((item, index) => {
groupConfigList[index].dr = item.dr || 0
groupConfigList[index].id = item.id || ''
groupConfigList[index].eventId = eventId
groupConfigList[index].intoGroupType = intoGroupType
})
formTemp.groupConfigList = groupConfigList
if (eventId) {
formTemp.id = formData.advanced.demoWorkEventId || ''
}
//奖励阶梯 带dr
formTemp.rewardConfigList = demoWorkEventRewardListTemp
// 文案列表
formTemp.msgConfigList = []
// 活动信息
if (formData.information.enableEventInfo) {
formTemp.msgConfigList.push({
dr: 0,
enable: formData.information.enableEventInfo ? 1 : 0,
eventId: eventId,
grade: 1,
id: eventId ? formData.advanced.msgId['0_text'] : '',
msg: formData.information.enableEventHtml,
msgType: 0,
wxMsgType: 'text',
})
}
//群内规则文案
formTemp.msgConfigList.push({
dr: 0,
enable: 1,
eventId: eventId,
grade: 1,
id: eventId ? formData.advanced.msgId['1_text'] : '',
templateId: eventId ? formData.advanced.msgTemplateId['1_text'] : '',
msg: formData.information.goGroupText,
msgType: 1,
wxMsgType: 'text',
})
// 奖品信息配置
formTemp.rewardExtraList = rewardExtraConfigListTemp
// 海报配置 带dr
formTemp.imageConfigList = []
formData.poster.posterFormData.forEach((item) => {
formTemp.imageConfigList.push({
background: item.posterForm.background, // 背景图
circle: item.headData.circle, // 圆形头像 1_开启 0_关闭
dr: item.posterForm.dr || 0, // 默认0
eventId: eventId, // 对应活动的id
fontColor: item.nameData.fontColor ? item.nameData.fontColor.replace('#', '0x') : '', //字体颜色
fontName: '', // 新增为空 编辑时有接口返回默认值
fontSize: item.nameData.fontSize, // 字体大小 为0就是隐藏
fontStyle: '', // 新增为空 编辑时有接口返回默认值
fontx: item.nameData.fontSize == 0 ? 0 : parseInt(item.nameData.x * 2.5), // 字体x轴坐标
fonty: item.nameData.fontSize == 0 ? 0 : parseInt(item.nameData.y * 2.5), // 字体y轴坐标
headUrl: '', // 头像 为空
headUrlHeight: item.headData.show ? parseInt(item.headData.h * 2.5) : 0, // 头像大小 为0就是隐藏
headUrlWidth: item.headData.show ? parseInt(item.headData.w * 2.5) : 0, // 头像大小 为0就是隐藏
headUrlx: item.headData.show ? parseInt(item.headData.x * 2.5) : 0, // 头像大小 为0就是隐藏
headUrly: item.headData.show ? parseInt(item.headData.y * 2.5) : 0, // 头像大小 为0就是隐藏
id: item.posterForm.id || '', // 新增为空 编辑时有接口返回默认值
mini: 1, // mini头像
qrCodeHeight: item.qrData.h == 0 ? 0 : parseInt(item.qrData.h * 2.5), // 二维码大小 为0就是隐藏
qrCodeWeight: item.qrData.w == 0 ? 0 : parseInt(item.qrData.w * 2.5), // 二维码大小 为0就是隐藏
qrCodex: item.qrData.x == 0 ? 0 : parseInt(item.qrData.x * 2.5), // 二维码大小 为0就是隐藏
qrCodey: item.qrData.y == 0 ? 0 : parseInt(item.qrData.y * 2.5), // 二维码大小 为0就是隐藏
})
})
// 防刷检测
formTemp.banConfig = {
limitNum: formData.advanced.antiNum, // 检测数量(人)
limitTime: formData.advanced.antiTime, // 触发检测时间(秒)
}
console.log(formData)
console.log(formTemp)
//新增好友获客活动
return axios({
headers: { 'Content-Type': 'application/json;charset=UTF-8' },
url: weichat + 'v1/mp/task/into/group/',
method: eventId !== '' ? 'put' : 'post',
data: formTemp,
})
}
function getMagItem(type, magList, key = 'msg', msgType = 'text') {
const indexId = magList.findIndex((items) => items.msgType === type && items.wxMsgType === msgType)
if (indexId !== -1) {
return magList[indexId][key]
} else {
return null
}
}
//进群获客活动详情
export function getEvent(id) {
const formData = {
information: {},
poster: {
posterFormData: [],
},
configuration: {},
advanced: {},
}
return new Promise((resolve) => {
axios({
url: weichat + 'v1/mp/task/into/group/' + id,
method: 'get',
}).then((res) => {
console.time()
const resData = JSON.parse(JSON.stringify(res.value))
formData.information = {
enableEventHtml: getMagItem(0, resData.msgConfigList),
goGroupText: getMagItem(1, resData.msgConfigList),
enableEventInfo: resData.enableEventInfo === 1,
version: resData.version ? resData.version : 'SECOND',
intoGroupType: resData.intoGroupType, //进群方式 1:顺序进群,2:随机进群
endTime: resData.endTime,
startTime: resData.startTime,
valueTime: [resData.startTime, resData.endTime],
title: resData.title,
description: resData.description,
coverImg: resData.path,
prizeTab: [],
tableDataTemp: [],
}
resData.rewardConfigList.forEach((item, index) => {
formData.information.tableDataTemp.push({
enableRemain: item.enableRemain,
id: item.id,
grade: chinaNum(index + 1) + '级阶梯',
inviteNum: item.inviteNum,
rewardNum: item.rewardNum,
remain: item.remain,
rewardName: item.rewardName,
rewardImage: item.rewardImage,
})
const prizeTabItem = {
enableRemain: item.enableRemain,
grade: chinaNum(index + 1) + '级奖品',
inviteNum: item.inviteNum,
rewardNum: item.rewardNum,
remain: item.remain,
rewardName: item.rewardName ? item.rewardName : '',
rewardImage: item.rewardImage ? item.rewardImage : '',
formData: {
type: resData.rewardExtraList[index] ? resData.rewardExtraList[index].type : 0,
link: '',
selectText: [],
codeHtml: '',
customHtml: '',
redemptionCodeId: resData.rewardExtraList[index] ? resData.rewardExtraList[index].redemptionCodeId : null,
redemptionWriteOffCodeId: resData.rewardExtraList[index]
? resData.rewardExtraList[index].writeOffCodeId
: null, // 核销码
redemptionFormId: resData.rewardExtraList[index] ? resData.rewardExtraList[index].formId : null,
productLink: '',
},
type: resData.rewardExtraList[index] ? resData.rewardExtraList[index].type : 0,
link: '',
selectText: [],
codeHtml: '',
customHtml: '',
redemptionCodeId: resData.rewardExtraList[index] ? resData.rewardExtraList[index].redemptionCodeId : null,
redemptionWriteOffCodeId: resData.rewardExtraList[index]
? resData.rewardExtraList[index].writeOffCodeId
: null, // 核销码
redemptionFormId: resData.rewardExtraList[index] ? resData.rewardExtraList[index].formId : null,
productLink: '',
}
if (resData.rewardExtraList[index]) {
if (resData.rewardExtraList[index].type === 0) {
prizeTabItem.formData.link = resData.rewardExtraList[index].link
} else if (resData.rewardExtraList[index].type === 1) {
prizeTabItem.formData.codeHtml = resData.rewardExtraList[index].context || ''
} else if (resData.rewardExtraList[index].type === 2) {
prizeTabItem.formData.customHtml = resData.rewardExtraList[index].context || ''
} else if (resData.rewardExtraList[index].type === 4) {
prizeTabItem.formData.selectText = resData.rewardExtraList[index].context
? resData.rewardExtraList[index].context.split(',')
: ''
prizeTabItem.formData.productLink = resData.rewardExtraList[index].link || ''
}
}
formData.information.prizeTab.push(prizeTabItem)
})
// 海报
resData.imageConfigList.forEach((item) => {
formData.poster.posterFormData.push({
headData: {
show: item.headUrly + item.headUrlx + item.headUrlWidth + item.headUrlHeight == 0 ? false : true,
circle: item.circle,
y: item.headUrlWidth + item.headUrlHeight == 0 ? 20 : parseInt(item.headUrly / 2.5),
x: item.headUrlWidth + item.headUrlHeight == 0 ? 20 : parseInt(item.headUrlx / 2.5),
w: item.headUrlWidth + item.headUrlHeight == 0 ? 60 : parseInt(item.headUrlWidth / 2.5),
h: item.headUrlWidth + item.headUrlHeight == 0 ? 60 : parseInt(item.headUrlHeight / 2.5),
},
nameData: {
y: item.fontSize == 0 ? 20 : parseInt(item.fonty / 2.5),
x: item.fontSize == 0 ? 90 : parseInt(item.fontx / 2.5),
fontSize: item.fontSize,
fontColor: item.fontColor ? item.fontColor.replace('0x', '#') : '',
},
qrData: {
y: item.qrCodeWeight + item.qrCodeHeight == 0 ? 20 : parseInt(item.qrCodey / 2.5),
x: item.qrCodeWeight + item.qrCodeHeight == 0 ? 20 : parseInt(item.qrCodex / 2.5),
w: item.qrCodeWeight + item.qrCodeHeight == 0 ? 60 : parseInt(item.qrCodeWeight / 2.5),
h: item.qrCodeWeight + item.qrCodeHeight == 0 ? 60 : parseInt(item.qrCodeHeight / 2.5),
},
posterForm: {
dr: item.dr || 0,
id: item.id || '',
background: item.background,
},
})
})
formData.configuration = {
groupInfo: resData.groupConfigList,
groupValue: resData.intoGroupType,
version: resData.version,
}
const msgIdTemp = {},
msgTemplateTemp = {}
resData.msgConfigList.forEach((item) => {
msgIdTemp[item.msgType + '_' + item.wxMsgType] = item.id
msgTemplateTemp[item.msgType + '_' + item.wxMsgType] = item.templateId
})
console.log(msgTemplateTemp, 'msgTemplateTemp')
formData.advanced = {
// 存储非页面所用的id
demoWorkEventId: resData.id,
demoWorkEventState: resData.state,
version: resData.version,
msgId: msgIdTemp,
msgTemplateId: msgTemplateTemp,
// 存储非页面所用的id end
enableOnlyNew: resData.enableOnlyNew === 1,
enableRepeat: resData.enableRepeat === 1,
brandEnable: resData.enableBrand === 1,
antiEnable: resData.enableBan === 1,
antiTime: resData.banConfig.limitTime,
antiNum: resData.banConfig.limitNum,
intelligentEnable: resData.antiRush === 1,
}
console.timeEnd()
console.log(formData)
// 输出结构化后的数据
return resolve(formData)
})
})
}
//进群获客活动列表
export function getEventList(params) {
return axios({
url: weichat + 'v1/mp/task/into/group/',
method: 'get',
params,
})
}
//进群获客活动状态修改
export function getEventState(params) {
return axios({
url: weichat + 'v1/mp/task/into/group/state',
method: 'put',
params,
})
}
//进群获客渠道列表
export function getEventQrList() {
return new Promise((resolve) => {
axios({
url: weichat + 'v1/mp/task/into/group/',
method: 'get',
}).then((res) => {
const resData = JSON.parse(JSON.stringify(res.data.obj))
return resolve(resData)
})
})
}
//删除进群获客
export function delEvent(id) {
return axios({
url: weichat + 'v1/mp/task/into/group/' + id,
method: 'delete',
})
}
//进群获客活动复制查看详情详情
export function getEventDetail(id) {
return axios({
url: weichat + 'v1/mp/task/into/group/' + id,
method: 'get',
})
}
//进群活动复制
export function wxaddActivity(data) {
return axios({
headers: { 'Content-Type': 'application/json;charset=UTF-8' },
url: weichat + 'v1/mp/task/into/group/',
method: 'post',
data: data,
})
}
//