seimin vor 1 Jahr
Ursprung
Commit
4e87863d96

+ 1 - 1
main.js

@@ -4,7 +4,7 @@ import App from './App'
4 4
 import wx from 'weixin-jsapi'
5 5
 // import VConsole from 'vconsole';
6 6
 // new VConsole();
7
-console.info('v2.4.30');
7
+console.info('v2.4.31');
8 8
 Vue.prototype.wx = wx //声明扫码
9 9
 Vue.prototype.audios = [] //待播放的语音集合
10 10
 // #endif

+ 21 - 0
pages.json

@@ -392,6 +392,27 @@
392 392
           "titleNView": false
393 393
         }
394 394
       }
395
+    }, {
396
+      "path": "pages/formManagementWechat/formManagementWechat",
397
+      "style": {
398
+        "h5": {
399
+          "titleNView": false
400
+        }
401
+      }
402
+    }, {
403
+      "path": "pages/formManagementBuilding/formManagementBuilding",
404
+      "style": {
405
+        "h5": {
406
+          "titleNView": false
407
+        }
408
+      }
409
+    }, {
410
+      "path": "pages/formManagementDept/formManagementDept",
411
+      "style": {
412
+        "h5": {
413
+          "titleNView": false
414
+        }
415
+      }
395 416
     }
396 417
   ],
397 418
   "globalStyle": {

+ 429 - 0
pages/formManagementBuilding/formManagementBuilding.vue

@@ -0,0 +1,429 @@
1
+<template>
2
+  <view class="formManagementWechat">
3
+    <view class="page_tab">
4
+      <view class="page_tab_bar active">
5
+        <view class="tab_dept">楼栋信息</view>
6
+      </view>
7
+    </view>
8
+    <view v-if="zxzData.length == 0" class="zwsj">
9
+      <image class="zwsj-img" mode="widthFix" src="../../static/img/zanwushuju.png"></image>
10
+      <view class="zwsj-txt">暂无数据</view>
11
+    </view>
12
+    <view v-if="zxzData.length" class="page_items">
13
+      <scroll-view class="page_items_scroll" scroll-y>
14
+        <view class="page_item_wrap" v-for="(item, index) of zxzData" :key="index">
15
+          <view class="page_item">
16
+            <view class="L"></view>
17
+            <view class="R"></view>
18
+            <view class="page_item_top">
19
+              <view class="page_item_top_L">
20
+                {{item.name || '无'}}
21
+              </view>
22
+              <view class="send_wrap"></view>
23
+            </view>
24
+            <view class="page_item_cont">
25
+              <view class="page_item_conts">
26
+              </view>
27
+            </view>
28
+            <view class="page_item_btn" hover-class="seimin-btn-hover" @click="itemInfo(item.id)">详情</view>
29
+          </view>
30
+          <view class="L-l"></view>
31
+          <view class="R-l"></view>
32
+        </view>
33
+      </scroll-view>
34
+    </view>
35
+    <!-- 底部 -->
36
+    <view class="foot_btn2 footerPadding">
37
+      <view class="btn2" @click="goBack">返回</view>
38
+    </view>
39
+  </view>
40
+</template>
41
+<script>
42
+  import {
43
+    get,
44
+    post,
45
+    webHandle
46
+  } from "../../http/http.js";
47
+  export default {
48
+    data() {
49
+      return {
50
+        hosId: uni.getStorageSync("userData").user.currentHospital.id,
51
+        options: {},
52
+        //列表数据
53
+        zxzData: [],
54
+      };
55
+    },
56
+    methods: {
57
+      // 返回
58
+      goBack() {
59
+        uni.navigateBack();
60
+      },
61
+      // 进入详情页
62
+      itemInfo(id) {
63
+        // #ifdef H5
64
+        document.body.removeEventListener("touchmove", this.stop, {
65
+          passive: false,
66
+        });
67
+        // #endif
68
+        uni.navigateTo({
69
+          url: `../formManagementDept/formManagementDept?id=${this.options.id}&buildingId=${id}`,
70
+        });
71
+      },
72
+      //表单列表获取
73
+      getList() {
74
+        let data = {
75
+          reserveFormId: this.options.id,
76
+        };
77
+        uni.showLoading({
78
+          title: "加载中",
79
+          mask: true,
80
+        });
81
+        // 请求列表数据
82
+        post("/nurse/reserveView", data).then((res) => {
83
+          uni.hideLoading();
84
+          if (res.state == 200) {
85
+            const data = res.data || {};
86
+            if(Object.keys(data).length > 0){
87
+              // 楼栋-楼层-科室-工单 转成前端可用的 楼栋-科室-工单
88
+              let buildings = Object.keys(data)
89
+              .map(v => ({
90
+                id: v,
91
+                name: Object.values(Object.values(data[v])[0])[0][0][3],
92
+                departments: (
93
+                  Object.values(data[v]).map(vv => Object.keys(vv).map(vvv => ({id: vvv, name: vv[vvv][0][6], orders: vv[vvv], checked: false, isDisabled: vv[vvv].every(vvvv => !(vvvv[12] == 2 || (!vvvv[8] && vvvv[12] != 2)))})))
94
+                ).flat()
95
+              }));
96
+              console.log(buildings)
97
+              this.zxzData = buildings;
98
+            }else{
99
+              this.zxzData = [];
100
+            }
101
+          } else {
102
+            this.zxzData = [];
103
+            uni.showToast({
104
+              icon: "none",
105
+              title: "请求失败!",
106
+            });
107
+          }
108
+        });
109
+      },
110
+      // 阻止浏览器滑动
111
+      stop(e) {
112
+        e.preventDefault();
113
+      },
114
+    },
115
+    onLoad(options) {
116
+      console.log(options);
117
+      this.options = options;
118
+      this.getList();
119
+      // #ifdef APP-PLUS
120
+      webHandle("no", "app");
121
+      // #endif
122
+      // #ifdef H5
123
+      webHandle("no", "wx");
124
+      // #endif
125
+    },
126
+    onShow() {
127
+      // #ifdef H5
128
+      document.body.addEventListener("touchmove", this.stop, {
129
+        passive: false,
130
+      });
131
+      // #endif
132
+    },
133
+    onHide() {
134
+      // #ifdef H5
135
+      document.body.removeEventListener("touchmove", this.stop, {
136
+        passive: false,
137
+      });
138
+      // #endif
139
+    },
140
+  };
141
+</script>
142
+<style lang="less" scoped>
143
+  .formManagementWechat {
144
+    width: 100%;
145
+    height: 100%;
146
+    position: relative;
147
+    
148
+    .foot_btn2 {
149
+      position: fixed;
150
+      bottom: 0;
151
+      right: 20rpx;
152
+      left: 20rpx;
153
+      line-height: 66rpx;
154
+      height: 100rpx;
155
+      border-top: 2rpx solid #e5e9ed;
156
+      background: #f9fafb;
157
+      display: flex;
158
+      justify-content: space-between;
159
+    
160
+      .btn2 {
161
+        height: 66rpx;
162
+        width: 100%;
163
+        margin: 0 1%;
164
+        background-image: linear-gradient(to right, #72c172, #3bb197);
165
+        color: #fff;
166
+        border-radius: 8rpx;
167
+        font-size: 32rpx;
168
+        margin-top: 16rpx;
169
+        text-align: center;
170
+      }
171
+    
172
+      .btn3 {
173
+        height: 66rpx;
174
+        width: 48%;
175
+        margin: 0 1%;
176
+        background-image: linear-gradient(to right, #72c172, #3bb197);
177
+        color: #fff;
178
+        border-radius: 8rpx;
179
+        font-size: 32rpx;
180
+        margin-top: 16rpx;
181
+        text-align: center;
182
+      }
183
+    }
184
+
185
+    .icon_transport {
186
+      color: #49b856;
187
+      font-size: 50rpx;
188
+
189
+      &.colorRed {
190
+        color: red;
191
+        font-size: 40rpx;
192
+      }
193
+    }
194
+
195
+    .page_tab {
196
+      width: 100%;
197
+      height: 96rpx;
198
+      display: flex;
199
+      position: fixed;
200
+      left: 0;
201
+      top: 0;
202
+      z-index: 999;
203
+
204
+      .page_tab_bar {
205
+        flex: 1;
206
+        font-size: 36rpx;
207
+        background: #fff;
208
+        display: flex;
209
+        justify-content: center;
210
+        align-items: center;
211
+        position: relative;
212
+
213
+        &:after {
214
+          content: "";
215
+          position: absolute;
216
+          left: 0;
217
+          bottom: 0;
218
+          height: 2rpx;
219
+          width: 100%;
220
+          background-color: transparent;
221
+        }
222
+
223
+        .tab_dept {
224
+          position: relative;
225
+
226
+          .changeDept {
227
+            white-space: nowrap;
228
+            margin: 0;
229
+            position: absolute;
230
+            right: 0;
231
+            top: 50%;
232
+            transform: translate(105%, -50%);
233
+            padding: 0 0.5em;
234
+            line-height: 2;
235
+          }
236
+        }
237
+
238
+        &.active {
239
+          color: #49b856;
240
+
241
+          &:after {
242
+            background-color: #49b856;
243
+          }
244
+        }
245
+      }
246
+    }
247
+
248
+    .zwsj {
249
+      position: absolute;
250
+      left: 50%;
251
+      top: 180rpx;
252
+      transform: translateX(-50%);
253
+
254
+      .zwsj-img {
255
+        width: 560rpx;
256
+      }
257
+
258
+      .zwsj-txt {
259
+        font-size: 36rpx;
260
+        font-weight: 700;
261
+        margin-top: 20rpx;
262
+        text-align: center;
263
+      }
264
+    }
265
+
266
+    .page_items {
267
+      height: calc(100vh - 284rpx);
268
+      padding: 0 20rpx;
269
+      padding-top: 96rpx;
270
+
271
+      .page_items_scroll {
272
+        height: 100%;
273
+
274
+        .page_item_wrap {
275
+          position: relative;
276
+          margin-bottom: 32rpx;
277
+
278
+          .page_item {
279
+            margin-bottom: 16rpx;
280
+            max-height: 276rpx;
281
+            background: #fff;
282
+            border-radius: 8rpx;
283
+            overflow: hidden;
284
+            border: 2rpx solid #e5e9ed;
285
+            display: flex;
286
+            flex-direction: column;
287
+            justify-content: space-between;
288
+
289
+            .L {
290
+              width: 40rpx;
291
+              height: 40rpx;
292
+              border-radius: 50%;
293
+              background: #f9fafb;
294
+              position: absolute;
295
+              left: -24rpx;
296
+              top: 68rpx;
297
+              border: 2rpx solid #e5e9ed;
298
+            }
299
+
300
+            .R {
301
+              width: 40rpx;
302
+              height: 40rpx;
303
+              border-radius: 50%;
304
+              background: #f9fafb;
305
+              position: absolute;
306
+              float: right;
307
+              right: -24rpx;
308
+              top: 68rpx;
309
+              border: 2rpx solid #e5e9ed;
310
+            }
311
+
312
+            .page_item_top {
313
+              height: 86rpx;
314
+              border-bottom: 2rpx dashed #e5e9ed;
315
+              padding: 0 16rpx;
316
+              display: flex;
317
+              align-items: center;
318
+              justify-content: space-between;
319
+
320
+              .send_wrap {
321
+                display: flex;
322
+                justify-content: space-between;
323
+                align-items: center;
324
+              }
325
+
326
+              .sendBack {
327
+                button {
328
+                  font-size: 28rpx;
329
+                  height: 52rpx;
330
+                  line-height: 52rpx;
331
+                  margin: 0;
332
+                  color: rgb(7, 134, 60);
333
+                }
334
+              }
335
+
336
+              .page_item_top_L {
337
+                height: 100%;
338
+                float: left;
339
+                display: flex;
340
+                align-items: center;
341
+                line-height: 88rpx;
342
+
343
+                .L_time {
344
+                  color: #6cc076;
345
+                  font-size: 32rpx;
346
+                }
347
+              }
348
+
349
+              .page_item_top_R {
350
+                height: 40rpx;
351
+                float: right;
352
+                line-height: 40rpx;
353
+                font-size: 24rpx;
354
+                padding: 0 8rpx;
355
+                background-color: red;
356
+                color: #fff;
357
+              }
358
+            }
359
+
360
+            .page_item_cont {
361
+              min-height: 30rpx;
362
+              max-height: 344rpx;
363
+              padding: 0 16rpx;
364
+              text-align: left;
365
+              position: relative;
366
+
367
+              .page_item_conts {
368
+                color: rgb(102, 102, 102);
369
+                font-size: 28rpx;
370
+                display: flex;
371
+                align-items: center;
372
+                min-height: 30rpx;
373
+                max-height: 344rpx;
374
+
375
+                view {
376
+                  margin-bottom: 10rpx;
377
+                  margin-left: 40rpx;
378
+
379
+                  &:first-of-type {
380
+                    margin-left: 0;
381
+                  }
382
+                }
383
+
384
+                text {
385
+                  color: #49b856;
386
+                }
387
+
388
+                .num {
389
+                  float: right;
390
+                }
391
+              }
392
+            }
393
+
394
+            .page_item_btn {
395
+              height: 88rpx;
396
+              background-image: linear-gradient(to right, #72c172, #3bb197);
397
+              border-radius: 8rpx;
398
+              line-height: 88rpx;
399
+              color: #fff;
400
+              font-size: 36rpx;
401
+              font-weight: 700;
402
+              text-align: center;
403
+            }
404
+          }
405
+
406
+          .L-l {
407
+            width: 2rpx;
408
+            height: 40rpx;
409
+            background: #f9fafb;
410
+            position: absolute;
411
+            left: 20rpx;
412
+            top: 72rpx;
413
+            display: none;
414
+          }
415
+
416
+          .R-l {
417
+            width: 2rpx;
418
+            height: 40rpx;
419
+            background: #f9fafb;
420
+            position: absolute;
421
+            right: 20rpx;
422
+            top: 72rpx;
423
+            display: none;
424
+          }
425
+        }
426
+      }
427
+    }
428
+  }
429
+</style>

+ 428 - 0
pages/formManagementDept/formManagementDept.vue

@@ -0,0 +1,428 @@
1
+<template>
2
+  <view class="formManagementWechat">
3
+    <view class="page_tab">
4
+      <view class="page_tab_bar active">
5
+        <view class="tab_dept">科室信息</view>
6
+      </view>
7
+    </view>
8
+    <view v-if="zxzData.length == 0" class="zwsj">
9
+      <image class="zwsj-img" mode="widthFix" src="../../static/img/zanwushuju.png"></image>
10
+      <view class="zwsj-txt">暂无数据</view>
11
+    </view>
12
+    <view v-if="zxzData.length" class="page_items">
13
+      <scroll-view class="page_items_scroll" scroll-y>
14
+        <view class="page_item_wrap" v-for="(item, index) of zxzData" :key="index">
15
+          <view class="page_item">
16
+            <view class="L"></view>
17
+            <view class="R"></view>
18
+            <view class="page_item_top">
19
+              <view class="page_item_top_L">
20
+                {{item.name || '无'}}
21
+              </view>
22
+              <view class="send_wrap"></view>
23
+            </view>
24
+            <view class="page_item_cont">
25
+              <view class="page_item_conts">
26
+                <view v-for="(order, i) of item.orders" :key="i">
27
+                  {{order[11].slice(-4)}}-{{order[7]}} {{order[8]}}
28
+                </view>
29
+              </view>
30
+            </view>
31
+          </view>
32
+          <view class="L-l"></view>
33
+          <view class="R-l"></view>
34
+        </view>
35
+      </scroll-view>
36
+    </view>
37
+    <!-- 底部 -->
38
+    <view class="foot_btn2 footerPadding">
39
+      <view class="btn2" @click="goBack">返回</view>
40
+    </view>
41
+  </view>
42
+</template>
43
+<script>
44
+  import {
45
+    get,
46
+    post,
47
+    webHandle
48
+  } from "../../http/http.js";
49
+  export default {
50
+    data() {
51
+      return {
52
+        hosId: uni.getStorageSync("userData").user.currentHospital.id,
53
+        options: {},
54
+        //列表数据
55
+        zxzData: [],
56
+      };
57
+    },
58
+    methods: {
59
+      // 返回
60
+      goBack() {
61
+        uni.navigateBack();
62
+      },
63
+      // 进入详情页
64
+      itemInfo(id) {
65
+        // #ifdef H5
66
+        document.body.removeEventListener("touchmove", this.stop, {
67
+          passive: false,
68
+        });
69
+        // #endif
70
+        uni.navigateTo({
71
+          url: `../formManagementDept/formManagementDept?id=${this.options.id}`,
72
+        });
73
+      },
74
+      //表单列表获取
75
+      getList() {
76
+        let data = {
77
+          reserveFormId: this.options.id,
78
+        };
79
+        uni.showLoading({
80
+          title: "加载中",
81
+          mask: true,
82
+        });
83
+        // 请求列表数据
84
+        post("/nurse/reserveView", data).then((res) => {
85
+          uni.hideLoading();
86
+          if (res.state == 200) {
87
+            const data = res.data || {};
88
+            if(Object.keys(data).length > 0){
89
+              // 楼栋-楼层-科室-工单 转成前端可用的 楼栋-科室-工单
90
+              let buildings = Object.keys(data)
91
+              .map(v => ({
92
+                id: v,
93
+                name: Object.values(Object.values(data[v])[0])[0][0][3],
94
+                departments: (
95
+                  Object.values(data[v]).map(vv => Object.keys(vv).map(vvv => ({id: vvv, name: vv[vvv][0][6], orders: vv[vvv], checked: false, isDisabled: vv[vvv].every(vvvv => !(vvvv[12] == 2 || (!vvvv[8] && vvvv[12] != 2)))})))
96
+                ).flat()
97
+              }));
98
+              console.log(buildings)
99
+              this.zxzData = buildings.find(v => v.id == this.options.buildingId).departments;
100
+            }else{
101
+              this.zxzData = [];
102
+            }
103
+          } else {
104
+            this.zxzData = [];
105
+            uni.showToast({
106
+              icon: "none",
107
+              title: "请求失败!",
108
+            });
109
+          }
110
+        });
111
+      },
112
+      // 阻止浏览器滑动
113
+      stop(e) {
114
+        e.preventDefault();
115
+      },
116
+    },
117
+    onLoad(options) {
118
+      console.log(options);
119
+      this.options = options;
120
+      this.getList();
121
+      // #ifdef APP-PLUS
122
+      webHandle("no", "app");
123
+      // #endif
124
+      // #ifdef H5
125
+      webHandle("no", "wx");
126
+      // #endif
127
+    },
128
+    onShow() {
129
+      // #ifdef H5
130
+      document.body.addEventListener("touchmove", this.stop, {
131
+        passive: false,
132
+      });
133
+      // #endif
134
+    },
135
+    onHide() {
136
+      // #ifdef H5
137
+      document.body.removeEventListener("touchmove", this.stop, {
138
+        passive: false,
139
+      });
140
+      // #endif
141
+    },
142
+  };
143
+</script>
144
+<style lang="less" scoped>
145
+  .formManagementWechat {
146
+    width: 100%;
147
+    height: 100%;
148
+    position: relative;
149
+    
150
+    .foot_btn2 {
151
+      position: fixed;
152
+      bottom: 0;
153
+      right: 20rpx;
154
+      left: 20rpx;
155
+      line-height: 66rpx;
156
+      height: 100rpx;
157
+      border-top: 2rpx solid #e5e9ed;
158
+      background: #f9fafb;
159
+      display: flex;
160
+      justify-content: space-between;
161
+    
162
+      .btn2 {
163
+        height: 66rpx;
164
+        width: 100%;
165
+        margin: 0 1%;
166
+        background-image: linear-gradient(to right, #72c172, #3bb197);
167
+        color: #fff;
168
+        border-radius: 8rpx;
169
+        font-size: 32rpx;
170
+        margin-top: 16rpx;
171
+        text-align: center;
172
+      }
173
+    
174
+      .btn3 {
175
+        height: 66rpx;
176
+        width: 48%;
177
+        margin: 0 1%;
178
+        background-image: linear-gradient(to right, #72c172, #3bb197);
179
+        color: #fff;
180
+        border-radius: 8rpx;
181
+        font-size: 32rpx;
182
+        margin-top: 16rpx;
183
+        text-align: center;
184
+      }
185
+    }
186
+
187
+    .icon_transport {
188
+      color: #49b856;
189
+      font-size: 50rpx;
190
+
191
+      &.colorRed {
192
+        color: red;
193
+        font-size: 40rpx;
194
+      }
195
+    }
196
+
197
+    .page_tab {
198
+      width: 100%;
199
+      height: 96rpx;
200
+      display: flex;
201
+      position: fixed;
202
+      left: 0;
203
+      top: 0;
204
+      z-index: 999;
205
+
206
+      .page_tab_bar {
207
+        flex: 1;
208
+        font-size: 36rpx;
209
+        background: #fff;
210
+        display: flex;
211
+        justify-content: center;
212
+        align-items: center;
213
+        position: relative;
214
+
215
+        &:after {
216
+          content: "";
217
+          position: absolute;
218
+          left: 0;
219
+          bottom: 0;
220
+          height: 2rpx;
221
+          width: 100%;
222
+          background-color: transparent;
223
+        }
224
+
225
+        .tab_dept {
226
+          position: relative;
227
+
228
+          .changeDept {
229
+            white-space: nowrap;
230
+            margin: 0;
231
+            position: absolute;
232
+            right: 0;
233
+            top: 50%;
234
+            transform: translate(105%, -50%);
235
+            padding: 0 0.5em;
236
+            line-height: 2;
237
+          }
238
+        }
239
+
240
+        &.active {
241
+          color: #49b856;
242
+
243
+          &:after {
244
+            background-color: #49b856;
245
+          }
246
+        }
247
+      }
248
+    }
249
+
250
+    .zwsj {
251
+      position: absolute;
252
+      left: 50%;
253
+      top: 180rpx;
254
+      transform: translateX(-50%);
255
+
256
+      .zwsj-img {
257
+        width: 560rpx;
258
+      }
259
+
260
+      .zwsj-txt {
261
+        font-size: 36rpx;
262
+        font-weight: 700;
263
+        margin-top: 20rpx;
264
+        text-align: center;
265
+      }
266
+    }
267
+
268
+    .page_items {
269
+      height: calc(100vh - 284rpx);
270
+      padding: 0 20rpx;
271
+      padding-top: 96rpx;
272
+
273
+      .page_items_scroll {
274
+        height: 100%;
275
+
276
+        .page_item_wrap {
277
+          position: relative;
278
+          margin-bottom: 32rpx;
279
+
280
+          .page_item {
281
+            margin-bottom: 16rpx;
282
+            background: #fff;
283
+            border-radius: 8rpx;
284
+            overflow: hidden;
285
+            border: 2rpx solid #e5e9ed;
286
+            display: flex;
287
+            flex-direction: column;
288
+            justify-content: space-between;
289
+
290
+            .L {
291
+              width: 40rpx;
292
+              height: 40rpx;
293
+              border-radius: 50%;
294
+              background: #f9fafb;
295
+              position: absolute;
296
+              left: -24rpx;
297
+              top: 68rpx;
298
+              border: 2rpx solid #e5e9ed;
299
+            }
300
+
301
+            .R {
302
+              width: 40rpx;
303
+              height: 40rpx;
304
+              border-radius: 50%;
305
+              background: #f9fafb;
306
+              position: absolute;
307
+              float: right;
308
+              right: -24rpx;
309
+              top: 68rpx;
310
+              border: 2rpx solid #e5e9ed;
311
+            }
312
+
313
+            .page_item_top {
314
+              height: 86rpx;
315
+              border-bottom: 2rpx dashed #e5e9ed;
316
+              padding: 0 16rpx;
317
+              display: flex;
318
+              align-items: center;
319
+              justify-content: space-between;
320
+
321
+              .send_wrap {
322
+                display: flex;
323
+                justify-content: space-between;
324
+                align-items: center;
325
+              }
326
+
327
+              .sendBack {
328
+                button {
329
+                  font-size: 28rpx;
330
+                  height: 52rpx;
331
+                  line-height: 52rpx;
332
+                  margin: 0;
333
+                  color: rgb(7, 134, 60);
334
+                }
335
+              }
336
+
337
+              .page_item_top_L {
338
+                height: 100%;
339
+                float: left;
340
+                display: flex;
341
+                align-items: center;
342
+                line-height: 88rpx;
343
+
344
+                .L_time {
345
+                  color: #6cc076;
346
+                  font-size: 32rpx;
347
+                }
348
+              }
349
+
350
+              .page_item_top_R {
351
+                height: 40rpx;
352
+                float: right;
353
+                line-height: 40rpx;
354
+                font-size: 24rpx;
355
+                padding: 0 8rpx;
356
+                background-color: red;
357
+                color: #fff;
358
+              }
359
+            }
360
+
361
+            .page_item_cont {
362
+              min-height: 100rpx;
363
+              max-height: 344rpx;
364
+              padding: 0 16rpx;
365
+              text-align: left;
366
+              position: relative;
367
+
368
+              .page_item_conts {
369
+                color: rgb(102, 102, 102);
370
+                font-size: 28rpx;
371
+                min-height: 100rpx;
372
+                max-height: 344rpx;
373
+
374
+                view {
375
+                  margin-top: 10rpx;
376
+                  margin-bottom: 10rpx;
377
+
378
+                  &:first-of-type {
379
+                    margin-left: 0;
380
+                  }
381
+                }
382
+
383
+                text {
384
+                  color: #49b856;
385
+                }
386
+
387
+                .num {
388
+                  float: right;
389
+                }
390
+              }
391
+            }
392
+
393
+            .page_item_btn {
394
+              height: 88rpx;
395
+              background-image: linear-gradient(to right, #72c172, #3bb197);
396
+              border-radius: 8rpx;
397
+              line-height: 88rpx;
398
+              color: #fff;
399
+              font-size: 36rpx;
400
+              font-weight: 700;
401
+              text-align: center;
402
+            }
403
+          }
404
+
405
+          .L-l {
406
+            width: 2rpx;
407
+            height: 40rpx;
408
+            background: #f9fafb;
409
+            position: absolute;
410
+            left: 20rpx;
411
+            top: 72rpx;
412
+            display: none;
413
+          }
414
+
415
+          .R-l {
416
+            width: 2rpx;
417
+            height: 40rpx;
418
+            background: #f9fafb;
419
+            position: absolute;
420
+            right: 20rpx;
421
+            top: 72rpx;
422
+            display: none;
423
+          }
424
+        }
425
+      }
426
+    }
427
+  }
428
+</style>

+ 419 - 0
pages/formManagementWechat/formManagementWechat.vue

@@ -0,0 +1,419 @@
1
+<template>
2
+  <view class="formManagementWechat">
3
+    <view class="page_tab">
4
+      <view class="page_tab_bar active">
5
+        <view class="tab_dept">表单管理</view>
6
+      </view>
7
+    </view>
8
+    <view v-if="zxzData.length == 0" class="zwsj">
9
+      <image class="zwsj-img" mode="widthFix" src="../../static/img/zanwushuju.png"></image>
10
+      <view class="zwsj-txt">暂无数据</view>
11
+    </view>
12
+    <view v-if="zxzData.length" class="page_items">
13
+      <scroll-view class="page_items_scroll" scroll-y>
14
+        <view class="page_item_wrap" v-for="(item, index) of zxzData" :key="index">
15
+          <view class="page_item">
16
+            <view class="L"></view>
17
+            <view class="R"></view>
18
+            <view class="page_item_top">
19
+              <view class="page_item_top_L">
20
+                {{item.code || '无'}}
21
+              </view>
22
+              <view class="send_wrap"></view>
23
+            </view>
24
+            <view class="page_item_cont">
25
+              <view class="page_item_conts">
26
+                <view> 包含类型:{{ item.taskTypeDTO ? item.taskTypeDTO.taskName : '无' }} </view>
27
+              </view>
28
+            </view>
29
+            <view class="page_item_btn" hover-class="seimin-btn-hover" @click="itemInfo(item.id)">详情</view>
30
+          </view>
31
+          <view class="L-l"></view>
32
+          <view class="R-l"></view>
33
+        </view>
34
+      </scroll-view>
35
+    </view>
36
+    <!-- 底部 -->
37
+    <view class="foot_btn2 footerPadding">
38
+      <view class="btn2" @click="goBack">返回</view>
39
+    </view>
40
+  </view>
41
+</template>
42
+<script>
43
+  import {
44
+    get,
45
+    post,
46
+    webHandle
47
+  } from "../../http/http.js";
48
+  export default {
49
+    data() {
50
+      return {
51
+        hosId: uni.getStorageSync("userData").user.currentHospital.id,
52
+        options: {},
53
+        //列表数据
54
+        zxzData: [],
55
+      };
56
+    },
57
+    methods: {
58
+      // 返回
59
+      goBack() {
60
+        uni.navigateBack();
61
+      },
62
+      // 进入详情页
63
+      itemInfo(id) {
64
+        // #ifdef H5
65
+        document.body.removeEventListener("touchmove", this.stop, {
66
+          passive: false,
67
+        });
68
+        // #endif
69
+        uni.navigateTo({
70
+          url: `../formManagementBuilding/formManagementBuilding?id=${id}`,
71
+        });
72
+      },
73
+      //表单列表获取
74
+      getList() {
75
+        let data = {
76
+          idx: 0,
77
+          sum: 10,
78
+          reserveForm: {
79
+            hosId: this.hosId,
80
+            deleteFlag: 0,
81
+          },
82
+        };
83
+        uni.showLoading({
84
+          title: "加载中",
85
+          mask: true,
86
+        });
87
+        // 请求列表数据
88
+        post("/simple/data/fetchDataList/reserveForm", data).then((res) => {
89
+          uni.hideLoading();
90
+          if (res.status == 200) {
91
+            this.zxzData = res.list || [];
92
+          } else {
93
+            uni.showToast({
94
+              icon: "none",
95
+              title: "请求失败!",
96
+            });
97
+          }
98
+        });
99
+      },
100
+      // 阻止浏览器滑动
101
+      stop(e) {
102
+        e.preventDefault();
103
+      },
104
+    },
105
+    onLoad(options) {
106
+      console.log(options);
107
+      this.options = options;
108
+      this.getList();
109
+      // #ifdef APP-PLUS
110
+      webHandle("no", "app");
111
+      // #endif
112
+      // #ifdef H5
113
+      webHandle("no", "wx");
114
+      // #endif
115
+    },
116
+    onShow() {
117
+      // #ifdef H5
118
+      document.body.addEventListener("touchmove", this.stop, {
119
+        passive: false,
120
+      });
121
+      // #endif
122
+    },
123
+    onHide() {
124
+      // #ifdef H5
125
+      document.body.removeEventListener("touchmove", this.stop, {
126
+        passive: false,
127
+      });
128
+      // #endif
129
+    },
130
+  };
131
+</script>
132
+<style lang="less" scoped>
133
+  .formManagementWechat {
134
+    width: 100%;
135
+    height: 100%;
136
+    position: relative;
137
+    
138
+    .foot_btn2 {
139
+      position: fixed;
140
+      bottom: 0;
141
+      right: 20rpx;
142
+      left: 20rpx;
143
+      line-height: 66rpx;
144
+      height: 100rpx;
145
+      border-top: 2rpx solid #e5e9ed;
146
+      background: #f9fafb;
147
+      display: flex;
148
+      justify-content: space-between;
149
+    
150
+      .btn2 {
151
+        height: 66rpx;
152
+        width: 100%;
153
+        margin: 0 1%;
154
+        background-image: linear-gradient(to right, #72c172, #3bb197);
155
+        color: #fff;
156
+        border-radius: 8rpx;
157
+        font-size: 32rpx;
158
+        margin-top: 16rpx;
159
+        text-align: center;
160
+      }
161
+    
162
+      .btn3 {
163
+        height: 66rpx;
164
+        width: 48%;
165
+        margin: 0 1%;
166
+        background-image: linear-gradient(to right, #72c172, #3bb197);
167
+        color: #fff;
168
+        border-radius: 8rpx;
169
+        font-size: 32rpx;
170
+        margin-top: 16rpx;
171
+        text-align: center;
172
+      }
173
+    }
174
+
175
+    .icon_transport {
176
+      color: #49b856;
177
+      font-size: 50rpx;
178
+
179
+      &.colorRed {
180
+        color: red;
181
+        font-size: 40rpx;
182
+      }
183
+    }
184
+
185
+    .page_tab {
186
+      width: 100%;
187
+      height: 96rpx;
188
+      display: flex;
189
+      position: fixed;
190
+      left: 0;
191
+      top: 0;
192
+      z-index: 999;
193
+
194
+      .page_tab_bar {
195
+        flex: 1;
196
+        font-size: 36rpx;
197
+        background: #fff;
198
+        display: flex;
199
+        justify-content: center;
200
+        align-items: center;
201
+        position: relative;
202
+
203
+        &:after {
204
+          content: "";
205
+          position: absolute;
206
+          left: 0;
207
+          bottom: 0;
208
+          height: 2rpx;
209
+          width: 100%;
210
+          background-color: transparent;
211
+        }
212
+
213
+        .tab_dept {
214
+          position: relative;
215
+
216
+          .changeDept {
217
+            white-space: nowrap;
218
+            margin: 0;
219
+            position: absolute;
220
+            right: 0;
221
+            top: 50%;
222
+            transform: translate(105%, -50%);
223
+            padding: 0 0.5em;
224
+            line-height: 2;
225
+          }
226
+        }
227
+
228
+        &.active {
229
+          color: #49b856;
230
+
231
+          &:after {
232
+            background-color: #49b856;
233
+          }
234
+        }
235
+      }
236
+    }
237
+
238
+    .zwsj {
239
+      position: absolute;
240
+      left: 50%;
241
+      top: 180rpx;
242
+      transform: translateX(-50%);
243
+
244
+      .zwsj-img {
245
+        width: 560rpx;
246
+      }
247
+
248
+      .zwsj-txt {
249
+        font-size: 36rpx;
250
+        font-weight: 700;
251
+        margin-top: 20rpx;
252
+        text-align: center;
253
+      }
254
+    }
255
+
256
+    .page_items {
257
+      height: calc(100vh - 284rpx);
258
+      padding: 0 20rpx;
259
+      padding-top: 96rpx;
260
+
261
+      .page_items_scroll {
262
+        height: 100%;
263
+
264
+        .page_item_wrap {
265
+          position: relative;
266
+          margin-bottom: 32rpx;
267
+
268
+          .page_item {
269
+            margin-bottom: 16rpx;
270
+            height: 276rpx;
271
+            background: #fff;
272
+            border-radius: 8rpx;
273
+            overflow: hidden;
274
+            border: 2rpx solid #e5e9ed;
275
+            display: flex;
276
+            flex-direction: column;
277
+            justify-content: space-between;
278
+
279
+            .L {
280
+              width: 40rpx;
281
+              height: 40rpx;
282
+              border-radius: 50%;
283
+              background: #f9fafb;
284
+              position: absolute;
285
+              left: -24rpx;
286
+              top: 68rpx;
287
+              border: 2rpx solid #e5e9ed;
288
+            }
289
+
290
+            .R {
291
+              width: 40rpx;
292
+              height: 40rpx;
293
+              border-radius: 50%;
294
+              background: #f9fafb;
295
+              position: absolute;
296
+              float: right;
297
+              right: -24rpx;
298
+              top: 68rpx;
299
+              border: 2rpx solid #e5e9ed;
300
+            }
301
+
302
+            .page_item_top {
303
+              height: 86rpx;
304
+              border-bottom: 2rpx dashed #e5e9ed;
305
+              padding: 0 16rpx;
306
+              display: flex;
307
+              align-items: center;
308
+              justify-content: space-between;
309
+
310
+              .send_wrap {
311
+                display: flex;
312
+                justify-content: space-between;
313
+                align-items: center;
314
+              }
315
+
316
+              .sendBack {
317
+                button {
318
+                  font-size: 28rpx;
319
+                  height: 52rpx;
320
+                  line-height: 52rpx;
321
+                  margin: 0;
322
+                  color: rgb(7, 134, 60);
323
+                }
324
+              }
325
+
326
+              .page_item_top_L {
327
+                height: 100%;
328
+                float: left;
329
+                display: flex;
330
+                align-items: center;
331
+                line-height: 88rpx;
332
+
333
+                .L_time {
334
+                  color: #6cc076;
335
+                  font-size: 32rpx;
336
+                }
337
+              }
338
+
339
+              .page_item_top_R {
340
+                height: 40rpx;
341
+                float: right;
342
+                line-height: 40rpx;
343
+                font-size: 24rpx;
344
+                padding: 0 8rpx;
345
+                background-color: red;
346
+                color: #fff;
347
+              }
348
+            }
349
+
350
+            .page_item_cont {
351
+              min-height: 100rpx;
352
+              max-height: 344rpx;
353
+              padding: 0 16rpx;
354
+              text-align: left;
355
+              position: relative;
356
+
357
+              .page_item_conts {
358
+                color: rgb(102, 102, 102);
359
+                font-size: 28rpx;
360
+                display: flex;
361
+                align-items: center;
362
+                min-height: 100rpx;
363
+                max-height: 344rpx;
364
+
365
+                view {
366
+                  margin-bottom: 10rpx;
367
+                  margin-left: 40rpx;
368
+
369
+                  &:first-of-type {
370
+                    margin-left: 0;
371
+                  }
372
+                }
373
+
374
+                text {
375
+                  color: #49b856;
376
+                }
377
+
378
+                .num {
379
+                  float: right;
380
+                }
381
+              }
382
+            }
383
+
384
+            .page_item_btn {
385
+              height: 88rpx;
386
+              background-image: linear-gradient(to right, #72c172, #3bb197);
387
+              border-radius: 8rpx;
388
+              line-height: 88rpx;
389
+              color: #fff;
390
+              font-size: 36rpx;
391
+              font-weight: 700;
392
+              text-align: center;
393
+            }
394
+          }
395
+
396
+          .L-l {
397
+            width: 2rpx;
398
+            height: 40rpx;
399
+            background: #f9fafb;
400
+            position: absolute;
401
+            left: 20rpx;
402
+            top: 72rpx;
403
+            display: none;
404
+          }
405
+
406
+          .R-l {
407
+            width: 2rpx;
408
+            height: 40rpx;
409
+            background: #f9fafb;
410
+            position: absolute;
411
+            right: 20rpx;
412
+            top: 72rpx;
413
+            display: none;
414
+          }
415
+        }
416
+      }
417
+    }
418
+  }
419
+</style>

+ 8 - 0
pages/receiptpage/receiptpage.vue

@@ -618,6 +618,10 @@
618 618
             this.content.push({
619 619
               text: "我的二维码",
620 620
             });
621
+          } else if (item.link === "formManagementWechat") {
622
+            this.content.push({
623
+              text: "查看表单",
624
+            });
621 625
           } else if (item.link === "BIAOBEN") {
622 626
             this.arrayBigScreen.push({
623 627
               id: 'BIAOBEN|$|',
@@ -1103,6 +1107,10 @@
1103 1107
           this.handleTakeMedicine()
1104 1108
         } else if (e.item.text === "我的二维码") {
1105 1109
           this.myQrcodeHandler()
1110
+        } else if (e.item.text === "查看表单") {
1111
+          uni.navigateTo({
1112
+            url: "../formManagementWechat/formManagementWechat",
1113
+          });
1106 1114
         }
1107 1115
       },
1108 1116
       // 我的二维码