UNPKG

xlb-main-login

Version:

``` yarn install ```

406 lines (382 loc) 16.7 kB
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, }) } //