|  |  | 
 |  |  |             </div> | 
 |  |  |             <div class="content_wrap"> | 
 |  |  |               <div class="num_wrap"> | 
 |  |  |                 <div class="num_list"> | 
 |  |  |                   <div class="num" v-for="i in '200000'"> | 
 |  |  |                 <div class="num_list" v-if="cneterData.yearOutTotal"> | 
 |  |  |                   <div class="num" v-for="i in cneterData.yearOutTotal + ''"> | 
 |  |  |                     {{ i }} | 
 |  |  |                     <img class="bg" src="@/assets/images/LogisticsCenter/bg_number@2x.png" alt=""> | 
 |  |  |                   </div> | 
 |  |  | 
 |  |  |                   <div class="unit_wrap"> | 
 |  |  |                     <span class="la">同比</span> | 
 |  |  |                     <img src="@/assets/images/ic_up.png" class="icon" alt=""> | 
 |  |  |                     <span>10.2%</span> | 
 |  |  |                     <span v-if="cneterData.yearOutTotalOnYear || cneterData.yearOutTotalOnYear == 0">{{ | 
 |  |  |                       cneterData.yearOutTotalOnYear }} %</span> | 
 |  |  |                     <span class="la" style="margin-left: 30px;margin-right: 10px;">累计出库车次</span> | 
 |  |  |                     <span>3900</span> | 
 |  |  |                     <span>{{ cneterData.yearOutTimes || '' }}</span> | 
 |  |  |                   </div> | 
 |  |  |  | 
 |  |  |                 </div> | 
 |  |  | 
 |  |  |               </div> | 
 |  |  |               <div class="search_wrap"> | 
 |  |  |                 <img src="@/assets/images/LogisticsCenter/ic_search@2x.png" alt=""> | 
 |  |  |                 <span>订单查询</span> | 
 |  |  |                 <input class="input" type="text" @blur="getData2" v-model="taskCode"> | 
 |  |  |                 <!-- <span>订单查询</span> --> | 
 |  |  |               </div> | 
 |  |  |             </div> | 
 |  |  |             <div class="list_wrap"> | 
 |  |  | 
 |  |  |                 <span class="item">位置</span> | 
 |  |  |                 <span class="item">任务下达时间</span> | 
 |  |  |               </div> | 
 |  |  |               <div class="line" v-for="i in 5"> | 
 |  |  |                 <span class="item">皖A23bbb</span> | 
 |  |  |                 <span class="item">11</span> | 
 |  |  |                 <span class="item">11</span> | 
 |  |  |                 <span class="item">11</span> | 
 |  |  |               <div class="line" v-for="(item, i) in transportTask" :key="i"> | 
 |  |  |                 <span class="item">{{ item.carNo }}</span> | 
 |  |  |                 <span class="item">{{ item.statusStr }}</span> | 
 |  |  |                 <span class="item">{{ item.address }}</span> | 
 |  |  |                 <span class="item">{{ item.taskDate }}</span> | 
 |  |  |               </div> | 
 |  |  |             </div> | 
 |  |  |           </div> | 
 |  |  | 
 |  |  |                 <span>全省</span> | 
 |  |  |                 <img src="@/assets/images/LogisticsCenter/bottom.png" class="icon" alt=""> | 
 |  |  |               </div> | 
 |  |  |               <div class="select_op"> | 
 |  |  |                 <div class="line">合肥仓</div> | 
 |  |  |                 <div class="line">合肥仓</div> | 
 |  |  |                 <div class="line">合肥仓</div> | 
 |  |  |                 <div class="line">合肥仓</div> | 
 |  |  |               </div> | 
 |  |  |             </div> | 
 |  |  |             <div class="static_wrap"> | 
 |  |  |               <div class="item"> | 
 |  |  |                 <img src="@/assets/images/LogisticsCenter/ic_jinrijihua@2x.png" alt=""> | 
 |  |  |                 <div class="content"> | 
 |  |  |                   <div class="name">今日计划量</div> | 
 |  |  |                   <div class="num"><span>1000</span>万支</div> | 
 |  |  |                   <div class="unit">车次:10</div> | 
 |  |  |                   <div class="num"><span>{{ cneterData.outPlanTotal }}</span>万支</div> | 
 |  |  |                   <div class="unit">车次:{{ cneterData.outPlanTimes }}</div> | 
 |  |  |                 </div> | 
 |  |  |               </div> | 
 |  |  |               <div class="item"> | 
 |  |  |                 <img src="@/assets/images/LogisticsCenter/ic_jinrichuku@2x.png" alt=""> | 
 |  |  |                 <div class="content"> | 
 |  |  |                   <div class="name">今日出库量</div> | 
 |  |  |                   <div class="num"><span class="today">1000</span>万支</div> | 
 |  |  |                   <div class="unit">车次:10</div> | 
 |  |  |                   <div class="num"><span class="today">{{ cneterData.outTotal }}</span>万支</div> | 
 |  |  |                   <div class="unit">车次:{{ 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"><span class="finish">1000</span>万支</div> | 
 |  |  |                   <div class="unit">车次:10</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> | 
 |  |  | 
 |  |  |               <span class="num">80%</span> | 
 |  |  |             </div> | 
 |  |  |           </div> | 
 |  |  |           <div class="center_box_two"></div> | 
 |  |  |           <div class="center_box_two"> | 
 |  |  |             <div class="echart_map" ref="mapEchart" id="echart_map"></div> | 
 |  |  |           </div> | 
 |  |  |         </div> | 
 |  |  |         <div class="right_box"> | 
 |  |  |           <div class="com_header"> | 
 |  |  | 
 |  |  |             </div> | 
 |  |  |             <div class="content_wrap"> | 
 |  |  |               <div class="num_wrap"> | 
 |  |  |                 <div class="num_list"> | 
 |  |  |                   <div class="num" v-for="i in '200000'"> | 
 |  |  |                 <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 class="unit_wrap"> | 
 |  |  |                     <span class="la">同比</span> | 
 |  |  |                     <img src="@/assets/images/ic_up.png" class="icon" alt=""> | 
 |  |  |                     <span>10.2%</span> | 
 |  |  |                     <span>{{ cneterData.yearInTotalOnYear }}%</span> | 
 |  |  |                     <span class="la" style="margin-left: 30px;margin-right: 10px;">累计出库车次</span> | 
 |  |  |                     <span>3900</span> | 
 |  |  |                     <span>{{ cneterData.yearInTimes }}</span> | 
 |  |  |                   </div> | 
 |  |  |  | 
 |  |  |                 </div> | 
 |  |  | 
 |  |  |                 <div class="echart_wrap"> | 
 |  |  |                   <div class="echart3" id="echart3"></div> | 
 |  |  |                   <div class="pie_text"> | 
 |  |  |                     <div class="fs30">30%</div> | 
 |  |  |                     <!-- <div class="fs30">{{ cneterData.PlanTotal }}%</div> --> | 
 |  |  |                   </div> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="text">计划完成量</div> | 
 |  |  | 
 |  |  |                 <div>进销存运营</div> | 
 |  |  |               </div> | 
 |  |  |               <div class="tabs"> | 
 |  |  |                 <div class="tab active">7天</div> | 
 |  |  |                 <div :class="{ active: activeTabs == 0 }" class="tab" @click="tabsClick4(0)">7天</div> | 
 |  |  |                 <div class="separate"></div> | 
 |  |  |                 <div class="tab">30天</div> | 
 |  |  |                 <div :class="{ active: activeTabs == 1 }" class="tab" @click="tabsClick4(1)">30天</div> | 
 |  |  |                 <div class="separate"></div> | 
 |  |  |                 <div class="tab">1年</div> | 
 |  |  |                 <div :class="{ active: activeTabs == 2 }" class="tab" @click="tabsClick4(2)">1年</div> | 
 |  |  |               </div> | 
 |  |  |             </div> | 
 |  |  |             <div class="echart4_wrap"> | 
 |  |  | 
 |  |  | </template> | 
 |  |  |  | 
 |  |  | <script setup> | 
 |  |  | import { ref, onMounted } from 'vue' | 
 |  |  | import { ref, onMounted, nextTick } from 'vue' | 
 |  |  | import VScaleScreen from 'v-scale-screen' | 
 |  |  | import Percent from '@/components/percent.vue' | 
 |  |  | import dayjs from 'dayjs' | 
 |  |  |  | 
 |  |  | import * as echarts from 'echarts' | 
 |  |  | import chinaJSON from '@/assets/china.json' | 
 |  |  | import { | 
 |  |  |   getStoreOperationList, | 
 |  |  |   getStorearriveGoodsList, | 
 |  |  |   getStorecenterData, | 
 |  |  |   getStoreenergyDataList, | 
 |  |  |   getStorelastMonthOil, | 
 |  |  |   getStoreTaskList, | 
 |  |  | } from '@/api' | 
 |  |  |  | 
 |  |  | const weekMap = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六',] | 
 |  |  | const date = ref(dayjs().format('YYYY.MM.DD')) | 
 |  |  | const week = ref(weekMap[new Date().getDay()]) | 
 |  |  | 
 |  |  |  | 
 |  |  | }, 1000) | 
 |  |  |  | 
 |  |  | const colors = ['#0193FE', '#FFB642', '#5fc6d5'] | 
 |  |  | const StockOutData = ref([]) | 
 |  |  | const getStockOut = () => { | 
 |  |  |   let arr = [] | 
 |  |  |   arr.push({ name: '访客', value: 20 }) | 
 |  |  |   arr.push({ name: '关方', value: 30 }) | 
 |  |  |   arr.sort((a, b) => b.value - a.value) | 
 |  |  |   StockOutData.value = arr | 
 |  |  |   initEchart1() | 
 |  |  | } | 
 |  |  | const initEchart1 = () => { | 
 |  |  | const initEchart2 = () => { | 
 |  |  |   const myChart = echarts.init(document.getElementById('echart1')) | 
 |  |  |   const option = { | 
 |  |  |     tooltip: { | 
 |  |  |       trigger: 'item' | 
 |  |  |     }, | 
 |  |  |     series: [ | 
 |  |  |       { | 
 |  |  |         type: 'pie', | 
 |  |  |         radius: ['72%', '96%'], | 
 |  |  |         radius: ['86%', '100%'], | 
 |  |  |         label: { | 
 |  |  |           show: false, | 
 |  |  |           position: 'center' | 
 |  |  |         }, | 
 |  |  |         padAngle: 5, | 
 |  |  |         itemStyle: { | 
 |  |  |           borderRadius: 10 | 
 |  |  |         }, | 
 |  |  |         color: colors, | 
 |  |  |         labelLine: { | 
 |  |  |           show: false | 
 |  |  |         }, | 
 |  |  |         data: StockOutData.value | 
 |  |  |         data: [ | 
 |  |  |           { value: 1048, name: 'Search Engine' }, | 
 |  |  |           { value: 735, name: 'Direct' }, | 
 |  |  |           { value: 580, name: 'Email' } | 
 |  |  |         ] | 
 |  |  |       } | 
 |  |  |     ] | 
 |  |  |   } | 
 |  |  | 
 |  |  |     myChart.resize() | 
 |  |  |   }) | 
 |  |  | } | 
 |  |  |  | 
 |  |  | const mapEchart = ref() | 
 |  |  | const initMap = () => { | 
 |  |  |   var myChart = echarts.init(mapEchart.value) | 
 |  |  |   echarts.registerMap('china', chinaJSON) | 
 |  |  |   var points = [ | 
 |  |  |     // 点坐标 | 
 |  |  |     { value: [110.81, 33.40], itemStyle: { color: '#c1bb1f' }, name: '北京', total: 0, bj: 0, yj: 0, yx: 0, tj: 0, dw: 0 }, | 
 |  |  |     { value: [116.55, 40.01], itemStyle: { color: '#3eef1d' }, name: '北京', total: 0, bj: 0, yj: 0, yx: 0, tj: 0, dw: 0 }, | 
 |  |  |     { value: [113.11, 28.40], itemStyle: { color: '#3eef1d' }, name: '北京', total: 5, bj: 0, yj: 0, yx: 5, tj: 0, dw: 0 }, | 
 |  |  |     { value: [106.44, 29.50], itemStyle: { color: '#3eef1d' }, name: '北京', total: 10, bj: 0, yj: 0, yx: 10, tj: 0, dw: 0 }, | 
 |  |  |     { value: [112.85, 38.95], itemStyle: { color: '#3eef1d' }, name: '北京', total: 8, bj: 0, yj: 0, yx: 8, tj: 0, dw: 0 }, | 
 |  |  |     { value: [82.78, 43.27], itemStyle: { color: '#3eef1d' }, name: '北京', total: 18, bj: 0, yj: 0, yx: 18, tj: 0, dw: 0 } | 
 |  |  |   ] | 
 |  |  |   var lineToLf = [ | 
 |  |  |     { name: '11', coords: [[110.81, 33.40], [116.55, 40.01]], lineStyle: { color: '#c1bb1f' } }, | 
 |  |  |     { name: '22', coords: [[113.11, 28.40], [116.55, 40.01]], lineStyle: { color: '#3eef1d' } }, | 
 |  |  |     { name: '33', coords: [[106.44, 29.50], [116.55, 40.01]], lineStyle: { color: '#3eef1d' } }, | 
 |  |  |     { name: '44', coords: [[112.85, 38.95], [116.55, 40.01]], lineStyle: { color: '#3eef1d' } }, | 
 |  |  |     { name: '55', coords: [[82.78, 43.27], [116.55, 40.01]], lineStyle: { color: '#3eef1d' } } | 
 |  |  |   ] | 
 |  |  |   const option = { | 
 |  |  |     backgroundColor: 'transparent', // 设置背景色透明 | 
 |  |  |     // 必须设置 | 
 |  |  |     tooltip: { | 
 |  |  |       show: false | 
 |  |  |     }, | 
 |  |  |     // 地图阴影配置 | 
 |  |  |     geo: { | 
 |  |  |       map: 'china', | 
 |  |  |       // 这里必须定义,不然后面series里面不生效 | 
 |  |  |       tooltip: { | 
 |  |  |         show: false | 
 |  |  |       }, | 
 |  |  |       label: { | 
 |  |  |         show: false | 
 |  |  |       }, | 
 |  |  |       zoom: 1.6, | 
 |  |  |       silent: true, // 不响应鼠标时间 | 
 |  |  |       show: true, | 
 |  |  |       roam: false, // 地图缩放和平移 | 
 |  |  |       aspectScale: 0.75, // scale 地图的长宽比 | 
 |  |  |       itemStyle: { | 
 |  |  |         borderColor: '#2d5f9c', | 
 |  |  |         borderWidth: 1, | 
 |  |  |         areaColor: '#2d5f9c', | 
 |  |  |         shadowColor: 'rgba(1,34,73,0.48)', | 
 |  |  |         shadowBlur: 10, | 
 |  |  |         shadowOffsetX: -10, // | 
 |  |  |         shadowOffsetY: 10 | 
 |  |  |       }, | 
 |  |  |       select: { | 
 |  |  |         disabled: true | 
 |  |  |       }, | 
 |  |  |       emphasis: { | 
 |  |  |         disabled: true, | 
 |  |  |         areaColor: '#00F1FF' | 
 |  |  |       }, | 
 |  |  |       // 地图区域的多边形 图形样式 阴影效果 | 
 |  |  |       // z值小的图形会被z值大的图形覆盖 | 
 |  |  |       top: '30.2%', | 
 |  |  |       left: 'center', | 
 |  |  |       // 去除南海诸岛阴影 series map里面没有此属性 | 
 |  |  |       regions: [{ | 
 |  |  |         name: '南海诸岛', | 
 |  |  |         selected: false, | 
 |  |  |         emphasis: { | 
 |  |  |           disabled: true | 
 |  |  |         }, | 
 |  |  |         itemStyle: { | 
 |  |  |           areaColor: '#00000000', | 
 |  |  |           borderColor: '#00000000' | 
 |  |  |         } | 
 |  |  |       }], | 
 |  |  |       z: 1 | 
 |  |  |     }, | 
 |  |  |     series: [ | 
 |  |  |       // 地图配置 | 
 |  |  |       { | 
 |  |  |         type: 'map', | 
 |  |  |         map: 'china', | 
 |  |  |         zoom: 1.6, | 
 |  |  |         tooltip: { | 
 |  |  |           show: false | 
 |  |  |         }, | 
 |  |  |         label: { | 
 |  |  |           show: true, // 显示省份名称 | 
 |  |  |           color: '#fff', | 
 |  |  |           fontSize: 13, | 
 |  |  |           shadowColor: '#fff', | 
 |  |  |           shadowBlur: 10, | 
 |  |  |           shadowOffsetX: 2, | 
 |  |  |           shadowOffsetY: 2, | 
 |  |  |           textBorderColor: '#fff', | 
 |  |  |           // rotate: 90, | 
 |  |  |           align: 'center' | 
 |  |  |         }, | 
 |  |  |         top: '28%', | 
 |  |  |         left: 'center', | 
 |  |  |         aspectScale: 0.75, | 
 |  |  |         roam: false, // 地图缩放和平移 | 
 |  |  |         itemStyle: { | 
 |  |  |           borderColor: '#4278a3', // 省分界线颜色  阴影效果的 | 
 |  |  |           borderWidth: 1, | 
 |  |  |           areaColor: '#1d3f71', | 
 |  |  |           opacity: 1 | 
 |  |  |         }, | 
 |  |  |         // 去除选中状态 | 
 |  |  |         select: { | 
 |  |  |           disabled: true | 
 |  |  |         }, | 
 |  |  |         emphasis: { // 聚焦后颜色 | 
 |  |  |           disabled: false, // 开启高亮 | 
 |  |  |           label: { | 
 |  |  |             align: 'center', | 
 |  |  |             color: '#04CFF5' | 
 |  |  |           }, | 
 |  |  |           itemStyle: { | 
 |  |  |             color: '#ffffff', | 
 |  |  |             areaColor: '#3c87b2'// 阴影效果 鼠标移动上去的颜色 | 
 |  |  |           } | 
 |  |  |         }, | 
 |  |  |         z: 2 | 
 |  |  |       }, | 
 |  |  |       // 点 | 
 |  |  |       { | 
 |  |  |         name: 'companyPoint', | 
 |  |  |         type: 'effectScatter', | 
 |  |  |         coordinateSystem: 'geo', | 
 |  |  |         showEffectOn: 'render', | 
 |  |  |         // zlevel: 2, // zlevel用于 Canvas 分层 相同的绘制在同一个canvas上 | 
 |  |  |         rippleEffect: { | 
 |  |  |           number: 3, // 波纹数量 | 
 |  |  |           period: 10, // 动画周期 数值越大,波动越慢 | 
 |  |  |           scale: 3.5, // 动画中波纹的最大缩放比例 | 
 |  |  |           brushType: 'stroke' // 波纹的绘制方式 stroke fill | 
 |  |  |         }, | 
 |  |  |         label: { | 
 |  |  |           show: false, | 
 |  |  |           position: 'right', | 
 |  |  |           formatter: '{b}', | 
 |  |  |           color: '#97e9e1', | 
 |  |  |           fontSize: 14 | 
 |  |  |         }, | 
 |  |  |         symbol: 'circle', | 
 |  |  |         symbolSize: 8, | 
 |  |  |         data: points, | 
 |  |  |         tooltip: { | 
 |  |  |           show: true, | 
 |  |  |           backgroundColor: 'rgba(0,0,0,0)', | 
 |  |  |           padding: 0, | 
 |  |  |           borderWidth: 0, | 
 |  |  |           extraCssText: 'box-shadow: 0 0 0 rgba(0, 0, 0, 0);', // 去除box-shadow阴影 | 
 |  |  |           formatter: (params) => { | 
 |  |  |             return `<div class="map-tip-box"> | 
 |  |  |                         <div class="item-state-con title"> | 
 |  |  |                           <div class="icon"></div> | 
 |  |  |                           <span>${params.data.name}</span>   | 
 |  |  |                         </div> | 
 |  |  |                         <div class="item-state-con"> | 
 |  |  |                           <span class="dot bj"></span> | 
 |  |  |                           <span class="item-state-num"> | 
 |  |  |                             <span class="text">本月出库量:</span> | 
 |  |  |                             <span class="num">${params.data.total}万支</span> | 
 |  |  |                           </span> | 
 |  |  |                         </div> | 
 |  |  |                          <div class="item-state-con"> | 
 |  |  |                           <span class="dot yj"></span> | 
 |  |  |                           <span class="item-state-num"> | 
 |  |  |                            <span class="text">本年出库量</span> | 
 |  |  |                             <span class="num">${params.data.yx}万支</span> | 
 |  |  |                           </span> | 
 |  |  |                         </div> | 
 |  |  |                        </div>` | 
 |  |  |           } | 
 |  |  |         }, | 
 |  |  |         z: 4 | 
 |  |  |       }, | 
 |  |  |       // 地图线的动画效果 | 
 |  |  |       // { | 
 |  |  |       //   name: 'arrowline', | 
 |  |  |       //   type: 'lines', | 
 |  |  |       //   // zlevel: 1, | 
 |  |  |       //   effect: { | 
 |  |  |       //     show: true, | 
 |  |  |       //     period: 3, // 箭头指向速度,值越小速度越快 | 
 |  |  |       //     trailLength: 0.1, // 特效尾迹长度[0,1]值越大,尾迹越长重 | 
 |  |  |       //     symbol: 'arrow', // 箭头图标 | 
 |  |  |       //     symbolSize: 6 // 图标大小 | 
 |  |  |       //   }, | 
 |  |  |       //   lineStyle: { | 
 |  |  |       //     color: '#1DE9B6', | 
 |  |  |       //     width: 2, // 线条宽度 | 
 |  |  |       //     opacity: 0.1, // 尾迹线条透明度 | 
 |  |  |       //     curveness: 0.2 // 尾迹线条曲直度 | 
 |  |  |       //   }, | 
 |  |  |       //   data: lineToLf, | 
 |  |  |       //   z: 3 | 
 |  |  |       // } | 
 |  |  |     ] | 
 |  |  |   } | 
 |  |  |   myChart.setOption(option) | 
 |  |  |   window.addEventListener('resize', function () {//执行 | 
 |  |  |     myChart.resize() | 
 |  |  |   }) | 
 |  |  | } | 
 |  |  | const initEnergy = (list) => { | 
 |  |  |   var myChart = echarts.init(document.querySelector('.energyRef')) | 
 |  |  |   // 绘制图表 | 
 |  |  |   myChart.setOption({ | 
 |  |  |     tooltip: { | 
 |  |  |       trigger: 'axis', | 
 |  |  |       axisPointer: { | 
 |  |  |         // Use axis to trigger tooltip | 
 |  |  |         type: 'shadow' // 'shadow' as default; can also be 'line' or 'shadow' | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     legend: { | 
 |  |  |       itemGap: 24, | 
 |  |  |       // icon: 'circle', | 
 |  |  |       right: '12px', | 
 |  |  |       top: '16px', | 
 |  |  |       itemWidth: 28, | 
 |  |  |       itemHeight: 14, | 
 |  |  |       textStyle: { | 
 |  |  |         color: '#fff', | 
 |  |  |         borderColor: '#fff' | 
 |  |  |       }, | 
 |  |  |     }, | 
 |  |  |     grid: { | 
 |  |  |       left: '3%', | 
 |  |  |       right: '4%', | 
 |  |  |       bottom: '3%', | 
 |  |  |       top: '15%', | 
 |  |  |       containLabel: true | 
 |  |  |     }, | 
 |  |  |     xAxis: { | 
 |  |  |       type: 'value', | 
 |  |  |       splitLine: { | 
 |  |  |         show: true, | 
 |  |  |         lineStyle: { | 
 |  |  |           //这里输入线条的样式 | 
 |  |  |           color: 'rgba(255,255,255,0.14)' | 
 |  |  |         }, | 
 |  |  |         splitNumber: 4 | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     yAxis: { | 
 |  |  |       axisTick: { | 
 |  |  |         show: false, | 
 |  |  |       }, | 
 |  |  |       type: 'category', | 
 |  |  |       axisLine: { | 
 |  |  |         show: false | 
 |  |  |       }, | 
 |  |  |       data: list.map(i => i.dateStr) | 
 |  |  |     }, | 
 |  |  |     series: [ | 
 |  |  |       { | 
 |  |  |         name: '在途', | 
 |  |  |         type: 'bar', | 
 |  |  |         stack: 'total', | 
 |  |  |         barWidth: 14, | 
 |  |  |         label: { | 
 |  |  |           show: true | 
 |  |  |         }, | 
 |  |  |         emphasis: { | 
 |  |  |           focus: 'series' | 
 |  |  |         }, | 
 |  |  |         data: list.map(i => i.inTransitNum), | 
 |  |  |         itemStyle: { | 
 |  |  |           normal: { | 
 |  |  |             color: { | 
 |  |  |               type: 'linear', | 
 |  |  |               x: 0, | 
 |  |  |               y: 0, | 
 |  |  |               x2: 1, | 
 |  |  |               y2: 0, | 
 |  |  |               colorStops: [{ | 
 |  |  |                 offset: 0, | 
 |  |  |                 color: '#204d75' | 
 |  |  |               }, { | 
 |  |  |                 offset: 1, | 
 |  |  |                 color: '#2f6eae' | 
 |  |  |               }] | 
 |  |  |             } | 
 |  |  |           } | 
 |  |  |         }, | 
 |  |  |       }, | 
 |  |  |       { | 
 |  |  |         name: '到货', | 
 |  |  |         type: 'bar', | 
 |  |  |         barWidth: 14, | 
 |  |  |         stack: 'total', | 
 |  |  |         label: { | 
 |  |  |           show: true | 
 |  |  |         }, | 
 |  |  |         itemStyle: { | 
 |  |  |           normal: { | 
 |  |  |             color: { | 
 |  |  |               type: 'linear', | 
 |  |  |               x: 0, | 
 |  |  |               y: 0, | 
 |  |  |               x2: 1, | 
 |  |  |               y2: 0, | 
 |  |  |               colorStops: [{ | 
 |  |  |                 offset: 0, | 
 |  |  |                 color: '#3e8593' | 
 |  |  |               }, { | 
 |  |  |                 offset: 1, | 
 |  |  |                 color: '#5cc2d2' | 
 |  |  |               }] | 
 |  |  |             } | 
 |  |  |           } | 
 |  |  |         }, | 
 |  |  |         emphasis: { | 
 |  |  |           focus: 'series' | 
 |  |  |         }, | 
 |  |  |         data: list.map(i => i.arriveNum) | 
 |  |  |       } | 
 |  |  |     ] | 
 |  |  |   }) | 
 |  |  |   window.addEventListener('resize', function () {//执行 | 
 |  |  |     myChart.resize() | 
 |  |  |   }) | 
 |  |  | } | 
 |  |  | const getData1 = () => { | 
 |  |  |   getStorearriveGoodsList().then(res => { | 
 |  |  |     initEnergy(res.data || []) | 
 |  |  |   }) | 
 |  |  | } | 
 |  |  |  | 
 |  |  | const transportTask = ref([]) | 
 |  |  | const taskCode = ref('') | 
 |  |  | const getData2 = () => { | 
 |  |  |   getStoreTaskList({ code: taskCode.value }).then(res => { | 
 |  |  |     let temp = res.data || [] | 
 |  |  |     temp = temp.splice(0, 5) | 
 |  |  |     transportTask.value = temp.map(item => { | 
 |  |  |       item.taskDate = item.taskDate.slice(5, 16) | 
 |  |  |       return item | 
 |  |  |     }) | 
 |  |  |   }) | 
 |  |  | } | 
 |  |  |  | 
 |  |  | const cneterData = ref({}) | 
 |  |  | const colors = ['#0193FE', '#FFB642'] | 
 |  |  | const StockOutData = ref([]) | 
 |  |  | const initEchart1 = () => { | 
 |  |  |   const myChart = echarts.init(document.getElementById('echart1')) | 
 |  |  |   const option = { | 
 |  |  |     tooltip: { | 
 |  |  |       trigger: 'item' | 
 |  |  |     }, | 
 |  |  |     series: [ | 
 |  |  |       { | 
 |  |  |         type: 'pie', | 
 |  |  |         radius: ['72%', '96%'], | 
 |  |  |         label: { | 
 |  |  |           show: false, | 
 |  |  |           position: 'center' | 
 |  |  |         }, | 
 |  |  |         color: colors, | 
 |  |  |         labelLine: { | 
 |  |  |           show: false | 
 |  |  |         }, | 
 |  |  |         data: StockOutData.value | 
 |  |  |       } | 
 |  |  |     ] | 
 |  |  |   } | 
 |  |  |   myChart.setOption(option) | 
 |  |  |   window.addEventListener('resize', function () { // 执行 | 
 |  |  |     myChart.resize() | 
 |  |  |   }) | 
 |  |  | } | 
 |  |  | const getStockOut = () => { | 
 |  |  |   let arr = [] | 
 |  |  |   arr.push({ name: '省内', value: (cneterData.value.yearProvinceRata * 100).toFixed(0) + '%' }) | 
 |  |  |   arr.push({ name: '省外', value: ((1 - cneterData.value.yearProvinceRata) * 100).toFixed(0) + '%' }) | 
 |  |  |   arr.sort((a, b) => b.value - a.value) | 
 |  |  |   StockOutData.value = arr | 
 |  |  |   initEchart1() | 
 |  |  | } | 
 |  |  | const getData3 = () => { | 
 |  |  |   getStorecenterData().then(res => { | 
 |  |  |     cneterData.value = res.data || {} | 
 |  |  |     getStockOut() | 
 |  |  |   }) | 
 |  |  | } | 
 |  |  |  | 
 |  |  | const activeTabs = ref(0) | 
 |  |  | const dataList4 = ref([]) | 
 |  |  | const initEchart4 = () => { | 
 |  |  |   // 基于准备好的dom,初始化echarts实例 | 
 |  |  |   const myChart = echarts.init(document.getElementById('echart4')) | 
 |  |  | 
 |  |  |   myChart.setOption({ | 
 |  |  |     tooltip: { | 
 |  |  |       trigger: 'axis', | 
 |  |  |       backgroundColor: '#091123', | 
 |  |  |       axisPointer: { | 
 |  |  |         type: 'line' | 
 |  |  |       }, | 
 |  |  |       formatter: function (params) { | 
 |  |  |         setTimeout(() => { | 
 |  |  |           console.log('params', params) | 
 |  |  |         }) | 
 |  |  |         return ` | 
 |  |  |           <div style="background-color: #091123;margin: -12px;padding: 14px;border: 2px solid rgba(1,217,254,0.5);color: #fff;"> | 
 |  |  |             <div>${params[0].name}总销售额(万元)</div> | 
 |  |  |             <div style="display: flex;align-items: center;"> | 
 |  |  |               <div style="width: 10px;height: 10px;border-radius: 50%;background-color: #ebbf40;"></div> | 
 |  |  |               <div style="margin: 0 4px 0 6px;">总销售</div> | 
 |  |  |               <span style="color: #ebbf40;">${params[0].value}</span> | 
 |  |  |             </div> | 
 |  |  |           </div> | 
 |  |  |         ` | 
 |  |  |       } | 
 |  |  |       // formatter: function (params) { | 
 |  |  |       //   setTimeout(() => { | 
 |  |  |       //   }) | 
 |  |  |       //   return ` | 
 |  |  |       //     <div style="background-color: #091123;margin: -12px;padding: 14px;border: 2px solid rgba(1,217,254,0.5);color: #fff;"> | 
 |  |  |       //       <div>${params[0].name}总销售额(万元)</div> | 
 |  |  |       //       <div style="display: flex;align-items: center;"> | 
 |  |  |       //         <div style="width: 10px;height: 10px;border-radius: 50%;background-color: #ebbf40;"></div> | 
 |  |  |       //         <div style="margin: 0 4px 0 6px;">总销售</div> | 
 |  |  |       //         <span style="color: #ebbf40;">${params[0].value}</span> | 
 |  |  |       //       </div> | 
 |  |  |       //     </div> | 
 |  |  |       //   ` | 
 |  |  |       // } | 
 |  |  |     }, | 
 |  |  |     xAxis: { | 
 |  |  |       type: 'category', | 
 |  |  |       boundaryGap: false, | 
 |  |  |       data: [1, 2, 3, 4, 5, 5] | 
 |  |  |       data: dataList4.value.map(i => i.dateStr) | 
 |  |  |     }, | 
 |  |  |     yAxis: { | 
 |  |  |       type: 'value', | 
 |  |  | 
 |  |  |         splitNumber: 4 | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     legend: { | 
 |  |  |       itemGap: 24, | 
 |  |  |       icon: 'rect', | 
 |  |  |       right: '12px', | 
 |  |  |       top: '0', | 
 |  |  |       itemWidth: 16, | 
 |  |  |       itemHeight: 2, | 
 |  |  |       textStyle: { | 
 |  |  |         color: '#fff', | 
 |  |  |         borderColor: '#fff' | 
 |  |  |       }, | 
 |  |  |       data: ['总入库量', '总出库量', '库存量'] | 
 |  |  |     }, | 
 |  |  |     grid: { | 
 |  |  |       top: '18%', | 
 |  |  |       left: '0%', | 
 |  |  | 
 |  |  |       bottom: '2%', | 
 |  |  |       containLabel: true | 
 |  |  |     }, | 
 |  |  |     legend: { | 
 |  |  |       data: ['总入库量', '总出库量'] | 
 |  |  |     }, | 
 |  |  |     series: [ | 
 |  |  |       { | 
 |  |  |         name: '总入库量', | 
 |  |  |         data: [10, 2, 30, 4, 4, 30].map(i => { | 
 |  |  |         data: dataList4.value.map(item => { | 
 |  |  |           return { | 
 |  |  |             name: i, | 
 |  |  |             value: i, | 
 |  |  |             name: item.dateStr, | 
 |  |  |             value: item.totalInNum, | 
 |  |  |           } | 
 |  |  |         }), | 
 |  |  |         type: 'line', | 
 |  |  | 
 |  |  |           width: 1.5, // 线条粗细 | 
 |  |  |         }, | 
 |  |  |         symbol: 'circle', | 
 |  |  |         symbolSize: 10, | 
 |  |  |         symbolSize: 4, | 
 |  |  |         itemStyle: { | 
 |  |  |           normal: { | 
 |  |  |             color: '#4191f6', //折线点的颜色 | 
 |  |  |           }, | 
 |  |  |           color: "#4190f4", | 
 |  |  |           borderColor: "rgba(255,255,255,.3)", | 
 |  |  |           borderWidth: 4, | 
 |  |  |         }, | 
 |  |  |         smooth: true | 
 |  |  |       }, | 
 |  |  |       { | 
 |  |  |         name: '总出库量', | 
 |  |  |         data: [30, 2, 10, 4, 4, 20].map(i => { | 
 |  |  |         data: dataList4.value.map(item => { | 
 |  |  |           return { | 
 |  |  |             name: i, | 
 |  |  |             value: i, | 
 |  |  |             name: item.dateStr, | 
 |  |  |             value: item.totalOutNum, | 
 |  |  |           } | 
 |  |  |         }), | 
 |  |  |         type: 'line', | 
 |  |  | 
 |  |  |           width: 2, // 线条粗细 | 
 |  |  |         }, | 
 |  |  |         symbol: 'circle', | 
 |  |  |         symbolSize: 10, | 
 |  |  |         symbolSize: 4, | 
 |  |  |         itemStyle: { | 
 |  |  |           normal: { | 
 |  |  |             color: '#F3BD00', //折线点的颜色 | 
 |  |  |           }, | 
 |  |  |           color: "#F3BD00", | 
 |  |  |           borderColor: "rgba(255,255,255,.3)", | 
 |  |  |           borderWidth: 4, | 
 |  |  |         }, | 
 |  |  |         smooth: true | 
 |  |  |       } | 
 |  |  |       }, | 
 |  |  |       { | 
 |  |  |         name: '库存量', | 
 |  |  |         data: dataList4.value.map(item => { | 
 |  |  |           return { | 
 |  |  |             name: item.dateStr, | 
 |  |  |             value: item.stockNum, | 
 |  |  |           } | 
 |  |  |         }), | 
 |  |  |         type: 'line', | 
 |  |  |         areaStyle: { | 
 |  |  |           normal: { | 
 |  |  |             color: { | 
 |  |  |               x: 0, | 
 |  |  |               y: 0, | 
 |  |  |               x2: 0, | 
 |  |  |               y2: 1, | 
 |  |  |               colorStops: [{ | 
 |  |  |                 offset: 0, | 
 |  |  |                 color: "rgba(218, 233, 250)" // 0% 处的颜色 | 
 |  |  |               }, { | 
 |  |  |                 offset: 1, | 
 |  |  |                 color: "#1b1b12" // 100% 处的颜色 | 
 |  |  |               }], | 
 |  |  |               globalCoord: false // 缺省为 false | 
 |  |  |             } | 
 |  |  |           } | 
 |  |  |         }, | 
 |  |  |         lineStyle: { // 线条样式 | 
 |  |  |           color: { | 
 |  |  |             type: 'linear', | 
 |  |  |             x: 0, | 
 |  |  |             y: 0, | 
 |  |  |             x2: 0, | 
 |  |  |             y2: 1, | 
 |  |  |             colorStops: [{ | 
 |  |  |               offset: 0, color: '#fff' // 0% 处的颜色 | 
 |  |  |             }, { | 
 |  |  |               offset: 1, color: '#fff' // 100% 处的颜色 | 
 |  |  |             }], | 
 |  |  |           }, | 
 |  |  |           width: 2, // 线条粗细 | 
 |  |  |         }, | 
 |  |  |         symbol: 'circle', | 
 |  |  |         symbolSize: 4, | 
 |  |  |         itemStyle: { | 
 |  |  |           color: "#fff", | 
 |  |  |           borderColor: "rgba(255,255,255,.3)", | 
 |  |  |           borderWidth: 4, | 
 |  |  |         }, | 
 |  |  |         smooth: true | 
 |  |  |       }, | 
 |  |  |     ] | 
 |  |  |   }) | 
 |  |  |  | 
 |  |  | 
 |  |  |     myChart.resize() | 
 |  |  |   }) | 
 |  |  | } | 
 |  |  | const tabsClick4 = (tab) => { | 
 |  |  |   activeTabs.value = tab | 
 |  |  |   getData4() | 
 |  |  | } | 
 |  |  | const getData4 = () => { // 进销存运营 | 
 |  |  |   getStoreOperationList({ queryType: activeTabs.value }).then(res => { | 
 |  |  |     console.log('res', res) | 
 |  |  |     dataList4.value = res.data || [] | 
 |  |  |     initEchart4() | 
 |  |  |   }) | 
 |  |  | } | 
 |  |  |  | 
 |  |  | const dataList5 = ref([]) | 
 |  |  | const initEchart5 = () => { | 
 |  |  |   // 基于准备好的dom,初始化echarts实例 | 
 |  |  |   const myChart = echarts.init(document.getElementById('echart5')) | 
 |  |  |   // 绘制图表 | 
 |  |  |   myChart.setOption({ | 
 |  |  |     tooltip: { | 
 |  |  |       trigger: 'axis', | 
 |  |  |       axisPointer: { | 
 |  |  |         type: 'cross', | 
 |  |  |         crossStyle: { | 
 |  |  |           color: '#999' | 
 |  |  |         } | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     toolbox: { | 
 |  |  |       feature: { | 
 |  |  |         dataView: { show: true, readOnly: false }, | 
 |  |  |         magicType: { show: true, type: ['line', 'bar'] }, | 
 |  |  |         restore: { show: true }, | 
 |  |  |         saveAsImage: { show: true } | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     legend: { | 
 |  |  |       data: ['Evaporation', 'Precipitation', 'Temperature'] | 
 |  |  |       itemGap: 12, | 
 |  |  |       // icon: 'circle', | 
 |  |  |       right: '12px', | 
 |  |  |       top: '0', | 
 |  |  |       data: ['总库存', '当前库存', '库存利用率'], | 
 |  |  |       itemWidth: 20, | 
 |  |  |       itemHeight: 10, | 
 |  |  |       textStyle: { | 
 |  |  |         color: '#fff', | 
 |  |  |         borderColor: '#fff' | 
 |  |  |       }, | 
 |  |  |     }, | 
 |  |  |     xAxis: [ | 
 |  |  |       { | 
 |  |  |         type: 'category', | 
 |  |  |         data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], | 
 |  |  |         axisPointer: { | 
 |  |  |           type: 'shadow' | 
 |  |  |         } | 
 |  |  |       } | 
 |  |  |     ], | 
 |  |  |     yAxis: [ | 
 |  |  |       { | 
 |  |  |         type: 'value', | 
 |  |  |         name: 'Precipitation', | 
 |  |  |         min: 0, | 
 |  |  |         max: 250, | 
 |  |  |         interval: 50, | 
 |  |  |         axisLabel: { | 
 |  |  |           formatter: '{value} ml' | 
 |  |  |         } | 
 |  |  |       }, | 
 |  |  |       { | 
 |  |  |         type: 'value', | 
 |  |  |         name: 'Temperature', | 
 |  |  |         min: 0, | 
 |  |  |         max: 25, | 
 |  |  |         interval: 5, | 
 |  |  |         axisLabel: { | 
 |  |  |           formatter: '{value} °C' | 
 |  |  |         } | 
 |  |  |       } | 
 |  |  |     ], | 
 |  |  |     series: [ | 
 |  |  |       { | 
 |  |  |         name: 'Evaporation', | 
 |  |  |         type: 'bar', | 
 |  |  |         tooltip: { | 
 |  |  |           valueFormatter: function (value) { | 
 |  |  |             return value + ' ml' | 
 |  |  |           } | 
 |  |  |         }, | 
 |  |  |         data: [ | 
 |  |  |           2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3 | 
 |  |  |         ] | 
 |  |  |       }, | 
 |  |  |       { | 
 |  |  |         name: 'Precipitation', | 
 |  |  |         type: 'bar', | 
 |  |  |         tooltip: { | 
 |  |  |           valueFormatter: function (value) { | 
 |  |  |             return value + ' ml' | 
 |  |  |           } | 
 |  |  |         }, | 
 |  |  |         data: [ | 
 |  |  |           2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3 | 
 |  |  |         ] | 
 |  |  |       }, | 
 |  |  |       { | 
 |  |  |         name: 'Temperature', | 
 |  |  |         type: 'line', | 
 |  |  |         yAxisIndex: 1, | 
 |  |  |         tooltip: { | 
 |  |  |           valueFormatter: function (value) { | 
 |  |  |             return value + ' °C' | 
 |  |  |           } | 
 |  |  |         }, | 
 |  |  |         data: [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2] | 
 |  |  |       } | 
 |  |  |     ] | 
 |  |  |   }) | 
 |  |  |  | 
 |  |  |   window.addEventListener('resize', function () {//执行 | 
 |  |  |     myChart.resize() | 
 |  |  |   }) | 
 |  |  | } | 
 |  |  |  | 
 |  |  | const arr = ['#68e2e3', '#50afd3', '#377cdb', '#d5ae3a'] | 
 |  |  | const initEnergy = () => { | 
 |  |  |   var myChart = echarts.init(document.querySelector('.energyRef')) | 
 |  |  |   // 绘制图表 | 
 |  |  |   const arr = ['#68e2e3', '#50afd3', '#377cdb', '#d5ae3a'] | 
 |  |  |   myChart.setOption({ | 
 |  |  |     grid: { | 
 |  |  |       top: '20%', | 
 |  |  |       left: '2%', | 
 |  |  |       right: '2%', | 
 |  |  |       bottom: '4%', | 
 |  |  |       left: '3%', | 
 |  |  |       right: '0%', | 
 |  |  |       bottom: '3%', | 
 |  |  |       top: '24%', | 
 |  |  |       containLabel: true | 
 |  |  |     }, | 
 |  |  |     tooltip: { | 
 |  |  |       trigger: 'axis', | 
 |  |  |       axisPointer: { | 
 |  |  |         type: 'line' | 
 |  |  |       }, | 
 |  |  |       trigger: 'axis' | 
 |  |  |     }, | 
 |  |  |     xAxis: { | 
 |  |  |     xAxis: [{ | 
 |  |  |       nameGap: 5, | 
 |  |  |       type: 'category', | 
 |  |  |       data: [1, 2, 3, 4, 4, 5] | 
 |  |  |     }, | 
 |  |  |     yAxis: { | 
 |  |  |       type: 'value', | 
 |  |  |       name: 'kw·h', | 
 |  |  |       nameTextStyle: { | 
 |  |  |         padding: [0, 0, 4, -30]    // 四个数字分别为上右下左与原位置距离 | 
 |  |  |       }, | 
 |  |  |       splitLine: { | 
 |  |  |       axisLine: { | 
 |  |  |         show: true, | 
 |  |  |         lineStyle: { | 
 |  |  |           //这里输入线条的样式 | 
 |  |  |           color: 'rgba(255,255,255,0.14)', | 
 |  |  |         } | 
 |  |  |           color: '#999' | 
 |  |  |         }, | 
 |  |  |       }, | 
 |  |  |       axisLabel: { | 
 |  |  |         color: '#869CC9' | 
 |  |  |         // fontSize: 24, | 
 |  |  |       }, | 
 |  |  |       axisTick: { | 
 |  |  |         show: false, | 
 |  |  |       }, | 
 |  |  |       data: dataList5.value.map(i => i.placeName), | 
 |  |  |     }], | 
 |  |  |     yAxis: [ | 
 |  |  |       { | 
 |  |  |         nameTextStyle: { | 
 |  |  |           color: '#869CC9', | 
 |  |  |         }, | 
 |  |  |         offset: 0, | 
 |  |  |         name: '万支', | 
 |  |  |         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: '%', | 
 |  |  |         min: 0, | 
 |  |  |         max: 100, | 
 |  |  |         // interval: 5, | 
 |  |  |         axisLabel: { | 
 |  |  |           formatter: '{value}' | 
 |  |  |         }, | 
 |  |  |         splitLine: false | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     ], | 
 |  |  |     series: [ | 
 |  |  |       { | 
 |  |  |         data: [1, 2, 3, 4, 5], | 
 |  |  |         name: '总库存', | 
 |  |  |         type: 'bar', | 
 |  |  |         barWidth: 10, | 
 |  |  |         barWidth: 8, | 
 |  |  |         barGap: '60%', | 
 |  |  |         label: { | 
 |  |  |           show: false, | 
 |  |  |           position: 'top', | 
 |  |  |           color: '#fff', | 
 |  |  |         }, | 
 |  |  |         itemStyle: { | 
 |  |  |           normal: { | 
 |  |  |             color: new echarts.graphic.LinearGradient( | 
 |  |  |               0, 0, 0, 1, | 
 |  |  |               [ | 
 |  |  |                 { offset: 0, color: arr[1] }, | 
 |  |  |                 { offset: 1, color: '#080807' } | 
 |  |  |               ] | 
 |  |  |             ), | 
 |  |  |             barBorderRadius: [10, 10, 0, 0] | 
 |  |  |           } | 
 |  |  |         } | 
 |  |  |           color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ | 
 |  |  |             { | 
 |  |  |               offset: 0, | 
 |  |  |               color: '#5bc7d5' | 
 |  |  |             }, | 
 |  |  |             { | 
 |  |  |               offset: 1, | 
 |  |  |               color: '#1a3f55' | 
 |  |  |             } | 
 |  |  |           ], false), | 
 |  |  |           lineStyle: { | 
 |  |  |             width: 1, | 
 |  |  |             type: 'solid' | 
 |  |  |           }, | 
 |  |  |           barBorderRadius: [30, 30, 0, 0], | 
 |  |  |         }, | 
 |  |  |         data: dataList5.value.map(i => i.totalStockNum) | 
 |  |  |       }, | 
 |  |  |       { | 
 |  |  |         name: '当前库存', | 
 |  |  |         type: 'bar', | 
 |  |  |         barWidth: 8, | 
 |  |  |         label: { | 
 |  |  |           show: false, | 
 |  |  |           position: 'top', | 
 |  |  |           color: '#fff', | 
 |  |  |         }, | 
 |  |  |         itemStyle: { | 
 |  |  |           color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ | 
 |  |  |             { | 
 |  |  |               offset: 0, | 
 |  |  |               color: '#edaf3d' | 
 |  |  |             }, | 
 |  |  |             { | 
 |  |  |               offset: 1, | 
 |  |  |               color: '#323522' | 
 |  |  |             } | 
 |  |  |           ], false), | 
 |  |  |           lineStyle: { | 
 |  |  |             width: 1, | 
 |  |  |             type: 'solid' | 
 |  |  |           }, | 
 |  |  |           barBorderRadius: [30, 30, 0, 0], | 
 |  |  |         }, | 
 |  |  |         data: dataList5.value.map(i => i.nowStockNum) | 
 |  |  |       }, | 
 |  |  |       { | 
 |  |  |         name: '库存利用率', | 
 |  |  |         type: 'line', | 
 |  |  |         smooth: true, | 
 |  |  |         showAllSymbol: true, | 
 |  |  |         symbol: 'none', | 
 |  |  |         lineStyle: { | 
 |  |  |           color: "#3d87e5" | 
 |  |  |         }, | 
 |  |  |         label: { | 
 |  |  |           show: false, | 
 |  |  |           position: 'top', | 
 |  |  |           color: '#fff', | 
 |  |  |         }, | 
 |  |  |         data: dataList5.value.map(i => i.stockRataNum) | 
 |  |  |       } | 
 |  |  |     ] | 
 |  |  |   }) | 
 |  |  |  | 
 |  |  |   window.addEventListener('resize', function () {//执行 | 
 |  |  |     myChart.resize() | 
 |  |  |   }) | 
 |  |  | } | 
 |  |  | const initEchart2 = () => { | 
 |  |  |   const myChart = echarts.init(document.getElementById('echart1')) | 
 |  |  |   const option = { | 
 |  |  |     series: [ | 
 |  |  |       { | 
 |  |  |         type: 'pie', | 
 |  |  |         radius: ['86%', '100%'], | 
 |  |  |         label: { | 
 |  |  |           show: false, | 
 |  |  |           position: 'center' | 
 |  |  |         }, | 
 |  |  |         padAngle: 5, | 
 |  |  |         itemStyle: { | 
 |  |  |           borderRadius: 10 | 
 |  |  |         }, | 
 |  |  |         color: colors, | 
 |  |  |         labelLine: { | 
 |  |  |           show: false | 
 |  |  |         }, | 
 |  |  |         data: [ | 
 |  |  |           { value: 1048, name: 'Search Engine' }, | 
 |  |  |           { value: 735, name: 'Direct' }, | 
 |  |  |           { value: 580, name: 'Email' } | 
 |  |  |         ] | 
 |  |  |       } | 
 |  |  |     ] | 
 |  |  |   } | 
 |  |  |   myChart.setOption(option) | 
 |  |  |   window.addEventListener('resize', function () { // 执行 | 
 |  |  |     myChart.resize() | 
 |  |  | const getData5 = () => { | 
 |  |  |   getStoreenergyDataList({ queryType: activeTabs.value }).then(res => { | 
 |  |  |     console.log('res', res) | 
 |  |  |     dataList5.value = res.data || [] | 
 |  |  |     initEchart5() | 
 |  |  |   }) | 
 |  |  | } | 
 |  |  |  | 
 |  |  | const initData = () => { | 
 |  |  |   getData1() | 
 |  |  |   getData2() | 
 |  |  |   getData3() | 
 |  |  |   getData4() | 
 |  |  |   getData5() | 
 |  |  | } | 
 |  |  |  | 
 |  |  | onMounted(() => { | 
 |  |  |   initEnergy() | 
 |  |  |   getStockOut() | 
 |  |  |   initEchart2() | 
 |  |  |   initEchart3() | 
 |  |  |   initEchart4() | 
 |  |  |   initEchart5() | 
 |  |  |   initData() | 
 |  |  |  | 
 |  |  |   initMap() | 
 |  |  |   // initEchart2() | 
 |  |  |   // initEchart3() | 
 |  |  |   // initEchart4() | 
 |  |  |   // initEchart5() | 
 |  |  | }) | 
 |  |  |  | 
 |  |  |  | 
 |  |  | </script> | 
 |  |  |  | 
 |  |  | <style lang="scss"> | 
 |  |  | .map-tip-box { | 
 |  |  |   background-color: rgba(6, 25, 48, .8); | 
 |  |  |   padding: 10px 30px; | 
 |  |  |   padding-left: 20px; | 
 |  |  |   border-radius: 4px; | 
 |  |  |   backdrop-filter: blur(10px); | 
 |  |  |   color: #D2E0FF; | 
 |  |  |   font-size: 12px; | 
 |  |  |   border: 1px solid #D2E0FF; | 
 |  |  |   .icon { | 
 |  |  |     width: 12px; | 
 |  |  |     height: 14px; | 
 |  |  |     background-image: url('@/assets/images/FireFighting/ic_location@2x.png'); | 
 |  |  |     background-repeat: no-repeat; | 
 |  |  |     background-position: center; | 
 |  |  |     background-size: cover; | 
 |  |  |     margin-right: 6px; | 
 |  |  |   } | 
 |  |  |  | 
 |  |  |   .title { | 
 |  |  |     font-size: 14px; | 
 |  |  |     font-weight: 600; | 
 |  |  |     display: flex; | 
 |  |  |     align-items: center | 
 |  |  |   } | 
 |  |  |  | 
 |  |  |   .item-state-con { | 
 |  |  |     margin-bottom: 6px; | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | </style> | 
 |  |  | <style lang="scss" scoped> | 
 |  |  | div { | 
 |  |  |   box-sizing: border-box; | 
 |  |  | 
 |  |  |     .left_box_one { | 
 |  |  |       margin-top: 20px; | 
 |  |  |       padding: 0px 10px 30px 20px; | 
 |  |  |       border: 1px solid; | 
 |  |  |  | 
 |  |  |       .content_wrap { | 
 |  |  |         display: flex; | 
 |  |  | 
 |  |  |  | 
 |  |  |     .left_box_two { | 
 |  |  |       margin-bottom: 20px; | 
 |  |  |       border: 1px solid; | 
 |  |  |       position: relative; | 
 |  |  |  | 
 |  |  |       .second_title { | 
 |  |  |         position: absolute; | 
 |  |  |         top: 14px; | 
 |  |  |         left: 20px; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       .energy_wrap { | 
 |  |  |         width: 100%; | 
 |  |  |         height: 250px; | 
 |  |  |         height: 300px; | 
 |  |  |  | 
 |  |  |         .energyRef { | 
 |  |  |           width: 100%; | 
 |  |  | 
 |  |  |     .left_box_three { | 
 |  |  |       width: 440px; | 
 |  |  |       padding: 0 15px; | 
 |  |  |       border: 1px solid; | 
 |  |  |  | 
 |  |  |       .second_title { | 
 |  |  |         margin-bottom: 10px; | 
 |  |  | 
 |  |  |           } | 
 |  |  |  | 
 |  |  |           .item { | 
 |  |  |             flex: 1; | 
 |  |  |             flex: 4; | 
 |  |  |             white-space: nowrap; | 
 |  |  |             overflow: hidden; | 
 |  |  |             text-overflow: ellipsis; | 
 |  |  |           } | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         .header { | 
 |  |  | 
 |  |  |   .center_box { | 
 |  |  |     flex: 1; | 
 |  |  |     padding: 0 20px; | 
 |  |  |     margin: 0 40px; | 
 |  |  |     margin: 0 20px; | 
 |  |  |     display: flex; | 
 |  |  |     flex-direction: column; | 
 |  |  |  | 
 |  |  |     .center_box_one { | 
 |  |  |       background: rgba(255, 255, 255, 0.02); | 
 |  |  |       height: 230px; | 
 |  |  |       border-top: 2px solid #306ba1; | 
 |  |  |       padding-top: 20px; | 
 |  |  |       padding: 20px 20px 0; | 
 |  |  |  | 
 |  |  |       .header_wrap { | 
 |  |  |         display: flex; | 
 |  |  | 
 |  |  |         margin-bottom: 28px; | 
 |  |  |         font-weight: bold; | 
 |  |  |         font-size: 18px; | 
 |  |  |         position: relative; | 
 |  |  |         &:hover{ | 
 |  |  |           .select_op{ | 
 |  |  |             display: block; | 
 |  |  |           } | 
 |  |  |         } | 
 |  |  |         background-image: -webkit-linear-gradient(top, | 
 |  |  |             #ffffff 0%, | 
 |  |  |             #c8ddff 66%, | 
 |  |  | 
 |  |  |           .icon { | 
 |  |  |             width: 14px; | 
 |  |  |             margin-left: 2px; | 
 |  |  |           } | 
 |  |  |         } | 
 |  |  |         .select_op{ | 
 |  |  |           position: absolute; | 
 |  |  |           top: 26px; | 
 |  |  |           right: 0px; | 
 |  |  |           width: 90px; | 
 |  |  |           z-index: 11; | 
 |  |  |           display: none; | 
 |  |  |           background: radial-gradient( 64% 83% at 50% 50%, rgba(19,88,173,0.8) 0%, rgba(5,18,32,0.86) 100%); | 
 |  |  |           .line{ | 
 |  |  |             display: flex; | 
 |  |  |             justify-content: center; | 
 |  |  |             align-items: center; | 
 |  |  |             height: 36px; | 
 |  |  |             cursor: pointer; | 
 |  |  |             color: #fff; | 
 |  |  |           } | 
 |  |  |         } | 
 |  |  |       } | 
 |  |  | 
 |  |  |  | 
 |  |  |     .center_box_two { | 
 |  |  |       width: 100%; | 
 |  |  |       border: 1px solid; | 
 |  |  |       flex: 1; | 
 |  |  |  | 
 |  |  |       /* border: 1px solid; */ | 
 |  |  |       .echart_map { | 
 |  |  |         width: 100%; | 
 |  |  |         height: 100%; | 
 |  |  |         /* transform: scale(.2); */ | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | 
 |  |  |     height: 28px; | 
 |  |  |     border-radius: 14px; | 
 |  |  |     border: 1px solid #869CC9; | 
 |  |  |     padding-left: 8px; | 
 |  |  |     margin-right: 12px; | 
 |  |  |  | 
 |  |  |     img { | 
 |  |  |       width: 14px; | 
 |  |  |       height: 14px; | 
 |  |  |       margin-right: 3px; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     .input { | 
 |  |  |       flex: 1; | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | 
 |  |  |     font-size: 14px; | 
 |  |  |     color: #d2e0ff; | 
 |  |  |  | 
 |  |  |     .tab { | 
 |  |  |       cursor: pointer; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     .separate { | 
 |  |  |       width: 1px; | 
 |  |  |       height: 14px; |