XMLWAN 4 år sedan
förälder
incheckning
be3aa862e5

+ 98 - 3
src/api/patient/patient.js Visa fil

@@ -1,8 +1,12 @@
1 1
 import request from '@/utils/request'
2 2
 
3
-export function getBloodDialysisPatient(params) {
3
+export function getBloodDialysisPatient(page, limit) {
4
+  const params = {
5
+    page: page,
6
+    limit: limit
7
+  }
4 8
   return request({
5
-    url: '/api/patient/getbloodDialysisPatient',
9
+    url: 'm/api/patient/getbloodDialysisPatient',
6 10
     method: 'get',
7 11
     params: params
8 12
   })
@@ -10,7 +14,98 @@ export function getBloodDialysisPatient(params) {
10 14
 
11 15
 export function GenerateDialysisNo(params) {
12 16
   return request({
13
-    url: '/m/patients/generatedialysisnotwo',
17
+    url: '/m/api/patients/generatedialysisnotwo',
18
+    method: 'get',
19
+    params: params
20
+  })
21
+}
22
+
23
+export function GetIllnessList(params) {
24
+  return request({
25
+    url: 'm/api/patient/getillnesslist',
26
+    method: 'get',
27
+    params: params
28
+  })
29
+}
30
+
31
+export function GetPatientInfo(phone) {
32
+  const params = {
33
+    phone: phone
34
+  }
35
+  return request({
36
+    url: 'm/api/patient/getpatientinfo',
37
+    method: 'get',
38
+    params: params
39
+  })
40
+}
41
+
42
+export function savePatient(data) {
43
+  console.log('data', data)
44
+  return request({
45
+    url: '/m/api/patient/savepatient',
46
+    method: 'post',
47
+    data: data
48
+  })
49
+}
50
+
51
+export function getPatientDetail(id, params) {
52
+  return request({
53
+    url: '/m/api/patient/getpatientdetail?id=' + id,
54
+    method: 'get',
55
+    params: params
56
+  })
57
+}
58
+
59
+export function getDoctorAdvices(id, type, startime, endtime, limit, page) {
60
+  const params = {
61
+    id: id,
62
+    type: type,
63
+    startime: startime,
64
+    endtime: endtime,
65
+    limit: limit,
66
+    page: page
67
+  }
68
+  return request({
69
+    url: '/m/api/patient/getdoctoradvices',
70
+    method: 'get',
71
+    params: params
72
+  })
73
+}
74
+
75
+export function getDryWeight(id, startime, endtime, limit, page) {
76
+  const params = {
77
+    id: id,
78
+    startime: startime,
79
+    endtime: endtime,
80
+    limit: limit,
81
+    page: page
82
+  }
83
+  return request({
84
+    url: '/m/api/paitent/getdryweight',
85
+    method: 'get',
86
+    params: params
87
+  })
88
+}
89
+
90
+export function getBloodDialysisPatientTwo(page, limit) {
91
+  console.log('数据出发了没有')
92
+  const params = {
93
+    page: page,
94
+    limit: limit
95
+  }
96
+  return request({
97
+    url: 'm/api/patient/getbloodDialysisPatientwo',
98
+    method: 'get',
99
+    params: params
100
+  })
101
+}
102
+
103
+export function ToSearch(name) {
104
+  const params = {
105
+    name: name
106
+  }
107
+  return request({
108
+    url: 'm/api/patient/tosearch',
14 109
     method: 'get',
15 110
     params: params
16 111
   })

+ 1 - 33
src/kya_pages/home/index.vue Visa fil

@@ -68,7 +68,7 @@
68 68
         <span>我的</span>
69 69
       </div>
70 70
     </div>
71
-    
71
+
72 72
   </div> -->
73 73
   <div class="page_home">
74 74
     <div>
@@ -128,38 +128,6 @@ export default {
128 128
       searchVal: ""
129 129
     };
130 130
   }
131
-  // methods: {
132
-  //   getAllOrgName(id) {
133
-  //     getAllOrgName(id).then(response => {
134
-  //       if (response.data.state === 1) {
135
-  //         var org = response.data.data.org;
136
-  //         const arr = [];
137
-  //         org.map(item => {
138
-  //           const obj = {};
139
-  //           obj.text = item.org_name;
140
-  //           obj.value = item.id;
141
-  //           arr.push(obj);
142
-  //         });
143
-  //         this.hospitals = arr;
144
-  //         for (let index = 0; index < this.hospitals.length; index++) {
145
-  //           this.value = this.hospitals[index].value;
146
-  //         }
147
-  //         console.log("this.hospitals是什么", this.hospitals);
148
-  //       }
149
-  //     });
150
-  //   },
151
-  //   patientManagement() {
152
-  //     var id = this.$route.query.id;
153
-  //     this.$router.push("/patientmanagement?id=" + id);
154
-  //   },
155
-  //   ToSearch() {
156
-  //     this.$router.push("/search");
157
-  //   }
158
-  // },
159
-  // created() {
160
-  //   const id = this.$route.query.id;
161
-  //   this.getAllOrgName(id);
162
-  // }
163 131
 };
164 132
 </script>
165 133
 

+ 37 - 24
src/main.js Visa fil

@@ -1,26 +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 "./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'
24 25
 import {
25 26
   DropdownMenu,
26 27
   DropdownItem,
@@ -40,9 +41,15 @@ import {
40 41
   Field,
41 42
   Tabbar,
42 43
   TabbarItem,
43
-  Sticky
44
+  Sticky,
45
+  Checkbox,
46
+  CheckboxGroup,
47
+  Toast,
48
+  Search,
49
+  IndexBar,
50
+  IndexAnchor
44 51
   // eslint-disable-next-line no-irregular-whitespace,import/no-duplicates
45
-} from "vant";
52
+} from 'vant'
46 53
 Vue.use(DropdownMenu)
47 54
   .use(DropdownItem)
48 55
   .use(Tab)
@@ -61,7 +68,13 @@ Vue.use(DropdownMenu)
61 68
   .use(Field)
62 69
   .use(Tabbar)
63 70
   .use(TabbarItem)
64
-  .use(Sticky);
71
+  .use(Sticky)
72
+  .use(Checkbox)
73
+  .use(CheckboxGroup)
74
+  .use(Toast)
75
+  .use(Search)
76
+  .use(IndexBar)
77
+  .use(IndexAnchor)
65 78
 // import "@/lib/flexible.js";
66 79
 
67 80
 // main.js
@@ -72,20 +85,20 @@ Vue.use(DropdownMenu)
72 85
 // Vue.use(AlertPlugin)
73 86
 // Vue.use(ToastPlugin)
74 87
 
75
-Vue.use(MintUI);
88
+Vue.use(MintUI)
76 89
 // Vue.use(Vant)
77
-Vue.use(ElementUI);
78
-Vue.config.productionTip = false;
90
+Vue.use(ElementUI)
91
+Vue.config.productionTip = false
79 92
 
80 93
 /* eslint-disable no-new */
81 94
 new Vue({
82
-  el: "#app",
95
+  el: '#app',
83 96
   router,
84 97
   store,
85 98
   components: {
86 99
     App
87 100
   },
88
-  template: "<App/>"
89
-});
101
+  template: '<App/>'
102
+})
90 103
 
91 104
 // eslint-disable-next-line no-undef

+ 241 - 0
src/pages/doctorAdvice/components/CourseManagement.vue Visa fil

@@ -0,0 +1,241 @@
1
+<template>
2
+  <div class="courseManagement">
3
+    <div>
4
+      <div class="toolBox">
5
+        <div class="toolOne" @click="startShow = true">
6
+          <div style="display: flex;align-items: center;">
7
+            {{ startTime }}
8
+            <van-icon name="arrow-down" />
9
+          </div>
10
+        </div>
11
+        <div class="toolOne" @click="endShow = true">
12
+          <div style="display: flex;align-items: center;">
13
+            {{ endTime }}
14
+            <van-icon name="arrow-down" />
15
+          </div>
16
+        </div>
17
+      </div>
18
+      <div class="adviceBox">
19
+        <van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad">
20
+          <div class="adviceOne" v-for="item in 3" :key="index">
21
+            <div class="adviceTitle">
22
+              <p>2019.09.01</p>
23
+              <van-icon class="ellipsis" name="ellipsis" @click="newShow = true" />
24
+            </div>
25
+            <div class="statOrder">
26
+              <div class="statOrderTitle">
27
+                <span>首次病程记录</span>
28
+              </div>
29
+              <div class="orderContent">
30
+                <p>
31
+                  病历书写基本规范2010》第二十二条规定:“病程记录
32
+                  是指继入院记录之后,对患者病情和诊疗过程所进行的
33
+                  连续性记录。内容包括患病历书写基本规范2010》第二十二条规定:“病程记录
34
+                  是指继入院记录之后,对患者病情和诊疗过程所进行的
35
+                  连续性记录。内容包括患
36
+                </p>
37
+              </div>
38
+              <div class="doctorBox">
39
+                <p>记录医生:钱蛮子</p>
40
+              </div>
41
+            </div>
42
+            <div class="all">全部</div>
43
+          </div>
44
+        </van-list>
45
+      </div>
46
+    </div>
47
+    <div class="add">
48
+      <div style="display: flex;align-items: center;">
49
+        <van-icon class="addIcon" name="add" />新增
50
+      </div>
51
+    </div>
52
+
53
+    <!-- 弹出层 -->
54
+    <div>
55
+      <van-popup v-model="typeShow" position="bottom" :style="{ height: '40%' }">
56
+        <van-picker show-toolbar :columns="columns" @cancel="onCancel" @confirm="onConfirm" />
57
+      </van-popup>
58
+      <van-popup v-model="startShow" position="bottom" :style="{ height: '40%' }">
59
+        <van-datetime-picker
60
+          v-model="currentDate"
61
+          type="date"
62
+          :min-date="minDate"
63
+          :max-date="maxDate"
64
+          @confirm="getstartTime"
65
+          @cancel="startShow = false"
66
+        />
67
+      </van-popup>
68
+      <van-popup v-model="endShow" position="bottom" :style="{ height: '40%' }">
69
+        <van-datetime-picker
70
+          v-model="currentDate"
71
+          type="date"
72
+          :min-date="minDate"
73
+          :max-date="maxDate"
74
+          @confirm="getstartTime2"
75
+          @cancel="endShow = false"
76
+        />
77
+      </van-popup>
78
+      <van-action-sheet v-model="newShow" :actions="actions" cancel-text="取消" @cancel="onCancel" />
79
+    </div>
80
+  </div>
81
+</template>
82
+
83
+<script>
84
+export default {
85
+  data() {
86
+    return {
87
+      newShow: false,
88
+      startShow: false,
89
+      endShow: false,
90
+      startTime: "请选择",
91
+      endTime: "请选择",
92
+      minDate: new Date(1970, 0, 1),
93
+      maxDate: new Date(2025, 10, 1),
94
+      currentDate: new Date(),
95
+      actions: [{ name: "编辑" }, { name: "删除" }]
96
+    };
97
+  },
98
+  methods: {
99
+    onCancel() {
100
+      this.typeShow = false;
101
+    },
102
+    onConfirm(value) {
103
+      this.type = value;
104
+      this.typeShow = false;
105
+    },
106
+    getstartTime(value) {
107
+      console.log(value);
108
+      let year = value.getFullYear();
109
+      let month = value.getMonth() + 1;
110
+      let day = value.getDate();
111
+      if (month >= 1 && month <= 9) {
112
+        month = `0${month}`;
113
+      }
114
+      if (day >= 1 && day <= 9) {
115
+        day = `0${day}`;
116
+      }
117
+
118
+      this.startTime = `${year}-${month}-${day}`;
119
+      this.startShow = false;
120
+    },
121
+    getstartTime2(value) {
122
+      console.log(value);
123
+      let year = value.getFullYear();
124
+      let month = value.getMonth() + 1;
125
+      let day = value.getDate();
126
+      if (month >= 1 && month <= 9) {
127
+        month = `0${month}`;
128
+      }
129
+      if (day >= 1 && day <= 9) {
130
+        day = `0${day}`;
131
+      }
132
+
133
+      this.endTime = `${year}-${month}-${day}`;
134
+      this.endShow = false;
135
+    }
136
+  }
137
+};
138
+</script>
139
+
140
+<style lang="scss" scoped>
141
+.courseManagement {
142
+  height: 100%;
143
+  overflow-y: auto;
144
+  .toolBox {
145
+    display: flex;
146
+    height: 3.125rem;
147
+    align-items: center;
148
+    .toolOne {
149
+      width: 5.625rem;
150
+      height: 1.875rem;
151
+      background: rgba(246, 246, 246, 1);
152
+      border-radius: 5px;
153
+      text-align: center;
154
+      font-size: 0.8125rem;
155
+      color: #8d8d8d;
156
+      display: flex;
157
+      align-items: center;
158
+      justify-content: space-around;
159
+      margin-left: 1.25rem;
160
+    }
161
+  }
162
+  .adviceBox {
163
+    padding: 0 1.125rem;
164
+    margin-bottom: 3.125rem;
165
+  }
166
+  .adviceOne {
167
+    box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1);
168
+    padding-bottom: 0.625rem;
169
+  }
170
+  .adviceTitle {
171
+    padding-top: 0.625rem;
172
+    display: flex;
173
+    align-items: center;
174
+    justify-content: space-between;
175
+    p {
176
+      color: #000000;
177
+      font-weight: bold;
178
+      font-size: 0.9375rem;
179
+    }
180
+    .ellipsis {
181
+      font-size: 1.25rem;
182
+      color: #cccccc;
183
+    }
184
+  }
185
+  .statOrderTitle {
186
+    color: #5b98ff;
187
+    font-size: 0.8125rem;
188
+    font-weight: bold;
189
+    margin: 0.625rem 0;
190
+  }
191
+  .longOrderTitle {
192
+    color: #ff964a;
193
+    font-size: 0.8125rem;
194
+    font-weight: bold;
195
+    margin: 0.625rem 0;
196
+  }
197
+  .orderContent {
198
+    font-size: 0.875rem;
199
+    color: rgba(49, 50, 52, 1);
200
+    p {
201
+      line-height: 1.125rem;
202
+    }
203
+  }
204
+  .doctorBox {
205
+    font-size: 0.75rem;
206
+    color: rgba(152, 152, 152, 1);
207
+    line-height: 1.125rem;
208
+    display: flex;
209
+    align-items: center;
210
+    justify-content: space-between;
211
+    margin-top: 0.625rem;
212
+  }
213
+  .all {
214
+    font-size: 0.8125rem;
215
+    color: #5b98ff;
216
+    margin-top: 0.625rem;
217
+  }
218
+  .add {
219
+    position: fixed;
220
+    bottom: 0;
221
+    left: 0;
222
+    width: 100%;
223
+    height: 2.75rem;
224
+    background: rgba(255, 255, 255, 1);
225
+    box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1);
226
+    display: flex;
227
+    align-items: center;
228
+    justify-content: space-around;
229
+    font-size: 0.9375rem;
230
+    color: #979798;
231
+    .addIcon {
232
+      color: #5b98ff;
233
+      font-size: 1.25rem;
234
+      margin-right: 0.25rem;
235
+    }
236
+  }
237
+}
238
+::-webkit-scrollbar {
239
+  width: 0;
240
+}
241
+</style>

+ 246 - 0
src/pages/doctorAdvice/components/DialysisRecord.vue Visa fil

@@ -0,0 +1,246 @@
1
+<template>
2
+  <div class="DialysisRecord">
3
+    <div>
4
+      <div class="toolBox">
5
+        <div class="toolOne" @click="typeShow = true">
6
+          <div style="display: flex;align-items: center;">
7
+            {{ type }}
8
+            <van-icon name="arrow-down" />
9
+          </div>
10
+        </div>
11
+        <div class="toolOne" @click="startShow = true">
12
+          <div style="display: flex;align-items: center;">
13
+            {{ startTime }}
14
+            <van-icon name="arrow-down" />
15
+          </div>
16
+        </div>
17
+        <div class="toolOne" @click="endShow = true">
18
+          <div style="display: flex;align-items: center;">
19
+            {{ endTime }}
20
+            <van-icon name="arrow-down" />
21
+          </div>
22
+        </div>
23
+      </div>
24
+      <div class="adviceBox">
25
+        <van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad">
26
+          <div class="adviceOne" v-for="item in 3" :key="index">
27
+            <div class="adviceTitle">
28
+              <p>2019.09.01</p>
29
+              <van-icon class="ellipsis" name="ellipsis" @click="newShow = true" />
30
+            </div>
31
+            <div class="orderContent">
32
+              <p>透析模式:HD</p>
33
+              <p>透析时长(h/min):2h30min</p>
34
+              <p>血流量(ml/min):12</p>
35
+              <p>目标超滤量(ml):1200ml</p>
36
+              <p>透析配方:1200ml</p>
37
+              <p>抗凝剂:1200ml</p>
38
+              <p>首剂(mg):1200ml</p>
39
+              <p>维持(mg/h):1200ml</p>
40
+            </div>
41
+            <div class="all">全部</div>
42
+          </div>
43
+        </van-list>
44
+      </div>
45
+    </div>
46
+    <div class="add">
47
+      <div style="display: flex;align-items: center;">
48
+        <van-icon class="addIcon" name="add" />新增
49
+      </div>
50
+    </div>
51
+
52
+    <!-- 弹出层 -->
53
+    <div>
54
+      <van-popup v-model="typeShow" position="bottom" :style="{ height: '40%' }">
55
+        <van-picker show-toolbar :columns="columns" @cancel="onCancel" @confirm="onConfirm" />
56
+      </van-popup>
57
+      <van-popup v-model="startShow" position="bottom" :style="{ height: '40%' }">
58
+        <van-datetime-picker
59
+          v-model="currentDate"
60
+          type="date"
61
+          :min-date="minDate"
62
+          :max-date="maxDate"
63
+          @confirm="getstartTime"
64
+          @cancel="startShow = false"
65
+        />
66
+      </van-popup>
67
+      <van-popup v-model="endShow" position="bottom" :style="{ height: '40%' }">
68
+        <van-datetime-picker
69
+          v-model="currentDate"
70
+          type="date"
71
+          :min-date="minDate"
72
+          :max-date="maxDate"
73
+          @confirm="getstartTime2"
74
+          @cancel="endShow = false"
75
+        />
76
+      </van-popup>
77
+      <van-action-sheet v-model="newShow" :actions="actions" cancel-text="取消" @cancel="onCancel" />
78
+    </div>
79
+  </div>
80
+</template>
81
+
82
+<script>
83
+export default {
84
+  data() {
85
+    return {
86
+      newShow: false,
87
+      typeShow: false,
88
+      startShow: false,
89
+      endShow: false,
90
+      type: "请选择",
91
+      columns: [
92
+        "杭州",
93
+        "宁波",
94
+        "温州",
95
+        "嘉兴",
96
+        "湖州",
97
+        "杭州",
98
+        "宁波",
99
+        "温州",
100
+        "嘉兴",
101
+        "湖州"
102
+      ],
103
+      startTime: "请选择",
104
+      endTime: "请选择",
105
+      minDate: new Date(1970, 0, 1),
106
+      maxDate: new Date(2025, 10, 1),
107
+      currentDate: new Date(),
108
+      actions: [{ name: "编辑" }, { name: "删除" }]
109
+    };
110
+  },
111
+  methods: {
112
+    onCancel() {
113
+      this.typeShow = false;
114
+    },
115
+    onConfirm(value) {
116
+      this.type = value;
117
+      this.typeShow = false;
118
+    },
119
+    getstartTime(value) {
120
+      console.log(value);
121
+      let year = value.getFullYear();
122
+      let month = value.getMonth() + 1;
123
+      let day = value.getDate();
124
+      if (month >= 1 && month <= 9) {
125
+        month = `0${month}`;
126
+      }
127
+      if (day >= 1 && day <= 9) {
128
+        day = `0${day}`;
129
+      }
130
+
131
+      this.startTime = `${year}-${month}-${day}`;
132
+      this.startShow = false;
133
+    },
134
+    getstartTime2(value) {
135
+      console.log(value);
136
+      let year = value.getFullYear();
137
+      let month = value.getMonth() + 1;
138
+      let day = value.getDate();
139
+      if (month >= 1 && month <= 9) {
140
+        month = `0${month}`;
141
+      }
142
+      if (day >= 1 && day <= 9) {
143
+        day = `0${day}`;
144
+      }
145
+
146
+      this.endTime = `${year}-${month}-${day}`;
147
+      this.endShow = false;
148
+    }
149
+  }
150
+};
151
+</script>
152
+
153
+<style lang="scss" scoped>
154
+.DialysisRecord {
155
+  height: 100%;
156
+  overflow-y: auto;
157
+  .toolBox {
158
+    display: flex;
159
+    height: 3.125rem;
160
+    justify-content: space-around;
161
+    align-items: center;
162
+    .toolOne {
163
+      width: 5.625rem;
164
+      height: 1.875rem;
165
+      background: rgba(246, 246, 246, 1);
166
+      border-radius: 5px;
167
+      text-align: center;
168
+      font-size: 0.8125rem;
169
+      color: #8d8d8d;
170
+      display: flex;
171
+      align-items: center;
172
+      justify-content: space-around;
173
+    }
174
+  }
175
+  .adviceBox {
176
+    padding: 0 1.125rem;
177
+    margin-bottom: 3.125rem;
178
+  }
179
+  .adviceOne {
180
+    box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1);
181
+    padding-bottom: 0.625rem;
182
+  }
183
+  .adviceTitle {
184
+    padding-top: 0.625rem;
185
+    display: flex;
186
+    align-items: center;
187
+    justify-content: space-between;
188
+    p {
189
+      color: #000000;
190
+      font-weight: bold;
191
+      font-size: 0.9375rem;
192
+    }
193
+    .ellipsis {
194
+      font-size: 1.25rem;
195
+      color: #cccccc;
196
+    }
197
+  }
198
+  .orderContent {
199
+    font-size: 0.875rem;
200
+    color: rgba(49, 50, 52, 1);
201
+    margin-top: 0.625rem;
202
+    display: flex;
203
+    flex-wrap: wrap;
204
+    p {
205
+      line-height: 1.5rem;
206
+      width: 50%;
207
+    }
208
+  }
209
+  .doctorBox {
210
+    font-size: 0.75rem;
211
+    color: rgba(152, 152, 152, 1);
212
+    line-height: 1.125rem;
213
+    display: flex;
214
+    align-items: center;
215
+    justify-content: space-between;
216
+    margin-top: 0.625rem;
217
+  }
218
+  .all {
219
+    font-size: 0.8125rem;
220
+    color: #5b98ff;
221
+    margin-top: 0.625rem;
222
+  }
223
+  .add {
224
+    position: fixed;
225
+    bottom: 0;
226
+    left: 0;
227
+    width: 100%;
228
+    height: 2.75rem;
229
+    background: rgba(255, 255, 255, 1);
230
+    box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1);
231
+    display: flex;
232
+    align-items: center;
233
+    justify-content: space-around;
234
+    font-size: 0.9375rem;
235
+    color: #979798;
236
+    .addIcon {
237
+      color: #5b98ff;
238
+      font-size: 1.25rem;
239
+      margin-right: 0.25rem;
240
+    }
241
+  }
242
+}
243
+::-webkit-scrollbar {
244
+  width: 0;
245
+}
246
+</style>

+ 346 - 0
src/pages/doctorAdvice/components/DoctorManagement.vue Visa fil

@@ -0,0 +1,346 @@
1
+<template>
2
+  <div class="doctorManagement">
3
+    <div>
4
+      <div class="toolBox">
5
+        <div class="toolOne" @click="typeShow = true">
6
+          <div style="display: flex;align-items: center;">
7
+            {{ type }}
8
+            <van-icon name="arrow-down" />
9
+          </div>
10
+        </div>
11
+        <div class="toolOne" @click="startShow = true">
12
+          <div style="display: flex;align-items: center;">
13
+            {{ startTime }}
14
+            <van-icon name="arrow-down" />
15
+          </div>
16
+        </div>
17
+        <div class="toolOne" @click="endShow = true">
18
+          <div style="display: flex;align-items: center;">
19
+            {{ endTime }}
20
+            <van-icon name="arrow-down" />
21
+          </div>
22
+        </div>
23
+      </div>
24
+      <div class="adviceBox">
25
+        <van-list
26
+          v-model="loading"
27
+          :finished="finished"
28
+          finished-text="没有更多了"
29
+          @load="onLoad"
30
+        >
31
+          <div class="adviceOne" v-for="item in 3" :key="item">
32
+            <div class="adviceTitle">
33
+              <p>2019.09.01</p>
34
+              <van-icon
35
+                class="ellipsis"
36
+                name="ellipsis"
37
+                @click="newShow = true"
38
+              />
39
+            </div>
40
+            <div class="statOrder">
41
+              <div class="statOrderTitle">
42
+                <span>临时医嘱</span>
43
+                <span style="margin-left:1rem">18:00</span>
44
+              </div>
45
+              <div class="orderContent">
46
+                <p>那曲肝素钙注射液 单次用量 3075iu 静脉注射</p>
47
+                <p>▲ 左卡尼汀注射液 单次用量 1g</p>
48
+              </div>
49
+              <div class="doctorBox">
50
+                <p>开嘱医生:钱蛮子</p>
51
+                <p>执行护士:欧巧漫</p>
52
+                <p>核对护士:钱多多</p>
53
+              </div>
54
+            </div>
55
+            <div class="statOrder">
56
+              <div class="longOrderTitle">
57
+                <span>临时医嘱</span>
58
+                <span style="margin-left:1rem">18:00</span>
59
+              </div>
60
+              <div class="orderContent">
61
+                <p>那曲肝素钙注射液 单次用量 3075iu 静脉注射</p>
62
+                <p>▲ 左卡尼汀注射液 单次用量 1g</p>
63
+              </div>
64
+              <div class="doctorBox">
65
+                <p>开嘱医生:效益</p>
66
+                <p>执行护士:欧巧漫</p>
67
+                <p>核对护士:钱多多</p>
68
+              </div>
69
+            </div>
70
+            <div class="all">全部</div>
71
+          </div>
72
+        </van-list>
73
+      </div>
74
+    </div>
75
+    <div class="add">
76
+      <div style="display: flex;align-items: center;">
77
+        <van-icon class="addIcon" name="add" />新增
78
+      </div>
79
+    </div>
80
+
81
+    <!-- 弹出层 -->
82
+    <div>
83
+      <van-popup
84
+        v-model="typeShow"
85
+        position="bottom"
86
+        :style="{ height: '40%' }"
87
+      >
88
+        <van-picker
89
+          show-toolbar
90
+          :columns="columns"
91
+          @cancel="onCancel"
92
+          @confirm="onConfirm"
93
+        />
94
+      </van-popup>
95
+
96
+      <van-popup
97
+        v-model="startShow"
98
+        position="bottom"
99
+        :style="{ height: '40%' }"
100
+      >
101
+        <van-datetime-picker
102
+          v-model="currentDate"
103
+          type="date"
104
+          :min-date="minDate"
105
+          :max-date="maxDate"
106
+          @confirm="getstartTime"
107
+          @cancel="startShow = false"
108
+        />
109
+      </van-popup>
110
+      <van-popup v-model="endShow" position="bottom" :style="{ height: '40%' }">
111
+        <van-datetime-picker
112
+          v-model="currentDate"
113
+          type="date"
114
+          :min-date="minDate"
115
+          :max-date="maxDate"
116
+          @confirm="getstartTime2"
117
+          @cancel="endShow = false"
118
+        />
119
+      </van-popup>
120
+      <van-action-sheet
121
+        v-model="newShow"
122
+        :actions="actions"
123
+        cancel-text="取消"
124
+        @cancel="onCancel"
125
+      />
126
+    </div>
127
+  </div>
128
+</template>
129
+
130
+<script>
131
+import { getDoctorAdvices } from "@/api/patient/patient";
132
+const moment = require("moment");
133
+export default {
134
+  data() {
135
+    return {
136
+      loading: false,
137
+      onLoad: false,
138
+      finished: false,
139
+      newShow: false,
140
+      typeShow: false,
141
+      startShow: false,
142
+      endShow: false,
143
+      type: "全部",
144
+      columns: ["全部", "长期医嘱", "临时医嘱"],
145
+      startTime: moment()
146
+        .subtract(30, "days")
147
+        .format("YYYY-MM-DD"),
148
+      endTime: moment(new Date()).format("YYYY-MM-DD"),
149
+      minDate: new Date(1970, 0, 1),
150
+      maxDate: new Date(2025, 10, 1),
151
+      currentDate: new Date(),
152
+      actions: [{ name: "编辑" }, { name: "删除" }],
153
+      form: {
154
+        type: "",
155
+        limit: 10,
156
+        page: 1
157
+      },
158
+      total: ""
159
+    };
160
+  },
161
+  methods: {
162
+    onCancel() {
163
+      this.typeShow = false;
164
+    },
165
+    onConfirm(value) {
166
+      console.log("value值是什么", value);
167
+      this.type = value;
168
+      this.typeShow = false;
169
+    },
170
+    getstartTime(value) {
171
+      console.log(value);
172
+      let year = value.getFullYear();
173
+      let month = value.getMonth() + 1;
174
+      let day = value.getDate();
175
+      if (month >= 1 && month <= 9) {
176
+        month = `0${month}`;
177
+      }
178
+      if (day >= 1 && day <= 9) {
179
+        day = `0${day}`;
180
+      }
181
+
182
+      this.startTime = `${year}-${month}-${day}`;
183
+      this.startShow = false;
184
+    },
185
+    getstartTime2(value) {
186
+      console.log(value);
187
+      let year = value.getFullYear();
188
+      let month = value.getMonth() + 1;
189
+      let day = value.getDate();
190
+      if (month >= 1 && month <= 9) {
191
+        month = `0${month}`;
192
+      }
193
+      if (day >= 1 && day <= 9) {
194
+        day = `0${day}`;
195
+      }
196
+
197
+      this.endTime = `${year}-${month}-${day}`;
198
+      this.endShow = false;
199
+    },
200
+    changeData(val) {
201
+      console.log("val", val);
202
+    },
203
+    getDoctorAdvices(patientid) {
204
+      console.log("类型是什么", this.type);
205
+      if (this.type === "全部") {
206
+        this.form.type = 0;
207
+      }
208
+      if (this.type === "透析患者") {
209
+        this.form.type = 1;
210
+      }
211
+      if (this.type === "慢病患者") {
212
+        this.form.type = 2;
213
+      }
214
+      getDoctorAdvices(
215
+        patientid,
216
+        this.form.type,
217
+        this.startTime,
218
+        this.endTime,
219
+        this.limit,
220
+        this.page
221
+      ).then(response => {
222
+        if (response.data.state === 1) {
223
+          var advice = response.data.data.advice;
224
+          console.log("医嘱", advice);
225
+          var total = response.data.data.total;
226
+          console.log("总计", total);
227
+        }
228
+      });
229
+    }
230
+  },
231
+  created() {
232
+    var patientid = this.$route.query.patientid;
233
+    console.log("病人id能否获取", patientid);
234
+    this.getDoctorAdvices(patientid);
235
+  },
236
+  watch: {
237
+    $route(to, from) {
238
+      var patientid = this.$route.query.patientid;
239
+      console.log("id发生改变", patientid);
240
+    }
241
+  }
242
+};
243
+</script>
244
+
245
+<style lang="scss" scoped>
246
+.doctorManagement {
247
+  height: 100%;
248
+  overflow-y: auto;
249
+  .toolBox {
250
+    display: flex;
251
+    height: 3.125rem;
252
+    justify-content: space-around;
253
+    align-items: center;
254
+    .toolOne {
255
+      width: 5.625rem;
256
+      height: 1.875rem;
257
+      background: rgba(246, 246, 246, 1);
258
+      border-radius: 5px;
259
+      text-align: center;
260
+      font-size: 0.8125rem;
261
+      color: #8d8d8d;
262
+      display: flex;
263
+      align-items: center;
264
+      justify-content: space-around;
265
+    }
266
+  }
267
+  .adviceBox {
268
+    padding: 0 1.125rem;
269
+    margin-bottom: 3.125rem;
270
+  }
271
+  .adviceOne {
272
+    box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1);
273
+    padding-bottom: 0.625rem;
274
+  }
275
+  .adviceTitle {
276
+    padding-top: 0.625rem;
277
+    display: flex;
278
+    align-items: center;
279
+    justify-content: space-between;
280
+    p {
281
+      color: #000000;
282
+      font-weight: bold;
283
+      font-size: 0.9375rem;
284
+    }
285
+    .ellipsis {
286
+      font-size: 1.25rem;
287
+      color: #cccccc;
288
+    }
289
+  }
290
+  .statOrderTitle {
291
+    color: #5b98ff;
292
+    font-size: 0.8125rem;
293
+    font-weight: bold;
294
+    margin: 0.625rem 0;
295
+  }
296
+  .longOrderTitle {
297
+    color: #ff964a;
298
+    font-size: 0.8125rem;
299
+    font-weight: bold;
300
+    margin: 0.625rem 0;
301
+  }
302
+  .orderContent {
303
+    font-size: 0.875rem;
304
+    color: rgba(49, 50, 52, 1);
305
+    p {
306
+      line-height: 1.125rem;
307
+    }
308
+  }
309
+  .doctorBox {
310
+    font-size: 0.75rem;
311
+    color: rgba(152, 152, 152, 1);
312
+    line-height: 1.125rem;
313
+    display: flex;
314
+    align-items: center;
315
+    justify-content: space-between;
316
+    margin-top: 0.625rem;
317
+  }
318
+  .all {
319
+    font-size: 0.8125rem;
320
+    color: #5b98ff;
321
+    margin-top: 0.625rem;
322
+  }
323
+  .add {
324
+    position: fixed;
325
+    bottom: 0;
326
+    left: 0;
327
+    width: 100%;
328
+    height: 2.75rem;
329
+    background: rgba(255, 255, 255, 1);
330
+    box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1);
331
+    display: flex;
332
+    align-items: center;
333
+    justify-content: space-around;
334
+    font-size: 0.9375rem;
335
+    color: #979798;
336
+    .addIcon {
337
+      color: #5b98ff;
338
+      font-size: 1.25rem;
339
+      margin-right: 0.25rem;
340
+    }
341
+  }
342
+}
343
+::-webkit-scrollbar {
344
+  width: 0;
345
+}
346
+</style>

+ 297 - 0
src/pages/doctorAdvice/components/DryWeight.vue Visa fil

@@ -0,0 +1,297 @@
1
+<template>
2
+  <div class="DryWeight">
3
+    <div>
4
+      <div class="toolBox">
5
+        <div class="toolOne" @click="startShow = true">
6
+          <div style="display: flex;align-items: center;">
7
+            {{ startTime }}
8
+            <van-icon name="arrow-down" />
9
+          </div>
10
+        </div>
11
+        <div class="toolOne" @click="endShow = true">
12
+          <div style="display: flex;align-items: center;">
13
+            {{ endTime }}
14
+            <van-icon name="arrow-down" />
15
+          </div>
16
+        </div>
17
+      </div>
18
+      <div class="adviceBox">
19
+        <van-list
20
+          v-model="loading"
21
+          :finished="finished"
22
+          finished-text="没有更多了"
23
+          @load="onLoad"
24
+        >
25
+          <div class="adviceOne" v-for="item in dryweight" :key="item.id">
26
+            <div class="adviceTitle">
27
+              <p>{{ getTime(item.ctime) }}</p>
28
+              <van-icon
29
+                class="ellipsis"
30
+                name="ellipsis"
31
+                @click="newShow = true"
32
+              />
33
+            </div>
34
+            <div class="statOrder">
35
+              <div class="weightContent">
36
+                <p>干体重:{{ item.dry_weight }}kg</p>
37
+                <p>{{ item.adjusted_value }}kg</p>
38
+              </div>
39
+              <div class="doctorBox">
40
+                <p>记录医生:{{ item.user_name }}</p>
41
+              </div>
42
+              <div class="all">全部</div>
43
+            </div>
44
+          </div>
45
+        </van-list>
46
+      </div>
47
+    </div>
48
+    <div class="add">
49
+      <div style="display: flex;align-items: center;">
50
+        <van-icon class="addIcon" name="add" />新增
51
+      </div>
52
+    </div>
53
+
54
+    <!-- 弹出层 -->
55
+    <div>
56
+      <van-popup
57
+        v-model="typeShow"
58
+        position="bottom"
59
+        :style="{ height: '40%' }"
60
+      >
61
+        <van-picker
62
+          show-toolbar
63
+          :columns="columns"
64
+          @cancel="onCancel"
65
+          @confirm="onConfirm"
66
+        />
67
+      </van-popup>
68
+      <van-popup
69
+        v-model="startShow"
70
+        position="bottom"
71
+        :style="{ height: '40%' }"
72
+      >
73
+        <van-datetime-picker
74
+          v-model="currentDate"
75
+          type="date"
76
+          :min-date="minDate"
77
+          :max-date="maxDate"
78
+          @confirm="getstartTime"
79
+          @cancel="startShow = false"
80
+        />
81
+      </van-popup>
82
+      <van-popup v-model="endShow" position="bottom" :style="{ height: '40%' }">
83
+        <van-datetime-picker
84
+          v-model="currentDate"
85
+          type="date"
86
+          :min-date="minDate"
87
+          :max-date="maxDate"
88
+          @confirm="getstartTime2"
89
+          @cancel="endShow = false"
90
+        />
91
+      </van-popup>
92
+      <van-action-sheet
93
+        v-model="newShow"
94
+        :actions="actions"
95
+        cancel-text="取消"
96
+        @cancel="onCancel"
97
+      />
98
+    </div>
99
+  </div>
100
+</template>
101
+
102
+<script>
103
+import { getDryWeight } from "@/api/patient/patient";
104
+import { uParseTime } from "@/utils/tools";
105
+const moment = require("moment");
106
+export default {
107
+  data() {
108
+    return {
109
+      newShow: false,
110
+      startShow: false,
111
+      endShow: false,
112
+      startTime: moment()
113
+        .subtract(30, "days")
114
+        .format("YYYY-MM-DD"),
115
+      endTime: moment(new Date()).format("YYYY-MM-DD"),
116
+      minDate: new Date(1970, 0, 1),
117
+      maxDate: new Date(2025, 10, 1),
118
+      currentDate: new Date(),
119
+      actions: [{ name: "编辑" }, { name: "删除" }],
120
+      page: 1,
121
+      limit: 10,
122
+      dryweight: []
123
+    };
124
+  },
125
+  methods: {
126
+    onCancel() {
127
+      this.typeShow = false;
128
+    },
129
+    onConfirm(value) {
130
+      this.type = value;
131
+      this.typeShow = false;
132
+    },
133
+    getstartTime(value) {
134
+      console.log(value);
135
+      let year = value.getFullYear();
136
+      let month = value.getMonth() + 1;
137
+      let day = value.getDate();
138
+      if (month >= 1 && month <= 9) {
139
+        month = `0${month}`;
140
+      }
141
+      if (day >= 1 && day <= 9) {
142
+        day = `0${day}`;
143
+      }
144
+
145
+      this.startTime = `${year}-${month}-${day}`;
146
+      this.startShow = false;
147
+    },
148
+    getstartTime2(value) {
149
+      console.log(value);
150
+      let year = value.getFullYear();
151
+      let month = value.getMonth() + 1;
152
+      let day = value.getDate();
153
+      if (month >= 1 && month <= 9) {
154
+        month = `0${month}`;
155
+      }
156
+      if (day >= 1 && day <= 9) {
157
+        day = `0${day}`;
158
+      }
159
+
160
+      this.endTime = `${year}-${month}-${day}`;
161
+      this.endShow = false;
162
+    },
163
+    getDryWeight(patientid) {
164
+      getDryWeight(
165
+        patientid,
166
+        this.startTime,
167
+        this.endTime,
168
+        this.limit,
169
+        this.page
170
+      ).then(response => {
171
+        if (response.data.state === 1) {
172
+          var dryweight = response.data.data.dryweight;
173
+          console.log("dryweight", dryweight);
174
+          var total = response.data.data.total;
175
+          console.log("total", total);
176
+          this.dryweight = dryweight;
177
+        }
178
+      });
179
+    },
180
+    getTime(time) {
181
+      return uParseTime(time, "{y}-{m}-{d} {h}:{i}:{s}");
182
+      // return uParseTime(time, "{y}-{m}-{d}");
183
+    }
184
+  },
185
+  created() {
186
+    var patientid = this.$route.query.patientid;
187
+    console.log("干体重id", patientid);
188
+    this.getDryWeight(patientid);
189
+  }
190
+};
191
+</script>
192
+
193
+<style lang="scss" scoped>
194
+.DryWeight {
195
+  height: 100%;
196
+  overflow-y: auto;
197
+  .toolBox {
198
+    display: flex;
199
+    height: 3.125rem;
200
+    align-items: center;
201
+    .toolOne {
202
+      width: 5.625rem;
203
+      height: 1.875rem;
204
+      background: rgba(246, 246, 246, 1);
205
+      border-radius: 5px;
206
+      text-align: center;
207
+      font-size: 0.8125rem;
208
+      color: #8d8d8d;
209
+      display: flex;
210
+      align-items: center;
211
+      justify-content: space-around;
212
+      margin-left: 1.25rem;
213
+    }
214
+  }
215
+  .adviceBox {
216
+    padding: 0 1.125rem;
217
+    margin-bottom: 3.125rem;
218
+  }
219
+  .adviceOne {
220
+    box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1);
221
+    padding-bottom: 0.625rem;
222
+  }
223
+  .adviceTitle {
224
+    padding-top: 0.625rem;
225
+    display: flex;
226
+    align-items: center;
227
+    justify-content: space-between;
228
+    p {
229
+      color: #000000;
230
+      font-weight: bold;
231
+      font-size: 0.9375rem;
232
+    }
233
+    .ellipsis {
234
+      font-size: 1.25rem;
235
+      color: #cccccc;
236
+    }
237
+  }
238
+  .statOrderTitle {
239
+    color: #5b98ff;
240
+    font-size: 0.8125rem;
241
+    font-weight: bold;
242
+    margin: 0.625rem 0;
243
+  }
244
+  .longOrderTitle {
245
+    color: #ff964a;
246
+    font-size: 0.8125rem;
247
+    font-weight: bold;
248
+    margin: 0.625rem 0;
249
+  }
250
+  .weightContent {
251
+    font-size: 0.875rem;
252
+    color: rgba(49, 50, 52, 1);
253
+    display: flex;
254
+    p {
255
+      line-height: 1.125rem;
256
+      margin-right: 0.625rem;
257
+      margin-top: 0.375rem;
258
+    }
259
+  }
260
+  .doctorBox {
261
+    font-size: 0.75rem;
262
+    color: rgba(152, 152, 152, 1);
263
+    line-height: 1.125rem;
264
+    display: flex;
265
+    align-items: center;
266
+    justify-content: space-between;
267
+    margin-top: 0.625rem;
268
+  }
269
+  .all {
270
+    font-size: 0.8125rem;
271
+    color: #5b98ff;
272
+    margin-top: 0.625rem;
273
+  }
274
+  .add {
275
+    position: fixed;
276
+    bottom: 0;
277
+    left: 0;
278
+    width: 100%;
279
+    height: 2.75rem;
280
+    background: rgba(255, 255, 255, 1);
281
+    box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1);
282
+    display: flex;
283
+    align-items: center;
284
+    justify-content: space-around;
285
+    font-size: 0.9375rem;
286
+    color: #979798;
287
+    .addIcon {
288
+      color: #5b98ff;
289
+      font-size: 1.25rem;
290
+      margin-right: 0.25rem;
291
+    }
292
+  }
293
+}
294
+::-webkit-scrollbar {
295
+  width: 0;
296
+}
297
+</style>

+ 241 - 0
src/pages/doctorAdvice/components/Education.vue Visa fil

@@ -0,0 +1,241 @@
1
+<template>
2
+  <div class="education">
3
+    <div>
4
+      <div class="toolBox">
5
+        <div class="toolOne" @click="startShow = true">
6
+          <div style="display: flex;align-items: center;">
7
+            {{ startTime }}
8
+            <van-icon name="arrow-down" />
9
+          </div>
10
+        </div>
11
+        <div class="toolOne" @click="endShow = true">
12
+          <div style="display: flex;align-items: center;">
13
+            {{ endTime }}
14
+            <van-icon name="arrow-down" />
15
+          </div>
16
+        </div>
17
+      </div>
18
+      <div class="adviceBox">
19
+        <van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad">
20
+          <div class="adviceOne" v-for="item in 3" :key="index">
21
+            <div class="adviceTitle">
22
+              <p>2019.09.01</p>
23
+              <van-icon class="ellipsis" name="ellipsis" @click="newShow = true" />
24
+            </div>
25
+            <div class="statOrder">
26
+              <div class="statOrderTitle">
27
+                <span>宣教标题</span>
28
+              </div>
29
+              <div class="orderContent">
30
+                <p>
31
+                  病历书写基本规范2010》第二十二条规定:“病程记录
32
+                  是指继入院记录之后,对患者病情和诊疗过程所进行的
33
+                  连续性记录。内容包括患病历书写基本规范2010》第二十二条规定:“病程记录
34
+                  是指继入院记录之后,对患者病情和诊疗过程所进行的
35
+                  连续性记录。内容包括患
36
+                </p>
37
+              </div>
38
+              <div class="doctorBox">
39
+                <p>记录医生:钱蛮子</p>
40
+              </div>
41
+            </div>
42
+            <div class="all">全部</div>
43
+          </div>
44
+        </van-list>
45
+      </div>
46
+    </div>
47
+    <div class="add">
48
+      <div style="display: flex;align-items: center;">
49
+        <van-icon class="addIcon" name="add" />新增
50
+      </div>
51
+    </div>
52
+
53
+    <!-- 弹出层 -->
54
+    <div>
55
+      <van-popup v-model="typeShow" position="bottom" :style="{ height: '40%' }">
56
+        <van-picker show-toolbar :columns="columns" @cancel="onCancel" @confirm="onConfirm" />
57
+      </van-popup>
58
+      <van-popup v-model="startShow" position="bottom" :style="{ height: '40%' }">
59
+        <van-datetime-picker
60
+          v-model="currentDate"
61
+          type="date"
62
+          :min-date="minDate"
63
+          :max-date="maxDate"
64
+          @confirm="getstartTime"
65
+          @cancel="startShow = false"
66
+        />
67
+      </van-popup>
68
+      <van-popup v-model="endShow" position="bottom" :style="{ height: '40%' }">
69
+        <van-datetime-picker
70
+          v-model="currentDate"
71
+          type="date"
72
+          :min-date="minDate"
73
+          :max-date="maxDate"
74
+          @confirm="getstartTime2"
75
+          @cancel="endShow = false"
76
+        />
77
+      </van-popup>
78
+      <van-action-sheet v-model="newShow" :actions="actions" cancel-text="取消" @cancel="onCancel" />
79
+    </div>
80
+  </div>
81
+</template>
82
+
83
+<script>
84
+export default {
85
+  data() {
86
+    return {
87
+      newShow: false,
88
+      startShow: false,
89
+      endShow: false,
90
+      startTime: "请选择",
91
+      endTime: "请选择",
92
+      minDate: new Date(1970, 0, 1),
93
+      maxDate: new Date(2025, 10, 1),
94
+      currentDate: new Date(),
95
+      actions: [{ name: "编辑" }, { name: "删除" }]
96
+    };
97
+  },
98
+  methods: {
99
+    onCancel() {
100
+      this.typeShow = false;
101
+    },
102
+    onConfirm(value) {
103
+      this.type = value;
104
+      this.typeShow = false;
105
+    },
106
+    getstartTime(value) {
107
+      console.log(value);
108
+      let year = value.getFullYear();
109
+      let month = value.getMonth() + 1;
110
+      let day = value.getDate();
111
+      if (month >= 1 && month <= 9) {
112
+        month = `0${month}`;
113
+      }
114
+      if (day >= 1 && day <= 9) {
115
+        day = `0${day}`;
116
+      }
117
+
118
+      this.startTime = `${year}-${month}-${day}`;
119
+      this.startShow = false;
120
+    },
121
+    getstartTime2(value) {
122
+      console.log(value);
123
+      let year = value.getFullYear();
124
+      let month = value.getMonth() + 1;
125
+      let day = value.getDate();
126
+      if (month >= 1 && month <= 9) {
127
+        month = `0${month}`;
128
+      }
129
+      if (day >= 1 && day <= 9) {
130
+        day = `0${day}`;
131
+      }
132
+
133
+      this.endTime = `${year}-${month}-${day}`;
134
+      this.endShow = false;
135
+    }
136
+  }
137
+};
138
+</script>
139
+
140
+<style lang="scss" scoped>
141
+.education {
142
+  height: 100%;
143
+  overflow-y: auto;
144
+  .toolBox {
145
+    display: flex;
146
+    height: 3.125rem;
147
+    align-items: center;
148
+    .toolOne {
149
+      width: 5.625rem;
150
+      height: 1.875rem;
151
+      background: rgba(246, 246, 246, 1);
152
+      border-radius: 5px;
153
+      text-align: center;
154
+      font-size: 0.8125rem;
155
+      color: #8d8d8d;
156
+      display: flex;
157
+      align-items: center;
158
+      justify-content: space-around;
159
+      margin-left: 1.25rem;
160
+    }
161
+  }
162
+  .adviceBox {
163
+    padding: 0 1.125rem;
164
+    margin-bottom: 3.125rem;
165
+  }
166
+  .adviceOne {
167
+    box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1);
168
+    padding-bottom: 0.625rem;
169
+  }
170
+  .adviceTitle {
171
+    padding-top: 0.625rem;
172
+    display: flex;
173
+    align-items: center;
174
+    justify-content: space-between;
175
+    p {
176
+      color: #000000;
177
+      font-weight: bold;
178
+      font-size: 0.9375rem;
179
+    }
180
+    .ellipsis {
181
+      font-size: 1.25rem;
182
+      color: #cccccc;
183
+    }
184
+  }
185
+  .statOrderTitle {
186
+    color: #5b98ff;
187
+    font-size: 0.8125rem;
188
+    font-weight: bold;
189
+    margin: 0.625rem 0;
190
+  }
191
+  .longOrderTitle {
192
+    color: #ff964a;
193
+    font-size: 0.8125rem;
194
+    font-weight: bold;
195
+    margin: 0.625rem 0;
196
+  }
197
+  .orderContent {
198
+    font-size: 0.875rem;
199
+    color: rgba(49, 50, 52, 1);
200
+    p {
201
+      line-height: 1.125rem;
202
+    }
203
+  }
204
+  .doctorBox {
205
+    font-size: 0.75rem;
206
+    color: rgba(152, 152, 152, 1);
207
+    line-height: 1.125rem;
208
+    display: flex;
209
+    align-items: center;
210
+    justify-content: space-between;
211
+    margin-top: 0.625rem;
212
+  }
213
+  .all {
214
+    font-size: 0.8125rem;
215
+    color: #5b98ff;
216
+    margin-top: 0.625rem;
217
+  }
218
+  .add {
219
+    position: fixed;
220
+    bottom: 0;
221
+    left: 0;
222
+    width: 100%;
223
+    height: 2.75rem;
224
+    background: rgba(255, 255, 255, 1);
225
+    box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1);
226
+    display: flex;
227
+    align-items: center;
228
+    justify-content: space-around;
229
+    font-size: 0.9375rem;
230
+    color: #979798;
231
+    .addIcon {
232
+      color: #5b98ff;
233
+      font-size: 1.25rem;
234
+      margin-right: 0.25rem;
235
+    }
236
+  }
237
+}
238
+::-webkit-scrollbar {
239
+  width: 0;
240
+}
241
+</style>

+ 239 - 0
src/pages/doctorAdvice/components/Inspection.vue Visa fil

@@ -0,0 +1,239 @@
1
+<template>
2
+  <div class="inspection">
3
+    <div>
4
+      <div class="toolBox">
5
+        <div class="toolOne" @click="typeShow = true">
6
+          <div style="display: flex;align-items: center;">
7
+            {{ type }}
8
+            <van-icon name="arrow-down" />
9
+          </div>
10
+        </div>
11
+        <div class="toolOne" @click="startShow = true">
12
+          <div style="display: flex;align-items: center;">
13
+            {{ startTime }}
14
+            <van-icon name="arrow-down" />
15
+          </div>
16
+        </div>
17
+        <div class="toolOne" @click="endShow = true">
18
+          <div style="display: flex;align-items: center;">
19
+            {{ endTime }}
20
+            <van-icon name="arrow-down" />
21
+          </div>
22
+        </div>
23
+      </div>
24
+      <div class="adviceBox">
25
+        <van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad">
26
+          <div class="adviceOne" v-for="item in 3" :key="index">
27
+            <div class="adviceTitle">
28
+              <p>2019.09.01</p>
29
+              <van-icon class="ellipsis" name="ellipsis" @click="newShow = true" />
30
+            </div>
31
+            <div class="orderContent">
32
+              <p>血常规</p>
33
+              <p>肝功能</p>
34
+              <p>凝血七项</p>
35
+              <p>肾功能</p>
36
+            </div>
37
+            <div class="all">全部</div>
38
+          </div>
39
+        </van-list>
40
+      </div>
41
+    </div>
42
+    <div class="add">
43
+      <div style="display: flex;align-items: center;">
44
+        <van-icon class="addIcon" name="add" />新增
45
+      </div>
46
+    </div>
47
+
48
+    <!-- 弹出层 -->
49
+    <div>
50
+      <van-popup v-model="typeShow" position="bottom" :style="{ height: '40%' }">
51
+        <van-picker show-toolbar :columns="columns" @cancel="onCancel" @confirm="onConfirm" />
52
+      </van-popup>
53
+      <van-popup v-model="startShow" position="bottom" :style="{ height: '40%' }">
54
+        <van-datetime-picker
55
+          v-model="currentDate"
56
+          type="date"
57
+          :min-date="minDate"
58
+          :max-date="maxDate"
59
+          @confirm="getstartTime"
60
+          @cancel="startShow = false"
61
+        />
62
+      </van-popup>
63
+      <van-popup v-model="endShow" position="bottom" :style="{ height: '40%' }">
64
+        <van-datetime-picker
65
+          v-model="currentDate"
66
+          type="date"
67
+          :min-date="minDate"
68
+          :max-date="maxDate"
69
+          @confirm="getstartTime2"
70
+          @cancel="endShow = false"
71
+        />
72
+      </van-popup>
73
+      <van-action-sheet v-model="newShow" :actions="actions" cancel-text="取消" @cancel="onCancel" />
74
+    </div>
75
+  </div>
76
+</template>
77
+
78
+<script>
79
+export default {
80
+  data() {
81
+    return {
82
+      newShow: false,
83
+      typeShow: false,
84
+      startShow: false,
85
+      endShow: false,
86
+      type: "请选择",
87
+      columns: [
88
+        "杭州",
89
+        "宁波",
90
+        "温州",
91
+        "嘉兴",
92
+        "湖州",
93
+        "杭州",
94
+        "宁波",
95
+        "温州",
96
+        "嘉兴",
97
+        "湖州"
98
+      ],
99
+      startTime: "请选择",
100
+      endTime: "请选择",
101
+      minDate: new Date(1970, 0, 1),
102
+      maxDate: new Date(2025, 10, 1),
103
+      currentDate: new Date(),
104
+      actions: [{ name: "编辑" }, { name: "删除" }]
105
+    };
106
+  },
107
+  methods: {
108
+    onCancel() {
109
+      this.typeShow = false;
110
+    },
111
+    onConfirm(value) {
112
+      this.type = value;
113
+      this.typeShow = false;
114
+    },
115
+    getstartTime(value) {
116
+      console.log(value);
117
+      let year = value.getFullYear();
118
+      let month = value.getMonth() + 1;
119
+      let day = value.getDate();
120
+      if (month >= 1 && month <= 9) {
121
+        month = `0${month}`;
122
+      }
123
+      if (day >= 1 && day <= 9) {
124
+        day = `0${day}`;
125
+      }
126
+
127
+      this.startTime = `${year}-${month}-${day}`;
128
+      this.startShow = false;
129
+    },
130
+    getstartTime2(value) {
131
+      console.log(value);
132
+      let year = value.getFullYear();
133
+      let month = value.getMonth() + 1;
134
+      let day = value.getDate();
135
+      if (month >= 1 && month <= 9) {
136
+        month = `0${month}`;
137
+      }
138
+      if (day >= 1 && day <= 9) {
139
+        day = `0${day}`;
140
+      }
141
+
142
+      this.endTime = `${year}-${month}-${day}`;
143
+      this.endShow = false;
144
+    }
145
+  }
146
+};
147
+</script>
148
+
149
+<style lang="scss" scoped>
150
+.inspection {
151
+  height: 100%;
152
+  overflow-y: auto;
153
+  .toolBox {
154
+    display: flex;
155
+    height: 3.125rem;
156
+    justify-content: space-around;
157
+    align-items: center;
158
+    .toolOne {
159
+      width: 5.625rem;
160
+      height: 1.875rem;
161
+      background: rgba(246, 246, 246, 1);
162
+      border-radius: 5px;
163
+      text-align: center;
164
+      font-size: 0.8125rem;
165
+      color: #8d8d8d;
166
+      display: flex;
167
+      align-items: center;
168
+      justify-content: space-around;
169
+    }
170
+  }
171
+  .adviceBox {
172
+    padding: 0 1.125rem;
173
+    margin-bottom: 3.125rem;
174
+  }
175
+  .adviceOne {
176
+    box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1);
177
+    padding-bottom: 0.625rem;
178
+  }
179
+  .adviceTitle {
180
+    padding-top: 0.625rem;
181
+    display: flex;
182
+    align-items: center;
183
+    justify-content: space-between;
184
+    p {
185
+      color: #000000;
186
+      font-weight: bold;
187
+      font-size: 0.9375rem;
188
+    }
189
+    .ellipsis {
190
+      font-size: 1.25rem;
191
+      color: #cccccc;
192
+    }
193
+  }
194
+  .orderContent {
195
+    font-size: 0.875rem;
196
+    color: rgba(49, 50, 52, 1);
197
+    margin-top: 0.625rem;
198
+    p {
199
+      line-height: 1.25rem;
200
+    }
201
+  }
202
+  .doctorBox {
203
+    font-size: 0.75rem;
204
+    color: rgba(152, 152, 152, 1);
205
+    line-height: 1.125rem;
206
+    display: flex;
207
+    align-items: center;
208
+    justify-content: space-between;
209
+    margin-top: 0.625rem;
210
+  }
211
+  .all {
212
+    font-size: 0.8125rem;
213
+    color: #5b98ff;
214
+    margin-top: 0.625rem;
215
+  }
216
+  .add {
217
+    position: fixed;
218
+    bottom: 0;
219
+    left: 0;
220
+    width: 100%;
221
+    height: 2.75rem;
222
+    background: rgba(255, 255, 255, 1);
223
+    box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1);
224
+    display: flex;
225
+    align-items: center;
226
+    justify-content: space-around;
227
+    font-size: 0.9375rem;
228
+    color: #979798;
229
+    .addIcon {
230
+      color: #5b98ff;
231
+      font-size: 1.25rem;
232
+      margin-right: 0.25rem;
233
+    }
234
+  }
235
+}
236
+::-webkit-scrollbar {
237
+  width: 0;
238
+}
239
+</style>

+ 246 - 0
src/pages/doctorAdvice/components/LongDialysis.vue Visa fil

@@ -0,0 +1,246 @@
1
+<template>
2
+  <div class="longDialysis">
3
+    <div>
4
+      <div class="toolBox">
5
+        <div class="toolOne" @click="typeShow = true">
6
+          <div style="display: flex;align-items: center;">
7
+            {{ type }}
8
+            <van-icon name="arrow-down" />
9
+          </div>
10
+        </div>
11
+        <div class="toolOne" @click="startShow = true">
12
+          <div style="display: flex;align-items: center;">
13
+            {{ startTime }}
14
+            <van-icon name="arrow-down" />
15
+          </div>
16
+        </div>
17
+        <div class="toolOne" @click="endShow = true">
18
+          <div style="display: flex;align-items: center;">
19
+            {{ endTime }}
20
+            <van-icon name="arrow-down" />
21
+          </div>
22
+        </div>
23
+      </div>
24
+      <div class="adviceBox">
25
+        <van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad">
26
+          <div class="adviceOne" v-for="item in 3" :key="index">
27
+            <div class="adviceTitle">
28
+              <p>2019.09.01</p>
29
+              <van-icon class="ellipsis" name="ellipsis" @click="newShow = true" />
30
+            </div>
31
+            <div class="orderContent">
32
+              <p>透析模式:HD</p>
33
+              <p>透析时长(h/min):2h30min</p>
34
+              <p>血流量(ml/min):12</p>
35
+              <p>目标超滤量(ml):1200ml</p>
36
+              <p>透析配方:1200ml</p>
37
+              <p>抗凝剂:1200ml</p>
38
+              <p>首剂(mg):1200ml</p>
39
+              <p>维持(mg/h):1200ml</p>
40
+            </div>
41
+            <div class="all">全部</div>
42
+          </div>
43
+        </van-list>
44
+      </div>
45
+    </div>
46
+    <div class="add">
47
+      <div style="display: flex;align-items: center;">
48
+        <van-icon class="addIcon" name="add" />新增
49
+      </div>
50
+    </div>
51
+
52
+    <!-- 弹出层 -->
53
+    <div>
54
+      <van-popup v-model="typeShow" position="bottom" :style="{ height: '40%' }">
55
+        <van-picker show-toolbar :columns="columns" @cancel="onCancel" @confirm="onConfirm" />
56
+      </van-popup>
57
+      <van-popup v-model="startShow" position="bottom" :style="{ height: '40%' }">
58
+        <van-datetime-picker
59
+          v-model="currentDate"
60
+          type="date"
61
+          :min-date="minDate"
62
+          :max-date="maxDate"
63
+          @confirm="getstartTime"
64
+          @cancel="startShow = false"
65
+        />
66
+      </van-popup>
67
+      <van-popup v-model="endShow" position="bottom" :style="{ height: '40%' }">
68
+        <van-datetime-picker
69
+          v-model="currentDate"
70
+          type="date"
71
+          :min-date="minDate"
72
+          :max-date="maxDate"
73
+          @confirm="getstartTime2"
74
+          @cancel="endShow = false"
75
+        />
76
+      </van-popup>
77
+      <van-action-sheet v-model="newShow" :actions="actions" cancel-text="取消" @cancel="onCancel" />
78
+    </div>
79
+  </div>
80
+</template>
81
+
82
+<script>
83
+export default {
84
+  data() {
85
+    return {
86
+      newShow: false,
87
+      typeShow: false,
88
+      startShow: false,
89
+      endShow: false,
90
+      type: "请选择",
91
+      columns: [
92
+        "杭州",
93
+        "宁波",
94
+        "温州",
95
+        "嘉兴",
96
+        "湖州",
97
+        "杭州",
98
+        "宁波",
99
+        "温州",
100
+        "嘉兴",
101
+        "湖州"
102
+      ],
103
+      startTime: "请选择",
104
+      endTime: "请选择",
105
+      minDate: new Date(1970, 0, 1),
106
+      maxDate: new Date(2025, 10, 1),
107
+      currentDate: new Date(),
108
+      actions: [{ name: "编辑" }, { name: "删除" }]
109
+    };
110
+  },
111
+  methods: {
112
+    onCancel() {
113
+      this.typeShow = false;
114
+    },
115
+    onConfirm(value) {
116
+      this.type = value;
117
+      this.typeShow = false;
118
+    },
119
+    getstartTime(value) {
120
+      console.log(value);
121
+      let year = value.getFullYear();
122
+      let month = value.getMonth() + 1;
123
+      let day = value.getDate();
124
+      if (month >= 1 && month <= 9) {
125
+        month = `0${month}`;
126
+      }
127
+      if (day >= 1 && day <= 9) {
128
+        day = `0${day}`;
129
+      }
130
+
131
+      this.startTime = `${year}-${month}-${day}`;
132
+      this.startShow = false;
133
+    },
134
+    getstartTime2(value) {
135
+      console.log(value);
136
+      let year = value.getFullYear();
137
+      let month = value.getMonth() + 1;
138
+      let day = value.getDate();
139
+      if (month >= 1 && month <= 9) {
140
+        month = `0${month}`;
141
+      }
142
+      if (day >= 1 && day <= 9) {
143
+        day = `0${day}`;
144
+      }
145
+
146
+      this.endTime = `${year}-${month}-${day}`;
147
+      this.endShow = false;
148
+    }
149
+  }
150
+};
151
+</script>
152
+
153
+<style lang="scss" scoped>
154
+.longDialysis {
155
+  height: 100%;
156
+  overflow-y: auto;
157
+  .toolBox {
158
+    display: flex;
159
+    height: 3.125rem;
160
+    justify-content: space-around;
161
+    align-items: center;
162
+    .toolOne {
163
+      width: 5.625rem;
164
+      height: 1.875rem;
165
+      background: rgba(246, 246, 246, 1);
166
+      border-radius: 5px;
167
+      text-align: center;
168
+      font-size: 0.8125rem;
169
+      color: #8d8d8d;
170
+      display: flex;
171
+      align-items: center;
172
+      justify-content: space-around;
173
+    }
174
+  }
175
+  .adviceBox {
176
+    padding: 0 1.125rem;
177
+    margin-bottom: 3.125rem;
178
+  }
179
+  .adviceOne {
180
+    box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1);
181
+    padding-bottom: 0.625rem;
182
+  }
183
+  .adviceTitle {
184
+    padding-top: 0.625rem;
185
+    display: flex;
186
+    align-items: center;
187
+    justify-content: space-between;
188
+    p {
189
+      color: #000000;
190
+      font-weight: bold;
191
+      font-size: 0.9375rem;
192
+    }
193
+    .ellipsis {
194
+      font-size: 1.25rem;
195
+      color: #cccccc;
196
+    }
197
+  }
198
+  .orderContent {
199
+    font-size: 0.875rem;
200
+    color: rgba(49, 50, 52, 1);
201
+    margin-top: 0.625rem;
202
+    display: flex;
203
+    flex-wrap: wrap;
204
+    p {
205
+      line-height: 1.5rem;
206
+      width: 50%;
207
+    }
208
+  }
209
+  .doctorBox {
210
+    font-size: 0.75rem;
211
+    color: rgba(152, 152, 152, 1);
212
+    line-height: 1.125rem;
213
+    display: flex;
214
+    align-items: center;
215
+    justify-content: space-between;
216
+    margin-top: 0.625rem;
217
+  }
218
+  .all {
219
+    font-size: 0.8125rem;
220
+    color: #5b98ff;
221
+    margin-top: 0.625rem;
222
+  }
223
+  .add {
224
+    position: fixed;
225
+    bottom: 0;
226
+    left: 0;
227
+    width: 100%;
228
+    height: 2.75rem;
229
+    background: rgba(255, 255, 255, 1);
230
+    box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1);
231
+    display: flex;
232
+    align-items: center;
233
+    justify-content: space-around;
234
+    font-size: 0.9375rem;
235
+    color: #979798;
236
+    .addIcon {
237
+      color: #5b98ff;
238
+      font-size: 1.25rem;
239
+      margin-right: 0.25rem;
240
+    }
241
+  }
242
+}
243
+::-webkit-scrollbar {
244
+  width: 0;
245
+}
246
+</style>

+ 241 - 0
src/pages/doctorAdvice/components/RescueRecord.vue Visa fil

@@ -0,0 +1,241 @@
1
+<template>
2
+  <div class="rescueRecord">
3
+    <div>
4
+      <div class="toolBox">
5
+        <div class="toolOne" @click="startShow = true">
6
+          <div style="display: flex;align-items: center;">
7
+            {{ startTime }}
8
+            <van-icon name="arrow-down" />
9
+          </div>
10
+        </div>
11
+        <div class="toolOne" @click="endShow = true">
12
+          <div style="display: flex;align-items: center;">
13
+            {{ endTime }}
14
+            <van-icon name="arrow-down" />
15
+          </div>
16
+        </div>
17
+      </div>
18
+      <div class="adviceBox">
19
+        <van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad">
20
+          <div class="adviceOne" v-for="item in 3" :key="index">
21
+            <div class="adviceTitle">
22
+              <p>2019.09.01</p>
23
+              <van-icon class="ellipsis" name="ellipsis" @click="newShow = true" />
24
+            </div>
25
+            <div class="statOrder">
26
+              <div class="statOrderTitle">
27
+                <span>抢救标题</span>
28
+              </div>
29
+              <div class="orderContent">
30
+                <p>
31
+                  病历书写基本规范2010》第二十二条规定:“病程记录
32
+                  是指继入院记录之后,对患者病情和诊疗过程所进行的
33
+                  连续性记录。内容包括患病历书写基本规范2010》第二十二条规定:“病程记录
34
+                  是指继入院记录之后,对患者病情和诊疗过程所进行的
35
+                  连续性记录。内容包括患
36
+                </p>
37
+              </div>
38
+              <div class="doctorBox">
39
+                <p>记录医生:钱蛮子</p>
40
+              </div>
41
+            </div>
42
+            <div class="all">全部</div>
43
+          </div>
44
+        </van-list>
45
+      </div>
46
+    </div>
47
+    <div class="add">
48
+      <div style="display: flex;align-items: center;">
49
+        <van-icon class="addIcon" name="add" />新增
50
+      </div>
51
+    </div>
52
+
53
+    <!-- 弹出层 -->
54
+    <div>
55
+      <van-popup v-model="typeShow" position="bottom" :style="{ height: '40%' }">
56
+        <van-picker show-toolbar :columns="columns" @cancel="onCancel" @confirm="onConfirm" />
57
+      </van-popup>
58
+      <van-popup v-model="startShow" position="bottom" :style="{ height: '40%' }">
59
+        <van-datetime-picker
60
+          v-model="currentDate"
61
+          type="date"
62
+          :min-date="minDate"
63
+          :max-date="maxDate"
64
+          @confirm="getstartTime"
65
+          @cancel="startShow = false"
66
+        />
67
+      </van-popup>
68
+      <van-popup v-model="endShow" position="bottom" :style="{ height: '40%' }">
69
+        <van-datetime-picker
70
+          v-model="currentDate"
71
+          type="date"
72
+          :min-date="minDate"
73
+          :max-date="maxDate"
74
+          @confirm="getstartTime2"
75
+          @cancel="endShow = false"
76
+        />
77
+      </van-popup>
78
+      <van-action-sheet v-model="newShow" :actions="actions" cancel-text="取消" @cancel="onCancel" />
79
+    </div>
80
+  </div>
81
+</template>
82
+
83
+<script>
84
+export default {
85
+  data() {
86
+    return {
87
+      newShow: false,
88
+      startShow: false,
89
+      endShow: false,
90
+      startTime: "请选择",
91
+      endTime: "请选择",
92
+      minDate: new Date(1970, 0, 1),
93
+      maxDate: new Date(2025, 10, 1),
94
+      currentDate: new Date(),
95
+      actions: [{ name: "编辑" }, { name: "删除" }]
96
+    };
97
+  },
98
+  methods: {
99
+    onCancel() {
100
+      this.typeShow = false;
101
+    },
102
+    onConfirm(value) {
103
+      this.type = value;
104
+      this.typeShow = false;
105
+    },
106
+    getstartTime(value) {
107
+      console.log(value);
108
+      let year = value.getFullYear();
109
+      let month = value.getMonth() + 1;
110
+      let day = value.getDate();
111
+      if (month >= 1 && month <= 9) {
112
+        month = `0${month}`;
113
+      }
114
+      if (day >= 1 && day <= 9) {
115
+        day = `0${day}`;
116
+      }
117
+
118
+      this.startTime = `${year}-${month}-${day}`;
119
+      this.startShow = false;
120
+    },
121
+    getstartTime2(value) {
122
+      console.log(value);
123
+      let year = value.getFullYear();
124
+      let month = value.getMonth() + 1;
125
+      let day = value.getDate();
126
+      if (month >= 1 && month <= 9) {
127
+        month = `0${month}`;
128
+      }
129
+      if (day >= 1 && day <= 9) {
130
+        day = `0${day}`;
131
+      }
132
+
133
+      this.endTime = `${year}-${month}-${day}`;
134
+      this.endShow = false;
135
+    }
136
+  }
137
+};
138
+</script>
139
+
140
+<style lang="scss" scoped>
141
+.rescueRecord {
142
+  height: 100%;
143
+  overflow-y: auto;
144
+  .toolBox {
145
+    display: flex;
146
+    height: 3.125rem;
147
+    align-items: center;
148
+    .toolOne {
149
+      width: 5.625rem;
150
+      height: 1.875rem;
151
+      background: rgba(246, 246, 246, 1);
152
+      border-radius: 5px;
153
+      text-align: center;
154
+      font-size: 0.8125rem;
155
+      color: #8d8d8d;
156
+      display: flex;
157
+      align-items: center;
158
+      justify-content: space-around;
159
+      margin-left: 1.25rem;
160
+    }
161
+  }
162
+  .adviceBox {
163
+    padding: 0 1.125rem;
164
+    margin-bottom: 3.125rem;
165
+  }
166
+  .adviceOne {
167
+    box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1);
168
+    padding-bottom: 0.625rem;
169
+  }
170
+  .adviceTitle {
171
+    padding-top: 0.625rem;
172
+    display: flex;
173
+    align-items: center;
174
+    justify-content: space-between;
175
+    p {
176
+      color: #000000;
177
+      font-weight: bold;
178
+      font-size: 0.9375rem;
179
+    }
180
+    .ellipsis {
181
+      font-size: 1.25rem;
182
+      color: #cccccc;
183
+    }
184
+  }
185
+  .statOrderTitle {
186
+    color: #5b98ff;
187
+    font-size: 0.8125rem;
188
+    font-weight: bold;
189
+    margin: 0.625rem 0;
190
+  }
191
+  .longOrderTitle {
192
+    color: #ff964a;
193
+    font-size: 0.8125rem;
194
+    font-weight: bold;
195
+    margin: 0.625rem 0;
196
+  }
197
+  .orderContent {
198
+    font-size: 0.875rem;
199
+    color: rgba(49, 50, 52, 1);
200
+    p {
201
+      line-height: 1.125rem;
202
+    }
203
+  }
204
+  .doctorBox {
205
+    font-size: 0.75rem;
206
+    color: rgba(152, 152, 152, 1);
207
+    line-height: 1.125rem;
208
+    display: flex;
209
+    align-items: center;
210
+    justify-content: space-between;
211
+    margin-top: 0.625rem;
212
+  }
213
+  .all {
214
+    font-size: 0.8125rem;
215
+    color: #5b98ff;
216
+    margin-top: 0.625rem;
217
+  }
218
+  .add {
219
+    position: fixed;
220
+    bottom: 0;
221
+    left: 0;
222
+    width: 100%;
223
+    height: 2.75rem;
224
+    background: rgba(255, 255, 255, 1);
225
+    box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1);
226
+    display: flex;
227
+    align-items: center;
228
+    justify-content: space-around;
229
+    font-size: 0.9375rem;
230
+    color: #979798;
231
+    .addIcon {
232
+      color: #5b98ff;
233
+      font-size: 1.25rem;
234
+      margin-right: 0.25rem;
235
+    }
236
+  }
237
+}
238
+::-webkit-scrollbar {
239
+  width: 0;
240
+}
241
+</style>

+ 242 - 0
src/pages/doctorAdvice/components/Scheduling.vue Visa fil

@@ -0,0 +1,242 @@
1
+<template>
2
+  <div class="scheduling">
3
+    <div>
4
+      <div class="toolBox">
5
+        <div class="toolOne" @click="typeShow = true">
6
+          <div style="display: flex;align-items: center;">
7
+            {{ type }}
8
+            <van-icon name="arrow-down" />
9
+          </div>
10
+        </div>
11
+        <div class="toolOne" @click="startShow = true">
12
+          <div style="display: flex;align-items: center;">
13
+            {{ startTime }}
14
+            <van-icon name="arrow-down" />
15
+          </div>
16
+        </div>
17
+        <div class="toolOne" @click="endShow = true">
18
+          <div style="display: flex;align-items: center;">
19
+            {{ endTime }}
20
+            <van-icon name="arrow-down" />
21
+          </div>
22
+        </div>
23
+      </div>
24
+      <div class="adviceBox">
25
+        <van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad">
26
+          <div class="adviceOne" v-for="item in 3" :key="index">
27
+            <div class="adviceTitle">
28
+              <p>2019.09.01</p>
29
+              <van-icon class="ellipsis" name="ellipsis" @click="newShow = true" />
30
+            </div>
31
+            <div class="orderContent">
32
+              <p>班次:HD</p>
33
+              <p>分区:2h30min</p>
34
+              <p>机号:12</p>
35
+              <p>治疗模式:1200ml</p>
36
+            </div>
37
+            <div class="all">全部</div>
38
+          </div>
39
+        </van-list>
40
+      </div>
41
+    </div>
42
+    <div class="add">
43
+      <div style="display: flex;align-items: center;">
44
+        <van-icon class="addIcon" name="add" />新增
45
+      </div>
46
+    </div>
47
+
48
+    <!-- 弹出层 -->
49
+    <div>
50
+      <van-popup v-model="typeShow" position="bottom" :style="{ height: '40%' }">
51
+        <van-picker show-toolbar :columns="columns" @cancel="onCancel" @confirm="onConfirm" />
52
+      </van-popup>
53
+      <van-popup v-model="startShow" position="bottom" :style="{ height: '40%' }">
54
+        <van-datetime-picker
55
+          v-model="currentDate"
56
+          type="date"
57
+          :min-date="minDate"
58
+          :max-date="maxDate"
59
+          @confirm="getstartTime"
60
+          @cancel="startShow = false"
61
+        />
62
+      </van-popup>
63
+      <van-popup v-model="endShow" position="bottom" :style="{ height: '40%' }">
64
+        <van-datetime-picker
65
+          v-model="currentDate"
66
+          type="date"
67
+          :min-date="minDate"
68
+          :max-date="maxDate"
69
+          @confirm="getstartTime2"
70
+          @cancel="endShow = false"
71
+        />
72
+      </van-popup>
73
+      <van-action-sheet v-model="newShow" :actions="actions" cancel-text="取消" @cancel="onCancel" />
74
+    </div>
75
+  </div>
76
+</template>
77
+
78
+<script>
79
+export default {
80
+  data() {
81
+    return {
82
+      newShow: false,
83
+      typeShow: false,
84
+      startShow: false,
85
+      endShow: false,
86
+      type: "请选择",
87
+      columns: [
88
+        "杭州",
89
+        "宁波",
90
+        "温州",
91
+        "嘉兴",
92
+        "湖州",
93
+        "杭州",
94
+        "宁波",
95
+        "温州",
96
+        "嘉兴",
97
+        "湖州"
98
+      ],
99
+      startTime: "请选择",
100
+      endTime: "请选择",
101
+      minDate: new Date(1970, 0, 1),
102
+      maxDate: new Date(2025, 10, 1),
103
+      currentDate: new Date(),
104
+      actions: [{ name: "编辑" }, { name: "删除" }]
105
+    };
106
+  },
107
+  methods: {
108
+    onCancel() {
109
+      this.typeShow = false;
110
+    },
111
+    onConfirm(value) {
112
+      this.type = value;
113
+      this.typeShow = false;
114
+    },
115
+    getstartTime(value) {
116
+      console.log(value);
117
+      let year = value.getFullYear();
118
+      let month = value.getMonth() + 1;
119
+      let day = value.getDate();
120
+      if (month >= 1 && month <= 9) {
121
+        month = `0${month}`;
122
+      }
123
+      if (day >= 1 && day <= 9) {
124
+        day = `0${day}`;
125
+      }
126
+
127
+      this.startTime = `${year}-${month}-${day}`;
128
+      this.startShow = false;
129
+    },
130
+    getstartTime2(value) {
131
+      console.log(value);
132
+      let year = value.getFullYear();
133
+      let month = value.getMonth() + 1;
134
+      let day = value.getDate();
135
+      if (month >= 1 && month <= 9) {
136
+        month = `0${month}`;
137
+      }
138
+      if (day >= 1 && day <= 9) {
139
+        day = `0${day}`;
140
+      }
141
+
142
+      this.endTime = `${year}-${month}-${day}`;
143
+      this.endShow = false;
144
+    }
145
+  }
146
+};
147
+</script>
148
+
149
+<style lang="scss" scoped>
150
+.scheduling {
151
+  height: 100%;
152
+  overflow-y: auto;
153
+  .toolBox {
154
+    display: flex;
155
+    height: 3.125rem;
156
+    justify-content: space-around;
157
+    align-items: center;
158
+    .toolOne {
159
+      width: 5.625rem;
160
+      height: 1.875rem;
161
+      background: rgba(246, 246, 246, 1);
162
+      border-radius: 5px;
163
+      text-align: center;
164
+      font-size: 0.8125rem;
165
+      color: #8d8d8d;
166
+      display: flex;
167
+      align-items: center;
168
+      justify-content: space-around;
169
+    }
170
+  }
171
+  .adviceBox {
172
+    padding: 0 1.125rem;
173
+    margin-bottom: 3.125rem;
174
+  }
175
+  .adviceOne {
176
+    box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1);
177
+    padding-bottom: 0.625rem;
178
+  }
179
+  .adviceTitle {
180
+    padding-top: 0.625rem;
181
+    display: flex;
182
+    align-items: center;
183
+    justify-content: space-between;
184
+    p {
185
+      color: #000000;
186
+      font-weight: bold;
187
+      font-size: 0.9375rem;
188
+    }
189
+    .ellipsis {
190
+      font-size: 1.25rem;
191
+      color: #cccccc;
192
+    }
193
+  }
194
+  .orderContent {
195
+    font-size: 0.875rem;
196
+    color: rgba(49, 50, 52, 1);
197
+    margin-top: 0.625rem;
198
+    display: flex;
199
+    flex-wrap: wrap;
200
+    p {
201
+      line-height: 1.5rem;
202
+      width: 50%;
203
+    }
204
+  }
205
+  .doctorBox {
206
+    font-size: 0.75rem;
207
+    color: rgba(152, 152, 152, 1);
208
+    line-height: 1.125rem;
209
+    display: flex;
210
+    align-items: center;
211
+    justify-content: space-between;
212
+    margin-top: 0.625rem;
213
+  }
214
+  .all {
215
+    font-size: 0.8125rem;
216
+    color: #5b98ff;
217
+    margin-top: 0.625rem;
218
+  }
219
+  .add {
220
+    position: fixed;
221
+    bottom: 0;
222
+    left: 0;
223
+    width: 100%;
224
+    height: 2.75rem;
225
+    background: rgba(255, 255, 255, 1);
226
+    box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1);
227
+    display: flex;
228
+    align-items: center;
229
+    justify-content: space-around;
230
+    font-size: 0.9375rem;
231
+    color: #979798;
232
+    .addIcon {
233
+      color: #5b98ff;
234
+      font-size: 1.25rem;
235
+      margin-right: 0.25rem;
236
+    }
237
+  }
238
+}
239
+::-webkit-scrollbar {
240
+  width: 0;
241
+}
242
+</style>

+ 462 - 0
src/pages/doctorAdvice/index.vue Visa fil

@@ -0,0 +1,462 @@
1
+<template>
2
+  <div class="page_doctorAdvice">
3
+    <div class="doctorAdviceTitle">
4
+      <i class="iconfont icon-zuojiantou jiantou" @click="toReturn"></i>
5
+      <div class="patientName" @click="show = true">
6
+        {{ patientName }}
7
+        <van-icon name="arrow-down" />
8
+      </div>
9
+      <p>基本信息</p>
10
+    </div>
11
+    <van-tabs v-model="active" sticky>
12
+      <van-sticky>
13
+        <div class="wapBox" @click="show1 = true">
14
+          <van-icon class="wap" name="wap-nav" />
15
+        </div>
16
+      </van-sticky>
17
+      <van-tab v-for="(item, index) in title" :title="item" :key="index">
18
+        <doctor-management v-if="active == 0"></doctor-management>
19
+        <dry-weight v-if="active == 1"></dry-weight>
20
+        <course-management v-if="active == 2"></course-management>
21
+        <rescue-record v-if="active == 3"></rescue-record>
22
+        <inspection v-if="active == 4"></inspection>
23
+        <long-dialysis v-if="active == 5"></long-dialysis>
24
+        <dialysis-record v-if="active == 6"></dialysis-record>
25
+        <scheduling v-if="active == 7"></scheduling>
26
+        <education v-if="active == 8"></education>
27
+      </van-tab>
28
+    </van-tabs>
29
+    <van-popup v-model="show" position="top" :style="{ height: '100%' }">
30
+      <div
31
+        style="padding:10px;font-size:1.25rem;text-align:right"
32
+        @click="show = false"
33
+      >
34
+        <van-icon name="cross" />
35
+      </div>
36
+      <van-search
37
+        v-model="value"
38
+        placeholder="请输入病人名字"
39
+        @cancel="onCancel"
40
+        @search="onSearch"
41
+      />
42
+
43
+      <van-index-bar class="indexBar" :sticky="false" highlight-color="#fb6463">
44
+        <van-index-anchor
45
+          v-for="(item, index) in firstNameTwo"
46
+          :key="index"
47
+          :index="index"
48
+        >
49
+          <span class="indexWord">{{ index }}</span>
50
+          <van-cell
51
+            @click="chooseCity(citem)"
52
+            v-for="(citem, cindex) in item"
53
+            :key="cindex"
54
+            :title="citem"
55
+          />
56
+        </van-index-anchor>
57
+      </van-index-bar>
58
+    </van-popup>
59
+
60
+    <van-popup v-model="show1" position="top" :style="{ height: '40%' }">
61
+      <div
62
+        style="padding:10px;font-size:1.25rem;text-align:right"
63
+        @click="show1 = false"
64
+      >
65
+        <van-icon name="cross" />
66
+      </div>
67
+      <div class="titleBox">
68
+        <div
69
+          class="titleBoxOne"
70
+          v-for="(item, index) in title"
71
+          :key="index"
72
+          @click="changeActive(index)"
73
+        >
74
+          {{ item }}
75
+        </div>
76
+      </div>
77
+    </van-popup>
78
+  </div>
79
+</template>
80
+
81
+<script>
82
+import DoctorManagement from "@/pages/doctorAdvice/components/DoctorManagement";
83
+import DryWeight from "@/pages/doctorAdvice/components/DryWeight";
84
+import CourseManagement from "@/pages/doctorAdvice/components/CourseManagement";
85
+import RescueRecord from "@/pages/doctorAdvice/components/RescueRecord";
86
+import Inspection from "@/pages/doctorAdvice/components/Inspection";
87
+import LongDialysis from "@/pages/doctorAdvice/components/LongDialysis";
88
+import DialysisRecord from "@/pages/doctorAdvice/components/DialysisRecord";
89
+import Scheduling from "@/pages/doctorAdvice/components/Scheduling";
90
+import Education from "@/pages/doctorAdvice/components/Education";
91
+import { uParseTime } from "@/utils/tools";
92
+import {
93
+  getPatientDetail,
94
+  getBloodDialysisPatientTwo,
95
+  ToSearch
96
+} from "@/api/patient/patient";
97
+const moment = require("moment");
98
+let pinyin = require("js-pinyin");
99
+pinyin.setOptions({ checkPolyphone: false, charCase: 0 });
100
+export default {
101
+  components: {
102
+    DoctorManagement,
103
+    DryWeight,
104
+    CourseManagement,
105
+    RescueRecord,
106
+    Inspection,
107
+    LongDialysis,
108
+    DialysisRecord,
109
+    Scheduling,
110
+    Education
111
+  },
112
+  data() {
113
+    return {
114
+      show: false,
115
+      show1: false,
116
+      active: 0,
117
+      title: [
118
+        "医嘱管理",
119
+        "干体重",
120
+        "病程管理",
121
+        "抢救记录",
122
+        "检验检查",
123
+        "长期透析处方",
124
+        "透析记录",
125
+        "排班信息",
126
+        "宣教信息"
127
+      ],
128
+
129
+      searchVal: "",
130
+      startTime: moment(new Date()).format("YYYY-MM-DD"),
131
+      endTime: moment(new Date()).format("YYYY-MM-DD"),
132
+      show1: false,
133
+      show2: false,
134
+      currentDate1: new Date(),
135
+      currentDate2: new Date(),
136
+      show3: false,
137
+      actions: [{ name: "编辑" }, { name: "删除" }],
138
+      time: "2016-10-2",
139
+      patientForm: {
140
+        name: "",
141
+        sex: "",
142
+        age: "",
143
+        dialysis_no: "",
144
+        avatar: ""
145
+      },
146
+      doctorAdvice: [],
147
+      yiShow: false,
148
+      meiShow: false,
149
+      bingShow: false,
150
+      aiShow: false,
151
+      doctor_name: "",
152
+      value: "",
153
+      patientName: "",
154
+      cityNameList: [
155
+        {
156
+          id: 101,
157
+          name: "北京市",
158
+          pid: 1,
159
+          code: 0
160
+        },
161
+        {
162
+          id: 10101,
163
+          name: "天津市",
164
+          pid: 10001,
165
+          code: 0
166
+        },
167
+        {
168
+          id: 20101,
169
+          name: "石家庄市",
170
+          pid: 20001,
171
+          code: 130100
172
+        }
173
+      ],
174
+      FirstPin: [
175
+        "A",
176
+        "B",
177
+        "C",
178
+        "D",
179
+        "E",
180
+        "F",
181
+        "G",
182
+        "H",
183
+        "J",
184
+        "K",
185
+        "L",
186
+        "M",
187
+        "N",
188
+        "P",
189
+        "Q",
190
+        "R",
191
+        "S",
192
+        "T",
193
+        "W",
194
+        "X",
195
+        "Y",
196
+        "Z"
197
+      ],
198
+      firstNameTwo: {},
199
+      limit: 10,
200
+      page: 1,
201
+      patient: []
202
+    };
203
+  },
204
+  methods: {
205
+    changeActive(index) {
206
+      this.active = index;
207
+      this.show1 = false;
208
+    },
209
+
210
+    // sadas
211
+    showPopup(index) {
212
+      if (index === 1) {
213
+        this.show1 = true;
214
+      } else if (index === 2) {
215
+        this.show2 = true;
216
+      }
217
+    },
218
+    chooseStartTime(value) {
219
+      this.startTime = moment(value).format("YYYY-MM-DD");
220
+      var patientid = this.$route.query.patientid;
221
+      var orgid = this.$route.query.orgid;
222
+      this.GetDoctroAdvice(patientid, orgid, this.startTime);
223
+      this.show1 = false;
224
+    },
225
+    chooseEndTime(value) {
226
+      this.endTime = moment(value).format("YYYY-MM-DD");
227
+      var patientid = this.$route.query.patientid;
228
+      var orgid = this.$route.query.orgid;
229
+      this.GetDoctroAdvice(patientid, orgid, this.endTime);
230
+      this.show2 = false;
231
+    },
232
+    onClick(index) {
233
+      if (index === 1) {
234
+        this.show3 = true;
235
+      } else if (index === 2) {
236
+        this.show3 = true;
237
+      }
238
+    },
239
+    RecordTime(time) {
240
+      // return uParseTime(time, '{y}-{m}-{d} {h}:{i}:{s}')
241
+      return uParseTime(time, "{y}-{m}-{d}");
242
+    },
243
+    GetDoctroAdvice(patientid, orgid) {
244
+      GetDoctroAdvice(
245
+        patientid,
246
+        orgid,
247
+        this.startTime,
248
+        this.endTime,
249
+        this.searchVal
250
+      ).then(response => {
251
+        if (response.data.state === 1) {
252
+          var doctoradvice = response.data.data.doctoradvice;
253
+          this.doctorAdvice = doctoradvice;
254
+          var patients = response.data.data.patients;
255
+          this.patientForm.name = patients.name;
256
+          this.patientForm.age = patients.age;
257
+          this.patientForm.avatar = patients.avatar;
258
+          var diseases = response.data.data.diseases;
259
+          for (let index = 0; index < diseases.length; index++) {
260
+            if (diseases[index].disease_id === 2) {
261
+              this.yiShow = true;
262
+            }
263
+            if (diseases[index].disease_id === 3) {
264
+              this.bingShow = true;
265
+            }
266
+            if (diseases[index].disease_id === 4) {
267
+              this.aiShow = true;
268
+            }
269
+
270
+            if (diseases[index].disease_id === 6) {
271
+              this.meiShow = true;
272
+            }
273
+          }
274
+          if (patients.gender === 1) {
275
+            this.patientForm.sex = "男";
276
+          }
277
+          if (patients.gender === 2) {
278
+            this.patientForm.sex = "女";
279
+          }
280
+          this.patientForm.dialysis_no = patients.dialysis_no;
281
+          var role = response.data.data.role;
282
+          this.doctor_name = role.user_name;
283
+        }
284
+      });
285
+    },
286
+    watchNum() {
287
+      var patientid = this.$route.query.patientid;
288
+      var orgid = this.$route.query.orgid;
289
+      toSeacherDoctorAdvice(patientid, orgid, this.searchVal).then(response => {
290
+        if (response.data.state === 1) {
291
+          var doctorAdvice = response.data.data.doctoradvice;
292
+          this.doctorAdvice = doctoradvice;
293
+        }
294
+      });
295
+    },
296
+    deleteDoctorAdvice(id, index) {
297
+      deleteDoctorAdvice(id, index).then(response => {
298
+        if (response.data.state === 1) {
299
+          var msg = response.data.data.msg;
300
+          this.doctorAdvice.splice(index, 1);
301
+        }
302
+      });
303
+    },
304
+    toReturn() {
305
+      this.$router.push("/patients");
306
+    },
307
+    getPatientDetail(patientid) {
308
+      getPatientDetail(patientid).then(response => {
309
+        if (response.data.state === 1) {
310
+          var patientDetail = response.data.data.patientDetail;
311
+          this.patientName = patientDetail.name;
312
+        }
313
+      });
314
+    },
315
+    getBloodDialysisPatientTwo() {
316
+      getBloodDialysisPatientTwo(this.page, this.limit).then(response => {
317
+        var patient = response.data.data.patient;
318
+        this.patient = patient;
319
+        let cityNameList = [];
320
+        for (let p in patient) {
321
+          cityNameList.push(patient[p].name);
322
+        }
323
+        let firstName = {};
324
+        this.FirstPin.forEach(item => {
325
+          firstName[item] = [];
326
+          cityNameList.forEach(el => {
327
+            let first = pinyin.getFullChars(el).substring(0, 1);
328
+            if (first == item) {
329
+              firstName[item].push(el);
330
+            }
331
+          });
332
+          this.firstNameTwo = firstName;
333
+          // 判断非空
334
+          let newObj = {};
335
+          Object.keys(this.firstNameTwo).map((item, index) => {
336
+            if (this.firstNameTwo[item].length != 0) {
337
+              newObj[item] = this.firstNameTwo[item];
338
+            }
339
+          });
340
+          this.firstNameTwo = newObj;
341
+        });
342
+      });
343
+    },
344
+    onSearch(val) {
345
+      ToSearch(val).then(response => {
346
+        if (response.data.state === 1) {
347
+          var search = response.data.data.search;
348
+          console.log("search", search);
349
+          let cityNameList = [];
350
+          for (let p in search) {
351
+            cityNameList.push(search[p].name);
352
+          }
353
+          let firstName = {};
354
+          this.FirstPin.forEach(item => {
355
+            firstName[item] = [];
356
+            cityNameList.forEach(el => {
357
+              let first = pinyin.getFullChars(el).substring(0, 1);
358
+              if (first == item) {
359
+                firstName[item].push(el);
360
+              }
361
+            });
362
+            this.firstNameTwo = firstName;
363
+            // 判断非空
364
+            let newObj = {};
365
+            Object.keys(this.firstNameTwo).map((item, index) => {
366
+              if (this.firstNameTwo[item].length != 0) {
367
+                newObj[item] = this.firstNameTwo[item];
368
+              }
369
+            });
370
+            this.firstNameTwo = newObj;
371
+          });
372
+        }
373
+      });
374
+    },
375
+    onCancel() {},
376
+    chooseCity(val) {
377
+      this.value = val;
378
+      for (let i = 0; i < this.patient.length; i++) {
379
+        if (this.value === this.patient[i].name) {
380
+          var id = this.patient[i].id;
381
+          this.show = false;
382
+          this.$router.push("/patientdetail?patientid=" + id);
383
+          this.patientName = this.value;
384
+        }
385
+      }
386
+    }
387
+  },
388
+  created() {
389
+    var patientid = this.$route.query.patientid;
390
+    console.log("patientid", patientid);
391
+    this.getPatientDetail(patientid);
392
+    this.getBloodDialysisPatientTwo();
393
+  }
394
+};
395
+</script>
396
+
397
+<style lang="scss" scoped>
398
+.page_doctorAdvice {
399
+  overflow: hidden;
400
+  height: 100%;
401
+  overflow-y: auto;
402
+  .doctorAdviceTitle {
403
+    height: 3.125rem;
404
+    display: flex;
405
+    align-items: center;
406
+    justify-content: space-between;
407
+    width: 100%;
408
+    padding: 0 1.125rem;
409
+    background: #fff;
410
+  }
411
+  .patientName {
412
+    display: flex;
413
+    align-items: center;
414
+  }
415
+  .jiantou {
416
+    font-size: 1.5rem;
417
+    font-weight: 600;
418
+    margin-right: 2rem;
419
+  }
420
+  .wapBox {
421
+    position: absolute;
422
+    z-index: 2;
423
+    right: 0;
424
+    top: 0;
425
+    width: 2.625rem;
426
+    text-align: center;
427
+    background: rgba(255, 255, 255, 1);
428
+    box-shadow: -2px 0px 12px 0px rgba(91, 91, 91, 0.16);
429
+  }
430
+  .wap {
431
+    font-size: 1.875rem;
432
+    line-height: 44px;
433
+    color: #5b5b5b;
434
+  }
435
+  .titleBox {
436
+    padding: 0 1.25rem 1.25rem;
437
+    display: flex;
438
+    flex-wrap: wrap;
439
+    .titleBoxOne {
440
+      padding: 0.375rem 0.625rem;
441
+      background: #f6f6f6;
442
+      border-radius: 0.375rem;
443
+      margin: 0.625rem 0.375rem;
444
+      font-size: 0.75rem;
445
+    }
446
+  }
447
+}
448
+::-webkit-scrollbar {
449
+  width: 0;
450
+}
451
+</style>
452
+<style lang="scss">
453
+.page_doctorAdvice {
454
+  .van-tabs__wrap {
455
+    width: 90% !important;
456
+  }
457
+  .van-cell__value {
458
+    display: flex;
459
+    align-items: center;
460
+  }
461
+}
462
+</style>

+ 159 - 0
src/pages/doctorAdvice/newAddDoctoc.vue Visa fil

@@ -0,0 +1,159 @@
1
+<template>
2
+  <div class="page_newAddDoctor">
3
+    <div class="newAddDoctorTitle">
4
+      <i class="iconfont icon-zuojiantou jiantou"></i>
5
+      <span class="titleName">新增医嘱</span>
6
+      <p>保存</p>
7
+    </div>
8
+    <div class="chooseBox">
9
+      <van-cell title="医嘱类型" @click="show = true" is-link :value="type" />
10
+      <van-cell title="开始时间" @click="show1 = true" is-link :value="time" />
11
+    </div>
12
+    <div class="chooseBox">
13
+      <van-cell is-link @click="chooseDoctor">选择医嘱模板</van-cell>
14
+      <van-swipe-cell>
15
+        <van-cell
16
+          :border="false"
17
+          title="那曲肝素钙注射液 单次用量 3075iu 静脉注射▲ 左卡尼汀注射液 单次用量 1g"
18
+        />
19
+        <template slot="right">
20
+          <van-button square type="info" text="添加子药" />
21
+          <van-button square type="danger" text="删除" @click="deteleOne" />
22
+        </template>
23
+      </van-swipe-cell>
24
+    </div>
25
+    <div class="chooseBox">
26
+      <van-cell is-link @click="chooseDoctor">新增医嘱内容</van-cell>
27
+      <van-swipe-cell>
28
+        <van-cell
29
+          :border="false"
30
+          title="那曲肝素钙注射液 单次用量 3075iu 静脉注射▲ 左卡尼汀注射液 单次用量 1g"
31
+        />
32
+        <template slot="right">
33
+          <van-button square type="info" text="添加子药" />
34
+          <van-button square type="danger" text="删除" @click="deteleOne" />
35
+        </template>
36
+      </van-swipe-cell>
37
+    </div>
38
+    <div>
39
+      <van-popup v-model="show" position="bottom" :style="{ height: '40%' }">
40
+        <van-picker
41
+          show-toolbar
42
+          :columns="columns"
43
+          @cancel="onCancel"
44
+          @confirm="onConfirm"
45
+        />
46
+      </van-popup>
47
+      <van-popup v-model="show1" position="bottom" :style="{ height: '40%' }">
48
+        <van-datetime-picker
49
+          v-model="currentDate"
50
+          type="date"
51
+          :min-date="minDate"
52
+          :max-date="maxDate"
53
+          @confirm="getstartTime"
54
+          @cancel="show1 = false"
55
+        />
56
+      </van-popup>
57
+    </div>
58
+  </div>
59
+</template>
60
+
61
+<script>
62
+export default {
63
+  data() {
64
+    return {
65
+      type: "",
66
+      show: false,
67
+      show1: false,
68
+      columns: [
69
+        "杭州",
70
+        "宁波",
71
+        "温州",
72
+        "嘉兴",
73
+        "湖州",
74
+        "杭州",
75
+        "宁波",
76
+        "温州",
77
+        "嘉兴",
78
+        "湖州"
79
+      ],
80
+      time: "",
81
+      minDate: new Date(1970, 0, 1),
82
+      maxDate: new Date(2025, 10, 1),
83
+      currentDate: new Date()
84
+    };
85
+  },
86
+  methods: {
87
+    onCancel() {
88
+      this.show = false;
89
+    },
90
+    onConfirm(value) {
91
+      this.type = value;
92
+      this.show = false;
93
+    },
94
+    getstartTime(value) {
95
+      console.log(value);
96
+      let year = value.getFullYear();
97
+      let month = value.getMonth() + 1;
98
+      let day = value.getDate();
99
+      if (month >= 1 && month <= 9) {
100
+        month = `0${month}`;
101
+      }
102
+      if (day >= 1 && day <= 9) {
103
+        day = `0${day}`;
104
+      }
105
+
106
+      this.time = `${year}-${month}-${day}`;
107
+      this.show1 = false;
108
+    },
109
+    deteleOne() {
110
+      this.$dialog
111
+        .confirm({
112
+          message: "是否删除该条医嘱"
113
+        })
114
+        .then(() => {
115
+          // on confirm
116
+        })
117
+        .catch(() => {
118
+          // on cancel
119
+        });
120
+    },
121
+    chooseDoctor() {}
122
+  }
123
+};
124
+</script>
125
+
126
+<style lang="scss" scoped>
127
+.page_newAddDoctor {
128
+  height: 100%;
129
+  overflow-y: auto;
130
+  background: #fafafa;
131
+  .newAddDoctorTitle {
132
+    height: 3.125rem;
133
+    display: flex;
134
+    align-items: center;
135
+    justify-content: space-between;
136
+    width: 100%;
137
+    padding: 0 1.125rem;
138
+    background: #fff;
139
+  }
140
+  .jiantou {
141
+    font-size: 1.5rem;
142
+    font-weight: 600;
143
+    margin-right: 1.25rem;
144
+  }
145
+  .titleName {
146
+    font-size: 1.125rem;
147
+    font-weight: 600;
148
+  }
149
+  .chooseBox {
150
+    margin-top: 1rem;
151
+  }
152
+  .van-button {
153
+    height: 100%;
154
+  }
155
+  .van-swipe-cell__wrapper {
156
+    transform: translate3d(-152.45px, 0px, 0px);
157
+  }
158
+}
159
+</style>

+ 56 - 57
src/pages/home/login.vue Visa fil

@@ -110,7 +110,7 @@ export default {
110 110
 
111 111
         if (resp.state == 1) {
112 112
           cacheLoginInfo(this.form.mobile, this.form.pwd);
113
-          console.log(resp);
113
+          // console.log(resp);
114 114
 
115 115
           var user = resp.data.user;
116 116
           var org = resp.data.org;
@@ -118,8 +118,8 @@ export default {
118 118
           var config_list = resp.data.config_list;
119 119
           var template_info = resp.data.template_info;
120 120
           var filed_list = resp.data.filed_list;
121
-          console.log(resp.data.filed_list);
122
-          console.log(filed_list);
121
+          // console.log(resp.data.filed_list);
122
+          // console.log(filed_list);
123 123
 
124 124
           this.$store.dispatch("InitUserInfo", {
125 125
             user: user,
@@ -142,62 +142,61 @@ export default {
142 142
     to: function() {
143 143
       this.$router.push({ path: "/privacy" });
144 144
     },
145
-    submitForm() {
146
-      this.$router.push({ path: "/homeIndex" });
147
-    },
148 145
     // submitForm() {
149
-    //   const self = this;
150
-    //   //判断复选框是否被勾选 勾选则调用配置cookie方法
151
-    //   if (self.checked == true) {
152
-    //     console.log("checked == true");
153
-    //     //传入账号名,密码,和保存天数3个参数
154
-    //     self.setCookie(self.form.mobile, self.form.pwd, 7);
155
-    //   } else {
156
-    //     console.log("清空Cookie");
157
-    //     //清空Cookie
158
-    //     self.clearCookie();
159
-    //   }
160
-    //
161
-    //   //与后端请求代码,本功能不需要与后台交互所以省略
162
-    //
163
-    //   loginByPwd(this.form.mobile, hex_md5(this.form.pwd)).then(rs => {
164
-    //     var resp = rs.data;
165
-    //     if (this.agreement != true) {
166
-    //       Toast("请同意隐私服务协议");
167
-    //     }
168
-    //
169
-    //     if (resp.state == 1 && this.agreement == true) {
170
-    //       cacheLoginInfo(this.form.mobile, this.form.pwd);
171
-    //       console.log(resp);
172
-    //
173
-    //       var user = resp.data.user;
174
-    //       var org = resp.data.org;
175
-    //       var subscibe = resp.data.subscibe;
176
-    //       var config_list = resp.data.config_list;
177
-    //       var template_info = resp.data.template_info;
178
-    //       var filed_list = resp.data.filed_list;
179
-    //       console.log(resp.data.filed_list);
180
-    //       console.log(filed_list);
181
-    //
182
-    //       this.$store.dispatch("InitUserInfo", {
183
-    //         user: user,
184
-    //         org: org,
185
-    //         subscibe: subscibe,
186
-    //         template_info: template_info,
187
-    //         filed_list: filed_list
188
-    //       });
189
-    //       this.$store.dispatch("SetConfigList", config_list);
190
-    //
191
-    //       // this.$router.push({path: "/product"})
192
-    //       this.$router.push({ path: "/main" });
193
-    //     } else {
194
-    //       this.$toast({
195
-    //         message: resp.msg
196
-    //       });
197
-    //     }
198
-    //   });
199
-    //   console.log("登陆成功");
146
+    //   this.$router.push({ path: "/homeIndex" });
200 147
     // },
148
+    submitForm() {
149
+      const self = this;
150
+      // 判断复选框是否被勾选 勾选则调用配置cookie方法
151
+      if (self.checked == true) {
152
+        // console.log("checked == true");
153
+        // 传入账号名,密码,和保存天数3个参数
154
+        self.setCookie(self.form.mobile, self.form.pwd, 7);
155
+      } else {
156
+        // console.log("清空Cookie");
157
+        // 清空Cookie
158
+        self.clearCookie();
159
+      }
160
+
161
+      // 与后端请求代码,本功能不需要与后台交互所以省略
162
+
163
+      loginByPwd(this.form.mobile, hex_md5(this.form.pwd)).then(rs => {
164
+        var resp = rs.data;
165
+        if (this.agreement != true) {
166
+          Toast("请同意隐私服务协议");
167
+        }
168
+
169
+        if (resp.state == 1 && this.agreement == true) {
170
+          cacheLoginInfo(this.form.mobile, this.form.pwd);
171
+          // console.log(resp);
172
+
173
+          var user = resp.data.user;
174
+          var org = resp.data.org;
175
+          var subscibe = resp.data.subscibe;
176
+          var config_list = resp.data.config_list;
177
+          var template_info = resp.data.template_info;
178
+          var filed_list = resp.data.filed_list;
179
+          // console.log(resp.data.filed_list);
180
+          // console.log(filed_list);
181
+
182
+          this.$store.dispatch("InitUserInfo", {
183
+            user: user,
184
+            org: org,
185
+            subscibe: subscibe,
186
+            template_info: template_info,
187
+            filed_list: filed_list
188
+          });
189
+          this.$store.dispatch("SetConfigList", config_list);
190
+
191
+          // this.$router.push({path: "/product"})
192
+          this.$router.push({ path: "/homeIndex" });
193
+        } else {
194
+          this.$toast({
195
+            message: resp.msg
196
+          });
197
+        }
198
+      });
199
+    },
201 200
     // 设置cookie
202 201
     setCookie(c_name, c_pwd, exdays) {
203 202
       var exdate = new Date(); // 获取时间

+ 3 - 6
src/pages/homeIndex/index.vue Visa fil

@@ -93,12 +93,9 @@
93 93
         <div class="applicationOne">
94 94
           <img src="../../assets/images/S13.png" alt="" />客服中心
95 95
         </div>
96
-        <div class="applicationOne">
97
-          <img src="../../assets/images/S14.png" alt="" />集成中心
98
-        </div>
99
-        <div class="applicationOne">
100
-          <img src="../../assets/images/S15.png" alt="" />配置中心
101
-        </div>
96
+<!--        <div class="applicationOne">-->
97
+<!--          <img src="../../assets/images/S14.png" alt="" />集成中心-->
98
+<!--        </div>-->
102 99
       </div>
103 100
     </div>
104 101
   </div>

+ 106 - 204
src/pages/patientManagement/index.vue Visa fil

@@ -1,124 +1,9 @@
1 1
 <template>
2 2
   <div class="page_patientManagement">
3
-    <!-- <div class="header">
4
-      <el-input
5
-        placeholder=" 姓名 / 首拼 / 透析号"
6
-        prefix-icon="el-icon-search"
7
-        v-model="searchVal"
8
-      ></el-input>
9
-    </div>
10
-    <div class="searchList">
11
-      <van-tabs
12
-        v-model="active"
13
-        title-active-color="#000000"
14
-        title-inactive-color="#3C3C3C"
15
-        @click="getType"
16
-      >
17
-        <van-tab title="全部">
18
-          <van-list
19
-            v-model="loading"
20
-            :finished="finished"
21
-            finished-text="没有更多了"
22
-            loading-text="加载中..."
23
-            @load="onLoad"
24
-            :immediate-check="false"
25
-          >
26
-            <van-cell>
27
-              <template slot="title">
28
-                <div
29
-                  class="searchOne"
30
-                  v-for="(item, index) in list"
31
-                  :key="index"
32
-                >
33
-                  <img :src="item.avatar" alt />
34
-                  <span>{{ item.name }}</span>
35
-                </div>
36
-              </template>
37
-            </van-cell>
38
-          </van-list>
39
-        </van-tab>
40
-        <van-tab title="血透">
41
-          <van-list
42
-            v-model="loading"
43
-            :finished="finished"
44
-            loading-text="加载中..."
45
-            finished-text="没有更多了"
46
-            @load="onLoad"
47
-            immediate-check
48
-          >
49
-            <van-cell>
50
-              <template slot="title">
51
-                <div
52
-                  class="searchOne"
53
-                  v-for="(item, index) in list"
54
-                  :key="index"
55
-                  @click="toPatientDetail(item.id, item.user_org_id)"
56
-                >
57
-                  <img :src="item.avatar" alt />
58
-                  <span>{{ item.name }}</span>
59
-                </div>
60
-              </template>
61
-            </van-cell>
62
-          </van-list>
63
-        </van-tab>
64
-        <van-tab title="慢病">
65
-          <van-list
66
-            v-model="loading"
67
-            :finished="finished"
68
-            loading-text="加载中..."
69
-            finished-text="没有更多了"
70
-            @load="onLoad"
71
-            immediate-check
72
-          >
73
-            <van-cell>
74
-              <template slot="title">
75
-                <div
76
-                  class="searchOne"
77
-                  v-for="(item, index) in list"
78
-                  :key="index"
79
-                  @click="toPatientDetail(item.id, item.user_org_id)"
80
-                >
81
-                  <img :src="item.avatar" alt />
82
-                  <span>{{ item.name }}</span>
83
-                </div>
84
-              </template>
85
-            </van-cell>
86
-          </van-list>
87
-        </van-tab>
88
-        <van-tab title="会员">
89
-          <van-list
90
-            v-model="loading"
91
-            :finished="finished"
92
-            loading-text="加载中..."
93
-            finished-text="没有更多了"
94
-            @load="onLoad"
95
-            immediate-check
96
-          >
97
-            <van-cell>
98
-              <template slot="title">
99
-                <div
100
-                  class="searchOne"
101
-                  v-for="(item, index) in list"
102
-                  :key="index"
103
-                  @click="toPatientDetail(item.id, item.user_org_id)"
104
-                >
105
-                  <img :src="item.avatar" alt />
106
-                  <span>{{ item.name }}</span>
107
-                </div>
108
-              </template>
109
-            </van-cell>
110
-          </van-list>
111
-        </van-tab>
112
-        <van-tab title="电商">电商</van-tab>
113
-      </van-tabs>
114
-    </div>
115
-    <div class="add" @click="ToAddPatient()">
116
-      <img src="../../assets/images/add.png" alt />
117
-    </div> -->
118 3
     <van-sticky>
119 4
       <div class="patientManagementTitle">
120
-        <i class="iconfont icon-zuojiantou jiantou"></i>
121
-        <span class="titleName">患者管理</span>
5
+        <i class="iconfont icon-zuojiantou jiantou" @click="toReturn"></i>
6
+        <span class="titleName">患者中心</span>
122 7
         <div class="iconBox" @click="addPatient">
123 8
           <i class="iconfont icon-sousuo iconOne"></i>
124 9
           <van-icon class="iconOne add" name="add-o" />
@@ -139,9 +24,14 @@
139 24
         finished-text="没有更多了"
140 25
         @load="onLoad"
141 26
       >
142
-        <div class="patientOne" v-for="item in list" :key="item">
143
-          <img src="../../assets/images/A1.jpg" alt="" />
144
-          <p>名字</p>
27
+        <div
28
+          class="patientOne"
29
+          v-for="item in patients"
30
+          :key="item.id"
31
+          @click="toPatientDetail(item.id)"
32
+        >
33
+          <img :src="item.avatar" alt="" />
34
+          <p>{{ item.name }}</p>
145 35
         </div>
146 36
       </van-list>
147 37
     </div>
@@ -149,83 +39,90 @@
149 39
 </template>
150 40
 
151 41
 <script>
152
-  import { getBloodDialysisPatient } from '@/api/patient/patient';
153
-  // import Vue from 'vue';
154
-  // import { Sticky } from 'vant';
155
-  // Vue.use(Sticky);
156
-  export default {
157
-    data() {
158
-      return {
159
-        searchVal: "",
160
-        active: 0,
161
-        list: [],
162
-        loading: false,
163
-        finished: false,
164
-        page: 0,
165
-        limit: 10,
166
-        total: 0,
167
-        //
168
-        value1: 0,
169
-        value2: "a",
170
-        value3: "a",
171
-        option1: [
172
-          { text: "患者类型", value: 0 },
173
-          { text: "新款商品新款商品新款商品", value: 1 },
174
-          { text: "活动商品", value: 2 }
175
-        ],
176
-        option2: [
177
-          { text: "转规状态", value: "a" },
178
-          { text: "好评排序", value: "b" },
179
-          { text: "销量排序", value: "c" }
180
-        ],
181
-        option3: [
182
-          { text: "患者来源", value: "a" },
183
-          { text: "好评排序", value: "b" },
184
-          { text: "销量排序", value: "c" }
185
-        ],
186
-        list: [],
187
-        loading: false,
188
-        finished: false
189
-      };
42
+import { getBloodDialysisPatient } from "@/api/patient/patient";
43
+export default {
44
+  data() {
45
+    return {
46
+      searchVal: "",
47
+      active: 0,
48
+      list: [],
49
+      loading: false,
50
+      finished: false,
51
+      page: 1,
52
+      limit: 10,
53
+      total: 0,
54
+      //
55
+      value1: 0,
56
+      value2: 0,
57
+      value3: 0,
58
+      option1: [
59
+        { text: "全部患者", value: 0 },
60
+        { text: "透析患者", value: 1 },
61
+        { text: "慢病患者", value: 2 }
62
+      ],
63
+      option2: [
64
+        { text: "全部状态", value: 0 },
65
+        { text: "留治", value: 1 },
66
+        { text: "转出", value: 2 }
67
+      ],
68
+      option3: [
69
+        { text: "全部来源", value: 0 },
70
+        { text: "门诊", value: 1 },
71
+        { text: "住院", value: 2 }
72
+      ],
73
+      patients: []
74
+    };
75
+  },
76
+  methods: {
77
+    getBloodDialysisPatient() {
78
+      getBloodDialysisPatient(this.page, this.limit).then(response => {
79
+        if (response.data.state == 1) {
80
+          var patient = response.data.data.patient;
81
+          // console.log("病人信息", patient);
82
+          let arr = this.patients;
83
+          arr.push(...patient);
84
+          this.patients = arr;
85
+          var total = response.data.data.total;
86
+          this.total = total;
87
+          // console.log("总计", total);
88
+        }
89
+      });
190 90
     },
191
-    methods: {
192
-      onLoad() {
193
-        setTimeout(() => {
194
-          for (let i = 0; i < 10; i++) {
195
-            this.list.push(this.list.length + 1);
196
-          }
197
-
198
-          // 加载状态结束
199
-          this.loading = false;
200
-
201
-          // 数据全部加载完成
202
-          if (this.list.length >= 40) {
203
-            this.finished = true;
204
-          }
205
-        }, 1000);
206
-      },
207
-      getBloodDialysisPatient(){
208
-        getBloodDialysisPatient().then(response=>{
209
-           if(response.data.state == 1){
210
-             var patient =  response.data.data.patient
211
-             console.log("病人信息",patient)
212
-           }
213
-        })
214
-      },
215
-      addPatient(){
216
-        this.$router.push("/addPatints")
217
-      }
91
+    onLoad() {
92
+      setTimeout(() => {
93
+        for (let i = 0; i < this.limit; i++) {
94
+          this.list.push(this.list.length + 1);
95
+        }
96
+        // 加载状态结束
97
+        this.loading = false;
98
+        this.page++;
99
+        this.getBloodDialysisPatient(this.page, this.limit);
100
+        // 数据全部加载完成
101
+        if (this.list.length >= this.total) {
102
+          this.finished = true;
103
+        }
104
+      }, 1000);
105
+    },
106
+    addPatient() {
107
+      this.$router.push("/addPatints");
108
+    },
109
+    toPatientDetail(id) {
110
+      this.$router.push("/patientdetail?patientid=" + id);
218 111
     },
219
-    created() {
220
-      this.getBloodDialysisPatient()
112
+    toReturn() {
113
+      this.$router.push("/homeIndex");
221 114
     }
222
-  };
115
+  },
116
+  created() {
117
+    this.getBloodDialysisPatient();
118
+  }
119
+};
223 120
 </script>
224 121
 
225 122
 <style lang="scss" scoped>
226
-  .page_patientManagement {
227
-    overflow-y: auto;
228
-    height: 100%;
123
+.page_patientManagement {
124
+  overflow-y: auto;
125
+  height: 100%;
229 126
   .patientManagementTitle {
230 127
     background: #fff;
231 128
     padding: 0 1.125rem;
@@ -268,19 +165,24 @@
268 165
   }
269 166
   .patientBox {
270 167
     padding: 0 0.875rem;
271
-  .patientOne {
272
-    display: flex;
273
-    align-items: center;
274
-    height: 3.75rem;
275
-  img {
276
-    width: 2.5rem;
277
-    height: 2.5rem;
278
-    margin-right: 0.875rem;
279
-  }
280
-  }
281
-  }
168
+    .patientOne {
169
+      display: flex;
170
+      align-items: center;
171
+      height: 3.75rem;
172
+      img {
173
+        width: 2.5rem;
174
+        height: 2.5rem;
175
+        margin-right: 0.875rem;
176
+      }
177
+    }
282 178
   }
283
-  ::-webkit-scrollbar {
284
-    width: 0;
179
+  .van-popup {
180
+    border-radius: 0 !important;
181
+    top: 0 !important;
182
+    transform: translate3d(0, 0, 0) !important;
285 183
   }
184
+}
185
+::-webkit-scrollbar {
186
+  width: 0;
187
+}
286 188
 </style>

Filskillnaden har hållits tillbaka eftersom den är för stor
+ 598 - 1020
src/pages/patients/addPatient.vue


+ 72 - 69
src/router/index.js Visa fil

@@ -1,113 +1,116 @@
1
-import Vue from "vue";
2
-import Router from "vue-router";
1
+import Vue from 'vue'
2
+import Router from 'vue-router'
3 3
 
4
-Vue.use(Router);
4
+Vue.use(Router)
5 5
 
6 6
 export default new Router({
7
-  routes: [
8
-    {
9
-      path: "/",
10
-      name: "Home",
11
-      component: () => import("@/pages/home/login")
7
+  routes: [{
8
+      path: '/',
9
+      name: 'Home',
10
+      component: () => import('@/pages/home/login')
12 11
     },
13 12
     // 首页
14 13
     {
15
-      path: "/myIndex",
16
-      name: "myIndex",
17
-      component: () => import("@/pages/home/index"),
18
-      children: [
19
-        {
20
-          path: "/homeIndex",
21
-          component: () => import("@/pages/homeIndex/index.vue")
22
-        }
23
-      ]
14
+      path: '/myIndex',
15
+      name: 'myIndex',
16
+      component: () => import('@/pages/home/index'),
17
+      children: [{
18
+        path: '/homeIndex',
19
+        component: () => import('@/pages/homeIndex/index.vue')
20
+      }]
24 21
     },
25 22
     // 患者中心
26 23
     {
27
-      path: "/patients",
28
-      name: "patients",
29
-      component: () => import("@/pages/patientManagement/index")
24
+      path: '/patients',
25
+      name: 'patients',
26
+      component: () => import('@/pages/patientManagement/index')
30 27
     },
31 28
     // 新增病人
32 29
     {
33
-      path: "/addPatints",
34
-      name: "addpatients",
35
-      component: () => import("@/pages/patients/addPatient")
30
+      path: '/addPatints',
31
+      name: 'addpatients',
32
+      component: () => import('@/pages/patients/addPatient')
33
+    },
34
+    //
35
+    {
36
+      path: '/patientdetail',
37
+      name: 'patientdetail',
38
+      component: () => import('@/pages/doctorAdvice/index')
36 39
     },
37 40
     {
38
-      path: "/product",
39
-      name: "Product",
40
-      component: () => import("@/pages/product/index")
41
+      path: '/product',
42
+      name: 'Product',
43
+      component: () => import('@/pages/product/index')
41 44
     },
42 45
     {
43
-      path: "/main",
44
-      name: "main",
45
-      component: () => import("@/pages/main/index")
46
+      path: '/main',
47
+      name: 'main',
48
+      component: () => import('@/pages/main/index')
46 49
     },
47 50
     {
48
-      path: "/details",
49
-      name: "details",
50
-      component: () => import("@/pages/main/DetailsPage")
51
+      path: '/details',
52
+      name: 'details',
53
+      component: () => import('@/pages/main/DetailsPage')
51 54
     },
52 55
     {
53
-      path: "/monitoring",
54
-      name: "monitorPage",
55
-      component: () => import("@/pages/monitoring/index")
56
+      path: '/monitoring',
57
+      name: 'monitorPage',
58
+      component: () => import('@/pages/monitoring/index')
56 59
     },
57 60
     {
58
-      path: "/my",
59
-      name: "my",
60
-      component: () => import("@/pages/personal/index")
61
+      path: '/my',
62
+      name: 'my',
63
+      component: () => import('@/pages/personal/index')
61 64
     },
62 65
     {
63
-      path: "/advice",
64
-      name: "doctorAdvice",
65
-      component: () => import("@/pages/advice/index")
66
+      path: '/advice',
67
+      name: 'doctorAdvice',
68
+      component: () => import('@/pages/advice/index')
66 69
     },
67 70
     {
68
-      path: "/EditPersonal",
69
-      name: "EditPersonal",
70
-      component: () => import("@/pages/personal/EditPersonal")
71
+      path: '/EditPersonal',
72
+      name: 'EditPersonal',
73
+      component: () => import('@/pages/personal/EditPersonal')
71 74
     },
72 75
     {
73
-      path: "/ElectronicSignature",
74
-      name: "ElectronicSignature",
75
-      component: () => import("@/pages/personal/ElectronicSignature")
76
+      path: '/ElectronicSignature',
77
+      name: 'ElectronicSignature',
78
+      component: () => import('@/pages/personal/ElectronicSignature')
76 79
     },
77 80
     {
78
-      path: "/Print",
79
-      name: "Print",
80
-      component: () => import("@/pages/main/PrintIndex")
81
+      path: '/Print',
82
+      name: 'Print',
83
+      component: () => import('@/pages/main/PrintIndex')
81 84
     },
82 85
     {
83
-      path: "/add_urgent_schedule",
84
-      name: "AddUrgentSchedule",
85
-      component: () => import("@/pages/main/add_urgent_schedule")
86
+      path: '/add_urgent_schedule',
87
+      name: 'AddUrgentSchedule',
88
+      component: () => import('@/pages/main/add_urgent_schedule')
86 89
     },
87 90
     {
88
-      path: "/Prints",
89
-      name: "Prints",
90
-      component: () => import("@/pages/main/Print")
91
+      path: '/Prints',
92
+      name: 'Prints',
93
+      component: () => import('@/pages/main/Print')
91 94
     },
92 95
     {
93
-      path: "/forgetPassword",
94
-      name: "forgetPassword",
95
-      component: () => import("@/pages/personal/ForgetPassword")
96
+      path: '/forgetPassword',
97
+      name: 'forgetPassword',
98
+      component: () => import('@/pages/personal/ForgetPassword')
96 99
     },
97 100
     {
98
-      path: "/changePassword",
99
-      name: "changePassword",
100
-      component: () => import("@/pages/personal/ChangePassword")
101
+      path: '/changePassword',
102
+      name: 'changePassword',
103
+      component: () => import('@/pages/personal/ChangePassword')
101 104
     },
102 105
     {
103
-      path: "/privacy",
104
-      name: "privacy",
105
-      component: () => import("@/pages/privacy/index")
106
+      path: '/privacy',
107
+      name: 'privacy',
108
+      component: () => import('@/pages/privacy/index')
106 109
     },
107 110
     {
108
-      path: "/userAgreement",
109
-      name: "userAgreement",
110
-      component: () => import("@/pages/userAgreement/index")
111
+      path: '/userAgreement',
112
+      name: 'userAgreement',
113
+      component: () => import('@/pages/userAgreement/index')
111 114
     }
112 115
   ]
113
-});
116
+})

+ 128 - 4
src/styles/style.scss Visa fil

@@ -1,10 +1,12 @@
1 1
 .body {
2 2
   // background: $base-color;
3 3
 }
4
+
4 5
 html,
5 6
 body {
6 7
   height: 100%;
7 8
 }
9
+
8 10
 #app {
9 11
   width: 100%;
10 12
   height: 100%;
@@ -31,10 +33,12 @@ body {
31 33
   @include align-items-center;
32 34
   width: 100%;
33 35
   @include justify-content-center;
36
+
34 37
   @media only screen and (max-width: 767px) {
35 38
     line-height: 1.2rem;
36 39
     font-size: 0.45rem;
37 40
   }
41
+
38 42
   .line {
39 43
     width: 0.2rem;
40 44
     height: 0.04rem;
@@ -55,6 +59,7 @@ body {
55 59
 .plate-box {
56 60
   background: $text-color;
57 61
   padding: 0 0 0.3rem 0;
62
+
58 63
   .title {
59 64
     border-bottom: 1px $border-color solid;
60 65
     line-height: 1rem;
@@ -67,11 +72,13 @@ body {
67 72
     @include align-items-center;
68 73
     width: 100%;
69 74
     @include justify-content-center;
75
+
70 76
     @media only screen and (max-width: 767px) {
71 77
       line-height: 1.2rem;
72 78
       font-size: 0.45rem;
73 79
     }
74 80
   }
81
+
75 82
   .line {
76 83
     width: 0.2rem;
77 84
     height: 0.04rem;
@@ -80,6 +87,7 @@ body {
80 87
     display: inline-block;
81 88
     margin: 0 0.2rem;
82 89
   }
90
+
83 91
   .plate {
84 92
     margin: 0.25rem 1rem;
85 93
     padding-bottom: 0.28rem;
@@ -88,42 +96,52 @@ body {
88 96
     @include align-items-start;
89 97
     @include justify-content-between;
90 98
     border-bottom: 1px #e6e6e6 dashed;
99
+
91 100
     ul {
92 101
       @include flex;
102
+
93 103
       li {
94 104
         font-size: 0.34rem;
95 105
         line-height: 0.62rem;
96 106
         float: left;
97 107
         width: 5rem;
108
+
98 109
         @media only screen and (min-width: 376px) and (max-width: 413px) {
99 110
           width: 4.2rem;
100 111
         }
112
+
101 113
         @media only screen and (min-width: 415px) and (max-width: 767px) {
102 114
           width: 5.6rem;
103 115
           font-size: 0.4rem;
104 116
         }
117
+
105 118
         @media only screen and (min-width: 768px) {
106 119
           width: 6.6rem;
107 120
         }
121
+
108 122
         .content {
109 123
           color: $main-color;
110 124
         }
125
+
111 126
         .unit {
112 127
           color: $font-color;
113 128
         }
114 129
       }
115 130
     }
116 131
   }
132
+
117 133
   .note {
118 134
     font-size: 0.34rem;
119 135
     color: $pgh-color;
120 136
     width: 100%;
121 137
     padding: 0 1rem;
122 138
     line-height: 0.5rem;
139
+
123 140
     span {
124 141
       color: $main-color;
125 142
     }
126 143
   }
144
+
127 145
   .border {
128 146
     border: none;
129 147
   }
@@ -137,6 +155,7 @@ body {
137 155
   border-radius: 6px;
138 156
   font-size: 0.28rem;
139 157
   width: 13.2rem;
158
+
140 159
   .title {
141 160
     border-bottom: 1px $border-color solid;
142 161
     height: 0.88rem;
@@ -150,6 +169,7 @@ body {
150 169
     @include align-items-center;
151 170
     width: 100%;
152 171
     @include justify-content-center;
172
+
153 173
     .line {
154 174
       width: 0.1rem;
155 175
       height: 0.04rem;
@@ -159,18 +179,22 @@ body {
159 179
       margin: 0 0.14rem;
160 180
     }
161 181
   }
182
+
162 183
   .content {
163 184
     padding: 0 0.36rem;
185
+
164 186
     .cell {
165 187
       float: left;
166 188
       width: 3.22rem;
167 189
       margin: 0.35rem 0.4rem 0 0.4rem;
190
+
168 191
       label {
169 192
         display: block;
170 193
         height: 0.55rem;
171 194
         line-height: 0.55rem;
172 195
         color: $pgh-color;
173 196
       }
197
+
174 198
       select {
175 199
         width: 100%;
176 200
         padding: 0.2rem 0;
@@ -178,12 +202,14 @@ body {
178 202
         border-radius: 2px;
179 203
         padding-left: 5px;
180 204
       }
205
+
181 206
       .inputBox {
182 207
         border: 1px $border-color solid;
183 208
         border-radius: 2px;
184 209
         padding: 0.18rem 0;
185 210
         padding-left: 5px;
186 211
       }
212
+
187 213
       .textarea {
188 214
         width: 100%;
189 215
         height: 1.22rem;
@@ -192,11 +218,14 @@ body {
192 218
         padding-left: 5px;
193 219
       }
194 220
     }
221
+
195 222
     .width {
196 223
       width: 90%;
224
+
197 225
       label {
198 226
         display: inline-block;
199 227
       }
228
+
200 229
       button {
201 230
         background: $main-color;
202 231
         color: #fff;
@@ -208,6 +237,7 @@ body {
208 237
         margin: 0 0 0.9rem 0;
209 238
       }
210 239
     }
240
+
211 241
     .center {
212 242
       text-align: center;
213 243
     }
@@ -222,6 +252,7 @@ body {
222 252
   @include align-items-center;
223 253
   @include justify-content-around;
224 254
   background: #fff;
255
+
225 256
   span {
226 257
     height: 1.2rem;
227 258
     line-height: 1.2rem;
@@ -235,6 +266,7 @@ body {
235 266
     font-size: 0.45rem;
236 267
     padding: 0 0.16rem;
237 268
   }
269
+
238 270
   .forbid {
239 271
     color: $forbid-color;
240 272
   }
@@ -244,6 +276,7 @@ body {
244 276
 .search-content {
245 277
   background: #ebf1f7;
246 278
   padding: 0.2rem 0.28rem;
279
+
247 280
   .search {
248 281
     background: $white-bg;
249 282
     height: 0.7rem;
@@ -254,11 +287,13 @@ body {
254 287
     @include align-items-center;
255 288
     margin: 0 0.3rem;
256 289
     padding: 0 0 0 0.3rem;
290
+
257 291
     .iconfont {
258 292
       color: #a8b3ba;
259 293
       font-size: 0.4rem;
260 294
       margin: 0 0.1rem 0 0;
261 295
     }
296
+
262 297
     .searchInput {
263 298
       width: 87%;
264 299
       height: 0.6rem;
@@ -279,10 +314,12 @@ body {
279 314
   border: $border-color;
280 315
   background: $text-color;
281 316
   padding: 0 0 0.28rem 0;
317
+
282 318
   tr {
283 319
     padding: 0;
284 320
     margin: 0;
285 321
     padding: 0.1rem 0;
322
+
286 323
     th {
287 324
       background: $main-color;
288 325
       border: none;
@@ -293,11 +330,13 @@ body {
293 330
       line-height: 0.88rem;
294 331
       font-weight: normal;
295 332
     }
333
+
296 334
     td {
297 335
       background: #f0f5fa;
298 336
       border: none;
299 337
       padding: 0.3rem 0;
300 338
       text-align: center;
339
+
301 340
       button {
302 341
         background: $pink;
303 342
         color: #fff;
@@ -314,15 +353,18 @@ body {
314 353
 
315 354
 .vux-popover {
316 355
   box-shadow: 0 0 15px #eee;
356
+
317 357
   .popover-demo-content {
318 358
     ul {
319 359
       // width: 6.4rem;
320 360
       padding: 0.28rem;
361
+
321 362
       li {
322 363
         font-size: 0.32rem;
323 364
         color: $title-color;
324 365
         line-height: 0.7rem;
325 366
         height: 0.7rem;
367
+
326 368
         .iconfont {
327 369
           float: right;
328 370
           color: #409eff;
@@ -342,6 +384,7 @@ body {
342 384
       color: $title-color;
343 385
       line-height: 1rem;
344 386
       height: 1rem;
387
+
345 388
       .iconfont {
346 389
         float: right;
347 390
         color: #409eff;
@@ -365,8 +408,8 @@ body {
365 408
 }
366 409
 
367 410
 .van-popup {
368
-  top: 7% !important;
369
-  transform: translate3d(-50%, 0, 0) !important;
411
+  top: 7%;
412
+  transform: translate3d(-50%, 0, 0);
370 413
 }
371 414
 
372 415
 // 弹窗滚动条
@@ -374,14 +417,17 @@ body {
374 417
   width: 0.25rem;
375 418
   height: 0.25rem;
376 419
   background-color: #fff;
420
+
377 421
   @media only screen and (max-width: 812px) {
378 422
     width: 0 !important;
379 423
     height: 0 !important;
380 424
     background-color: transparent !important;
381 425
   }
426
+
382 427
   @media only screen and (min-width: 768px) and (max-width: 1024px) {
383 428
     width: 0 !important;
384 429
   }
430
+
385 431
   @media only screen and (min-width: 1024px) {
386 432
     width: 0 !important;
387 433
   }
@@ -390,6 +436,7 @@ body {
390 436
 ::-webkit-scrollbar-track {
391 437
   -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, 0.3);
392 438
   background-color: #fff;
439
+
393 440
   @media only screen and (max-width: 812px) {
394 441
     background-color: transparent !important;
395 442
   }
@@ -398,6 +445,7 @@ body {
398 445
 ::-webkit-scrollbar-thumb {
399 446
   -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, 0.3);
400 447
   background-color: #e5e5e5;
448
+
401 449
   @media only screen and (max-width: 812px) {
402 450
     background-color: transparent !important;
403 451
   }
@@ -409,27 +457,35 @@ body {
409 457
 }
410 458
 
411 459
 .van-popup {
412
-  border-radius: 10px !important;
460
+  border-radius: 10px;
461
+
413 462
   .Dialog {
414 463
     font-size: 0.36rem;
415 464
     width: 11.8rem;
465
+
416 466
     @media only screen and (min-width: 415px) and (max-width: 500px) {
417 467
       width: 10.8rem !important;
418 468
     }
469
+
419 470
     @media only screen and (min-width: 501px) and (max-width: 737px) {
420 471
       width: 12.8rem !important;
421 472
     }
473
+
422 474
     @media only screen and (min-width: 376px) and (max-width: 415px) {
423 475
       width: 10.8rem !important;
424 476
     }
477
+
425 478
     @media only screen and (min-width: 769px) and (max-width: 1024px) {
426 479
       width: 12.8rem !important;
427 480
     }
481
+
428 482
     @media only screen and (min-width: 1024px) {
429 483
       width: 15.8rem !important;
430 484
     }
485
+
431 486
     background: #ebf1f7;
432 487
     position: relative;
488
+
433 489
     .DialogTit {
434 490
       @include box-sizing;
435 491
       @include display-flex;
@@ -441,6 +497,7 @@ body {
441 497
       background: #fff;
442 498
       box-shadow: 3px 3px 3px #d7dce2;
443 499
       margin-bottom: 0.24rem;
500
+
444 501
       .iconfont {
445 502
         font-size: 0.6rem;
446 503
         color: $main-color;
@@ -449,12 +506,14 @@ body {
449 506
         //   font-size: 0.34rem !important;
450 507
         // }
451 508
       }
509
+
452 510
       .back {
453 511
         font-size: 0.45rem;
454 512
         color: $main-color;
455 513
         @include display-flex;
456 514
         @include align-items-center;
457 515
         font-weight: 600;
516
+
458 517
         .iconfont {
459 518
           font-size: 0.5rem;
460 519
           font-weight: 700;
@@ -462,35 +521,43 @@ body {
462 521
           margin-top: 0.06rem;
463 522
         }
464 523
       }
524
+
465 525
       .name {
466 526
         font-size: 0.45rem;
467 527
         color: $main-color;
468 528
         font-weight: 600;
469 529
       }
530
+
470 531
       .success {
471 532
         font-size: 0.45rem;
472 533
         font-weight: 600;
473 534
         color: $title-color;
474 535
       }
475 536
     }
537
+
476 538
     .line {
477 539
       height: 0.24rem;
478 540
       background: #ebf1f7;
479 541
     }
542
+
480 543
     .gradient {
481 544
       height: 0.24rem;
482 545
       background: -webkit-linear-gradient(#dfe4ea, #ebf1f7);
483 546
     }
547
+
484 548
     .DialogContent {
485 549
       height: 11.8rem !important;
486 550
       overflow-y: scroll;
487 551
       background: #fff;
552
+
488 553
       @media only screen and (max-width: 415px) {
489 554
         height: 14.8rem !important;
490 555
       }
556
+
491 557
       @media only screen and (min-width: 415px) and (max-width: 737px) {
492 558
         height: 14.8rem !important;
493 559
       }
560
+
494 561
       // @media only screen and (min-width: 666px) and (max-width: 737px) {
495 562
       //   height: 8.8rem !important;
496 563
       // }
@@ -500,9 +567,11 @@ body {
500 567
       @media only screen and (min-width: 768px) {
501 568
         height: 11.8rem !important;
502 569
       }
570
+
503 571
       @media only screen and (min-width: 768px) {
504 572
         height: 11.8rem !important;
505 573
       }
574
+
506 575
       .item {
507 576
         padding: 0 0.32rem;
508 577
         border-bottom: 1px #e5e5e5 solid;
@@ -512,23 +581,28 @@ body {
512 581
         @include text-align;
513 582
         @include justify-content-between;
514 583
         color: $title-color;
584
+
515 585
         .name {
516 586
           font-size: 0.45rem;
517 587
           height: 1.2rem;
518 588
           line-height: 1.2rem;
519 589
           color: $title-color;
590
+
520 591
           @media only screen and (max-width: 767px) {
521 592
             height: 1.4rem;
522 593
             line-height: 1.4rem;
523 594
           }
524 595
         }
596
+
525 597
         .content {
526 598
           @include flex;
527 599
           text-align: right;
528 600
           margin-left: 0.2rem;
601
+
529 602
           .iconfont {
530 603
             font-size: 0.5rem;
531 604
           }
605
+
532 606
           input {
533 607
             height: 1rem;
534 608
             line-height: 1rem;
@@ -538,6 +612,7 @@ body {
538 612
             text-align: right;
539 613
             width: 100%;
540 614
           }
615
+
541 616
           .text {
542 617
             height: 1rem;
543 618
             line-height: 0.5rem;
@@ -546,16 +621,19 @@ body {
546 621
         }
547 622
       }
548 623
     }
624
+
549 625
     .footer {
550 626
       height: 1rem;
551 627
       line-height: 1rem;
552 628
       padding-left: 0.36rem;
553 629
     }
630
+
554 631
     .PrescSubmit {
555 632
       width: 100%;
556 633
       padding: 0.2rem 0;
557 634
       background: #fff;
558 635
       text-align: center;
636
+
559 637
       button {
560 638
         padding: 0 0.32rem;
561 639
         border: $main-color;
@@ -568,6 +646,7 @@ body {
568 646
         border-radius: 5px;
569 647
         color: $main-color;
570 648
         margin: 0 0.11rem;
649
+
571 650
         &.tjcq {
572 651
           background: $main-color;
573 652
           color: #fff;
@@ -580,19 +659,23 @@ body {
580 659
 // 表单样式
581 660
 .table {
582 661
   width: 1800px;
662
+
583 663
   @media only screen and (min-width: 415px) and (max-width: 767px) {
584 664
     width: 2800px;
585 665
   }
666
+
586 667
   overflow: auto;
587 668
   font-size: 0.45rem;
588 669
   text-align: center;
589 670
   border: $border-color;
590 671
   padding-bottom: 0.02rem;
591 672
   border: none;
673
+
592 674
   tr {
593 675
     padding: 0;
594 676
     margin: 0;
595 677
     padding: 0.14rem 0;
678
+
596 679
     th {
597 680
       background: $main-color;
598 681
       border: none;
@@ -602,6 +685,7 @@ body {
602 685
       height: 1.2rem;
603 686
       font-weight: normal;
604 687
     }
688
+
605 689
     td {
606 690
       background: #ecf5ff;
607 691
       border: none;
@@ -612,16 +696,19 @@ body {
612 696
         font-size: 0.45rem;
613 697
         margin-right: 0.2rem;
614 698
         cursor: pointer;
699
+
615 700
         .iconfont {
616 701
           margin-right: 0.1rem;
617 702
           color: $main-color;
618 703
           font-size: 0.45rem;
619 704
         }
620 705
       }
706
+
621 707
       .sc {
622 708
         color: #ff7979;
623 709
         margin-right: 0.2rem;
624 710
         cursor: pointer;
711
+
625 712
         .iconfont {
626 713
           color: #ff7979;
627 714
         }
@@ -634,6 +721,7 @@ body {
634 721
   color: #fff;
635 722
   border-color: $main-color !important;
636 723
   background-color: $main-color !important;
724
+
637 725
   @media only screen and (min-width: 768px) {
638 726
     font-size: 20px !important;
639 727
     line-height: 30px !important;
@@ -641,12 +729,14 @@ body {
641 729
     height: 30px !important;
642 730
   }
643 731
 }
732
+
644 733
 .van-checkbox__icon {
645 734
   @media only screen and (min-width: 768px) {
646 735
     line-height: 30px !important;
647 736
     height: 30px !important;
648 737
   }
649 738
 }
739
+
650 740
 .van-checkbox__icon .van-icon {
651 741
   @media only screen and (min-width: 768px) {
652 742
     font-size: 20px !important;
@@ -668,6 +758,7 @@ body {
668 758
 .CheckBox .van-checkbox__label {
669 759
   width: 94%;
670 760
   font-size: 0.45rem;
761
+
671 762
   @media only screen and (max-width: 812px) {
672 763
     width: 90%;
673 764
   }
@@ -690,10 +781,12 @@ body {
690 781
   align-items: center;
691 782
   justify-content: center;
692 783
   text-align: center;
784
+
693 785
   img {
694 786
     width: 180px;
695 787
   }
696 788
 }
789
+
697 790
 .el-popper {
698 791
   margin-top: 0 !important;
699 792
 }
@@ -702,11 +795,13 @@ body {
702 795
 .DialogContent,
703 796
 .optionsBox,
704 797
 .el-collapse-item__content {
798
+
705 799
   /* 针对缺省样式 (必须的) */
706 800
   &::-webkit-scrollbar {
707 801
     width: 6px;
708 802
     height: 10px;
709 803
   }
804
+
710 805
   /* 滚动条的滑轨背景颜色 */
711 806
   &::-webkit-scrollbar-track {
712 807
     background-color: #fff;
@@ -714,6 +809,7 @@ body {
714 809
     -moz-border-radius: 3px;
715 810
     -webkit-border-radius: 3px;
716 811
   }
812
+
717 813
   /* 滑块颜色 */
718 814
   &::-webkit-scrollbar-thumb {
719 815
     background: #d7dce2;
@@ -721,6 +817,7 @@ body {
721 817
     -moz-border-radius: 3px;
722 818
     -webkit-border-radius: 3px;
723 819
   }
820
+
724 821
   /*内层轨道的颜色*/
725 822
   &::-webkit-scrollbar-track-piece {
726 823
     background-color: #fff;
@@ -728,12 +825,14 @@ body {
728 825
     -moz-border-radius: 3px;
729 826
     -webkit-border-radius: 3px;
730 827
   }
828
+
731 829
   /* 滑轨两头的监听按钮颜色 */
732 830
   &::-webkit-scrollbar-button {
733 831
     background-color: #eee;
734 832
     width: 0;
735 833
     height: 0;
736 834
   }
835
+
737 836
   /* 横向滚动条和纵向滚动条相交处尖角的颜色 */
738 837
   &::-webkit-scrollbar-corner {
739 838
     background-color: #eee;
@@ -742,6 +841,7 @@ body {
742 841
 
743 842
 .el-form-item__label {
744 843
   font-size: 0.45rem !important; // width: 90px !important;
844
+
745 845
   @media only screen and (max-width: 812px) {
746 846
     text-align: left !important;
747 847
   }
@@ -751,8 +851,9 @@ body {
751 851
   font-size: 0.45rem !important;
752 852
 }
753 853
 
754
-.el-radio + .el-radio {
854
+.el-radio+.el-radio {
755 855
   margin-left: 15px !important;
856
+
756 857
   @media only screen and (max-width: 812px) {
757 858
     margin-left: 0 !important;
758 859
   }
@@ -761,6 +862,7 @@ body {
761 862
 .el-button--mini {
762 863
   font-size: 0.32rem !important;
763 864
 }
865
+
764 866
 .el-form-item__label,
765 867
 .el-radio,
766 868
 .van-checkbox__label {
@@ -772,15 +874,18 @@ body {
772 874
   color: $pgh-color !important;
773 875
   height: 64px !important;
774 876
   line-height: 64px !important;
877
+
775 878
   @media only screen and (max-width: 767px) {
776 879
     font-size: 0.45rem !important;
777 880
     height: 48px !important;
778 881
     line-height: 48px !important;
779 882
   }
780 883
 }
884
+
781 885
 .el-collapse-item__arrow {
782 886
   color: #a8b3ba !important;
783 887
   line-height: 64px !important;
888
+
784 889
   @media only screen and (max-width: 812px) {
785 890
     line-height: 48px !important;
786 891
   }
@@ -792,18 +897,22 @@ body {
792 897
   width: 6.2rem;
793 898
   float: right;
794 899
   font-size: 0.45rem;
900
+
795 901
   .field {
796 902
     // @media only screen and (max-width: 812px) {
797 903
     //   margin-top: 6px;
798 904
     // }
799 905
   }
906
+
800 907
   .iconfont {
801 908
     color: #a8b3ba;
802 909
     font-size: 0.42rem;
910
+
803 911
     @media only screen and (max-width: 812px) {
804 912
       font-size: 0.52rem;
805 913
     }
806 914
   }
915
+
807 916
   .field {
808 917
     background-color: #ebf1f7;
809 918
     padding: 0 0 0 10px;
@@ -812,6 +921,7 @@ body {
812 921
     align-items: center;
813 922
     height: 0.64rem !important;
814 923
     line-height: 0.64rem !important;
924
+
815 925
     @media only screen and (max-width: 812px) {
816 926
       padding: 0 0 0 4px;
817 927
     }
@@ -823,7 +933,9 @@ body {
823 933
   //   font-size: 12px !important;
824 934
   // }
825 935
 }
936
+
826 937
 .van-field__left-icon {
938
+
827 939
   // @media only screen and (max-width: 812px) {
828 940
   //   // margin-right: 0 !important;
829 941
   //   margin-top: -1px;
@@ -834,21 +946,25 @@ body {
834 946
     }
835 947
   }
836 948
 }
949
+
837 950
 .van-field__button {
838 951
   @media only screen and (max-width: 812px) {
839 952
     padding-left: 0 !important;
840 953
   }
841 954
 }
955
+
842 956
 .van-switch {
843 957
   @media only screen and (max-width: 812px) {
844 958
     font-size: 16px !important;
845 959
   }
846 960
 }
961
+
847 962
 .picker-toolbar {
848 963
   @media only screen and (max-width: 768px) {
849 964
     height: 40px !important;
850 965
   }
851 966
 }
967
+
852 968
 .mint-datetime-action {
853 969
   @media only screen and (max-width: 768px) {
854 970
     line-height: 40px !important;
@@ -862,16 +978,19 @@ body {
862 978
   @include align-items-center;
863 979
   @include text-align;
864 980
   font-size: 0.45rem;
981
+
865 982
   .back {
866 983
     // color: $main-color;
867 984
     color: #fff;
868 985
     margin-right: 0.3rem;
986
+
869 987
     .iconfont {
870 988
       // color: $main-color;
871 989
       color: #fff;
872 990
       font-size: 0.42rem;
873 991
     }
874 992
   }
993
+
875 994
   .name {
876 995
     .iconfont {
877 996
       margin-left: 0.1rem;
@@ -881,6 +1000,7 @@ body {
881 1000
 
882 1001
 .van-button--small {
883 1002
   font-size: 0.28rem !important;
1003
+
884 1004
   @media only screen and (max-width: 812px) {
885 1005
     min-width: 36px !important;
886 1006
   }
@@ -906,6 +1026,7 @@ body {
906 1026
   z-index: 1000;
907 1027
   background: #fff;
908 1028
 }
1029
+
909 1030
 // .choice,
910 1031
 // .screening{
911 1032
 //   position: fixed;
@@ -920,14 +1041,17 @@ body {
920 1041
   background: #fff;
921 1042
   min-height: calc(100vh - 2px);
922 1043
   padding-left: 0.45rem;
1044
+
923 1045
   @media only screen and (min-width: 768px) {
924 1046
     padding-top: 232px;
925 1047
   }
1048
+
926 1049
   @media only screen and (min-width: 415px) and (max-width: 767px) {
927 1050
     padding-top: 186px;
928 1051
     padding-left: 0.3rem;
929 1052
   }
930 1053
 }
1054
+
931 1055
 #app {
932 1056
   -webkit-overflow-scrolling: touch;
933 1057
 }