see999 4 years ago
parent
commit
e24d9c53a8

+ 1 - 1
src/xt_pages/dialysis/template/DialysisPrintOrderTwentyFour.vue View File

@@ -1049,7 +1049,7 @@
1049 1049
                     <td width='40'>其他</td>
1050 1050
                     <td width='160'>
1051 1051
                       <div class="under-line">
1052
-                        &nbsp;{{ afterdialysis.complication ? getComplication(afterdialysis.complication) : '' }}
1052
+                        &nbsp;{{ afterdialysis.other_complication ? afterdialysis.other_complication : '' }}
1053 1053
                       </div>
1054 1054
                     </td>
1055 1055
                     <td></td>

+ 242 - 0
src/xt_pages/outpatientCharges/allListPrint.vue View File

@@ -0,0 +1,242 @@
1
+<template>
2
+  <div>
3
+    <template>
4
+      <el-button
5
+        style="position:fixed;right:25px;z-index:999"
6
+        :loading="loading"
7
+        size="small"
8
+        icon="el-icon-printer"
9
+        @click="printThisPage"
10
+        type="primary"
11
+      >打印</el-button
12
+      >
13
+    </template>
14
+
15
+    <div class='dialysisPage' style="padding-top:40px;">
16
+      <printOne :info="info"></printOne>
17
+    </div>
18
+  </div>
19
+</template>
20
+
21
+<script>
22
+  import print from "print-js";
23
+  import printOne from "./allListTemplate/printOne"
24
+  export default {
25
+    name: "allListPrint",
26
+    components: {
27
+      printOne
28
+    },
29
+    props:{
30
+      paramsObj:Object
31
+    },
32
+    data() {
33
+      return {
34
+      };
35
+    },
36
+
37
+    created() {
38
+    },
39
+    methods:{
40
+        printThisPage() {
41
+
42
+            const style =
43
+            '@media print {.allListTitle{font-size: 28px;text-align: center;font-weight: bold;margin-bottom: 10px;}.allListInfo{display: flex;font-size: 16px;justify-content: space-between;margin: 10px 0;} .allListTable{width: 100%;text-align: center;border-collapse: collapse;line-height: 40px;font-size: 16px;border-color: #000;text-align:left;}.allListTable tr td {padding: 0 5px;}.tableBottom{font-size: 16px;display: flex;margin-top: 20px;}.tableBottomOne{margin-right: 40px;}}';
44
+            printJS({
45
+            printable: "allList-print",
46
+            type: "html",
47
+            style: style,
48
+            scanStyles: false
49
+            });
50
+
51
+            // if (this.org_template_info.template_id == 1) {
52
+            //   printJS({
53
+            //     printable: "dialysis-print-box",
54
+            //     type: "html",
55
+            //     style: style,
56
+            //     scanStyles: false
57
+            //   });
58
+            // }
59
+        },
60
+    }
61
+
62
+  };
63
+</script>
64
+
65
+<style>
66
+  .dialysis-print-order {
67
+    width: 960px;
68
+    margin: 0 auto;
69
+  }
70
+
71
+  .dialysis-print-order .order-yy-name {
72
+    margin: auto;
73
+    text-align: center;
74
+    font-size: 20px;
75
+    letter-spacing: 5px;
76
+  }
77
+
78
+  .dialysis-print-order .order-title {
79
+    margin: auto;
80
+    font-weight: 600;
81
+    text-align: center;
82
+    font-size: 22px;
83
+    padding: 10px;
84
+  }
85
+
86
+  .dialysis-print-order .table-box {
87
+    width: 100%;
88
+    line-height: 23px;
89
+    font-size: 14px;
90
+  }
91
+
92
+  .dialysis-print-order .print-table {
93
+    width: 100%;
94
+    text-align: center;
95
+    border-collapse: collapse;
96
+    line-height: 40px;
97
+    font-size: 14px;
98
+    border-color: #000;
99
+  }
100
+
101
+  .dialysis-print-order .print-table-no {
102
+    width: 100%;
103
+    text-align: center;
104
+    border-collapse: collapse;
105
+    font-size: 14px;
106
+  }
107
+
108
+  .dialysis-print-order .under-line {
109
+    border-bottom: 1px solid #999;
110
+    width: 95%;
111
+    text-align: center;
112
+    margin-left: 2px;
113
+  }
114
+
115
+  .dialysis-print-order .title-box {
116
+    text-align: center;
117
+    font-size: 16px;
118
+  }
119
+
120
+  .dialysis-print-order .radio-lebel-box {
121
+    font-weight: 400;
122
+    cursor: pointer;
123
+  }
124
+
125
+  .dialysis-print-order .radio-no {
126
+    opacity: 0;
127
+    outline: none;
128
+    position: absolute;
129
+    margin: 0;
130
+    width: 0;
131
+    height: 0;
132
+    z-index: -1;
133
+  }
134
+
135
+  .dialysis-print-order .radio-inner {
136
+    white-space: nowrap;
137
+    cursor: pointer;
138
+    outline: none;
139
+    display: inline-block;
140
+    line-height: 1;
141
+    position: relative;
142
+    vertical-align: middle;
143
+  }
144
+
145
+  .dialysis-print-order .radio-fang {
146
+    display: inline-block;
147
+    position: relative;
148
+    border: 1px solid #000;
149
+    box-sizing: border-box;
150
+    width: 14px;
151
+    height: 14px;
152
+    background-color: #fff;
153
+    z-index: 1;
154
+    transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
155
+    background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);
156
+  }
157
+
158
+  .dialysis-print-order .is-checked-radio::after {
159
+    content: "√";
160
+    font-size: 15px;
161
+  }
162
+
163
+  .dialysis-print-order .print-table-no tr td {
164
+    padding: 8px 5px;
165
+    line-height: 25px;
166
+  }
167
+
168
+  .dialysis-print-order .print-table tr td {
169
+    padding: 1px 1px;
170
+    /*line-height: 25px;*/
171
+  }
172
+
173
+  .es-img {
174
+    height: 30px;
175
+  }
176
+
177
+  .advice-name {
178
+    text-align: left;
179
+  }
180
+
181
+  .advice-children {
182
+    display: flex;
183
+  }
184
+
185
+  .title-box-pro {
186
+    border: 0 #fff;
187
+    line-height: 25px;
188
+    height: 25px;
189
+    text-align: left;
190
+    padding-left: 10px !important;
191
+  }
192
+  .title-box-pro-tr {
193
+    border: 0 #fff;
194
+  }
195
+  .text-align-left {
196
+    text-align: left !important;
197
+    padding-left: 10px !important;
198
+    font-size: 14px !important;
199
+    line-height: 25px;
200
+  }
201
+  .print-table-tr-new td {
202
+    line-height: 20px !important;
203
+  }
204
+  .border-top-solid {
205
+    border: solid 1px #000;
206
+  }
207
+  .print-template-two tr {
208
+    line-height: 30px;
209
+  }
210
+
211
+  .table-box1 {
212
+    border: 1px solid #000;
213
+    width: 100%;
214
+    line-height: 30px;
215
+    font-size: 14px;
216
+    border-collapse: collapse;
217
+  }
218
+  .table-box1 tr {
219
+    border-bottom: 1px solid #000;
220
+  }
221
+</style>
222
+
223
+<style lang="scss">
224
+
225
+  .newContainer{
226
+  .dialysisPage::-webkit-scrollbar {
227
+    height: 15px;
228
+  }
229
+
230
+  .el-date-editor{
231
+  .el-input__inner{
232
+    padding-right:0px;
233
+  }
234
+  }
235
+  .el-table td, .el-table th{
236
+    text-align: center;
237
+  }
238
+  }
239
+  .newContainer::-webkit-scrollbar{
240
+    height: 15px !important;
241
+  }
242
+</style>

+ 83 - 0
src/xt_pages/outpatientCharges/allListTemplate/printOne.vue View File

@@ -0,0 +1,83 @@
1
+<template>
2
+    <div id="allList-print" class="allList-print">
3
+        <div class="allListTitle">翁源沅胜透析中心费用汇总</div>
4
+        <div class="allListInfo">
5
+            <div>患者姓名:邓红平</div>
6
+            <div>透析号:21000022</div>
7
+            <div>性别:女</div>
8
+            <div>年龄:45  岁</div>
9
+            <div>日期:2020-11-22 至 2020-11-22</div>
10
+        </div>
11
+        <table class="allListTable" border="1">
12
+            <tr>
13
+                <td style="width:10%">类别</td>
14
+                <td style="width:50%">项目名称</td>
15
+                <td style="width:10%">规格</td>
16
+                <td style="width:10%">单价(元)</td>
17
+                <td style="width:10%">数量</td>
18
+                <td style="width:10%">金额(元)</td>
19
+            </tr>
20
+            <template v-for='i in 2'>
21
+                <tr v-for="item in 8">
22
+                    <td style="width:10%">化验费</td>
23
+                    <td style="width:50%">血清葡萄糖测定(化学法或酶法)</td>
24
+                    <td style="width:10%">1</td>
25
+                    <td style="width:10%">23.00</td>
26
+                    <td style="width:10%">1次</td>
27
+                    <td style="width:10%">23.00</td>
28
+                </tr>
29
+                <tr>
30
+                    <td colspan="6" style="text-align:right;">合计:212.22元</td>
31
+                </tr>
32
+            </template>
33
+        </table>
34
+        <div class="tableBottom">
35
+            <div class="tableBottomOne">制表人:指标人</div>
36
+            <div class="tableBottomOne">制表日期:2020-12-12 12:12:12</div>
37
+            <div class="tableBottomOne">总费用:12323.90元</div>
38
+        </div>
39
+    </div>
40
+</template>
41
+
42
+
43
+<style lang="scss" scoped>
44
+.allList-print{
45
+    -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 60px rgba(0, 0, 0, 0.06) inset;
46
+    -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
47
+    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
48
+    margin-bottom: 20px;
49
+    padding:20px 10px;
50
+}
51
+.allListTitle{
52
+    font-size: 28px;
53
+    text-align: center;
54
+    font-weight: bold;
55
+    margin-bottom: 10px;
56
+}
57
+.allListInfo{
58
+    display: flex;
59
+    font-size: 16px;
60
+    justify-content: space-between;
61
+    margin: 10px 0;
62
+}
63
+.allListTable{
64
+    width: 100%;
65
+    text-align: center;
66
+    border-collapse: collapse;
67
+    line-height: 40px;
68
+    font-size: 16px;
69
+    border-color: #000;
70
+    text-align: left;
71
+}
72
+.allListTable tr td {
73
+    padding: 0 5px;
74
+}
75
+.tableBottom{
76
+    font-size: 16px;
77
+    display: flex;
78
+    margin-top: 20px;
79
+}
80
+.tableBottomOne{
81
+    margin-right: 40px;
82
+}
83
+</style>

+ 242 - 0
src/xt_pages/outpatientCharges/listPrint.vue View File

@@ -0,0 +1,242 @@
1
+<template>
2
+  <div>
3
+    <template>
4
+      <el-button
5
+        style="position:fixed;right:25px;z-index:999"
6
+        :loading="loading"
7
+        size="small"
8
+        icon="el-icon-printer"
9
+        @click="printThisPage"
10
+        type="primary"
11
+      >打印</el-button
12
+      >
13
+    </template>
14
+
15
+    <div class='dialysisPage' style="padding-top:40px;">
16
+      <printOne :info="info"></printOne>
17
+    </div>
18
+  </div>
19
+</template>
20
+
21
+<script>
22
+  import print from "print-js";
23
+  import printOne from "./listTemplate/printOne"
24
+  export default {
25
+    name: "listPrint",
26
+    components: {
27
+      printOne
28
+    },
29
+    props:{
30
+      paramsObj:Object
31
+    },
32
+    data() {
33
+      return {
34
+      };
35
+    },
36
+
37
+    created() {
38
+    },
39
+    methods:{
40
+        printThisPage() {
41
+
42
+            const style =
43
+            '@media print {.listTitle{font-size: 28px;text-align: center;font-weight: bold;margin-bottom: 10px;}.listInfo{display: flex;font-size: 16px;justify-content: space-between;margin: 10px 0;} .listTable{width: 100%;text-align: center;border-collapse: collapse;line-height: 40px;font-size: 16px;border-color: #000;text-align:left;}.listTable tr td {padding: 0 5px;}.tableBottom{font-size: 16px;display: flex;margin-top: 20px;}.tableBottomOne{margin-right: 40px;}}';
44
+            printJS({
45
+            printable: "list-print",
46
+            type: "html",
47
+            style: style,
48
+            scanStyles: false
49
+            });
50
+
51
+            // if (this.org_template_info.template_id == 1) {
52
+            //   printJS({
53
+            //     printable: "dialysis-print-box",
54
+            //     type: "html",
55
+            //     style: style,
56
+            //     scanStyles: false
57
+            //   });
58
+            // }
59
+        },
60
+    }
61
+
62
+  };
63
+</script>
64
+
65
+<style>
66
+  .dialysis-print-order {
67
+    width: 960px;
68
+    margin: 0 auto;
69
+  }
70
+
71
+  .dialysis-print-order .order-yy-name {
72
+    margin: auto;
73
+    text-align: center;
74
+    font-size: 20px;
75
+    letter-spacing: 5px;
76
+  }
77
+
78
+  .dialysis-print-order .order-title {
79
+    margin: auto;
80
+    font-weight: 600;
81
+    text-align: center;
82
+    font-size: 22px;
83
+    padding: 10px;
84
+  }
85
+
86
+  .dialysis-print-order .table-box {
87
+    width: 100%;
88
+    line-height: 23px;
89
+    font-size: 14px;
90
+  }
91
+
92
+  .dialysis-print-order .print-table {
93
+    width: 100%;
94
+    text-align: center;
95
+    border-collapse: collapse;
96
+    line-height: 40px;
97
+    font-size: 14px;
98
+    border-color: #000;
99
+  }
100
+
101
+  .dialysis-print-order .print-table-no {
102
+    width: 100%;
103
+    text-align: center;
104
+    border-collapse: collapse;
105
+    font-size: 14px;
106
+  }
107
+
108
+  .dialysis-print-order .under-line {
109
+    border-bottom: 1px solid #999;
110
+    width: 95%;
111
+    text-align: center;
112
+    margin-left: 2px;
113
+  }
114
+
115
+  .dialysis-print-order .title-box {
116
+    text-align: center;
117
+    font-size: 16px;
118
+  }
119
+
120
+  .dialysis-print-order .radio-lebel-box {
121
+    font-weight: 400;
122
+    cursor: pointer;
123
+  }
124
+
125
+  .dialysis-print-order .radio-no {
126
+    opacity: 0;
127
+    outline: none;
128
+    position: absolute;
129
+    margin: 0;
130
+    width: 0;
131
+    height: 0;
132
+    z-index: -1;
133
+  }
134
+
135
+  .dialysis-print-order .radio-inner {
136
+    white-space: nowrap;
137
+    cursor: pointer;
138
+    outline: none;
139
+    display: inline-block;
140
+    line-height: 1;
141
+    position: relative;
142
+    vertical-align: middle;
143
+  }
144
+
145
+  .dialysis-print-order .radio-fang {
146
+    display: inline-block;
147
+    position: relative;
148
+    border: 1px solid #000;
149
+    box-sizing: border-box;
150
+    width: 14px;
151
+    height: 14px;
152
+    background-color: #fff;
153
+    z-index: 1;
154
+    transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
155
+    background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);
156
+  }
157
+
158
+  .dialysis-print-order .is-checked-radio::after {
159
+    content: "√";
160
+    font-size: 15px;
161
+  }
162
+
163
+  .dialysis-print-order .print-table-no tr td {
164
+    padding: 8px 5px;
165
+    line-height: 25px;
166
+  }
167
+
168
+  .dialysis-print-order .print-table tr td {
169
+    padding: 1px 1px;
170
+    /*line-height: 25px;*/
171
+  }
172
+
173
+  .es-img {
174
+    height: 30px;
175
+  }
176
+
177
+  .advice-name {
178
+    text-align: left;
179
+  }
180
+
181
+  .advice-children {
182
+    display: flex;
183
+  }
184
+
185
+  .title-box-pro {
186
+    border: 0 #fff;
187
+    line-height: 25px;
188
+    height: 25px;
189
+    text-align: left;
190
+    padding-left: 10px !important;
191
+  }
192
+  .title-box-pro-tr {
193
+    border: 0 #fff;
194
+  }
195
+  .text-align-left {
196
+    text-align: left !important;
197
+    padding-left: 10px !important;
198
+    font-size: 14px !important;
199
+    line-height: 25px;
200
+  }
201
+  .print-table-tr-new td {
202
+    line-height: 20px !important;
203
+  }
204
+  .border-top-solid {
205
+    border: solid 1px #000;
206
+  }
207
+  .print-template-two tr {
208
+    line-height: 30px;
209
+  }
210
+
211
+  .table-box1 {
212
+    border: 1px solid #000;
213
+    width: 100%;
214
+    line-height: 30px;
215
+    font-size: 14px;
216
+    border-collapse: collapse;
217
+  }
218
+  .table-box1 tr {
219
+    border-bottom: 1px solid #000;
220
+  }
221
+</style>
222
+
223
+<style lang="scss">
224
+
225
+  .newContainer{
226
+  .dialysisPage::-webkit-scrollbar {
227
+    height: 15px;
228
+  }
229
+
230
+  .el-date-editor{
231
+  .el-input__inner{
232
+    padding-right:0px;
233
+  }
234
+  }
235
+  .el-table td, .el-table th{
236
+    text-align: center;
237
+  }
238
+  }
239
+  .newContainer::-webkit-scrollbar{
240
+    height: 15px !important;
241
+  }
242
+</style>

+ 80 - 0
src/xt_pages/outpatientCharges/listTemplate/printOne.vue View File

@@ -0,0 +1,80 @@
1
+<template>
2
+    <div id="list-print" class="list-print">
3
+        <div class="listTitle">翁源沅胜透析中心费用清单</div>
4
+        <div class="listInfo">
5
+            <div>患者姓名:邓红平</div>
6
+            <div>透析号:21000022</div>
7
+            <div>性别:女</div>
8
+            <div>年龄:45  岁</div>
9
+            <div>日期:2020-11-22 至 2020-11-22</div>
10
+        </div>
11
+        <table class="listTable" border="1">
12
+            <tr>
13
+                <td style="width:19%">开方日期</td>
14
+                <td style="width:10%">类别</td>
15
+                <td style="width:35%">项目名称</td>
16
+                <td style="width:10%">规格</td>
17
+                <td style="width:10%">单价(元)</td>
18
+                <td style="width:6%">数量</td>
19
+                <td style="width:10%">金额(元)</td>
20
+            </tr>
21
+            <tr v-for="item in 8">
22
+                <td style="width:19%">2020-12-12 13:11</td>
23
+                <td style="width:10%">化验费</td>
24
+                <td style="width:35%">血清葡萄糖测定(化学法或酶法)</td>
25
+                <td style="width:10%">1</td>
26
+                <td style="width:10%">23.00</td>
27
+                <td style="width:6%">1次</td>
28
+                <td style="width:10%">23.00</td>
29
+            </tr>
30
+        </table>
31
+        <div class="tableBottom">
32
+            <div class="tableBottomOne">制表人:指标人</div>
33
+            <div class="tableBottomOne">制表日期:2020-12-12 12:12:12</div>
34
+            <div class="tableBottomOne">总费用:12323.90元</div>
35
+        </div>
36
+    </div>
37
+</template>
38
+
39
+
40
+<style lang="scss" scoped>
41
+.list-print{
42
+    -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 60px rgba(0, 0, 0, 0.06) inset;
43
+    -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
44
+    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
45
+    margin-bottom: 20px;
46
+    padding:20px 10px;
47
+}
48
+.listTitle{
49
+    font-size: 28px;
50
+    text-align: center;
51
+    font-weight: bold;
52
+    margin-bottom: 10px;
53
+}
54
+.listInfo{
55
+    display: flex;
56
+    font-size: 16px;
57
+    justify-content: space-between;
58
+    margin: 10px 0;
59
+}
60
+.listTable{
61
+    width: 100%;
62
+    text-align: center;
63
+    border-collapse: collapse;
64
+    line-height: 40px;
65
+    font-size: 16px;
66
+    border-color: #000;
67
+    text-align: left;
68
+}
69
+.listTable tr td {
70
+    padding: 0 5px;
71
+}
72
+.tableBottom{
73
+    font-size: 16px;
74
+    display: flex;
75
+    margin-top: 20px;
76
+}
77
+.tableBottomOne{
78
+    margin-right: 40px;
79
+}
80
+</style>

+ 40 - 4
src/xt_pages/outpatientCharges/summary.vue View File

@@ -39,7 +39,18 @@
39 39
           <!--<el-radio v-model="radio" label="1">明细</el-radio>-->
40 40
           <!--<el-radio v-model="radio" label="2">汇总</el-radio>-->
41 41
         </div>
42
-        <el-button size="small" type="primary" @click="export_detail">报表下载</el-button>
42
+        <div>
43
+          <!-- <el-popover
44
+            placement="bottom"
45
+            width="210"
46
+            trigger="click">
47
+            <el-button size="small" ref="button_two" @click="open(1)">打印清单</el-button>
48
+            <el-button size="small" ref="button_six" @click="open(2)">打印汇总</el-button>
49
+            <el-button slot="reference" style="margin:0 10px;" type="primary" size="small">打印</el-button>
50
+
51
+          </el-popover> -->
52
+          <el-button size="small" type="primary" @click="export_detail">报表下载</el-button>
53
+        </div>
43 54
       </div>
44 55
       <el-table :data="tableData" border style="width: 100%;" :row-style="{ color: '#303133' }"
45 56
                 :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
@@ -111,6 +122,20 @@
111 122
       <!--<statementPrint ref="print" :paramsObj='orderObj'></statementPrint>-->
112 123
     <new-statement-print ref="print" :paramsObj='orderObj'></new-statement-print>
113 124
     </el-dialog>
125
+    <el-dialog
126
+      class="centerDialog"
127
+      width="900px"
128
+      title="打印"
129
+      :visible.sync="listVisible">
130
+      <listPrint :paramsObj='paramsObj'></listPrint>
131
+    </el-dialog>
132
+    <el-dialog
133
+      class="centerDialog"
134
+      width="900px"
135
+      title="打印"
136
+      :visible.sync="allListVisible">
137
+      <allListPrint :paramsObj='paramsObj'></allListPrint>
138
+    </el-dialog>
114 139
 
115 140
 
116 141
   </div>
@@ -123,12 +148,16 @@
123 148
   import { uParseTime } from '@/utils/tools'
124 149
   import statementPrint from './statementPrint'
125 150
   import NewStatementPrint from './newStatementPrint'
151
+  import listPrint from './listPrint'
152
+  import allListPrint from './allListPrint'
126 153
 
127 154
 
128 155
   export default {
129 156
     components: {
130 157
       NewStatementPrint,
131
-      BreadCrumb
158
+      BreadCrumb,
159
+      listPrint,
160
+      allListPrint
132 161
     },
133 162
     data() {
134 163
       return {
@@ -147,6 +176,8 @@
147 176
         total:"",
148 177
         doctors:[],
149 178
         admin_user_id:"",
179
+        listVisible:false,
180
+        allListVisible:false
150 181
 
151 182
       }
152 183
     },
@@ -331,8 +362,13 @@
331 362
             this.doctors = response.data.data.doctors
332 363
           }
333 364
         })
334
-
335
-
365
+      },
366
+      open(index){
367
+        if(index == 1){
368
+          this.listVisible = true
369
+        }else if(index == 2){
370
+          this.allListVisible = true
371
+        }
336 372
       }
337 373
     }, created() {
338 374
      this.getDoctorList()