From d38f3d8c0642d5d58a3baeff5d80abafaa702f9f Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期一, 13 一月 2025 13:43:11 +0800 Subject: [PATCH] ll --- screen/src/views/LogisticsCenter.vue | 582 ++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 447 insertions(+), 135 deletions(-) diff --git a/screen/src/views/LogisticsCenter.vue b/screen/src/views/LogisticsCenter.vue index 7b0303a..195f64b 100644 --- a/screen/src/views/LogisticsCenter.vue +++ b/screen/src/views/LogisticsCenter.vue @@ -4,7 +4,7 @@ <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="" /> - <div class="title">鍏ㄧ渷鐗╂祦鍦ㄩ��</div> + <div class="title">瀹夊窘涓儫鎴愬搧闆嗘帶澶у睆</div> <div class="time_wrap"> <span class="date">{{ date }}</span> <span class="week">{{ week }}</span> @@ -25,7 +25,15 @@ <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="question"> + <img src="@/assets/images/ic_question@2x.png" style="margin-left: 6px;" class="icon" alt=""> + <div class="hover_wrap"> + <div class="triangle"></div> + <div class="title">绱鍑哄簱閲忕粺璁¤鏄庯細</div> + <div>绱鍑哄簱閲忥細鎵�鏈夌墿娴佸嚭搴撲綔涓氭暟鎹紙鍖呭惈鑱旇惀鍔犲伐锛堝洖杩愩�佽惤鍦伴攢鍞級銆佸墠缃簱绉诲簱(鎴愰兘/涓存矀)绛夋墍鏈夊嚭搴撲綔涓氭暟鎹級</div> + </div> + </div> </div> <div class="tabs"> <div class="tab" :class="{ active: activeTab1 == 1 }" @click="tab1Click(1)">鏈懆</div> @@ -37,11 +45,22 @@ </div> <div class="content_wrap"> <div class="num_wrap"> - <div class="num_list" v-if="StockOutData.currentNum || StockOutData.currentNum == 0"> - <div class="num" v-for="i in StockOutData.currentNum + ''"> - {{ i }} - <img class="bg" src="@/assets/images/LogisticsCenter/bg_number@2x.png" alt=""> + + <div class="question1"> + <div class="hover_con"> + <div class="num_list" v-if="StockOutData.currentNum || StockOutData.currentNum == 0"> + <div class="num" v-for="i in StockOutData.currentNum + ''"> + {{ i }} + <img class="bg" src="@/assets/images/LogisticsCenter/bg_number@2x.png" alt=""> + </div> + </div> + <div class="hover_wrap"> + <div class="triangle"></div> + <div class="title">璋冩嫧鍑哄簱閲忥細{{ StockOutData.currentProvinceNum || 0 }}绠�</div> + <div class="title">鍏朵粬鍑哄簱閲忥細{{ StockOutData.currentOtherNum || 0 }}绠�</div> + </div> </div> + </div> <div class="content"> <div class="unit_wrap"> @@ -101,9 +120,9 @@ </div> <div class="list_wrap"> <div class="header line"> - <span class="item">杩愯緭杞﹁締</span> - <span class="item status">鐘舵��</span> - <span class="item">浣嶇疆</span> + <span class="item">鍚堝悓鍙�</span> + <span class="item status">璁㈠崟鐘舵��</span> + <span class="item">鐩殑鍦�</span> <span class="item">浠诲姟涓嬭揪鏃堕棿</span> </div> <div class="one-swiper list"> @@ -114,7 +133,7 @@ <span class="item">{{ item.contractNumber }}</span> <span class="item status">{{ item.statusDesc }}</span> <span class="item">{{ item.receiveEnterprise }}</span> - <span class="item">{{ item.transportDate }}</span> + <span class="item">{{ item.createDate || '-' }}</span> </div> </div> </div> @@ -133,6 +152,17 @@ <div class="left"> <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> <span>鍑哄簱鑳藉姏</span> + <div class="question"> + <img src="@/assets/images/ic_question@2x.png" style="margin-left: 4px;" class="icon" alt=""> + <div class="hover_wrap"> + <div class="triangle"></div> + <div class="title">鍑哄簱鑳藉姏缁熻璇存槑锛�</div> + <div>褰撳墠璁㈠崟閲忥細鎴嚦鏄ㄦ棩鏈畬鎴愯鍗�+褰撴棩涓嬭揪鐨勮鍗曟暟閲忥紱</div> + <div>褰撴棩浠诲姟閲忥細鎴嚦鏄ㄦ棩宸查厤杞芥湭鍑哄簱+褰撴棩宸查厤杞芥湭鍑哄簱鏁伴噺+鏃犻渶閰嶈浇鐨勪换鍔★紱</div> + <div>浠婃棩鍑哄簱閲忥細褰撴棩鎸夊疄闄呭嚭搴撻噺锛堜互鐢靛瓙閿佷笂閿佷负鍑嗭級</div> + <div>鍓╀綑浠诲姟閲忥細褰撴棩浠诲姟閲�-浠婃棩鍑哄簱閲�</div> + </div> + </div> </div> <div class="right"> <img @click="showPro = !showPro" src="@/assets/images/LogisticsCenter/position.png" class="posi" alt=""> @@ -147,15 +177,18 @@ <div class="item"> <img src="@/assets/images/LogisticsCenter/ic_jinrijihua@2x.png" alt=""> <div class="content"> - <div class="name">褰撴棩璁㈠崟閲�</div> - <div class="num"><span class="blue">{{ cneterData.currentOrderNum }}</span>涓囨敮</div> + <div class="name">褰撳墠璁㈠崟閲�</div> + <div class="num"><span class="blue" + v-if="cneterData.currentOrderNum || cneterData.currentOrderNum == 0">{{ + cneterData.currentOrderNum }}</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.currentPlanNum }}</span>涓囨敮</div> + <div class="name">褰撳墠浠诲姟閲�</div> + <div class="num"><span v-if="cneterData.currentPlanNum || cneterData.currentPlanNum == 0">{{ + cneterData.currentPlanNum }}</span>绠�</div> <div class="unit">杞︽锛歿{ cneterData.currentPlanCarNum }}</div> </div> </div> @@ -163,7 +196,9 @@ <img src="@/assets/images/LogisticsCenter/ic_jinrichuku@2x.png" alt=""> <div class="content"> <div class="name">浠婃棩鍑哄簱閲�</div> - <div class="num"><span class="finish">{{ cneterData.crrentOutNum }}</span>涓囨敮</div> + <div class="num"><span v-if="cneterData.crrentOutNum || cneterData.crrentOutNum == 0" + class="finish">{{ + cneterData.crrentOutNum }}</span>绠�</div> <div class="unit">杞︽锛歿{ cneterData.crrentOutCarNum }}</div> </div> </div> @@ -171,7 +206,9 @@ <img src="@/assets/images/LogisticsCenter/ic_jinriweichu@2x.png" alt=""> <div class="content"> <div class="name">鍓╀綑浠诲姟閲�</div> - <div class="num"><span class="today">{{ cneterData.crrentRestNum }}</span>涓囨敮</div> + <div class="num"><span v-if="cneterData.crrentRestNum || cneterData.crrentRestNum == 0" + class="today">{{ + cneterData.crrentRestNum }}</span>绠�</div> <div class="unit">杞︽锛歿{ cneterData.crrentRestCarNum }}</div> </div> </div> @@ -197,7 +234,7 @@ <div :style="{ width: cneterData.level2 }" class="box box1"> <div v-if="cneterData.hoursAbility >= cneterData.currentPlanNum" class="tag tag1"> <div class="icon"></div> - <span>褰撴棩璁″垝</span> + <span>褰撳墠浠诲姟</span> </div> </div> </div> @@ -213,7 +250,7 @@ :style="{ width: cneterData.level22 }" class="box box1 box11"> <div class="tag tag1"> <div class="icon"></div> - <span>褰撴棩璁″垝</span> + <span>褰撳墠浠诲姟</span> </div> </div> <!-- <div class="box"></div> --> @@ -225,17 +262,19 @@ </div> <div class="center_box_two"> <div class="echart_map" ref="mapEchart" id="echart_map"></div> - <div v-if="showModal1" @click="showModal1 = false" class="modal1"> - <div class="list"> + <div v-if="showModal1" class="modal1"> + <div class="content"> <div class="head line"> <div class="item">杞︾墝鍙�</div> <div class="item">鍚堝悓鍙�</div> <div class="item addr">鐩殑鍦�</div> </div> - <div class="line" v-for="item in active1List"> - <div class="item">{{ item.platNumber }}</div> - <div class="item">{{ item.contractNumber }}</div> - <div class="item addr">{{ item.repertotyName }}</div> + <div class="list"> + <div class="line" v-for="item in active1List"> + <div class="item">{{ item.platNumber }}</div> + <div class="item">{{ item.contractNumber }}</div> + <div class="item addr">{{ item.repertotyName }}</div> + </div> </div> </div> </div> @@ -276,7 +315,7 @@ <div class="side"> 鍏ㄧ渷锛� <span>{{ data5.currentNum }}</span> - <span class="unit">涓囨敮 | </span> + <span class="unit">绠� | </span> <span v-if="data5.totalNum">{{ ((data5.currentNum / data5.totalNum) * 100).toFixed(1) }}%</span> </div> </div> @@ -293,7 +332,7 @@ <div class="side"> 鍏ㄧ渷锛� <span>{{ data6.currentNum }}</span> - <span class="unit">涓囨敮 | </span> + <span class="unit">绠� | </span> <span v-if="data6.totalNum">{{ ((data6.currentNum / data6.totalNum) * 100).toFixed(1) }}%</span> </div> </div> @@ -305,13 +344,13 @@ <div class="second_title"> <div class="title"> <img src="@/assets/images/LogisticsCenter/ic_title@2x.png" class="icon" alt="" /> - <div>杩愮敤璧勬簮鍒╃敤鐜�</div> + <div>杩愬姏璧勬簮鍒╃敤鐜�</div> </div> <div class="side"> 鍏ㄧ渷锛� <span>{{ data7.currentNum }}</span> <span class="unit">杈� | </span> - <span v-if="data7.totalNum">{{ ((data7.currentNum / data7.totalNum) * 100).toFixed(1) }}%</span> + <span v-if="data7.totalNum">{{ (data7.useRate * 100).toFixed(1) }}%</span> </div> </div> <div class="echart5_wrap"> @@ -323,8 +362,15 @@ <!-- --> <div class="modal_wrap" v-if="showModal"> <div class="title_head"> - <img src="@/assets/images/energy_ef/chuku_ic_car@2x.png" alt=""> - <span>鍚堝悓鍙凤細{{ modalInfo.contractNumber }}</span> + <div class="left"> + <img src="@/assets/images/LogisticsCenter/ic_hetong.png" alt=""> + <span>鍚堝悓鍙凤細{{ modalInfo.contractNumber }}</span> + </div> + <div class="tit_status">{{ modalInfo.orderStatusDesc }}</div> + </div> + <div v-if="modalInfo.overStock && modalInfo.overStock == 1" class="stock"> + <img src="@/assets/images/LogisticsCenter/ic_tips@2x.png" alt=""> + <span>鍥犲簱瀛樹笉瓒筹紝璁㈠崟鏆傛椂鏃犳硶閰嶈浇</span> </div> <div class="info"> <div class="item"> @@ -366,6 +412,7 @@ <div id="map-container" ref="mapContainer"></div> <div class="fu_list"> <div class="fu_item" v-for="item, k in modalInfo.cicleStatusList"> + <view v-if="k != modalInfo.cicleStatusList.length - 1" class="separate"></view> <div class="item_title"> <div class="icon"> <img v-if="item.key == 0 && k != 0" src="@/assets/images/LogisticsCenter/ic_dingdan@2x.png" @@ -400,7 +447,7 @@ <div v-else class="icon_wrap"></div> <div class="text" :class="{ placeholder3: k == 0 && i == 0 }"> {{ ite.orderStatusDes }} - <text v-if="ite.tel">锛屽彂璐т粨搴撶數璇濓細</text> + <text v-if="ite.tel">,鍙戣揣浠撳簱鐢佃瘽锛�</text> <text v-if="ite.tel" class="primaryColor">{{ ite.tel }}</text> </div> </div> @@ -411,7 +458,7 @@ </div> <Loading v-if="modalLoading" /> </div> - <div class="modal_mask" v-if="showModal" @click="closeModal"></div> + <div class="modal_mask" v-if="showModal || showModal1" @click="closeModal"></div> </div> </v-scale-screen> </template> @@ -459,7 +506,7 @@ time.value = dayjs().format('HH:mm:ss') }, 1000) -// +// const mapList = ref([]) const mapEchart = ref() const initMap = () => { @@ -475,51 +522,60 @@ { value: [103.9526, 30.7617, 1901], itemStyle: { color: '#fff' }, name: '鍥涘窛', total: 18, bj: 0, yj: 0, yx: 18, tj: 0, dw: 0 } ] const mapData = [ - { name: '鍖椾含甯�', value: 0 }, - { name: '澶╂触甯�', value: 0 }, - { name: '涓婃捣甯�', value: 0 }, - { name: '閲嶅簡甯�', value: 0 }, - { name: '娌冲寳鐪�', value: 0 }, - { name: '娌冲崡鐪�', value: 0 }, - { name: '浜戝崡鐪�', value: 0 }, - { name: '杈藉畞鐪�', value: 0 }, - { name: '榛戦緳姹熺渷', value: 0 }, - { name: '婀栧崡鐪�', value: 0 }, - { name: '瀹夊窘鐪�', value: 0 }, - { name: '灞变笢鐪�', value: 0 }, - { name: '鏂扮枂缁村惥灏旇嚜娌诲尯', value: 0 }, - { name: '姹熻嫃鐪�', value: 0 }, - { name: '娴欐睙鐪�', value: 0 }, - { name: '姹熻タ鐪�', value: 0 }, - { name: '婀栧寳鐪�', value: 0 }, - { name: '骞胯タ澹棌鑷不鍖�', value: 0 }, - { name: '鐢樿們鐪�', value: 0 }, - { name: '灞辫タ鐪�', value: 0 }, - { name: '鍐呰挋鍙よ嚜娌诲尯', value: 0 }, - { name: '闄曡タ鐪�', value: 0 }, - { name: '鍚夋灄鐪�', value: 0 }, - { name: '绂忓缓鐪�', value: 0 }, - { name: '璐靛窞鐪�', value: 0 }, - { name: '骞夸笢鐪�', value: 0 }, - { name: '闈掓捣鐪�', value: 0 }, - { name: '瑗胯棌鑷不鍖�', value: 0 }, - { name: '瀹佸鍥炴棌鑷不鍖�', value: 0 }, - { name: '鍥涘窛鐪�', value: 0 }, - { name: '瀹佸鐪�', value: 0 }, - { name: '娴峰崡鐪�', value: 0 }, - { name: '鍙版咕鐪�', value: 0 }, - { name: '棣欐腐鐗瑰埆琛屾斂鍖�', value: 0 }, - { name: '婢抽棬鐗瑰埆琛屾斂鍖�', value: 0 }, - { name: '鍗楁捣璇稿矝', value: 0 }, + { name: '鍖椾含甯�', code: '110000', value: 0 }, + { name: '澶╂触甯�', code: '120000', value: 0 }, + { name: '涓婃捣甯�', code: '310000', value: 0 }, + { name: '閲嶅簡甯�', code: '500000', value: 0 }, + { name: '娌冲寳鐪�', code: '130000', value: 0 }, + { name: '娌冲崡鐪�', code: '410000', value: 0 }, + { name: '浜戝崡鐪�', code: '530000', value: 0 }, + { name: '杈藉畞鐪�', code: '210000', value: 0 }, + { name: '榛戦緳姹熺渷', code: '230000', value: 0 }, + { name: '婀栧崡鐪�', code: '430000', value: 0 }, + { name: '瀹夊窘鐪�', code: '340000', value: 0 }, + { name: '灞变笢鐪�', code: '370000', value: 0 }, + { name: '鏂扮枂缁村惥灏旇嚜娌诲尯', code: '650000', value: 0 }, + { name: '姹熻嫃鐪�', code: '320000', value: 0 }, + { name: '娴欐睙鐪�', code: '330000', value: 0 }, + { name: '姹熻タ鐪�', code: '360000', value: 0 }, + { name: '婀栧寳鐪�', code: '420000', value: 0 }, + { name: '骞胯タ澹棌鑷不鍖�', code: '450000', value: 0 }, + { name: '鐢樿們鐪�', code: '620000', value: 0 }, + { name: '灞辫タ鐪�', code: '140000', value: 0 }, + { name: '鍐呰挋鍙よ嚜娌诲尯', code: '150000', value: 0 }, + { name: '闄曡タ鐪�', code: '610000', value: 0 }, + { name: '鍚夋灄鐪�', code: '220000', value: 0 }, + { name: '绂忓缓鐪�', code: '350000', value: 0 }, + { name: '璐靛窞鐪�', code: '520000', value: 0 }, + { name: '骞夸笢鐪�', code: '440000', value: 0 }, + { name: '闈掓捣鐪�', code: '630000', value: 0 }, + { name: '瑗胯棌鑷不鍖�', code: '540000', value: 0 }, + { name: '瀹佸鍥炴棌鑷不鍖�', code: '640000', value: 0 }, + { name: '鍥涘窛鐪�', code: '510000', value: 0 }, + { name: '瀹佸鐪�', code: '640000', value: 0 }, + { name: '娴峰崡鐪�', code: '460000', value: 0 }, + { name: '鍙版咕鐪�', code: '710000', value: 0 }, + { name: '棣欐腐鐗瑰埆琛屾斂鍖�', code: '810000', value: 0 }, + { name: '婢抽棬鐗瑰埆琛屾斂鍖�', code: '820003', value: 0 }, + { name: '鍗楁捣璇稿矝', code: '', value: 0 }, ] + let totalNum = 0 + mapList.value.forEach(i => { + totalNum += i.yearNum + }) mapData.forEach(item => { item.monthNum = 0 item.yearNum = 0 mapList.value.forEach(ite => { - if (item.name == ite.name) { - item.value = ite.value + if (item.code == ite.code) { + item.value = 0 item.monthNum = ite.monthNum item.yearNum = ite.yearNum + if (totalNum > 0) { + item.rate = ((ite.yearNum / totalNum) * 100).toFixed(2) + item.value = (ite.yearNum / totalNum).toFixed(4) + + } } }) }) @@ -529,10 +585,14 @@ visualMap: { type: 'piecewise', pieces: [ - { min: 100000, max: 99999999999, label: '鍑哄簱閲�10w浠ヤ笂', color: '#be6f2b' }, - { min: 50000, max: 100000, label: '鍑哄簱閲�5-10w', color: '#c39332' }, - { min: 20000, max: 50000, label: '鍑哄簱閲�2-5w', color: '#5ecbaf' }, - { min: -1, max: 20000, label: '鍑哄簱閲�2w浠ヤ笅', color: '#3561a4' }, + { min: 0.05, max: 99999999999, label: '璋冩嫧閲忓崰姣�5%浠ヤ笂', color: '#be6f2b' }, + { min: 0.02, max: 0.05, label: '璋冩嫧閲忓崰姣�2%~5%', color: '#c39332' }, + { min: 0.01, max: 0.02, label: '璋冩嫧閲忓崰姣�1%~2%', color: '#5ecbaf' }, + { min: -1, max: 0.01, label: '璋冩嫧閲忓崰姣�1%浠ヤ笅', color: '#3561a4' }, + // { min: 100000, max: 99999999999, label: '鍑哄簱閲�10w浠ヤ笂', color: '#be6f2b' }, + // { min: 50000, max: 100000, label: '鍑哄簱閲�5-10w', color: '#c39332' }, + // { min: 20000, max: 50000, label: '鍑哄簱閲�2-5w', color: '#5ecbaf' }, + // { min: -1, max: 20000, label: '鍑哄簱閲�2w浠ヤ笅', color: '#3561a4' }, ], itemWidth: 22, itemHeight: 22, @@ -612,11 +672,12 @@ }, itemStyle: { show: true, - color: '#00114F', // 楂樹寒鏂囧瓧棰滆壊 + color: '#fff', // 楂樹寒鏂囧瓧棰滆壊 borderColor: '#a4d0ec', // 楂樹寒杈规棰滆壊 - areaColor: '#63d5c1', //楂樹寒鍖哄煙棰滆壊 + areaColor: '#0056FF', //楂樹寒鍖哄煙棰滆壊 }, }, + selectedMode: false, label: { // 鍦板浘鏍囨敞 show: false, @@ -632,20 +693,27 @@ return `<div class="map-tip-box"> <div class="item-state-con title"> <div class="icon"></div> - <span>${params.data.name}</span> + <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.monthNum}涓囨敮</span> + <span class="text">鏈湀璋冩嫧閲忥細</span> + <span class="num">${params.data.monthNum}绠�</span> </span> </div> - <div class="item-state-con"> + <div class="item-state-con"> <span class="dot yj"></span> <span class="item-state-num"> - <span class="text">鏈勾鍑哄簱閲忥細</span> - <span class="num">${params.data.yearNum}涓囨敮</span> + <span class="text">鏈勾璋冩嫧閲忥細</span> + <span class="num">${params.data.yearNum}绠�</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.rate || 0}%</span> </span> </div> </div>` @@ -675,6 +743,7 @@ mapList.value = temp.map(item => { item.value = item.monthNum item.name = item.provinceName + item.code = item.provinceCode return item }) initMap() @@ -747,7 +816,7 @@ show: true, textStyle: { color: '#000000', - fontSize: 10 + fontSize: 12 } }, emphasis: { @@ -783,7 +852,11 @@ stack: 'total', barWidth: 14, label: { - show: true + show: true, + textStyle: { + color: '#000000', + fontSize: 12 + } }, emphasis: { focus: 'series' @@ -818,7 +891,11 @@ barWidth: 14, stack: 'total', label: { - show: true + show: true, + textStyle: { + color: '#000000', + fontSize: 12 + } }, textStyle: { color: '#000000', @@ -834,13 +911,13 @@ y2: 0, colorStops: [{ offset: 0, - color: '#71f3ce' + color: '#73f7d1' }, { offset: 1, - color: '#4da999' + color: '#58beaa' }] } - } + }, }, emphasis: { focus: 'series' @@ -900,6 +977,7 @@ } const closeModal = () => { showModal.value = false + showModal1.value = false modalInfo.value = {} } @@ -996,8 +1074,8 @@ isLoadingTask.value = false let temp = res.data.rows || [] transportTask.value = temp.map(item => { - if (item.transportDate) { - item.transportDate = item.transportDate.slice(5, 16) + if (item.createDate) { + item.createDate = item.createDate.slice(5, 16) } return item }) @@ -1037,6 +1115,15 @@ label: { show: false, position: 'center' + }, + emphasis: { + // 璁剧疆鎮诞鏃舵牱寮忎负绌� + scale: false, // 鍏抽棴鏀惧ぇ鏁堟灉 + itemStyle: { + shadowBlur: 0, // 闃村奖妯$硦搴︿负 0 + shadowOffsetX: 0, + shadowColor: 'rgba(0, 0, 0, 0)', + }, }, color: colors, labelLine: { @@ -1137,7 +1224,7 @@ // icon: 'circle', right: '12%', top: '0%', - data: ['鎬诲簱瀛�', '褰撳墠搴撳瓨', '搴撳瓨鍒╃敤鐜�'], + data: ['鎬诲簱瀹�', '褰撳墠搴撳瓨', '搴撳瓨鍒╃敤鐜�'], itemWidth: 20, itemHeight: 10, textStyle: { @@ -1153,7 +1240,33 @@ containLabel: true }, tooltip: { - trigger: 'axis' + trigger: 'axis', + formatter: function (params) { + // 閬嶅巻鎮诞鏃剁殑鎵�鏈夌偣锛屽畾鍒跺寲鏄剧ず鍐呭 + let result = `<div style="width: 160px">${params[0].name}</div>` + params.forEach((item) => { + if (item.seriesName === '鎬诲簱瀹�') { + result += ` + <div style="display: flex;align-items: center;justify-content: space-between;margin-top: 2px;"> + <div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px; border-radius: 50%;background-color: #5e9bca;margin-right: 4px;"></div><div>${item.seriesName}</div></div> + <div><strong>${item.value}</strong></div> + </div>` + } else if (item.seriesName === '褰撳墠搴撳瓨') { + result += ` + <div style="display: flex;align-items: center;justify-content: space-between;margin-top: 2px;"> + <div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px; border-radius: 50%;background-color: #e2a44f;margin-right: 4px;"></div><div>${item.seriesName}</div></div> + <div><strong>${item.value}</strong></div> + </div>` + } else if (item.seriesName === '搴撳瓨鍒╃敤鐜�') { + result += ` + <div style="display: flex;align-items: center;justify-content: space-between;margin-top: 2px;"> + <div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px; border-radius: 50%;background-color: #b2bcd1;margin-right: 4px;"></div><div>${item.seriesName}</div></div> + <div><strong>${item.value}%</strong></div> + </div>` + } + }) + return result + } }, xAxis: [{ nameGap: 5, @@ -1165,7 +1278,7 @@ }, }, axisLabel: { - color: '#D2E0FF' + color: '#869CC9' }, axisTick: { show: false, @@ -1177,7 +1290,7 @@ nameTextStyle: { color: '#869CC9', }, - name: '涓囨敮', + name: '绠�', nameGap: 16, type: 'value', axisLabel: { @@ -1213,7 +1326,7 @@ ], series: [ { - name: '鎬诲簱瀛�', + name: '鎬诲簱瀹�', type: 'bar', barWidth: 10, barGap: '60%', @@ -1285,11 +1398,14 @@ color: "#9eabc2" }, yAxisIndex: 1, + tooltip: { + show: true, + formatter: '{c}' + '%', + }, label: { show: false, position: 'top', color: '#fff', - // formatter: '{c}' + '%', }, data: data5.value.detailList.map(i => i.useRate) } @@ -1318,15 +1434,41 @@ borderColor: '#fff' }, }, + tooltip: { + trigger: 'axis', + formatter: function (params) { + // 閬嶅巻鎮诞鏃剁殑鎵�鏈夌偣锛屽畾鍒跺寲鏄剧ず鍐呭 + let result = `<div style="width: 160px">${params[0].name}</div>` + params.forEach((item) => { + if (item.seriesName === '鍑哄簱鑳藉姏') { + result += ` + <div style="display: flex;align-items: center;justify-content: space-between;margin-top: 2px;"> + <div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px; border-radius: 50%;background-color: #487af3;margin-right: 4px;"></div><div>${item.seriesName}</div></div> + <div><strong>${item.value}</strong></div> + </div>` + } else if (item.seriesName === '褰撴棩鍑哄簱閲�') { + result += ` + <div style="display: flex;align-items: center;justify-content: space-between;margin-top: 2px;"> + <div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px; border-radius: 50%;background-color: #e2a44f;margin-right: 4px;"></div><div>${item.seriesName}</div></div> + <div><strong>${item.value}</strong></div> + </div>` + } else if (item.seriesName === '鍑哄簱鍒╃敤鐜�') { + result += ` + <div style="display: flex;align-items: center;justify-content: space-between;margin-top: 2px;"> + <div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px; border-radius: 50%;background-color: #b0bcd3;margin-right: 4px;"></div><div>${item.seriesName}</div></div> + <div><strong>${item.value}%</strong></div> + </div>` + } + }) + return result + } + }, grid: { left: '3%', right: '0%', bottom: '3%', top: '18%', containLabel: true - }, - tooltip: { - trigger: 'axis' }, xAxis: [{ nameGap: 5, @@ -1350,7 +1492,7 @@ }], yAxis: [ { - name: '涓囨敮', + name: '绠�', nameGap: 16, type: 'value', axisLabel: { @@ -1468,7 +1610,6 @@ show: false, position: 'top', color: '#fff', - // formatter: '{c}' + '%', }, data: data6.value.detailList.map(i => i.useRate) } @@ -1489,7 +1630,7 @@ // icon: 'circle', right: '10%', top: '0%', - data: ['鎬昏繍鍔涜祫婧�', '褰撴棩鎻愭姤杩愬姏', '杞﹁締鍒╃敤鐜�'], + data: ['褰撴棩鍙敤杩愬姏', '褰撴棩鎻愭姤杩愬姏', '杞﹁締鍒╃敤鐜�'], itemWidth: 20, itemHeight: 10, textStyle: { @@ -1497,15 +1638,41 @@ borderColor: '#fff' }, }, + tooltip: { + trigger: 'axis', + formatter: function (params) { + // 閬嶅巻鎮诞鏃剁殑鎵�鏈夌偣锛屽畾鍒跺寲鏄剧ず鍐呭 + let result = `<div style="width: 160px">${params[0].name}</div>` + params.forEach((item) => { + if (item.seriesName === '褰撴棩鍙敤杩愬姏') { + result += ` + <div style="display: flex;align-items: center;justify-content: space-between;margin-top: 2px;"> + <div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px; border-radius: 50%;background-color: #88d9cc;margin-right: 4px;"></div><div>${item.seriesName}</div></div> + <div><strong>${item.value}</strong></div> + </div>` + } else if (item.seriesName === '褰撴棩鎻愭姤杩愬姏') { + result += ` + <div style="display: flex;align-items: center;justify-content: space-between;margin-top: 2px;"> + <div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px; border-radius: 50%;background-color: #e2a44f;margin-right: 4px;"></div><div>${item.seriesName}</div></div> + <div><strong>${item.value}</strong></div> + </div>` + } else if (item.seriesName === '杞﹁締鍒╃敤鐜�') { + result += ` + <div style="display: flex;align-items: center;justify-content: space-between;margin-top: 2px;"> + <div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px; border-radius: 50%;background-color: #b0bcd3;margin-right: 4px;"></div><div>${item.seriesName}</div></div> + <div><strong>${item.value}%</strong></div> + </div>` + } + }) + return result + } + }, grid: { left: '3%', right: '0%', bottom: '3%', top: '18%', containLabel: true - }, - tooltip: { - trigger: 'axis' }, xAxis: [{ nameGap: 5, @@ -1569,7 +1736,7 @@ ], series: [ { - name: '鎬昏繍鍔涜祫婧�', + name: '褰撴棩鍙敤杩愬姏', type: 'bar', barWidth: 10, barGap: '60%', @@ -1596,7 +1763,7 @@ }, barBorderRadius: [30, 30, 0, 0], }, - data: data7.value.detailList.map(i => i.totalNum) + data: data7.value.detailList.map(i => (i.totalNum - i.zaituNum)) }, { name: '褰撴棩鎻愭姤杩愬姏', @@ -1645,7 +1812,6 @@ show: false, position: 'top', color: '#fff', - // formatter: '{c}' + '%', }, data: data7.value.detailList.map(i => i.useRate) } @@ -1705,7 +1871,7 @@ initialSlide: 0, direction: 'vertical', //绔栫洿鏂瑰悜 slidesPerView: 5, - autoplay: autoplayFlag(transportTask.value, 5, 4000), + autoplay: autoplayFlag(transportTask.value, 5, 6000), observer: true, //淇敼swiper鑷繁鎴栧瓙鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper }) } @@ -1995,6 +2161,9 @@ .left { display: flex; align-items: center; + position: relative; + + img { width: 16px; @@ -2043,7 +2212,6 @@ .static_wrap { display: flex; justify-content: space-between; - align-items: center; margin: 30px 0 14px; .item { @@ -2147,7 +2315,7 @@ align-items: center; justify-content: center; min-width: 76px; - border: 1px solid #fff; + border: 1px solid #FECE01; .icon { position: absolute; @@ -2164,6 +2332,7 @@ .tag1 { background-color: #28F0CC; + border: 1px solid #28F0CC; .icon { background-color: #28F0CC; @@ -2226,7 +2395,7 @@ .modal1 { width: 500px; - height: 224px; + height: 192px; background: rgba(0, 86, 255, 0.1); backdrop-filter: blur(5px); padding: 12px 30px; @@ -2234,10 +2403,13 @@ top: 36px; left: 12px; border: 1px solid #4ba7f7; + z-index: 999999; - .list { - height: 192px; - overflow: auto; + .content { + .list { + height: 128px; + overflow: auto; + } .line { display: flex; @@ -2288,6 +2460,117 @@ width: 410px; } } + } + } + + .question { + display: flex; + align-items: center; + + &:hover { + .hover_wrap { + display: block; + } + } + + .hover_wrap { + display: none; + position: absolute; + left: 130px; + z-index: 999; + top: -5px; + width: 407px; + height: 148px; + background: rgba(0, 30, 63, 0.6); + border: 1px solid #003F82; + backdrop-filter: blur(3px); + padding: 10px; + font-size: 13px; + color: #e2ebfd; + line-height: 19px; + font-weight: 400; + border-radius: 6px; + + div { + margin-bottom: 3px; + } + + .triangle { + width: 12px; + height: 12px; + position: absolute; + top: 10px; + left: -6px; + transform: rotate(45deg); + border-left: 1px solid #003F82; + border-bottom: 1px solid #003F82; + background: rgba(0, 30, 63, 0.6); + backdrop-filter: blur(3px); + } + + .title { + font-weight: bold; + font-size: 14px; + color: #e2ebfd; + } + } + } +} + +.question1 { + display: flex; + align-items: center; + + .hover_con { + position: relative; + + &:hover { + .hover_wrap { + display: block; + } + } + } + + + .hover_wrap { + display: none; + + position: absolute; + left: 108%; + z-index: 999; + top: -5px; + width: 212px; + height: 62px; + background: rgba(0, 30, 63, 0.6); + border: 1px solid #003F82; + backdrop-filter: blur(3px); + padding: 10px; + font-size: 15px; + color: #e2ebfd; + line-height: 19px; + font-weight: 400; + border-radius: 6px; + + div { + margin-bottom: 3px; + } + + .triangle { + width: 12px; + height: 12px; + position: absolute; + top: 10px; + left: -6px; + transform: rotate(45deg); + border-left: 1px solid #003F82; + border-bottom: 1px solid #003F82; + background: rgba(0, 30, 63, 0.6); + /* backdrop-filter: blur(3px); */ + } + + .title { + font-weight: 600; + color: #e2ebfd; } } } @@ -2399,7 +2682,7 @@ width: 600px; height: 556px; background: rgba(0, 30, 63, 0.5); - border: 1px solid #c6eef7; + /* border: 1px solid #c6eef7; */ backdrop-filter: blur(5px); position: fixed; top: 20%; @@ -2409,25 +2692,45 @@ padding: 24px; #map-container { - width: 300px; - height: 180px; + width: 260px; + height: 320px; position: absolute; - top: 220px; - right: 10px; + top: 190px; + right: 20px; z-index: 999999; + border-radius: 2px; :deep(.amap-markers) { left: -12px !important; top: -32px !important; } } - + .stock{ + display: flex; + align-items: center; + color: #dd5d2a; + margin-bottom: 8px; + img{ + margin-right: 6px; + width: 14px; + } + } .title_head { display: flex; align-items: center; - font-weight: bold; - font-size: 17px; - margin-bottom: 20px; + justify-content: space-between; + margin-bottom: 8px; + + .left { + display: flex; + align-items: center; + font-weight: bold; + font-size: 17px; + } + + .tit_status { + color: #af8832; + } img { width: 20px; @@ -2484,11 +2787,13 @@ .fu_list { height: 310px; + width: 290px; margin-top: 20px; overflow: auto; - .fu_item { + position: relative; + .item_title { margin-bottom: 6px; @@ -2505,12 +2810,13 @@ } .separate { - height: calc(100% - 125px); - width: 1px; - border: 1px dashed #CCCCCC; + height: calc(100% - 8px); + /* width: 1px; */ + border: 1px dashed #576783; + /* border: 1px dashed red; */ position: absolute; - left: 26px; - top: 51px; + left: 10px; + top: 20px; z-index: -1; } @@ -2565,6 +2871,8 @@ .text { color: #b1bfdc; + margin-bottom: 6px; + width: 100%; } .icon { @@ -2577,7 +2885,6 @@ .h2 { display: flex; align-items: center; - height: 24px; } .h1 {} @@ -2585,7 +2892,6 @@ .time { padding-left: 39px; font-size: 12px; - margin-top: 3px; } } } @@ -2601,7 +2907,7 @@ top: 0; left: 0; z-index: 9999; - background-color: rgba(0, 0, 0, 0.1); + /* background-color: rgba(0, 0, 0, 0.0); */ /* background-color: red; */ } @@ -2620,6 +2926,12 @@ font-weight: 500; font-size: 16px; color: #FFFFFF; + position: relative; + + .hover_wrap { + left: 175px; + height: 80px; + } .icon { width: 16px; @@ -2742,4 +3054,4 @@ object-fit: cover; z-index: -1; } -</style> \ No newline at end of file +</style> -- Gitblit v1.9.3