| | |
| | | <div class="main_app"> |
| | | <img src="@/assets/images/LogisticsCenter/bg@2x.png" class="main_bg" alt="" /> |
| | | <div class="main_header"> |
| | | <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" /> |
| | | <!-- <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" /> --> |
| | | <div class="title">全省物流在途</div> |
| | | <div class="time_wrap"> |
| | | <span class="date">{{ date }}</span> |
| | |
| | | <div class="title"> |
| | | <img src="@/assets/images/LogisticsCenter/ic_title@2x.png" class="icon" alt="" /> |
| | | <div>本年累计出库量</div> |
| | | </div> |
| | | <div class="tabs"> |
| | | <div class="tab" :class="{ active: activeTab1 == 0 }" @click="tab1Click(0)">本周</div> |
| | | <div class="separate"></div> |
| | | <div class="tab" :class="{ active: activeTab1 == 1 }" @click="tab1Click(1)">本月</div> |
| | | <div class="separate"></div> |
| | | <div class="tab" :class="{ active: activeTab1 == 2 }" @click="tab1Click(2)">本年</div> |
| | | </div> |
| | | </div> |
| | | <div class="content_wrap"> |
| | |
| | | <div class="item"> |
| | | <img src="@/assets/images/LogisticsCenter/ic_jinrijihua@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="name">今日计划量</div> |
| | | <div class="name">当日订单量</div> |
| | | <div class="num"><span class="blue">{{ cneterData.outPlanTotal }}</span>万支</div> |
| | | </div> |
| | | </div> |
| | | <div class="item"> |
| | | <img src="@/assets/images/LogisticsCenter/ic_jinrijihua@2.png" alt=""> |
| | | <div class="content"> |
| | | <div class="name">当日计划量</div> |
| | | <div class="num"><span>{{ cneterData.outPlanTotal }}</span>万支</div> |
| | | <div class="unit">车次:{{ cneterData.outPlanTimes }}</div> |
| | | </div> |
| | |
| | | <img src="@/assets/images/LogisticsCenter/ic_jinrichuku@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="name">今日出库量</div> |
| | | <div class="num"><span class="today">{{ cneterData.outTotal }}</span>万支</div> |
| | | <div class="unit">车次:{{ cneterData.outTimes }}</div> |
| | | <div class="num" v-if="cneterData.outPlanTotal && cneterData.outTotal"><span class="finish">{{ |
| | | cneterData.outPlanTotal - cneterData.outTotal }}</span>万支</div> |
| | | <div class="unit" v-if="cneterData.outPlanTotal && cneterData.outTotal">车次:{{ cneterData.outPlanTimes |
| | | - |
| | | cneterData.outTimes }}</div> |
| | | </div> |
| | | </div> |
| | | <div class="item"> |
| | | <img src="@/assets/images/LogisticsCenter/ic_jinriweichu@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="name">今日未出库量</div> |
| | | <div class="num" v-if="cneterData.outPlanTotal && cneterData.outTotal"><span class="finish">{{ |
| | | <div class="name">剩余任务量</div> |
| | | <div class="num" v-if="cneterData.outPlanTotal && cneterData.outTotal"><span class="today">{{ |
| | | cneterData.outPlanTotal - cneterData.outTotal }}</span>万支</div> |
| | | <div class="unit" v-if="cneterData.outPlanTotal && cneterData.outTotal">车次:{{ cneterData.outPlanTimes |
| | | - |
| | |
| | | </div> |
| | | </div> |
| | | <div class="footer"> |
| | | <span>占出库能力</span> |
| | | <span class="num">80%</span> |
| | | <div class="wrap"> |
| | | <div class="content"> |
| | | <div class="scale">0</div> |
| | | <div class="box"> |
| | | <div class="tag"> |
| | | <div class="icon"></div> |
| | | <span>今日出库</span> |
| | | </div> |
| | | </div> |
| | | <div class="box box1"> |
| | | <div class="tag tag1"> |
| | | <div class="icon"></div> |
| | | <span>当日计划</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="side"> |
| | | <div class="box"></div> |
| | | <div class="scale" style="left: -12px;">8h</div> |
| | | <div class="scale scale1">最大</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="center_box_two"> |
| | | <div class="echart_map" ref="mapEchart" id="echart_map"></div> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <div class="icon"></div> |
| | | <div class="text">出库量10w以上</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="icon icon2"></div> |
| | | <div class="text">出库量5-10w</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="icon icon3"></div> |
| | | <div class="text">出库量2-5w</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="icon icon4"></div> |
| | | <div class="text">出库量2w以下</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="right_box"> |
| | |
| | | </div> |
| | | <img src="@/assets/images/title@2x.png" class="bg" alt="" /> |
| | | </div> |
| | | <div class="right_box_one"> |
| | | <div class="second_title"> |
| | | <div class="title"> |
| | | <img src="@/assets/images/LogisticsCenter/ic_title@2x.png" class="icon" alt="" /> |
| | | <div>本年累计入库量</div> |
| | | </div> |
| | | </div> |
| | | <div class="content_wrap"> |
| | | <div class="num_wrap"> |
| | | <div class="num_list" v-if="cneterData.yearInTotal"> |
| | | <div class="num" v-for="i in cneterData.yearInTotal + ''"> |
| | | {{ i }} |
| | | <img class="bg" src="@/assets/images/LogisticsCenter/bg_number@2x.png" alt=""> |
| | | </div> |
| | | </div> |
| | | <div class="content"> |
| | | <div class="unit_wrap"> |
| | | <span class="la">同比</span> |
| | | <img src="@/assets/images/ic_up.png" class="icon" alt=""> |
| | | <span>{{ cneterData.yearInTotalOnYear }}%</span> |
| | | <span class="la" style="margin-left: 30px;margin-right: 10px;">累计出库车次</span> |
| | | <span>{{ cneterData.yearInTimes }}</span> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <div class="static_wrap"> |
| | | <div class="echart_wrap"> |
| | | <div class="echart3" id="echart3"></div> |
| | | <div class="pie_text"> |
| | | <div class="fs30">{{ cneterData.PlanTotal || 30 }}%</div> |
| | | </div> |
| | | </div> |
| | | <div class="text">计划完成量</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="right_box_two"> |
| | | <div class="second_title"> |
| | | <div class="title"> |
| | | <img src="@/assets/images/LogisticsCenter/ic_title@2x.png" class="icon" alt="" /> |
| | | <div>进销存运营</div> |
| | | </div> |
| | | <div class="tabs"> |
| | | <div :class="{ active: activeTabs == 0 }" class="tab" @click="tabsClick4(0)">7天</div> |
| | | <div class="separate"></div> |
| | | <div :class="{ active: activeTabs == 1 }" class="tab" @click="tabsClick4(1)">30天</div> |
| | | <div class="separate"></div> |
| | | <div :class="{ active: activeTabs == 2 }" class="tab" @click="tabsClick4(2)">1年</div> |
| | | </div> |
| | | </div> |
| | | <div class="echart4_wrap"> |
| | | <div class="echart4" id="echart4"></div> |
| | | </div> |
| | | </div> |
| | | <div class="right_box_three"> |
| | | <div class="second_title"> |
| | | <div class="title"> |
| | | <img src="@/assets/images/LogisticsCenter/ic_title@2x.png" class="icon" alt="" /> |
| | | <div>库存利用率</div> |
| | | </div> |
| | | <div class="side">全省:<span>100<span class="unit">万支 |</span> 40.6%</span></div> |
| | | </div> |
| | | <div class="echart5_wrap"> |
| | | <div class="echart5" id="echart5"></div> |
| | | </div> |
| | | </div> |
| | | <div class="right_box_three"> |
| | | <div class="second_title"> |
| | | <div class="title"> |
| | | <img src="@/assets/images/LogisticsCenter/ic_title@2x.png" class="icon" alt="" /> |
| | | <div>出库能力利用率</div> |
| | | </div> |
| | | <div class="side">全省:<span>100<span class="unit">万支 |</span> 40.6%</span></div> |
| | | </div> |
| | | <div class="echart5_wrap"> |
| | | <div class="echart5" id="echart6"></div> |
| | | </div> |
| | | </div> |
| | | <div class="right_box_three"> |
| | | <div class="second_title"> |
| | | <div class="title"> |
| | | <img src="@/assets/images/LogisticsCenter/ic_title@2x.png" class="icon" alt="" /> |
| | | <div>运用资源利用率</div> |
| | | </div> |
| | | <div class="side">全省:<span>100<span class="unit">万支 |</span> 40.6%</span></div> |
| | | </div> |
| | | <div class="echart5_wrap"> |
| | | <div class="echart5" id="echart7"></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | left: '3%', |
| | | right: '4%', |
| | | bottom: '3%', |
| | | top: '15%', |
| | | top: '16%', |
| | | containLabel: true |
| | | }, |
| | | xAxis: { |
| | |
| | | }, |
| | | series: [ |
| | | { |
| | | name: '在途', |
| | | name: '未启运', |
| | | type: 'bar', |
| | | stack: 'total', |
| | | barWidth: 14, |
| | | label: { |
| | | show: true |
| | | show: true, |
| | | textStyle: { |
| | | color: '#000000', |
| | | fontSize: 10 |
| | | } |
| | | }, |
| | | emphasis: { |
| | | focus: 'series' |
| | |
| | | y2: 0, |
| | | colorStops: [{ |
| | | offset: 0, |
| | | color: '#204d75' |
| | | color: '#fadf74' |
| | | }, |
| | | { |
| | | offset: 0.3, |
| | | color: '#f7cd5e' |
| | | }, { |
| | | offset: 1, |
| | | color: '#2f6eae' |
| | | color: '#eea33b' |
| | | }] |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | { |
| | | name: '在途', |
| | | type: 'bar', |
| | | stack: 'total', |
| | | barWidth: 14, |
| | | label: { |
| | | show: true |
| | | }, |
| | | emphasis: { |
| | | focus: 'series' |
| | | }, |
| | | textStyle: { |
| | | color: '#000000', |
| | | fontSize: 10 |
| | | }, |
| | | data: list.map(i => i.inTransitNum), |
| | | itemStyle: { |
| | | normal: { |
| | | color: { |
| | | type: 'linear', |
| | | x: 0, |
| | | y: 0, |
| | | x2: 1, |
| | | y2: 0, |
| | | colorStops: [{ |
| | | offset: 0, |
| | | color: '#60d1f9' |
| | | }, { |
| | | offset: 1, |
| | | color: '#4eacf7' |
| | | }] |
| | | } |
| | | } |
| | |
| | | label: { |
| | | show: true |
| | | }, |
| | | textStyle: { |
| | | color: '#000000', |
| | | fontSize: 10 |
| | | }, |
| | | itemStyle: { |
| | | normal: { |
| | | color: { |
| | |
| | | y2: 0, |
| | | colorStops: [{ |
| | | offset: 0, |
| | | color: '#3e8593' |
| | | color: '#71f3ce' |
| | | }, { |
| | | offset: 1, |
| | | color: '#5cc2d2' |
| | | color: '#4da999' |
| | | }] |
| | | } |
| | | } |
| | |
| | | { name: '蚌埠仓', id: 4 }, |
| | | ]) |
| | | const activeCity = ref({ name: '全省', id: 0 }) |
| | | const activeTab1 = ref(0) |
| | | const colors = ['#0193FE', '#FFB642'] |
| | | const StockOutData = ref([]) |
| | | const cityClick = (item) => { |
| | |
| | | arr.sort((a, b) => b.value - a.value) |
| | | StockOutData.value = arr |
| | | initEchart1() |
| | | } |
| | | const tab1Click = () => { |
| | | activeTab1.value = val |
| | | |
| | | } |
| | | const getData3 = () => { |
| | | getStorecenterData().then(res => { |
| | |
| | | getStoreOperationList({ queryType: activeTabs.value }).then(res => { |
| | | console.log('res', res) |
| | | dataList4.value = res.data || [] |
| | | initEchart4() |
| | | // initEchart4() |
| | | }) |
| | | } |
| | | |
| | |
| | | legend: { |
| | | itemGap: 12, |
| | | // icon: 'circle', |
| | | right: '12px', |
| | | top: '0', |
| | | right: '16%', |
| | | top: '1%', |
| | | data: ['总库存', '当前库存', '库存利用率'], |
| | | itemWidth: 20, |
| | | itemHeight: 10, |
| | |
| | | left: '3%', |
| | | right: '0%', |
| | | bottom: '3%', |
| | | top: '24%', |
| | | top: '18%', |
| | | containLabel: true |
| | | }, |
| | | tooltip: { |
| | |
| | | nameTextStyle: { |
| | | color: '#869CC9', |
| | | }, |
| | | offset: 0, |
| | | name: '万支', |
| | | nameGap: 24, |
| | | type: 'value', |
| | | axisLabel: { |
| | | show: true, |
| | |
| | | { |
| | | type: 'value', |
| | | name: '%', |
| | | nameGap: 24, |
| | | min: 0, |
| | | max: 100, |
| | | // interval: 5, |
| | | interval: 25, |
| | | axisLabel: { |
| | | formatter: '{value}' |
| | | }, |
| | |
| | | { |
| | | name: '总库存', |
| | | type: 'bar', |
| | | barWidth: 8, |
| | | barWidth: 10, |
| | | barGap: '60%', |
| | | label: { |
| | | show: false, |
| | | position: 'top', |
| | | color: '#fff', |
| | | }, |
| | | yAxisIndex: 0, |
| | | itemStyle: { |
| | | color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ |
| | | { |
| | | offset: 0, |
| | | color: '#5bc7d5' |
| | | color: '#2e6bf3' |
| | | }, |
| | | { |
| | | offset: 1, |
| | | color: '#1a3f55' |
| | | color: '#5fcbab' |
| | | } |
| | | ], false), |
| | | lineStyle: { |
| | |
| | | { |
| | | name: '当前库存', |
| | | type: 'bar', |
| | | barWidth: 8, |
| | | barWidth: 10, |
| | | label: { |
| | | show: false, |
| | | position: 'top', |
| | | color: '#fff', |
| | | }, |
| | | yAxisIndex: 0, |
| | | itemStyle: { |
| | | color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ |
| | | { |
| | | offset: 0, |
| | | color: '#edaf3d' |
| | | color: '#eda13a' |
| | | }, |
| | | { |
| | | offset: 0.6, |
| | | color: '#dfb44e' |
| | | }, |
| | | { |
| | | offset: 1, |
| | | color: '#323522' |
| | | color: '#ccc16c' |
| | | } |
| | | ], false), |
| | | lineStyle: { |
| | |
| | | { |
| | | name: '库存利用率', |
| | | type: 'line', |
| | | smooth: true, |
| | | smooth: false, |
| | | showAllSymbol: true, |
| | | symbol: 'none', |
| | | lineStyle: { |
| | | color: "#3d87e5" |
| | | color: "#9eabc2" |
| | | }, |
| | | yAxisIndex: 1, |
| | | label: { |
| | | show: false, |
| | | position: 'top', |
| | | color: '#fff', |
| | | // formatter: '{c}' + '%', |
| | | }, |
| | | data: dataList5.value.map(i => i.stockRataNum) |
| | | } |
| | | ] |
| | | }) |
| | | |
| | | window.addEventListener('resize', function () {//执行 |
| | | myChart.resize() |
| | | }) |
| | | } |
| | | const initEchart6 = () => { |
| | | // 基于准备好的dom,初始化echarts实例 |
| | | const myChart = echarts.init(document.getElementById('echart6')) |
| | | // 绘制图表 |
| | | myChart.setOption({ |
| | | legend: { |
| | | itemGap: 12, |
| | | // icon: 'circle', |
| | | right: '16%', |
| | | top: '1%', |
| | | data: ['出库能力', '当日出库量', '库存利用率'], |
| | | itemWidth: 20, |
| | | itemHeight: 10, |
| | | textStyle: { |
| | | color: '#fff', |
| | | borderColor: '#fff' |
| | | }, |
| | | }, |
| | | grid: { |
| | | left: '3%', |
| | | right: '0%', |
| | | bottom: '3%', |
| | | top: '18%', |
| | | containLabel: true |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis' |
| | | }, |
| | | xAxis: [{ |
| | | nameGap: 5, |
| | | type: 'category', |
| | | axisLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | color: '#999' |
| | | }, |
| | | }, |
| | | axisLabel: { |
| | | color: '#869CC9' |
| | | // fontSize: 24, |
| | | }, |
| | | axisTick: { |
| | | show: false, |
| | | }, |
| | | data: dataList5.value.map(i => i.placeName), |
| | | }], |
| | | yAxis: [ |
| | | { |
| | | nameTextStyle: { |
| | | color: '#869CC9', |
| | | }, |
| | | name: '万支', |
| | | nameGap: 24, |
| | | type: 'value', |
| | | axisLabel: { |
| | | show: true, |
| | | color: "#869CC9", |
| | | }, |
| | | axisLine: { |
| | | show: true, |
| | | }, |
| | | splitLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | width: 1, |
| | | color: "rgba(49,105,129,0.4)", |
| | | type: 'dashed' |
| | | } |
| | | }, |
| | | }, |
| | | { |
| | | type: 'value', |
| | | name: '%', |
| | | nameGap: 24, |
| | | min: 0, |
| | | max: 100, |
| | | interval: 25, |
| | | axisLabel: { |
| | | formatter: '{value}' |
| | | }, |
| | | splitLine: false |
| | | } |
| | | ], |
| | | series: [ |
| | | { |
| | | name: '出库能力', |
| | | type: 'bar', |
| | | barWidth: 10, |
| | | barGap: '60%', |
| | | label: { |
| | | show: false, |
| | | position: 'top', |
| | | color: '#fff', |
| | | }, |
| | | yAxisIndex: 0, |
| | | itemStyle: { |
| | | color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ |
| | | { |
| | | offset: 0, |
| | | color: '#2e6bf3' |
| | | }, |
| | | { |
| | | offset: 1, |
| | | color: '#5fcbab' |
| | | } |
| | | ], false), |
| | | lineStyle: { |
| | | width: 1, |
| | | type: 'solid' |
| | | }, |
| | | barBorderRadius: [30, 30, 0, 0], |
| | | }, |
| | | data: dataList5.value.map(i => i.totalStockNum), |
| | | barGap: '-100%' // 设置柱子完全重叠 |
| | | |
| | | }, |
| | | { |
| | | name: '当日出库量', |
| | | type: 'bar', |
| | | barWidth: 10, |
| | | label: { |
| | | show: false, |
| | | position: 'top', |
| | | color: '#fff', |
| | | }, |
| | | yAxisIndex: 0, |
| | | itemStyle: { |
| | | color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ |
| | | { |
| | | offset: 0, |
| | | color: '#eda13a' |
| | | }, |
| | | { |
| | | offset: 0.6, |
| | | color: '#dfb44e' |
| | | }, |
| | | { |
| | | offset: 1, |
| | | color: '#ccc16c' |
| | | } |
| | | ], false), |
| | | lineStyle: { |
| | | width: 1, |
| | | type: 'solid' |
| | | }, |
| | | barBorderRadius: [30, 30, 0, 0], |
| | | }, |
| | | data: dataList5.value.map(i => i.nowStockNum), |
| | | barGap: '-100%' // 设置柱子完全重叠 |
| | | }, |
| | | { |
| | | name: '库存利用率', |
| | | type: 'line', |
| | | smooth: false, |
| | | showAllSymbol: true, |
| | | symbol: 'none', |
| | | lineStyle: { |
| | | color: "#9eabc2" |
| | | }, |
| | | yAxisIndex: 1, |
| | | label: { |
| | | show: false, |
| | | position: 'top', |
| | | color: '#fff', |
| | | // formatter: '{c}' + '%', |
| | | }, |
| | | data: dataList5.value.map(i => i.stockRataNum) |
| | | } |
| | | ] |
| | | }) |
| | | |
| | | window.addEventListener('resize', function () {//执行 |
| | | myChart.resize() |
| | | }) |
| | | } |
| | | const initEchart7 = () => { |
| | | // 基于准备好的dom,初始化echarts实例 |
| | | const myChart = echarts.init(document.getElementById('echart7')) |
| | | // 绘制图表 |
| | | myChart.setOption({ |
| | | legend: { |
| | | itemGap: 12, |
| | | // icon: 'circle', |
| | | right: '16%', |
| | | top: '1%', |
| | | data: ['总库存', '当前库存', '库存利用率'], |
| | | itemWidth: 20, |
| | | itemHeight: 10, |
| | | textStyle: { |
| | | color: '#fff', |
| | | borderColor: '#fff' |
| | | }, |
| | | }, |
| | | grid: { |
| | | left: '3%', |
| | | right: '0%', |
| | | bottom: '3%', |
| | | top: '18%', |
| | | containLabel: true |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis' |
| | | }, |
| | | xAxis: [{ |
| | | nameGap: 5, |
| | | type: 'category', |
| | | axisLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | color: '#999' |
| | | }, |
| | | }, |
| | | axisLabel: { |
| | | color: '#869CC9' |
| | | // fontSize: 24, |
| | | }, |
| | | axisTick: { |
| | | show: false, |
| | | }, |
| | | data: dataList5.value.map(i => i.placeName), |
| | | }], |
| | | yAxis: [ |
| | | { |
| | | nameTextStyle: { |
| | | color: '#869CC9', |
| | | }, |
| | | name: '万支', |
| | | nameGap: 24, |
| | | type: 'value', |
| | | axisLabel: { |
| | | show: true, |
| | | color: "#869CC9", |
| | | }, |
| | | axisLine: { |
| | | show: true, |
| | | }, |
| | | splitLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | width: 1, |
| | | color: "rgba(49,105,129,0.4)", |
| | | type: 'dashed' |
| | | } |
| | | }, |
| | | }, |
| | | { |
| | | type: 'value', |
| | | name: '%', |
| | | nameGap: 24, |
| | | min: 0, |
| | | max: 100, |
| | | interval: 25, |
| | | axisLabel: { |
| | | formatter: '{value}' |
| | | }, |
| | | splitLine: false |
| | | } |
| | | ], |
| | | series: [ |
| | | { |
| | | name: '总库存', |
| | | type: 'bar', |
| | | barWidth: 10, |
| | | barGap: '60%', |
| | | label: { |
| | | show: false, |
| | | position: 'top', |
| | | color: '#fff', |
| | | }, |
| | | yAxisIndex: 0, |
| | | itemStyle: { |
| | | color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ |
| | | { |
| | | offset: 0, |
| | | color: '#2e6bf3' |
| | | }, |
| | | { |
| | | offset: 1, |
| | | color: '#5fcbab' |
| | | } |
| | | ], false), |
| | | lineStyle: { |
| | | width: 1, |
| | | type: 'solid' |
| | | }, |
| | | barBorderRadius: [30, 30, 0, 0], |
| | | }, |
| | | data: dataList5.value.map(i => i.totalStockNum) |
| | | }, |
| | | { |
| | | name: '当前库存', |
| | | type: 'bar', |
| | | barWidth: 10, |
| | | label: { |
| | | show: false, |
| | | position: 'top', |
| | | color: '#fff', |
| | | }, |
| | | yAxisIndex: 0, |
| | | itemStyle: { |
| | | color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ |
| | | { |
| | | offset: 0, |
| | | color: '#eda13a' |
| | | }, |
| | | { |
| | | offset: 0.6, |
| | | color: '#dfb44e' |
| | | }, |
| | | { |
| | | offset: 1, |
| | | color: '#ccc16c' |
| | | } |
| | | ], false), |
| | | lineStyle: { |
| | | width: 1, |
| | | type: 'solid' |
| | | }, |
| | | barBorderRadius: [30, 30, 0, 0], |
| | | }, |
| | | data: dataList5.value.map(i => i.nowStockNum) |
| | | }, |
| | | { |
| | | name: '库存利用率', |
| | | type: 'line', |
| | | smooth: false, |
| | | showAllSymbol: true, |
| | | symbol: 'none', |
| | | lineStyle: { |
| | | color: "#9eabc2" |
| | | }, |
| | | yAxisIndex: 1, |
| | | label: { |
| | | show: false, |
| | | position: 'top', |
| | | color: '#fff', |
| | | // formatter: '{c}' + '%', |
| | | }, |
| | | data: dataList5.value.map(i => i.stockRataNum) |
| | | } |
| | |
| | | console.log('res', res) |
| | | dataList5.value = res.data || [] |
| | | initEchart5() |
| | | initEchart6() |
| | | initEchart7() |
| | | }) |
| | | } |
| | | |
| | |
| | | |
| | | initMap() |
| | | // initEchart2() |
| | | initEchart3() |
| | | // initEchart3() |
| | | // initEchart4() |
| | | // initEchart5() |
| | | setTimeout(() => { |
| | |
| | | -webkit-text-fill-color: transparent; |
| | | } |
| | | |
| | | .blue { |
| | | background-image: -webkit-linear-gradient(top, |
| | | #fff 0%, |
| | | #65a1fa 30%, |
| | | #3a84f6 100%); |
| | | } |
| | | |
| | | .today { |
| | | background-image: -webkit-linear-gradient(top, |
| | | #fff 0%, |
| | | #20FFC5 50%, |
| | | #20FFC5 30%, |
| | | #20FFC5 100%); |
| | | } |
| | | |
| | | .finish { |
| | | background-image: -webkit-linear-gradient(top, |
| | | #fff 0%, |
| | | #FFB120 50%, |
| | | #FFB120 30%, |
| | | #FFB120 100%); |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | .footer { |
| | | font-weight: 500; |
| | | font-size: 16px; |
| | | display: flex; |
| | | align-items: center; |
| | | .wrap { |
| | | display: flex; |
| | | align-items: center; |
| | | height: 76px; |
| | | |
| | | .num { |
| | | font-weight: bold; |
| | | font-size: 24px; |
| | | color: #01D9FE; |
| | | margin-left: 8px; |
| | | .content { |
| | | flex: 5; |
| | | height: 16px; |
| | | background: rgba(255, 255, 255, 0.13); |
| | | border-radius: 8px; |
| | | margin-right: 4px; |
| | | display: flex; |
| | | position: relative; |
| | | } |
| | | |
| | | .box { |
| | | width: 40%; |
| | | height: 16px; |
| | | background: linear-gradient(270deg, #FF9F02 0%, #FFEA70 100%); |
| | | border-radius: 8px; |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | z-index: 99; |
| | | |
| | | .tag { |
| | | position: absolute; |
| | | bottom: -30px; |
| | | right: 0; |
| | | transform: translate(50%, 0); |
| | | height: 20px; |
| | | background: #FECE01; |
| | | color: #000000; |
| | | padding: 0 6px; |
| | | border-radius: 12px; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .icon { |
| | | position: absolute; |
| | | top: 1px; |
| | | left: 50%; |
| | | /* transform: translate(-50%,0); */ |
| | | width: 10px; |
| | | height: 10px; |
| | | transform: rotate(45deg) translate(-50%, 0); |
| | | background: #FECE01; |
| | | z-index: -1; |
| | | } |
| | | } |
| | | |
| | | .tag1 { |
| | | background-color: #28F0CC; |
| | | |
| | | .icon { |
| | | background-color: #28F0CC; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .box1 { |
| | | width: 70%; |
| | | z-index: 9; |
| | | background: linear-gradient(270deg, #15FDC8 0%, #006BFF 100%); |
| | | } |
| | | |
| | | .scale { |
| | | position: absolute; |
| | | top: -24px; |
| | | left: 0; |
| | | font-size: 16px; |
| | | color: #D2E0FF; |
| | | } |
| | | |
| | | .scale1 { |
| | | left: 84%; |
| | | } |
| | | |
| | | .side { |
| | | flex: 2; |
| | | height: 16px; |
| | | background: rgba(255, 255, 255, 0.13); |
| | | border-radius: 8px; |
| | | position: relative; |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | .center_box_two { |
| | | width: 100%; |
| | | flex: 1; |
| | | position: relative; |
| | | |
| | | .echart_map { |
| | | width: 100%; |
| | | height: 100%; |
| | | /* transform: scale(.2); */ |
| | | } |
| | | |
| | | .list { |
| | | position: absolute; |
| | | left: 24px; |
| | | bottom: 10px; |
| | | |
| | | .item { |
| | | display: flex; |
| | | align-items: center; |
| | | font-size: 15px; |
| | | color: #D2E0FF; |
| | | margin-top: 20px; |
| | | .icon { |
| | | width: 22px; |
| | | height: 22px; |
| | | background: rgba(255, 125, 9, 0.8); |
| | | margin-right: 12px; |
| | | } |
| | | .icon2{ |
| | | background: rgba(254,175,1,0.8); |
| | | } |
| | | .icon3{ |
| | | background: rgba(9,250,205,0.8); |
| | | } |
| | | .icon4{ |
| | | background: #225BA1; |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | .right_box { |
| | | width: 440px; |
| | | |
| | | .right_box_one { |
| | | margin-top: 20px; |
| | | padding: 0px 10px 30px 20px; |
| | | |
| | | .content_wrap { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | |
| | | .num_wrap { |
| | | width: 280px; |
| | | |
| | | .num_list { |
| | | display: flex; |
| | | margin-bottom: 20px; |
| | | |
| | | .num { |
| | | width: 30px; |
| | | height: 46px; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | position: relative; |
| | | font-weight: 600; |
| | | font-size: 32px; |
| | | margin-right: 5px; |
| | | } |
| | | } |
| | | |
| | | .content { |
| | | display: flex; |
| | | color: #D2E0FF; |
| | | |
| | | .la { |
| | | color: #869CC9; |
| | | } |
| | | |
| | | .unit_wrap { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .icon { |
| | | width: 10px; |
| | | height: 12px; |
| | | margin-right: 6px; |
| | | margin-left: 4px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .static_wrap { |
| | | flex: 1; |
| | | |
| | | .echart_wrap { |
| | | width: 54px; |
| | | height: 54px; |
| | | position: relative; |
| | | margin-bottom: 12px; |
| | | |
| | | .echart3 { |
| | | width: 54px; |
| | | height: 54px; |
| | | } |
| | | |
| | | .pie_text { |
| | | width: 38px; |
| | | height: 38px; |
| | | border: 1px dashed rgba(210, 224, 255, 0.48); |
| | | border-radius: 50%; |
| | | position: absolute; |
| | | |
| | | left: 50%; |
| | | top: 50%; |
| | | transform: translate(-50%, -50%); |
| | | z-index: 999; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | align-items: center; |
| | | font-size: 12px; |
| | | |
| | | .fs30 { |
| | | font-weight: 600; |
| | | font-size: 14px; |
| | | color: #28F0C4; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | .text { |
| | | font-size: 13px; |
| | | color: #869CC9; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .right_box_two { |
| | | padding: 10px 15px; |
| | | |
| | | .echart4_wrap { |
| | | width: 410px; |
| | | height: 216px; |
| | | |
| | | .echart4 { |
| | | width: 410px; |
| | | height: 216px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .right_box_three { |
| | | margin-top: 20px; |
| | | |
| | | .echart5_wrap { |
| | | height: 240px; |
| | | height: 192px; |
| | | width: 410px; |
| | | |
| | | .echart5 { |
| | | height: 240px; |
| | | height: 192px; |
| | | width: 410px; |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | .side { |
| | | font-size: 14px; |
| | | color: #D2E0FF; |
| | | |
| | | span { |
| | | font-size: 16px; |
| | | font-weight: 600; |
| | | color: #3981ea; |
| | | background-image: -webkit-linear-gradient(top, |
| | | #fff 0%, |
| | | #65a5ff 30%, |
| | | #2c66b9 100%); |
| | | -webkit-background-clip: text; |
| | | -webkit-text-fill-color: transparent; |
| | | |
| | | .unit { |
| | | font-weight: 400; |
| | | font-size: 12px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .tabs { |
| | | display: flex; |
| | | align-items: center; |