| | |
| | | // è·ååç«¯å¤§å±æ°æ® |
| | | const fetchBigGreenData = async () => { |
| | | try { |
| | | debugger |
| | | const res = await http.get('/api/BigScreen/GetBigGreenData'); |
| | | console.log('大屿°æ®', res); |
| | | |
| | |
| | | ? [...bigscreendata.value.taskList.slice(0,5)] |
| | | : [...bigscreendata.value.taskList]; |
| | | startTaskCarousel(); // å¯å¨ä»»å¡è½®æ |
| | | refreshCharts(); |
| | | // refreshCharts(); // ç§»é¤è¿éçè°ç¨ï¼æ¹ä¸ºå¨æ°æ®è·ååç»ä¸åå§å |
| | | }); |
| | | // è¿åPromiseï¼ä»¥ä¾¿å¨æ°æ®è·åæåååå§åå¾è¡¨ |
| | | return Promise.resolve(); |
| | | } catch (error) { |
| | | ElMessage.error('æ°æ®è·å失败ï¼è¯·æ£æ¥å端æ¥å£æ¯å¦æ£å¸¸'); |
| | | return Promise.reject(error); |
| | | } |
| | | }; |
| | | |
| | |
| | | }; |
| | | |
| | | // åå§åè¿7æ¥åºå
¥åºè¶å¿å¾ï¼å
³èåç«¯æ°æ®ï¼ |
| | | const initStockTrend = () => { |
| | | debugger |
| | | if (!stockTrendRef.value) return; |
| | | |
| | | if (stockTrendChart) { |
| | | stockTrendChart.dispose(); |
| | | } |
| | | |
| | | stockTrendChart = echarts.init(stockTrendRef.value); |
| | | // ä¼å
使ç¨åç«¯æ°æ® |
| | | const trendData = bigscreendata.value.dailyInOutBoundList; |
| | | console.log('åºå
¥åºè¶å¿æ°æ®', trendData); |
| | | |
| | | const option = { |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'cross' |
| | | } |
| | | }, |
| | | legend: { |
| | | data: ['å
¥åºé', 'åºåºé'], |
| | | top: 10 |
| | | }, |
| | | grid: { |
| | | left: '3%', |
| | | right: '4%', |
| | | bottom: '3%', |
| | | top: '15%', |
| | | containLabel: true |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | boundaryGap: true, |
| | | data: trendData.map(item => item.date) |
| | | }, |
| | | yAxis: { |
| | | type: 'value', |
| | | name: 'æ°éï¼åä»¶ï¼', |
| | | max: 25 |
| | | }, |
| | | series: [ |
| | | { |
| | | name: 'å
¥åºé', |
| | | type: 'bar', |
| | | barWidth: '30%', |
| | | data: trendData.map(item => item.inNum), |
| | | itemStyle: { color: '#52c41a' } |
| | | }, |
| | | { |
| | | name: 'åºåºé', |
| | | type: 'bar', |
| | | barWidth: '30%', |
| | | data: trendData.map(item => item.outNum), |
| | | itemStyle: { color: '#1890ff' } |
| | | } |
| | | ] |
| | | }; |
| | | |
| | | stockTrendChart.setOption(option); |
| | | return stockTrendChart; |
| | | }; |
| | | // const initStockTrend = () => { |
| | | // const chart = echarts.init(efficiencyChartRef.value) |
| | | // const option = { |
| | | // tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } }, |
| | | // grid: { |
| | | // left: '3%', right: '4%', bottom: '3%', top: '10%', |
| | | // containLabel: true |
| | | // }, |
| | | // xAxis: { |
| | | // type: 'category', |
| | | // data: ['å
¥åºä½ä¸', 'åºåºä½ä¸', 'çç¹ä½ä¸', 'è°æ¨ä½ä¸', '补货ä½ä¸'], |
| | | // axisLine: { lineStyle: { color: '#fff' } }, |
| | | // axisLabel: { color: '#fff' } |
| | | // }, |
| | | // yAxis: { |
| | | // type: 'value', |
| | | // name: 'æç(åä½/å°æ¶)', |
| | | // axisLine: { lineStyle: { color: '#fff' } }, |
| | | // splitLine: { lineStyle: { color: 'rgba(255,255,255,0.1)' } }, |
| | | // axisLabel: { color: '#fff' } |
| | | // }, |
| | | // series: [ |
| | | // { |
| | | // data: [180, 156, 95, 78, 120], |
| | | // type: 'bar', |
| | | // barWidth: '40%', |
| | | // itemStyle: { |
| | | // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ |
| | | // { offset: 0, color: '#83bff6' }, |
| | | // { offset: 1, color: '#188df0' } |
| | | // ]), |
| | | // borderRadius: [5, 5, 0, 0] |
| | | // } |
| | | // } |
| | | // ] |
| | | // } |
| | | // chart.setOption(option) |
| | | // return chart |
| | | // }; |
| | | |
| | | // åå§ååºä½å©ç¨çç¯å½¢å¾ï¼ä¿®æ£ï¼ç»ä¸å®ä¾ç®¡çï¼å
³èåç«¯æ°æ®ï¼ |
| | | const initLocationRate = () => { |
| | |
| | | return exceptionTrendChart; |
| | | }; |
| | | |
| | | // å·æ°ææå¾è¡¨ï¼ç§»é¤æ æé·è¾¾å¾é»è¾ï¼ |
| | | // å·æ°ææå¾è¡¨ |
| | | const refreshCharts = () => { |
| | | const charts = [ |
| | | initInventoryPie, |
| | | initStockTrend, |
| | | initLocationRate, |
| | | initExceptionTrend, |
| | | ]; |
| | | |
| | | charts.forEach(initFunc => { |
| | |
| | | |
| | | // ç»ä»¶æè½½æ¶ï¼å
è¯·æ±æ°æ®ï¼ååå§åå¾è¡¨ |
| | | onMounted(() => { |
| | | console.log('ç»ä»¶å·²æè½½ï¼å¼å§åå§å'); |
| | | |
| | | // å
è·ååç«¯æ°æ® |
| | | fetchBigGreenData(); |
| | | // åå§åå¾è¡¨ï¼ç¡®ä¿DOM已渲æï¼ |
| | | nextTick(() => { |
| | | initInventoryPie(); |
| | | initStockTrend(); |
| | | initLocationRate(); |
| | | initExceptionTrend(); |
| | | window.addEventListener('resize', handleResize); |
| | | fetchBigGreenData().then(() => { |
| | | console.log('æ°æ®è·åæåï¼å¼å§åå§åå¾è¡¨'); |
| | | |
| | | // æ°æ®è·åæååååå§åå¾è¡¨ |
| | | nextTick(() => { |
| | | console.log('DOMå·²æ´æ°ï¼å¼å§åå§åå¾è¡¨'); |
| | | |
| | | try { |
| | | // ç«å³åå§åå¾è¡¨ |
| | | initInventoryPie(); |
| | | console.log('åºååå¸é¥¼å¾åå§å宿'); |
| | | |
| | | // ç¹å«å¤çåºå
¥åºè¶å¿å¾ |
| | | if (stockTrendRef.value) { |
| | | console.log('åºå
¥åºè¶å¿å¾å®¹å¨åå¨ï¼å¼å§åå§å'); |
| | | initStockTrend(); |
| | | console.log('åºå
¥åºè¶å¿å¾åå§å宿'); |
| | | } else { |
| | | console.error('åºå
¥åºè¶å¿å¾å®¹å¨ä¸åå¨'); |
| | | } |
| | | |
| | | initLocationRate(); |
| | | console.log('åºä½å©ç¨çå¾åå§å宿'); |
| | | |
| | | initExceptionTrend(); |
| | | console.log('å¼å¸¸è¶å¿å¾åå§å宿'); |
| | | |
| | | window.addEventListener('resize', handleResize); |
| | | console.log('ææå¾è¡¨åå§å宿'); |
| | | } catch (error) { |
| | | console.error('å¾è¡¨åå§åè¿ç¨ä¸åºé:', error); |
| | | } |
| | | }); |
| | | }).catch(error => { |
| | | console.error('è·åæ°æ®å¤±è´¥:', error); |
| | | }); |
| | | }); |
| | | |
| | |
| | | transition: all 0.3s ease; |
| | | overflow: hidden; |
| | | position: relative; |
| | | min-height: 400px; |
| | | } |
| | | |
| | | .chart-card:hover { |
| | |
| | | flex: 1; |
| | | position: relative; |
| | | border-radius: 8px; |
| | | background: rgba(255, 255, 255, 0.7); |
| | | backdrop-filter: blur(5px); |
| | | background: rgba(255, 255, 255, 0.9); |
| | | box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.03); |
| | | overflow: hidden; |
| | | z-index: 1; |
| | | display: block; |
| | | } |
| | | |
| | | |