| | |
| | | <view class="left">
|
| | | <view class="img_wrap img1" @click="jump('/pages/driver/notice')">
|
| | | <image src="@/static/driver/wuliu_ic_ruyuanyuyue@2x.png" class="img"></image>
|
| | | <view class="h1">å
¥åé¡»ç¥</view>
|
| | | <view class="h1">å
¥åé¢çº¦</view>
|
| | | <view class="h2">RESERVATION</view>
|
| | | </view>
|
| | | <view class="img_wrap img2" @click="jump('/pages/driver/reservedGuide?str=bookingTips')">
|
| | |
| | | this.getHeadList() |
| | | }) |
| | | } |
| | | if (item.type == 7) { |
| | | window.open('https://atwl.ahzyssl.com/dps/web/wxAuth/loginV2?oaId=atwl&redirectId=index') |
| | | return |
| | | } |
| | | if (objType === 2) { |
| | | uni.navigateTo({ |
| | | url: `/pages/staff/vehicle/sendACarDetail?id=${objId}&info=${info}` |
| | |
| | | uni.navigateTo({ |
| | | url: `/pages/staff/task/vDangetAppr?id=${objId}&objType=${objType}&info=${info}` |
| | | }) |
| | | }else if (objType === 7) { |
| | | window.open('https://atwl.ahzyssl.com/dps/web/wxAuth/loginV2?oaId=atwl&redirectId=index') |
| | | } else if (objType === 6 || objType === 5) { |
| | | }else if (objType === 6 || objType === 5) { |
| | | uni.navigateTo({ |
| | | url: `/pages/staff/task/driver?id=${objId}&objType=${objType}&info=${info}` |
| | | }) |
| | |
| | | </head> |
| | | <body> |
| | | <div id="app"></div> |
| | | <script src="./public/jquery-1.12.4.min.js"></script> |
| | | <script src="./public/jsencrypt.min.js"></script> |
| | | <script src="./public/web-control_1.2.7.min.js"></script> |
| | | <script src="./jquery-1.12.4.min.js"></script> |
| | | <script src="./jsencrypt.min.js"></script> |
| | | <script src="./web-control_1.2.7.min.js"></script> |
| | | <script type="module" src="/src/main.js"></script> |
| | | |
| | | <script src="https://webapi.amap.com/maps?v=2.0&key=96b8d96e645290f1de14f5229ee030e4"></script> |
| | |
| | | "uqrcodejs": "^4.0.7", |
| | | "v-scale-screen": "^2.0.0", |
| | | "vue": "^3.4.21", |
| | | "vue-router": "^4.3.0", |
| | | "vue3-loading-spinner": "^1.0.0" |
| | | "vue-loading-overlay": "^6.0.6", |
| | | "vue-router": "^4.3.0" |
| | | }, |
| | | "devDependencies": { |
| | | "@vitejs/plugin-vue": "^5.0.4", |
| | |
| | | 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) |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="loading"> |
| | | <img style="width: 120px;" src="@/assets/ani/loading.gif" alt=""> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup> |
| | | // const props = defineProps({ |
| | | // loading: Boolean, |
| | | // }) |
| | | // const loadingIns = ref({ }) |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .loading { |
| | | width: 100%; |
| | | height: 100%; |
| | | position: absolute; |
| | | overflow: hidden; |
| | | top: 0; |
| | | left: 0; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | /* background-color: rgba(10, 27, 39, .2); */ |
| | | z-index: 999999; |
| | | } |
| | | </style> |
| | |
| | | <div class="name">æ¬å¹´ç´¯è®¡å¾ªç¯çç®±</div> |
| | | <div><span class="num" style="color: #68cfb2;" v-if="data1.smokeBoxTotal || data1.smokeBoxTotal == 0">{{ |
| | | data1.smokeBoxTotal.toLocaleString() |
| | | }}</span><span>åª</span></div> |
| | | }}</span><span>个</span></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="static" v-if="data1.electricityQuantity"> |
| | | <span class="lab">忝</span> |
| | | <template v-if="data1.electricityQuantity.sameNum"> |
| | | <img v-if="data1.electricityQuantity.totalNum > data1.electricityQuantity.sameNum" class="icon" |
| | | src="@/assets/images/ic_up.webp" alt="" /> |
| | | <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" /> |
| | | </template> |
| | | <img v-if="data1.electricityQuantity.totalNum > data1.electricityQuantity.sameNum" class="icon" |
| | | src="@/assets/images/ic_up.webp" alt="" /> |
| | | <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" /> |
| | | <span class="val" |
| | | v-if="data1.electricityQuantity.totalNum && data1.electricityQuantity.totalNum != 0">{{ |
| | | Math.abs(((data1.electricityQuantity.totalNum - |
| | |
| | | }}%</span> |
| | | <span class="val" v-else style="margin-left: 4px;"> -</span> |
| | | <span class="lab">ç¯æ¯</span> |
| | | <template v-if="data1.electricityQuantity.ringNum"> |
| | | <img v-if="data1.electricityQuantity.totalNum > data1.electricityQuantity.ringNum" class="icon" |
| | | src="@/assets/images/ic_up.webp" alt="" /> |
| | | <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" /> |
| | | </template> |
| | | |
| | | <img v-if="data1.electricityQuantity.totalNum > data1.electricityQuantity.ringNum" class="icon" |
| | | src="@/assets/images/ic_up.webp" alt="" /> |
| | | <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" /> |
| | | <span class="val" |
| | | v-if="data1.electricityQuantity.totalNum && data1.electricityQuantity.totalNum != 0">{{ |
| | | Math.abs(((data1.electricityQuantity.totalNum - |
| | |
| | | </template> |
| | | <div class="bottom_wrap" v-if="data1.yesterdayElectricity"> |
| | | <div class="bottom bottom1" @click="changeacDay(3)"> |
| | | <div :class="{active: activeDays == 3}" class="num fs_linear">{{ data1.yesterdayElectricity.total || 0 }}</div> |
| | | <div :class="{ active: activeDays == 3 }" class="num fs_linear">{{ data1.yesterdayElectricity.total || 0 |
| | | }}</div> |
| | | <div class="name">æ¨æ¥ç¨çµ</div> |
| | | <div class="unit">kw·h</div> |
| | | <img v-if="activeDays == 3" src="@/assets/images/ic_dianliang@2x.png" class="bg" alt="" /> |
| | | <img v-else src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" /> |
| | | </div> |
| | | <div class="bottom bottom2" @click="changeacDay(1)"> |
| | | <div :class="{active: activeDays == 1}" class="num">{{ data1.todayElectricity.total || 0 }}</div> |
| | | <div :class="{ active: activeDays == 1 }" class="num">{{ data1.todayElectricity.total || 0 }}</div> |
| | | <div class="name">仿¥ç¨çµ</div> |
| | | <div class="unit">kw·h</div> |
| | | <img v-if="activeDays == 1" src="@/assets/images/ic_dianliang@2x.png" class="bg" alt="" /> |
| | | <img v-else src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" /> |
| | | </div> |
| | | <div class="bottom bottom3" @click="changeacDay(2)"> |
| | | <div :class="{active: activeDays == 2}" class="num fs_linear">{{ data1.monthElectricity.total || 0 }}</div> |
| | | <div :class="{ active: activeDays == 2 }" class="num fs_linear">{{ data1.monthElectricity.total || 0 }} |
| | | </div> |
| | | <div class="name">æ¬æç¨çµ</div> |
| | | <div class="unit">kw·h</div> |
| | | <img v-if="activeDays == 2" src="@/assets/images/ic_dianliang@2x.png" class="bg" alt="" /> |
| | |
| | | xAxis: { |
| | | type: 'category', |
| | | boundaryGap: false, |
| | | axisLabel: { |
| | | color: '#D2E0FF' |
| | | }, |
| | | data: data5.value.map(i => dayjs(i.timeData).format('M')) |
| | | }, |
| | | tooltip: { |
| | |
| | | yAxis: { |
| | | type: 'value', |
| | | name: 'åä½ï¼L', |
| | | axisLabel: { |
| | | color: '#D2E0FF' |
| | | }, |
| | | nameTextStyle: { |
| | | padding: [0, 0, 0, -16] // å个æ°ååå«ä¸ºä¸å³ä¸å·¦ä¸åä½ç½®è·ç¦» |
| | | color: '#D2E0FF', |
| | | padding: [0, 0, 0, -18] // å个æ°ååå«ä¸ºä¸å³ä¸å·¦ä¸åä½ç½®è·ç¦» |
| | | }, |
| | | splitLine: { |
| | | show: true, |
| | |
| | | xAxis: { |
| | | type: 'category', |
| | | boundaryGap: false, |
| | | axisLabel: { |
| | | color: '#D2E0FF' |
| | | }, |
| | | data: data4.value.map(i => i.timeData) |
| | | }, |
| | | yAxis: { |
| | | type: 'value', |
| | | name: 'åä½ï¼kw·h', |
| | | nameTextStyle: { |
| | | padding: [0, 0, 0, -16] // å个æ°ååå«ä¸ºä¸å³ä¸å·¦ä¸åä½ç½®è·ç¦» |
| | | padding: [0, 0, 0, -16], // å个æ°ååå«ä¸ºä¸å³ä¸å·¦ä¸åä½ç½®è·ç¦» |
| | | color: '#D2E0FF' |
| | | }, |
| | | splitLine: { |
| | | show: true, |
| | |
| | | type: 'dashed', |
| | | }, |
| | | splitNumber: 4 |
| | | }, |
| | | axisLabel: { |
| | | color: '#D2E0FF' |
| | | } |
| | | }, |
| | | grid: { |
| | |
| | | getData6() |
| | | } |
| | | const getData6 = () => { |
| | | regionDataRanking({type: activeDays.value}).then(res => { |
| | | regionDataRanking({ type: activeDays.value }).then(res => { |
| | | const result = res.data |
| | | data6.value = result |
| | | }) |
| | |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | axisLabel: { |
| | | color: '#D2E0FF' |
| | | }, |
| | | data: data2.value.map(i => dayjs(i.timeData).format('M')) |
| | | }, |
| | | yAxis: { |
| | | type: 'value', |
| | | name: unit, |
| | | axisLabel: { |
| | | color: '#D2E0FF' |
| | | }, |
| | | nameTextStyle: { |
| | | color: '#D2E0FF', |
| | | padding: [0, 0, 4, -30] // å个æ°ååå«ä¸ºä¸å³ä¸å·¦ä¸åä½ç½®è·ç¦» |
| | | }, |
| | | splitLine: { |
| | |
| | | text-align: center; |
| | | padding-top: 70px; |
| | | cursor: pointer; |
| | | |
| | | .num { |
| | | font-size: 24px; |
| | | color: #D0FFFA; |
| | |
| | | font-size: 14px; |
| | | color: #D0FFFA; |
| | | } |
| | | |
| | | .active { |
| | | font-size: 36px; |
| | | color: #01D9FE; |
| | |
| | | <img src="@/assets/images/title@2x.png" class="bg" alt="" /> |
| | | </div> |
| | | <div class="left_box_one"> |
| | | <Loading v-if="loading1" /> |
| | | <div class="second_title"> |
| | | <div class="title"> |
| | | <img src="@/assets/images/LogisticsCenter/ic_title@2x.png" class="icon" alt="" /> |
| | |
| | | </div> |
| | | <div class="content_wrap"> |
| | | <div class="num_wrap"> |
| | | <div class="num_list" v-if="StockOutData.currentNum"> |
| | | <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="second_title"> |
| | | <div class="title"> |
| | | <img src="@/assets/images/LogisticsCenter/ic_title@2x.png" class="icon" alt="" /> |
| | | <div>å½åè¿è¾ä»»å¡</div> |
| | | <div>å½å订åä»»å¡</div> |
| | | </div> |
| | | <div class="search_wrap"> |
| | | <img src="@/assets/images/LogisticsCenter/ic_search@2x.png" alt=""> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <template v-if="isLoadingTask || transportTask.length == 0"> |
| | | <Loading v-if="isLoadingTask" /> |
| | | <div class="empty" v-else> |
| | | <img src="@/assets/images/default_nodata.png" alt=""> |
| | | </div> |
| | | </template> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="footer"> |
| | | <div class="wrap"> |
| | | <div class="content" :style='{ width: cneterData.level1}'> |
| | | <div class="content" :style='{ width: cneterData.level1 }'> |
| | | <div class="scale">0</div> |
| | | <!-- <div class="node"> |
| | | <div>8h</div> |
| | |
| | | <div class="icon icon2"></div> |
| | | </div> |
| | | </div> --> |
| | | <div :style="{width: cneterData.level3}" :class="{box23: cneterData.crrentOutNum >= cneterData.hoursAbility}" class="box" > |
| | | <div :style="{ width: cneterData.level3 }" |
| | | :class="{ box23: cneterData.crrentOutNum >= cneterData.hoursAbility }" class="box"> |
| | | <div v-if="cneterData.crrentOutNum < cneterData.hoursAbility" class="tag"> |
| | | <div class="icon"></div> |
| | | <span>仿¥åºåº</span> |
| | | </div> |
| | | </div> |
| | | <div :style="{width: cneterData.level2}" class="box box1"> |
| | | <div :style="{ width: cneterData.level2 }" class="box box1"> |
| | | <div v-if="cneterData.hoursAbility >= cneterData.currentPlanNum" class="tag tag1"> |
| | | <div class="icon"></div> |
| | | <span>彿¥è®¡å</span> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="side"> |
| | | <div v-if="cneterData.crrentOutNum >= cneterData.hoursAbility" :style="{width: cneterData.level33}" class="box box22" > |
| | | <div v-if="cneterData.crrentOutNum >= cneterData.hoursAbility" :style="{ width: cneterData.level33 }" |
| | | class="box box22"> |
| | | <div class="tag"> |
| | | <div class="icon"></div> |
| | | <span>仿¥åºåº</span> |
| | | </div> |
| | | </div> |
| | | <div v-if="cneterData.hoursAbility <= cneterData.currentPlanNum" :style="{width: cneterData.level22}" class="box box1 box11"> |
| | | <div v-if="cneterData.hoursAbility <= cneterData.currentPlanNum" |
| | | :style="{ width: cneterData.level22 }" class="box box1 box11"> |
| | | <div class="tag tag1"> |
| | | <div class="icon"></div> |
| | | <span>彿¥è®¡å</span> |
| | |
| | | <div class="list"> |
| | | <div class="head line"> |
| | | <div class="item">车çå·</div> |
| | | <div class="item contract">ååå·</div> |
| | | <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 contract">{{ item.contractNumber }}</div> |
| | | <div class="item">{{ item.repertotyName }}</div> |
| | | <div class="item">{{ item.contractNumber }}</div> |
| | | <div class="item addr">{{ item.repertotyName }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="side"> |
| | | å
¨çï¼ |
| | | <span>{{ data5.totalNum }}</span> |
| | | <span>{{ data5.currentNum }}</span> |
| | | <span class="unit">䏿¯ | </span> |
| | | <span v-if="data5.totalNum">{{ ((data5.currentNum / data5.totalNum) * 100).toFixed(1) }}%</span> |
| | | </div> |
| | |
| | | <img src="@/assets/images/LogisticsCenter/ic_title@2x.png" class="icon" alt="" /> |
| | | <div>åºåºè½åå©ç¨ç</div> |
| | | </div> |
| | | <div class="side">å
¨çï¼<span>100<span class="unit">䏿¯ |</span> 40.6%</span></div> |
| | | <div class="side"> |
| | | å
¨çï¼ |
| | | <span>{{ data6.currentNum }}</span> |
| | | <span class="unit">䏿¯ | </span> |
| | | <span v-if="data6.totalNum">{{ ((data6.currentNum / data6.totalNum) * 100).toFixed(1) }}%</span> |
| | | </div> |
| | | </div> |
| | | <div class="echart5_wrap"> |
| | | <div class="echart5" id="echart6"></div> |
| | |
| | | <img src="@/assets/images/LogisticsCenter/ic_title@2x.png" class="icon" alt="" /> |
| | | <div>è¿ç¨èµæºå©ç¨ç</div> |
| | | </div> |
| | | <div class="side">å
¨çï¼<span>100<span class="unit">䏿¯ |</span> 40.6%</span></div> |
| | | <div class="side"> |
| | | å
¨çï¼ |
| | | <span>{{ data7.currentNum }}</span> |
| | | <span class="unit">è¾ | </span> |
| | | <span v-if="data7.totalNum">{{ ((data7.currentNum / data7.totalNum) * 100).toFixed(1) }}%</span> |
| | | </div> |
| | | </div> |
| | | <div class="echart5_wrap"> |
| | | <div class="echart5" id="echart7"></div> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <Loading v-if="modalLoading" /> |
| | | </div> |
| | | <div class="modal_mask" v-if="showModal" @click="closeModal"></div> |
| | | </div> |
| | | <!-- <Loading v-if="isLoading" /> --> |
| | | </v-scale-screen> |
| | | </template> |
| | | |
| | |
| | | import chinaJSON from '@/assets/china.json' |
| | | import fahuoImg from '@/assets/images/LogisticsCenter/ic_fahuodi@2x.png' |
| | | import shouImg from '@/assets/images/LogisticsCenter/ic_huowu@2x.png' |
| | | // import { Loading } from 'vue3-loading-spinner'; |
| | | // import 'vue3-loading-spinner/dist/style.css'; |
| | | // import Loading from 'vue-loading-overlay' |
| | | // import 'vue-loading-overlay/dist/css/index.css' |
| | | import Loading from '@/components/Loading.vue' |
| | | |
| | | import { |
| | | getStoreOperationList, |
| | | getStorearriveGoodsList, |
| | | getStorecenterData, |
| | | getStoreenergyDataList, |
| | | getStorelastMonthOil, |
| | |
| | | time.value = dayjs().format('HH:mm:ss') |
| | | |
| | | }, 1000) |
| | | const isLoading = ref(false); |
| | | // |
| | | const mapList = ref([]) |
| | | const mapEchart = ref() |
| | |
| | | }, |
| | | xAxis: { |
| | | type: 'value', |
| | | axisLabel: { |
| | | color: '#D2E0FF' |
| | | }, |
| | | splitLine: { |
| | | show: true, |
| | | lineStyle: { |
| | |
| | | yAxis: { |
| | | axisTick: { |
| | | show: false, |
| | | }, |
| | | axisLabel: { |
| | | color: '#D2E0FF' |
| | | }, |
| | | type: 'category', |
| | | axisLine: { |
| | |
| | | |
| | | const dataList1 = ref([]) |
| | | const getData1 = () => { |
| | | getStorearriveGoodsList({ |
| | | arriveGoodsList({ |
| | | factoryCode: activeCity.value.code |
| | | }).then(res => { |
| | | dataList1.value = res.data || [] |
| | |
| | | const transportTask = ref([]) |
| | | const taskCode = ref('') |
| | | const showModal = ref(false) |
| | | const modalLoading = ref(false) |
| | | const modalInfo = ref({}) |
| | | const modalTab = ref(0) |
| | | const pager = ref({ |
| | | page: 0, |
| | | rows: 10 |
| | | rows: 50 |
| | | }) |
| | | const taskClick = (item) => { |
| | | isLoading.value = true |
| | | modalLoading.value = true |
| | | showModal.value = true |
| | | kzorderInfo({ contractNumber: item.contractNumber }).then(res => { |
| | | modalInfo.value = res.data |
| | | showModal.value = true |
| | | isLoading.value = false |
| | | |
| | | modalLoading.value = false |
| | | nextTick(() => { |
| | | initGdMap() |
| | | }) |
| | | }, () => { |
| | | isLoading.value = false |
| | | modalLoading.value = false |
| | | }) |
| | | } |
| | | const closeModal = () => { |
| | |
| | | }) |
| | | map.add(polyline) |
| | | } |
| | | const isLoadingTask = ref(false) |
| | | const getData2 = () => { |
| | | |
| | | isLoadingTask.value = true |
| | | getStoreTaskList({ |
| | | pager: pager.value, |
| | | parameters: { |
| | |
| | | facrotyCodeList: activeCity.value.code ? [activeCity.value.code] : [] |
| | | } |
| | | }).then(res => { |
| | | isLoadingTask.value = false |
| | | let temp = res.data.rows || [] |
| | | transportTask.value = temp.map(item => { |
| | | if (item.transportDate) { |
| | |
| | | } |
| | | return item |
| | | }) |
| | | console.log('isLoadingTask', isLoadingTask.value) |
| | | |
| | | }, () => { |
| | | isLoadingTask.value = false |
| | | }) |
| | | } |
| | | |
| | |
| | | const cityList = ref() |
| | | const getCity = () => { |
| | | kzfactoryList().then(res => { |
| | | cityList.value = res.data |
| | | cityList.value = [{ name: 'å
¨ç', code: '' }, ...res.data] |
| | | }) |
| | | } |
| | | const activeCity = ref({ name: 'å
¨ç', code: '' }) |
| | |
| | | } |
| | | |
| | | const activeTab1 = ref(0) |
| | | const loading1 = ref(false) |
| | | const StockOutData = ref({}) |
| | | const getStockOut = () => { |
| | | loading1.value = true |
| | | kztotalOutQtyNum({ type: activeTab1.value, factoryCode: activeCity.value.code }).then(res => { |
| | | loading1.value = false |
| | | if (res.code == 200) { |
| | | let obj = res.data |
| | | obj.currentNum = (obj.currentOutNum + obj.currentInNum).toFixed(0) * 1 |
| | |
| | | initEchart1() |
| | | } |
| | | |
| | | }, () => { |
| | | loading1.value = false |
| | | }) |
| | | } |
| | | const tab1Click = (val) => { |
| | |
| | | factoryCode: activeCity.value.code |
| | | }).then(res => { |
| | | const obj = res.data || {} |
| | | console.log('obj', obj); |
| | | |
| | | console.log('obj', obj) |
| | | |
| | | // 8å°æ¶ 计å 仿¥ |
| | | // obj.hoursAbility = 6000 |
| | | // obj.maxAbility = 8000 |
| | | // obj.currentPlanNum = 5000 |
| | | // obj.crrentOutNum = 7000 |
| | | |
| | | obj.level1 = ((obj.hoursAbility / obj.maxAbility) * 100).toFixed(2) + '%' |
| | | if(obj.currentPlanNum >= obj.hoursAbility){ |
| | | obj.level1 = ((obj.hoursAbility / obj.maxAbility) * 100).toFixed(2) + '%' |
| | | if (obj.currentPlanNum >= obj.hoursAbility) { |
| | | obj.level2 = '100%' |
| | | obj.level22 = (((obj.currentPlanNum - obj.hoursAbility) / (obj.maxAbility - obj.hoursAbility)) * 100).toFixed(2) |
| | | obj.level22 = obj.level22 > 100 ? '100%' : obj.level22 + '%' |
| | | }else{ |
| | | obj.level2 = ((obj.currentPlanNum / obj.hoursAbility)* 100).toFixed(2) + '%' |
| | | } else { |
| | | obj.level2 = ((obj.currentPlanNum / obj.hoursAbility) * 100).toFixed(2) + '%' |
| | | obj.level22 = 0 |
| | | } |
| | | if(obj.crrentOutNum >= obj.hoursAbility){ |
| | | if (obj.crrentOutNum >= obj.hoursAbility) { |
| | | obj.level3 = '100%' |
| | | obj.level33 = (((obj.crrentOutNum - obj.hoursAbility) / (obj.maxAbility - obj.hoursAbility)) * 100).toFixed(2) |
| | | obj.level33 = obj.level33 > 100 ? '100%' : obj.level33 + '%' |
| | | }else{ |
| | | obj.level3 = ((obj.crrentOutNum / obj.hoursAbility)* 100).toFixed(2) + '%' |
| | | } else { |
| | | obj.level3 = ((obj.crrentOutNum / obj.hoursAbility) * 100).toFixed(2) + '%' |
| | | obj.level33 = 0 |
| | | } |
| | | |
| | | console.log('obj1', obj.level1); |
| | | console.log('obj2', obj.level2); |
| | | console.log('obj22', obj.level22); |
| | | console.log('obj3', obj.level3); |
| | | console.log('obj33', obj.level33); |
| | | |
| | | |
| | | // console.log('obj1', obj.level1); |
| | | // console.log('obj2', obj.level2); |
| | | // console.log('obj22', obj.level22); |
| | | // console.log('obj3', obj.level3); |
| | | // console.log('obj33', obj.level33); |
| | | |
| | | cneterData.value = obj |
| | | |
| | | }) |
| | |
| | | legend: { |
| | | itemGap: 12, |
| | | // icon: 'circle', |
| | | right: '16%', |
| | | right: '12%', |
| | | top: '0%', |
| | | data: ['æ»åºå', 'å½ååºå', 'åºåå©ç¨ç'], |
| | | itemWidth: 20, |
| | |
| | | }, |
| | | }, |
| | | axisLabel: { |
| | | color: '#869CC9' |
| | | // fontSize: 24, |
| | | color: '#D2E0FF' |
| | | }, |
| | | axisTick: { |
| | | show: false, |
| | |
| | | nameGap: 16, |
| | | type: 'value', |
| | | axisLabel: { |
| | | show: true, |
| | | color: "#869CC9", |
| | | }, |
| | | axisLine: { |
| | |
| | | name: '%', |
| | | nameGap: 16, |
| | | min: 0, |
| | | max: 100, |
| | | interval: 25, |
| | | // max: 100, |
| | | axisLabel: { |
| | | formatter: '{value}' |
| | | color: "#869CC9", |
| | | }, |
| | | nameTextStyle: { |
| | | color: '#869CC9', |
| | | padding: [0, 0, 0, 12] |
| | | }, |
| | | splitLine: false |
| | | } |
| | |
| | | // icon: 'circle', |
| | | right: '10%', |
| | | top: '0', |
| | | data: ['åºåºè½å', '彿¥åºåºé', 'åºåå©ç¨ç'], |
| | | data: ['åºåºè½å', '彿¥åºåºé', 'åºåºå©ç¨ç'], |
| | | itemWidth: 20, |
| | | itemHeight: 10, |
| | | textStyle: { |
| | |
| | | }, |
| | | }, |
| | | axisLabel: { |
| | | color: '#869CC9' |
| | | // fontSize: 24, |
| | | color: "#869CC9", |
| | | }, |
| | | nameTextStyle: { |
| | | color: '#869CC9', |
| | | }, |
| | | axisTick: { |
| | | show: false, |
| | |
| | | }], |
| | | yAxis: [ |
| | | { |
| | | nameTextStyle: { |
| | | color: '#869CC9', |
| | | }, |
| | | name: '䏿¯', |
| | | nameGap: 16, |
| | | type: 'value', |
| | | axisLabel: { |
| | | show: true, |
| | | color: "#869CC9", |
| | | }, |
| | | nameTextStyle: { |
| | | color: '#869CC9', |
| | | padding: [0, 0, 0, 12] |
| | | }, |
| | | axisLine: { |
| | | show: true, |
| | |
| | | name: '%', |
| | | nameGap: 16, |
| | | min: 0, |
| | | max: 100, |
| | | interval: 25, |
| | | axisLabel: { |
| | | formatter: '{value}' |
| | | color: "#869CC9", |
| | | }, |
| | | nameTextStyle: { |
| | | color: '#869CC9', |
| | | padding: [0, 0, 0, 12] |
| | | }, |
| | | splitLine: false |
| | | } |
| | |
| | | barGap: '-100%' // 设置æ±åå®å
¨éå |
| | | }, |
| | | { |
| | | name: 'åºåå©ç¨ç', |
| | | name: 'åºåºå©ç¨ç', |
| | | type: 'line', |
| | | smooth: false, |
| | | showAllSymbol: true, |
| | |
| | | legend: { |
| | | itemGap: 12, |
| | | // icon: 'circle', |
| | | right: '16%', |
| | | right: '10%', |
| | | top: '0%', |
| | | data: ['æ»åºå', 'å½ååºå', 'åºåå©ç¨ç'], |
| | | data: ['æ»è¿åèµæº', '彿¥ææ¥è¿å', '车è¾å©ç¨ç'], |
| | | itemWidth: 20, |
| | | itemHeight: 10, |
| | | textStyle: { |
| | |
| | | }, |
| | | }, |
| | | axisLabel: { |
| | | color: '#869CC9' |
| | | // fontSize: 24, |
| | | color: "#869CC9", |
| | | }, |
| | | nameTextStyle: { |
| | | color: '#869CC9', |
| | | padding: [0, 0, 0, 12] |
| | | }, |
| | | axisTick: { |
| | | show: false, |
| | |
| | | nameTextStyle: { |
| | | color: '#869CC9', |
| | | }, |
| | | name: '䏿¯', |
| | | name: 'è¾', |
| | | nameGap: 16, |
| | | type: 'value', |
| | | axisLabel: { |
| | |
| | | name: '%', |
| | | nameGap: 16, |
| | | min: 0, |
| | | max: 100, |
| | | interval: 25, |
| | | axisLabel: { |
| | | formatter: '{value}' |
| | | color: "#869CC9", |
| | | }, |
| | | nameTextStyle: { |
| | | color: '#869CC9', |
| | | padding: [0, 0, 0, 12] |
| | | }, |
| | | splitLine: false |
| | | } |
| | | ], |
| | | series: [ |
| | | { |
| | | name: 'æ»åºå', |
| | | name: 'æ»è¿åèµæº', |
| | | type: 'bar', |
| | | barWidth: 10, |
| | | barGap: '60%', |
| | |
| | | color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ |
| | | { |
| | | offset: 0, |
| | | color: '#2e6bf3' |
| | | color: '#73f0c6' |
| | | }, |
| | | { |
| | | offset: 1, |
| | | color: '#5fcbab' |
| | | color: '#3f8ca6' |
| | | } |
| | | ], false), |
| | | lineStyle: { |
| | |
| | | data: data7.value.detailList.map(i => i.totalNum) |
| | | }, |
| | | { |
| | | name: 'å½ååºå', |
| | | name: '彿¥ææ¥è¿å', |
| | | type: 'bar', |
| | | barWidth: 10, |
| | | label: { |
| | |
| | | color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ |
| | | { |
| | | offset: 0, |
| | | color: '#eda13a' |
| | | color: '#ed7e32' |
| | | }, |
| | | { |
| | | offset: 0.6, |
| | | color: '#dfb44e' |
| | | color: '#e99b5c' |
| | | }, |
| | | { |
| | | offset: 1, |
| | | color: '#ccc16c' |
| | | color: '#e7a774' |
| | | } |
| | | ], false), |
| | | lineStyle: { |
| | |
| | | data: data7.value.detailList.map(i => i.currentNum) |
| | | }, |
| | | { |
| | | name: 'åºåå©ç¨ç', |
| | | name: '车è¾å©ç¨ç', |
| | | type: 'line', |
| | | smooth: false, |
| | | showAllSymbol: true, |
| | |
| | | kzinventoryUseRate().then(res => { |
| | | data5.value = res.data |
| | | data5.value.detailList.forEach(item => { |
| | | item.useRate = item.useRate * 100 |
| | | if (item.useRate) { |
| | | item.useRate = (item.useRate * 100).toFixed(1) |
| | | } |
| | | |
| | | }) |
| | | initEchart5() |
| | | }) |
| | | outAbilityUseRate().then(res => { |
| | | data6.value = res.data |
| | | data6.value.detailList.forEach(item => { |
| | | item.useRate = item.useRate * 100 |
| | | if (item.useRate) { |
| | | item.useRate = (item.useRate * 100).toFixed(1) |
| | | } |
| | | }) |
| | | initEchart6() |
| | | }) |
| | | tranportAbilityUseRate().then(res => { |
| | | data7.value = res.data |
| | | data7.value.detailList.forEach(item => { |
| | | item.useRate = item.useRate * 100 |
| | | // item.useRate = item.useRate * 100 |
| | | if (item.useRate) { |
| | | item.useRate = (item.useRate * 100).toFixed(1) |
| | | } |
| | | }) |
| | | initEchart7() |
| | | }) |
| | |
| | | .left_box_one { |
| | | margin-top: 20px; |
| | | padding: 0px 10px 30px 20px; |
| | | position: relative; |
| | | |
| | | .content_wrap { |
| | | display: flex; |
| | |
| | | } |
| | | |
| | | .list_wrap { |
| | | position: relative; |
| | | |
| | | .list { |
| | | height: 200px; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .empty { |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | height: 200px; |
| | | |
| | | img { |
| | | width: 144px; |
| | | } |
| | | } |
| | | |
| | | .line { |
| | |
| | | } |
| | | |
| | | .status { |
| | | flex: 5; |
| | | flex: 3.2; |
| | | } |
| | | } |
| | | |
| | |
| | | justify-content: center; |
| | | min-width: 76px; |
| | | border: 1px solid #fff; |
| | | |
| | | .icon { |
| | | position: absolute; |
| | | top: 1px; |
| | |
| | | z-index: 9; |
| | | background: linear-gradient(270deg, #68dfd3 0%, #006BFF 100%); |
| | | } |
| | | .box11{ |
| | | background: linear-gradient(270deg,#75f8cc 0%, #68dfd3 100%); |
| | | |
| | | .box11 { |
| | | background: linear-gradient(270deg, #75f8cc 0%, #68dfd3 100%); |
| | | } |
| | | .box22{ |
| | | |
| | | .box22 { |
| | | background: linear-gradient(270deg, #f2a43b 0%, #ecbb61 100%); |
| | | } |
| | | .box23{ |
| | | |
| | | .box23 { |
| | | background: linear-gradient(270deg, #f4b34a 0%, #FFEA70 100%); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | .item { |
| | | flex: 2; |
| | | flex: 3; |
| | | } |
| | | |
| | | .addr { |
| | | flex: 5; |
| | | display: flex; |
| | | flex-wrap: nowrap; |
| | | overflow: hidden; |
| | | } |
| | | } |
| | | |
| | |
| | | </div> |
| | | <div class="one-swiper list_temp"> |
| | | <div class="swiper-wrapper"> |
| | | <div class="line swiper-slide one-swiper-slide" @click="showModal = true" v-for="item in dataList3"> |
| | | <div class="line swiper-slide one-swiper-slide" v-for="item in dataList3"> |
| | | <span class="item flag"><span :class="{ flag_bg: item.type == 1 || item.type == 3 }">{{ item.type |
| | | == 1 |
| | | || item.type == 3 ? 'åº' : 'å
¥' }}</span></span> |
| | |
| | | <img src="@/assets/images/energy_ef/ic_wanchengrenwu@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="name">彿¥å®æä»»å¡æ»é</div> |
| | | <div class="num"><span v-if="data1.currentOutDoneNum || data1.currentInDoneNum" class="today">{{ |
| | | activeTab4 == |
| | | 0 ? data1.currentOutDoneNum : |
| | | data1.currentInDoneNum |
| | | }}</span>䏿¯</div> |
| | | <div class="num"> |
| | | <span v-if="data1.currentOutDoneNum || data1.currentInDoneNum" class="today">{{ |
| | | activeTab4 == |
| | | 0 ? data1.currentOutDoneNum : |
| | | data1.currentInDoneNum |
| | | }}</span> |
| | | <span v-else>0</span> |
| | | <span>䏿¯</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="item"> |
| | |
| | | }, |
| | | axisLabel: { |
| | | color: '#869CC9' |
| | | // fontSize: 24, |
| | | }, |
| | | nameTextStyle: { |
| | | color: '#869CC9' // å个æ°ååå«ä¸ºä¸å³ä¸å·¦ä¸åä½ç½®è·ç¦» |
| | | }, |
| | | axisTick: { |
| | | show: false, |
| | |
| | | name: '个', |
| | | min: 0, |
| | | axisLabel: { |
| | | show: true, |
| | | color: "#869CC9", |
| | | color: '#869CC9' |
| | | }, |
| | | nameTextStyle: { |
| | | color: '#869CC9', |
| | | padding: [0, 0, 0, -18] // å个æ°ååå«ä¸ºä¸å³ä¸å·¦ä¸åä½ç½®è·ç¦» |
| | | }, |
| | | splitLine: { |
| | | show: true, |
| | |
| | | type: 'dashed' |
| | | } |
| | | }, |
| | | // interval: 5, |
| | | axisLabel: { |
| | | formatter: '{value}' |
| | | } |
| | | }, |
| | | { |
| | | type: 'value', |
| | | name: '䏿¯', |
| | | nameTextStyle: { |
| | | color: '#869CC9', |
| | | }, |
| | | offset: 0, |
| | | type: 'value', |
| | | axisLine: { |
| | |
| | | } |
| | | }, |
| | | axisLabel: { |
| | | formatter: '{value}' |
| | | } |
| | | color: '#869CC9' |
| | | }, |
| | | nameTextStyle: { |
| | | color: '#869CC9', |
| | | padding: [0, 0, 0, 12] // å个æ°ååå«ä¸ºä¸å³ä¸å·¦ä¸åä½ç½®è·ç¦» |
| | | }, |
| | | }, |
| | | ], |
| | | series: [ |
| | |
| | | <div v-show="showJk" class="jiankong"> |
| | | <img class="jk_bg" src="@/assets/images/SecurityControl/jiankong_bg@2x.png" alt=""> |
| | | <div class="content"> |
| | | <Video v-if="showJk && activeMenu && activeMenu.indexCode" :href="data.videoPluginUrl" :indexCode="activeMenu.indexCode" /> |
| | | <Video v-if="showJk && activeMenu && activeMenu.indexCode" :href="data.videoPluginUrl" |
| | | :indexCode="activeMenu.indexCode" /> |
| | | <!-- <div class="player_bg" style="width: 100%;height: 100%;" id="playWnd"> </div> --> |
| | | </div> |
| | | <div class="right_wrap"> |
| | |
| | | </div> |
| | | </div> --> |
| | | <div class="safe_warning"> |
| | | <Loading v-if="loading1" /> |
| | | <div class="com_header"> |
| | | <div class="title"> |
| | | <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | </div> |
| | |
| | | import 'swiper/css/swiper.min.css' |
| | | import Swiper from 'swiper' |
| | | import Video from './videoUrl/Video.vue' |
| | | import Loading from '@/components/Loading.vue' |
| | | import { |
| | | getEnergyCenterData, |
| | | afgetCarmeraPreviemUrl, |
| | |
| | | }]), |
| | | ] |
| | | const data = [] |
| | | data.push({ name: 'å¾
访é®', value: data4.value.waitVisitNum, rate: (data4.value.waitVisitNum / data4.value.total).toFixed(1) }) |
| | | data.push({ name: 'å·²ç»è®°', value: data4.value.registerVisitNum, rate: (data4.value.registerVisitNum / data4.value.total).toFixed(1) }) |
| | | data.push({ name: '已离å¼', value: data4.value.levelNum, rate: (data4.value.levelNum / data4.value.total).toFixed(1) }) |
| | | data.push({ name: 'æ»ç', value: data4.value.retentionNum, rate: (data4.value.retentionNum / data4.value.total).toFixed(1) }) |
| | | if (data4.value.total) { |
| | | data.push({ name: 'å¾
访é®', value: data4.value.waitVisitNum, rate: (data4.value.waitVisitNum / data4.value.total).toFixed(1) }) |
| | | data.push({ name: 'å·²ç»è®°', value: data4.value.registerVisitNum, rate: (data4.value.registerVisitNum / data4.value.total).toFixed(1) }) |
| | | data.push({ name: '已离å¼', value: data4.value.levelNum, rate: (data4.value.levelNum / data4.value.total).toFixed(1) }) |
| | | data.push({ name: 'æ»ç', value: data4.value.retentionNum, rate: (data4.value.retentionNum / data4.value.total).toFixed(1) }) |
| | | } else { |
| | | data.push({ name: 'å¾
访é®', value: data4.value.waitVisitNum, rate: 0 }) |
| | | data.push({ name: 'å·²ç»è®°', value: data4.value.registerVisitNum, rate: 0 }) |
| | | data.push({ name: '已离å¼', value: data4.value.levelNum, rate: 0 }) |
| | | data.push({ name: 'æ»ç', value: data4.value.retentionNum, rate: 0 }) |
| | | } |
| | | |
| | | const option = { |
| | | color: colors, |
| | | tooltip: { |
| | |
| | | }) |
| | | } |
| | | |
| | | const loading1 = ref(false) |
| | | const warningTab = ref('0') |
| | | const warningNum = ref(0) |
| | | const warningList = ref([]) |
| | | const getWarning = () => { |
| | | loading1.value = true |
| | | afwarningEventData({ type: warningTab.value }).then(res => { |
| | | loading1.value = false |
| | | if (!res.data) return |
| | | const result = res.data.list || [] |
| | | warningNum.value = res.data.total |
| | |
| | | }) |
| | | warningList.value = temp |
| | | // console.log('temp', warningList.value); |
| | | }, () => { |
| | | loading1.value = false |
| | | }) |
| | | } |
| | | const tasClick = (val) => { |
| | |
| | | } |
| | | const changeMon = () => { |
| | | showJk.value = !showJk.value |
| | | if(!showJk.value){ |
| | | if (!showJk.value) { |
| | | activeJkIndex.value = -1 |
| | | activeMenu.value = {} |
| | | } |
| | |
| | | .safe_warning { |
| | | width: 786px; |
| | | margin-right: 20px; |
| | | |
| | | position: relative; |
| | | /* one-swiper */ |
| | | .one_swiper_wrap { |
| | | height: 140px; |
| | |
| | | </div> |
| | | </div> |
| | | <div class="center_box_bg"> |
| | | <img v-if="showWorkModal" class="point_icon" :style="{ left: workModalParam.left + 'px', top: workModalParam.top + 'px' }" |
| | | <img v-if="showWorkModal" class="point_icon" |
| | | :style="{ left: workModalParam.left + 'px', top: workModalParam.top + 'px' }" |
| | | src="@/assets/ani/apngb-animated.png" alt=""> |
| | | <div class="work_modal" :style="{ left: workModalParam.left2 + 'px', top: workModalParam.top + 'px' }" |
| | | @click="showWorkModal = false" v-if="showWorkModal"> |
| | |
| | | const option = { |
| | | grid: { |
| | | top: '32%', |
| | | left: '0%', |
| | | left: '6%', |
| | | right: '7%', |
| | | bottom: '0%', |
| | | bottom: '10%', |
| | | containLabel: true, |
| | | }, |
| | | legend: { |
| | |
| | | name: '䏿¯', |
| | | type: 'value', |
| | | axisLabel: { |
| | | show: true, |
| | | color: "#9eaaba", |
| | | color: '#869CC9' |
| | | }, |
| | | nameTextStyle: { |
| | | color: '#869CC9', |
| | | padding: [0, 0, 0, 12] // å个æ°ååå«ä¸ºä¸å³ä¸å·¦ä¸åä½ç½®è·ç¦» |
| | | }, |
| | | axisLine: { |
| | | show: true, |
| | |
| | | } |
| | | |
| | | } |
| | | .modal_bg{ |
| | | |
| | | .modal_bg { |
| | | position: fixed; |
| | | left: 0; |
| | | top: 0; |