Pārlūkot izejas kodu

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

csx 4 gadus atpakaļ
vecāks
revīzija
ae374539d1

+ 1 - 1
index.html Parādīt failu

@@ -8,7 +8,7 @@
8 8
       name="viewport"
9 9
       content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
10 10
     />
11
-    <title>血透管理-酷医云</title>
11
+    <title>酷医云-透析管理平台</title>
12 12
     <!-- <link
13 13
       rel="stylesheet"
14 14
       href="//at.alicdn.com/t/font_1480998_l66fq6mc0y.css"

+ 9 - 0
src/api/project/project.js Parādīt failu

@@ -425,4 +425,13 @@ export function changePatient(id,params){
425 425
       method:"get",
426 426
       params:params
427 427
     })
428
+  }
429
+
430
+  export function getTodaySchedulePatient(params){
431
+     
432
+    return request({
433
+      url:"/api/hispatient/gettodayschedulepatient",
434
+      method:"get",
435
+      params:params
436
+    })
428 437
   }

+ 6 - 14
src/router/modules/outpatientDoctorStation.js Parādīt failu

@@ -55,20 +55,12 @@ export default {
55 55
         meta: { title: 'outpatientDoctorStationRecordPrint', noCache: true }
56 56
     },
57 57
     {
58
-      path:'/outpatientDoctorStation/print',
59
-      component:() => import('@/xt_pages/outpatientDoctorStation/print'),
60
-      hidden:true,
58
+      path: '/outpatientDoctorStation/treatPrint',
59
+      component: () => import('@/xt_pages/outpatientDoctorStation/treatPrint'),
60
+      hidden: true,
61 61
       is_menu: false,
62
-      name: 'outpatientDoctorStationRecordPrintOne',
63
-      meta: { title: 'outpatientDoctorStationRecordPrintOne', noCache: true }
64
-    },
65
-    {
66
-      path:"/outpatientCharges/treatPrint",
67
-      component:()=>import('@/xt_pages/outpatientCharges/treatPrint'),
68
-      hidden:true,
69
-      is_menu:false,
70
-      name:'outpatientChargesTreatePrint',
71
-      meta:{title:'outpatientChargesTreatePrint',noCache:true}
72
-    }
62
+      name: 'outpatientDoctorStationTreatPrint',
63
+      meta: { title: 'outpatientDoctorStationTreatPrint', noCache: true }
64
+  },
73 65
   ]
74 66
 }

+ 18 - 16
src/xt_pages/data/basicConfig.vue Parādīt failu

@@ -4,7 +4,6 @@
4 4
       <bread-crumb :crumbs="crumbs"></bread-crumb>
5 5
     </div>
6 6
     <div class="app-container">
7
-        <p style="font-size:18px">开关配置</p>
8 7
         <!--<div class="configBox">-->
9 8
             <!--<p>收费发药</p>-->
10 9
             <!--<p style="font-size:14px;margin-top:5px;">开启收费发药分离后,处方发药的工作需要到收费发药页面完成</p>-->
@@ -12,13 +11,20 @@
12 11
                 <!--<el-switch v-model="value"></el-switch>-->
13 12
             <!--</p>-->
14 13
         <!--</div>-->
15
-      <div class="configBox">
16
-      <p>血透His互通</p>
17
-      <p style="font-size:14px;margin-top:5px;">血透His互通</p>
18
-      <p style="margin-top:20px;">血透His互通
19
-      <el-switch v-model="is_open_xt_his" @change="changeFuncOne"></el-switch>
20
-      </p>
21
-      </div>
14
+        <div class="configBox">
15
+            <p style="font-size:18px;font-weight:bold">门诊打印</p>
16
+            <p style="font-size:14px;margin-top:5px;color:#333;">开启直接打印后,门诊病历、处方、治疗单、处置单、收费清单等打印时跳过打印预览,直接连接打印机打印。</p>
17
+            <p style="margin-top:20px;">直接打印:
18
+                <el-switch v-model="value"></el-switch>
19
+            </p>
20
+        </div>
21
+        <div class="configBox">
22
+          <p style="font-size:18px;font-weight:bold">医嘱同步</p>
23
+          <p style="font-size:14px;margin-top:5px;color:#333;">开启门诊处方同步到透析医嘱后,同一个患者,门诊医生站开的药品类处方自动同步到透析管理临时医嘱中,同时在透析管理中,给患者开长期医嘱和临时医嘱的功能失效,医生只能在门诊医生站开处方,只有同时使用门诊管理和透析管理的机构方可开启。</p>
24
+          <p style="margin-top:20px;">门诊处方同步到透析医嘱:
25
+          <el-switch v-model="is_open_xt_his" @change="changeFuncOne"></el-switch>
26
+          </p>
27
+        </div>
22 28
         <!--<div class="configBox">-->
23 29
             <!--<p>药品,耗材出库</p>-->
24 30
             <!--<p style="font-size:14px;margin-top:5px;">开启药品,耗材出库自动扣减则医生开完医嘱或处方可直接出库,不开启则由发药动作或出库按钮手动出库</p>-->
@@ -49,13 +55,7 @@
49 55
                 <!--<el-switch v-model="value"></el-switch>-->
50 56
             <!--</p>-->
51 57
         <!--</div>-->
52
-        <div class="configBox">
53
-            <p>打印预览设置</p>
54
-            <p style="font-size:14px;margin-top:5px;">开启直接打印后,处方单,售药单,收费发票等打印时跳过预览</p>
55
-            <p style="margin-top:20px;">直接打印:
56
-                <el-switch v-model="value"></el-switch>
57
-            </p>
58
-        </div>
58
+        
59 59
     </div>
60 60
   </div>
61 61
 </template>
@@ -141,7 +141,9 @@ export default {
141 141
 
142 142
 <style lang="scss" scoped>
143 143
 .configBox{
144
-    margin-top:20px;
144
+    padding-bottom:20px;
145
+    margin-top:10px;
146
+    border-bottom: 1px solid #000;
145 147
 }
146 148
 </style>
147 149
 

+ 7 - 6
src/xt_pages/data/printTemplate.vue Parādīt failu

@@ -8,18 +8,19 @@
8 8
         <el-tab-pane label="电子病历模板" name="1">
9 9
           <record-print></record-print>
10 10
         </el-tab-pane>
11
-        <el-tab-pane label="处方模板" name="2">
11
+        <el-tab-pane label="电子处方模板" name="2">
12 12
           <prescription-print></prescription-print>
13 13
         </el-tab-pane>
14
-        <el-tab-pane label="处方治疗模板" name="3">
14
+        <el-tab-pane label="处方治疗模板" name="3">
15 15
           <treat-print></treat-print>
16 16
         </el-tab-pane>
17
-        <el-tab-pane label="透析记录模板" name="4">
18
-          <dialysis-print></dialysis-print>
19
-        </el-tab-pane>
20
-        <el-tab-pane label="门诊收费明细模板" name="5">
17
+         <el-tab-pane label="门诊收费明细模板" name="5">
21 18
           <charge-print></charge-print>
22 19
         </el-tab-pane>
20
+        <el-tab-pane label="透析记录单模板" name="4">
21
+          <dialysis-print></dialysis-print>
22
+        </el-tab-pane>
23
+       
23 24
       </el-tabs>
24 25
     </div>
25 26
   </div>

+ 5 - 3
src/xt_pages/outpatientDoctorStation/components/deskPrescription.vue Parādīt failu

@@ -86,7 +86,7 @@
86 86
         </div>
87 87
         <div class="costBox">
88 88
           <span>医生:</span>
89
-          <el-select style="margin-right:5px;" v-model="doctorValue" placeholder="" @change="changeDoctor">
89
+          <el-select style="margin-right:5px;width:140px;" v-model="doctorValue" placeholder="" @change="changeDoctor">
90 90
             <el-option
91 91
               v-for="(item,index) in doctors"
92 92
               :key="index"
@@ -95,7 +95,7 @@
95 95
             </el-option>
96 96
           </el-select>
97 97
           <span>科室:</span>
98
-          <el-select style="margin-right:5px;" v-model="departmentValue" placeholder="">
98
+          <el-select style="margin-right:5px;width:140px;" v-model="departmentValue" placeholder="">
99 99
             <el-option
100 100
               v-for="(item,index) in department"
101 101
               :key="index"
@@ -103,7 +103,9 @@
103 103
               :value="item.id">
104 104
             </el-option>
105 105
           </el-select>
106
-          <span>总价:</span>
106
+          <span>当前处方总价:</span>
107
+          <span style="color:red;"></span>元
108
+          <span style="margin-left:10px;">总价:</span>
107 109
           <span style="color:red;">{{ getTotal() }}</span>元
108 110
           <span>{{order_status}}</span>
109 111
 

+ 15 - 4
src/xt_pages/outpatientDoctorStation/doctorDesk.vue Parādīt failu

@@ -44,13 +44,20 @@
44 44
             <el-radio-button label="电子处方"></el-radio-button>
45 45
             <el-radio-button label="电子病历"></el-radio-button>
46 46
           </el-radio-group>
47
-          <div class="mainCell fixedCell" style="float:right" v-show="titleType == '电子处方'">
47
+          <div class="mainCell fixedCell" style="float:right" v-if="titleType == '电子处方'">
48 48
             <el-button size="small" ref="button_one"   @click="open(1)" type="primary" style="margin-left:10px;">保存</el-button>
49
-            <el-button size="small" ref="button_two"   @click="open(2)" type="primary">打印</el-button>
49
+            <el-popover
50
+              placement="bottom"
51
+              width="200"
52
+              trigger="click">
53
+              <el-button size="small" ref="button_two"   @click="open(2)" type="primary">处方单</el-button>
54
+              <el-button size="small" ref="button_six"   @click="open(6)" type="primary">治疗单</el-button>
55
+              <el-button slot="reference" style="margin:0 10px;" type="primary" size="small">打印</el-button>
56
+            </el-popover>
50 57
             <el-button size="small" ref="button_three" @click="open(4)" type="primary">选择模板</el-button>
51 58
             <el-button size="small" ref="button_four"  @click="open(5)" type="primary">存模板</el-button>
52 59
           </div>
53
-          <div class="mainCell fixedCell" style="float:right" v-show="titleType == '电子病历'">
60
+          <div class="mainCell fixedCell" style="float:right" v-if="titleType == '电子病历'">
54 61
             <el-button size="small" @click="opentwo(1)" type="primary" style="margin-left:10px;">保存</el-button>
55 62
             <el-button size="small" @click="opentwo(2)" type="primary">打印</el-button>
56 63
             <el-button size="small" @click="opentwo(3)" type="primary">病历调用</el-button>
@@ -144,7 +151,7 @@
144 151
               arr = arr.concat(this.patientTableData[i])
145 152
             }
146 153
           }
147
-          this.patientTableData = arr
154
+            this.patientTableData = arr
148 155
 
149 156
         }
150 157
 
@@ -321,7 +328,11 @@
321 328
           this.$refs.prescriptions.open(3)
322 329
         } else if (index == 4) {
323 330
           this.$refs.prescriptions.open(4)
331
+        }else if(index == 6){
332
+          this.$router.push("/outpatientDoctorStation/treatPrint?record="+this.record_date)
333
+          
324 334
         }
335
+        
325 336
       },
326 337
 
327 338
       opentwo(index) {

+ 22 - 0
src/xt_pages/outpatientDoctorStation/print.vue Parādīt failu

@@ -67,6 +67,28 @@ export default {
67 67
     };
68 68
   },
69 69
   methods:{
70
+    printThisPage() {
71
+      var ptime = Math.round(new Date().getTime() / 1000);
72
+      this.print_time = uParseTime(ptime, "{y}-{m}-{d} {h}:{i}");
73
+
74
+      const style =
75
+        '@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;}}';
76
+      printJS({
77
+        printable: "prescription-print",
78
+        type: "html",
79
+        style: style,
80
+        scanStyles: false
81
+      });
82
+
83
+      // if (this.org_template_info.template_id == 1) {
84
+      //   printJS({
85
+      //     printable: "dialysis-print-box",
86
+      //     type: "html",
87
+      //     style: style,
88
+      //     scanStyles: false
89
+      //   });
90
+      // }
91
+    },
70 92
     getAllDoctorList(){
71 93
       getAllDoctorList().then(response=>{
72 94
         if(response.data.state == 1){

+ 22 - 0
src/xt_pages/outpatientDoctorStation/printtwo.vue Parādīt failu

@@ -67,6 +67,28 @@ export default {
67 67
     };
68 68
   },
69 69
   methods:{
70
+    printThisPage() {
71
+      var ptime = Math.round(new Date().getTime() / 1000);
72
+      this.print_time = uParseTime(ptime, "{y}-{m}-{d} {h}:{i}");
73
+
74
+      const style =
75
+        '@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;}}';
76
+      printJS({
77
+        printable: "prescription-print",
78
+        type: "html",
79
+        style: style,
80
+        scanStyles: false
81
+      });
82
+
83
+      // if (this.org_template_info.template_id == 1) {
84
+      //   printJS({
85
+      //     printable: "dialysis-print-box",
86
+      //     type: "html",
87
+      //     style: style,
88
+      //     scanStyles: false
89
+      //   });
90
+      // }
91
+    },
70 92
     getAllDoctorList(){
71 93
       getAllDoctorList().then(response=>{
72 94
         if(response.data.state == 1){

+ 343 - 0
src/xt_pages/outpatientDoctorStation/treatPrint.vue Parādīt failu

@@ -0,0 +1,343 @@
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"  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"   @current-change="changePatient" highlight-current-row :data="patientTableData" 
24
+                 height="480" border style="width: 100%">
25
+                    <el-table-column prop="date"  label="患者">   
26
+                      <template slot-scope="scope">{{scope.row.patients?scope.row.patients.name:''}}</template> 
27
+                    </el-table-column>
28
+                    <el-table-column prop="name" label="就诊号">
29
+                        <template slot-scope="scope">{{ scope.row.his_patient ?scope.row.his_patient.number:''}}</template>
30
+                    </el-table-column>
31
+                </el-table>
32
+            </div>
33
+            
34
+            <div class='dialysisPage' style="flex: 1;height: calc(100vh - 178px);overflow-x:auto;::-webkit-scrollbar:height:15px">
35
+              <printOne v-bind:childResponse="childResponse" :advicePrint="advicePrint" :patient="patient" :hisPatient="hisPatient"></printOne>
36
+            </div>
37
+        </el-container>
38
+    </div>
39
+  </div>
40
+</template>
41
+
42
+<script>
43
+
44
+
45
+import { parseTime } from "@/utils";
46
+import { getDialysisRecord } from "@/api/dialysis";
47
+import { getDataConfig } from "@/utils/data";
48
+import { jsGetAge, uParseTime } from "@/utils/tools";
49
+
50
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
51
+import print from "print-js";
52
+import printOne from "./treatTemplate/printOne"
53
+import { getAllDoctorList,getAllHisPatientList,getPrescriptionPrint } from "@/api/project/project"
54
+export default {
55
+  name: "dialysisPrintOrder",
56
+  components: {
57
+    BreadCrumb,
58
+    printOne
59
+  },
60
+  data() {
61
+    return {
62
+       record_date:"",
63
+       patientTableData:[],
64
+       advicePrint:[],
65
+       hisPatient:{},
66
+       patient:{}
67
+    };
68
+  },
69
+  methods:{
70
+    printThisPage() {
71
+      var ptime = Math.round(new Date().getTime() / 1000);
72
+      this.print_time = uParseTime(ptime, "{y}-{m}-{d} {h}:{i}");
73
+
74
+      const style =
75
+        '@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: 300px;}.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:600px;}.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;}}';
76
+      printJS({
77
+        printable: "prescription-print",
78
+        type: "html",
79
+        style: style,
80
+        scanStyles: false
81
+      });
82
+
83
+      // if (this.org_template_info.template_id == 1) {
84
+      //   printJS({
85
+      //     printable: "dialysis-print-box",
86
+      //     type: "html",
87
+      //     style: style,
88
+      //     scanStyles: false
89
+      //   });
90
+      // }
91
+    },
92
+    getAllDoctorList(){
93
+      getAllDoctorList().then(response=>{
94
+        if(response.data.state == 1){
95
+               var doctor =  response.data.data.doctor
96
+               
97
+               this.doctorList = doctor
98
+             }
99
+         })   
100
+     },
101
+    getAllHisPatientList(){
102
+         const params = {
103
+           record_date:this.record_date
104
+         }
105
+      getAllHisPatientList(params).then(response=>{
106
+         if(response.data.state == 1){
107
+            this.patientTableData = response.data.data.list
108
+            this.patientTableDataTwo = response.data.data.list
109
+
110
+            console.log('222', this.patientTableData)
111
+            let cal_one = 0
112
+            let cal_two = 0
113
+            for (let i = 0; i < response.data.data.list.length; i++) {
114
+              if (response.data.data.list[i].prescription == null || response.data.data.list[i].prescription.length == 0) {
115
+                cal_one = cal_one + 1
116
+              }
117
+              if (response.data.data.list[i].prescription != null && response.data.data.list[i].prescription.length > 0) {
118
+                cal_two = cal_two + 1
119
+              }
120
+            }
121
+            this.$refs.tab.setCurrentRow(this.patientTableData[0])
122
+            console.log(this.patientTableData[0])
123
+            this.choosePatient(this.patientTableData[0])
124
+            this.cal_one = cal_one
125
+            this.cal_two = cal_two   
126
+         }
127
+      })
128
+    },
129
+
130
+    changePatient(row){
131
+      console.log("row",row)
132
+        var params = {
133
+          patient_id:row.patient_id,
134
+          record_date:this.record_date,
135
+        }
136
+      getPrescriptionPrint(params).then(response=>{
137
+          if(response.data.state == 1){
138
+            var advicePrint =  response.data.data.advicePrint
139
+            console.log("adviceprint",advicePrint)
140
+            this.advicePrint = advicePrint
141
+            // var hisPatient =  response.data.data.hisPatient
142
+            // console.log("hispatient",hisPatient)
143
+            // this.hisPatient = hisPatient
144
+            var patient =  response.data.data.patient
145
+            console.log("patient",patient)
146
+            this.patient = patient
147
+            var doctorPorject = response.data.data.doctorPorject
148
+            console.log("doctorporject",doctorPorject)
149
+          }
150
+      })
151
+    }
152
+    
153
+  },
154
+
155
+  created() {
156
+    this.getAllDoctorList()
157
+    var record_date = this.$route.query.record
158
+    this.record_date = record_date
159
+    console.log("record_date",record_date)
160
+    this.getAllHisPatientList(record_date)
161
+  },
162
+
163
+};
164
+</script>
165
+
166
+<style>
167
+.dialysis-print-order {
168
+  width: 960px;
169
+  margin: 0 auto;
170
+}
171
+
172
+.dialysis-print-order .order-yy-name {
173
+  margin: auto;
174
+  text-align: center;
175
+  font-size: 20px;
176
+  letter-spacing: 5px;
177
+}
178
+
179
+.dialysis-print-order .order-title {
180
+  margin: auto;
181
+  font-weight: 600;
182
+  text-align: center;
183
+  font-size: 22px;
184
+  padding: 10px;
185
+}
186
+
187
+.dialysis-print-order .table-box {
188
+  width: 100%;
189
+  line-height: 23px;
190
+  font-size: 14px;
191
+}
192
+
193
+.dialysis-print-order .print-table {
194
+  width: 100%;
195
+  text-align: center;
196
+  border-collapse: collapse;
197
+  line-height: 40px;
198
+  font-size: 14px;
199
+  border-color: #000;
200
+}
201
+
202
+.dialysis-print-order .print-table-no {
203
+  width: 100%;
204
+  text-align: center;
205
+  border-collapse: collapse;
206
+  font-size: 14px;
207
+}
208
+
209
+.dialysis-print-order .under-line {
210
+  border-bottom: 1px solid #999;
211
+  width: 95%;
212
+  text-align: center;
213
+  margin-left: 2px;
214
+}
215
+
216
+.dialysis-print-order .title-box {
217
+  text-align: center;
218
+  font-size: 16px;
219
+}
220
+
221
+.dialysis-print-order .radio-lebel-box {
222
+  font-weight: 400;
223
+  cursor: pointer;
224
+}
225
+
226
+.dialysis-print-order .radio-no {
227
+  opacity: 0;
228
+  outline: none;
229
+  position: absolute;
230
+  margin: 0;
231
+  width: 0;
232
+  height: 0;
233
+  z-index: -1;
234
+}
235
+
236
+.dialysis-print-order .radio-inner {
237
+  white-space: nowrap;
238
+  cursor: pointer;
239
+  outline: none;
240
+  display: inline-block;
241
+  line-height: 1;
242
+  position: relative;
243
+  vertical-align: middle;
244
+}
245
+
246
+.dialysis-print-order .radio-fang {
247
+  display: inline-block;
248
+  position: relative;
249
+  border: 1px solid #000;
250
+  box-sizing: border-box;
251
+  width: 14px;
252
+  height: 14px;
253
+  background-color: #fff;
254
+  z-index: 1;
255
+  transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
256
+    background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);
257
+}
258
+
259
+.dialysis-print-order .is-checked-radio::after {
260
+  content: "√";
261
+  font-size: 15px;
262
+}
263
+
264
+.dialysis-print-order .print-table-no tr td {
265
+  padding: 8px 5px;
266
+  line-height: 25px;
267
+}
268
+
269
+.dialysis-print-order .print-table tr td {
270
+  padding: 1px 1px;
271
+  /*line-height: 25px;*/
272
+}
273
+
274
+.es-img {
275
+  height: 30px;
276
+}
277
+
278
+.advice-name {
279
+  text-align: left;
280
+}
281
+
282
+.advice-children {
283
+  display: flex;
284
+}
285
+
286
+.title-box-pro {
287
+  border: 0 #fff;
288
+  line-height: 25px;
289
+  height: 25px;
290
+  text-align: left;
291
+  padding-left: 10px !important;
292
+}
293
+.title-box-pro-tr {
294
+  border: 0 #fff;
295
+}
296
+.text-align-left {
297
+  text-align: left !important;
298
+  padding-left: 10px !important;
299
+  font-size: 14px !important;
300
+  line-height: 25px;
301
+}
302
+.print-table-tr-new td {
303
+  line-height: 20px !important;
304
+}
305
+.border-top-solid {
306
+  border: solid 1px #000;
307
+}
308
+.print-template-two tr {
309
+  line-height: 30px;
310
+}
311
+
312
+.table-box1 {
313
+  border: 1px solid #000;
314
+  width: 100%;
315
+  line-height: 30px;
316
+  font-size: 14px;
317
+  border-collapse: collapse;
318
+}
319
+.table-box1 tr {
320
+  border-bottom: 1px solid #000;
321
+}
322
+</style>
323
+
324
+<style lang="scss">
325
+
326
+.newContainer{
327
+  .dialysisPage::-webkit-scrollbar {
328
+    height: 15px;
329
+  }
330
+  
331
+  .el-date-editor{
332
+    .el-input__inner{
333
+      padding-right:0px;
334
+    }
335
+  }
336
+  .el-table td, .el-table th{
337
+    text-align: center;
338
+  }
339
+}
340
+.newContainer::-webkit-scrollbar{
341
+  height: 15px !important;
342
+}
343
+</style>

+ 205 - 0
src/xt_pages/outpatientDoctorStation/treatTemplate/printOne.vue Parādīt failu

@@ -0,0 +1,205 @@
1
+<template>
2
+    <div id='prescription-print' class="prescription-print">
3
+        <div style="display:flex;justify-content: space-between;font-weight:bold;">
4
+            <p style="width:300px;display:flex;justify-content: space-between;font-weight:bold;">
5
+                <span>费别</span>
6
+                <span>自费</span>
7
+                <span>公费</span>
8
+                <span>保险</span>
9
+                <span>其他</span>
10
+            </p>
11
+            <p>就诊日期:2020-11-01 09:22:12</p>
12
+        </div>
13
+        <div class="printTitle">血液透析中心</div>
14
+        <div class="printTitle">处方、治疗单</div>
15
+        <div class="infoTitle">
16
+            <p>门诊编号:34567876532345678</p>
17
+            <p>电脑号:</p>
18
+        </div>
19
+        <div class="infoMain">
20
+            <p style="margin-bottom: 10px;width:25%">姓名:阿萨德</p>
21
+            <p style="margin-bottom: 10px;width:25%">性别:男</p>
22
+            <p style="margin-bottom: 10px;width:25%">年龄:12</p>
23
+            <p style="margin-bottom: 10px;width:25%">参保类型:</p>
24
+            <p style="margin-bottom: 10px;width:50%;">联系电话</p>
25
+            <p style="width:50%;">地址:</p>
26
+            <p style="width:50%;">诊断:</p>
27
+        </div>
28
+        <div class="prescriptionBox">
29
+            <table style="width:100%;text-align:center;line-height:25px;">
30
+                <tr>
31
+                    <td>序号</td>
32
+                    <td>项目名称</td>
33
+                    <td>数量</td>
34
+                    <td>单位</td>
35
+                    <td>单价</td>
36
+                    <td>部位</td>
37
+                    <td>备注</td>
38
+                    <td>天数</td>
39
+                </tr>
40
+                <tr v-for='item in 4'>
41
+                    <td>1</td>
42
+                    <td>啊势均力敌框架爱实力坑爹就爱上了肯德基</td>
43
+                    <td>1</td>
44
+                    <td>1</td>
45
+                    <td>1</td>
46
+                    <td>1</td>
47
+                    <td>1</td>
48
+                    <td>1</td>
49
+                </tr>
50
+            </table>
51
+        </div>
52
+        <div class="infoTitle">
53
+            <p>开单医生:就看见</p>
54
+            <p>签章:2020-11-01 09:22:12</p>
55
+        </div>
56
+        <div class="actionBar">
57
+            <p>执行医生:</p>
58
+            <p>费用:</p>
59
+        </div>
60
+        <table style="width:100%;text-align:center;line-height:25px;border-collapse: collapse;" border="1">
61
+            <tr>
62
+                <td style="width:16%;">治疗时间</td>
63
+                <td style="width:16%;"></td>
64
+                <td style="width:16%;"></td>
65
+                <td style="width:16%;"></td>
66
+                <td style="width:16%;"></td>
67
+                <td style="width:16%;"></td>
68
+            </tr>
69
+            <tr>
70
+                <td style="width:16%;">医生签字</td>
71
+                <td style="width:16%;"></td>
72
+                <td style="width:16%;"></td>
73
+                <td style="width:16%;"></td>
74
+                <td style="width:16%;"></td>
75
+                <td style="width:16%;"></td>
76
+            </tr>
77
+            <tr>
78
+                <td style="width:16px;">患者签字</td>
79
+                <td style="width:16px;"></td>
80
+                <td style="width:16px;"></td>
81
+                <td style="width:16px;"></td>
82
+                <td style="width:16px;"></td>
83
+                <td style="width:16px;"></td>
84
+            </tr>
85
+        </table>
86
+    </div>
87
+</template>
88
+<script>
89
+import { jsGetAge, uParseTime } from '@/utils/tools'
90
+  import {getAllDoctorList} from "@/api/project/project"
91
+export default {
92
+    props:{
93
+      patient:Object,
94
+      advicePrint:Array,
95
+      hisPatient:Object,
96
+    }, 
97
+    data(){
98
+      return{
99
+        doctorList:[]
100
+      }
101
+    },
102
+   methods:{
103
+     printThisPage() {
104
+      var ptime = Math.round(new Date().getTime() / 1000);
105
+      this.print_time = uParseTime(ptime, "{y}-{m}-{d} {h}:{i}");
106
+
107
+      const style =
108
+        '@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;}}';
109
+      printJS({
110
+        printable: "prescription-print",
111
+        type: "html",
112
+        style: style,
113
+        scanStyles: false
114
+      });
115
+    },
116
+     getAllDoctorList(){
117
+      getAllDoctorList().then(response=>{
118
+        if(response.data.state == 1){
119
+               var doctor =  response.data.data.doctor
120
+               
121
+               this.doctorList = doctor
122
+             }
123
+         })   
124
+     },
125
+
126
+      getDoctor(id){
127
+        var name = ""
128
+        for(let i=0;i<this.doctorList.length;i++){
129
+          if(id == this.doctorList[i].admin_user_id){
130
+              name = this.doctorList[i].user_name
131
+          }
132
+        }
133
+        return name
134
+      },
135
+      getTime(value, temp) {
136
+        if (value != undefined) {
137
+            return uParseTime(value, temp)
138
+        }
139
+        return ''
140
+     },
141
+   },
142
+   created(){
143
+    //   this.getAllDoctorList()
144
+   }
145
+}
146
+</script>
147
+
148
+
149
+<style lang="scss" scoped>
150
+.printTitle{
151
+    font-size: 22px;
152
+    text-align: center;
153
+    font-weight: bold;
154
+}
155
+.infoTitle{
156
+    display: flex;
157
+    border-bottom: 2px solid #000;
158
+    margin-top:10px;
159
+    line-height: 24px;
160
+    padding:0 10px;
161
+}
162
+.infoTitle p{
163
+    width: 300px;
164
+}
165
+.infoMain{
166
+    display: flex;
167
+    flex-wrap: wrap;
168
+    border-bottom: 2px solid #000;
169
+    padding:0 10px;
170
+}
171
+.infoMain p{
172
+    width: 50%;
173
+    line-height: 24px;
174
+}
175
+.prescriptionBox{
176
+    padding:0 10px;
177
+    height:600px;
178
+}
179
+.Rp{
180
+    font-size: 22px;
181
+    font-weight: bold;
182
+}
183
+.drugsBox{
184
+    padding-left: 40px;
185
+    margin-bottom: 10px;
186
+}
187
+.drugsBox p{
188
+    line-height: 30px;
189
+}
190
+.drugsOne{
191
+    line-height: 24px;
192
+}
193
+.drugsOne span{
194
+    margin-right: 20px;
195
+}
196
+.actionBar{
197
+    display: flex;
198
+    justify-content: space-between; 
199
+    line-height: 24px;
200
+    padding:0 10px;
201
+}
202
+.actionBar p{
203
+    width:150px;
204
+}
205
+</style>

+ 40 - 10
src/xt_pages/outpatientRegistration/index.vue Parādīt failu

@@ -24,9 +24,17 @@
24 24
                         </div>
25 25
                     </el-form-item>
26 26
                     <el-form-item label="患者姓名:"  prop="name" :validate-event="is_Name">
27
-                        <el-input  v-model="form.name"></el-input>
27
+                        <!-- <el-input  v-model="form.name"></el-input> -->
28
+                       <el-select v-model="form.name" placeholder="请选择">
29
+                            <el-option
30
+                            v-for="item in patient"
31
+                            :key="item.patient_id"
32
+                            :label="item.name"
33
+                            :value="item.name">
34
+                            </el-option>
35
+                        </el-select>
28 36
                     </el-form-item>
29
-                    <el-form-item label="性别:">
37
+                    <el-form-item label="性别:" prop="sex" :validate-event="is_Name">
30 38
                         <el-select v-model="form.sex" placeholder="请选择">
31 39
                             <el-option
32 40
                             v-for="item in sex"
@@ -56,10 +64,10 @@
56 64
                             </el-option>
57 65
                         </el-select>
58 66
                     </el-form-item>
59
-                    <el-form-item label="出生日期:">
67
+                    <el-form-item label="出生日期:" prop="birthday" :validate-event="is_Name">
60 68
                         <el-date-picker v-model="form.birthday" type="date" @change="getBirthday" placeholder="选择日期"></el-date-picker>
61 69
                     </el-form-item>
62
-                    <el-form-item label="年龄:">
70
+                    <el-form-item label="年龄:" prop="age" :validate-event="is_Name">
63 71
                         <el-input v-model="form.age"></el-input>
64 72
                     </el-form-item>
65 73
                     <el-form-item label="证件号码:" prop="idCard"  :validate-event="is_Name">
@@ -245,16 +253,20 @@ export default {
245 253
             },
246 254
             rules: {
247 255
               name:[{ required:true,message:"患者姓名不能为空",trigger: 'blur'}],
256
+              sex:[{ required:true,message:"患者性别不能为空",trigger: 'blur'}],
248 257
               idCard: [{ required: true, message: '证件号码不能为空', trigger: 'blur'  }],
249 258
               register: [{ required: true, message: '请选择挂号类型' , trigger: 'blur' }],
250 259
               doctor: [{ required: true, message: '请选择医生' , trigger: 'blur' }],
251 260
               department: [{ required: true, message: '请填写科室', trigger: 'blur' }],
261
+              age:[{ required:true,message:"患者年龄不能为空",trigger: 'blur'}],
262
+              birthday:[{required:true,message:"患者出生日期不能为空",trigger:'blur'}]
252 263
            },
253 264
            doctorList:[],
254 265
            departmentList:[],
255 266
            check:0,
256 267
            show:false,
257
-           is_Name:false
268
+           is_Name:false,
269
+           patient:[],
258 270
         }
259 271
     },
260 272
     computed:{
@@ -364,10 +376,10 @@ export default {
364 376
              this.is_Name = true
365 377
              return
366 378
            }
367
-          if(this.form.idCard == ""){
368
-             this.$message.error("证件号码不能为空")
369
-             this.is_Name = true
370
-             return
379
+          
380
+
381
+           if(this.form.sex == ""){
382
+             this.$message.error("患者性别不能为空")
371 383
            }
372 384
 
373 385
           if(this.form.register == ""){
@@ -387,6 +399,22 @@ export default {
387 399
              this.is_Name = true
388 400
              return
389 401
            }
402
+         if(this.form.age == ""){
403
+            this.$message.error("患者年龄不能为空")
404
+            this.is_Name = true
405
+            return
406
+         }
407
+         if(this.form.birthday == ""){
408
+            this.$message.error("出生日期不能为空")
409
+            this.is_Name = true
410
+            return
411
+         }
412
+
413
+         if(this.form.idCard == ""){
414
+             this.$message.error("证件号码不能为空")
415
+             this.is_Name = true
416
+             return
417
+          }
390 418
           this.$refs[formName].validate((valid)=>{
391 419
              if(valid){
392 420
                   if(this.form.costChecked == true){
@@ -418,6 +446,7 @@ export default {
418 446
                     total:this.total
419 447
                 }
420 448
                 console.log("params",params)
449
+                return
421 450
                 saveHisPatient(params).then(response=>{
422 451
                    if(response.data.state == 1){
423 452
                      var patient =  response.data.data.patient
@@ -449,7 +478,8 @@ export default {
449 478
           getTodaySchedulePatient().then(response=>{
450 479
              if(response.data.state == 1){
451 480
                var patient =  response.data.data.patient
452
-               console.log("今日排班患者",patient)
481
+               console.log("今日排班",patient)
482
+               this.patient = patient
453 483
              }
454 484
           })
455 485
        }

+ 1 - 1
src/xt_pages/outpatientRegistration/registrationHistory.vue Parādīt failu

@@ -54,7 +54,7 @@
54 54
                 <el-table-column align="center" type="index" label="序号" width="60">
55 55
                 </el-table-column>
56 56
                 <el-table-column align="center" prop="name" label="时间" width="100">
57
-                    <template slot-scope="scope">{{getTime(scope.row.record_date,"{y}-{m}-{d}")}}</template>
57
+                    <template slot-scope="scope">{{getTime(scope.row.ctime,"{y}-{m}-{d} {h}:{i}:{s}")}}</template>
58 58
                 </el-table-column>
59 59
                 <el-table-column align="center" prop="dialysis_no" label="姓名" width="80">
60 60
                     <template slot-scope="scope">{{scope.row.name }}</template>