isv-robot vor 2 Jahren
Ursprung
Commit
441ce80ff3

+ 113 - 0
src/api/dashboard-json.js

@@ -0,0 +1,113 @@
+import request from '@/utils/request'
+
+// 电力变配电所
+export function chartDlbpds(params) {
+  return request({
+    url: '/chart/dlbpds',
+    method: 'get',
+    params
+  })
+}
+
+// 电力变配电所本月兑现情况
+export function chartDlbpdsby(params) {
+  return request({
+    url: '/chart/dlbpdsby',
+    method: 'get',
+    params
+  })
+}
+
+// 电力受电线路
+export function chartDlsdxl(params) {
+  return request({
+    url: '/chart/dlsdxl',
+    method: 'get',
+    params
+  })
+}
+
+// 电力受电线路本月
+export function chartDlsdxlBy(params) {
+  return request({
+    url: '/chart/dlsdxlby',
+    method: 'get',
+    params
+  })
+}
+
+// 电力远动调试
+export function chartDlydts(params) {
+  return request({
+    url: '/chart/dlydts',
+    method: 'get',
+    params
+  })
+}
+
+
+// 电力远动调试本月
+export function chartDlydtsby(params) {
+  return request({
+    url: '/chart/dlydtsby',
+    method: 'get',
+    params
+  })
+}
+
+// 检修兑现情况
+export function chartJxdxqky(params) {
+  return request({
+    url: '/chart/jxdxqk',
+    method: 'get',
+    params
+  })
+}
+
+
+// 检修兑现情况本月
+export function chartJxdxqkyby(params) {
+  return request({
+    url: '/chart/jxdxqkby',
+    method: 'get',
+    params
+  })
+}
+
+
+// map
+export function chartMap(params) {
+  return request({
+    url: '/chart/map',
+    method: 'get',
+    params
+  })
+}
+
+// 牵变、电力设备巡检兑现(本月)
+export function chartQbdlsbxjdx(params) {
+  return request({
+    url: '/chart/qbdlsbxjdx',
+    method: 'get',
+    params
+  })
+}
+
+// 试验计划本月兑现情况
+export function chartSyjhbydxqk(params) {
+  return request({
+    url: '/chart/syjhbydxqk',
+    method: 'get',
+    params
+  })
+}
+
+
+// 试验计划兑现情况
+export function chartSyjhdxqk(params) {
+  return request({
+    url: '/chart/syjhdxqk',
+    method: 'get',
+    params
+  })
+}

+ 2 - 2
src/permission.js

@@ -8,7 +8,7 @@ import getPageTitle from '@/utils/get-page-title'
 
 NProgress.configure({ showSpinner: false }) // NProgress Configuration
 
-const whiteList = ['/login', '/auth-redirect', '/dashboard-screen', '/login1'] // no redirect whitelist
+const whiteList = ['/login', '/auth-redirect', '/login1'] // no redirect whitelist
 
 router.beforeEach(async(to, from, next) => {
   // start progress bar
@@ -60,7 +60,7 @@ router.beforeEach(async(to, from, next) => {
       next()
     } else {
       // other pages that do not have permission to access are redirected to the login page.
-      next(`/dashboard-screen?redirect=${to.path}`)
+      next(`/login?redirect=${to.path}`)
       NProgress.done()
     }
   }

+ 6 - 6
src/router/index.js

@@ -76,8 +76,12 @@ export const constantRoutes = [
     path: '/404',
     component: () => import('@/views/404'),
     hidden: true
-  },
+  }
+
 
+
+]
+export const asyncRoutes = [
   {
     path: '/dashboard-screen',
     component: FullScreenLayout,
@@ -96,11 +100,7 @@ export const constantRoutes = [
         meta: {title: '大屏', pages: ['pc:catenary:jlgz']}
       }
     ]
-  }
-
-]
-export const asyncRoutes = [
-
+  },
   {
     path: '/catenary',
     component: Layout,

+ 1 - 1
src/store/modules/user.js

@@ -41,7 +41,7 @@ const actions = {
       login({ username: username.trim(), password: password, code: code, uuid: uuid }).then(response => {
         commit('SET_TOKEN', response.token)
         setToken(response.token)
-        resolve()
+        resolve()``
       }).catch(error => {
         reject(error)
       })

+ 24 - 12
src/views/dashboard-screen/dlbpds/index.vue

@@ -2,36 +2,38 @@
   <div class="chart-wrap">
     <CardWrap2>
       <span slot="left">第一季度</span>
-      <div slot="r1">计划  <span class="value">6</span></div>
-      <div slot="r2">完成  <span class="value">6</span></div>
+      <div slot="r1">计划 <span class="value">{{ arrMap[0] || 0 }}</span></div>
+      <div slot="r2">完成 <span class="value">{{ arrMap[1] || 0 }}</span></div>
     </CardWrap2>
     <CardWrap2>
       <span slot="left">第二季度</span>
-      <div slot="r1">计划  <span class="value">6</span></div>
-      <div slot="r2">完成  <span class="value">6</span></div>
+      <div slot="r1">计划 <span class="value">{{ arrMap[2] || 0 }}</span></div>
+      <div slot="r2">完成 <span class="value">{{ arrMap[3] || 0 }}</span></div>
     </CardWrap2>
     <CardWrap2>
       <span slot="left">第三季度</span>
-      <div slot="r1">计划  <span class="value">6</span></div>
-      <div slot="r2">完成  <span class="value">6</span></div>
+      <div slot="r1">计划 <span class="value">{{ arrMap[4] || 0 }}</span></div>
+      <div slot="r2">完成 <span class="value">{{ arrMap[5] || 0 }}</span></div>
     </CardWrap2>
     <CardWrap2>
       <span slot="left">第四季度</span>
-      <div slot="r1">计划  <span class="value">6</span></div>
-      <div slot="r2">完成  <span class="value">6</span></div>
+      <div slot="r1">计划 <span class="value">{{ arrMap[6] || 0 }}</span></div>
+      <div slot="r2">完成 <span class="value">{{ arrMap[7] || 0 }}</span></div>
     </CardWrap2>
   </div>
 </template>
 
 <script>
-import CardWrap2 from "@/views/dashboard-screen/chard-wrap/card-wrap2.vue";
+import CardWrap2 from '@/views/dashboard-screen/chard-wrap/card-wrap2.vue'
+import {chartDlbpds} from '@/api/dashboard-json'
 
 export default {
   name: 'Dlbpds',
   components: {CardWrap2},
   data() {
     return {
-      option: {}
+      option: {},
+      arrMap: []
     }
   },
   created() {
@@ -40,6 +42,16 @@ export default {
 
   methods: {
     getOption() {
+      chartDlbpds().then(res => {
+        if (res?.code === 200) {
+          const arrMap = []
+          res.info.xaxis.forEach((item, index) => {
+            arrMap.push(res.info.series[0].data[index], res.info.series[1].data[index])
+          })
+          this.arrMap = arrMap
+        }
+        window.console.log('1232421 电力变配电所', res)
+      })
     }
   }
 
@@ -48,14 +60,14 @@ export default {
 
 <style scoped lang="scss">
 
-
 .chart-wrap {
   width: 100%;
   height: 100%;
   display: flex;
   align-items: center;
   justify-content: space-around;
-  .card-wrap{
+
+  .card-wrap {
     margin: 0 0.3vw;
   }
 }

+ 15 - 3
src/views/dashboard-screen/dlsdxl/index.vue

@@ -34,6 +34,7 @@
 
 <script>
 import * as echarts from 'echarts'
+import {chartDlbpds, chartDlsdxl} from "@/api/dashboard-json";
 
 export default {
   name: 'Dlsdxl',
@@ -47,10 +48,21 @@ export default {
   },
 
   methods: {
-    getOption() {
+    async getOption() {
+      const res = await chartDlsdxl()
+      if (res?.code === 200) {
+        const arrMap = []
+        res.info.xaxis.forEach((item, index) => {
+          arrMap.push(res.info.series[0].data[index], res.info.series[1].data[index])
+        })
+        this.arrMap = arrMap
+      }
+
       const labelList = ['第一季度', '第二季度', '第三季度', '第四季度']
       this.option = {
-
+        textStyle: {
+          fontFamily: 'hxb'
+        },
         grid: {
           left: '8%',
           top: '8%',
@@ -115,7 +127,7 @@ export default {
                 position: [this.EchartfontSize(240), -this.EchartfontSize(18)],
                 textStyle: {
                   color: '#ffffff',
-                  fontSize: this.EchartfontSize(12)
+                  fontSize: this.EchartfontSize(14)
                 }
               }
             },

+ 98 - 77
src/views/dashboard-screen/dlydtssx/index.vue

@@ -6,11 +6,13 @@
 
 <script>
 import * as echarts from 'echarts'
+import {chartDlsdxl, chartDlydts} from '@/api/dashboard-json'
 
 export default {
   name: 'Dlydtssx',
   data() {
     return {
+      arrMap: [],
       option: {}
     }
   },
@@ -19,25 +21,47 @@ export default {
   },
 
   methods: {
-    getOption() {
-      const data = [{
+    async getOption() {
+      const res = await chartDlydts()
+      if (res?.code === 200) {
+        const arrMap = []
+        // const max =
+        res.info.xaxis.forEach((item, index) => {
+          const valItem = {
+            name: item,
+            used: res.info.series[0].data[index],
+            value: res.info.series[0].data[index],
+            total: res.info.series[1].data[index]
+          }
+
+          arrMap.push(valItem)
+        })
+        arrMap.forEach(item => {
+          if (item.used > item.total) {
+            item.used = item.total * 1.08
+          }
+        })
+        this.arrMap = arrMap
+      }
+      let data = [{
         name: '第一季度',
-        value: 40
+        used: 100,
+        total: 100
       }, {
         name: '第二季度',
-        value: 30
+        used: 10,
+        total: 100
       }, {
         name: '第三季度',
-        value: 20
+        used: 10,
+        total: 100
       }, {
         name: '第四季度',
-        value: 10
+        used: 10,
+        total: 100
       }]
-      const name = data.map((item) => item.name)
-      const value = data.map((item) => item.value)
-      const sum = value.reduce((a, b) => {
-        return a + b
-      })
+      data = this.arrMap
+      window['data'] = data
       const colors = [
         [
           new echarts.graphic.LinearGradient(0, 1, 0, 0, [{offset: 0, color: 'rgb(82, 113, 195)'}, {
@@ -87,27 +111,28 @@ export default {
             borderRadius: 60 // 设置每一段子项目的圆角
 
           },
-          data: [{
-            value: data[i].value,
-            name: data[i].name
-          },
-          {
-            value: sum - data[i].value,
-            name: '',
-            itemStyle: {
-              color: 'transparent',
-              borderRadius: 60 // 设置每一段子项目的圆角
-
-            },
-            tooltip: {
-              show: false
+          data: [
+            {
+              value: data[i].used * (3 / 4),
+              name: data[i].name
             },
-            hoverAnimation: false
-          }
+            {
+              value: (data[i].total - data[i].used) + data[i].used * (1 / 4),
+              name: data[i].name,
+              itemStyle: {
+                color: 'transparent',
+                borderRadius: 60 // 设置每一段子项目的圆角
+
+              },
+              tooltip: {
+                show: false
+              },
+              hoverAnimation: false
+            }
           ]
         })
         series.push({
-          name: '',
+          name: null,
           type: 'pie',
           silent: true,
           z: 1,
@@ -128,67 +153,63 @@ export default {
             borderRadius: 60 // 设置每一段子项目的圆角
 
           },
-          data: [{
-            value: 7.5,
-            itemStyle: {
-              color: colors[1][i]
-            },
-            tooltip: {
-              show: false
-            },
-            hoverAnimation: false
-          },
-          {
-            value: 2.5,
-            itemStyle: {
-              color: 'rgba(0,0,0,0)',
-              borderWidth: 0,
-              borderRadius: 60 // 设置每一段子项目的圆角
-            },
-            tooltip: {
-              show: false
+          data: [
+            {
+              value: 7.5,
+              itemStyle: {
+                color: colors[1][i]
+              },
+              tooltip: {
+                show: false
+              },
+              hoverAnimation: false
             },
-            hoverAnimation: false
-          }
+            {
+              value: 2.5,
+              itemStyle: {
+                color: 'rgba(0,0,0,0)',
+                borderWidth: 0,
+                borderRadius: 60 // 设置每一段子项目的圆角
+              },
+              tooltip: {
+                show: false
+              },
+              hoverAnimation: false
+            }
           ]
         })
-        yAxis.push(((data[i].value / sum) * 100).toFixed(0) + '%')
+        yAxis.push(((data[i].used / data[i].total) * 100).toFixed(0) + '%')
       }
       this.option = {
         color: colors[0],
         legend: {
           show: true,
-          icon: 'circle',
-          top: '5%',
-          left: '60%',
-          width: '100%',
-          height: '100%',
+          icon: 'reac',
+          top: '0%',
+          left: '65%',
+          width: 10,
+          height: 10000,
+          orient: 'horizontal',
           data: name,
-          orient: 'vertical',
+          selectedMode: false,
+          // orient: 'vertical',
           formatter: (name) => {
-            return (
-              '{title|' + name + '}   {value|' + data.find((item) => {
-                return item.name === name
-              }).value + '}'
-            )
+            const findItem = data.find(item => item.name === name)
+            if (findItem) {
+              const per = ((findItem.value / findItem.total) * 100).toFixed(0)
+              return `${name} ${per}%`
+            } else {
+              return name
+            }
+
           },
           textStyle: {
-            rich: {
-              title: {
-                fontSize: this.EchartfontSize(14),
-                lineHeight: 30,
-                color: '#ffffff'
-              },
-              value: {
-                fontSize: this.EchartfontSize(14),
-                lineHeight: 30,
-                color: '#fff'
-              }
-            }
+            fontSize: this.EchartfontSize(12),
+            color: '#ffffff'
           }
         },
         tooltip: {
-          show: true,
+          show: false,
           trigger: 'item',
           formatter: '{a}<br>{b}:{c}({d}%)'
         },
@@ -209,15 +230,15 @@ export default {
             show: false
           },
           axisLabel: {
-            formatter: (name) => {
-              return name
+            formatter: (name, index) => {
+              return `${this.arrMap[index].value}/${this.arrMap[index].total}`
             },
             interval: 0,
             inside: true,
 
             textStyle: {
               color: '#fff',
-              fontSize: this.EchartfontSize(14),
+              fontSize: this.EchartfontSize(16)
             },
             show: true
           },

+ 1 - 1
src/views/dashboard-screen/index.vue

@@ -14,7 +14,7 @@
           <ChartMap/>
           <div class="jryl-wrap">
             <CardWrap>
-              <span slot="title">今日遗留 中国制造</span>
+              <span slot="title">今日遗留</span>
               <div slot="content">
                 <Jryl/>
               </div>

+ 2 - 1
src/views/login/index.vue

@@ -159,7 +159,8 @@ export default {
         if (valid) {
           this.loading = true
           this.$store.dispatch('user/login', this.loginForm).then(() => {
-            this.$router.push({ path: this.redirect || '/' })
+            // this.$router.push({ path: this.redirect || '/' })
+            this.$router.push({ path: '/dashboard-sceen' })
             this.loading = false
           }).catch(() => {
             this.loading = false