xlb-main-login
Version:
``` yarn install ```
321 lines (291 loc) • 11.9 kB
JavaScript
import { wei_url } from '../config'
import { axios } from '@/utils/request'
import moment from 'moment'
const baseUrl = '/demo-wechat-work/v1/wechat/work/'
const Url = 'http://192.168.105.145:8082/v1/wechat/work'
const keyMsg = {
image: 'image',
text: 'endText',
form: 'redemptionFormId',
redPacket: 'redPacketId',
commodity: 'commodityId',
radar: 'radarId'
}
//新增分组
export function addGrouping(data, type) {
return axios({
headers: { 'Content-Type': 'application/json;charset=UTF-8' },
url: wei_url + baseUrl + `source/${type}/group`,
method: 'post',
data
})
}
//分组列表
export function groupingList(type) {
return axios({
url: wei_url + baseUrl + `source/${type}/group`,
method: 'get'
})
}
//修改分组名称
export function namendGroupName(data, type) {
return axios({
headers: { 'Content-Type': 'application/json;charset=UTF-8' },
url: wei_url + baseUrl + `source/${type}/group`,
method: 'put',
data
})
}
//删除分组
export function deleteGroupName(type, id) {
return axios({
url: wei_url + baseUrl + `source/${type}/group/${id}`,
method: 'delete'
})
}
//分组移动
export function moveGrouping(type, data) {
return axios({
headers: { 'Content-Type': 'application/json;charset=UTF-8' },
url: wei_url + baseUrl + `source/${type}/group/move`,
method: 'put',
data
})
}
//数据导出
export function groupingExcel(params, type) {
return axios({
url: wei_url + `/demo-wechat-work/v1/wechat/work/source/${type}/data/export/source`,
method: 'get',
params
})
}
//数据分析 成员分析列表
export function memberList(id, type) {
return axios({
url: wei_url + `/demo-wechat-work/v1/wechat/work/source/${type}/staff/${id}`,
method: 'get'
})
}
//渠道码新增编辑
export function addChannel(formData, eventId = '', type) {
var obj = {}
console.log(formData)
formData.quDaoHuoMaCreate.staffList.reduce((item, next) => {
// 判断obj 对象里面有没有 userId 的值。
// 如果有 说明 其他的重复数据的dr 为 1
// 如果没有重复的数据 就将没有重复的数据 放到 item 里面
obj[next.userId] ? (next.dr = 1) : (obj[next.userId] = true && item.push(next))
// 这个返回的item 就是所有 不重复的数据
return item
}, [])
const formTemp = {}
formTemp.msgList = formData.quDaoHuoMaCreate.msgList //附加话术 欢迎语
if (eventId) {
formTemp.id = eventId || ''
formData.quDaoHuoMaCreate.msgList[0].id = formData.quDaoHuoMaCreate.wenanId || ''
}
formTemp.name = formData.quDaoHuoMaCreate.name //渠道名称
formTemp.groupId = formData.quDaoHuoMaCreate.groupId //分组id
formTemp.staffList = formData.quDaoHuoMaCreate.staffList //使用成员
formTemp.tagList = formData.quDaoHuoMaCreate.tagList //标签
if (formTemp.tagList && formTemp.tagList.length > 0) {
formTemp.tagList.map((item) => {
item.sort = 0
})
}
formTemp.type = formData.quDaoHuoMaCreate.type
formTemp.enable = formData.quDaoHuoMaCreate.enable
formData.quDaoAdvanced.memberTable.forEach((item) => {
if (item.maxCount == '不限制') {
item.maxCount = 0
}
})
formTemp.remarkEnable = formData.quDaoAdvanced.remarkEnable //客户备注
formTemp.ruleMessageEnable = formData.quDaoAdvanced.ruleMessageEnable //分时段欢迎语
formTemp.cusMaxEnable = formData.quDaoAdvanced.cusMaxEnable //成员添加上限
formTemp.remarkType = formData.quDaoAdvanced.remarkForm.remarkType //客户备注类型
formTemp.remark = formData.quDaoAdvanced.remarkForm.remark //客户备注内容
formTemp.staffMaxCount = formData.quDaoAdvanced.memberTable //成员限制表格
if (formTemp.cusMaxEnable) {
var diff = []
formTemp.staffMaxCount.forEach((item) => {
item.enable = item.countEnable
diff.push(item.userId)
})
formTemp.staffList.forEach((item) => {
if (!diff.includes(item.userId)) {
item.dr = 1
}
if (item.maxCount == '不限制') {
item.maxCount = 0
}
})
}
formTemp.cusMaxEnable = formData.quDaoAdvanced.cusMaxEnable //成员添加上限内容
formTemp.ruleMessage = []
if (formData.quDaoAdvanced.regionTabs.ruleMessage) {
formData.quDaoAdvanced.regionTabs.ruleMessage.forEach((item, index) => {
const itemTemp = {
dayOfWeek: item.dayOfWeek.map(Number),
startTime: moment(item.startTime).format('HH:mm'),
endTime: moment(item.endTime).format('HH:mm'),
msgDetailList: []
}
item.msgDetailList.forEach((formData) => {
if (formData.workMsgType == 'link') {
itemTemp.msgDetailList.push({
workMsgType: formData.workMsgType,
msg: JSON.stringify({
url: formData.url,
title: formData.title,
picurl: formData.picurl,
desc: formData.desc
})
})
} else if (formData.workMsgType == 'miniprogram') {
itemTemp.msgDetailList.push({
workMsgType: formData.workMsgType,
msg: JSON.stringify({
appTitle: formData.appTitle,
appid: formData.appid,
page: formData.page,
appPicture: formData.appPicture
})
})
} else {
itemTemp.msgDetailList.push({
workMsgType: formData.workMsgType,
msg: formData[keyMsg[formData.workMsgType]]
})
}
})
formTemp.ruleMessage.push(itemTemp)
})
}
console.log(formTemp)
//新增 编辑渠道活码
return axios({
headers: { 'Content-Type': 'application/json;charset=UTF-8' },
url: wei_url + '/demo-wechat-work/v1/wechat/work/' + `/source/${type}`,
method: eventId !== '' ? 'put' : 'post',
data: formTemp
})
}
//渠道码详情
export function getChannel(type, id) {
const formData = {
quDaoHuoMaCreate: {},
quDaoAdvanced: {}
}
return new Promise((resolve, reject) => {
axios({
url: wei_url + baseUrl + `/source/${type}/${id}`,
method: 'get'
}).then((res) => {
const valueObject = res.value
const huashuList = []
let msg = ''
let wenanId = ''
if (valueObject.msgList) {
valueObject.msgList.forEach((msgData, index) => {
if (index == 0) {
msg = msgData.workMsgType == 'text' ? msgData.msg : ''
wenanId = msgData.workMsgType == 'text' ? msgData.id : ''
}
if (index >= 1) {
huashuList.push({
inputshow: true, //显示字符限制
workMsgType: msgData.workMsgType, //类型
id: msgData.id,
dr: msgData.dr,
image: msgData.workMsgType == 'image' ? msgData.msg : '', //图片
title: msgData.workMsgType == 'link' ? JSON.parse(msgData.msg).title : '', //图文标题
desc: msgData.workMsgType == 'link' ? JSON.parse(msgData.msg).desc : '', //图文描述
url: msgData.workMsgType == 'link' ? JSON.parse(msgData.msg).url : '', //图文链接
picurl: msgData.workMsgType == 'link' ? JSON.parse(msgData.msg).picurl : '', //图文图片
appTitle: msgData.workMsgType == 'miniprogram' ? JSON.parse(msgData.msg).title : '', //小程序标题
appid: msgData.workMsgType == 'miniprogram' ? JSON.parse(msgData.msg).appid : '', //小程序appid
page: msgData.workMsgType == 'miniprogram' ? JSON.parse(msgData.msg).page : '', //小程序页面路径
appPicture: msgData.workMsgType == 'miniprogram' ? JSON.parse(msgData.msg).msg: '', //小程序添加图片
redemptionFormId: msgData.workMsgType == 'form' ? msgData.msg : '', //表单ID
redPacketId: msgData.workMsgType == 'redPacket' ? msgData.msg : '', //红包ID
commodityId: msgData.workMsgType == 'commodity' ? msgData.msg : '', //商品ID
radarId: msgData.workMsgType == 'radar' ? msgData.msg : '' //雷达ID
})
}
})
valueObject.msgList = huashuList[0] || {}
}
formData.quDaoHuoMaCreate = {
name: valueObject.name, //渠道名称
groupId: valueObject.groupId, //分组id
staffList: valueObject.staffList, //使用成员
tagList: valueObject.tagList, //标签
enable: valueObject.enable, //附加话术开关
huashuList: huashuList,
msgList: valueObject.msgList,
msg: msg,
wenanId: wenanId
}
const itemTempLst = []
if (valueObject.staffMaxCount && valueObject.staffMaxCount.length > 0) {
valueObject.staffMaxCount.forEach((item) => {
if (item.maxCount == '0') {
item.maxCount = '不限制'
}
})
}
formData.quDaoAdvanced = {
remarkEnable: valueObject.remarkEnable, //客户备注开关
ruleMessageEnable: valueObject.ruleMessageEnable, //分时段欢迎语
remarkForm: {
remarkType: valueObject.remarkType,
remark: valueObject.remark
},
cusMaxEnable: valueObject.cusMaxEnable,
ruleMessage: itemTempLst,
staffMaxCount: valueObject.staffMaxCount ? valueObject.staffMaxCount : [],
staffList: valueObject.staffList
}
if (
formData.quDaoAdvanced &&
formData.quDaoAdvanced.remarkForm &&
formData.quDaoAdvanced.remarkForm.remarkType == undefined
) {
formData.quDaoAdvanced.remarkForm.remarkType = 1
}
if (valueObject.ruleMessage) {
valueObject.ruleMessage.forEach((item) => {
const msgTempObj = {
dayOfWeek: item.dayOfWeek.map(String) || [],
startTime: item.startTime,
endTime: item.endTime,
msgDetailList: []
}
item.msgDetailList.forEach((msgData) => {
msgTempObj.msgDetailList.push({
workMsgType: msgData.workMsgType,
endText: msgData.workMsgType == 'text' ? msgData.msg : '', //欢迎语
image: msgData.workMsgType == 'image' ? msgData.msg : '', //图片
title: msgData.workMsgType == 'link' ? JSON.parse(msgData.msg).title : '', //图文标题
desc: msgData.workMsgType == 'link' ? JSON.parse(msgData.msg).desc : '', //图文描述
url: msgData.workMsgType == 'link' ? JSON.parse(msgData.msg).url : '', //图文链接
picurl: msgData.workMsgType == 'link' ? JSON.parse(msgData.msg).picurl : '', //图文图片
appTitle: msgData.workMsgType == 'miniprogram' ? JSON.parse(msgData.msg).appTitle : '', //小程序标题
appid: msgData.workMsgType == 'miniprogram' ? JSON.parse(msgData.msg).appid : '', //小程序appid
page: msgData.workMsgType == 'miniprogram' ? JSON.parse(msgData.msg).page : '', //小程序页面路径
appPicture: msgData.workMsgType == 'miniprogram' ? JSON.parse(msgData.msg).appPicture : '', //小程序添加图片
redemptionFormId: msgData.workMsgType == 'form' ? msgData.msg : '', //表单ID
redPacketId: msgData.workMsgType == 'redPacket' ? msgData.msg : '', //红包ID
commodityId: msgData.workMsgType == 'commodity' ? msgData.msg : '', //商品ID
radarId: msgData.workMsgType == 'radar' ? msgData.msg : '' //雷达ID
})
})
itemTempLst.push(msgTempObj)
})
}
return resolve(formData)
})
})
}