From 0bda79a1d5f0de3a1885f13763c516650bc19007 Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期二, 29 十月 2024 16:00:38 +0800 Subject: [PATCH] ll --- admin/src/components/operation/OperCarUseBookParamWindow.vue | 4 screen/src/assets/base.css | 15 h5_meeting/pages/index/index.vue | 56 +- screen/src/api/index.js | 75 +++ screen/src/views/LogisticsCenter.vue | 1132 ++++++++++++++++++++++++++++--------------------- screen/src/utils/request.js | 7 admin/src/components/common/CommonHeader.vue | 9 screen/vite.config.js | 3 h5_meeting/App.vue | 4 screen/src/router/index.js | 3 screen/src/views/SecurityControl.vue | 6 h5_meeting/pages/index/config.vue | 15 12 files changed, 804 insertions(+), 525 deletions(-) diff --git a/admin/src/components/common/CommonHeader.vue b/admin/src/components/common/CommonHeader.vue index bae0e5b..ca89668 100644 --- a/admin/src/components/common/CommonHeader.vue +++ b/admin/src/components/common/CommonHeader.vue @@ -31,7 +31,6 @@ </div> </div> <!-- 淇敼瀵嗙爜 --> - <template v-if="editPsd"> <GlobalAlertWindow title="淇敼瀵嗙爜" :visible.sync="visible.changePwd" :showClose="!userInfo.needChangePwd || userInfo.needChangePwd == '0'" :showCancel="!userInfo.needChangePwd || userInfo.needChangePwd == '0'" @confirm="confirmChangePwd" @@ -52,8 +51,6 @@ </el-form-item> </el-form> </GlobalAlertWindow> - </template> - </div> </template> @@ -75,7 +72,6 @@ return { title: process.env.VUE_APP_TITLE, headerNavData: {}, - editPsd: false, visible: { // 淇敼瀵嗙爜 changePwd: false @@ -117,7 +113,7 @@ }, mounted() { - // console.log('userInfo',this.userInfo); + // needChangePwd 0 : 榛樿瀵嗙爜闇�瑕佷慨鏀癸紝1 涓嶉渶瑕� if (!this.userInfo.needChangePwd || this.userInfo.needChangePwd == '0') { this.visible.changePwd = true } @@ -138,8 +134,6 @@ ...mapMutations(['setUserInfo', 'switchCollapseMenu', 'clearUserInfo']), // 淇敼瀵嗙爜 changePwd() { - this.$set(this.userInfo, 'needChangePwd', this.$store.state.userInfo.needChangePwd) - this.editPsd = true this.visible.changePwd = true this.$nextTick(() => { this.$refs.changePwdDataForm.resetFields() @@ -192,6 +186,7 @@ }) .then(() => { this.$tip.apiSuccess('淇敼鎴愬姛') + this.$store.commit('setUserInfo', {needChangePwd: 1}) this.visible.changePwd = false }) .catch(e => { diff --git a/admin/src/components/operation/OperCarUseBookParamWindow.vue b/admin/src/components/operation/OperCarUseBookParamWindow.vue index 980be80..eb60a54 100644 --- a/admin/src/components/operation/OperCarUseBookParamWindow.vue +++ b/admin/src/components/operation/OperCarUseBookParamWindow.vue @@ -93,12 +93,12 @@ <h1>娉ㄦ剰浜嬮」锛�</h1> <div>1銆佸叕鍙歌溅杈嗗鍑洪渶鍔炵悊鐢ㄨ溅鐢宠琛紝缁忔壒鍑嗗悗鏂瑰彲澶栧嚭锛堝�熷嚭锛夈��</div> <div>2銆佸競澶栫敤杞﹂渶棰嗗瀹℃牳銆�</div> - <div> + <!-- <div> 3銆佸�熷嚭杞﹁締蹇呴』閬靛畧浜ら�氳鍒欙紝瀹夊叏琛岄┒銆傚浜庤溅杈嗗彂鐢熶氦閫氭剰澶栵紝瀵瑰綋浜嬩汉鍙婄涓夋柟閫犳垚浜鸿韩浼ゅ鍙婃崯澶憋紝鍏徃鍙互鍗忓姪澶勭悊淇濋櫓鍏徃璧斿伩鐩稿叧浜嬪疁锛屼絾涓嶆壙鎷呬换浣曡矗浠诲拰璐圭敤銆� </div> <div> 4銆佸叕鍙稿�熺粰鐢宠浜虹敤杞︼紝鐢宠鍊熻溅浜轰负绗竴璐d换浜猴紝涓嶅厑璁歌浆鍊熺粰鍏朵粬浜轰娇鐢紝鑻ヨ鍊熺粰浠栦汉浣跨敤銆傝矗浠讳汉瑕佹壙鎷呭叏閮ㄨ矗浠汇�� - </div> + </div> --> </div> </div> diff --git a/h5_meeting/App.vue b/h5_meeting/App.vue index 1fa091d..7bc8ecf 100644 --- a/h5_meeting/App.vue +++ b/h5_meeting/App.vue @@ -1,7 +1,9 @@ <script> export default { onLaunch: function() { - console.log('App Launch') + console.log('App Launch') + plus.navigator.hideSystemNavigation(); + plus.navigator.setFullscreen(true); }, onShow: function() { console.log('App Show') diff --git a/h5_meeting/pages/index/config.vue b/h5_meeting/pages/index/config.vue index 4765cd6..c0d65fc 100644 --- a/h5_meeting/pages/index/config.vue +++ b/h5_meeting/pages/index/config.vue @@ -16,6 +16,12 @@ </view> </view> <view class="item"> + <view class="title">鏄惁涓哄姙鍏綉</view> + <view class="line"> + <switch :checked="param.officeFlag == '1'" style="transform:scale(0.7)" @change="changeSwi" color="#51b2ce"></switch> + </view> + </view> + <view class="item"> <view class="title">鎺ュ彛璋冪敤闂撮殧(绉�)</view> <view class="line"> <input type="text" placeholder="60" v-model="param.time" /> @@ -34,18 +40,23 @@ return { param: { baseUrl, - time: 60 + time: 60, + officeFlag: '0' } }; }, onLoad(){ const param = uni.getStorageSync('param') || { baseUrl: baseUrl, - time: 60 + time: 60, + officeFlag: '0' } this.param = { ...param } }, methods: { + changeSwi(e) { + this.$set(this.param, 'officeFlag', e.detail.value ? '1' : '0') + }, handleSave() { const param = this.param uni.setStorageSync('param', param) diff --git a/h5_meeting/pages/index/index.vue b/h5_meeting/pages/index/index.vue index 26e91b2..04de318 100644 --- a/h5_meeting/pages/index/index.vue +++ b/h5_meeting/pages/index/index.vue @@ -33,7 +33,7 @@ <text>棰勭害浜猴細{{meetingInfo.bookingUser }}</text> </view> </view> - <view v-if="showQrbg" class="qrcode_wrap"> + <view v-show="showQrbg" class="qrcode_wrap"> <canvas id="qrcode" canvas-id="qrcode" class="qrcode"></canvas> </view> </view> @@ -62,13 +62,13 @@ v-if="info.fileType == 0 && (info.meetingListResponseList == null || info.meetingListResponseList.length == 0)" class="swiper" circular autoplay indicator-dots> <swiper-item v-for="item in info.multifileList"> - <image class="swiper_item" :src="item.fileurlFull" mode="aspectFill"></image> + <image class="swiper_item" :src="!param.officeFlag || param.officeFlag == '0' ? item.localFileurlFull : item.fileurlFull" mode="aspectFill"></image> </swiper-item> </swiper> <!-- --> <template v-if="info.fileType == 1 && info.multifileList && info.multifileList.length > 0 && (info.meetingListResponseList == null || info.meetingListResponseList.length == 0)"> - <video :src="info.multifileList[0].fileurlFull" class="app_video" :autoplay="true" loop :controls="false"></video> + <video :src="!param.officeFlag || param.officeFlag == '0' ? info.multifileList[0].localFileurlFull : info.multifileList[0].fileurlFull" class="app_video" :autoplay="true" loop :controls="false"></video> </template> </view> </template> @@ -87,7 +87,8 @@ time: '', date: '', showQrbg: false, - timer: null, + timer: null, + timer2: null, touchNum: 0, param: {}, info: {}, @@ -98,27 +99,33 @@ 4: '鍗冲皢寮�濮�', 5: '宸叉挙閿�', }, - meetingInfo: {}, + meetingInfo: {}, timer: null } }, - onShow() { - this.initDatetime() - if (!this.param.code) { + onShow() { + const param = uni.getStorageSync('param') + if (!param.code) { return uni.navigateTo({ url: '/pages/index/config' }) - } - }, - onReady() {}, - onHide(){ - if(this.timer){ - clearInterval(this.timer) } + this.initDatetime() + + }, + onReady() { + + }, + onHide() { + if (this.timer) { + clearInterval(this.timer) + } + if (this.timer2) { + clearInterval(this.timer2) + } }, methods: { getData() { - this.showQrbg = false meetScreenData({ roomId: this.param.code }).then(res => { @@ -131,7 +138,7 @@ }) } else { this.showQrbg = false - this.meetingInfo = {} + this.meetingInfo = {} this.$forceUpdate() } }) @@ -178,13 +185,11 @@ this.timer = setInterval(() => { this.time = dayjs().format('HH:mm') this.date = dayjs().format('YYYY-MM-DD') + ' ' + weeks[new Date().getDay()] - }, 1000) + }, 1000) this.param = uni.getStorageSync('param') || {} - if(this.timer){ - clearInterval(this.timer) - } + this.getData() - this.timer = setInterval(() => { + this.timer2 = setInterval(() => { this.getData() }, this.param.time ? this.param.time * 1000 : 60 * 1000) } @@ -225,10 +230,10 @@ .main_app { width: 100%; height: 100vh; - position: fixed; - top: 0; - left: 0; - right: 0; + position: fixed; + top: 0; + left: 0; + right: 0; bottom: 0; font-size: 28rpx; display: flex; @@ -237,6 +242,7 @@ padding-bottom: 42rpx; color: #fff; overflow: hidden; + .meeting_wrap { margin-left: 42rpx; margin-top: 85rpx; diff --git a/screen/src/api/index.js b/screen/src/api/index.js index e69de29..2d94684 100644 --- a/screen/src/api/index.js +++ b/screen/src/api/index.js @@ -0,0 +1,75 @@ +import instance, { request } from '@/utils/request.js' + +// 搴撳埗绠$悊鐪嬫澘 鍒拌揣鎯呭喌 +export const getStorearriveGoodsList = (data) => { + return request('visitsAdmin/cloudService/board/api/wholeProvince/arriveGoodsList', data) +} +// 搴撳埗绠$悊鐪嬫澘 涓績鏁版嵁 +export const getStorecenterData = (data) => { + return request('visitsAdmin/cloudService/board/api/wholeProvince/centerData', data) +} +// 搴撳埗绠$悊鐪嬫澘 搴撳瓨鍒╃敤鐜� +export const getStoreenergyDataList = (data) => { + return request('visitsAdmin/cloudService/board/api/wholeProvince/energyDataList', data) +} +// 搴撳埗绠$悊鐪嬫澘 杩涢攢瀛樿繍钀� +export const getStoreOperationList = (data) => { + return request('visitsAdmin/cloudService/board/api/wholeProvince/salesOperationList', data) +} +// 搴撳埗绠$悊鐪嬫澘 涓婃湀娌硅�楁帓琛� +export const getStorelastMonthOil = (data) => { + return request('visitsAdmin/cloudService/board/api/wholeProvince/lastMonthOil', data) +} +// 搴撳埗绠$悊鐪嬫澘 褰撳墠杩愯緭浠诲姟 +export const getStoreTaskList = (data) => { + return request('visitsAdmin/cloudService/board/api/wholeProvince/transportTaskList', data) +} + +// 娑堥槻绠℃帶澶у睆 鎶ヨ淇℃伅 +export const getStoreTaskList = (data) => { + return request('visitsAdmin/cloudService/board/api/wholeProvince/transportTaskList', data) +} +// 娑堥槻绠℃帶澶у睆 鍛婅澶勭悊鍒嗘瀽 +export const getStoreTaskList = (data) => { + return request('visitsAdmin/cloudService/board/api/wholeProvince/transportTaskList', data) +} +// 娑堥槻绠℃帶澶у睆 涓績鏁版嵁 +export const getStoreTaskList = (data) => { + return request('visitsAdmin/cloudService/board/api/wholeProvince/transportTaskList', data) +} +// 娑堥槻绠℃帶澶у睆 浠婃棩鍚勭郴缁熻澶囩姸鎬佸強鍛婅鏁伴噺 +export const getStoreTaskList = (data) => { + return request('visitsAdmin/cloudService/board/api/wholeProvince/transportTaskList', data) +} +// 娑堥槻绠℃帶澶у睆 鏈勾娑堥槻璁惧-璁炬柦缁存姢鎯呭喌 +export const getStoreTaskList = (data) => { + return request('visitsAdmin/cloudService/board/api/wholeProvince/transportTaskList', data) +} + + + + +// 瀹夐槻绠℃帶澶у睆 涓績鏁版嵁 +export const getEnergyCenterData = (data) => { + return instance({ + url: 'visitsAdmin/cloudService/board/api/energy/centerData', + method: 'get', + data + }) +} +// 瀹夐槻绠℃帶澶у睆 鍥尯瀹夐槻璁惧 +export const getSecurityDeviceData = (data) => { + return instance({ + url: 'visitsAdmin/cloudService/board/api/energy/securityDeviceData', + method: 'get', + data + }) +} +// 瀹夐槻绠℃帶澶у睆 璁垮婊炵暀鎯呭喌 +export const getVisitRetentionData = (data) => { + return instance({ + url: 'visitsAdmin/cloudService/board/api/energy/visitRetentionData', + method: 'get', + data + }) +} \ No newline at end of file diff --git a/screen/src/assets/base.css b/screen/src/assets/base.css index 8730f9f..f0b43dd 100644 --- a/screen/src/assets/base.css +++ b/screen/src/assets/base.css @@ -12,3 +12,18 @@ div,ul,img,video{ box-sizing: border-box; } +input{ + width: 100%; + display: flex; + align-items: center; + background:none; + border: none; + outline:none; + color: #fff; + &:hover{ + border: none; + } + &:focus{ + outline: none; + } +} \ No newline at end of file diff --git a/screen/src/router/index.js b/screen/src/router/index.js index 7740453..4449704 100644 --- a/screen/src/router/index.js +++ b/screen/src/router/index.js @@ -1,12 +1,11 @@ import { createRouter, createWebHashHistory } from 'vue-router' -import HomeView from '../views/PlatformCall.vue' const router = createRouter({ history: createWebHashHistory(), routes: [ { path: '/', - component: () => import('../views/LogisticsEfficiency.vue') + component: () => import('../views/FireFighting.vue') }, { path: '/PlatformCall', // 鏈堝彴鍙彿澶у睆 diff --git a/screen/src/utils/request.js b/screen/src/utils/request.js index a3c3065..490faed 100644 --- a/screen/src/utils/request.js +++ b/screen/src/utils/request.js @@ -18,6 +18,13 @@ export default instance +export const request = (url, data) => { + return instance({ + url: url, + method: 'GET', + params: { ...data } + }) +} export const getLargeScreenData = (data) => { return instance({ diff --git a/screen/src/views/LogisticsCenter.vue b/screen/src/views/LogisticsCenter.vue index a1c768e..101762b 100644 --- a/screen/src/views/LogisticsCenter.vue +++ b/screen/src/views/LogisticsCenter.vue @@ -29,8 +29,8 @@ </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> @@ -39,9 +39,10 @@ <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> @@ -77,7 +78,8 @@ </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"> @@ -87,11 +89,11 @@ <span class="item">浣嶇疆</span> <span class="item">浠诲姟涓嬭揪鏃堕棿</span> </div> - <div class="line" v-for="i in 5"> - <span class="item">鐨朅23bbb</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> @@ -108,30 +110,39 @@ <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> @@ -161,8 +172,8 @@ </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> @@ -171,9 +182,9 @@ <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> @@ -182,7 +193,7 @@ <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> @@ -196,11 +207,11 @@ <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"> @@ -231,6 +242,14 @@ 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')) @@ -243,44 +262,6 @@ }, 1000) -const colors = ['#0193FE', '#FFB642'] -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 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 initEchart2 = () => { const myChart = echarts.init(document.getElementById('echart1')) const option = { @@ -340,352 +321,6 @@ myChart.resize() }) } -const initEchart4 = () => { - // 鍩轰簬鍑嗗濂界殑dom锛屽垵濮嬪寲echarts瀹炰緥 - const myChart = echarts.init(document.getElementById('echart4')) - // 缁樺埗鍥捐〃 - myChart.setOption({ - tooltip: { - trigger: 'axis', - 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> - ` - } - }, - xAxis: { - type: 'category', - boundaryGap: false, - data: [1, 2, 3, 4, 5, 5] - }, - yAxis: { - type: 'value', - name: '涓囨敮', - nameTextStyle: { - padding: [0, 0, 0, -16] // 鍥涗釜鏁板瓧鍒嗗埆涓轰笂鍙充笅宸︿笌鍘熶綅缃窛绂� - }, - splitLine: { - show: true, - lineStyle: { - //杩欓噷杈撳叆绾挎潯鐨勬牱寮� - color: 'rgba(255,255,255,0.14)', - type: 'dashed', - }, - 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%', - right: '2%', - bottom: '2%', - containLabel: true - }, - series: [ - { - name: '鎬诲叆搴撻噺', - data: [10, 2, 30, 4, 4, 30].map(i => { - return { - name: i, - value: i, - } - }), - type: 'line', - areaStyle: { - normal: { - color: { - x: 0, - y: 0, - x2: 0, - y2: 1, - colorStops: [ - { - offset: 0, - color: "#4191f6" // 0% 澶勭殑棰滆壊 - }, - { - offset: .4, - color: "#203d79" // 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: '#4191f6' // 0% 澶勭殑棰滆壊 - }, { - offset: 1, color: '#4191f6' // 100% 澶勭殑棰滆壊 - }], - }, - width: 1.5, // 绾挎潯绮楃粏 - }, - symbol: 'circle', - symbolSize: 6, - itemStyle: { - color: "#4190f4", - borderColor: "rgba(255,255,255,.3)", - borderWidth: 6, - }, - smooth: true - }, - { - name: '鎬诲嚭搴撻噺', - data: [30, 2, 10, 4, 4, 20].map(i => { - return { - name: i, - value: i, - } - }), - type: 'line', - areaStyle: { - normal: { - color: { - x: 0, - y: 0, - x2: 0, - y2: 1, - colorStops: [{ - offset: 0, - color: "rgba(192, 156, 53,.7)" // 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: '#F3BD00' // 0% 澶勭殑棰滆壊 - }, { - offset: 1, color: '#F3BD00' // 100% 澶勭殑棰滆壊 - }], - }, - width: 2, // 绾挎潯绮楃粏 - }, - symbol: 'circle', - symbolSize: 6, - itemStyle: { - color: "#F3BD00", - borderColor: "rgba(255,255,255,.3)", - borderWidth: 6, - }, - smooth: true - } - ] - }) - - window.addEventListener('resize', function () {//鎵ц - myChart.resize() - }) -} -const initEchart5 = () => { - // 鍩轰簬鍑嗗濂界殑dom锛屽垵濮嬪寲echarts瀹炰緥 - const myChart = echarts.init(document.getElementById('echart5')) - // 缁樺埗鍥捐〃 - myChart.setOption({ - legend: { - itemGap: 12, - // icon: 'circle', - right: '12px', - top: '0', - data: ['鎬诲簱瀛�', '褰撳墠搴撳瓨', '搴撳瓨鍒╃敤鐜�'], - itemWidth: 20, - itemHeight: 10, - textStyle: { - color: '#fff', - borderColor: '#fff' - }, - }, - grid: { - left: '3%', - right: '4%', - bottom: '3%', - top: '16%', - 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: ['鍚堣偉', '婊佸窞', '鑺滄箹', '铓屽煚', '闃滈槼'], - }], - 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: [ - { - name: '鎬诲簱瀛�', - type: 'bar', - barWidth: 8, - barGap: '60%', - label: { - show: false, - position: 'top', - color: '#fff', - }, - itemStyle: { - 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: [900, 438, 485, 631, 689] - }, - { - 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: [438, 485, 631, 689, 900] - }, - { - name: '搴撳瓨鍒╃敤鐜�', - type: 'line', - smooth: true, - showAllSymbol: true, - symbol: 'none', - lineStyle: { - color: "#3d87e5" - }, - label: { - show: false, - position: 'top', - color: '#fff', - }, - data: [485, 631, 389, 224, 287] - } - ] - }) - - window.addEventListener('resize', function () {//鎵ц - myChart.resize() - }) -} const mapEchart = ref() const initMap = () => { @@ -693,12 +328,12 @@ echarts.registerMap('china', chinaJSON) var points = [ // 鐐瑰潗鏍� - { value: [110.81, 33.40], itemStyle: { color: '#c1bb1f' }, name: '11', total: 0, bj: 0, yj: 0, yx: 0, tj: 0, dw: 0 }, + { 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: '22', total: 5, bj: 0, yj: 0, yx: 5, tj: 0, dw: 0 }, - { value: [106.44, 29.50], itemStyle: { color: '#3eef1d' }, name: '33', total: 10, bj: 0, yj: 0, yx: 10, tj: 0, dw: 0 }, - { value: [112.85, 38.95], itemStyle: { color: '#3eef1d' }, name: '44', total: 8, bj: 0, yj: 0, yx: 8, tj: 0, dw: 0 }, - { value: [82.78, 43.27], itemStyle: { color: '#3eef1d' }, name: '55', total: 18, bj: 0, yj: 0, yx: 18, 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' } }, @@ -723,7 +358,7 @@ label: { show: false }, - zoom: 1.5, + zoom: 1.6, silent: true, // 涓嶅搷搴旈紶鏍囨椂闂� show: true, roam: false, // 鍦板浘缂╂斁鍜屽钩绉� @@ -767,7 +402,7 @@ { type: 'map', map: 'china', - zoom: 1.5, + zoom: 1.6, tooltip: { show: false }, @@ -818,8 +453,8 @@ showEffectOn: 'render', // zlevel: 2, // zlevel鐢ㄤ簬 Canvas 鍒嗗眰 鐩稿悓鐨勭粯鍒跺湪鍚屼竴涓猚anvas涓� rippleEffect: { - number: 5, // 娉㈢汗鏁伴噺 - period: 4, // 鍔ㄧ敾鍛ㄦ湡 鏁板�艰秺澶э紝娉㈠姩瓒婃參 + number: 3, // 娉㈢汗鏁伴噺 + period: 10, // 鍔ㄧ敾鍛ㄦ湡 鏁板�艰秺澶э紝娉㈠姩瓒婃參 scale: 3.5, // 鍔ㄧ敾涓尝绾圭殑鏈�澶х缉鏀炬瘮渚� brushType: 'stroke' // 娉㈢汗鐨勭粯鍒舵柟寮� stroke fill }, @@ -841,41 +476,22 @@ extraCssText: 'box-shadow: 0 0 0 rgba(0, 0, 0, 0);', // 鍘婚櫎box-shadow闃村奖 formatter: (params) => { return `<div class="map-tip-box"> - <div class="company-name">${params.name}</div> - <div class="monitor-total">鐩戞祴鎬绘暟锛�${params.data.total}鍙�</div> + <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="num">${params.data.bj}鍙�</span> - <span class="text">鎶ヨ</span> + <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="num">${params.data.yj}鍙�</span> - <span class="text">棰勮</span> - </span> - </div> - <div class="item-state-con"> - <span class="dot yx"></span> - <span class="item-state-num"> - <span class="num">${params.data.yx}鍙�</span> - <span class="text">杩愯</span> - </span> - </div> - <div class="item-state-con"> - <span class="dot tj"></span> - <span class="item-state-num"> - <span class="num">${params.data.tj}鍙�</span> - <span class="text">鍋滄満</span> - </span> - </div> - <div class="item-state-con"> - <span class="dot dw"></span> - <span class="item-state-num"> - <span class="num">${params.data.dw}鍙�</span> - <span class="text">鏂綉</span> + <span class="text">鏈勾鍑哄簱閲�</span> + <span class="num">${params.data.yx}涓囨敮</span> </span> </div> </div>` @@ -884,26 +500,26 @@ 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 - } + // { + // 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) @@ -911,7 +527,7 @@ myChart.resize() }) } -const initEnergy = () => { +const initEnergy = (list) => { var myChart = echarts.init(document.querySelector('.energyRef')) // 缁樺埗鍥捐〃 myChart.setOption({ @@ -960,7 +576,7 @@ axisLine: { show: false }, - data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + data: list.map(i => i.dateStr) }, series: [ { @@ -974,7 +590,7 @@ emphasis: { focus: 'series' }, - data: [320, 302, 301, 334, 390, 330, 320], + data: list.map(i => i.inTransitNum), itemStyle: { normal: { color: { @@ -1023,7 +639,7 @@ emphasis: { focus: 'series' }, - data: [120, 132, 101, 134, 90, 230, 210] + data: list.map(i => i.arriveNum) } ] }) @@ -1031,31 +647,548 @@ 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(() => { + // }) + // 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: dataList4.value.map(i => i.dateStr) + }, + yAxis: { + type: 'value', + name: '涓囨敮', + nameTextStyle: { + padding: [0, 0, 0, -16] // 鍥涗釜鏁板瓧鍒嗗埆涓轰笂鍙充笅宸︿笌鍘熶綅缃窛绂� + }, + splitLine: { + show: true, + lineStyle: { + //杩欓噷杈撳叆绾挎潯鐨勬牱寮� + color: 'rgba(255,255,255,0.14)', + type: 'dashed', + }, + 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%', + right: '2%', + bottom: '2%', + containLabel: true + }, + series: [ + { + name: '鎬诲叆搴撻噺', + data: dataList4.value.map(item => { + return { + name: item.dateStr, + value: item.totalInNum, + } + }), + type: 'line', + areaStyle: { + normal: { + color: { + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [ + { + offset: 0, + color: "#4191f6" // 0% 澶勭殑棰滆壊 + }, + { + offset: .4, + color: "#203d79" // 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: '#4191f6' // 0% 澶勭殑棰滆壊 + }, { + offset: 1, color: '#4191f6' // 100% 澶勭殑棰滆壊 + }], + }, + width: 1.5, // 绾挎潯绮楃粏 + }, + symbol: 'circle', + symbolSize: 4, + itemStyle: { + color: "#4190f4", + borderColor: "rgba(255,255,255,.3)", + borderWidth: 4, + }, + smooth: true + }, + { + name: '鎬诲嚭搴撻噺', + data: dataList4.value.map(item => { + return { + name: item.dateStr, + value: item.totalOutNum, + } + }), + type: 'line', + areaStyle: { + normal: { + color: { + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, + color: "rgba(192, 156, 53,.7)" // 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: '#F3BD00' // 0% 澶勭殑棰滆壊 + }, { + offset: 1, color: '#F3BD00' // 100% 澶勭殑棰滆壊 + }], + }, + width: 2, // 绾挎潯绮楃粏 + }, + symbol: 'circle', + symbolSize: 4, + itemStyle: { + 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 + }, + ] + }) + + window.addEventListener('resize', function () {//鎵ц + 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({ + legend: { + itemGap: 12, + // icon: 'circle', + right: '12px', + top: '0', + data: ['鎬诲簱瀛�', '褰撳墠搴撳瓨', '搴撳瓨鍒╃敤鐜�'], + itemWidth: 20, + itemHeight: 10, + textStyle: { + color: '#fff', + borderColor: '#fff' + }, + }, + grid: { + left: '3%', + right: '0%', + bottom: '3%', + top: '24%', + 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', + }, + 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: [ + { + name: '鎬诲簱瀛�', + type: 'bar', + barWidth: 8, + barGap: '60%', + label: { + show: false, + position: 'top', + color: '#fff', + }, + itemStyle: { + 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 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() + initData() + initMap() - getStockOut() - initEchart2() - initEchart3() - initEchart4() - initEchart5() + // initEchart2() + // initEchart3() + // initEchart4() + // initEchart5() }) </script> -<style> -.map-tip-box{ - background-color: #1f3b57; - color: #fff; +<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; } + .main_content { display: flex; padding: 20px 25px 0; @@ -1066,7 +1199,6 @@ .left_box_one { margin-top: 20px; padding: 0px 10px 30px 20px; - border: 1px solid; .content_wrap { display: flex; @@ -1176,7 +1308,6 @@ .left_box_three { width: 440px; padding: 0 15px; - border: 1px solid; .second_title { margin-bottom: 10px; @@ -1195,11 +1326,12 @@ } .item { - flex: 1; + flex: 4; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } + } .header { @@ -1213,7 +1345,7 @@ .center_box { flex: 1; padding: 0 20px; - margin: 0 40px; + margin: 0 20px; display: flex; flex-direction: column; @@ -1221,7 +1353,7 @@ 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; @@ -1229,6 +1361,12 @@ 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%, @@ -1260,6 +1398,23 @@ .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; } } } @@ -1346,7 +1501,6 @@ .echart_map { width: 100%; height: 100%; - border: 1px solid; /* transform: scale(.2); */ } } @@ -1635,11 +1789,17 @@ 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; } } @@ -1649,6 +1809,10 @@ font-size: 14px; color: #d2e0ff; + .tab { + cursor: pointer; + } + .separate { width: 1px; height: 14px; diff --git a/screen/src/views/SecurityControl.vue b/screen/src/views/SecurityControl.vue index c6a2c8f..e2bcac9 100644 --- a/screen/src/views/SecurityControl.vue +++ b/screen/src/views/SecurityControl.vue @@ -439,6 +439,7 @@ import Percent from '@/components/percent.vue' import dayjs from 'dayjs' import * as echarts from 'echarts' +import { getEnergyCenterData, getSecurityDeviceData, getVisitRetentionData } from '@/api' const colors = ['#FEAF01', '#01ABFE', '#51F9E4'] @@ -722,8 +723,11 @@ myChart.resize() }) } - +const ininDate = () => { + getEnergyCenterData() +} onMounted(() => { + ininDate() initEchart3() initEchart1() initEchart2() diff --git a/screen/vite.config.js b/screen/vite.config.js index 0b71753..1afa5c0 100644 --- a/screen/vite.config.js +++ b/screen/vite.config.js @@ -26,7 +26,8 @@ proxy: { "/gateway_interface": { // target: "http://192.168.0.103:10010", - target: "http://10.50.250.253:8088/gateway_interface", + // target: "http://10.50.250.253:8088/gateway_interface", + target: "http://192.168.0.173/gateway_interface", changeOrigin: true, rewrite: (path) => path.replace(/^\/gateway_interface/, ""), }, -- Gitblit v1.9.3