UNPKG

xlb-main-login

Version:

``` yarn install ```

541 lines (537 loc) 23 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 = '') { console.log(formData.reminder.fissionText, 'formData.reminder.fissionText') const formTemp = {} // demoWorkEventStaffList 获客成员 formTemp.demoWorkEventStaffList = formData.information.staffList // demoWorkEvent 活动基本数据 formTemp.demoWorkEvent = { keyword: '', // 关键词 title: formData.information.name, endTime: moment(formData.information.endTime).format('YYYY-MM-DD HH:mm:ss'), // 结束时间 eventType: 1, // 活动类型 对应的值 1好友获客 2任务获客 3红包获客 4群获客 5抽奖获客 enableComplaint: 0, // 开启投诉 1_开启 0_关闭 enableOnlyNew: formData.advanced.newUserTextEnable ? 1 : 0, // 开启新用户参与 1_开启 0_关闭 enableRepeat: formData.advanced.helpEnable ? 1 : 0, // 开启重复助力 1_开启 0_关闭 enableRank: 1, //开启排行榜 1_是 0_否 // "maxNum": 0, // 活动最大参与用户数量 state: formData.advanced.demoWorkEventState || 0, // 状态 对应的值? enableEventInfo: formData.information.enableEventInfo ? 1 : 0, //是否开启活动信息 1_开启 0_关闭 enableBrand: formData.advanced.brandEnable ? 1 : 0, // 是否开启品牌 1_开启 0_关闭 enableTag: formData.advanced.autoTagEnable ? 1 : 0, // 开启自动打标签 1_开启 0_关闭 enableExtraReward: 1, // 默认1 antiRush: formData.advanced.intelligentEnable ? 1 : 0, // 智能防刷 1_开启 0_关闭 } if (eventId) { formTemp.demoWorkEvent.id = formData.advanced.demoWorkEventId || '' formTemp.demoWorkEvent.version = formData.information.version || '' } const rewardExtraConfigListTemp = [] let demoWorkEventRewardListTemp = [] if (formTemp.demoWorkEvent.version === 'FIRST') { const prizeTabTemp = JSON.parse(JSON.stringify(formData.information.prizeTab)) demoWorkEventRewardListTemp = JSON.parse(JSON.stringify(formData.information.tableDataTemp)) 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].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 || '', link: '', formId: prizeTabTemp[index].formData.formId || '', context: '', } 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) } }) } else { const temp = formData.information.activePrizeSetting.concat(formData.information.activePrizeSettingTemp) temp.forEach((item, index) => { const temp = {} temp.dr = item.dr || 0 temp.id = item.id || '' temp.eventId = eventId temp.grade = index + 1 temp.enableRemain = item.enableRemain ? 1 : 0 temp.enable = 1 temp.inviteNum = item.inviteNum temp.rewardNum = item.rewardNum temp.rewardName = item.rewardName temp.rewardImage = item.rewardImage demoWorkEventRewardListTemp.push(temp) const rewardData = { grade: index + 1, type: item.type, enable: item.enable ? 1 : 0, redemptionCodeId: item.redemptionCodeId || '', writeOffCodeId: item.writeOffCodeId || '', link: '', formId: item.formId || '', context: '', id: item.id, dr: item.dr || 0, } if (item.type == 0) { rewardData.link = item.link } else if (item.type == 1) { rewardData.context = item.codeHtml } else if (item.type == 2) { rewardData.context = item.customHtml } else if (item.type == 4) { rewardData.context = item.selectText.join() rewardData.link = item.productLink } else { rewardData.context = '' } rewardData.dr === 0 && rewardExtraConfigListTemp.push(rewardData) }) } //奖励阶梯 带dr formTemp.demoWorkEventRewardList = demoWorkEventRewardListTemp // 文案列表 formTemp.demoWorkEventMsgList = [] // 裂变规则文案 formTemp.demoWorkEventMsgList.push({ dr: 0, enable: 1, eventId: eventId, grade: 1, id: eventId ? formData.advanced.msgId['0_text'] : '', // mediaId: '', msg: formData.reminder.fissionText, msgType: 0, wxMsgType: 'text', }) // 成功助力好友推送文案 formTemp.demoWorkEventMsgList.push({ dr: 0, enable: 1, eventId: eventId, grade: 1, id: eventId ? formData.advanced.msgId['1_text'] : '', // mediaId: '', msg: formData.reminder.successfully, msgType: 1, wxMsgType: 'text', }) // 用户重复助力提醒文案 formTemp.demoWorkEventMsgList.push({ dr: 0, enable: 1, eventId: eventId, grade: 1, // mediaId: '', id: eventId ? formData.advanced.msgId['4_text'] : '', msg: formData.reminder.repeatedText, msgType: 4, wxMsgType: 'text', }) // 活动结束文案 formTemp.demoWorkEventMsgList.push({ dr: 0, enable: formData.reminder.endTextEnable ? 1 : 0, eventId: eventId, grade: 1, // mediaId: '', id: eventId ? formData.advanced.msgId['6_text'] : '', msg: formData.reminder.endText, msgType: 6, wxMsgType: 'text', }) // 活动结束图片 formTemp.demoWorkEventMsgList.push({ dr: 0, enable: formData.reminder.endImgEnable ? 1 : 0, eventId: eventId, grade: 1, // mediaId: '', id: eventId ? formData.advanced.msgId['6_image'] : '', msg: formData.reminder.endImg, msgType: 6, wxMsgType: 'image', }) // 助力失效控制 formTemp.demoWorkEventMsgList.push({ dr: 0, enable: formData.advanced.helpEnable ? 1 : 0, eventId: eventId, grade: 1, msg: '', msgType: 7, id: eventId ? formData.advanced.msgId['7_text'] : '', wxMsgType: 'text', }) // 新添加用户才能给好友助力 formTemp.demoWorkEventMsgList.push({ dr: 0, enable: formData.advanced.newUserTextEnable ? 1 : 0, eventId: eventId, grade: 1, msg: formData.advanced.newUserText, msgType: 8, id: eventId ? formData.advanced.msgId['8_text'] : '', wxMsgType: 'text', }) // 参与限制提示语 formTemp.demoWorkEventMsgList.push({ dr: 0, enable: formData.advanced.participationEnable ? 1 : 0, eventId: eventId, grade: 1, msg: formData.advanced.participationText, msgType: 9, id: eventId ? formData.advanced.msgId['9_text'] : '', wxMsgType: 'text', }) // 活动信息 formTemp.demoWorkEventMsgList.push({ dr: 0, enable: formData.information.enableEventInfo ? 1 : 0, eventId: eventId, grade: 1, id: eventId ? formData.advanced.msgId['23_text'] : '', msg: formData.information.enableEventHtml, msgType: 23, wxMsgType: 'text', }) // 奖品信息配置 formTemp.rewardExtraConfigList = rewardExtraConfigListTemp // 海报配置 带dr formTemp.demoWorkEventImageConfigList = [] formData.poster.posterFormData.forEach((item) => { formTemp.demoWorkEventImageConfigList.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.demoWorkEventLimitConfig = { enableLimit: formData.advanced.participationEnable ? 1 : 0, // 是否开启拦截 1_开启 0_关闭 eventId: eventId, // 对应活动的id id: formData.advanced.demoWorkEventLimitConfigId || '', // 新增为空 编辑时有接口返回默认值 sexWhiteList: formData.advanced.genderId.join(), // 性别 黑名单("1,2")1:男,2:女,0:未知 } // 防刷检测 formTemp.demoWorkEventBanConfig = { enable: formData.advanced.antiEnable ? 1 : 0, // 是否开启防刷检测 1_开启 0_关闭 eventId: eventId, // 对应活动的id id: formData.advanced.demoWorkEventBanConfigId || '', // 新增为空 编辑时有接口返回默认值 limitNum: formData.advanced.antiNum, // 检测数量(人) limitTime: formData.advanced.antiTime, // 触发检测时间(秒) } // 标签规则信息 带dr formTemp.demoWorkEventTagList = [] if (formData.advanced.autoTagEnable) { formData.advanced.tagList.forEach((item, index) => { const tagItemTemp = { sort: index, // 顺序 id: item.id || '', dr: item.dr || 0, // 新增默认为0 enable: 1, // 默认开启 1 1_开启 0_关闭 type: item.type, // 规则 0_全部 1_达成阶梯 2_入群用户 3_新增好友 4_用户级别 5_用户类型 // 标签数组 带dr demoWorkEventTagDetailList: item.tagList, } if (item.type == 2) { tagItemTemp.num = item.userNum } else if (item.type == 1) { tagItemTemp.num = item.ladder } else if (item.type == 4) { tagItemTemp.num = item.levelNum } else if (item.type == 5) { tagItemTemp.num = item.userType } else { tagItemTemp.num = 0 } formTemp.demoWorkEventTagList.push(tagItemTemp) }) } console.log(formData) console.log(formTemp) //新增好友获客活动 return axios({ headers: { 'Content-Type': 'application/json;charset=UTF-8' }, url: weichat + 'v1/wechat/work/event/1', 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: [], }, reminder: {}, advanced: {}, } return new Promise((resolve, reject) => { axios({ url: weichat + 'v1/wechat/work/event/1/' + id, method: 'get', }).then((res) => { const resData = JSON.parse(JSON.stringify(res.data.obj)) formData.information = { enableEventHtml: getMagItem(23, resData.demoWorkEventMsgList), enableEventInfo: resData.demoWorkEvent.enableEventInfo == 1 ? true : false, endTime: resData.demoWorkEvent.endTime, name: resData.demoWorkEvent.title, prizeTab: [], staffList: resData.demoWorkEventStaffList, tableDataTemp: [], version: resData.demoWorkEvent.version, activePrizeSetting: resData.demoWorkEventRewardList .filter((val) => val.dr === 0) .map((value, index) => { const configValue = resData.rewardExtraConfigList[index] console.log('huo', configValue) let temp = { id: value.id, // 如果id丢失为新增 grade: value.grade, rewardName: value.rewardName, // 奖品名称 rewardImage: value.rewardImage, // 奖品图片 rewardNum: value.rewardNum, // 奖品总数 enableRemain: value.enableRemain === 1, // 是否开启奖品剩余数量 remain: value.remain, // 奖品剩余数量 inviteNum: value.inviteNum, // 自定义字段---- 邀请人数 type: configValue.type, // 领奖方式 enable: value.enable, eventId: value.eventId, } // type 0 链接 1兑换码 2自定义 5核销 3表单 4有赞 if (configValue.type == 0) { temp = { ...temp, link: configValue.link, // 跳转链接 } } if (configValue.type == 1) { temp = { ...temp, redemptionCodeId: configValue.redemptionCodeId, // 兑换码 codeHtml: configValue.context || '', // 兑换码规则 } } if (configValue.type == 2) { temp = { ...temp, customHtml: configValue.context || '', // 自定义页面 } } if (configValue.type == 3) { temp = { ...temp, formId: configValue.formId, // form表单 } } if (configValue.type == 4) { temp = { ...temp, selectText: configValue.context.split(','), // 有赞标签 productLink: configValue.link, // 有赞商品链接 } } if (configValue.type == 5) { temp = { ...temp, type: configValue.type, // 领奖方式 writeOffCodeId: configValue.writeOffCodeId, // 核销码 } } return temp }), activePrizeSettingTemp: resData.demoWorkEventRewardList.filter((val) => val.dr === 1), } resData.demoWorkEventRewardList.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, }) const prizeTabItem = { enableRemain: item.enableRemain, grade: chinaNum(index + 1) + '级阶梯', inviteNum: item.inviteNum, rewardNum: item.rewardNum, remain: item.remain, formData: { type: resData.rewardExtraConfigList[index] ? resData.rewardExtraConfigList[index].type : 0, link: '', selectText: [], codeHtml: '', customHtml: '', redemptionCodeId: resData.rewardExtraConfigList[index] ? resData.rewardExtraConfigList[index].redemptionCodeId : null, formId: resData.rewardExtraConfigList[index] ? resData.rewardExtraConfigList[index].formId : null, productLink: '', }, } if (resData.rewardExtraConfigList[index]) { if (resData.rewardExtraConfigList[index].type == 0) { prizeTabItem.formData.link = resData.rewardExtraConfigList[index].link } else if (resData.rewardExtraConfigList[index].type == 1) { prizeTabItem.formData.codeHtml = resData.rewardExtraConfigList[index].context || '' } else if (resData.rewardExtraConfigList[index].type == 2) { prizeTabItem.formData.customHtml = resData.rewardExtraConfigList[index].context || '' } else if (resData.rewardExtraConfigList[index].type == 4) { prizeTabItem.formData.selectText = resData.rewardExtraConfigList[index].context ? resData.rewardExtraConfigList[index].context.split(',') : '' prizeTabItem.formData.productLink = resData.rewardExtraConfigList[index].link || '' } } formData.information.prizeTab.push(prizeTabItem) }) //海报 resData.demoWorkEventImageConfigList.forEach((item, index) => { 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.reminder = { fissionText: getMagItem(0, resData.demoWorkEventMsgList), successfully: getMagItem(1, resData.demoWorkEventMsgList), repeatedText: getMagItem(4, resData.demoWorkEventMsgList), endText: getMagItem(6, resData.demoWorkEventMsgList, 'msg', 'text'), endTextEnable: getMagItem(6, resData.demoWorkEventMsgList, 'enable', 'text') == 1 ? true : false, endImgEnable: getMagItem(6, resData.demoWorkEventMsgList, 'enable', 'image') == 1 ? true : false, endImg: getMagItem(6, resData.demoWorkEventMsgList, 'msg', 'image'), } const msgIdTemp = {} resData.demoWorkEventMsgList.forEach((item) => { msgIdTemp[item.msgType + '_' + item.wxMsgType] = item.id }) formData.advanced = { // 存储非页面所用的id demoWorkEventId: resData.demoWorkEvent.id, demoWorkEventState: resData.demoWorkEvent.state, demoWorkEventLimitConfigId: resData.demoWorkEventLimitConfig.id, demoWorkEventBanConfigId: resData.demoWorkEventBanConfig.id, msgId: msgIdTemp, // 存储非页面所用的id end newUserText: getMagItem(8, resData.demoWorkEventMsgList), newUserTextEnable: resData.demoWorkEvent.enableOnlyNew == 1 ? true : false, helpEnable: resData.demoWorkEvent.enableRepeat ? true : false, brandEnable: resData.demoWorkEvent.enableBrand == 1 ? true : false, participationEnable: resData.demoWorkEventLimitConfig.enableLimit == 1 ? true : false, participationText: getMagItem(9, resData.demoWorkEventMsgList), genderId: resData.demoWorkEventLimitConfig.sexWhiteList !== '' ? resData.demoWorkEventLimitConfig.sexWhiteList.split(',') : [], antiEnable: resData.demoWorkEventBanConfig.enable == 1 ? true : false, antiTime: resData.demoWorkEventBanConfig.limitTime, antiNum: resData.demoWorkEventBanConfig.limitNum, intelligentEnable: resData.demoWorkEvent.antiRush == 1 ? true : false, autoTagEnable: resData.demoWorkEvent.enableTag == 1 ? true : false, tagList: [], } if (resData.demoWorkEventTagList && resData.demoWorkEventTagList.length >= 1) { resData.demoWorkEventTagList.forEach((item, index) => { const tagItem = { id: item.id || '', dr: item.dr || 0, type: item.type, userNum: 1, ladder: 1, levelNum: 1, userType: 1, tagList: item.demoWorkEventTagDetailList, } if (item.type == 2) { tagItem.userNum = item.num } else if (item.type == 1) { tagItem.ladder = item.num } else if (item.type == 4) { tagItem.levelNum = item.num } else if (item.type == 5) { tagItem.userType = item.num } formData.advanced.tagList.push(tagItem) }) } // 输出结构化后的数据 return resolve(formData) }) }) }