var initTimeType = '1'; //初始化时间类型 var purchaseType = [ '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22' ] var purchaseData = [ 120, 200, 150, 80, 70, 110, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130 ] var rankingList = [ { name: '220kvxxxxxxxxxxxxxxxxxx工程220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' } ] var supplierList = [ { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' }, { name: '220kvxxxxxxxxxxxxxxxxxx工程', ly: '50', th: '10', cq: '35' } ] // 页面初始化 $(function () { console.log('DOM is ready!'); $(`#time-${initTimeType}`).addClass('time-select-item-ac'); initDelivery() initPurchase() initBalance() initPlan() initInstrument() rankingDom() supplierDom() layui.use('laydate', function () { var laydate = layui.laydate; //执行一个laydate实例 laydate.render({ elem: '#time_range_id', //指定元素 type: 'datetime', range: true }); }); }); function overviewClick(type) { console.log(type) let title = '', content = '', width = '95%', height = '95%'; if (type === '0') { title = '工程详情'; content = '../../page/welconme_child/engineer.html'; } else if (type === '1') { title = '需求计划详情'; content = '../../page/welconme_child/demand.html'; } else if (type === '2') { title = '库存详情'; content = '../../page/welconme_child/inventory.html'; } else if (type === '3') { title = '采购详情'; content = '../../page/welconme_child/purchase.html'; } else if (type === '4') { title = '利库详情'; content = '../../page/welconme_child/liKu.html'; } else if (type === '5') { title = '退回详情'; content = '../../page/welconme_child/goBack.html'; } openIframeByParamObj("engineerDetail", title, content, width, height); } // 页面刷新事件 function refreshClick() { $(`#refresh_id`).addClass('layui-anim-rotate'); } function rankingDom() { var dom_nav = document.getElementById('table_body_id') rankingList.forEach((item, index) => { var dom = '' var color = '' if (index == 0) { color = 'rgb(244, 138, 139)' } else if (index == 1 || index == 2) { color = '#eae13c' } else { color = '#999999' } dom += `
${index + 1}
${item.name}
${item.ly}
${item.th}
${item.cq}
` var itemDom = document.createElement("div"); itemDom.setAttribute('class', `table_body_item`); itemDom.innerHTML = dom; dom_nav.appendChild(itemDom); }) rankingScrollTo() } function supplierDom() { //注意进度条依赖 element 模块,否则无法进行正常渲染和功能性操作 layui.use('element', function () { var element = layui.element; }); var dom_nav = document.getElementById('supplier_table_body_id') rankingList.forEach((item, index) => { var dom = '' dom += `
Axxxxxxxxxx供应商名称供应商名称供应商名称
合同占比:40 % (1,600,000)
56,2305656
800,000.00
20%
2024-10-21
` var itemDom = document.createElement("div"); itemDom.setAttribute('class', `supplier_table_body_item`); itemDom.innerHTML = dom; dom_nav.appendChild(itemDom); }) } // 排名自动滚动 var rankingTimer = null var offset = 0 function clearIntervalEvent() { clearInterval(rankingTimer) rankingTimer = null } function startIntervalEvent() { let ranking_dom = document.getElementById('table_body_id') offset = ranking_dom.scrollTop rankingScrollTo() } function rankingScrollTo() { var dom_nav = document.getElementById('table_body_id') dom_nav.addEventListener('mouseenter',clearIntervalEvent) dom_nav.addEventListener('mouseleave',startIntervalEvent) // 元素可滚动高度 var scrollHeight = dom_nav.scrollHeight- dom_nav.clientHeight // console.dir(dom_nav) // console.log(scrollHeight) rankingTimer = setInterval(() => { offset += 1 if (offset >= scrollHeight) { offset = 0 dom_nav.scrollTo({ top: offset }) clearIntervalEvent() rankingScrollTo() } else { dom_nav.scrollTo({ top: offset }) } }, 40) } function initInstrument() { var dataArr = 80; var colorSet = { color: "#468EFD", }; var myChart = echarts.init(document.getElementById('instrument_id')); var option = { tooltip: { formatter: "{a}
{b} : {c}%", }, series: [ { name: "内部进度条", type: "gauge", center: ['50%', '60%'], radius: "100%", splitNumber: 10, axisLine: { lineStyle: { color: [ [dataArr / 100, colorSet.color], [1, "#111F42"], ], width: 8, }, }, axisLabel: { show: false, }, axisTick: { show: false, }, splitLine: { show: false, }, itemStyle: { show: false, }, detail: { formatter: function (value) { if (value !== 0) { var num = Math.round(value); return parseInt(num).toFixed(0) + "%"; } else { return 0; } }, offsetCenter: [0, 82], textStyle: { padding: [0, 0, 0, 0], fontSize: 18, fontWeight: "700", color: colorSet.color, }, }, title: { //标题 show: true, offsetCenter: [0, 46], // x, y,单位px textStyle: { color: "#999999", fontSize: 14, //表盘上的标题文字大小 fontWeight: 400, fontFamily: "PingFangSC", marginTop: '20px' }, }, data: [ { name: "¥3,400,000.00", value: dataArr, }, ], pointer: { show: true, length: "75%", radius: "30%", width: 10, //指针粗细 }, animationDuration: 4000, }, { name: "外部刻度", type: "gauge", center: ['50%', '60%'], radius: "90%", min: 0, //最小刻度 max: 100, //最大刻度 splitNumber: 10, //刻度数量 startAngle: 225, endAngle: -45, axisLine: { show: true, lineStyle: { width: 1, color: [[1, "rgba(0,0,0,0)"]], }, }, //仪表盘轴线 axisLabel: { show: true, color: "#4d5bd1", distance: 25, formatter: function (v) { switch (v + "") { case "0": return "0"; case "10": return "10"; case "20": return "20"; case "30": return "30"; case "40": return "40"; case "50": return "50"; case "60": return "60"; case "70": return "70"; case "80": return "80"; case "90": return "90"; case "100": return "100"; } }, }, //刻度标签。 axisTick: { show: true, splitNumber: 7, lineStyle: { color: colorSet.color, //用颜色渐变函数不起作用 width: 1, }, length: -8, }, //刻度样式 splitLine: { show: true, length: -20, lineStyle: { color: colorSet.color, //用颜色渐变函数不起作用 }, }, //分隔线样式 detail: { show: false, }, pointer: { show: false, }, }, ], }; myChart.setOption(option); } function initPlan() { var myChart = echarts.init(document.getElementById('plan_id')); var option = { tooltip: { trigger: 'item' }, graphic: { type: 'text', left: 'center', top: 'center', style: { text: '完成率50%', // 要显示的文字 textAlign: 'center', fill: '#0cd68d', // 文字颜色 fontSize: 20 // 其他样式配置... } }, grid: { left: '3%', right: '4%', bottom: '3%', top: '14%', containLabel: true }, series: [ { name: '需求计划', type: 'pie', radius: ['60%', '80%'], avoidLabelOverlap: false, label: { show: false, position: 'center' }, labelLine: { show: false }, data: [ { value: 1100, name: '已完成', itemStyle: { color: '#0cd68d' } }, { value: 1048, name: '未完成', itemStyle: { color: '#eef2f3' } }, ] } ] }; myChart.setOption(option); } function initBalance() { var myChart = echarts.init(document.getElementById('balance_id')); var option = { xAxis: { type: 'category', data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'] }, yAxis: { type: 'category', boundaryGap: false, type: 'value' }, tooltip: { trigger: 'axis' }, legend: { data: ['采购金额', '已付金额'] }, grid: { left: '3%', right: '4%', bottom: '3%', top: '14%', containLabel: true }, series: [ { name: '采购金额', type: 'line', stack: 'Total', itemStyle: { normal: { color: '#3983fe', // 点的颜色 lineStyle: { color: '#3983fe' // 线的颜色 } } }, areaStyle: {}, data: [120, 132, 101, 134, 90, 230, 210, 210, 210, 210, 210, 210] }, { name: '已付金额', type: 'line', stack: 'Total', itemStyle: { normal: { color: '#877de3', // 点的颜色 lineStyle: { color: '#877de3' // 线的颜色 } } }, areaStyle: {}, data: [220, 182, 191, 234, 290, 330, 310, 210, 210, 210, 210, 210] } ] }; myChart.setOption(option); } function initPurchase() { var myChart = echarts.init(document.getElementById('purchase_id')); var option = { xAxis: { type: 'category', data: purchaseType }, yAxis: { type: 'value' }, tooltip: { trigger: 'axis', }, grid: { left: '3%', right: '4%', bottom: '3%', top: '5%', containLabel: true }, dataZoom: { type: "inside", xAxisIndex: [0], show: false, startValue: 0, // 从头开始 endValue: 12, // 一次性展示几个 }, series: [ { data: purchaseData, type: 'bar', showBackground: true, label: { show: true, // 显示数值 position: 'top' // 数值显示的位置 }, backgroundStyle: { color: 'rgba(180, 180, 180, 0.2)' } } ] }; setInterval(function () { // 每次向左滑动一个,最后一个从头开始。 if (option.dataZoom.endValue == purchaseType.length) { option.dataZoom.startValue = 0; option.dataZoom.endValue = 12; } else { option.dataZoom.endValue = option.dataZoom.endValue + 1; option.dataZoom.startValue = option.dataZoom.startValue + 1; } myChart.setOption(option); }, 2000); myChart.setOption(option); } function initDelivery() { var myChart = echarts.init(document.getElementById('delivery_id')); var option = { xAxis: { type: 'category', data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'] }, yAxis: { type: 'category', boundaryGap: false, type: 'value' }, tooltip: { trigger: 'axis' }, legend: { data: ['采购量', '利库量', '退还量'] }, grid: { left: '3%', right: '4%', bottom: '3%', top: '14%', containLabel: true }, series: [ { name: '采购量', type: 'line', stack: 'Total', data: [120, 132, 101, 134, 90, 230, 210, 210, 210, 210, 210, 210] }, { name: '利库量', type: 'line', stack: 'Total', data: [220, 182, 191, 234, 290, 330, 310, 210, 210, 210, 210, 210] }, { name: '退还量', type: 'line', stack: 'Total', data: [150, 232, 201, 154, 190, 330, 410, 210, 210, 210, 210, 210] } ] }; myChart.setOption(option); } function timeClick(type) { $(`#time-${type}`).addClass('time-select-item-ac'); $(`#time-${initTimeType}`).removeClass('time-select-item-ac'); initTimeType = type console.log(initTimeType) if(initTimeType == 2) { document.getElementById('time_range_nav').style.display = 'block' }else { document.getElementById('time_range_nav').style.display = 'none' } }