Procházet zdrojové kódy

框架初步搭建

zhangkunling před 3 roky
rodič
revize
1ea706cd87

+ 71 - 2
package-lock.json

@@ -2280,6 +2280,11 @@
       "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=",
       "dev": true
     },
+    "async-validator": {
+      "version": "3.5.2",
+      "resolved": "https://registry.npmmirror.com/async-validator/download/async-validator-3.5.2.tgz",
+      "integrity": "sha1-aOhmqWgk6LJpT/eoMcGiXETV5QA="
+    },
     "asynckit": {
       "version": "0.4.0",
       "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz",
@@ -2459,6 +2464,11 @@
       "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
       "dev": true
     },
+    "batch-processor": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/batch-processor/download/batch-processor-1.0.0.tgz",
+      "integrity": "sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg="
+    },
     "bcrypt-pbkdf": {
       "version": "1.0.2",
       "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz",
@@ -4449,6 +4459,14 @@
       "integrity": "sha512-xoUPSkjimw51d9ryeH38XUwmR3HmCA+eky4hk0YEgsWeBWGyhb35OCvT3lWAdmvIkcGYCRNOB8LvtO00dJQpOA==",
       "dev": true
     },
+    "element-resize-detector": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmmirror.com/element-resize-detector/download/element-resize-detector-1.2.3.tgz",
+      "integrity": "sha1-UHjZuZOY/kxYn4yN+U/5nl1BP/M=",
+      "requires": {
+        "batch-processor": "1.0.0"
+      }
+    },
     "elliptic": {
       "version": "6.5.4",
       "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.4.tgz",
@@ -6370,6 +6388,11 @@
       "integrity": "sha1-J8dlOb4U2L0Sghmi1zGwkzeQTnk=",
       "dev": true
     },
+    "js-calendar": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npm.taobao.org/js-calendar/download/js-calendar-1.2.3.tgz",
+      "integrity": "sha1-pYOwZEtOaVujlPNE0QPbzHp6fT4="
+    },
     "js-message": {
       "version": "1.0.7",
       "resolved": "https://registry.npm.taobao.org/js-message/download/js-message-1.0.7.tgz",
@@ -6556,8 +6579,7 @@
     "lodash": {
       "version": "4.17.21",
       "resolved": "https://registry.npmmirror.com/lodash/download/lodash-4.17.21.tgz",
-      "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=",
-      "dev": true
+      "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw="
     },
     "lodash.clonedeep": {
       "version": "4.5.0",
@@ -6595,6 +6617,11 @@
       "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
       "dev": true
     },
+    "lodash.throttle": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npm.taobao.org/lodash.throttle/download/lodash.throttle-4.1.1.tgz",
+      "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ="
+    },
     "lodash.transform": {
       "version": "4.6.0",
       "resolved": "https://registry.npm.taobao.org/lodash.transform/download/lodash.transform-4.6.0.tgz",
@@ -6930,6 +6957,11 @@
         "minimist": "^1.2.5"
       }
     },
+    "moment": {
+      "version": "2.29.1",
+      "resolved": "https://registry.nlark.com/moment/download/moment-2.29.1.tgz?cache=0&sync_timestamp=1618910921487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmoment%2Fdownload%2Fmoment-2.29.1.tgz",
+      "integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M="
+    },
     "move-concurrently": {
       "version": "1.0.1",
       "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz",
@@ -7633,6 +7665,11 @@
         "ts-pnp": "^1.1.6"
       }
     },
+    "popper.js": {
+      "version": "1.16.1",
+      "resolved": "https://registry.npm.taobao.org/popper.js/download/popper.js-1.16.1.tgz",
+      "integrity": "sha1-KiI8s9x7YhPXQOQDcr5A3kPmWxs="
+    },
     "portfinder": {
       "version": "1.0.28",
       "resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.28.tgz",
@@ -9916,6 +9953,11 @@
       "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
       "dev": true
     },
+    "tinycolor2": {
+      "version": "1.4.2",
+      "resolved": "https://registry.npm.taobao.org/tinycolor2/download/tinycolor2-1.4.2.tgz",
+      "integrity": "sha1-P2pNEHGtB2dtf6Ry4frECnGdiAM="
+    },
     "to-arraybuffer": {
       "version": "1.0.1",
       "resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz",
@@ -10336,6 +10378,11 @@
       "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=",
       "dev": true
     },
+    "v-click-outside-x": {
+      "version": "3.7.1",
+      "resolved": "https://registry.nlark.com/v-click-outside-x/download/v-click-outside-x-3.7.1.tgz",
+      "integrity": "sha1-qgPqoOQeRMtSB9z4bC2fDdZAhME="
+    },
     "validate-npm-package-license": {
       "version": "3.0.4",
       "resolved": "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz",
@@ -10369,6 +10416,28 @@
         "extsprintf": "^1.2.0"
       }
     },
+    "view-design": {
+      "version": "4.7.0",
+      "resolved": "https://registry.npmmirror.com/view-design/download/view-design-4.7.0.tgz",
+      "integrity": "sha512-WRvVRfsZciN0aJYlz+6b1zxs5G8tLFb4OUKOu+PiN0QyIGmdgWVziEyEmioYtJahQpueWiQpRYGzyxrpz3UkWQ==",
+      "requires": {
+        "async-validator": "^3.3.0",
+        "deepmerge": "^2.2.1",
+        "element-resize-detector": "^1.2.0",
+        "js-calendar": "^1.2.3",
+        "lodash.throttle": "^4.1.1",
+        "popper.js": "^1.14.6",
+        "tinycolor2": "^1.4.1",
+        "v-click-outside-x": "^3.7.1"
+      },
+      "dependencies": {
+        "deepmerge": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-2.2.1.tgz",
+          "integrity": "sha1-XT/yKgHAD2RUBaL7wX0HeKGAEXA="
+        }
+      }
+    },
     "vm-browserify": {
       "version": "1.1.2",
       "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz",

+ 3 - 0
package.json

@@ -9,6 +9,9 @@
   "dependencies": {
     "axios": "^0.24.0",
     "core-js": "^3.6.5",
+    "lodash": "^4.17.21",
+    "moment": "^2.29.1",
+    "view-design": "^4.7.0",
     "vue": "^2.6.11",
     "vue-router": "^3.2.0",
     "vuex": "^3.4.0"

+ 4 - 3
src/App.vue

@@ -5,11 +5,12 @@
 </template>
 
 <style lang="stylus">
+*{
+  margin: 0;
+  padding: 0;
+}
 #app
   font-family Avenir, Helvetica, Arial, sans-serif
   -webkit-font-smoothing antialiased
   -moz-osx-font-smoothing grayscale
-  text-align center
-  color #2c3e50
-  margin-top 60px
 </style>

+ 206 - 0
src/assets/styles/common.css

@@ -0,0 +1,206 @@
+/* 滚动条 webkit内核 start  .ivu-cascader-menu 级联下拉列表里的滚动条 .ivu-select-dropdown 单个下拉列表里的滚动条 .common-modal-tabs .ivu-tabs-tabpane详情对话框里的滚动条*/
+.common-scroll::-webkit-scrollbar,
+.ivu-select-dropdown::-webkit-scrollbar {
+  height: 5px;
+  width: 5px;
+  opacity: 0.6;
+}
+
+.common-scroll::-webkit-scrollbar-track,
+.ivu-select-dropdown::-webkit-scrollbar-track {
+  background-color: rgba(89, 91, 93, 0.3);
+  -webkit-border-radius: 2em;
+  -moz-border-radius: 2em;
+  border-radius: 2em;
+}
+
+.common-scroll::-webkit-scrollbar-thumb,
+.ivu-select-dropdown::-webkit-scrollbar-thumb {
+  opacity: 0.3;
+  background-color: rgba(8, 26, 64, 0.8);
+  -webkit-border-radius: 2em;
+  -moz-border-radius: 2em;
+  border-radius: 2em;
+}
+
+/*IE*/
+.common-scroll,
+.ivu-select-dropdown {
+  scrollbar-arrow-color: rgba(8, 26, 64, 0.8);
+  scrollbar-track-color: rgba(8, 26, 64, 0.8);
+  scrollbar-highlight-color: rgba(8, 26, 64, 0.8);
+  scrollbar-base-color: rgba(8, 26, 64, 0.8);
+}
+
+/* ivu-table-body大多数表格里的滚动条 special-table个别表格里的滚动条*/
+.ivu-table-body::-webkit-scrollbar,
+.special-table .ivu-table-body::-webkit-scrollbar {
+  height: 5px;
+  width: 5px;
+  opacity: 0.6;
+}
+
+/* 定义滚动条的滑块部分 */
+.ivu-table-body::-webkit-scrollbar-track,
+.special-table .ivu-table-body::-webkit-scrollbar-track {
+  background-color: #1f2f69;
+  -webkit-border-radius: 0em;
+  -moz-border-radius: 0em;
+  border-radius: 0em;
+}
+
+/*  */
+.ivu-table-body::-webkit-scrollbar-thumb,
+.special-table .ivu-table-body::-webkit-scrollbar-thumb {
+  opacity: 1;
+  background-color: #435579;
+  -webkit-border-radius: 0em;
+  -moz-border-radius: 0em;
+  border-radius: 0em;
+}
+
+.ivu-table-body,
+.special-table .ivu-table-body {
+  scrollbar-arrow-color: #435579;
+  scrollbar-track-color: #435579;
+  scrollbar-highlight-color: #435579;
+  scrollbar-base-color: #435579;
+}
+
+/* 滚动条 end */
+/* 日期选择
+     .common-datepick .ivu-input {
+        background-color: #18255c;
+        border: 1px solid #058FF9;;
+		    color: #fff;
+     }
+     .common-datepick .ivu-select-dropdown {
+        background-color: #081a40;
+        border: 1px solid #024a8a;
+        border-radius: 2px;
+     }
+     .common-datepick .ivu-date-picker-header {
+      color: #fff;
+      border-bottom: 1px solid #04386e;
+     }
+     .common-datepick .ivu-date-picker-cells span em {
+        color: #fff;
+     }
+     .common-datepick .ivu-date-picker-cells-cell:hover em {
+		background-color: #2d8cf0
+    }
+    .common-datepick .ivu-date-picker-cells-cell-selected em{
+       background-color: transparent
+    }
+    .common-datepick span.ivu-date-picker-cells-cell-disabled,
+	.common-datepick span.ivu-date-picker-cells-cell-disabled:hover {
+		background-color: transparent !important
+    }
+    .common-datepick .ivu-date-picker-cells-cell-range:before {
+      background-color: #0e3458 !important;
+    } */
+/* .ivu-date-picker-cells-month .ivu-date-picker-cells-cell-focused, .ivu-date-picker-cells-year .ivu-date-picker-cells-cell-focused {
+        background-color: #5b8cf3;
+    } */
+/*下拉列表共同样式 相同class名common-select*/
+.common-select {
+  background-color: rgba(0, 0, 0, 0);
+  border: 0px solid red;
+  color: #fff;
+}
+
+.common-select .ivu-select-dropdown {
+  background-color: #1c2c4e;
+  border: 0px solid #014b8c;
+}
+
+.common-select .ivu-select-arrow {
+  color: #0b85e5;
+}
+
+.common-select .ivu-select-dropdown-list li {
+  padding-left: 10px;
+  color: #fff;
+}
+
+.common-select .ivu-select-item-focus {
+  /* background-color: #0b85e5; */
+  background-color: transparent;
+}
+
+.common-select .ivu-select-item-selected,
+.common-select .ivu-select-item-selected:hover {
+  background-color: #0b85e5;
+}
+
+.common-select .ivu-select-item {
+  padding: 7px 16px;
+}
+
+.common-select .ivu-select-item:hover {
+  background-color: #0b85e5;
+  color: #fff;
+}
+
+.common-select .ivu-select-selection {
+  border: 1px solid #058ff9;
+  border-radius: 5px;
+  background-color: #18255c;
+}
+
+.common-select .ivu-select-input {
+  color: #fff;
+}
+
+/*添加draggable 防止遮罩层消失*/
+.ivu-modal-no-mask {
+  /* 防止出现滚动条 */
+  overflow: hidden !important;
+  pointer-events: auto !important;
+  background-color: rgba(55, 55, 55, 0.6);
+}
+
+/* 弹窗垂直居中 */
+.ivu-modal-wrap .ivu-modal {
+  width: auto !important;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  height: 100%;
+  top: 0;
+}
+.ivu-modal .ivu-modal-header {
+  border-bottom: 1px solid #2c3d6d;
+}
+
+.ivu-modal-wrap .ivu-modal-content {
+  width: 100%;
+  background-color: #152143 !important;
+}
+
+/* 搜索框样式 */
+.common-search .ivu-input{
+  border: 1px solid #1D84B9;
+  border-radius: 16px;
+  background-color: transparent;
+  color: #fff;
+}
+.common-search .ivu-input-suffix {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+.common-search .ivu-input-suffix i {
+  color: #1D84B9;
+}
+/* 表格下按钮新增样式 */
+.common-btn-add {
+  background-color: #1B3670;
+  border: 1px solid #2AADF7;
+  border-radius: 4px;
+  font-weight: bold;
+  color: #2AADF7;
+}
+.common-btn-add:hover {
+  background-color: #2AADF7;
+}

+ 9 - 0
src/assets/styles/common.styl

@@ -0,0 +1,9 @@
+$baseFontSizeWidth = 1920
+$baseFontSizeHeight = 1080
+
+px2vw($px){
+  $px / $baseFontSizeWidth * 100vw
+}
+px2vh($px) {
+  $px / $baseFontSizeHeight * 100vh
+}

+ 24 - 0
src/assets/styles/reset.css

@@ -0,0 +1,24 @@
+body,ul,ol,dl,dd,h1,h2,h3,h4,h5,h6,figure,form,fieldset,legend,input,textarea,button,p,blockquote,th,td,pre,xmp{margin:0;padding:0}
+body,input,textarea,button,select,pre,xmp,tt,code,kbd,samp{line-height:1.5;font-family:tahoma,arial,"Hiragino Sans GB",simsun,sans-serif}
+h1,h2,h3,h4,h5,h6,small,big,input,textarea,button,select{font-size:100%}
+h1,h2,h3,h4,h5,h6{font-family:tahoma,arial,"Hiragino Sans GB","微软雅黑",simsun,sans-serif}
+h1,h2,h3,h4,h5,h6,b,strong{font-weight:normal}
+address,cite,dfn,em,i,optgroup,var{font-style:normal}
+table{border-collapse:collapse;border-spacing:0;text-align:left}
+caption,th{text-align:inherit}
+ul,ol,menu{list-style:none}
+fieldset,img{border:0}
+img,object,input,textarea,button,select{vertical-align:middle}
+article,aside,footer,header,section,nav,figure,figcaption,hgroup,details,menu{display:block}
+audio,canvas,video{display:inline-block;*display:inline;*zoom:1}
+blockquote:before,blockquote:after,q:before,q:after{content:"\0020"}
+textarea{overflow:auto;resize:vertical}
+input,textarea,button,select,a{outline:0 none;border: none;}
+button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}
+mark{background-color:transparent}
+a,ins,s,u,del{text-decoration:none}
+sup,sub{vertical-align:baseline}
+html {overflow-x: hidden;font-size: 50px;-webkit-tap-highlight-color: transparent;}
+body {font-family: Arial, "Microsoft Yahei", "Helvetica Neue", Helvetica, sans-serif;color: #333;font-size: .28em;line-height: 1;-webkit-text-size-adjust: none;}
+hr {height: .02rem;margin: .1rem 0;border: medium none;border-top: .02rem solid #cacaca;}
+a {color: #25a4bb;text-decoration: none;}

+ 2 - 2
src/login/Login.vue

@@ -5,7 +5,7 @@
   </div>
 </template>
 <script>
-import axios from "axios"
+import moment from 'moment'
 export default {
   name: "Login",
   components:{
@@ -15,7 +15,7 @@ export default {
     };
   },
   mounted() {
-    console.log(111)
+    console.log(moment().format('dddd'))
      this.$get('metroapi/ridership/roadNetwork/inAndOut')
       .then(res => {
         

+ 5 - 3
src/main.js

@@ -2,8 +2,10 @@ import Vue from 'vue'
 import App from './App.vue'
 import router from './router'
 import store from './store'
-// import axios from 'axios'
-// Vue.prototype.$axios = axios
+import ViewUI from 'view-design';
+import 'view-design/dist/styles/iview.css';
+import './assets/styles/reset.css'
+import './assets/styles/common.css'
 import {get,post,patch,put} from './libs/http'
 //定义全局变量
 Vue.prototype.$post = post
@@ -11,7 +13,7 @@ Vue.prototype.$get = get
 Vue.prototype.$patch = patch
 Vue.prototype.$put = put
 Vue.config.productionTip = false
-
+Vue.use(ViewUI);
 new Vue({
   router,
   store,

+ 7 - 5
src/router/index.js

@@ -1,9 +1,11 @@
 import Vue from 'vue'
 import VueRouter from 'vue-router'
+import utils from '@/libs/utils'
 // import Home from '../views/Home.vue'
 const Login = ()=>import("@/login/Login.vue")
 const MainPage = ()=>import('@/views/MainPage.vue')
 const HomePage = ()=>import('@/views/homecomponents/HomePage.vue')
+const EquipmentMonitor = ()=>import('@/views/homecomponents/EquipmentAnalysis/EquipmentMonitor.vue')
 Vue.use(VueRouter)
 
 const routes = [
@@ -31,11 +33,11 @@ const routes = [
         component: HomePage,
       },
       // 设备分析
-      // {
-      //   path: 'EquipmentMonitor', 
-      //   name: 'EquipmentMonitor', 
-      //   component: EquipmentMonitor
-      // },
+      {
+        path: 'EquipmentMonitor', 
+        name: 'EquipmentMonitor', 
+        component: EquipmentMonitor
+      },
     ]
   },
   { path: '*', redirect: '/' }

+ 24 - 0
src/views/homecomponents/EquipmentAnalysis/EquipmentMonitor.vue

@@ -0,0 +1,24 @@
+<template>
+  <div class="container">
+    侧边栏
+  </div>
+</template>
+<script>
+export default {
+  name: "EquipmentMonitor",
+  components:{
+  },
+  data() {
+    return {
+    };
+  },
+  mounted() {
+  },
+  methods: {
+   
+  }
+};
+</script>
+<style scoped lang="stylus">
+
+</style>