Procházet zdrojové kódy

Merge branch '20201109_pc_vue_new_branch' of http://git.shengws.com/csx/Vue_New into 20201109_pc_vue_new_branch

csx před 4 roky
rodič
revize
f43ae5b393

+ 16 - 0
src/router/modules/outpatientCharges.js Zobrazit soubor

@@ -50,5 +50,21 @@ export default {
50 50
         name: 'summaryDetail',
51 51
         meta: { title: 'summaryDetail', noCache: true }
52 52
     },
53
+    {
54
+        path: '/outpatientCharges/treatPrint',
55
+        component: () => import('@/xt_pages/outpatientCharges/treatPrint'),
56
+        hidden: true,
57
+        is_menu: false,
58
+        name: 'outpatientChargesTreatPrint',
59
+        meta: { title: 'outpatientChargesTreatPrint', noCache: true }
60
+    },
61
+    {
62
+        path: '/outpatientCharges/print',
63
+        component: () => import('@/xt_pages/outpatientCharges/print'),
64
+        hidden: true,
65
+        is_menu: false,
66
+        name: 'outpatientChargesPrint',
67
+        meta: { title: 'outpatientChargesPrint', noCache: true }
68
+    },
53 69
   ]
54 70
 }

+ 8 - 0
src/router/modules/outpatientDoctorStation.js Zobrazit soubor

@@ -38,5 +38,13 @@ export default {
38 38
         name: 'outpatientDoctorStationPrint',
39 39
         meta: { title: 'outpatientDoctorStationPrint', noCache: true }
40 40
     },
41
+    {
42
+        path: '/outpatientDoctorStation/recordPrint',
43
+        component: () => import('@/xt_pages/outpatientDoctorStation/recordPrint'),
44
+        hidden: true,
45
+        is_menu: false,
46
+        name: 'outpatientDoctorStationRecordPrint',
47
+        meta: { title: 'outpatientDoctorStationRecordPrint', noCache: true }
48
+    },
41 49
   ]
42 50
 }

+ 96 - 14
src/xt_pages/outpatientCharges/components/prescriptionTable.vue Zobrazit soubor

@@ -1,6 +1,6 @@
1 1
 <template>
2 2
   <div class="prescriptionTable">
3
-    <el-table v-if="prescription.type == 1" :data="prescription.advices" border style="width: 98%;"
3
+    <el-table v-if="prescription.type == 1" :data="prescription.advices" border style="width: 99%;"
4 4
               :row-style="{ color: '#303133' }"
5 5
               :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
6 6
       <el-table-column align="center" prop="name" label="名称">
@@ -57,7 +57,7 @@
57 57
         </template>
58 58
       </el-table-column>
59 59
     </el-table>
60
-    <el-table v-if="prescription.type == 2" :data="prescription.project" border style="width: 98%;"
60
+    <el-table v-if="prescription.type == 2" :data="prescription.project" border style="width: 99%;"
61 61
               :row-style="{ color: '#303133' }"
62 62
               :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
63 63
 
@@ -108,6 +108,11 @@
108 108
       </el-table-column>
109 109
     </el-table>
110 110
   </div>
111
+
112
+
113
+
114
+
115
+
111 116
 </template>
112 117
 
113 118
 <script>
@@ -131,6 +136,63 @@
131 136
         } else {
132 137
           this.drugways = response.data.data.drugways
133 138
           this.efs = response.data.data.efs
139
+
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+
148
+
149
+
150
+
151
+
152
+
153
+
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
134 196
         }
135 197
       })
136 198
     }, methods:  {
@@ -152,16 +214,36 @@
152 214
 </script>
153 215
 
154 216
 <style lang="scss">
155
-  .prescriptionTable {
156
-
157
-  .el-table th .cell, .el-table td .cell {
158
-    padding: 0 2px;
159
-    white-space: pre-line;
160
-  }
161
-
162
-  .el-icon-delete {
163
-    color: red;
164
-  }
165
-
166
-  }
217
+.prescriptionTable{
218
+    .additionalBox{
219
+      margin-top: 20px;
220
+      display: flex;
221
+      flex-wrap: wrap;
222
+      .additionalOne{
223
+        margin-right:20px;
224
+        margin-bottom:10px;
225
+        display: flex;
226
+        align-items: center;
227
+        >span{
228
+          white-space: nowrap;
229
+          overflow: hidden;
230
+          text-overflow: ellipsis;
231
+          width:60px;
232
+          display: inline-block;
233
+          font-size: 14px;
234
+        }
235
+      }
236
+      .deleteIcon{
237
+        color:red;
238
+        margin-left:5px;
239
+      }
240
+    }
241
+    .el-table th .cell, .el-table td .cell{
242
+        padding: 0 2px;
243
+        white-space: pre-line;
244
+    }
245
+    .el-icon-delete{
246
+        color:red;
247
+    }
248
+}
167 249
 </style>

+ 461 - 484
src/xt_pages/outpatientCharges/outpatientChargesManagement.vue Zobrazit soubor

@@ -1,515 +1,492 @@
1 1
 <template>
2
-  <div class="main-contain outpatientChargesManagement">
3
-    <div class="position">
4
-      <bread-crumb :crumbs='crumbs'></bread-crumb>
5
-    </div>
6
-    <div class="app-container" style="display:flex;flex: 1;padding: 20px 20px 0px 20px;">
7
-      <div class="mainLeft">
8
-        <!--<div class="mainCell" style="justify-content: space-between;">-->
9
-        <!--<p>未就诊:<span>1</span>人</p>-->
10
-        <!--<p>已就诊:<span>0</span>人</p>-->
11
-        <!--</div>-->
12
-        <!--<div class="mainCell">-->
13
-        <!--<el-radio-group v-model="radio" @change="changeRadio">-->
14
-        <!--<el-radio :label=1>未就诊</el-radio>-->
15
-        <!--<el-radio :label=2>已就诊</el-radio>-->
16
-        <!--<el-radio :label=3>全部</el-radio>-->
17
-        <!--</el-radio-group>-->
18
-        <!--</div>-->
19
-        <div class="mainCell" style="margin-bottom:10px;">
20
-          <el-input size="small" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
21
-          <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary" @click="searchAction">
22
-            搜索
23
-          </el-button>
2
+    <div class="main-contain outpatientChargesManagement">
3
+        <div class="position">
4
+            <bread-crumb :crumbs='crumbs'></bread-crumb>
24 5
         </div>
25
-        <div style="flex:1;overflow-y:auto;">
26
-          <el-table :data="patientTableData" border style="width: 100%;" :row-style="{ color: '#303133' }"
27
-                    :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
6
+        <div class="app-container" style="display:flex;flex: 1;padding: 20px 20px 0px 20px;">
7
+            <div class="mainLeft">
8
+                <div class="mainCell" style="justify-content: space-between;">
9
+                    <p>未就诊:<span>1</span>人</p>
10
+                    <p>已就诊:<span>0</span>人</p>
11
+                </div>
12
+                <div class="mainCell">
13
+                    <el-radio-group v-model="radio" @change="changeRadio">
14
+                        <el-radio :label=1>未就诊</el-radio>
15
+                        <el-radio :label=2>已就诊</el-radio>
16
+                        <el-radio :label=3>全部</el-radio>
17
+                    </el-radio-group>
18
+                </div>
19
+                <div class="mainCell" style="margin-bottom:10px;">
20
+                    <el-input size="small" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
21
+                    <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
22
+                </div>
23
+                <div style="flex:1;overflow-y:auto;">
24
+                    <el-table :data="tableData" border  style="width: 100%;" :row-style="{ color: '#303133' }" 
25
+                    :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" 
28 26
                     highlight-current-row ref="tab"
29 27
                     @current-change="handleCurrentChange">
30
-            <el-table-column align="center" prop="name" label="患者姓名">
31
-              <template slot-scope="scope">{{ scope.row.patients.name }}</template>
32
-            </el-table-column>
33
-            <el-table-column align="center" prop="name" label="就诊号" width="90">
34
-              <template slot-scope="scope">{{ scope.row.his_patient.number }}</template>
35
-            </el-table-column>
36
-          </el-table>
37
-        </div>
38
-      </div>
39
-      <div class="mainRight">
40
-        <div class="mainCell" style="margin-bottom:10px;flex-direction: row-reverse;">
41
-          <el-button size="small" @click="open(1)" type="primary" style="margin-left:10px;">打印处置单</el-button>
42
-          <el-button size="small" @click="open(2)" type="primary">打印治疗单</el-button>
43
-          <el-button size="small" @click="open(3)" type="primary">打印</el-button>
44
-          <el-button v-loading="loadingone" v-if="hisPatientInfo == null || hisPatientInfo.id == 0 " size="small" @click="open(6)"
45
-                     type="primary">挂号
46
-          </el-button>
47
-          <el-button v-loading="loadingtwo" v-if="hisPatientInfo != null && hisPatientInfo.id > 0 " size="small" @click="open(4)"
48
-                     type="primary">收费
49
-          </el-button>
50
-          <el-button size="small" @click="open(5)" type="primary">退费</el-button>
51
-        </div>
52
-        <div class="mainCenter">
53
-          <div class="centerLeft">
54
-            <div class="tabsBox">
55
-              <!--<el-button type="text" class="addTab" @click="addCharges" icon="el-icon-circle-plus">附加收费</el-button>-->
56
-              <el-tabs class="preTabs" v-model="editableTabsValue" type="card" @tab-click="tabclickEvent">
57
-                <el-tab-pane
58
-                  v-for="(item, index) in prescriptions"
59
-                  :key="index"
60
-                  :label="item.name"
61
-                  :name="item.name"
62
-                >
63
-                </el-tab-pane>
64
-                <div class="RP">Rp</div>
65
-                <prescription-table ref="prescription_tables" :prescription="curPrescriptions"></prescription-table>
66
-              </el-tabs>
67
-
28
+                        <el-table-column align="center" prop="name" label="患者姓名">
29
+                            <template slot-scope="scope">{{ scope.row.name }}</template>
30
+                        </el-table-column>
31
+                        <el-table-column align="center" prop="name" label="就诊号" width="90">
32
+                            <template slot-scope="scope">3222</template>
33
+                        </el-table-column>
34
+                    </el-table>
35
+                </div>
68 36
             </div>
69
-            <div class="costBox">
70
-              <span>当前处方总费用:<span style="color:red;">{{ getTotal() }}元</span></span>
71
-              <span>{{ state }}</span>
37
+            <div class="mainRight">
38
+                 
39
+                <div class="mainCell" style="position: absolute;right: 30px;z-index:9;">
40
+                    <el-button size="small" @click="open(1)" type="primary" style="margin-left:10px;">打印处置单</el-button>
41
+                    <el-button size="small" @click="open(2)" type="primary">打印治疗单</el-button>
42
+                    <el-button size="small" @click="open(3)" type="primary">打印</el-button>
43
+                    <el-button size="small" @click="open(4)" type="primary">收费</el-button>
44
+                    <el-button size="small" v-if="state == '已收费'" @click="open(5)" type="primary">退费</el-button>
45
+                </div>
46
+                <div class="mainCenter">
47
+                    <el-tabs class="settlementTabs" v-model="activeName" @tab-click="handleClick">
48
+                        <el-tab-pane label="日结" name="first">
49
+                            <div style="display:flex;height:100%;">
50
+                                <div class="centerLeft">
51
+                                    <div class="tabsBox">
52
+                                        <el-button type="text" class="addTab" @click="addCharges" icon="el-icon-circle-plus">附加收费</el-button>
53
+                                        <el-tabs class="preTabs" v-model="editableTabsValue" type="card" closable @tab-remove="removeTab" :before-leave="moreState">
54
+                                            <el-tab-pane
55
+                                                v-for="(item, index) in editableTabs"
56
+                                                :key="index"
57
+                                                :label="item.title"
58
+                                                :name="item.name"
59
+                                            >
60
+                                                <div class="RP">
61
+                                                    Rp
62
+                                                    <el-date-picker
63
+                                                    v-model="value1"
64
+                                                    type="date"
65
+                                                    placeholder="选择日期">
66
+                                                    </el-date-picker>
67
+                                                </div>
68
+                                                <prescription-table :preTableData='preTableData'></prescription-table>
69
+                                            </el-tab-pane>
70
+                                            <el-tab-pane name="more" closable><span slot="label"><i class="el-icon-plus" @click="addTab"></i></span></el-tab-pane>
71
+                                        </el-tabs>
72
+                                        
73
+                                    </div>
74
+                                    <div class="costBox">
75
+                                        <span>处方编号:2134348971237883</span>
76
+                                        <span>当前处方总费用:<span style="color:red;">{{ total }}元</span></span>
77
+                                        <span>{{ state }}</span>
78
+                                    </div>
79
+                                </div>
80
+                                <div class="centerRight">
81
+                                    <p class="centerRightTitle">人员信息</p>
82
+                                    <div style="display:flex;justify-content: space-between;line-height:30px;">
83
+                                        <span style="font-size:14px;">人员编码:</span>
84
+                                        <span style="font-size:14px;">日期:{{start_time}}</span>
85
+                                    </div>
86
+                                    <ul class="basicUl">
87
+                                        <li style="width:50%;">姓名:{{ patientInfo.name }}</li>
88
+                                        <li style="width:50%;">性别:{{ patientInfo && patientInfo.gend == 1 ? '男' : "女" }}</li>
89
+                                        <li style="width:50%;">年龄:{{ patientInfo.age }}</li>
90
+                                        <li style="width:50%;">身高:</li>
91
+                                        <li style="width:50%;">体重:</li>
92
+                                        <li style="width:50%;">电话:</li>
93
+                                        <li style="width:100%;">地址:</li>
94
+                                        <li style="width:100%;">过敏史:</li>
95
+                                    </ul>
96
+                                    <p class="centerRightTitle">诊断信息</p>
97
+                                    <div style="display:flex;justify-content: space-between;line-height:30px;">
98
+                                        <span style="font-size:14px;">门诊编号:676273816287361</span>
99
+                                    </div>
100
+                                    <ul class="basicUl">
101
+                                        <li style="width:50%;">医生:{{ doctor.name }}</li>
102
+                                        <li style="width:50%;">科室:{{ doctor.department }}</li>
103
+                                        <li style="width:100%;">费用:{{ doctor.total }}元</li>
104
+                                        <li style="width:100%;">判断结果:</li>
105
+                                        <li style="width:100%;">是否有传染病:</li>
106
+                                        <li style="width:100%;">血压:</li>
107
+                                    </ul>
108
+                                </div>
109
+                            </div>
110
+                        </el-tab-pane>
111
+                        <el-tab-pane label="月结" name="second">
112
+                            <div style="display:flex;height:100%;">
113
+                                <div class="centerLeft">
114
+                                    <div class="tabsBox">
115
+                                        <el-button type="text" class="addTab" @click="addCharges" icon="el-icon-circle-plus">附加收费</el-button>
116
+                                        <el-tabs class="preTabs" v-model="editableTabsValue" type="card" closable @tab-remove="removeTab" :before-leave="moreState">
117
+                                            <el-tab-pane
118
+                                                v-for="(item, index) in editableTabs"
119
+                                                :key="index"
120
+                                                :label="item.title"
121
+                                                :name="item.name"
122
+                                            >
123
+                                                <div class="RP">
124
+                                                    Rp
125
+                                                    <el-date-picker
126
+                                                    style="width:420px;"
127
+                                                    v-model="value1"
128
+                                                    type="daterange"
129
+                                                    range-separator="至"
130
+                                                    start-placeholder="开始日期"
131
+                                                    end-placeholder="结束日期">
132
+                                                    </el-date-picker> 
133
+                                                </div>
134
+                                                <prescription-table :preTableData='preTableData'></prescription-table>
135
+                                            </el-tab-pane>
136
+                                            <el-tab-pane name="more" closable><span slot="label"><i class="el-icon-plus" @click="addTab"></i></span></el-tab-pane>
137
+                                        </el-tabs>
138
+                                        
139
+                                    </div>
140
+                                    <div class="costBox">
141
+                                        <span>处方编号:2134348971237883</span>
142
+                                        <span>当前处方总费用:<span style="color:red;">{{ total }}元</span></span>
143
+                                        <span>{{ state }}</span>
144
+                                    </div>
145
+                                </div>
146
+                                <div class="centerRight">
147
+                                    <p class="centerRightTitle">人员信息</p>
148
+                                    <div style="display:flex;justify-content: space-between;line-height:30px;">
149
+                                        <span style="font-size:14px;">人员编码:</span>
150
+                                        <span style="font-size:14px;">日期:{{start_time}}</span>
151
+                                    </div>
152
+                                    <ul class="basicUl">
153
+                                        <li style="width:50%;">姓名:{{ patientInfo.name }}</li>
154
+                                        <li style="width:50%;">性别:{{ patientInfo && patientInfo.gend == 1 ? '男' : "女" }}</li>
155
+                                        <li style="width:50%;">年龄:{{ patientInfo.age }}</li>
156
+                                        <li style="width:50%;">身高:</li>
157
+                                        <li style="width:50%;">体重:</li>
158
+                                        <li style="width:50%;">电话:</li>
159
+                                        <li style="width:100%;">地址:</li>
160
+                                        <li style="width:100%;">过敏史:</li>
161
+                                    </ul>
162
+                                    <p class="centerRightTitle">诊断信息</p>
163
+                                    <div style="display:flex;justify-content: space-between;line-height:30px;">
164
+                                        <span style="font-size:14px;">门诊编号:676273816287361</span>
165
+                                    </div>
166
+                                    <ul class="basicUl">
167
+                                        <li style="width:50%;">医生:{{ doctor.name }}</li>
168
+                                        <li style="width:50%;">科室:{{ doctor.department }}</li>
169
+                                        <li style="width:100%;">费用:{{ doctor.total }}元</li>
170
+                                        <li style="width:100%;">判断结果:</li>
171
+                                        <li style="width:100%;">是否有传染病:</li>
172
+                                        <li style="width:100%;">血压:</li>
173
+                                    </ul>
174
+                                </div>
175
+                            </div>
176
+                        </el-tab-pane>
177
+                    </el-tabs>
178
+                    
179
+                    
180
+                </div>
72 181
             </div>
73
-          </div>
74
-          <div class="centerRight">
75
-            <p class="centerRightTitle">人员信息</p>
76
-            <div style="display:flex;justify-content: space-between;line-height:30px;">
77
-              <span style="font-size:14px;">人员编码:</span>
78
-              <span style="font-size:14px;">日期:{{record_date}}</span>
79
-            </div>
80
-            <ul class="basicUl">
81
-              <li style="width:50%;">姓名:{{patientInfo.name}}</li>
82
-              <li style="width:50%;">性别:{{patientInfo.gender == 1 ? '男' : '女' }}</li>
83
-              <li style="width:50%;">年龄:{{patientInfo.age }}</li>
84
-              <li style="width:50%;">身高:{{patientInfo.height}}</li>
85
-              <li style="width:50%;">体重:{{patientInfo.weight}}</li>
86
-              <li style="width:50%;">电话:{{patientInfo.phone}}</li>
87
-              <li style="width:100%;">地址:{{patientInfo.home_address}}</li>
88
-            </ul>
89
-            <p class="centerRightTitle">诊断信息</p>
90
-            <div style="display:flex;justify-content: space-between;line-height:30px;">
91
-              <span style="font-size:14px;">门诊编号:676273816287361</span>
92
-            </div>
93
-            <ul class="basicUl">
94
-              <li style="width:50%;">医生:{{ }}</li>
95
-              <li style="width:50%;">科室:{{ }}</li>
96
-              <li style="width:100%;">费用:{{ }}元</li>
97
-              <li style="width:100%;">判断结果:</li>
98
-              <li style="width:100%;">是否有传染病:</li>
99
-              <li style="width:100%;">血压:</li>
100
-            </ul>
101
-          </div>
102 182
         </div>
103
-      </div>
183
+        <additionalCharges ref='additionalCharges'></additionalCharges>
104 184
     </div>
105
-    <!--<additionalCharges ref='additionalCharges'></additionalCharges>-->
106
-  </div>
107 185
 </template>
108 186
 
109 187
 
110 188
 <script>
111
-  import BreadCrumb from '@/xt_pages/components/bread-crumb'
112
-  import noCharge from './components/noCharge'
113
-  import charged from './components/charged'
114
-  import medicalInsuranceRefund from './components/medicalInsuranceRefund'
115
-  import prescriptionTable from './components/prescriptionTable'
116
-  import additionalCharges from './components/additionalCharges'
117
-  import { getPatientInformation, getPatientList } from '@/api/project/project'
118
-  import { getPatientInfo, getSchedulePatientList, register,upload } from '@/api/his/his'
119
-
120
-  const moment = require('moment')
121
-  export default {
122
-    components: {
123
-      BreadCrumb,
124
-      noCharge,
125
-      charged,
126
-      medicalInsuranceRefund,
127
-      prescriptionTable,
128
-      additionalCharges
189
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
190
+import noCharge from './components/noCharge'
191
+import charged from './components/charged'
192
+import medicalInsuranceRefund from './components/medicalInsuranceRefund'
193
+import prescriptionTable from './components/prescriptionTable'
194
+import additionalCharges from './components/additionalCharges'
195
+import { getPatientList,getPatientInformation } from "@/api/project/project"
196
+const moment = require('moment')
197
+export default {
198
+    components:{
199
+        BreadCrumb,
200
+        noCharge,
201
+        charged,
202
+        medicalInsuranceRefund,
203
+        prescriptionTable,
204
+        additionalCharges
129 205
     },
130
-    data() {
131
-      return {
132
-        crumbs: [
133
-          { path: false, name: '门诊收费' },
134
-          { path: false, name: '门诊收费管理' }
135
-        ],
136
-        curPrescriptions: {},
137
-        prescriptions: [],
138
-        record_date: '',
139
-        tableData: [],
140
-        editableTabsValue: '1',
141
-        loadingone:false,
142
-        editableTabs: [{
143
-          title: '处方1',
144
-          name: '1'
145
-        }],
146
-        tabIndex: 1,
147
-        hisPatientInfo: {},
148
-        loadingtwo:false,
149
-        patientTableData: [{
150
-          name: '杨美英',
151
-          mdtrt_id: '1709946'
152
-        }],
153
-        patientInfo: { id: 0 },
154
-        doctor: {},
155
-        total: 0,
156
-        state: '未收费',
157
-        radio: 1,
158
-        radioStatus: 1,
159
-        search_input: '',
160
-        start_time: moment().locale('zh-cn').format('YYYY-MM-DD')
161
-      }
206
+    data(){
207
+        return{
208
+            crumbs: [
209
+                { path: false, name: '门诊收费' },
210
+                { path: false, name: '门诊收费管理' }
211
+            ],
212
+            tableData: [],
213
+            activeName:'first',
214
+            editableTabsValue: '1',
215
+            editableTabs: [{
216
+            title: '处方1',
217
+            name: '1',
218
+            }],
219
+            tabIndex: 1,
220
+
221
+            patientTableData:[{
222
+                name:'杨美英',
223
+                mdtrt_id:"1709946",
224
+            }],
225
+            patientInfo:{},
226
+            doctor:{},
227
+            total:0,
228
+            state:'未收费',
229
+            radio:1,
230
+            radioStatus:1,
231
+            search_input:"",
232
+            start_time:moment().locale('zh-cn').format('YYYY-MM-DD')
233
+        }
162 234
     },
163
-    created() {
164
-      var nowDate = new Date()
165
-      var nowYear = nowDate.getFullYear()
166
-      var nowMonth = nowDate.getMonth() + 1
167
-      var nowDay = nowDate.getDate()
168
-      this.record_date =
169
-        nowYear +
170
-        '-' +
171
-        (nowMonth < 10 ? '0' + nowMonth : nowMonth) +
172
-        '-' +
173
-        (nowDay < 10 ? '0' + nowDay : nowDay)
174
-
175
-      //获取患者信息
176
-      this.getPatientList()
235
+    created(){
236
+       
237
+       //获取患者信息
238
+       this.getPatientList()
177 239
     },
178
-    methods: {
179
-      tabclickEvent(val) {
180
-        for (let i = 0; i < this.prescriptions.length; i++) {
181
-          if (this.prescriptions[i].name == val.name) {
182
-            this.curPrescriptions = {}
183
-            var temp = this.deepClone(this.prescriptions[i])
184
-            this.curPrescriptions = temp
185
-            console.log(this.curPrescriptions)
186
-          }
187
-        }
188
-      }, deepClone(source) {
189
-        if (!source && typeof source !== 'object') {
190
-          throw new Error('error arguments', 'shallowClone')
191
-        }
192
-        const targetObj = source.constructor === Array ? [] : {}
193
-        Object.keys(source).forEach((keys) => {
194
-          if (source[keys] && typeof source[keys] === 'object') {
195
-            targetObj[keys] = this.deepClone(source[keys])
196
-          } else {
197
-            targetObj[keys] = source[keys]
198
-          }
199
-        })
200
-        return targetObj
201
-      },
202
-      getTotal() {
203
-        var total = 0
204
-        console.log(this.prescriptions)
205
-        for (let i = 0; i < this.prescriptions.length; i++) {
206
-          if (this.prescriptions[i].advices != null) {
207
-            for (let a = 0; a < this.prescriptions[i].advices.length; a++) {
208
-              total = total + this.prescriptions[i].advices[a].price * this.prescriptions[i].advices[a].prescribing_number
209
-            }
210
-          }
211
-          if (this.prescriptions[i].project != null) {
212
-            for (let b = 0; b < this.prescriptions[i].project.length; b++) {
213
-              total = total + this.prescriptions[i].project[b].price * this.prescriptions[i].project[b].count
214
-            }
215
-          }
216
-        }
217
-        return total
218
-      },
219
-      moreState(tab, event) {
220
-        if (tab == 'more') {
221
-          return false
222
-        }
223
-      },
224
-      open(index) {
225
-        if (index == 1) {
226
-        } else if (index == 2) {
227
-
228
-        } else if (index == 4) {
229
-
230
-          let params = {
231
-            'id': this.patientInfo.id,
232
-            'record_time': this.record_date
233
-          }
234
-          this.loadingtwo = true
235
-          upload(params).then(response => {
236
-            if (response.data.state == 0) {
237
-              this.$message.error(response.data.msg)
238
-              this.loadingtwo = false
239
-
240
-              return false
241
-
242
-            } else {
243
-              this.loadingtwo = false
244
-
245
-            }
246
-          })
247
-
248
-          this.state = '已收费'
249
-          this.$message({ message: '收费成功', type: 'success' })
250
-        } else if (index == 5) {
251
-          this.$message({ message: '退费成功', type: 'success' })
252
-        } else if (index == 6) {
253
-
254
-          if (this.patientInfo.id == 0) {
255
-            this.$message.error('请先选择要挂号的病人')
256
-            return
257
-          }
258
-          let params = {
259
-            'id': this.patientInfo.id,
260
-            'record_time': this.record_date
240
+    methods:{
241
+        moreState(tab, event){
242
+          if(tab == 'more'){
243
+            return false;
261 244
           }
262
-          this.loadingone = true
263
-          register(params).then(response => {
264
-            if (response.data.state == 0) {
265
-              this.$message.error(response.data.msg)
266
-              this.loadingone = false
267
-
268
-              return false
269
-
270
-            } else {
271
-              this.loadingone = false
272
-              var his_info = response.data.data.his_info
273
-              this.hisPatientInfo = his_info
245
+        },
246
+        open(index){
247
+            if(index == 1){
248
+            }else if(index == 2){
249
+                this.$router.push('/outpatientCharges/print')
250
+            }else if(index == 3){
251
+                this.$router.push('/outpatientCharges/treatPrint')
252
+            }else if(index == 4){
253
+                this.state = '已收费'
254
+                this.$message({message: '收费成功',type: 'success'});
255
+            }else if(index == 5){
256
+                this.$message({message: '退费成功',type: 'success'});
274 257
             }
275
-          })
276
-        }
277
-      },
278
-      addTab(targetName) {
279
-        let newTabName = ++this.tabIndex + ''
280
-        this.editableTabs.push({
281
-          title: '处方' + this.tabIndex,
282
-          name: newTabName
283
-        })
284
-        this.editableTabsValue = newTabName
285
-      },
286
-      removeTab(targetName) {
287
-        let tabs = this.editableTabs
288
-        let activeName = this.editableTabsValue
289
-        if (activeName === targetName) {
290
-          tabs.forEach((tab, index) => {
291
-            if (tab.name === targetName) {
292
-              let nextTab = tabs[index + 1] || tabs[index - 1]
293
-              if (nextTab) {
294
-                activeName = nextTab.name
295
-              }
258
+            
259
+        },
260
+        addTab(targetName) {
261
+            let newTabName = ++this.tabIndex + '';
262
+            this.editableTabs.push({
263
+                title: '处方' + this.tabIndex,
264
+                name: newTabName,
265
+            });
266
+            this.editableTabsValue = newTabName;
267
+        },
268
+        removeTab(targetName) {
269
+            let tabs = this.editableTabs;
270
+            let activeName = this.editableTabsValue;
271
+            if (activeName === targetName) {
272
+            tabs.forEach((tab, index) => {
273
+                if (tab.name === targetName) {
274
+                let nextTab = tabs[index + 1] || tabs[index - 1];
275
+                if (nextTab) {
276
+                    activeName = nextTab.name;
277
+                }
278
+                }
279
+            });
296 280
             }
297
-          })
281
+            
282
+            this.editableTabsValue = activeName;
283
+            this.editableTabs = tabs.filter(tab => tab.name !== targetName);
284
+        },
285
+        addCharges(){
286
+            this.$refs.additionalCharges.show()
287
+        },
288
+        choosePatient(){
289
+            let a = JSON.parse(localStorage.getItem("drugs"))
290
+            this.preTableData = a
291
+            this.preTableData.map(item => {
292
+                this.total += item.unitPrice
293
+            })
294
+            // this.patientInfo = {
295
+            //     certno:"440221195903290027",
296
+            //     psn_no:"0221201972",
297
+            //     gend:"2",
298
+            //     brdy:"1960-03-29",
299
+            //     naty:"01",
300
+            //     psn_cert_type:"01",
301
+            //     psn_name:"杨美英",
302
+            //     age:60.7
303
+            // }
304
+            // this.doctor = {
305
+            //     name:'刘志刚',
306
+            //     department:'血透中心',
307
+            //     total:20,
308
+            // }
309
+        },
310
+       changeRadio(id){ 
311
+         console.log(id)
312
+         this.radioStatus = id
313
+         this.getPatientList()
314
+       },
315
+
316
+        //患者列表
317
+        getPatientList(){
318
+           getPatientList().then(response=>{
319
+               if(response.data.state == 1){
320
+                 var hisPatient = response.data.data.hisPatient
321
+                 console.log("his",hisPatient)
322
+                 var scheduleList = response.data.data.scheduleList
323
+                 hisPatient.push(...scheduleList)
324
+                 console.log("arrr",hisPatient)
325
+                 var tabArr = this.unique(hisPatient)
326
+                 console.log("22222",tabArr)
327
+                 if(this.radioStatus == 1){
328
+                    this.tableData = tabArr
329
+                    this.$refs.tab.setCurrentRow(this.tableData[0])
330
+                 }
331
+                 if(this.radioStatus == 2){
332
+                    var prescription = response.data.data.prescription
333
+                    this.tableData = prescription
334
+                    this.$refs.tab.setCurrentRow(this.tableData[0])
335
+                 }
336
+                
337
+               }  
338
+           })
339
+        },
340
+
341
+        unique(arr) {
342
+            const res = new Map();
343
+            return arr.filter((arr) => !res.has(arr.id_card_no) && res.set(arr.id_card_no, 1))
344
+        },
345
+        handleCurrentChange(val){
346
+          console.log("val",val)
347
+          this.getPatientInformation(val.id)
348
+        },
349
+        
350
+        //获取患者的基本信息
351
+        getPatientInformation(id){
352
+            console.log(id)
353
+            getPatientInformation(id).then(response=>{
354
+               if(response.data.state == 1){
355
+                  var information = response.data.data.information
356
+                  console.log("information",information)
357
+                  this.patientInfo = information
358
+               }
359
+            })
298 360
         }
299
-
300
-        this.editableTabsValue = activeName
301
-        this.editableTabs = tabs.filter(tab => tab.name !== targetName)
302
-      },
303
-      addCharges() {
304
-        this.$refs.additionalCharges.show()
305
-      },
306
-      choosePatient() {
307
-
308
-      },
309
-      changeRadio(id) {
310
-        console.log(id)
311
-        this.radioStatus = id
312
-        this.getPatientList()
313
-      },
314
-
315
-      //患者列表
316
-      getPatientList() {
317
-        let params = {
318
-          'record_date': this.record_date
319
-        }
320
-        getSchedulePatientList(params).then(response => {
321
-          if (response.data.state == 0) {
322
-            this.$message.error(response.data.msg)
323
-            return false
324
-          } else {
325
-            this.patientTableData = []
326
-            // let cal_one = 0
327
-            // let cal_two = 0
328
-            for (let i = 0; i < response.data.data.list.length; i++) {
329
-              // if (response.data.data.list[i].prescription == null || response.data.data.list[i].prescription.length == 0) {
330
-              //   // cal_one = cal_one + 1
331
-              // }
332
-              if (response.data.data.list[i].prescription != null && response.data.data.list[i].prescription.length > 0) {
333
-                // cal_two = cal_two + 1
334
-                this.patientTableData.push(response.data.data.list[i])
335
-              }
336
-            }
337
-
338
-            // this.cal_one = cal_one
339
-            // this.cal_two = cal_two
340
-          }
341
-        })
342
-      },
343
-
344
-      unique(arr) {
345
-        const res = new Map()
346
-        return arr.filter((arr) => !res.has(arr.id_card_no) && res.set(arr.id_card_no, 1))
347
-      },
348
-      handleCurrentChange(val) {
349
-        this.getPatientInformation(val.patients.id)
350
-      }, //获取患者的基本信息
351
-      getPatientInformation(id) {
352
-        let params = {
353
-          'record_date': this.record_date,
354
-          'patient_id': id
355
-        }
356
-        getPatientInfo(params).then(response => {
357
-          if (response.data.state == 0) {
358
-            this.$message.error(response.data.msg)
359
-            return false
360
-          } else {
361
-            this.patientInfo = response.data.data.xt_info
362
-            this.hisPatientInfo = response.data.data.his_info
363
-            this.prescriptions = []
364
-            for (let i = 0; i < response.data.data.prescription.length; i++) {
365
-              var prescription = response.data.data.prescription[i]
366
-              let index = i + 1
367
-              let obj = {
368
-                name: '处方' + index,
369
-                advices: prescription.advices,
370
-                project: prescription.project,
371
-                type: response.data.data.prescription[i].type
372
-              }
373
-              this.prescriptions.push(obj)
374
-              this.curPrescriptions = this.prescriptions[0]
375
-
376
-            }
377
-            // this.$refs.prescriptions.setData(this.prescriptions)
378
-          }
379
-        })
380
-      }
381 361
     }
382
-  }
362
+}
383 363
 </script>
384 364
 
385 365
 <style lang="scss" scoped>
386
-  .app-container {
387
-    height: 100%;
388
-  }
389
-
390
-  .outpatientChargesManagement {
391
-    height: 100%;
392
-    display: flex;
393
-    flex-direction: column;
394
-
395
-  .mainLeft {
396
-    width: 200px;
366
+.app-container{
367
+    height:100%;
368
+}
369
+.outpatientChargesManagement{
397 370
     height: 100%;
398 371
     display: flex;
399 372
     flex-direction: column;
400
-
401
-  .el-radio {
402
-    margin-right: 5px;
403
-  }
404
-
405
-  }
406
-  .mainCell {
407
-    height: 36px;
408
-    display: flex;
409
-    align-items: center;
410
-  }
411
-
412
-  .mainRight {
413
-    margin-left: 20px;
414
-    flex: 1;
415
-    height: 100%;
416
-    display: flex;
417
-    flex-direction: column;
418
-    overflow-y: auto;
419
-
420
-  .cellSpan {
421
-    min-width: 80px;
422
-    display: inline-block;
423
-    margin-right: 10px;
424
-  }
425
-
426
-  }
427
-  .tabsBox {
428
-    position: relative;
429
-    height: 90%;
430
-    overflow-y: auto;
431
-    margin-bottom: 60px;
432
-
433
-  .el-tabs__item {
434
-    padding: 0 10px;
435
-  }
436
-
437
-  }
438
-  .addTab {
439
-    position: absolute;
440
-    right: 0;
441
-    top: 6px;
442
-    z-index: 20;
443
-  }
444
-
445
-  .mainCenter {
446
-    display: flex;
447
-    flex: 1;
448
-  }
449
-
450
-  .costBox {
451
-    width: 100%;
452
-    height: 60px;
453
-    background: #fff;
454
-    position: absolute;
455
-    bottom: 0;
456
-    display: flex;
457
-    align-items: center;
458
-    justify-content: space-between;
459
-  }
460
-
461
-  .centerLeft {
462
-    flex: 1;
463
-    display: flex;
464
-    flex-direction: column;
465
-    position: relative;
466
-  }
467
-
468
-  .centerRight {
469
-    width: 300px;
470
-    margin-left: 5px;
471
-    display: flex;
472
-    flex-direction: column;
473
-  }
474
-
475
-  .RP {
476
-    color: #409EFF;
477
-    font-size: 20px;
478
-    margin-bottom: 5px;
479
-  }
480
-
481
-  .centerRightTitle {
482
-    color: #409EFF;
483
-    padding-top: 10px;;
484
-  }
485
-
486
-  .basicUl {
487
-    border-top: 1px solid #e5e5e5;
488
-    border-left: 1px solid #e5e5e5;
489
-    display: flex;
490
-    flex-wrap: wrap;
491
-
492
-  li {
493
-    border-bottom: 1px solid #e5e5e5;
494
-    border-right: 1px solid #e5e5e5;
495
-    width: 100%;
496
-    height: 38px;
497
-    line-height: 38px;
498
-    text-indent: 5px;
499
-    font-size: 14px;
500
-  }
501
-
502
-  }
503
-  }
373
+    .mainLeft{
374
+        width:200px;
375
+        height: 100%;
376
+        display: flex;
377
+        flex-direction: column;
378
+        .el-radio{
379
+            margin-right:5px;
380
+        }
381
+        
382
+    }
383
+    .mainCell{
384
+        height:36px;
385
+        display: flex;
386
+        align-items: center;
387
+    }
388
+    .mainRight{
389
+        margin-left:20px;
390
+        flex:1;
391
+        height: 100%;
392
+        display: flex;
393
+        flex-direction: column;
394
+        overflow-y: auto;
395
+        .cellSpan{
396
+            min-width: 80px;
397
+            display: inline-block;
398
+            margin-right: 10px;
399
+        }
400
+    }
401
+    .tabsBox{
402
+        position: relative;
403
+        height: 90%;
404
+        overflow-y: auto;
405
+        margin-bottom: 60px;
406
+        .el-tabs__item{
407
+            padding: 0 10px;
408
+        }
409
+    }
410
+    .addTab{
411
+        position: absolute;
412
+        right: 0;
413
+        top: 6px;
414
+        z-index: 20;
415
+    }
416
+    .mainCenter{
417
+        display: flex;
418
+        flex:1;
419
+    }
420
+    .costBox{
421
+        width:100%;
422
+        height:60px;
423
+        background:#fff;
424
+        position: absolute;
425
+        bottom:0;
426
+        display: flex;
427
+        align-items: center;
428
+        justify-content: space-between;
429
+    }
430
+    .centerLeft{
431
+        flex: 1;
432
+        display: flex;
433
+        flex-direction: column;
434
+        position: relative;
435
+        height: 100%;
436
+    }
437
+    .settlementTabs{
438
+        flex: 1;
439
+        .el-tab-pane{
440
+            // display: flex;
441
+            height:100%;
442
+        }
443
+        .el-tabs__content{
444
+            height:100%;
445
+        }
446
+    }
447
+    .centerRight{
448
+        width: 300px;
449
+        margin-left: 5px;
450
+        display: flex;
451
+        flex-direction: column;
452
+    }
453
+    .RP{
454
+        color:#409EFF;
455
+        font-size: 20px;
456
+        margin-bottom: 5px;
457
+    }
458
+    .centerRightTitle{
459
+        color:#409EFF;
460
+        padding-top: 10px;;
461
+    }
462
+    .basicUl{
463
+        border-top: 1px solid #e5e5e5;
464
+        border-left: 1px solid #e5e5e5;
465
+        display: flex;
466
+        flex-wrap: wrap;
467
+        li{
468
+            border-bottom: 1px solid #e5e5e5;
469
+            border-right: 1px solid #e5e5e5;
470
+            width: 100%;
471
+            height: 38px;
472
+            line-height: 38px;
473
+            text-indent: 5px;
474
+            font-size: 14px;
475
+        }
476
+    }
477
+}
504 478
 </style>
505 479
 
506 480
 <style lang="scss">
507
-  #tab-more {
508
-
509
-  .el-icon-close {
510
-    display: none;
511
-  }
512
-
513
-  }
481
+#tab-more{
482
+    .el-icon-close{
483
+        display: none;
484
+    }
485
+}
486
+.settlementTabs{
487
+    .el-tabs__content{
488
+        height:90%;
489
+    }
490
+}
514 491
 </style>
515 492
 

Diff nebyl zobrazen, protože je příliš veliký
+ 1184 - 0
src/xt_pages/outpatientCharges/print.vue


+ 107 - 0
src/xt_pages/outpatientCharges/template/printOne.vue Zobrazit soubor

@@ -0,0 +1,107 @@
1
+<template>
2
+    <div id='prescription-print' class="prescription-print">
3
+        <div class="printTitle">血液透析中心处方笺</div>
4
+        <div class="infoTitle">
5
+            <p>姓名:阿萨德</p>
6
+            <p>性别:男</p>
7
+            <p>年龄:12岁</p>
8
+        </div>
9
+        <div class="infoMain">
10
+            <p style="margin-bottom: 10px;">门诊号:111111111111</p>
11
+            <p style="margin-bottom: 10px;">科室:全科</p>
12
+            <p style="margin-bottom: 10px;">医保卡号:111111111111</p>
13
+            <p style="margin-bottom: 10px;">电话:111111111111</p>
14
+            <p>地址:加上来看待就卢萨卡的及拉丝机的了</p>
15
+            <p>临床诊断:拉胯手机上的拉丝机的</p>
16
+        </div>
17
+        <div class="prescriptionBox">
18
+            <p class="Rp">Rp:</p>
19
+            <div class="drugsBox">
20
+                <p class="drugsOne">重组人促红素(CHO细胞)注射液&nbsp;&nbsp;0.5毫升&nbsp;×&nbsp; 2支</p>
21
+                <p style="margin-left:100px;"><span>用法:0.5毫升</span>&nbsp;&nbsp;<span>一天一次</span>&nbsp;&nbsp;<span>静脉注射</span></p>
22
+            </div>
23
+            <div class="drugsBox">
24
+                <p class="drugsOne">重组人促红素(CHO细胞)注射液&nbsp;&nbsp;0.5毫升&nbsp;×&nbsp; 2支</p>
25
+                <p style="margin-left:100px;"><span>用法:0.5毫升</span>&nbsp;&nbsp;<span>一天一次</span>&nbsp;&nbsp;<span>静脉注射</span></p>
26
+            </div>
27
+        </div>
28
+        <div class="doctorBox">
29
+            <p>医师:高华</p>
30
+            <p>日期:2020-11-14 09:12:32</p>
31
+        </div>
32
+        <div class="actionBar">
33
+            <p>审核:</p>
34
+            <p>配对:</p>
35
+            <p>核对:</p>
36
+            <p>发药:</p>
37
+            <p>药费:</p>
38
+        </div>
39
+    </div>
40
+</template>
41
+
42
+
43
+
44
+<style lang="scss" scoped>
45
+.printTitle{
46
+    font-size: 22px;
47
+    text-align: center;
48
+    font-weight: bold;
49
+}
50
+.infoTitle{
51
+    display: flex;
52
+    border-bottom: 2px solid #000;
53
+    margin-top:10px;
54
+    line-height: 24px;
55
+    padding:0 10px;
56
+}
57
+.infoTitle p{
58
+    width: 200px;
59
+}
60
+.infoMain{
61
+    display: flex;
62
+    flex-wrap: wrap;
63
+    border-bottom: 2px solid #000;
64
+    padding:0 10px;
65
+}
66
+.infoMain p{
67
+    width: 50%;
68
+    line-height: 24px;
69
+}
70
+.prescriptionBox{
71
+    padding:0 10px;
72
+    height:600px;
73
+}
74
+.Rp{
75
+    font-size: 22px;
76
+    font-weight: bold;
77
+}
78
+.drugsBox{
79
+    padding-left: 40px;
80
+    margin-bottom: 10px;
81
+}
82
+.drugsBox p{
83
+    line-height: 30px;
84
+}
85
+.drugsOne{
86
+    line-height: 24px;
87
+}
88
+.drugsOne span{
89
+    margin-right: 20px;
90
+}
91
+.doctorBox{
92
+    display: flex;
93
+    justify-content: space-between;
94
+    padding:0 10px;
95
+    line-height: 24px;
96
+    border-bottom: 2px solid #000;
97
+}
98
+.actionBar{
99
+    display: flex;
100
+    justify-content: space-between; 
101
+    line-height: 24px;
102
+    padding:0 10px;
103
+}
104
+.actionBar p{
105
+    width:150px;
106
+}
107
+</style>

+ 159 - 0
src/xt_pages/outpatientCharges/treatPrint.vue Zobrazit soubor

@@ -0,0 +1,159 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+       <template>
6
+        <el-button
7
+          :loading="loading"
8
+          size="small"
9
+          icon="el-icon-printer"
10
+          @click="printThisPage"
11
+          type="primary"
12
+          >打印</el-button
13
+        >
14
+      </template>
15
+    </div>
16
+    <div class="app-container" style="min-height:0;">
17
+        <div class='dialysisPage' style="flex: 1;height: calc(100vh - 178px);overflow-x:auto;::-webkit-scrollbar:height:15px">
18
+            <printOne v-bind:childResponse="childResponse"></printOne>
19
+        </div>
20
+    </div>
21
+  </div>
22
+</template>
23
+
24
+<script>
25
+
26
+import {
27
+  getDialysisRecordInitData,
28
+  getDialysisSchedules
29
+} from "@/api/dialysis_record";
30
+import { parseTime } from "@/utils";
31
+import { getDialysisRecord } from "@/api/dialysis";
32
+import { getDataConfig } from "@/utils/data";
33
+import { jsGetAge, uParseTime } from "@/utils/tools";
34
+// import LabelBox from "./printItem/LabelBox";
35
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
36
+import print from "print-js";
37
+import printOne from "./treatTemplate/printOne"
38
+export default {
39
+  name: "dialysisPrintOrder",
40
+  components: {
41
+    BreadCrumb,
42
+    printOne
43
+  },
44
+  data() {
45
+    return {
46
+      crumbs: [
47
+        { path: false, name: "透析管理" },
48
+        { path: false, name: "打印单" }
49
+      ],
50
+      childResponse: {},
51
+      
52
+
53
+    };
54
+  },
55
+  methods: {
56
+    getAdminUser(id) {
57
+      if (id == 0) {
58
+        return "";
59
+      }
60
+      if (id == undefined) {
61
+        return "";
62
+      }
63
+      for (let i = 0; i < this.adminUser.length; i++) {
64
+        if (this.adminUser[i].id == id) {
65
+          return this.adminUser[i].name;
66
+        }
67
+      }
68
+    },
69
+    getTime(value, temp) {
70
+      if (value == 0) {
71
+        return "";
72
+      }
73
+      if (value != undefined) {
74
+        return uParseTime(value, temp);
75
+      }
76
+      return "";
77
+    },
78
+    printThisPage() {
79
+      var ptime = Math.round(new Date().getTime() / 1000);
80
+      this.print_time = uParseTime(ptime, "{y}-{m}-{d} {h}:{i}");
81
+
82
+      const style =
83
+        '@media print {.printTitle{font-size: 22px;text-align: center;font-weight: bold;}.infoMain{display: flex;flex-wrap: wrap;padding:0 10px;margin-top:10px;}.infoMain .infoP{width: 33%;line-height: 1px;}.chargeBox{border: 1px solid #000;}.chargeUl{display:flex;justify-content: space-between;text-align: center;}.chargeUl p{line-height: 1px;}.chargeP{line-height: 1px;padding-bottom:16px;}.moneyBox{display: flex;justify-content: space-between;padding: 0 10px;background: #eeeeee;-webkit-print-color-adjust:exact;-moz-print-color-adjust:exact;-ms-print-color-adjust:exact;print-color-adjust:exact;height: 40px;align-items: center;border:1px solid #000; border-top:none}.actionBar{display: flex;justify-content: space-between; line-height: 24px;padding:0 10px;}.actionBar p{width:150px;}}';
84
+        printJS({
85
+            printable: "prescription-print",
86
+            type: "html",
87
+            style: style,
88
+            scanStyles: false
89
+        });
90
+
91
+      // if (this.org_template_info.template_id == 1) {
92
+      //   printJS({
93
+      //     printable: "dialysis-print-box",
94
+      //     type: "html",
95
+      //     style: style,
96
+      //     scanStyles: false
97
+      //   });
98
+      // }
99
+    },
100
+  },
101
+  created() {
102
+  },
103
+};
104
+</script>
105
+
106
+<style lang="scss" scoped>
107
+.printTitle{
108
+    font-size: 22px;
109
+    text-align: center;
110
+    font-weight: bold;
111
+}
112
+.infoMain{
113
+    display: flex;
114
+    flex-wrap: wrap;
115
+    border-bottom: 2px solid #000;
116
+    padding:0 10px;
117
+}
118
+.infoMain .infoP{
119
+    width: 33%;
120
+    line-height: 24px;
121
+}
122
+.prescriptionBox{
123
+    padding:0 10px;
124
+    height:600px;
125
+}
126
+.Rp{
127
+    font-size: 22px;
128
+    font-weight: bold;
129
+}
130
+.drugsBox{
131
+    padding-left: 40px;
132
+    margin-bottom: 10px;
133
+}
134
+.drugsBox p{
135
+    line-height: 30px;
136
+}
137
+.drugsOne{
138
+    line-height: 24px;
139
+}
140
+.drugsOne span{
141
+    margin-right: 20px;
142
+}
143
+.doctorBox{
144
+    display: flex;
145
+    justify-content: space-between;
146
+    padding:0 10px;
147
+    line-height: 24px;
148
+    border-bottom: 2px solid #000;
149
+}
150
+.actionBar{
151
+    display: flex;
152
+    justify-content: space-between; 
153
+    line-height: 24px;
154
+    padding:0 10px;
155
+}
156
+.actionBar p{
157
+    width:150px;
158
+}
159
+</style>

+ 146 - 0
src/xt_pages/outpatientCharges/treatTemplate/printOne.vue Zobrazit soubor

@@ -0,0 +1,146 @@
1
+<template>
2
+    <div id='prescription-print' class="prescription-print">
3
+        <div class="printTitle">血液透析中心医药费收据及收费项目清单</div>
4
+        <div class="infoMain">
5
+            <p class="infoP">医院(药店)编号:H8D50</p>
6
+            <p class="infoP">名称:血液透析中心</p>
7
+            <p class="infoP">医生工号:H8D50</p>
8
+            <p class="infoP">门诊流水号:H8D50</p>
9
+            <p class="infoP">科别:全科</p>
10
+            <p class="infoP">处方单据号:H8D50</p>
11
+            <p class="infoP">姓名:张三</p>
12
+            <p class="infoP">医疗账号:98798798</p>
13
+            <p class="infoP">医疗类别:普通</p>
14
+        </div>
15
+        <div class="chargeBox">
16
+            <div style="display:flex;justify-content: space-between;border-bottom:1px solid #000;">
17
+                <div class="chargeUl" style="width:20%;">
18
+                    <p style="width:50%;border-right:1px solid #000;">费用类型</p>
19
+                    <p style="width:50%;border-right:1px solid #000;">金额</p>
20
+                </div>
21
+                <div class="chargeUl" style="width:80%;">
22
+                    <p style="width:40%;border-right:1px solid #000;">明细名称</p>
23
+                    <p style="width:15%;border-right:1px solid #000;">规格</p>
24
+                    <p style="width:15%;border-right:1px solid #000;">数量</p>
25
+                    <p style="width:15%;border-right:1px solid #000;">单价</p>
26
+                    <p style="width:15%;">金额</p>
27
+                </div>
28
+            </div>
29
+            <div style="display:flex;justify-content: space-between;">
30
+                <div style="width:20%;">
31
+                    <div class="chargeUl" v-for="item in 3">
32
+                        <p style="width:50%;">材料费</p>
33
+                        <p style="width:50%;">122</p>
34
+                    </div>
35
+                    <div class="chargeUl" style="border-top:1px solid #000;"> 
36
+                        <p style="width:50%;">费用合计</p>
37
+                        <p style="width:50%;">123</p>
38
+                    </div>
39
+                    <div class="chargeUl" style="border-top:1px solid #000;">
40
+                        <p style="width:50%;">记账支付</p>
41
+                        <p style="width:50%;">123</p>
42
+                    </div>
43
+                    <div class="chargeUl" style="border-top:1px solid #000;">
44
+                        <p style="width:50%;">个人账号</p>
45
+                        <p style="width:50%;">123</p>
46
+                    </div>
47
+                    <div class="chargeUl" style="border-top:1px solid #000;border-bottom:1px solid #000;">
48
+                        <p style="width:50%;">现金支付</p>
49
+                        <p style="width:50%;">123</p>
50
+                    </div>
51
+                </div>
52
+                <div style="width:80%;display:flex;height:600px;">
53
+                    <!-- <ul class="chargeUl" v-for="item in 4">
54
+                        <li style="width:20%;">血压透析器(进口)FFX60</li>
55
+                        <li style="width:20%;">次</li>
56
+                        <li style="width:20%;">1个</li>
57
+                        <li style="width:20%;">123</li>
58
+                        <li style="width:20%;">123</li>
59
+                    </ul> -->
60
+                    <div style="border-left:1px solid #000;border-right:1px solid #000;width:40%;text-align:center;">
61
+                        <p v-for="item in 4" class="chargeP">血压透析器(进口)FFX60</p>
62
+                    </div>
63
+                    <div style="border-right:1px solid #000;width:15%;text-align:center;">
64
+                        <p v-for="item in 4" class="chargeP">次</p>
65
+                    </div>
66
+                    <div style="border-right:1px solid #000;width:15%;text-align:center;">
67
+                        <p v-for="item in 4" class="chargeP">1个</p>
68
+                    </div>
69
+                    <div style="border-right:1px solid #000;width:15%;text-align:center;">
70
+                        <p v-for="item in 4" class="chargeP">123</p>
71
+                    </div>
72
+                    <div style="width:15%;text-align:center;">
73
+                        <p v-for="item in 4" class="chargeP">123</p>
74
+                    </div>
75
+                </div>
76
+            </div>
77
+            
78
+        </div>
79
+        <div class="moneyBox">
80
+            <p>实收金:111</p>
81
+            <p>记账前金额:111</p>
82
+            <p>扣款金额:111</p>
83
+            <p>记账后金额:111</p>
84
+            <p>找赎金:111</p>
85
+        </div>
86
+        <div class="actionBar">
87
+            <p>收费员:</p>
88
+            <p>日期:</p>
89
+        </div>
90
+    </div>
91
+</template>
92
+
93
+
94
+
95
+<style lang="scss" scoped>
96
+.printTitle{
97
+    font-size: 22px;
98
+    text-align: center;
99
+    font-weight: bold;
100
+}
101
+.infoMain{
102
+    display: flex;
103
+    flex-wrap: wrap;
104
+    padding:0 10px;
105
+    margin-top:10px;
106
+}
107
+.infoMain .infoP{
108
+    width: 33%;
109
+    line-height: 24px;
110
+}
111
+.chargeBox{
112
+    border: 1px solid #000;
113
+}
114
+.chargeUl{
115
+    display:flex;
116
+    justify-content: space-between;
117
+    text-align: center;
118
+}
119
+.chargeUl p{
120
+    height:40px;
121
+    line-height: 40px;
122
+}
123
+.chargeP{
124
+    height:40px;
125
+    line-height: 40px;
126
+}
127
+.moneyBox{
128
+    display: flex;
129
+    justify-content: space-between;
130
+    padding: 0 10px;
131
+    background: #eee;
132
+    height: 40px;
133
+    align-items: center;
134
+    border:1px solid #000;
135
+    border-top:none
136
+}
137
+.actionBar{
138
+    display: flex;
139
+    justify-content: space-between; 
140
+    line-height: 24px;
141
+    padding:0 10px;
142
+}
143
+.actionBar p{
144
+    width:150px;
145
+}
146
+</style>

+ 11 - 1
src/xt_pages/outpatientDoctorStation/components/deskPrescription.vue Zobrazit soubor

@@ -21,6 +21,16 @@
21 21
           <el-form-item label="挂号类型: " prop="name">
22 22
             <el-input v-model="hisPatientInfo.register_type" placeholder="" readonly></el-input>
23 23
           </el-form-item>
24
+          <el-form-item label="挂号类型: " prop="name">
25
+            <el-select style="margin-right:5px;" v-model="doctorValue" placeholder="">
26
+              <el-option
27
+                v-for="(item,index) in doctors"
28
+                :key="index"
29
+                :label="item.user_name"
30
+                :value="item.id">
31
+              </el-option>
32
+            </el-select>
33
+          </el-form-item>
24 34
           <el-form-item label="诊断:" prop="name">
25 35
             <el-autocomplete
26 36
               style="width:100%;"
@@ -30,7 +40,7 @@
30 40
               placeholder="请输入内容"
31 41
             ></el-autocomplete>
32 42
           </el-form-item>
33
-          <el-form-item label="过敏及特殊病史: " prop="name">
43
+          <el-form-item label="特殊病史: " prop="name">
34 44
             <el-autocomplete
35 45
               style="width:100%;"
36 46
               class="inline-input"

+ 18 - 29
src/xt_pages/outpatientDoctorStation/components/deskRecord.vue Zobrazit soubor

@@ -36,9 +36,18 @@
36 36
       <el-form-item label="联系电话: " prop="name">
37 37
         <el-input v-model="patientInfo.phone" placeholder="" readonly></el-input>
38 38
       </el-form-item>
39
-
40
-      <el-form-item label="关系联系人电话: " prop="name">
41
-        <el-input v-model="patientInfo.relative_phone" placeholder="" readonly></el-input>
39
+      <el-form-item label="医保类型: " prop="name">
40
+        <!-- <el-select v-model="scope.row.delivery_way" placeholder="请选择">
41
+          <el-option
42
+            v-for="(item,index) in arr"
43
+            :key="index"
44
+            :label="item.name"
45
+            :value="item.name">
46
+          </el-option>
47
+        </el-select> -->
48
+      </el-form-item>
49
+      <el-form-item label="医保证号: " prop="name">
50
+        <el-input v-model="patientInfo.home_address" placeholder="" readonly></el-input>
42 51
       </el-form-item>
43 52
       <el-form-item label="家庭住址: " prop="name">
44 53
         <el-input v-model="patientInfo.home_address" placeholder="" readonly></el-input>
@@ -50,44 +59,23 @@
50 59
         <el-input v-model="case_history.temperature" placeholder=""></el-input>
51 60
         <span>℃</span>
52 61
       </el-form-item>
53
-      <el-form-item label="血糖: " prop="name">
54
-        <el-input v-model="case_history.blood_sugar" placeholder=""></el-input>
55
-        mmol/L
56
-      </el-form-item>
57 62
       <el-form-item label="脉搏: " prop="name">
58 63
         <el-input v-model="case_history.pulse" placeholder=""></el-input>
59 64
         (次/分)
60 65
       </el-form-item>
66
+      <el-form-item label="呼吸: " prop="name">
67
+        <el-input v-model="case_history.pulse" placeholder=""></el-input>
68
+        (次/分)
69
+      </el-form-item>
61 70
       <el-form-item label="血压:" prop="name">
62 71
         <el-input v-model="case_history.sbp" placeholder=""></el-input>
63 72
         /
64 73
         <el-input v-model="case_history.dbp" placeholder=""></el-input>
65 74
         mmHg
66 75
       </el-form-item>
67
-      <el-form-item label="身高: " prop="name">
68
-        <el-input v-model="case_history.height" placeholder=""></el-input>
69
-        cm
70
-      </el-form-item>
71
-      <el-form-item label="血脂: " prop="name">
72
-        <el-input v-model="case_history.blood_fat" placeholder=""></el-input>
73
-        mmol/L
74
-      </el-form-item>
75 76
     </el-form>
76 77
     <div class="mainTitle">病历信息:</div>
77 78
     <el-form class="recordForm" :model="case_history" :rules="rules" ref="form" label-width="80px">
78
-      <el-form-item label="疾病分类:" prop="name">
79
-        <el-select style="width:100%;" v-model="case_history.sick_type" placeholder="">
80
-          <el-option
81
-            v-for="item,index in getDictionaryDataConfig('system','sick_type')"
82
-            :key="index"
83
-            :label="item.name"
84
-            :value="item.id">
85
-          </el-option>
86
-        </el-select>
87
-      </el-form-item>
88
-      <el-form-item label="症状: " prop="name">
89
-        <el-input v-model="case_history.symptom" placeholder=""></el-input>
90
-      </el-form-item>
91 79
       <el-form-item label="发病日期: " prop="name">
92 80
         <el-date-picker
93 81
           style="width:100%;"
@@ -249,7 +237,7 @@
249 237
             }
250 238
           })
251 239
         } else if (index == 2) {
252
-
240
+          this.$router.push('/outpatientDoctorStation/recordPrint')
253 241
         } else if (index == 3) {
254 242
           this.$refs.medicalRecord.show()
255 243
         } else if (index == 4) {
@@ -267,6 +255,7 @@
267 255
     font-size: 18px;
268 256
     font-weight: bold;
269 257
     margin-bottom: 10px;
258
+    color:#409EFF;
270 259
   }
271 260
 
272 261
   .backColor {

+ 13 - 7
src/xt_pages/outpatientDoctorStation/components/medicalRecord.vue Zobrazit soubor

@@ -33,16 +33,19 @@
33 33
                         <el-table-column align="center" prop="name" label="病历编号">
34 34
                             <template slot-scope="scope">{{ scope.row.date }}</template>
35 35
                         </el-table-column>
36
-                        <el-table-column align="center" prop="name" label="诊断信息">
36
+                        <el-table-column align="center" prop="name" label="名称">
37 37
                             <template slot-scope="scope">{{ scope.row.date }}</template>
38 38
                         </el-table-column>
39
-                        <el-table-column align="center" prop="name" label="医生">
39
+                        <el-table-column align="center" prop="name" label="创建人">
40 40
                             <template slot-scope="scope">{{ scope.row.date }}</template>
41 41
                         </el-table-column>
42 42
                         <el-table-column align="center" prop="name" label="创建日期">
43 43
                             <template slot-scope="scope">{{ scope.row.date }}</template>
44 44
                         </el-table-column>
45
-                        <el-table-column align="center" prop="name" label="操作">
45
+                        <el-table-column align="center" prop="name" label="模板说明">
46
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
47
+                        </el-table-column>
48
+                        <el-table-column align="center" prop="name" label="操作" width='200'>
46 49
                             <template slot-scope="scope">
47 50
                                 <el-button type="primary" size="mini">调用</el-button>
48 51
                                 <el-button type="primary" size="mini" @click="toHistoryDetail">详情</el-button>
@@ -75,22 +78,25 @@
75 78
                         <el-table-column align="center" prop="name" label="病历编号">
76 79
                             <template slot-scope="scope">{{ scope.row.date }}</template>
77 80
                         </el-table-column>
78
-                        <el-table-column align="center" prop="name" label="诊断信息">
81
+                        <el-table-column align="center" prop="name" label="名称">
79 82
                             <template slot-scope="scope">{{ scope.row.date }}</template>
80 83
                         </el-table-column>
81
-                        <el-table-column align="center" prop="name" label="医生">
84
+                        <el-table-column align="center" prop="name" label="创建人">
82 85
                             <template slot-scope="scope">{{ scope.row.date }}</template>
83 86
                         </el-table-column>
84 87
                         <el-table-column align="center" prop="name" label="创建日期">
85 88
                             <template slot-scope="scope">{{ scope.row.date }}</template>
86 89
                         </el-table-column>
87
-                        <el-table-column align="center" prop="name" label="操作">
90
+                        <el-table-column align="center" prop="name" label="模板说明">
91
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
92
+                        </el-table-column>
93
+                        <el-table-column align="center" prop="name" label="操作" width='200'>
88 94
                             <template slot-scope="scope">
89 95
                                 <el-button type="primary" size="mini">调用</el-button>
90 96
                                 <el-button type="primary" size="mini" @click="totemplateDetail">详情</el-button>
91 97
                             </template>
92 98
                         </el-table-column>
93
-                    </el-table> 
99
+                    </el-table>
94 100
                 </el-tab-pane>
95 101
             </el-tabs>
96 102
         </div>

+ 50 - 18
src/xt_pages/outpatientDoctorStation/components/prescriptionTable.vue Zobrazit soubor

@@ -1,6 +1,6 @@
1 1
 <template>
2 2
   <div class="prescriptionTable">
3
-    <el-table v-if="activeType  == 1" :data="prescription.advices" border style="width: 98%;" :row-style="{ color: '#303133' }"
3
+    <el-table v-if="activeType  == 1" :data="prescription.advices" border style="width: 99%;" :row-style="{ color: '#303133' }"
4 4
               :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
5 5
       <el-table-column align="center" prop="name" label="名称">
6 6
         <template slot-scope="scope">{{ scope.row.drug_name }}</template>
@@ -16,7 +16,7 @@
16 16
         <template slot-scope="scope">
17 17
           <el-select v-model="scope.row.delivery_way" placeholder="请选择">
18 18
             <el-option
19
-              v-for="item,index in drugways"
19
+              v-for="(item,index) in drugways"
20 20
               :key="index"
21 21
               :label="item.name"
22 22
               :value="item.name">
@@ -62,7 +62,7 @@
62 62
       </el-table-column>
63 63
     </el-table>
64 64
 
65
-    <el-table v-if="activeType == 2" :data="prescription.project" border style="width: 98%;" :row-style="{ color: '#303133' }"
65
+    <el-table v-if="activeType == 2" :data="prescription.project" border style="width: 99%;" :row-style="{ color: '#303133' }"
66 66
               :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
67 67
       <el-table-column align="center" type="selection" width="40"></el-table-column>
68 68
       <el-table-column align="center" type="index" width="40" label="序号">
@@ -70,7 +70,7 @@
70 70
             {{scope.$index + 1}}
71 71
          </template>
72 72
       </el-table-column>
73
-      <el-table-column align="center" prop="project_name" label="名称">
73
+      <el-table-column align="center" prop="project_name" width="50" label="名称">
74 74
         <template slot-scope="scope">{{ scope.row.project_name }}</template>
75 75
       </el-table-column>
76 76
       <el-table-column align="center" prop="statistical_classification" width="50" label="组">
@@ -78,27 +78,27 @@
78 78
           {{getGroup(scope.row.statistical_classification)}}
79 79
         </template>
80 80
       </el-table-column>
81
-      <el-table-column align="center" prop="single_dose" width="130" :label="'单次\n用量'">
81
+      <el-table-column align="center" prop="single_dose" :label="'单次\n用量'">
82 82
         <template slot-scope="scope">
83 83
           <el-input v-model="scope.row.single_dose" placeholder=""></el-input>
84 84
         </template>
85 85
       </el-table-column>
86
-      <el-table-column align="center" prop="delivery_way" width="130" label="用法">
86
+      <el-table-column align="center" prop="delivery_way" width="50" label="用法">
87 87
         <template slot-scope="scope">
88 88
           <el-input v-model="scope.row.delivery_way" placeholder=""></el-input>
89 89
         </template>
90 90
       </el-table-column>
91
-      <el-table-column align="center" prop="execution_frequency" width="130" label="频率">
91
+      <el-table-column align="center" prop="execution_frequency" width="50" label="频率">
92 92
         <template slot-scope="scope">
93 93
           <el-input v-model="scope.row.execution_frequency" placeholder=""></el-input>
94 94
         </template>
95 95
       </el-table-column>
96
-      <el-table-column align="center" prop="number_days" width="130" label="天数">
96
+      <el-table-column align="center" prop="number_days" width="50" label="天数">
97 97
         <template slot-scope="scope">
98 98
           <el-input v-model="scope.row.number_days" placeholder=""></el-input>
99 99
         </template>
100 100
       </el-table-column>
101
-      <el-table-column align="center" prop="total" width="100" label="总量">
101
+      <el-table-column align="center" prop="total" width="50" label="总量">
102 102
         <template slot-scope="scope">
103 103
           <div style="display:flex;">
104 104
             <el-input v-model="scope.row.total" style="width:50" placeholder=""></el-input>
@@ -110,7 +110,7 @@
110 110
           <el-input v-model="scope.row.price" placeholder=""></el-input>
111 111
         </template>
112 112
       </el-table-column>
113
-      <el-table-column align="center" prop="name" width="120" label="备注">
113
+      <el-table-column align="center" prop="name" width="50" label="备注">
114 114
         <template slot-scope="scope">
115 115
            <el-input v-model="scope.row.remark"></el-input>
116 116
         </template>
@@ -122,6 +122,16 @@
122 122
       </el-table-column>
123 123
     </el-table>
124 124
 
125
+    <div class="additionalBox">
126
+      <div class="additionalOne" v-for="(item,index) in 8" :key="index">
127
+        <span>治疗费</span>
128
+        <el-input v-model="input" placeholder="" style="width:50px;"></el-input>
129
+        共
130
+        <el-input v-model="input" placeholder="" style="width:50px;"></el-input>
131
+        次
132
+        <i class="el-icon-delete deleteIcon"></i>
133
+      </div>
134
+    </div>
125 135
 
126 136
 
127 137
 
@@ -233,15 +243,37 @@
233 243
 
234 244
 <style lang="scss">
235 245
   .prescriptionTable {
246
+    .additionalBox{
247
+      margin-top: 20px;
248
+      display: flex;
249
+      flex-wrap: wrap;
250
+      .additionalOne{
251
+        margin-right:20px;
252
+        margin-bottom:10px;
253
+        display: flex;
254
+        align-items: center;
255
+        >span{
256
+          white-space: nowrap;
257
+          overflow: hidden;
258
+          text-overflow: ellipsis;
259
+          width:60px;
260
+          display: inline-block;
261
+          font-size: 14px;
262
+        }
263
+      }
264
+      .deleteIcon{
265
+        color:red;
266
+        margin-left:5px;
267
+      }
268
+    }
269
+    .el-table th .cell, .el-table td .cell {
270
+      padding: 0 2px;
271
+      white-space: pre-line;
272
+    }
236 273
 
237
-  .el-table th .cell, .el-table td .cell {
238
-    padding: 0 2px;
239
-    white-space: pre-line;
240
-  }
241
-
242
-  .el-icon-delete {
243
-    color: red;
244
-  }
274
+    .el-icon-delete {
275
+      color: red;
276
+    }
245 277
 
246 278
   }
247 279
 </style>

+ 1 - 29
src/xt_pages/outpatientDoctorStation/components/recordTemplateDetail.vue Zobrazit soubor

@@ -8,40 +8,12 @@
8 8
         append-to-body
9 9
     >
10 10
         <el-form class="recordForm" :model="form" :rules="rules" ref="form" label-width="80px">
11
-            <el-form-item label="模板名称: " prop="name" style="width:49%;">
11
+            <el-form-item label="模板名称: " prop="name" style="width:100%;">
12 12
                 <el-input v-model="form.name" placeholder=""></el-input>
13 13
             </el-form-item>
14
-            <el-form-item label="" prop="name" style="width:49%;">
15
-                <el-radio v-model="radio" label="1">私人模板</el-radio>
16
-                <el-radio v-model="radio" label="2">公共模板</el-radio>
17
-            </el-form-item>
18 14
             <el-form-item label="模板说明: " prop="name" style="width:100%;">
19 15
                 <el-input v-model="form.name" placeholder=""></el-input>
20 16
             </el-form-item>
21
-            <el-form-item label="病历分类:" prop="name">
22
-                <el-select style="width:100%;" v-model="value" placeholder="">
23
-                    <el-option
24
-                    v-for="item in options"
25
-                    :key="item.value"
26
-                    :label="item.label"
27
-                    :value="item.value">
28
-                    </el-option>
29
-                </el-select>
30
-            </el-form-item>
31
-            <el-form-item label="症状: " prop="name">
32
-                <el-input v-model="form.name" placeholder=""></el-input>
33
-            </el-form-item>
34
-            <el-form-item label="发病日期: " prop="name">
35
-                <el-date-picker
36
-                style="width:100%;"
37
-                v-model="value1"
38
-                type="date"
39
-                placeholder="选择日期">
40
-                </el-date-picker>
41
-            </el-form-item>
42
-            <el-form-item label="" prop="name">
43
-                <el-checkbox v-model="checked">是否传染</el-checkbox>
44
-            </el-form-item>
45 17
             <el-form-item label="主诉:" prop="name" style="width:100%;">
46 18
                 <el-input
47 19
                 type="textarea"

+ 3 - 1
src/xt_pages/outpatientDoctorStation/components/saveRecordTemplate.vue Zobrazit soubor

@@ -22,7 +22,9 @@
22 22
                 v-model="textarea">
23 23
                 </el-input>
24 24
             </el-form-item>
25
-            <el-form-item label="创建人:" prop="name" style="width:100%;">
25
+            <el-form-item label="创建人:" prop="name" style="width:49%;">
26
+            </el-form-item>
27
+            <el-form-item label="创建时间:" prop="name" style="width:49%;">
26 28
             </el-form-item>
27 29
         </el-form>
28 30
         <div slot="footer" class="dialog-footer">

+ 2 - 89
src/xt_pages/outpatientDoctorStation/print.vue Zobrazit soubor

@@ -218,7 +218,7 @@ export default {
218 218
       this.print_time = uParseTime(ptime, "{y}-{m}-{d} {h}:{i}");
219 219
 
220 220
       const style =
221
-        '@media print {.printTitle{font-size: 22px;text-align: center;font-weight: bold;}.infoTitle{display: flex;border-bottom: 2px solid #000;margin-top:10px;line-height: 24px; padding:0 10px;}.infoTitle p{width: 200px;}.infoMain{display: flex;flex-wrap: wrap;border-bottom: 2px solid #000;padding:0 10px;}.infoMain p{width: 50%;line-height: 24px;}.prescriptionBox{padding:0 10px;height:600px;}.Rp{font-size: 22px;font-weight: bold;}.drugsBox{padding-left: 40px;margin-bottom: 10px;margin-bottom: 10px;}.drugsBox p{line-height: 30px;} .drugsOne{line-height: 24px;} .drugsOne span{margin-right: 20px;} .doctorBox{display: flex; justify-content: space-between; padding:0 10px; line-height: 24px; border-bottom: 2px solid #000;} .actionBar{display: flex; justify-content: space-between; line-height: 24px; padding:0 10px;} .actionBar p{width:150px;}}';
221
+        '@media print {.printTitle{font-size: 22px;text-align: center;font-weight: bold;}.infoTitle{display: flex;border-bottom: 2px solid #000;margin-top:10px;line-height: 1px; padding:0 10px;}.infoTitle p{width: 200px;}.infoMain{display: flex;flex-wrap: wrap;border-bottom: 2px solid #000;padding:0 10px;}.infoMain p{width: 50%;line-height: 1px;}.prescriptionBox{padding:0 10px;height:750px;}.Rp{font-size: 22px;font-weight: bold;line-height:1px;}.drugsBox{padding-left: 40px;margin-bottom: 10px;margin-bottom: 10px;}.drugsBox p{line-height: 1px;padding-bottom:10px !important;} .drugsOne{line-height: 1px;margin-bottom:10px !important;} .drugsOne span{margin-right: 20px;} .doctorBox{display: flex; justify-content: space-between; padding:0 10px; line-height: 1px; border-bottom: 2px solid #000;} .actionBar{display: flex; justify-content: space-between; line-height: 1px; padding:0 10px;} .actionBar p{width:150px;}}';
222 222
       printJS({
223 223
         printable: "prescription-print",
224 224
         type: "html",
@@ -235,94 +235,7 @@ export default {
235 235
       //   });
236 236
       // }
237 237
     },
238
-    printThisOnePage() {
239
-      var ptime = Math.round(new Date().getTime() / 1000);
240
-      this.print_time = uParseTime(ptime, "{y}-{m}-{d} {h}:{i}");
241
-
242
-      const style =
243
-        '@media print {.dialysis-print-order{width:960px;margin:0 auto}.dialysis-print-order .order-yy-name{margin:auto;text-align:center;font-size:20px;letter-spacing:5px}.dialysis-print-order .order-title{margin:auto;font-weight:600;text-align:center;font-size:22px;padding:10px 20px 20px 20px}.dialysis-print-order .table-box{width:100%;line-height:23px;font-size:14px}.dialysis-print-order .print-table{width:100%;text-align:center;border-collapse:collapse;line-height:25px;font-size:14px}.dialysis-print-order .print-table-no{width:100%;text-align:center;border-collapse:collapse;font-size:14px}.dialysis-print-order .under-line{border-bottom:1px solid #999;width:95%;text-align:center;margin-left:2px}.dialysis-print-order .title-box{text-align:center;font-size:16px;border:1px solid #666}.dialysis-print-order .radio-lebel-box{font-weight:400;cursor:pointer}.dialysis-print-order .radio-no{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.dialysis-print-order .radio-inner{white-space:nowrap;cursor:pointer;outline:0;display:inline-block;line-height:1;position:relative;vertical-align:middle}.dialysis-print-order .radio-fang{display:inline-block;position:relative;border:1px solid #000;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.dialysis-print-order .is-checked-radio::after{content:"√";font-size:15px}}.dialysis-print-order .print-table-no tr td { padding: 8px 5px; line-height: 25px; }.es-img{height: 20px; }.advice-name{text-align: left;}.advice-children{display:flex;} .dialysis-print-order .print-table tr td{padding: 0px 0px;} .print-template-two tr {line-height: 30px;}   .title-box-pro{border: 0 #fff;line-height: 40px;height: 40px;text-align: left;padding-left: 10px !important;}  .text-align-left{text-align: left !important;padding-left:10px !important;font-size: 14px !important;line-height: 25px;}';
244
-      const style2 =
245
-        '@media print {.option_panel { margin: 0 5px 0 0; } .option_panel .check_box_panel { white-space: nowrap; outline: none; display: inline-block; line-height: 1; position: relative; vertical-align: middle; } .dialysis-print-order .order-title{margin:auto;font-weight:600;text-align:center;font-size:22px;padding:10px}.option_panel .check_box_panel .check_box { display: inline-block; position: relative; border: 1px solid #000; box-sizing: border-box; width: 14px; height: 12px; background-color: #fff; } .check_box_panel .did_checked::after { content: "√"; font-size: 15px; } .print_page_main_content {background-color: white;width: 960px;margin: 0 auto 50px;padding: 0 0 0 0; page-break-after: always;}.print_page_main_content .order-yy-name {margin: auto;text-align: center;font-size: 20px;letter-spacing: 5px;}.print_page_main_content .order_title {text-align: center;font-size: 23px; line-height: 50px;font-weight: 500;} .row {font-size: 14px;line-height: 20px;padding: 5px 0;}.inline_block { display: inline-block;}.under_line_two {display: inline-block;border-bottom: 1px solid #999;text-align: left;white-space: nowrap;width: 50%;}.under_line {display: inline-block;border-bottom: 1px solid #999;text-align: center;white-space: nowrap; width: 50%;}.flex {display: -webkit-box;display: -moz-box; display: -ms-flexbox; display: -webkit-flex;display: flex;align-items: center;-webkit-align-items: center;box-align: center;-moz-box-align: center;-webkit-box-align: center;text-align: center;-webkit-justify-content: space-between;justify-content: space-between;-moz-box-pack: space-between;-webkit--moz-box-pack: space-between;box-pack: space-between;}.print_page_main_content .proj_table {width: 100%;border: 1px solid;border-collapse: collapse;padding: 2px;}.print_page_main_content .proj_table tbody tr td {border: 1px solid;font-size: 16px;padding: 3px 8px;line-height: 30px;}.print_page_main_content .proj_table .inside_table {width: 100%;border: hidden; border-collapse: collapse;}.print_page_main_content .proj_table .inside_table tr td {border: 1px solid; text-align: center;font-size: 14px;padding: 6px 5px;line-height: 16px;}.print-table-no {width: 100%;text-align: center;border-collapse: collapse;font-size: 14px;}.es-img {height: 30px;}.advice-name {text-align: left !important;line-height: 16px !important;}.advice-children {display: flex;}}.margin-bottom-50{margin-bottom:50px;}.margin-bottom-300 {margin-bottom:450px;}.margin-bottom-600 {margin-bottom:600px;}.margin-bottom-900 {margin-bottom:200px;}.print-yema{ position: absolute;top: 920px;left: 50%;} .print-yema2{ position: absolute;top: 400px;left: 50%;}.print-yema3{position: absolute;top: 1230px;left: 50%;}.print-yema4{position: absolute;top: 1370px;left: 50%;}.check_box{width:15px !important;height:15px !important;}.did_checke::after {font-size: 8px;margin-left: 2px;margin-top: 12px !important;position: absolute;}';
246
-
247
-      if (this.org_template_info.template_id == 1) {
248
-        printJS({
249
-          printable: "dialysis-print-box",
250
-          type: "html",
251
-          style: style,
252
-          scanStyles: false
253
-        });
254
-      } else if (
255
-        this.org_template_info.template_id == 2 ||
256
-        this.org_template_info.template_id == 0 ||
257
-        this.org_template_info.template_id == 5 ||
258
-        this.org_template_info.template_id == 22 
259
-      ) {
260
-        printJS({
261
-          printable: "dialysis-print-box-1-1",
262
-          type: "html",
263
-          style: style2,
264
-          scanStyles: false
265
-        });
266
-      } else if(this.org_template_info.template_id == 14){
267
-        printJS({
268
-          printable: "new-dialysis-1",
269
-          type: "html",
270
-          style: style,
271
-          scanStyles: false
272
-        });
273
-      } else if(this.org_template_info.template_id == 21){
274
-        printJS({
275
-          printable: "new-dialysis-1",
276
-          type: "html",
277
-          style: style,
278
-          scanStyles: false
279
-        });
280
-      }
281
-    },
282
-    printThisTwoPage() {
283
-      var ptime = Math.round(new Date().getTime() / 1000);
284
-      this.print_time = uParseTime(ptime, "{y}-{m}-{d} {h}:{i}");
285
-
286
-      const style =
287
-        '@media print {.dialysis-print-order{width:960px;margin:0 auto}.dialysis-print-order .order-yy-name{margin:auto;text-align:center;font-size:20px;letter-spacing:5px}.dialysis-print-order .order-title{margin:auto;font-weight:600;text-align:center;font-size:22px;padding:10px 20px 20px 20px}.dialysis-print-order .table-box{width:100%;line-height:23px;font-size:14px}.dialysis-print-order .print-table{width:100%;text-align:center;border-collapse:collapse;line-height:25px;font-size:14px}.dialysis-print-order .print-table-no{width:100%;text-align:center;border-collapse:collapse;font-size:14px}.dialysis-print-order .under-line{border-bottom:1px solid #999;width:95%;text-align:center;margin-left:2px}.dialysis-print-order .title-box{text-align:center;font-size:16px;border:1px solid #666}.dialysis-print-order .radio-lebel-box{font-weight:400;cursor:pointer}.dialysis-print-order .radio-no{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.dialysis-print-order .radio-inner{white-space:nowrap;cursor:pointer;outline:0;display:inline-block;line-height:1;position:relative;vertical-align:middle}.dialysis-print-order .radio-fang{display:inline-block;position:relative;border:1px solid #000;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.dialysis-print-order .is-checked-radio::after{content:"√";font-size:15px}}.dialysis-print-order .print-table-no tr td { padding: 8px 5px; line-height: 25px; }.es-img{height: 20px; }.advice-name{text-align: left;}.advice-children{display:flex;} .dialysis-print-order .print-table tr td{padding: 0px 0px;} .print-template-two tr {line-height: 30px;}   .title-box-pro{border: 0 #fff;line-height: 40px;height: 40px;text-align: left;padding-left: 10px !important;}  .text-align-left{text-align: left !important;padding-left:10px !important;font-size: 14px !important;line-height: 25px;}';
288
-      const style2 =
289
-        '@media print {.option_panel { margin: 0 5px 0 0; } .option_panel .check_box_panel { white-space: nowrap; outline: none; display: inline-block; line-height: 1; position: relative; vertical-align: middle; } .dialysis-print-order .order-title{margin:auto;font-weight:600;text-align:center;font-size:22px;padding:10px}.option_panel .check_box_panel .check_box { display: inline-block; position: relative; border: 1px solid #000; box-sizing: border-box; width: 14px; height: 12px; background-color: #fff; } .check_box_panel .did_checked::after { content: "√"; font-size: 15px; } .print_page_main_content {background-color: white;width: 960px;margin: 0 auto 50px;padding: 0 0 0 0; page-break-after: always;}.print_page_main_content .order-yy-name {margin: auto;text-align: center;font-size: 20px;letter-spacing: 5px;}.print_page_main_content .order_title {text-align: center;font-size: 23px; line-height: 50px;font-weight: 500;} .row {font-size: 14px;line-height: 20px;padding: 5px 0;}.inline_block { display: inline-block;}.under_line_two {display: inline-block;border-bottom: 1px solid #999;text-align: left;white-space: nowrap;width: 50%;}.under_line {display: inline-block;border-bottom: 1px solid #999;text-align: center;white-space: nowrap; width: 50%;}.flex {display: -webkit-box;display: -moz-box; display: -ms-flexbox; display: -webkit-flex;display: flex;align-items: center;-webkit-align-items: center;box-align: center;-moz-box-align: center;-webkit-box-align: center;text-align: center;-webkit-justify-content: space-between;justify-content: space-between;-moz-box-pack: space-between;-webkit--moz-box-pack: space-between;box-pack: space-between;}.print_page_main_content .proj_table {width: 100%;border: 1px solid;border-collapse: collapse;padding: 2px;}.print_page_main_content .proj_table tbody tr td {border: 1px solid;font-size: 16px;padding: 3px 8px;line-height: 30px;}.print_page_main_content .proj_table .inside_table {width: 100%;border: hidden; border-collapse: collapse;}.print_page_main_content .proj_table .inside_table tr td {border: 1px solid; text-align: center;font-size: 14px;padding: 6px 5px;line-height: 16px;}.print-table-no {width: 100%;text-align: center;border-collapse: collapse;font-size: 14px;}.es-img {height: 30px;}.advice-name {text-align: left !important;line-height: 16px !important;}.advice-children {display: flex;}}.margin-bottom-50{margin-bottom:50px;}.margin-bottom-300 {margin-bottom:450px;}.margin-bottom-600 {margin-bottom:600px;}.margin-bottom-900 {margin-bottom:900px;}.print-yema{ position: absolute;top: 920px;left: 50%;} .print-yema2{ position: absolute;top: 400px;left: 50%;}.print-yema3{position: absolute;top: 1230px;left: 50%;}.print-yema4{position: absolute;top: 1370px;left: 50%;}.check_box{width:15px !important;height:15px !important;}.did_checke::after {font-size: 8px;margin-left: 2px;margin-top: 12px !important;position: absolute;}';
290
-
291
-      if (this.org_template_info.template_id == 1) {
292
-        printJS({
293
-          printable: "dialysis-print-box",
294
-          type: "html",
295
-          style: style,
296
-          scanStyles: false
297
-        });
298
-      } else if (
299
-        this.org_template_info.template_id == 2 ||
300
-        this.org_template_info.template_id == 0 ||
301
-        this.org_template_info.template_id == 5 ||
302
-        this.org_template_info.template_id == 22 
303
-      ) {
304
-        printJS({
305
-          printable: "dialysis-print-box-1-2",
306
-          type: "html",
307
-          style: style2,
308
-          scanStyles: false
309
-        });
310
-      }else if(this.org_template_info.template_id == 14){
311
-        printJS({
312
-          printable: "new-dialysis-2",
313
-          type: "html",
314
-          style: style,
315
-          scanStyles: false
316
-        });
317
-      } else if(this.org_template_info.template_id == 21){
318
-        printJS({
319
-          printable: "new-dialysis-2",
320
-          type: "html",
321
-          style: style,
322
-          scanStyles: false
323
-        });
324
-      }
325
-    },
238
+    
326 239
     getNumber() {
327 240
       if (this.dialysisOrder != null) {
328 241
         return (

+ 329 - 0
src/xt_pages/outpatientDoctorStation/recordPrint.vue Zobrazit soubor

@@ -0,0 +1,329 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+       <template>
6
+        <el-button
7
+          :loading="loading"
8
+          size="small"
9
+          icon="el-icon-printer"
10
+          @click="printThisPage"
11
+          type="primary"
12
+          >打印</el-button
13
+        >
14
+      </template>
15
+    </div>
16
+    <div class="app-container" style="min-height:0;">
17
+        <el-container class="newContainer">
18
+            <div style="width:270px;margin-right:20px;">
19
+                <div class="cell clearfix" style="margin-bottom:10px;">
20
+                    <el-input size="small" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
21
+                    <el-button size="small" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
22
+                </div>
23
+                <el-table ref="tab" @row-click="changePatient" highlight-current-row :data="tableData" height="480" border style="width: 100%">
24
+                    <el-table-column prop="date"  label="患者">
25
+                        <template slot-scope="scope">
26
+                            {{ scope.row.patient.name }}
27
+                        </template>
28
+                    </el-table-column>
29
+                    <el-table-column prop="name" label="透析号">
30
+                        <template slot-scope="scope">
31
+                            {{ scope.row.patient.dialysis_no }}
32
+                        </template>
33
+                    </el-table-column>
34
+                </el-table>
35
+            </div>
36
+            
37
+            <div class='dialysisPage' style="flex: 1;height: calc(100vh - 178px);overflow-x:auto;::-webkit-scrollbar:height:15px">
38
+              <printOne v-bind:childResponse="childResponse"></printOne>
39
+            </div>
40
+        </el-container>
41
+    </div>
42
+  </div>
43
+</template>
44
+
45
+<script>
46
+
47
+import {
48
+  getDialysisRecordInitData,
49
+  getDialysisSchedules
50
+} from "@/api/dialysis_record";
51
+import { parseTime } from "@/utils";
52
+import { getDialysisRecord } from "@/api/dialysis";
53
+import { getDataConfig } from "@/utils/data";
54
+import { jsGetAge, uParseTime } from "@/utils/tools";
55
+// import LabelBox from "./printItem/LabelBox";
56
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
57
+import print from "print-js";
58
+import printOne from "./recordTemplate/printOne"
59
+export default {
60
+  name: "dialysisPrintOrder",
61
+  components: {
62
+    BreadCrumb,
63
+    printOne
64
+  },
65
+  data() {
66
+    return {
67
+      crumbs: [
68
+        { path: false, name: "透析管理" },
69
+        { path: false, name: "打印单" }
70
+      ],
71
+      childResponse: {},
72
+    };
73
+  },
74
+  methods: {
75
+    getAdminUser(id) {
76
+      if (id == 0) {
77
+        return "";
78
+      }
79
+      if (id == undefined) {
80
+        return "";
81
+      }
82
+      for (let i = 0; i < this.adminUser.length; i++) {
83
+        if (this.adminUser[i].id == id) {
84
+          return this.adminUser[i].name;
85
+        }
86
+      }
87
+    },
88
+    getTime(value, temp) {
89
+      if (value == 0) {
90
+        return "";
91
+      }
92
+      if (value != undefined) {
93
+        return uParseTime(value, temp);
94
+      }
95
+      return "";
96
+    },
97
+    printThisPage() {
98
+      var ptime = Math.round(new Date().getTime() / 1000);
99
+      this.print_time = uParseTime(ptime, "{y}-{m}-{d} {h}:{i}");
100
+
101
+      const style =
102
+        '@media print {.printTitle{font-size: 22px;text-align: center;font-weight: bold;}.infoTitle{display: flex;margin-top:10px;line-height: 1px;padding:0 10px;}.infoTitle p{width: 200px;}.otherInfo{display: flex;margin-top:10px;padding:0 10px;}.otherInfo span{display:inline-block;}.recordTitle{display: flex;margin-top:10px;line-height: 24px;padding:0 10px;border-bottom: 2px solid #000;}.recordTitle p{width: 200px;}}';
103
+      printJS({
104
+        printable: "prescription-print",
105
+        type: "html",
106
+        style: style,
107
+        scanStyles: false
108
+      });
109
+
110
+      // if (this.org_template_info.template_id == 1) {
111
+      //   printJS({
112
+      //     printable: "dialysis-print-box",
113
+      //     type: "html",
114
+      //     style: style,
115
+      //     scanStyles: false
116
+      //   });
117
+      // }
118
+    },
119
+  },
120
+  created() {
121
+  },
122
+  computed:{
123
+    filtedSchedules: function() {
124
+      var search_keyword = this.search_keyword
125
+      if (search_keyword.length > 0) {
126
+        var schedules = []
127
+        for (let o_i = 0; o_i < this.zone_schedules.length; o_i++) {
128
+        const scheduleInfo = this.zone_schedules[o_i]
129
+        var originSchedules = scheduleInfo.schedules
130
+        if (originSchedules.length == 0) {
131
+            continue
132
+        }
133
+        var filtedSchedules = []
134
+        for (let s_i = 0; s_i < originSchedules.length; s_i++) {
135
+            const schedule = originSchedules[s_i]
136
+            if (schedule.patient.name.indexOf(search_keyword) != -1) {
137
+            filtedSchedules.push(schedule)
138
+            // break
139
+            }
140
+        }
141
+        if (filtedSchedules.length > 0) {
142
+            schedules.push({ zone_id: scheduleInfo.zone_id, zone_name: scheduleInfo.zone_name, schedules: filtedSchedules })
143
+        }
144
+        }
145
+        return schedules
146
+      }
147
+    }
148
+  },
149
+};
150
+</script>
151
+
152
+<style>
153
+.dialysis-print-order {
154
+  width: 960px;
155
+  margin: 0 auto;
156
+}
157
+
158
+.dialysis-print-order .order-yy-name {
159
+  margin: auto;
160
+  text-align: center;
161
+  font-size: 20px;
162
+  letter-spacing: 5px;
163
+}
164
+
165
+.dialysis-print-order .order-title {
166
+  margin: auto;
167
+  font-weight: 600;
168
+  text-align: center;
169
+  font-size: 22px;
170
+  padding: 10px;
171
+}
172
+
173
+.dialysis-print-order .table-box {
174
+  width: 100%;
175
+  line-height: 23px;
176
+  font-size: 14px;
177
+}
178
+
179
+.dialysis-print-order .print-table {
180
+  width: 100%;
181
+  text-align: center;
182
+  border-collapse: collapse;
183
+  line-height: 40px;
184
+  font-size: 14px;
185
+  border-color: #000;
186
+}
187
+
188
+.dialysis-print-order .print-table-no {
189
+  width: 100%;
190
+  text-align: center;
191
+  border-collapse: collapse;
192
+  font-size: 14px;
193
+}
194
+
195
+.dialysis-print-order .under-line {
196
+  border-bottom: 1px solid #999;
197
+  width: 95%;
198
+  text-align: center;
199
+  margin-left: 2px;
200
+}
201
+
202
+.dialysis-print-order .title-box {
203
+  text-align: center;
204
+  font-size: 16px;
205
+}
206
+
207
+.dialysis-print-order .radio-lebel-box {
208
+  font-weight: 400;
209
+  cursor: pointer;
210
+}
211
+
212
+.dialysis-print-order .radio-no {
213
+  opacity: 0;
214
+  outline: none;
215
+  position: absolute;
216
+  margin: 0;
217
+  width: 0;
218
+  height: 0;
219
+  z-index: -1;
220
+}
221
+
222
+.dialysis-print-order .radio-inner {
223
+  white-space: nowrap;
224
+  cursor: pointer;
225
+  outline: none;
226
+  display: inline-block;
227
+  line-height: 1;
228
+  position: relative;
229
+  vertical-align: middle;
230
+}
231
+
232
+.dialysis-print-order .radio-fang {
233
+  display: inline-block;
234
+  position: relative;
235
+  border: 1px solid #000;
236
+  box-sizing: border-box;
237
+  width: 14px;
238
+  height: 14px;
239
+  background-color: #fff;
240
+  z-index: 1;
241
+  transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
242
+    background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);
243
+}
244
+
245
+.dialysis-print-order .is-checked-radio::after {
246
+  content: "√";
247
+  font-size: 15px;
248
+}
249
+
250
+.dialysis-print-order .print-table-no tr td {
251
+  padding: 8px 5px;
252
+  line-height: 25px;
253
+}
254
+
255
+.dialysis-print-order .print-table tr td {
256
+  padding: 1px 1px;
257
+  /*line-height: 25px;*/
258
+}
259
+
260
+.es-img {
261
+  height: 30px;
262
+}
263
+
264
+.advice-name {
265
+  text-align: left;
266
+}
267
+
268
+.advice-children {
269
+  display: flex;
270
+}
271
+
272
+.title-box-pro {
273
+  border: 0 #fff;
274
+  line-height: 25px;
275
+  height: 25px;
276
+  text-align: left;
277
+  padding-left: 10px !important;
278
+}
279
+.title-box-pro-tr {
280
+  border: 0 #fff;
281
+}
282
+.text-align-left {
283
+  text-align: left !important;
284
+  padding-left: 10px !important;
285
+  font-size: 14px !important;
286
+  line-height: 25px;
287
+}
288
+.print-table-tr-new td {
289
+  line-height: 20px !important;
290
+}
291
+.border-top-solid {
292
+  border: solid 1px #000;
293
+}
294
+.print-template-two tr {
295
+  line-height: 30px;
296
+}
297
+
298
+.table-box1 {
299
+  border: 1px solid #000;
300
+  width: 100%;
301
+  line-height: 30px;
302
+  font-size: 14px;
303
+  border-collapse: collapse;
304
+}
305
+.table-box1 tr {
306
+  border-bottom: 1px solid #000;
307
+}
308
+</style>
309
+
310
+<style lang="scss">
311
+
312
+.newContainer{
313
+  .dialysisPage::-webkit-scrollbar {
314
+    height: 15px;
315
+  }
316
+  
317
+  .el-date-editor{
318
+    .el-input__inner{
319
+      padding-right:0px;
320
+    }
321
+  }
322
+  .el-table td, .el-table th{
323
+    text-align: center;
324
+  }
325
+}
326
+.newContainer::-webkit-scrollbar{
327
+  height: 15px !important;
328
+}
329
+</style>

+ 119 - 0
src/xt_pages/outpatientDoctorStation/recordTemplate/printOne.vue Zobrazit soubor

@@ -0,0 +1,119 @@
1
+<template>
2
+    <div id='prescription-print' class="prescription-print">
3
+        <div class="printTitle">门诊病历</div>
4
+        <div class="infoTitle">
5
+            <p>姓名:阿萨德</p>
6
+            <p>性别:男</p>
7
+            <p>年龄:12岁</p>
8
+        </div>
9
+        <div class="infoTitle">
10
+            <p>婚姻状况:婚姻状况保密</p>
11
+            <p>职业:未分类</p>
12
+        </div>
13
+        <div class="otherInfo">
14
+            <p>医保号:</p>
15
+            <p style="flex:1;">7938749234</p>
16
+        </div>
17
+        <div class="otherInfo">
18
+            <p>联系电话:</p>
19
+            <p style="flex:1;">23234343234</p>
20
+        </div>
21
+        <div class="otherInfo">
22
+            <p>通讯地址:</p>
23
+            <p style="flex:1;">奥数都我阿苏do一按实际的福克斯</p>
24
+        </div>
25
+        <div class="otherInfo">
26
+            <p>药物过敏史:</p>
27
+            <p style="flex:1;">奥数都我阿苏do一按实际的福克斯</p>
28
+        </div>
29
+        <div class="otherInfo">
30
+            <p>病历编号:</p>
31
+            <p style="flex:1;">2020110300002525</p>
32
+        </div>
33
+        <div style="page-break-after:always;margin-top:50px;"></div>
34
+
35
+
36
+        <div class="printTitle">病历内容</div>
37
+        <div class="recordTitle">
38
+            <p>科别:全科</p>
39
+            <p>姓名:阿萨德</p>
40
+            <p>性别:男</p>
41
+            <p>年龄:12岁</p>
42
+        </div>
43
+        <div class="otherInfo">
44
+            <p class="otherName">主诉:</p>
45
+            <p style="flex:1;">爱神的箭了卡萨建档立卡加上来得及阿斯利康的</p>
46
+        </div>
47
+        <div class="otherInfo">
48
+            <p class="otherName">现病史:</p>
49
+            <p style="flex:1;">爱神的箭了卡萨建档立卡加上来得及阿斯利康的</p>
50
+        </div>
51
+        <div class="otherInfo">
52
+            <p class="otherName">既往史:</p>
53
+            <p style="flex:1;">爱神的箭了卡萨建档立卡加上来得及阿斯利康的</p>
54
+        </div>
55
+        <div class="otherInfo">
56
+            <p class="otherName">药物过敏史:</p>
57
+            <p style="flex:1;">爱神的箭了卡萨建档立卡加上来得及阿斯利康的</p>
58
+        </div>
59
+        <div class="otherInfo">
60
+            <p class="otherName">个人史:</p>
61
+            <p style="flex:1;">爱神的箭了卡萨建档立卡加上来得及阿斯利康的爱神的箭了卡萨建档立卡加上来得及阿斯利康的爱神的箭了卡萨建档立卡加上来得及阿斯利康的爱神的箭了卡萨建档立卡加上来得及阿斯利康的爱神的箭了卡萨建档立卡加上来得及阿斯利康的爱神的箭了卡萨建档立卡加上来得及阿斯利康的爱神的箭了卡萨建档立卡加上来得及阿斯利康的</p>
62
+        </div>
63
+        <div class="otherInfo">
64
+            <p class="otherName">家族史:</p>
65
+            <p style="flex:1;">爱神的箭了卡萨建档立卡加上来得及阿斯利康的</p>
66
+        </div>
67
+        <div class="otherInfo">
68
+            <p class="otherName">体格检查:</p>
69
+            <p style="flex:1;">爱神的箭了卡萨建档立卡加上来得及阿斯利康的</p>
70
+        </div>
71
+        <div class="otherInfo">
72
+            <p class="otherName">门诊诊断:</p>
73
+            <p style="flex:1;">爱神的箭了卡萨建档立卡加上来得及阿斯利康的</p>
74
+        </div>
75
+        <div class="otherInfo">
76
+            <p class="otherName">门诊医嘱:</p>
77
+            <p style="flex:1;">爱神的箭了卡萨建档立卡加上来得及阿斯利康的</p>
78
+        </div>
79
+        <div style="margin-top:20px;text-align:right;">
80
+            医生签名:阿斯加德
81
+        </div>
82
+    </div>
83
+</template>
84
+
85
+
86
+
87
+<style lang="scss" scoped>
88
+.printTitle{
89
+    font-size: 22px;
90
+    text-align: center;
91
+    font-weight: bold;
92
+}
93
+.infoTitle{
94
+    display: flex;
95
+    margin-top:10px;
96
+    line-height: 24px;
97
+    padding:0 10px;
98
+}
99
+.infoTitle p{
100
+    width: 200px;
101
+}
102
+.otherInfo{
103
+    display: flex;
104
+    margin-top:10px;
105
+    line-height: 24px;
106
+    padding:0 10px;
107
+}
108
+.recordTitle{
109
+    display: flex;
110
+    margin-top:10px;
111
+    line-height: 24px;
112
+    padding:0 10px;
113
+    border-bottom: 2px solid #000;
114
+}
115
+.recordTitle p{
116
+    width: 200px;
117
+}
118
+
119
+</style>