/** * Created 机构订单图表 by zjy on 2023/02/10. */ const getDateStr = function(dd, addCount) { dd.setDate(dd.getDate() + addCount);//获取addCount天后的日期 var y = dd.getFullYear(); var m = (dd.getMonth() + 1) < 10 ? "0" + (dd.getMonth() + 1) : (dd.getMonth() + 1);//获取当前月份的日期,不足10补0 var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate(); return y + "/" + m + "/" + d; } // PC const isPC = ($(window).width() > 768); //默认参数 const defaultParams = { clubID:$('#clubId').val()*1,// 机构id dateType:0,// 日期类别 0日 1月 2半年 3全年 startTime:'',// 开始时间 endTime:'',// 结束时间 type:0// 统计类别 0订单 1搜索关键词 2咨询记录 3访问记录 4初始状态 } //默认参数 const defaultDemand = { clubID:$('#clubId').val()*1,// 机构id dateType:0,// 日期类别 0日 1月 2半年 3全年 startTime:'',// 开始时间 endTime:'',// 结束时间 } // 默认时间 const startDate = getDateStr(new Date(), -365), endDate = getDateStr(new Date(), 0); // 初始化客户需求选择时间控件 const getInfoDemandDate = function () { $('#customerDemandData').dateRangePicker({ language: 'cn', startDate: startDate, endDate: endDate, format: 'YYYY-MM-DD', showShortcuts: false, autoClose: isPC, isNowrap: false, getValue: function () { if (defaultParams.startTime && defaultParams.endTime) { return defaultParams.startTime + ' to ' + defaultParams.endTime; } else { return ''; } }, setValue: function (s, s1, s2) { defaultParams.startTime = s1; defaultParams.endTime = s2; $('#demandStart').val(s1); $('#demandEnd').val(s2); if (defaultParams.startTime && defaultParams.endTime) { $('#customerDemand').find('a').removeClass('active'); getDemandData(0) } } }); } // 初始化订单选择时间控件 const getInfoOrderDate = function () { $('#orderDate').dateRangePicker({ language: 'cn', startDate: startDate, endDate: endDate, format: 'YYYY-MM-DD', showShortcuts: false, autoClose: isPC, isNowrap: false, getValue: function () { if (defaultParams.startTime && defaultParams.endTime) { return defaultParams.startTime + ' to ' + defaultParams.endTime; } else { return ''; } }, setValue: function (s, s1, s2) { defaultParams.startTime = s1; defaultParams.endTime = s2; $('#orderTimeStart').val(s1); $('#orderTimeEnd').val(s2); if (defaultParams.startTime && defaultParams.endTime) { $('#orderTabs').find('a').removeClass('active'); getClubEacthsData(0,0) } } }); } // 初始化关键词选择时间控件 const getInfoKeyWordsDate = function () { $('#keyWordsDate').dateRangePicker({ language: 'cn', startDate: startDate, endDate: endDate, format: 'YYYY-MM-DD', showShortcuts: false, autoClose: isPC, isNowrap: false, getValue: function () { if (defaultParams.startTime && defaultParams.endTime) { return defaultParams.startTime + ' to ' + defaultParams.endTime; } else { return ''; } }, setValue: function (s, s1, s2) { defaultParams.startTime = s1; defaultParams.endTime = s2; $('#keyWordsTimeStart').val(s1); $('#keyWordsTimeEnd').val(s2); if (defaultParams.startTime && defaultParams.endTime) { $('#keyWordTabs').find('a').removeClass('active'); getClubEacthsData(1,0) } } }); } // 初始化咨询选择时间控件 const getInfoServiceDate = function () { $('#serviceDate').dateRangePicker({ language: 'cn', startDate: startDate, endDate: endDate, format: 'YYYY-MM-DD', showShortcuts: false, autoClose: isPC, isNowrap: false, getValue: function () { if (defaultParams.startTime && defaultParams.endTime) { return defaultParams.startTime + ' to ' + defaultParams.endTime; } else { return ''; } }, setValue: function (s, s1, s2) { defaultParams.startTime = s1; defaultParams.endTime = s2; $('#serviceTimeStart').val(s1); $('#serviceTimeEnd').val(s2); if (defaultParams.startTime && defaultParams.endTime) { $('#serviceTabs').find('a').removeClass('active'); getClubEacthsData(2,0) } } }); } // 初始化访问记录选择时间控件 const getInfoVisitDate = function () { $('#visitDate').dateRangePicker({ language: 'cn', startDate: startDate, endDate: endDate, format: 'YYYY-MM-DD', showShortcuts: false, autoClose: isPC, isNowrap: false, getValue: function () { if (defaultParams.startTime && defaultParams.endTime) { return defaultParams.startTime + ' to ' + defaultParams.endTime; } else { return ''; } }, setValue: function (s, s1, s2) { defaultParams.startTime = s1; defaultParams.endTime = s2; $('#visitTimeStart').val(s1); $('#visitTimeEnd').val(s2); if (defaultParams.startTime && defaultParams.endTime) { $('#visitTabs').find('a').removeClass('active'); getClubEacthsData(3,0) } } }); } const getDemandData = function (dateType) { console.log('客户客户'); console.log('url', $('#demandUrl').val(),); defaultDemand.dateType = dateType; $.ajax({ url: $('#demandUrl').val(), type: "GET", data: defaultDemand, contentType : 'application/json;charset=UTF-8', success: function (data) { $('#demandStart').val(data.startTime); $('#demandEnd').val(data.endTime); if (data.demandList.length > 0) { $('#demandEnd').val(data.endTime); $('#demandStart').val(data.startTime); $('#demand').empty(); data.demandList.forEach((item) => { console.log(item) $('#demand').append(''+ item +'') // $('.span_tab').append(item) // $('#demand').append(text) }) } else { $('#demand').html('
暂无数据
') } } }) } // 数据接口请求 const getClubEacthsData = function (type,dateType) { defaultParams.type = type; defaultParams.dateType = dateType; $.ajax({ url: $('#eachtsAjaxUrl').val(), type: "GET", data: defaultParams, contentType : 'application/json;charset=UTF-8', //contentType很重要 success: function (data) { if (data.code === 0) { switch (type) { case 0: if(!data.order){ $('#orderEacthsNone').show(); $('#orderEacths').hide(); $('.eachts-total').hide(); $('#orderTimeEnd').val(data.portrait.endTime); $('#orderTimeStart').val(data.portrait.startTime); $('#orderScopeNum').text('¥0 (0个)'); }else{ setOrderData(type,data) } break; case 1: if(!data.behavior){ $('#keyWordsEacthsNone').show(); $('#keyWordsEacths').hide(); $('#keyWordsTimeEnd').val(data.portrait.endTime); $('#keyWordsTimeStart').val(data.portrait.startTime); $('#keyWordsScopeNum').text(`0(个)`); }else{ setOtherData(type,data) } break; case 2: if(!data.remarks){ $('#serviceEacthsNone').show(); $('#serviceEacths').hide(); $('#serviceTimeEnd').val(data.portrait.endTime); $('#serviceTimeStart').val(data.portrait.startTime); $('#remarksScopeNum').text(`0(个)`); }else{ setOtherData(type,data) } break; case 3: if(!data.pageType){ $('#visitEacthsNone').show(); $('#visitEacths').hide(); $('#visitTimeEnd').val(data.portrait.endTime); $('#visitTimeStart').val(data.portrait.startTime); $('#visitNum').text(`0(个)`); }else{ setOtherData(type,data) } break; } defaultParams.startTime = ''; defaultParams.endTime = ''; } else { console.log('机构订单图表数据异常') } } }); } // 设置订单数据 const setOrderData = function (type,data) { const orderMap = { 0:{ // 订单 fn:function () { $('.eachts-total').show(); $('#orderEacths').show(); $('#orderEacthsNone').hide(); $('#orderTimeEnd').val(data.order.endTime); $('#orderTimeStart').val(data.order.startTime); $('#orderTotalNum').text(`${data.order.orderTotalNum}个`); $('#orderScopeNum').text(`¥${data.portrait.orderScopeTotalFee} (${data.portrait.orderScopeNum}个)`); }, id:'orderEacths', series:{ name:'订单总量', color:['#3aa0ff','#36cbcb','#fad337','#4dcb73','#f2637b','#975fe4'], seriesData:data.order.orderList }, } } getOrderEacths(orderMap[type].fn,orderMap[type].id,orderMap[type].series); } // 基于准备好的dom,初始化echarts实例 const getOrderEacths = function (handleFn,id,data) { // 基于准备好的dom,初始化echarts实例 handleFn(); const myChart = echarts.init(document.getElementById(id)); const option = { tooltip: { trigger: 'item' }, legend: { orient: 'vertical', right: '2%', top:'20%', textStyle: { fontSize: 14, color:'#FFFFFF' }, }, color:data.color, series: [ { name: data.name, type: 'pie', radius: '55%', center: ['25%', '50%'], avoidLabelOverlap: false, emphasis: { itemStyle: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } }, label: { show: false, position: 'center' }, data:data.seriesData } ] }; // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); window.onresize = myChart.resize;//移动适配 }; // 其他三个图表 const setOtherData = function (type,data) { const dataMap = { 1:{// 关键词 fn:function () { $('#keyWordsEacths').show(); $('#keyWordsEacthsNone').hide(); $('#keyWordsTimeEnd').val(data.behavior.endTime); $('#keyWordsTimeStart').val(data.behavior.startTime); $('#keyWordsScopeNum').text(`${data.portrait.keyWordsScopeNum}(个)`); }, id:'keyWordsEacths', series:{ name:'搜索关键词', yAxisData:data.behavior.name, seriesData:data.behavior.value, color:new echarts.graphic.LinearGradient(1, 0, 0, 0, [{ offset: 0, color: "#B0C4DE" // 0% 处的颜色 }, { offset: 0.6, color: "#9370DB" // 60% 处的颜色 }, { offset: 1, color: "#7B68EE" // 100% 处的颜色 }], false) }, }, 2:{// 咨询记录 fn:function () { $('#serviceEacths').show(); $('#serviceEacthsNone').hide(); $('#serviceTimeEnd').val(data.remarks.endTime); $('#serviceTimeStart').val(data.remarks.startTime); $('#remarksScopeNum').text(`${data.portrait.remarksScopeNum}(个)`); }, id:'serviceEacths', series:{ name:'咨询记录', yAxisData:data.remarks.name, seriesData:data.remarks.value, color:new echarts.graphic.LinearGradient(1, 0, 0, 0, [{ offset: 0, color: "#AFEEEE" // 0% 处的颜色 }, { offset: 0.6, color: "#48D1CC" // 60% 处的颜色 }, { offset: 1, color: "#20B2AA" // 100% 处的颜色 }], false) }, }, 3:{// 访问记录 fn:function () { $('#visitEacths').show(); $('#visitEacthsNone').hide(); $('#visitTimeEnd').val(data.pageType.endTime); $('#visitTimeStart').val(data.pageType.startTime); $('#visitNum').text(`${data.portrait.visitNum}(个)`); }, id:'visitEacths', series:{ name:'访问记录', yAxisData:data.pageType.name, seriesData:data.pageType.value, color:new echarts.graphic.LinearGradient(1, 0, 0, 0, [{ offset: 0, color: "#B0C4DE" // 0% 处的颜色 }, { offset: 0.6, color: "#87CEFA" // 60% 处的颜色 }, { offset: 1, color: "#1E90FF" // 100% 处的颜色 }], false) }, } } getOtherEacths(dataMap[type].fn,dataMap[type].id,dataMap[type].series); } // 其他三个图表 const getOtherEacths = function (handleFn,id,data) { // 基于准备好的dom,初始化echarts实例 handleFn(); const myChart = echarts.init(document.getElementById(id)); const option = { title: { show:false }, tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } }, legend: { show:false, }, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, xAxis: { type: 'value', splitLine:{ show: true, lineStyle:{ opacity:0.2, color:'#DCDCDC', } }, boundaryGap: [0, 0.01], axisLabel:{ show: true, textStyle:{ color: '#DCDCDC', //更改坐标轴文字颜色 fontSize : 12, //更改坐标轴文字大小 } }, axisTick: {//轴网格,在xAxis或yAxis根下 lineStyle:{ width:1, color:'#DCDCDC', type:'solid' } } }, yAxis: { type: 'category', splitLine:{ show: false, }, axisLabel:{ show: true, textStyle:{ color: '#FFFFFF', //更改坐标轴文字颜色 fontSize : 12 //更改坐标轴文字大小 } }, axisTick: {//轴网格,在xAxis或yAxis根下 show:false, lineStyle:{ width:1, color:'#DCDCDC', type:'solid' } }, data: data.yAxisData }, series: [ { type: 'bar', name: data.name, data: data.seriesData, itemStyle:{ fontSize: 14, color:data.color } } ] }; // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); window.onresize = myChart.resize;//移动适配 };