See999 4 年 前
コミット
5315997178
共有8 個のファイルを変更した144 個の追加56 個の削除を含む
  1. 5 0
      package-lock.json
  2. 1 0
      package.json
  3. 5 1
      src/App.vue
  4. 24 24
      src/main.js
  5. 71 27
      src/pages/homeIndex/index.vue
  6. 32 1
      src/pages/main/index.vue
  7. 4 0
      src/styles/newStyle.scss
  8. 2 3
      src/styles/style.scss

+ 5 - 0
package-lock.json ファイルの表示

@@ -8144,6 +8144,11 @@
8144 8144
         "nopt": "~4.0.1"
8145 8145
       }
8146 8146
     },
8147
+    "js-pinyin": {
8148
+      "version": "0.1.9",
8149
+      "resolved": "https://registry.npmjs.org/js-pinyin/-/js-pinyin-0.1.9.tgz",
8150
+      "integrity": "sha1-zfGTNWRd2yDUYw3xBYqsJdJWrf0="
8151
+    },
8147 8152
     "js-tokens": {
8148 8153
       "version": "3.0.2",
8149 8154
       "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",

+ 1 - 0
package.json ファイルの表示

@@ -22,6 +22,7 @@
22 22
     "better-scroll": "^1.15.2",
23 23
     "cropperjs": "^1.4.3",
24 24
     "element-ui": "^2.9.1",
25
+    "js-pinyin": "^0.1.9",
25 26
     "lib-flexible": "^0.3.2",
26 27
     "mint-ui": "^2.2.13",
27 28
     "moment": "^2.24.0",

+ 5 - 1
src/App.vue ファイルの表示

@@ -35,4 +35,8 @@ export default {
35 35
 };
36 36
 </script>
37 37
 
38
-<style></style>
38
+<style lang="scss" scoped>
39
+#app {
40
+  height: 100%;
41
+}
42
+</style>

+ 24 - 24
src/main.js ファイルの表示

@@ -1,27 +1,27 @@
1 1
 // The Vue build version to load with the `import` command
2 2
 // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
3
-import Vue from 'vue'
4
-import App from './App'
5
-import router from './router'
6
-import MintUI from 'mint-ui'
7
-import store from './store'
8
-import 'mint-ui/lib/style.css'
9
-import './assets/styles/iconfont.css'
10
-import './permission'
3
+import Vue from "vue";
4
+import App from "./App";
5
+import router from "./router";
6
+import MintUI from "mint-ui";
7
+import store from "./store";
8
+import "mint-ui/lib/style.css";
9
+import "./assets/styles/iconfont.css";
10
+import "./permission";
11 11
 
12
-import '@/styles/reset.scss'
13
-import '@/styles/variables.scss'
14
-import '@/styles/style.scss'
12
+import "@/styles/reset.scss";
13
+import "@/styles/variables.scss";
14
+// import "@/styles/style.scss";
15 15
 // eslint-disable-next-line import/no-duplicates
16 16
 // import Vant from "vant";
17 17
 // import "vant/lib/index.css";
18 18
 // import "vant/lib/icon/local.css";
19 19
 // import '@/styles/vant-css/index.css'
20
-import '@/styles/media.scss'
21
-import ElementUI from 'element-ui'
22
-import 'element-ui/lib/theme-chalk/index.css'
23
-import pinyin from 'js-pinyin'
24
-import './libs/rem.js'
20
+import "@/styles/media.scss";
21
+import ElementUI from "element-ui";
22
+import "element-ui/lib/theme-chalk/index.css";
23
+import pinyin from "js-pinyin";
24
+// import "./libs/rem.js";
25 25
 import {
26 26
   DropdownMenu,
27 27
   DropdownItem,
@@ -49,7 +49,7 @@ import {
49 49
   IndexBar,
50 50
   IndexAnchor
51 51
   // eslint-disable-next-line no-irregular-whitespace,import/no-duplicates
52
-} from 'vant'
52
+} from "vant";
53 53
 Vue.use(DropdownMenu)
54 54
   .use(DropdownItem)
55 55
   .use(Tab)
@@ -74,7 +74,7 @@ Vue.use(DropdownMenu)
74 74
   .use(Toast)
75 75
   .use(Search)
76 76
   .use(IndexBar)
77
-  .use(IndexAnchor)
77
+  .use(IndexAnchor);
78 78
 // import "@/lib/flexible.js";
79 79
 
80 80
 // main.js
@@ -85,20 +85,20 @@ Vue.use(DropdownMenu)
85 85
 // Vue.use(AlertPlugin)
86 86
 // Vue.use(ToastPlugin)
87 87
 
88
-Vue.use(MintUI)
88
+Vue.use(MintUI);
89 89
 // Vue.use(Vant)
90
-Vue.use(ElementUI)
91
-Vue.config.productionTip = false
90
+Vue.use(ElementUI);
91
+Vue.config.productionTip = false;
92 92
 
93 93
 /* eslint-disable no-new */
94 94
 new Vue({
95
-  el: '#app',
95
+  el: "#app",
96 96
   router,
97 97
   store,
98 98
   components: {
99 99
     App
100 100
   },
101
-  template: '<App/>'
102
-})
101
+  template: "<App/>"
102
+});
103 103
 
104 104
 // eslint-disable-next-line no-undef

+ 71 - 27
src/pages/homeIndex/index.vue ファイルの表示

@@ -8,7 +8,7 @@
8 8
           </van-dropdown-menu>
9 9
         </div>
10 10
         <div class="homeTitleRight">
11
-          <i class="iconfont icon-sousuo search"></i>
11
+          <i class="iconfont icon-sousuo search1"></i>
12 12
           <van-icon class="iconOne" name="comment-o" />
13 13
           <van-icon class="iconOne" name="add-o" />
14 14
         </div>
@@ -20,31 +20,43 @@
20 20
     <div class="noticeBox">
21 21
       <i class="iconfont icon-public-notice notice"></i>
22 22
       <div class="noticeNews">
23
-        <div>今日上机:<span>6&ensp;人</span></div>
24
-        <div>今日透析:<span>6&ensp;人</span></div>
25
-        <div>今日生日:<span>6&ensp;人</span></div>
23
+        <div>
24
+          今日上机:
25
+          <span>6&ensp;人</span>
26
+        </div>
27
+        <div>
28
+          今日透析:
29
+          <span>6&ensp;人</span>
30
+        </div>
31
+        <div>
32
+          今日生日:
33
+          <span>6&ensp;人</span>
34
+        </div>
26 35
       </div>
27 36
     </div>
28 37
     <div class="background1"></div>
29 38
     <div class="management">
30 39
       <div class="managementTitle">
31 40
         <div class="managementName">
32
-          管理控制台<span>(仅管理员可见)</span>
41
+          管理控制台
42
+          <span>(仅管理员可见)</span>
43
+        </div>
44
+        <div class="setting">
45
+          <van-icon name="setting-o" />管理
33 46
         </div>
34
-        <div class="setting"><van-icon name="setting-o" />管理</div>
35 47
       </div>
36 48
       <div class="managementBox">
37 49
         <div class="managementOne">
38
-          <img src="../../assets/images/M1.png" alt="" />员工管理
50
+          <img src="../../assets/images/M1.png" alt />员工管理
39 51
         </div>
40 52
         <div class="managementOne">
41
-          <img src="../../assets/images/M2.png" alt="" />权限管理
53
+          <img src="../../assets/images/M2.png" alt />权限管理
42 54
         </div>
43 55
         <div class="managementOne">
44
-          <img src="../../assets/images/M3.png" alt="" />应用管理
56
+          <img src="../../assets/images/M3.png" alt />应用管理
45 57
         </div>
46 58
         <div class="managementOne">
47
-          <img src="../../assets/images/M4.png" alt="" />机构管理
59
+          <img src="../../assets/images/M4.png" alt />机构管理
48 60
         </div>
49 61
       </div>
50 62
     </div>
@@ -55,52 +67,55 @@
55 67
       </div>
56 68
       <div class="applicationBox">
57 69
         <div class="applicationOne" @click="toPatients">
58
-          <img src="../../assets/images/S1.png" alt="" />患者中心
70
+          <img src="../../assets/images/S1.png" alt />患者中心
59 71
         </div>
60 72
         <div class="applicationOne">
61
-          <img src="../../assets/images/S2.png" alt="" />排班管理
73
+          <img src="../../assets/images/S2.png" alt />排班管理
62 74
         </div>
63 75
         <div class="applicationOne">
64
-          <img src="../../assets/images/S3.png" alt="" />签到称重
76
+          <img src="../../assets/images/S3.png" alt />签到称重
65 77
         </div>
66 78
         <div class="applicationOne">
67
-          <img src="../../assets/images/S4.png" alt="" />透析记录
79
+          <img src="../../assets/images/S4.png" alt />透析记录
68 80
         </div>
69 81
         <div class="applicationOne">
70
-          <img src="../../assets/images/S5.png" alt="" />质控管理
82
+          <img src="../../assets/images/S5.png" alt />质控管理
71 83
         </div>
72 84
         <div class="applicationOne">
73
-          <img src="../../assets/images/S6.png" alt="" />院感管理
85
+          <img src="../../assets/images/S6.png" alt />院感管理
74 86
         </div>
75 87
         <div class="applicationOne">
76
-          <img src="../../assets/images/S7.png" alt="" />血管通路
88
+          <img src="../../assets/images/S7.png" alt />血管通路
77 89
         </div>
78 90
         <div class="applicationOne">
79
-          <img src="../../assets/images/S8.png" alt="" />慢病管理
91
+          <img src="../../assets/images/S8.png" alt />慢病管理
80 92
         </div>
81 93
         <div class="applicationOne">
82
-          <img src="../../assets/images/S9.png" alt="" />SCRM
94
+          <img src="../../assets/images/S9.png" alt />SCRM
83 95
         </div>
84 96
         <div class="applicationOne">
85
-          <img src="../../assets/images/S10.png" alt="" />分销商城
97
+          <img src="../../assets/images/S10.png" alt />分销商城
86 98
         </div>
87 99
         <div class="applicationOne">
88
-          <img src="../../assets/images/S11.png" alt="" />设备管理
100
+          <img src="../../assets/images/S11.png" alt />设备管理
89 101
         </div>
90 102
         <div class="applicationOne">
91
-          <img src="../../assets/images/S12.png" alt="" />库存管理
103
+          <img src="../../assets/images/S12.png" alt />库存管理
92 104
         </div>
93 105
         <div class="applicationOne">
94
-          <img src="../../assets/images/S13.png" alt="" />客服中心
106
+          <img src="../../assets/images/S13.png" alt />客服中心
95 107
         </div>
96
-<!--        <div class="applicationOne">-->
97
-<!--          <img src="../../assets/images/S14.png" alt="" />集成中心-->
98
-<!--        </div>-->
108
+        <!--        <div class="applicationOne">-->
109
+        <!--          <img src="../../assets/images/S14.png" alt="" />集成中心-->
110
+        <!--        </div>-->
99 111
       </div>
100 112
     </div>
101 113
   </div>
102 114
 </template>
103 115
 <script>
116
+// import "../libs/rem.js";
117
+import "../../libs/rem.js";
118
+import "../../styles/newStyle.scss";
104 119
 export default {
105 120
   data() {
106 121
     return {
@@ -116,10 +131,33 @@ export default {
116 131
     toPatients() {
117 132
       this.$router.push({ path: "/patients" });
118 133
     }
134
+  },
135
+  created() {
136
+    const baseSize = 32;
137
+    // 设置 rem 函数
138
+    function setRem() {
139
+      const scale = document.documentElement.clientWidth / 750;
140
+      document.documentElement.style.fontSize =
141
+        baseSize * Math.min(scale, 2) + "px";
142
+      //   // 320 默认大小16px; 320px = 20rem ;每个元素px基础上/16
143
+      //   let htmlWidth =
144
+      //     document.documentElement.clientWidth || document.body.clientWidth;
145
+      //   //得到html的Dom元素
146
+      //   let htmlDom = document.getElementsByTagName("html")[0];
147
+      //   //设置根元素字体大小
148
+      //   htmlDom.style.fontSize = htmlWidth / 23.4375 + "px";
149
+    }
150
+    // 初始化
151
+    setRem();
152
+    // 改变窗口大小时重新设置 rem
153
+    window.onresize = function() {
154
+      setRem();
155
+    };
119 156
   }
120 157
 };
121 158
 </script>
122 159
 
160
+
123 161
 <style lang="scss" scoped>
124 162
 .page_homeIndex {
125 163
   .homeTitle {
@@ -137,6 +175,7 @@ export default {
137 175
     display: flex;
138 176
     justify-content: space-between;
139 177
     align-items: center;
178
+    color: #232323;
140 179
   }
141 180
   /deep/ .van-dropdown-menu__item {
142 181
     justify-content: left;
@@ -147,8 +186,13 @@ export default {
147 186
   .iconOne {
148 187
     font-size: 1.5rem;
149 188
   }
150
-  .search {
189
+  .iconfont {
190
+    clear: both;
191
+  }
192
+
193
+  .search1 {
151 194
     font-size: 1.5rem;
195
+    color: #232323;
152 196
   }
153 197
   .banner {
154 198
     padding: 0 1.125rem;

+ 32 - 1
src/pages/main/index.vue ファイルの表示

@@ -14,6 +14,8 @@
14 14
 </template>
15 15
 
16 16
 <script>
17
+import "@/styles/style.scss";
18
+// import "@/styles/media.scss";
17 19
 import RecordPage from "./RecordPage";
18 20
 import SideBar from "@/pages/layout/SideBar";
19 21
 import { getDialysisScheduals, getWaitingScheduals } from "@/api/dialysis";
@@ -27,7 +29,13 @@ export default {
27 29
       scheduals: [],
28 30
       advice_groups: [],
29 31
       unReadWaitNum: 0,
30
-      unReadDialysisNum: 0
32
+      unReadDialysisNum: 0,
33
+      sqls: [
34
+        window.matchMedia("(max-width:418px)"), //和CSS一样,也要注意顺序!
35
+        window.matchMedia("(max-width:768px)"),
36
+        window.matchMedia("(max-width:992px)"),
37
+        window.matchMedia("(max-width:1200px)")
38
+      ]
31 39
     };
32 40
   },
33 41
   components: {
@@ -35,6 +43,11 @@ export default {
35 43
     SideBar
36 44
   },
37 45
   created() {
46
+    this.mediaMatches();
47
+    for (var i = 0; i < this.sqls.length; i++) {
48
+      sqls[i].addListener(this.mediaMatches);
49
+    }
50
+    // document.documentElement.style.fontSize = 30 + "px";
38 51
     // this.requestScheduals()
39 52
     // this.requestDialysisScheduals()
40 53
   },
@@ -198,6 +211,24 @@ export default {
198 211
       console.log("111111");
199 212
       // this.requestScheduals()
200 213
       // this.requestDialysisScheduals()
214
+    },
215
+    mediaMatches() {
216
+      let sqls = [
217
+        // window.matchMedia("(max-width:418px)"), //和CSS一样,也要注意顺序!
218
+        window.matchMedia("(max-width:767px)"),
219
+        window.matchMedia("(max-width:992px)"),
220
+        window.matchMedia("(max-width:1200px)")
221
+      ];
222
+      if (sqls[0].matches) {
223
+        console.log(">418 & <=768"); // do something...
224
+        document.documentElement.style.fontSize = 30 + "px";
225
+      } else if (sqls[2].matches) {
226
+        console.log(">768 & <=992"); // do something...
227
+      } else if (sqls[3].matches) {
228
+        console.log("> 992 & <=1200"); // do something...
229
+      } else {
230
+        console.log(">1200");
231
+      }
201 232
     }
202 233
   },
203 234
   computed: {

+ 4 - 0
src/styles/newStyle.scss ファイルの表示

@@ -0,0 +1,4 @@
1
+html,
2
+body {
3
+  height: 100%;
4
+}

+ 2 - 3
src/styles/style.scss ファイルの表示

@@ -1,5 +1,6 @@
1 1
 .body {
2 2
   // background: $base-color;
3
+  height: 100%;
3 4
 }
4 5
 
5 6
 html,
@@ -795,7 +796,6 @@ body {
795 796
 .DialogContent,
796 797
 .optionsBox,
797 798
 .el-collapse-item__content {
798
-
799 799
   /* 针对缺省样式 (必须的) */
800 800
   &::-webkit-scrollbar {
801 801
     width: 6px;
@@ -851,7 +851,7 @@ body {
851 851
   font-size: 0.45rem !important;
852 852
 }
853 853
 
854
-.el-radio+.el-radio {
854
+.el-radio + .el-radio {
855 855
   margin-left: 15px !important;
856 856
 
857 857
   @media only screen and (max-width: 812px) {
@@ -935,7 +935,6 @@ body {
935 935
 }
936 936
 
937 937
 .van-field__left-icon {
938
-
939 938
   // @media only screen and (max-width: 812px) {
940 939
   //   // margin-right: 0 !important;
941 940
   //   margin-top: -1px;