소스 검색

add:前端页面开发

wqb2017 5 년 전
부모
커밋
9a9729cb68
50개의 변경된 파일582개의 추가작업 그리고 57개의 파일을 삭제
  1. 1 1
      .gitignore
  2. 0 0
      dist/css/app.bbbb2b3f.css
  3. 1 0
      dist/css/chunk-180cf130.7405f302.css
  4. 1 0
      dist/css/chunk-2213c25e.ef8d5975.css
  5. 0 0
      dist/css/chunk-321c6a7f.38e8dd38.css
  6. 0 0
      dist/css/chunk-33513e12.0c6967cb.css
  7. 0 0
      dist/css/chunk-3bbcaf90.42e06d29.css
  8. 0 0
      dist/css/chunk-5db3f4ae.76847faf.css
  9. 0 0
      dist/css/chunk-vendors.f3ab390f.css
  10. BIN
      dist/favicon.ico
  11. BIN
      dist/fonts/element-icons.535877f5.woff
  12. BIN
      dist/fonts/element-icons.732389de.ttf
  13. BIN
      dist/img/dbl@3x.6e85983f.png
  14. BIN
      dist/img/logo.7a1d9510.jpg
  15. 1 0
      dist/index.html
  16. 0 0
      dist/js/app.8b28b2eb.js
  17. 0 0
      dist/js/app.8b28b2eb.js.map
  18. 2 0
      dist/js/chunk-180cf130.8ed7c17f.js
  19. 0 0
      dist/js/chunk-180cf130.8ed7c17f.js.map
  20. 2 0
      dist/js/chunk-2213c25e.455fa7be.js
  21. 0 0
      dist/js/chunk-2213c25e.455fa7be.js.map
  22. 0 0
      dist/js/chunk-321c6a7f.da57c74d.js
  23. 0 0
      dist/js/chunk-321c6a7f.da57c74d.js.map
  24. 0 0
      dist/js/chunk-33513e12.e4ea7d3c.js
  25. 0 0
      dist/js/chunk-33513e12.e4ea7d3c.js.map
  26. 0 0
      dist/js/chunk-3bbcaf90.03ad5f40.js
  27. 0 0
      dist/js/chunk-3bbcaf90.03ad5f40.js.map
  28. 2 0
      dist/js/chunk-5db3f4ae.a80fa379.js
  29. 0 0
      dist/js/chunk-5db3f4ae.a80fa379.js.map
  30. 0 0
      dist/js/chunk-vendors.5550c456.js
  31. 0 0
      dist/js/chunk-vendors.5550c456.js.map
  32. 1 0
      package.json
  33. 59 0
      src/components/tag/index.vue
  34. 40 0
      src/components/title/index.vue
  35. BIN
      src/views/index/components/communication/images/logo@2x.png
  36. BIN
      src/views/index/components/communication/images/logo@3x.png
  37. 56 0
      src/views/index/components/communication/index.scss
  38. 178 0
      src/views/index/components/communication/index.vue
  39. 0 18
      src/views/index/components/entrance-guard/index.scss
  40. 14 4
      src/views/index/components/entrance-guard/index.vue
  41. 0 18
      src/views/index/components/parking/index.scss
  42. 15 4
      src/views/index/components/parking/index.vue
  43. BIN
      src/views/index/components/repair/images/logo@2x.png
  44. BIN
      src/views/index/components/repair/images/logo@3x.png
  45. 51 0
      src/views/index/components/repair/index.scss
  46. 125 0
      src/views/index/components/repair/index.vue
  47. 1 2
      src/views/index/components/statistical/index.vue
  48. 6 7
      src/views/index/index.scss
  49. 14 3
      src/views/index/index.vue
  50. 12 0
      yarn.lock

+ 1 - 1
.gitignore

@@ -1,6 +1,5 @@
 .DS_Store
 node_modules
-/dist
 
 # local env files
 .env.local
@@ -10,6 +9,7 @@ node_modules
 npm-debug.log*
 yarn-debug.log*
 yarn-error.log*
+yarn.lock
 
 # Editor directories and files
 .idea

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/css/app.bbbb2b3f.css


+ 1 - 0
dist/css/chunk-180cf130.7405f302.css

@@ -0,0 +1 @@
+.not-found[data-v-426fc778]{font-size:32px;font-weight:700;text-align:center;padding:200px 0}

+ 1 - 0
dist/css/chunk-2213c25e.ef8d5975.css

@@ -0,0 +1 @@
+.title[data-v-f622c548]{background:url(../img/dbl@3x.6e85983f.png) no-repeat;background-size:100% 100%;height:5.55556vh;position:relative;text-align:center;color:#39d6fe;font-size:1.2963vh}.title .lf[data-v-f622c548]{position:absolute;left:8.02083vw;top:.92593vh}.title .cent[data-v-f622c548]{font-size:2.96296vh;font-weight:700;padding-top:1.2037vh}.title .lr[data-v-f622c548]{position:absolute;right:3.64583vw;top:.92593vh}.title .lr .time[data-v-f622c548]{font-size:1.66667vh;font-weight:700;padding-right:1.5625vw}.title .lr .date[data-v-f622c548]{padding-right:.52083vw}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/css/chunk-321c6a7f.38e8dd38.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/css/chunk-33513e12.0c6967cb.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/css/chunk-3bbcaf90.42e06d29.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/css/chunk-5db3f4ae.76847faf.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/css/chunk-vendors.f3ab390f.css


BIN
dist/favicon.ico


BIN
dist/fonts/element-icons.535877f5.woff


BIN
dist/fonts/element-icons.732389de.ttf


BIN
dist/img/dbl@3x.6e85983f.png


BIN
dist/img/logo.7a1d9510.jpg


+ 1 - 0
dist/index.html

@@ -0,0 +1 @@
+<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=/favicon.ico><title>绘享云</title><link href=/css/chunk-180cf130.7405f302.css rel=prefetch><link href=/css/chunk-2213c25e.ef8d5975.css rel=prefetch><link href=/css/chunk-321c6a7f.38e8dd38.css rel=prefetch><link href=/css/chunk-33513e12.0c6967cb.css rel=prefetch><link href=/css/chunk-3bbcaf90.42e06d29.css rel=prefetch><link href=/css/chunk-5db3f4ae.76847faf.css rel=prefetch><link href=/js/chunk-180cf130.8ed7c17f.js rel=prefetch><link href=/js/chunk-2213c25e.455fa7be.js rel=prefetch><link href=/js/chunk-321c6a7f.da57c74d.js rel=prefetch><link href=/js/chunk-33513e12.e4ea7d3c.js rel=prefetch><link href=/js/chunk-3bbcaf90.03ad5f40.js rel=prefetch><link href=/js/chunk-5db3f4ae.a80fa379.js rel=prefetch><link href=/css/app.bbbb2b3f.css rel=preload as=style><link href=/css/chunk-vendors.f3ab390f.css rel=preload as=style><link href=/js/app.8b28b2eb.js rel=preload as=script><link href=/js/chunk-vendors.5550c456.js rel=preload as=script><link href=/css/chunk-vendors.f3ab390f.css rel=stylesheet><link href=/css/app.bbbb2b3f.css rel=stylesheet></head><body><noscript><strong>We're sorry but saas-datascreen doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=/js/chunk-vendors.5550c456.js></script><script src=/js/app.8b28b2eb.js></script></body></html>

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/js/app.8b28b2eb.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/js/app.8b28b2eb.js.map


+ 2 - 0
dist/js/chunk-180cf130.8ed7c17f.js

@@ -0,0 +1,2 @@
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-180cf130"],{"2a36":function(n,t,c){"use strict";var u=c("66cf"),a=c.n(u);a.a},"66cf":function(n,t,c){},"9dcb":function(n,t,c){"use strict";c.r(t);var u=function(){var n=this,t=n.$createElement,c=n._self._c||t;return c("div",{staticClass:"not-found"},[n._v("\n  404 not-found\n")])},a=[],e=(c("2a36"),c("2877")),o={},s=Object(e["a"])(o,u,a,!1,null,"426fc778",null);t["default"]=s.exports}}]);
+//# sourceMappingURL=chunk-180cf130.8ed7c17f.js.map

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/js/chunk-180cf130.8ed7c17f.js.map


+ 2 - 0
dist/js/chunk-2213c25e.455fa7be.js

@@ -0,0 +1,2 @@
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2213c25e"],{a05f:function(t,s,a){"use strict";var e=a("d6e3"),n=a.n(e);n.a},d6e3:function(t,s,a){},fd7d:function(t,s,a){"use strict";a.r(s);var e=function(){var t=this,s=t.$createElement;t._self._c;return t._m(0)},n=[function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"title"},[a("div",{staticClass:"lf"},[t._v("让物业管理更简单")]),a("div",{staticClass:"cent"},[t._v("绘享云")]),a("div",{staticClass:"lr"},[a("span",{staticClass:"time"},[t._v("09:35:26")]),a("span",{staticClass:"date"},[t._v("2018/11/04")]),a("span",{staticClass:"day"},[t._v("星期一")])])])}],c=(a("a05f"),a("2877")),i={},l=Object(c["a"])(i,e,n,!1,null,"f622c548",null);s["default"]=l.exports}}]);
+//# sourceMappingURL=chunk-2213c25e.455fa7be.js.map

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/js/chunk-2213c25e.455fa7be.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/js/chunk-321c6a7f.da57c74d.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/js/chunk-321c6a7f.da57c74d.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/js/chunk-33513e12.e4ea7d3c.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/js/chunk-33513e12.e4ea7d3c.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/js/chunk-3bbcaf90.03ad5f40.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/js/chunk-3bbcaf90.03ad5f40.js.map


+ 2 - 0
dist/js/chunk-5db3f4ae.a80fa379.js

@@ -0,0 +1,2 @@
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-5db3f4ae"],{"03fe":function(t,a,e){"use strict";var l=e("a107"),s=e.n(l);s.a},"0b58":function(t,a,e){"use strict";e.r(a);var l=function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("div",{staticClass:"statistical"},t._l(t.list,(function(a,l){return e("TipsCardCom",{key:l,staticClass:"item"},[e("h3",{staticClass:"statistical-label"},[t._v(t._s(a.label))]),e("p",{staticClass:"statistical-txt"},[t._v(t._s(a.value))])])})),1)},s=[],n=function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("div",{staticClass:"tips-card"},[t._t("default")],2)},i=[],c=(e("03fe"),e("2877")),u={},r=Object(c["a"])(u,n,i,!1,null,"57e2728a",null),o=r.exports,f={data:function(){return{list:[{label:"物业面积(m^2)",value:"5,000,000,234"},{label:"物业项目(个)",value:"1,000,234"},{label:"房屋(套)",value:"600,046"},{label:"住户(人)",value:"1,900,146"},{label:"车辆(辆)",value:"5,000,000,234"}]}},components:{TipsCardCom:o}},v=f,b=(e("4c4a"),Object(c["a"])(v,l,s,!1,null,"709df360",null));a["default"]=b.exports},"4c4a":function(t,a,e){"use strict";var l=e("525e"),s=e.n(l);s.a},"525e":function(t,a,e){},a107:function(t,a,e){}}]);
+//# sourceMappingURL=chunk-5db3f4ae.a80fa379.js.map

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/js/chunk-5db3f4ae.a80fa379.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/js/chunk-vendors.5550c456.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/js/chunk-vendors.5550c456.js.map


+ 1 - 0
package.json

@@ -10,6 +10,7 @@
   "dependencies": {
     "babel-polyfill": "^6.26.0",
     "core-js": "^2.6.5",
+    "echarts": "^4.3.0",
     "element-ui": "^2.12.0",
     "reset.css": "^2.0.2",
     "vue": "^2.6.10",

+ 59 - 0
src/components/tag/index.vue

@@ -0,0 +1,59 @@
+<!--
+ * @Author: WangQiBiao
+ * @Date: 2019-09-25 17:20:35
+ * @LastEditors: WangQiBiao
+ * @LastEditTime: 2019-09-25 17:50:03
+ * @Description: tag
+ -->
+<template>
+  <span :class="['tag', type]">
+    <slot></slot>
+  </span>
+</template>
+<script>
+export default {
+  props: {
+    type: {
+      default () {
+        return 'default'
+      }
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+@import '@/assets/css/function';
+.tag{
+  padding: halfH(2) halfW(4);
+  border-radius:halfH(2);
+  font-size: halfH(12);
+  margin-right: halfW(8);
+  color: #fff;
+  background:#333;
+  // 默认|时间
+  &.default,
+  &.time{
+    background:#4F1FD9;
+  }
+  // 房屋
+  &.house{
+    background:#09A4CB;
+  }
+  // 建议
+  &.advice{
+    background:#078AE8;
+  }
+  // 表扬
+  &.praise{
+    background:#27C553;
+  }
+  // 投诉
+  &.complaints{
+    background:#EC5D5D;
+  }
+  // 咨询
+  &.consulting{
+    background:#00B6C6;
+  }
+}
+</style>

+ 40 - 0
src/components/title/index.vue

@@ -0,0 +1,40 @@
+<!--
+ * @Author: WangQiBiao
+ * @Date: 2019-09-25 14:16:20
+ * @LastEditors: WangQiBiao
+ * @LastEditTime: 2019-09-25 18:09:37
+ * @Description:
+ -->
+<template>
+  <h3 class="title">
+    <slot></slot>
+    <div v-if="isBorder" class="line"></div>
+  </h3>
+</template>
+<script>
+export default {
+  props: {
+    isBorder: {
+      default () {
+        return false
+      }
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import '@/assets/css/function';
+.title{
+  text-align: center;
+  color: #39D6FE;
+  font-size:halfH(22);
+  font-weight:bold;
+  padding-top: halfH(22);
+  .line{
+    height: 1px;
+    background: #0748A2;
+    margin: halfH(15);
+  }
+}
+</style>

BIN
src/views/index/components/communication/images/logo@2x.png


BIN
src/views/index/components/communication/images/logo@3x.png


+ 56 - 0
src/views/index/components/communication/index.scss

@@ -0,0 +1,56 @@
+@import '@/assets/css/function';
+
+.communication{
+  background: url('./images/logo@3x.png') no-repeat;
+  background-size: 100% 100%;
+  width: halfW(356);
+  height: halfH(510);
+  color: #fff;
+  .map{
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    .map-item{
+      width: halfW(120);
+      height: halfH(120);
+      &.proportion{
+        width: halfW(180);
+        height: halfH(180);
+        padding-right: halfH(20);
+      }
+    }
+  }
+  .linst-line{
+    height: 1px;
+    background: #0748A2;
+    margin: 0 halfH(20);
+  }
+  .list{
+    padding: halfH(12) halfH(20) 0;
+    overflow-y: scroll;
+    height: halfH(210);
+
+    // border-top: 1px solid #0748A2;
+    .list-item{
+      display: flex;
+      align-items: center;
+      padding-bottom: halfH(12);
+      animation: bubble 20s infinite;
+      .list-item-txt{
+        font-size: halfH(14);
+      }
+      .list-item-lr{
+        flex: 1;
+        text-align: right;
+      }
+    }
+  }
+  @keyframes bubble {
+    0% {
+      transform: translateY(0);
+    }
+    100% {
+      transform: translateY(-300px);
+    }
+  }
+}

+ 178 - 0
src/views/index/components/communication/index.vue

@@ -0,0 +1,178 @@
+<!--
+ * @Author: WangQiBiao
+ * @Date: 2019-09-25 14:10:08
+ * @LastEditors: WangQiBiao
+ * @LastEditTime: 2019-09-25 18:10:12
+ * @Description: 在线沟通
+ -->
+<template>
+  <div class="communication">
+    <TitleCom :isBorder="true">在线沟通</TitleCom>
+    <div class="map">
+      <div class="map-item proportion" id="proportion"></div>
+      <div class="map-item satisfaction" id="satisfaction"></div>
+    </div>
+    <div class="linst-line"></div>
+    <div class="list">
+      <div class="list-item" v-for="(item, idx) in 20" :key="idx">
+        <div class="list-item-lf">
+          <TagCom type="time">20:12</TagCom>
+          <span class="list-item-txt">刘**通过小区大门</span>
+        </div>
+        <div class="list-item-lr">
+          <TagCom v-if="idx % 2 == 0" type="advice">建议</TagCom>
+          <TagCom v-else type="praise">表扬</TagCom>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import TitleCom from '@/components/title'
+import TagCom from '@/components/tag'
+import echarts from 'echarts'
+export default {
+  components: {
+    TitleCom,
+    TagCom
+  },
+  mounted () {
+    this.circleProportionMap()
+    this.createSatisfactionMap()
+  },
+  methods: {
+    /**
+     * 占比
+     */
+    circleProportionMap () {
+      var myChart = echarts.init(document.getElementById('proportion'))
+      var option = {
+        // backgroundColor: '#2c343c',
+        series: [
+          {
+            type: 'pie',
+            radius: '35%',
+            roseType: 'radius',
+            center: ['50%', '50%'],
+            label: {
+              normal: {
+                formatter: '{b|{b}}\n{c}',
+                fontSize: 10,
+                lineHeight: 14,
+                rich: {
+                  b: {
+                    color: '#fff',
+                    fontSize: 10
+                  }
+                }
+              }
+            },
+            data: [
+              {
+                value: 310,
+                name: '咨询',
+                label: {
+                  show: true,
+                  color: '#00F5FF'
+                },
+                itemStyle: {
+                  color: '#00F5FF'
+                }
+              },
+              {
+                value: 235,
+                name: '投诉',
+                label: {
+                  show: true,
+                  color: '#FB4D43'
+                },
+                itemStyle: {
+                  color: '#FB4D43'
+                }
+              },
+              {
+                value: 274,
+                name: '建议',
+                label: {
+                  show: true,
+                  color: '#0998FF'
+                },
+                itemStyle: {
+                  color: '#0998FF'
+                }
+              },
+              {
+                value: 335,
+                name: '表扬',
+                label: {
+                  show: true,
+                  color: '#07E144'
+                },
+                itemStyle: {
+                  color: '#07E144'
+                }
+              }
+            ]
+          }
+        ]
+      }
+      myChart.setOption(option)
+    },
+    /**
+     * 满意度
+     */
+    createSatisfactionMap () {
+      var myChart = echarts.init(document.getElementById('satisfaction'))
+      var option = {
+        // backgroundColor: '#2c343b',
+        series: [
+          {
+            name: '满意度',
+            hoverAnimation: false,
+            type: 'pie',
+            radius: ['70%', '100%'],
+            label: {
+              normal: {
+                formatter: '{a|{a}}\n{b|{b}}',
+                fontSize: 10,
+                lineHeight: 14,
+                position: 'center',
+                rich: {
+                  a: {
+                    color: '#00CAFF',
+                    fontSize: 10
+                  },
+                  b: {
+                    color: '#00FAA8',
+                    fontSize: 14
+                  }
+                }
+              }
+            },
+            data: [
+              {
+                value: 335,
+                name: '50%',
+                itemStyle: {
+                  color: '#07E144'
+                }
+              },
+              {
+                value: 310,
+                itemStyle: {
+                  color: '#262795'
+                }
+              }
+            ]
+          }
+        ]
+      }
+      myChart.setOption(option)
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import './index.scss';
+</style>

+ 0 - 18
src/views/index/components/entrance-guard/index.scss

@@ -7,13 +7,6 @@
   color: #fff;
   padding: 0 halfH(22);
   overflow: hidden;
-  .title{
-    text-align: center;
-    color: #39D6FE;
-    font-size:22px;
-    font-weight:bold;
-    padding-top: halfH(22);
-  }
   .tips{
     display: flex;
     padding: halfH(20) 0 halfH(12);
@@ -42,23 +35,12 @@
       align-items: center;
       padding-bottom: halfH(12);
       animation: bubble 20s infinite;
-      .list-item-tag{
-        padding: halfH(2) halfW(4);
-        background:#4F1FD9;
-        border-radius:halfH(2);
-        font-size: halfH(12);
-        margin-right: halfW(8);
-      }
       .list-item-txt{
         font-size: halfH(14);
       }
       .list-item-lr{
         flex: 1;
         text-align: right;
-        .list-item-tag{
-          background:#09A4CB;
-          margin-right: 0;
-        }
       }
     }
   }

+ 14 - 4
src/views/index/components/entrance-guard/index.vue

@@ -2,12 +2,12 @@
  * @Author: WangQiBiao
  * @Date: 2019-09-25 10:20:36
  * @LastEditors: WangQiBiao
- * @LastEditTime: 2019-09-25 11:13:52
+ * @LastEditTime: 2019-09-25 17:50:09
  * @Description: 智能门禁
  -->
 <template>
   <div class="entrance-guard">
-    <h3 class="title">智能门禁</h3>
+    <TitleCom>智能门禁</TitleCom>
     <div class="tips">
       <img class="tips-logo" src="./images/zhnmj@3x.png" alt="">
       <div class="tips-desc">
@@ -18,16 +18,26 @@
     <div class="list">
       <div class="list-item" v-for="(item, idx) in 20" :key="idx">
         <div class="list-item-lf">
-          <span class="list-item-tag">20:12</span>
+          <TagCom type="time">20:12</TagCom>
           <span class="list-item-txt">刘**通过小区大门</span>
         </div>
         <div class="list-item-lr">
-          <span class="list-item-tag">蓝岛康城</span>
+          <TagCom type="house">蓝岛康城</TagCom>
         </div>
       </div>
     </div>
   </div>
 </template>
+<script>
+import TitleCom from '@/components/title'
+import TagCom from '@/components/tag'
+export default {
+  components: {
+    TitleCom,
+    TagCom
+  }
+}
+</script>
 <style lang="scss" scoped>
 @import './index.scss';
 </style>

+ 0 - 18
src/views/index/components/parking/index.scss

@@ -7,13 +7,6 @@
   color: #fff;
   padding: 0 halfH(22);
   overflow: hidden;
-  .title{
-    text-align: center;
-    color: #39D6FE;
-    font-size:22px;
-    font-weight:bold;
-    padding-top: halfH(22);
-  }
   .tips{
     display: flex;
     padding: halfH(20) 0 halfH(12);
@@ -42,23 +35,12 @@
       align-items: center;
       padding-bottom: halfH(12);
       animation: bubble 20s infinite;
-      .list-item-tag{
-        padding: halfH(2) halfW(4);
-        background:#4F1FD9;
-        border-radius:halfH(2);
-        font-size: halfH(12);
-        margin-right: halfW(8);
-      }
       .list-item-txt{
         font-size: halfH(14);
       }
       .list-item-lr{
         flex: 1;
         text-align: right;
-        .list-item-tag{
-          background:#09A4CB;
-          margin-right: 0;
-        }
       }
     }
   }

+ 15 - 4
src/views/index/components/parking/index.vue

@@ -2,12 +2,12 @@
  * @Author: WangQiBiao
  * @Date: 2019-09-25 10:20:36
  * @LastEditors: WangQiBiao
- * @LastEditTime: 2019-09-25 11:26:55
+ * @LastEditTime: 2019-09-25 17:51:07
  * @Description: 智能停车
  -->
 <template>
   <div class="parking">
-    <h3 class="title">智能停车</h3>
+    <TitleCom>智能停车</TitleCom>
     <div class="tips">
       <img class="tips-logo" src="./images/zhntch@3x.png" alt="">
       <div class="tips-desc">
@@ -18,16 +18,27 @@
     <div class="list">
       <div class="list-item" v-for="(item, idx) in 20" :key="idx">
         <div class="list-item-lf">
-          <span class="list-item-tag">20:12</span>
+          <TagCom type="time">20:12</TagCom>
           <span class="list-item-txt">刘**通过小区大门</span>
         </div>
         <div class="list-item-lr">
-          <span class="list-item-tag">蓝岛康城</span>
+          <TagCom type="house">蓝岛康城</TagCom>
         </div>
       </div>
     </div>
   </div>
 </template>
+<script>
+import TitleCom from '@/components/title'
+import TagCom from '@/components/tag'
+export default {
+  components: {
+    TitleCom,
+    TagCom
+  }
+}
+</script>
+
 <style lang="scss" scoped>
 @import './index.scss';
 </style>

BIN
src/views/index/components/repair/images/logo@2x.png


BIN
src/views/index/components/repair/images/logo@3x.png


+ 51 - 0
src/views/index/components/repair/index.scss

@@ -0,0 +1,51 @@
+@import '@/assets/css/function';
+
+.repair{
+  background: url('./images/logo@3x.png') no-repeat;
+  background-size: 100% 100%;
+  width: halfW(356);
+  height: halfH(266);
+  color: #fff;
+  .rate{
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    align-items: center;
+    .rate-title{
+      font-size: halfH(16);
+      padding-right: halfH(14);
+    }
+  }
+  .map{
+    display: flex;
+    // justify-content: center;
+    padding-top: halfH(20);
+    padding-left: halfW(30);
+    .map-cnt{
+      width:halfW(102);
+      height: halfH(102);
+    }
+    .map-tips{
+      padding-left: halfW(30);
+      .map-tips-item{
+        display: flex;
+        align-items: center;
+        font-size: halfH(14);
+        color: #fff;
+        padding-bottom: halfH(10);
+        .map-tips-item-w{
+          width:halfW(12);
+          height:halfH(12);
+          background:#F9AF09;
+          border-radius:halfH(2);
+        }
+        .map-tips-item-txt{
+          padding-left: halfW(12);
+        }
+        .map-tips-item-p{
+          padding-left: halfW(12);
+        }
+      }
+    }
+  }
+}

+ 125 - 0
src/views/index/components/repair/index.vue

@@ -0,0 +1,125 @@
+<!--
+ * @Author: WangQiBiao
+ * @Date: 2019-09-25 17:54:01
+ * @LastEditors: WangQiBiao
+ * @LastEditTime: 2019-09-25 18:44:43
+ * @Description: 住户报修
+ -->
+<template>
+  <div class="repair">
+    <TitleCom :isBorder="true">住户报修</TitleCom>
+    <div class="rate">
+      <div class="rate-title">服务评分</div>
+      <div class="rate-cnt">
+        <el-rate
+        v-model="rate"
+        disabled
+        :show-score="true"
+        :allow-half="true"
+        text-color="#fff"
+        disabled-void-color="#ddd"
+        score-template="{value}/5"
+      >
+      </el-rate>
+      </div>
+    </div>
+    <div class="map">
+      <div class="map-cnt" id="map"></div>
+      <div class="map-tips">
+        <div class="map-tips-item">
+          <div class="map-tips-item-w"></div>
+          <div class="map-tips-item-txt">待受理</div>
+          <div class="map-tips-item-p">125</div>
+        </div>
+        <div class="map-tips-item">
+          <div class="map-tips-item-w"></div>
+          <div class="map-tips-item-txt">已受理</div>
+          <div class="map-tips-item-p">1576</div>
+        </div>
+        <div class="map-tips-item">
+          <div class="map-tips-item-w"></div>
+          <div class="map-tips-item-txt">已解决</div>
+          <div class="map-tips-item-p">2376</div>
+        </div>
+        <div class="map-tips-item">
+          <div class="map-tips-item-w"></div>
+          <div class="map-tips-item-txt">已评价</div>
+          <div class="map-tips-item-p">1245</div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import TitleCom from '@/components/title'
+import echarts from 'echarts'
+export default {
+  components: {
+    TitleCom
+  },
+  data () {
+    return {
+      rate: 3
+    }
+  },
+  mounted () {
+    this.createMap()
+  },
+  methods: {
+    /**
+     * 受理环比
+     */
+    createMap () {
+      var myChart = echarts.init(document.getElementById('map'))
+      var option = {
+        // backgroundColor: '#2c343b',
+        series: [
+          {
+            name: '受理环比',
+            hoverAnimation: false,
+            type: 'pie',
+            radius: ['50%', '100%'],
+            label: {
+              show: false
+            },
+            data: [
+              {
+                value: 335,
+                name: '待受理  125',
+                itemStyle: {
+                  color: '#F9AF09'
+                }
+              },
+              {
+                value: 335,
+                name: '已受理  1576',
+                itemStyle: {
+                  color: '#0996FE'
+                }
+              },
+              {
+                value: 335,
+                name: '已解决  2376',
+                itemStyle: {
+                  color: '#00C738'
+                }
+              },
+              {
+                value: 335,
+                name: '已评价  1245',
+                itemStyle: {
+                  color: '#0BDCE5'
+                }
+              }
+            ]
+          }
+        ]
+      }
+      myChart.setOption(option)
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+@import './index.scss';
+</style>

+ 1 - 2
src/views/index/components/statistical/index.vue

@@ -2,7 +2,7 @@
  * @Author: WangQiBiao
  * @Date: 2019-09-24 18:56:59
  * @LastEditors: WangQiBiao
- * @LastEditTime: 2019-09-25 10:13:40
+ * @LastEditTime: 2019-09-25 18:27:53
  * @Description:
  -->
 <template>
@@ -55,7 +55,6 @@ export default {
   @include clearBox;
   display: flex;
   &>div{
-    // margin: 0 halfW(20);
     margin-right: halfW(20);
     &:last-child{
       margin-right: 0;

+ 6 - 7
src/views/index/index.scss

@@ -14,17 +14,16 @@
     .index-body-lf{
       width:halfW(356);
       margin-left: halfW(20);
-      .ibl-item{
-        padding-bottom: halfH(18);
-        &:last-child{
-          padding-bottom: 0;
-        }
-      }
     }
     .index-body-lr{
-      background: gray;
       width:halfW(356);
       margin-right: halfW(20);
     }
+    .ibl-item{
+      padding-bottom: halfH(18);
+      &:last-child{
+        padding-bottom: 0;
+      }
+    }
   }
 }

+ 14 - 3
src/views/index/index.vue

@@ -2,7 +2,7 @@
  * @Author: WangQiBiao
  * @Date: 2019-09-24 18:06:33
  * @LastEditors: WangQiBiao
- * @LastEditTime: 2019-09-25 11:27:08
+ * @LastEditTime: 2019-09-25 17:55:10
  * @Description: 首页
  -->
 <template>
@@ -19,7 +19,14 @@
         </div>
       </div>
       <div class="index-body-cent">index-body-cent</div>
-      <div class="index-body-lr">index-body-lr</div>
+      <div class="index-body-lr">
+        <div class="ibl-item">
+          <CommunicationCom/>
+        </div>
+        <div class="ibl-item">
+          <RepairCom/>
+        </div>
+      </div>
     </div>
   </div>
 </template>
@@ -28,12 +35,16 @@ import StatisticalCom from './components/statistical'
 import TitleCom from './components/title'
 import EntranceGuardCom from './components/entrance-guard'
 import ParkingCom from './components/parking'
+import CommunicationCom from './components/communication'
+import RepairCom from './components/repair'
 export default {
   components: {
     StatisticalCom,
     TitleCom,
     EntranceGuardCom,
-    ParkingCom
+    ParkingCom,
+    CommunicationCom,
+    RepairCom
   },
   data () {
     return {

+ 12 - 0
yarn.lock

@@ -2982,6 +2982,13 @@ ecc-jsbn@~0.1.1:
     jsbn "~0.1.0"
     safer-buffer "^2.1.0"
 
+echarts@^4.3.0:
+  version "4.3.0"
+  resolved "https://registry.npm.taobao.org/echarts/download/echarts-4.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fecharts%2Fdownload%2Fecharts-4.3.0.tgz#3728c2b5e8f277898f7299b4fe1cfc537170abd5"
+  integrity sha1-NyjCtejyd4mPcpm0/hz8U3Fwq9U=
+  dependencies:
+    zrender "4.1.0"
+
 ee-first@1.1.1:
   version "1.1.1"
   resolved "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
@@ -8939,3 +8946,8 @@ yorkie@^2.0.0:
     is-ci "^1.0.10"
     normalize-path "^1.0.0"
     strip-indent "^2.0.0"
+
+zrender@4.1.0:
+  version "4.1.0"
+  resolved "https://registry.npm.taobao.org/zrender/download/zrender-4.1.0.tgz?cache=0&sync_timestamp=1567175890863&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fzrender%2Fdownload%2Fzrender-4.1.0.tgz#866ab97d0744c473d9b314ac5a89e7207c140608"
+  integrity sha1-hmq5fQdExHPZsxSsWonnIHwUBgg=

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.