liujq 3 лет назад
Родитель
Сommit
78e61d7c22

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/index.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/css/chunk-0b996516.e9419f8c.css


+ 1 - 0
dist/static/css/chunk-14beaec0.f5796be8.css

@@ -0,0 +1 @@
+.top-middle-cmp{position:relative;padding:0 50px;-webkit-box-sizing:border-box;box-sizing:border-box}.top-middle-cmp .chart-name{position:absolute;right:70px;text-align:right;font-size:20px;top:10px}.dashboard-container[data-v-60c4f507]{width:100%;height:calc(100vh - 84px);overflow-y:auto;background-color:#1f2d3d}.dashboard-container.full[data-v-60c4f507]{position:fixed;overflow:hidden;top:0;left:0;width:100%;height:100%;z-index:9999999;min-height:100%}.scoped-num[data-v-60c4f507]{min-width:1400px;-webkit-box-sizing:border-box;box-sizing:border-box;padding:20px 20px 0}.scoped-num .sn-wrap[data-v-60c4f507]{padding:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box}.scoped-num .sn-item[data-v-60c4f507]{padding:10px;-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:center}.scoped-num .sn-item .sn-label[data-v-60c4f507]{padding-top:20px;color:#8cdacc;font-size:18px}.scoped-num .sn-item .dv-digital-flop[data-v-60c4f507]{display:inline-block;margin-bottom:10px}.scoped-count[data-v-60c4f507]{padding:20px;display:inline-block;min-width:1400px;-webkit-box-sizing:border-box;box-sizing:border-box}.scoped-count.t2[data-v-60c4f507]{display:inline-block;vertical-align:middle;min-width:500px}.scoped-count .sc-row[data-v-60c4f507]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:10px 0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.scoped-count .sc-col[data-v-60c4f507]{width:450px;padding:10px}.scoped-count .sc-wrap[data-v-60c4f507]{padding:50px 20px 20px}.scoped-count .sc-user[data-v-60c4f507]{width:450px;height:320px;padding-top:80px;text-align:center}.scoped-count .sc-user .t[data-v-60c4f507]{color:#fff;font-size:20px;padding-top:10px;font-weight:700}

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/css/chunk-36ad6b53.65344f99.css


+ 0 - 1
dist/static/css/chunk-3c99d7f1.b4f8d192.css

@@ -1 +0,0 @@
-.dashboard-container[data-v-50edeebe]{width:100%;height:calc(100vh - 84px);overflow-y:auto;background-color:#1f2d3d}.dashboard-container.full[data-v-50edeebe]{position:fixed;overflow:hidden;top:0;left:0;width:100%;height:100%;z-index:9999999;min-height:100%}.scoped-num[data-v-50edeebe]{min-width:1400px;-webkit-box-sizing:border-box;box-sizing:border-box;padding:20px 20px 0}.scoped-num .sn-wrap[data-v-50edeebe]{padding:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box}.scoped-num .sn-item[data-v-50edeebe]{padding:10px;-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:center}.scoped-num .sn-item .sn-label[data-v-50edeebe]{padding-top:20px;color:#8cdacc;font-size:18px}.scoped-num .sn-item .dv-digital-flop[data-v-50edeebe]{display:inline-block;margin-bottom:10px}.scoped-count[data-v-50edeebe]{padding:20px;display:inline-block;min-width:1400px;-webkit-box-sizing:border-box;box-sizing:border-box}.scoped-count.t2[data-v-50edeebe]{display:inline-block;vertical-align:middle;min-width:500px}.scoped-count .sc-row[data-v-50edeebe]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:10px 0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.scoped-count .sc-col[data-v-50edeebe]{width:450px;padding:10px}.scoped-count .sc-wrap[data-v-50edeebe]{padding:50px 20px 20px}.scoped-count .sc-user[data-v-50edeebe]{width:450px;height:320px;padding-top:80px;text-align:center}.scoped-count .sc-user .t[data-v-50edeebe]{color:#fff;font-size:20px;padding-top:10px;font-weight:700}

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/app.e1081020.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-0b996516.750041c6.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-14beaec0.971b6ffc.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-36ad6b53.fa0db419.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/static/js/chunk-3c99d7f1.239b2d68.js


+ 134 - 0
src/views/dashboard/components/EchartLine.vue

@@ -0,0 +1,134 @@
+<template>
+  <div class="top-middle-cmp" style="height: 300px">
+    <div class="chart-name">
+      近30天数据统计
+      <dv-decoration-3 style="width:200px;height:20px;" />
+    </div>
+    <dv-charts :option="option" />
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'TopMiddleCmp',
+  props: {
+    curObj: Object,
+  },
+  data () {
+    return {
+      option: {
+        legend: {
+          data: ['近30天登录'],
+          textStyle: {
+            fill: '#fff'
+          }
+        },
+        xAxis: {
+          data: [
+            '10/01', '10/02', '10/03', '10/04', '10/05', '10/06',
+            '10/07', '10/07', '10/08', '10/09', '10/10', '10/11',
+            '10/07', '10/07', '10/08', '10/09', '10/10', '10/11',
+            '10/07', '10/07', '10/08', '10/09', '10/10', '10/11',
+            '10/12', '10/13', '10/14', '10/15'
+          ],
+          boundaryGap: false,
+          axisLine: {
+            style: {
+              stroke: '#999'
+            }
+          },
+          axisLabel: {
+            style: {
+              fill: '#999'
+            }
+          },
+          axisTick: {
+            show: false
+          }
+        },
+        yAxis: {
+          data: 'value',
+          splitLine: {
+            show: false
+          },
+          axisLine: {
+            style: {
+              stroke: '#999'
+            }
+          },
+          axisLabel: {
+            style: {
+              fill: '#999'
+            },
+          },
+          axisTick: {
+            show: false
+          },
+        },
+        series: [
+          {
+            data: [
+              99.56, 99.66, 99.84, 99.22, 99.11, 99.45,
+              99.44, 99.81, 99.84, 99.32, 99.14, 99.45,
+              99.44, 99.81, 99.84, 99.32, 99.14, 99.45,
+              99.44, 99.81, 99.84, 99.32, 99.14, 99.45,
+              99.15, 99.45, 99.64, 99.89
+            ],
+            type: 'line',
+            name: '近30天登录',
+            smooth: true,
+            lineArea: {
+              show: true,
+              gradient: ['rgba(55, 162, 218, 0.6)', 'rgba(55, 162, 218, 0)']
+            },
+            linePoint: {
+              radius: 4,
+              style: {
+                fill: '#00db95'
+              }
+            }
+          }
+        ]
+      }
+    }
+  },
+  watch: {
+    curObj () {
+      let signupArr = this.curObj.day_30_signup || []
+      signupArr = signupArr.reverse()
+      let xAxisData = []
+      let seriesData = []
+      signupArr.forEach((item, index) => {
+        if (index < 16) {
+          xAxisData.push(item.format_time)
+          seriesData.push(item.signup)
+        }
+      })
+      let option = JSON.parse(JSON.stringify(this.option))
+      option.xAxis.data = [...xAxisData]
+      option.series[0].data = [...seriesData]
+      console.log(option)
+      this.option = {...option}
+    }
+  },
+  created () {
+    // console.log(this.curObj)
+  }
+}
+</script>
+
+<style lang="scss">
+.top-middle-cmp {
+  position: relative;
+  padding: 0 50px;
+  box-sizing: border-box;
+
+  .chart-name {
+    position: absolute;
+    right: 70px;
+    text-align: right;
+    font-size: 20px;
+    top: 10px;
+  }
+}
+</style>

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

@@ -36,6 +36,7 @@
         </div>
       </dv-border-box-8>
     </div>
+    <echart-line :curObj="curData"/>
     <div :class="configClickTotal.data.length > 0 ? 'scoped-count' : 'scoped-count t2'">
       <dv-border-box-10>
         <div class="sc-row">
@@ -110,8 +111,12 @@
 <script>
 import { comGetTime } from '@/utils'
 import { mapGetters } from 'vuex'
+import EchartLine from './components/EchartLine'
 export default {
   name: 'Dashboard',
+  components: {
+    EchartLine,
+  },
   data () {
     return {
       config1: {
@@ -189,7 +194,8 @@ export default {
       numObj: {},
       isFull: false,
       timer: null,
-      curTime: ''
+      curTime: '',
+      curData: {},
     }
   },
   created () {
@@ -239,6 +245,7 @@ export default {
       else if (hour < 19){this.timeTips = '傍晚好!'}
       else if (hour < 22){this.timeTips = '晚上好!'}
       this.$api.other.admindexrank().then(res => {
+        this.curData = res || {}
         this.numObj = res.total_data || {}
         this.formatData2(isAdmin === 1 ? this.numObj.wechat_user_num : this.numObj.wechat_user_num + 10000, 'config1')
         this.formatData2(this.numObj.estate_num, 'config2')

+ 1 - 1
src/views/user/adminUapi.vue

@@ -45,7 +45,7 @@ export default {
       const arr = [...this.tableData]
       arr.map(item => {
         const cData = item.data ? JSON.parse(item.data) : {}
-        // console.log(cData)
+        console.log(cData)
       })
       return arr
     }

+ 3 - 0
src/views/user/components/searchForm/AdminUapi.vue

@@ -17,6 +17,8 @@ export default {
     return {
       searchData: [
         { label: '昵称', key: 'username' },
+        { label: '接口', key: 'url' },
+        { label: 'data', key: 'data' },
       ]
     }
   },
@@ -24,6 +26,7 @@ export default {
     searchHandle() {
       const oldform = this.$refs.ruleForm.baseForm
       const newForm = { ...oldform }
+      newForm.data = encodeURI(newForm.data)
       this.$emit('change', newForm)
     }
   }

Некоторые файлы не были показаны из-за большого количества измененных файлов