UNPKG

xlb-main-login

Version:

``` yarn install ```

520 lines (513 loc) 22.6 kB
import { axios } from '@/utils/request' import { modal_url } from '@/api/config' import { chinaNum } from '@/views/friend/utils/util' const baseWork = '/demo-wechat-work' export function wechatGroup(formData, eventId = '') { const formTemp = {} formTemp.demoWorkEventStaffList = formData.activity.staffList // 活动基本数据 formTemp.demoWorkEvent = { keyword: '', // 关键词 title: formData.activity.name, //活动名称 startTime: formData.activity.startTime, //开始时间 endTime: formData.activity.endTime, // 结束时间 eventType: 4, // 活动类型 对应的值 1好友获客 2任务获客 3红包获客 4群获客 5抽奖获客 enableEventInfo: formData.activity.enableEventInfo ? 1 : 0, //是否开启活动信息 1_开启 0_关闭 enableOnlyNew: formData.seniorofficial.astrictEnable ? 1 : 0, // 助力限制 1_开启 0_关闭 enableRepeat: formData.seniorofficial.helpEnable ? 1 : 0, //助力失效 1_开启 0_关闭 enableBrand: formData.seniorofficial.brandEnable ? 1 : 0, // 是否开启品牌 1_开启 0_关闭 enableTag: formData.seniorofficial.autoTagEnable ? 1 : 0, // 开启自动打标签 1_开启 0_关闭 antiRush: formData.seniorofficial.intelligentEnable ? 1 : 0, // 智能防刷 1_开启 0_关闭 state: formData.seniorofficial.demoWorkEventState || 0, // 状态 对应的值? enableRank: 1, //开启排行榜 1_是 0_否 enableComplaint: 0, // 开启投诉 1_开启 0_关闭 enableExtraReward: 1, // 默认1 btnTitle: '', } if (eventId) { formTemp.demoWorkEvent.id = formData.seniorofficial.demoWorkEventId || '' formTemp.demoWorkEvent.version = formData.activity.version || '' } const rewardExtraConfigListTemp = [] let demoWorkEventRewardListTemp = [] if (formTemp.demoWorkEvent.version === 'FIRST') { const prizeTabTemp = JSON.parse(JSON.stringify(formData.activity.prizeTab)) demoWorkEventRewardListTemp = JSON.parse(JSON.stringify(formData.activity.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.activity.activePrizeSetting.concat(formData.activity.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 = [] // 活动描述和上传封面图 const headMsg = { title: formData.activity.name, description: formData.activity.describe, picPath: formData.activity.headImg, } //活动描述和上传封面图 formTemp.demoWorkEventMsgList.push({ dr: 0, enable: 1, eventId: eventId, id: eventId ? formData.seniorofficial.msgId['18_text'] : '', msg: JSON.stringify(headMsg), msgType: 18, wxMsgType: 'text', }) //活动信息 formTemp.demoWorkEventMsgList.push({ dr: 0, enable: 1, eventId: eventId, id: eventId ? formData.seniorofficial.msgId['22_text'] : '', msg: formData.activity.enableEventHtml, msgType: 22, wxMsgType: 'text', }) //引导进群文案 formTemp.demoWorkEventMsgList.push({ dr: 0, enable: 1, eventId: eventId, mediaId: eventId ? formData.seniorofficial.mediaId['21_text'] : '', id: eventId ? formData.seniorofficial.msgId['21_text'] : '', msg: formData.activity.guidance, msgType: 21, wxMsgType: 'text', }) //群内规则文案 formTemp.demoWorkEventMsgList.push({ dr: 0, enable: 1, eventId: eventId, mediaId: eventId ? formData.seniorofficial.mediaId['20_text'] : '', id: eventId ? formData.seniorofficial.msgId['20_text'] : '', msg: formData.activity.fission, msgType: 20, wxMsgType: 'text', }) // 性别限制文案 formTemp.demoWorkEventMsgList.push({ dr: 0, enable: 1, eventId: eventId, id: eventId ? formData.seniorofficial.msgId['9_text'] : '', msg: formData.seniorofficial.participationText, msgType: 9, wxMsgType: 'text', }) // 奖品信息配置 formTemp.rewardExtraConfigList = rewardExtraConfigListTemp // 群配置 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 // 海报配置 带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.seniorofficial.participationEnable ? 1 : 0, // 是否开启拦截 1_开启 0_关闭 eventId: eventId, // 对应活动的id id: formData.seniorofficial.demoWorkEventLimitConfigId || '', // 新增为空 编辑时有接口返回默认值 sexWhiteList: formData.seniorofficial.genderId.join(), // 性别 黑名单("1,2")1:男,2:女,0:未知 } // 防刷检测 formTemp.demoWorkEventBanConfig = { enable: formData.seniorofficial.antiEnable ? 1 : 0, // 是否开启防刷检测 1_开启 0_关闭 eventId: eventId, // 对应活动的id id: formData.seniorofficial.demoWorkEventBanConfigId || '', // 新增为空 编辑时有接口返回默认值 limitNum: formData.seniorofficial.antiNum, // 检测数量(人) limitTime: formData.seniorofficial.antiTime, // 触发检测时间(秒) } // 标签规则信息 带dr formTemp.demoWorkEventTagList = [] if (formData.seniorofficial.autoTagEnable) { formData.seniorofficial.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 == 1) { tagItemTemp.num = item.userNum } else if (item.type == 5) { tagItemTemp.num = item.ladder } else if (item.type == 4) { tagItemTemp.num = item.levelNum } else { tagItemTemp.num = 0 } formTemp.demoWorkEventTagList.push(tagItemTemp) }) } console.log(formTemp, 'formTemp') return axios({ headers: { 'Content-Type': 'application/json;charset=UTF-8' }, url: modal_url + baseWork + '/v1/wechat/work/event/4', 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 quneditActivity(id) { const formData = { activity: {}, configuration: {}, poster: { posterFormData: [], }, seniorofficial: {}, } return new Promise((resolve, reject) => { axios({ url: modal_url + baseWork + '/v1/wechat/work/event/4/' + id + '/', method: 'get', }).then((res) => { console.log(res.data.obj, 'res.data.obj') const resData = JSON.parse(JSON.stringify(res.data.obj)) formData.activity = { enableEventHtml: getMagItem(22, resData.demoWorkEventMsgList), enableEventInfo: resData.demoWorkEvent.enableEventInfo == 1 ? true : false, startTime: resData.demoWorkEvent.startTime, endTime: resData.demoWorkEvent.endTime, name: resData.demoWorkEvent.title, describe: JSON.parse(getMagItem(18, resData.demoWorkEventMsgList, 'msg', 'text')).description, headImg: JSON.parse(getMagItem(18, resData.demoWorkEventMsgList, 'msg', 'text')).picPath, guidance: getMagItem(21, resData.demoWorkEventMsgList, 'msg', 'text'), fission: getMagItem(20, resData.demoWorkEventMsgList, 'msg', 'text'), 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.activity.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.activity.prizeTab.push(prizeTabItem) }) //群配置 resData.groupConfigList.sort(function (a, b) { var x = 'groupNum' //要排序字段 if (a[x] < b[x]) { return -1 } if (a[x] > b[x]) { return 1 } return 0 }) if (resData.groupConfigList && resData.groupConfigList.length) { formData.configuration = { version: resData.demoWorkEvent.version, groupInfo: resData.groupConfigList, groupValue: resData.groupConfigList[0].intoGroupType, } } //海报 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, }, }) }) const msgIdTemp = {}, mediaIdTemp = {} resData.demoWorkEventMsgList.forEach((item) => { msgIdTemp[item.msgType + '_' + item.wxMsgType] = item.id mediaIdTemp[item.msgType + '_' + item.wxMsgType] = item.mediaId }) console.log(mediaIdTemp, 'mediaIdTemp') formData.seniorofficial = { // 存储非页面所用的id demoWorkEventId: resData.demoWorkEvent.id, demoWorkEventState: resData.demoWorkEvent.state, demoWorkEventLimitConfigId: resData.demoWorkEventLimitConfig.id, demoWorkEventBanConfigId: resData.demoWorkEventBanConfig.id, msgId: msgIdTemp, mediaId: mediaIdTemp, //end astrictEnable: 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 == 1) { tagItem.userNum = item.num } else if (item.type == 5) { tagItem.ladder = item.num } else if (item.type == 4) { tagItem.levelNum = item.num } formData.seniorofficial.tagList.push(tagItem) }) } console.log(formData) return resolve(formData) }) }) }