浏览代码

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

XMLWAN 4 年前
父节点
当前提交
bf963ca6d2
共有 24 个文件被更改,包括 3467 次插入1052 次删除
  1. 44 7
      src/api/his/his.js
  2. 8 0
      src/router/modules/integration.js
  3. 16 0
      src/router/modules/outpatientCharges.js
  4. 8 0
      src/router/modules/outpatientDoctorStation.js
  5. 81 0
      src/xt_pages/integration/medicalInsurance.vue
  6. 229 128
      src/xt_pages/outpatientCharges/components/prescriptionTable.vue
  7. 386 202
      src/xt_pages/outpatientCharges/outpatientChargesManagement.vue
  8. 1184 0
      src/xt_pages/outpatientCharges/print.vue
  9. 10 10
      src/xt_pages/outpatientCharges/summaryDetail.vue
  10. 107 0
      src/xt_pages/outpatientCharges/template/printOne.vue
  11. 159 0
      src/xt_pages/outpatientCharges/treatPrint.vue
  12. 146 0
      src/xt_pages/outpatientCharges/treatTemplate/printOne.vue
  13. 294 182
      src/xt_pages/outpatientDoctorStation/components/deskPrescription.vue
  14. 18 29
      src/xt_pages/outpatientDoctorStation/components/deskRecord.vue
  15. 13 7
      src/xt_pages/outpatientDoctorStation/components/medicalRecord.vue
  16. 115 38
      src/xt_pages/outpatientDoctorStation/components/prescriptionTable.vue
  17. 1 29
      src/xt_pages/outpatientDoctorStation/components/recordTemplateDetail.vue
  18. 3 1
      src/xt_pages/outpatientDoctorStation/components/saveRecordTemplate.vue
  19. 60 18
      src/xt_pages/outpatientDoctorStation/doctorDesk.vue
  20. 22 395
      src/xt_pages/outpatientDoctorStation/print.vue
  21. 329 0
      src/xt_pages/outpatientDoctorStation/recordPrint.vue
  22. 119 0
      src/xt_pages/outpatientDoctorStation/recordTemplate/printOne.vue
  23. 107 0
      src/xt_pages/outpatientDoctorStation/template/printOne.vue
  24. 8 6
      src/xt_pages/outpatientRegistration/index.vue

+ 44 - 7
src/api/his/his.js 查看文件

63
 
63
 
64
 
64
 
65
 
65
 
66
+export function register(params) {
67
+  return request({
68
+    url: "/api/register/get",
69
+    method: "get",
70
+    params:params,
71
+  });
72
+}
73
+
74
+export function upload(params) {
75
+  return request({
76
+    url: "/api/upload/get",
77
+    method: "get",
78
+    params:params,
79
+  });
80
+}
81
+
82
+
83
+export function delHisPrescription(params) {
84
+  return request({
85
+    url: "/api/hisprescription/delete",
86
+    method: "post",
87
+    params:params,
88
+  });
89
+}
90
+
91
+export function delHisAdvice(params) {
92
+  return request({
93
+    url: "/api/advice/delete",
94
+    method: "post",
95
+    params:params,
96
+  });
97
+}
98
+
99
+export function delHisProject(params) {
100
+  return request({
101
+    url: "/api/project/delete",
102
+    method: "post",
103
+    params:params,
104
+  });
105
+}
106
+
107
+
108
+
109
+
66
 
110
 
67
 
111
 
68
 
112
 
69
-// export function createCaseHistory(params) {
70
-//   return request({
71
-//     url: "/api/doctorworkstation/casehistory/create",
72
-//     method: "post",
73
-//     params:params
74
-//   });
75
-// }
76
 
113
 
77
 
114
 
78
 
115
 

+ 8 - 0
src/router/modules/integration.js 查看文件

31
     meta: {
31
     meta: {
32
       title: '质控集成'
32
       title: '质控集成'
33
     }
33
     }
34
+  },
35
+  {
36
+    path: '/data/medicalInsurance',
37
+    component: () => import('@/xt_pages/integration/medicalInsurance'),
38
+    name: '医保绑定',
39
+    meta: {
40
+      title: '医保绑定'
41
+    }
34
   }
42
   }
35
 
43
 
36
   ]
44
   ]

+ 16 - 0
src/router/modules/outpatientCharges.js 查看文件

50
         name: 'summaryDetail',
50
         name: 'summaryDetail',
51
         meta: { title: 'summaryDetail', noCache: true }
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 查看文件

38
         name: 'outpatientDoctorStationPrint',
38
         name: 'outpatientDoctorStationPrint',
39
         meta: { title: 'outpatientDoctorStationPrint', noCache: true }
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
 }

+ 81 - 0
src/xt_pages/integration/medicalInsurance.vue 查看文件

1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+    </div>
6
+    <div class="app-container medicalInsurance">
7
+        <p class="medicalTitle">绑定医疗机构编码</p>
8
+        <p>绑定医疗机构编码后,如系统能正常使用医保扣费,则代表医疗机构编码正确</p>
9
+        <p>此后请勿修改该编码,否则导致系统异常</p>
10
+        <p>此版本医保系统只能在</p>
11
+        <el-form ref="form" :model="form" label-width="120px" label-position="left" style="margin-top:40px;">
12
+            <el-form-item label="医疗机构编码:">
13
+                <el-input v-model.trim="form.dbhost" maxlength="200" style="width :200px;"></el-input>
14
+            </el-form-item>
15
+            <el-form-item label="医疗机构名称:">
16
+                <el-input v-model.trim="form.dbhost" maxlength="200" style="width :200px;"></el-input>
17
+            </el-form-item>
18
+            <el-form-item label="医疗机构VPN:">
19
+                <el-input v-model.trim="form.dbhost" maxlength="200" style="width :200px;"></el-input>
20
+                <span style="margin-left:5px;">提示:如果没有VPN,则使用<span class="defaultVPN">系统默认VPN</span></span>
21
+            </el-form-item>
22
+        </el-form>
23
+        <el-button type="primary">绑定</el-button>
24
+        <el-form ref="form" :model="form" label-width="120px" label-position="left" style="margin-top:40px;">
25
+            <el-form-item label="电子医保卡ID:">
26
+                <el-input v-model.trim="form.dbhost" maxlength="200" style="width :200px;"></el-input>
27
+            </el-form-item>
28
+            <el-form-item label="电子医保卡KEY:">
29
+                <el-input v-model.trim="form.dbhost" maxlength="200" style="width :200px;"></el-input>
30
+            </el-form-item>
31
+            <el-form-item label="渠道号:">
32
+                <el-input v-model.trim="form.dbhost" maxlength="200" style="width :200px;"></el-input>
33
+            </el-form-item>
34
+        </el-form>
35
+        <el-button type="primary">绑定电子卡</el-button>
36
+        <p class="medicalTitle" style="margin-top:20px;">医疗绑定步骤</p>
37
+        <p>1.目前诊所云医保系统只支持广东深圳市区域</p>
38
+        <p>2.绑定医疗机构编码(该编码从深圳医保局申请所得)</p>
39
+        <p>3.系统设置-医师信息;为对应的员工填写成员编码(该编码则是医保局下发的操作员编码)</p>
40
+        <p>4.药品管理-药品信息维护;为需要医保报销的药品设置医保编码</p>
41
+        <p>5.系统设置-检测项目设置;为需要医保报销的检查项目设置医保编码</p>
42
+        <p>6.患者使用医保挂号;挂号成功后到开处方界面从挂号人员列表选择挂号患者,开处方收费即可</p>
43
+    </div>
44
+  </div>
45
+</template>
46
+
47
+
48
+<script>
49
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
50
+export default {
51
+    components:{
52
+        BreadCrumb
53
+    },
54
+    data(){
55
+        return{
56
+            crumbs: [
57
+                { path: false, name: '集成配置' },
58
+                { path: false, name: '医保绑定' }
59
+            ],
60
+            form:{}
61
+        }
62
+    }
63
+}
64
+</script>
65
+
66
+<style lang="scss" scoped>
67
+.medicalInsurance p{
68
+    line-height: 24px;
69
+}
70
+.medicalTitle{
71
+    font-size: 18px;
72
+    color:#409EFF;
73
+}
74
+.defaultVPN{
75
+    background: #409EFF;
76
+    padding: 2px 5px;
77
+    border-radius: 2px;
78
+    color:#fff;
79
+    margin-left:5px;
80
+}
81
+</style>

+ 229 - 128
src/xt_pages/outpatientCharges/components/prescriptionTable.vue 查看文件

1
 <template>
1
 <template>
2
-    <div class="prescriptionTable">
3
-        <el-table :data="preTableData" border style="width: 98%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
4
-            <el-table-column align="center" type="selection" width="40"></el-table-column>
5
-            <el-table-column align="center" type="index" width="40" label="序号"></el-table-column>
6
-            <el-table-column align="center" prop="name" label="名称">
7
-                <template slot-scope="scope">{{ scope.row.name }}</template>
8
-            </el-table-column>
9
-            <el-table-column align="center" prop="name" width="50" label="组套">
10
-                <template slot-scope="scope">
11
-                    <!-- <el-select v-model="value" placeholder="">
12
-                        <el-option
13
-                        v-for="item in newoptions"
14
-                        :key="item.value"
15
-                        :label="item.label"
16
-                        :value="item.value">
17
-                        </el-option>
18
-                    </el-select> -->
19
-                    <el-input v-model="input" placeholder=""></el-input>
20
-                </template>
21
-            </el-table-column>
22
-            <el-table-column align="center" prop="name" width="50" :label="'单次\n用量'">
23
-                <template slot-scope="scope">
24
-                    <el-input v-model="input" placeholder=""></el-input>
25
-                </template>
26
-            </el-table-column>
27
-            <el-table-column align="center" prop="name" width="50" label="用法">
28
-                <template slot-scope="scope">
29
-                    <!-- <el-select v-model="value" placeholder="">
30
-                        <el-option
31
-                        v-for="item in newoptions"
32
-                        :key="item.value"
33
-                        :label="item.label"
34
-                        :value="item.value">
35
-                        </el-option>
36
-                    </el-select> -->
37
-                    <el-input v-model="input" placeholder=""></el-input>
38
-                </template>
39
-            </el-table-column>
40
-            <el-table-column align="center" prop="name" width="50" label="频率">
41
-                <template slot-scope="scope">
42
-                    <!-- <el-select v-model="value" placeholder="">
43
-                        <el-option
44
-                        v-for="item in newoptions"
45
-                        :key="item.value"
46
-                        :label="item.label"
47
-                        :value="item.value">
48
-                        </el-option>
49
-                    </el-select> -->
50
-                    <el-input v-model="input" placeholder=""></el-input>
51
-                </template>
52
-            </el-table-column>
53
-            <el-table-column align="center" prop="name" width="50" label="天数">
54
-                <template slot-scope="scope">
55
-                    <!-- <el-select v-model="value" placeholder="">
56
-                        <el-option
57
-                        v-for="item in newoptions"
58
-                        :key="item.value"
59
-                        :label="item.label"
60
-                        :value="item.value">
61
-                        </el-option>
62
-                    </el-select> -->
63
-                    <el-input v-model="input" placeholder=""></el-input>
64
-                </template>
65
-            </el-table-column>
66
-            <el-table-column align="center" prop="name" width="100" label="总量">
67
-                <template slot-scope="scope">
68
-                    <div style="display:flex;">
69
-                        <el-input v-model="input" style="width:50%" placeholder=""></el-input>
70
-                        <!-- <el-select v-model="value" style="width:50%" placeholder="">
71
-                            <el-option
72
-                            v-for="item in newoptions"
73
-                            :key="item.value"
74
-                            :label="item.label"
75
-                            :value="item.value">
76
-                            </el-option>
77
-                        </el-select> -->
78
-                        <el-input v-model="input" style="width:50%" placeholder=""></el-input>
79
-                    </div>
80
-                </template>
81
-            </el-table-column>
82
-            <el-table-column align="center" prop="name" width="50" label="单价">
83
-                <template slot-scope="scope">
84
-                    <el-input v-model="scope.row.unitPrice" placeholder=""></el-input>
85
-                </template>
86
-            </el-table-column>
87
-            <el-table-column align="center" prop="name" width="50" label="备注">
88
-                <template slot-scope="scope">
89
-                    <!-- <el-autocomplete
90
-                    class="inline-input"
91
-                    v-model="state1"
92
-                    :fetch-suggestions="querySearch"
93
-                    placeholder=""
94
-                    @select="handleSelect"
95
-                    ></el-autocomplete> -->
96
-                </template>
97
-            </el-table-column>
98
-            <el-table-column align="center" width="40" prop="name" label="操作">
99
-                <template slot-scope="scope">
100
-                    <i class="el-icon-delete"></i>
101
-                </template>
102
-            </el-table-column>
103
-        </el-table>
104
-    </div>
2
+  <div class="prescriptionTable">
3
+    <el-table v-if="prescription.type == 1" :data="prescription.advices" border style="width: 99%;"
4
+              :row-style="{ color: '#303133' }"
5
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
6
+      <el-table-column align="center" prop="name" label="名称">
7
+        <template slot-scope="scope">{{ scope.row.advice_name }}</template>
8
+      </el-table-column>
9
+
10
+      <el-table-column align="center" prop="name" width="50" :label="'单次\n用量'">
11
+        <template slot-scope="scope">
12
+          <el-input v-model="scope.row.single_dose" readonly></el-input>
13
+          <div> {{scope.row.min_unit}}</div>
14
+        </template>
15
+      </el-table-column>
16
+      <el-table-column align="center" prop="name" width="50" label="用法">
17
+        <template slot-scope="scope">
18
+          <el-select v-model="scope.row.delivery_way" readonly placeholder="请选择">
19
+            <el-option
20
+              v-for="item,index in drugways"
21
+              :key="index"
22
+              :label="item.name"
23
+              :value="item.name">
24
+            </el-option>
25
+          </el-select>
26
+        </template>
27
+      </el-table-column>
28
+      <el-table-column align="center" prop="name" width="50" label="频率">
29
+        <template slot-scope="scope">
30
+          <el-select v-model="scope.row.execution_frequency" readonly placeholder="请选择">
31
+            <el-option
32
+              v-for="item in efs"
33
+              :key="index"
34
+              :label="item.name"
35
+              :value="item.name">
36
+            </el-option>
37
+          </el-select>
38
+        </template>
39
+      </el-table-column>
40
+
41
+      <el-table-column align="center" prop="name" width="100" label="总量">
42
+        <template slot-scope="scope">
43
+          <div style="display:flex;">
44
+            <el-input v-model="scope.row.prescribing_number" style="width:50%" readonly placeholder=""></el-input>
45
+            <div> {{scope.row.min_unit}}</div>
46
+          </div>
47
+        </template>
48
+      </el-table-column>
49
+      <el-table-column align="center" prop="name" width="50" label="单价">
50
+        <template slot-scope="scope">
51
+          <el-input v-model="scope.row.price" placeholder="" readonly></el-input>
52
+        </template>
53
+      </el-table-column>
54
+      <el-table-column align="center" prop="name" width="50" label="备注">
55
+        <template slot-scope="scope">
56
+          <el-input v-model="scope.row.remark" style="width:50%" placeholder="" readonly></el-input>
57
+        </template>
58
+      </el-table-column>
59
+    </el-table>
60
+    <el-table v-if="prescription.type == 2" :data="prescription.project" border style="width: 99%;"
61
+              :row-style="{ color: '#303133' }"
62
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
63
+
64
+      <el-table-column align="center" prop="project_name" label="名称">
65
+        <template slot-scope="scope">{{ scope.row.project.project_name }}</template>
66
+      </el-table-column>
67
+      <el-table-column align="center" prop="statistical_classification" width="50" label="组">
68
+        <template slot-scope="scope">
69
+          {{getGroup(scope.row.project.statistical_classification)}}
70
+        </template>
71
+      </el-table-column>
72
+      <el-table-column align="center" prop="single_dose" width="130" :label="'单次\n用量'">
73
+        <!--<template slot-scope="scope">-->
74
+          <!--&lt;!&ndash;<el-input v-model="scope.row.project.single_dose" placeholder="" readonly></el-input>&ndash;&gt;-->
75
+        <!--</template>-->
76
+      </el-table-column>
77
+      <el-table-column align="center" prop="delivery_way" width="130" label="用法">
78
+        <!--<template slot-scope="scope">-->
79
+          <!--<el-input v-model="scope.row.project.delivery_way" placeholder="" readonly></el-input>-->
80
+        <!--</template>-->
81
+      </el-table-column>
82
+      <el-table-column align="center" prop="execution_frequency" width="130" label="频率">
83
+        <!--<template slot-scope="scope">-->
84
+          <!--<el-input v-model="scope.row.project.execution_frequency" placeholder="" readonly></el-input>-->
85
+        <!--</template>-->
86
+      </el-table-column>
87
+      <el-table-column align="center" prop="number_days" width="130" label="天数">
88
+        <!--<template slot-scope="scope">-->
89
+          <!--<el-input v-model="scope.row.project.number_days" placeholder="" readonly></el-input>-->
90
+        <!--</template>-->
91
+      </el-table-column>
92
+      <el-table-column align="center" prop="total" width="100" label="总量">
93
+        <template slot-scope="scope">
94
+          <div style="display:flex;">
95
+            <el-input v-model="scope.row.project.total" style="width:50" placeholder="" readonly></el-input>
96
+          </div>
97
+        </template>
98
+      </el-table-column>
99
+      <el-table-column align="center" prop="name" width="50" label="单价">
100
+        <template slot-scope="scope">
101
+          <el-input v-model="scope.row.project.price" placeholder="" readonly></el-input>
102
+        </template>
103
+      </el-table-column>
104
+      <el-table-column align="center" prop="name" width="120" label="备注">
105
+        <!--<template slot-scope="scope">-->
106
+          <!--<el-input v-model="scope.row.project.remark" readonly></el-input>-->
107
+        <!--</template>-->
108
+      </el-table-column>
109
+    </el-table>
110
+  </div>
111
+
112
+
113
+
114
+
115
+
105
 </template>
116
 </template>
106
 
117
 
107
 <script>
118
 <script>
108
-export default {
109
-    props:{
110
-        preTableData:Array
119
+  import { getInitData } from '@/api/his/his'
120
+  import { getDictionaryDataConfig} from "@/utils/data";
121
+
122
+  export default {
123
+    props: {
124
+      prescription: Object
111
     },
125
     },
112
-    data(){
113
-        return{
114
-            tableData: [],
115
-            newoptions: [{
116
-            value: '1',
117
-            label: '1'
118
-            }, {
119
-            value: '2',
120
-            label: '2'
121
-            }, {
122
-            value: '3',
123
-            label: '3'
124
-            }, {
125
-            value: '4',
126
-            label: '4'
127
-            }, {
128
-            value: '5',
129
-            label: '5'
130
-            }],
131
-            value:'1',
132
-            input:1
126
+    data() {
127
+      return {
128
+        drugways: [],
129
+        efs: []
130
+      }
131
+    }, mounted() {
132
+      getInitData().then(response => {
133
+        if (response.data.state == 0) {
134
+          this.$message.error(response.data.msg)
135
+          return false
136
+        } else {
137
+          this.drugways = response.data.data.drugways
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
+
196
+        }
197
+      })
198
+    }, methods:  {
199
+      getGroup(id){
200
+        var name = ""
201
+        var statistics_category =  getDictionaryDataConfig('system','statistics_category')
202
+        console.log("2235",statistics_category)
203
+        for(let i=0;i<statistics_category.length;i++){
204
+          if(id == statistics_category[i].id){
205
+            name = statistics_category[i].name
206
+          }
133
         }
207
         }
208
+        return name
209
+      },
210
+
211
+
134
     }
212
     }
135
-}
213
+  }
136
 </script>
214
 </script>
137
 
215
 
138
 <style lang="scss">
216
 <style lang="scss">
139
 .prescriptionTable{
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
+    }
140
     .el-table th .cell, .el-table td .cell{
241
     .el-table th .cell, .el-table td .cell{
141
         padding: 0 2px;
242
         padding: 0 2px;
142
         white-space: pre-line;
243
         white-space: pre-line;

+ 386 - 202
src/xt_pages/outpatientCharges/outpatientChargesManagement.vue 查看文件

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

文件差异内容过多而无法显示
+ 1184 - 0
src/xt_pages/outpatientCharges/print.vue


+ 10 - 10
src/xt_pages/outpatientCharges/summaryDetail.vue 查看文件

7
             <div class="mainCenter">
7
             <div class="mainCenter">
8
                 <div class="centerLeft">
8
                 <div class="centerLeft">
9
                     <div class="tabsBox">
9
                     <div class="tabsBox">
10
-                        <el-button type="text" class="addTab" @click="addCharges" icon="el-icon-circle-plus">附加收费</el-button>
10
+                        <!--<el-button type="text" class="addTab" @click="addCharges" icon="el-icon-circle-plus">附加收费</el-button>-->
11
                         <el-tabs class="preTabs" v-model="editableTabsValue" type="card" closable @tab-remove="removeTab" :before-leave="moreState">
11
                         <el-tabs class="preTabs" v-model="editableTabsValue" type="card" closable @tab-remove="removeTab" :before-leave="moreState">
12
                             <el-tab-pane
12
                             <el-tab-pane
13
                                 v-for="(item, index) in editableTabs"
13
                                 v-for="(item, index) in editableTabs"
23
                                     </el-table-column>
23
                                     </el-table-column>
24
                                     <el-table-column align="center" prop="name" width="50" label="组套">
24
                                     <el-table-column align="center" prop="name" width="50" label="组套">
25
                                         <template slot-scope="scope">
25
                                         <template slot-scope="scope">
26
-                                            
26
+
27
                                         </template>
27
                                         </template>
28
                                     </el-table-column>
28
                                     </el-table-column>
29
                                     <el-table-column align="center" prop="name" width="50" :label="'单次\n用量'">
29
                                     <el-table-column align="center" prop="name" width="50" :label="'单次\n用量'">
30
                                         <template slot-scope="scope">
30
                                         <template slot-scope="scope">
31
-                                            
31
+
32
                                         </template>
32
                                         </template>
33
                                     </el-table-column>
33
                                     </el-table-column>
34
                                     <el-table-column align="center" prop="name" width="50" label="用法">
34
                                     <el-table-column align="center" prop="name" width="50" label="用法">
35
                                         <template slot-scope="scope">
35
                                         <template slot-scope="scope">
36
-                                            
36
+
37
                                         </template>
37
                                         </template>
38
                                     </el-table-column>
38
                                     </el-table-column>
39
                                     <el-table-column align="center" prop="name" width="50" label="频率">
39
                                     <el-table-column align="center" prop="name" width="50" label="频率">
40
                                         <template slot-scope="scope">
40
                                         <template slot-scope="scope">
41
-                                            
41
+
42
                                         </template>
42
                                         </template>
43
                                     </el-table-column>
43
                                     </el-table-column>
44
                                     <el-table-column align="center" prop="name" width="50" label="天数">
44
                                     <el-table-column align="center" prop="name" width="50" label="天数">
45
                                         <template slot-scope="scope">
45
                                         <template slot-scope="scope">
46
-                                            
46
+
47
                                         </template>
47
                                         </template>
48
                                     </el-table-column>
48
                                     </el-table-column>
49
                                     <el-table-column align="center" prop="name" width="100" label="总量">
49
                                     <el-table-column align="center" prop="name" width="100" label="总量">
50
                                         <template slot-scope="scope">
50
                                         <template slot-scope="scope">
51
-                                            
51
+
52
                                         </template>
52
                                         </template>
53
                                     </el-table-column>
53
                                     </el-table-column>
54
                                     <el-table-column align="center" prop="name" width="50" label="单价">
54
                                     <el-table-column align="center" prop="name" width="50" label="单价">
55
                                         <template slot-scope="scope">
55
                                         <template slot-scope="scope">
56
-                                            
56
+
57
                                         </template>
57
                                         </template>
58
                                     </el-table-column>
58
                                     </el-table-column>
59
                                     <el-table-column align="center" prop="name" width="50" label="备注">
59
                                     <el-table-column align="center" prop="name" width="50" label="备注">
60
                                         <template slot-scope="scope">
60
                                         <template slot-scope="scope">
61
-                                            
61
+
62
                                         </template>
62
                                         </template>
63
                                     </el-table-column>
63
                                     </el-table-column>
64
                                 </el-table>
64
                                 </el-table>
65
                             </el-tab-pane>
65
                             </el-tab-pane>
66
                         </el-tabs>
66
                         </el-tabs>
67
-                        
67
+
68
                     </div>
68
                     </div>
69
                     <div class="costBox">
69
                     <div class="costBox">
70
                         <span>处方编号:2134348971237883</span>
70
                         <span>处方编号:2134348971237883</span>

+ 107 - 0
src/xt_pages/outpatientCharges/template/printOne.vue 查看文件

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 查看文件

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 查看文件

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>

+ 294 - 182
src/xt_pages/outpatientDoctorStation/components/deskPrescription.vue 查看文件

11
     <div class="backColor"></div>
11
     <div class="backColor"></div>
12
     <div class="mainCenter">
12
     <div class="mainCenter">
13
       <div class="centerLeft">
13
       <div class="centerLeft">
14
-        <el-form :model="form"  ref="form" label-width="80px">
14
+        <el-form :model="form" ref="form" label-width="80px">
15
           <el-form-item label="姓名:" prop="name">
15
           <el-form-item label="姓名:" prop="name">
16
             <el-input v-model="patientInfo.name" placeholder="" readonly></el-input>
16
             <el-input v-model="patientInfo.name" placeholder="" readonly></el-input>
17
           </el-form-item>
17
           </el-form-item>
21
           <el-form-item label="挂号类型: " prop="name">
21
           <el-form-item label="挂号类型: " prop="name">
22
             <el-input v-model="hisPatientInfo.register_type" placeholder="" readonly></el-input>
22
             <el-input v-model="hisPatientInfo.register_type" placeholder="" readonly></el-input>
23
           </el-form-item>
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
           <el-form-item label="诊断:" prop="name">
34
           <el-form-item label="诊断:" prop="name">
25
             <el-autocomplete
35
             <el-autocomplete
26
               style="width:100%;"
36
               style="width:100%;"
30
               placeholder="请输入内容"
40
               placeholder="请输入内容"
31
             ></el-autocomplete>
41
             ></el-autocomplete>
32
           </el-form-item>
42
           </el-form-item>
33
-          <el-form-item label="过敏及特殊病史: " prop="name">
43
+          <el-form-item label="特殊病史: " prop="name">
34
             <el-autocomplete
44
             <el-autocomplete
35
               style="width:100%;"
45
               style="width:100%;"
36
               class="inline-input"
46
               class="inline-input"
42
         </el-form>
52
         </el-form>
43
         <div class="tabsBox">
53
         <div class="tabsBox">
44
 
54
 
45
-          <el-button type="text" class="addTab" @click="addCharges" icon="el-icon-circle-plus">附加收费</el-button>
55
+          <!--<el-button type="text" class="addTab" @click="addCharges" icon="el-icon-circle-plus">附加收费</el-button>-->
46
           <el-tabs class="preTabs" v-model="editableTabsValue" type="card" closable @tab-remove="removeTab"
56
           <el-tabs class="preTabs" v-model="editableTabsValue" type="card" closable @tab-remove="removeTab"
47
                    :before-leave="moreState" @tab-click="tabclickEvent">
57
                    :before-leave="moreState" @tab-click="tabclickEvent">
48
             <el-tab-pane
58
             <el-tab-pane
56
             <el-tab-pane name="more" closable><span slot="label"><i class="el-icon-plus" @click="addTab"></i></span>
66
             <el-tab-pane name="more" closable><span slot="label"><i class="el-icon-plus" @click="addTab"></i></span>
57
             </el-tab-pane>
67
             </el-tab-pane>
58
             <div class="RP">Rp</div>
68
             <div class="RP">Rp</div>
59
-            <prescription-table ref="prescription_tables" :prescription="curPrescriptions" :preDrugs="preDrugs" :activeType="customTabIndex"></prescription-table>
69
+            <prescription-table ref="prescription_tables" :prescription="curPrescriptions" :preDrugs="preDrugs"
70
+                                :activeType="customTabIndex"></prescription-table>
60
           </el-tabs>
71
           </el-tabs>
61
 
72
 
62
         </div>
73
         </div>
80
             </el-option>
91
             </el-option>
81
           </el-select>
92
           </el-select>
82
           <span>总计:</span>
93
           <span>总计:</span>
83
-          <span style="color:red;">{{ total }}</span>元
94
+          <span style="color:red;">{{ getTotal() }}</span>元
84
         </div>
95
         </div>
85
       </div>
96
       </div>
86
       <div class='centerRight'>
97
       <div class='centerRight'>
89
           <p :class="rightTab == 2 ? 'activeP' : ''" @click="clickTab(2)">项目</p>
100
           <p :class="rightTab == 2 ? 'activeP' : ''" @click="clickTab(2)">项目</p>
90
         </div>
101
         </div>
91
         <template>
102
         <template>
92
-          <div style="margin-top:5px;">
93
-            <el-input style="width:50%;" v-model="input" placeholder=""></el-input>
94
-            <el-select style="float: right;width: 49%;" v-model="value" placeholder="">
95
-              <el-option
96
-                v-for="item in options"
97
-                :key="item.value"
98
-                :label="item.label"
99
-                :value="item.value">
100
-              </el-option>
101
-            </el-select>
102
-          </div>
103
+          <!--<div style="margin-top:5px;">-->
104
+          <!--<el-input style="width:50%;" v-model="input" placeholder=""></el-input>-->
105
+          <!--<el-select style="float: right;width: 49%;" v-model="value" placeholder="">-->
106
+          <!--<el-option-->
107
+          <!--v-for="item in options"-->
108
+          <!--:key="item.value"-->
109
+          <!--:label="item.label"-->
110
+          <!--:value="item.value">-->
111
+          <!--</el-option>-->
112
+          <!--</el-select>-->
113
+          <!--</div>-->
103
           <div style="height:84%;overflow-y: auto;margin-bottom: 60px;" v-show="showOne">
114
           <div style="height:84%;overflow-y: auto;margin-bottom: 60px;" v-show="showOne">
104
             <el-tabs class="rightTabs" v-model="activeName">
115
             <el-tabs class="rightTabs" v-model="activeName">
105
               <el-tab-pane label="药品列表" name="1">
116
               <el-tab-pane label="药品列表" name="1">
106
-                <el-table :data="drugs" border @select='selectDrugs' style="width: 100%;"
117
+                <el-table ref="multipleTable" :data="drugs" border @select='selectDrugs' style="width: 100%;"
107
                           :row-style="{ color: '#303133' }"
118
                           :row-style="{ color: '#303133' }"
119
+                          @select-all="changeAllGoodInfoTableData"
108
                           :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
120
                           :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
109
                           highlight-current-row>
121
                           highlight-current-row>
110
                   <el-table-column align="center" type="selection" width="40"></el-table-column>
122
                   <el-table-column align="center" type="selection" width="40"></el-table-column>
121
 
133
 
122
               </el-tab-pane>
134
               </el-tab-pane>
123
               <el-tab-pane label="医嘱模板" name="2">
135
               <el-tab-pane label="医嘱模板" name="2">
124
-                <el-table :data="advices_template" border style="width: 100%;" :row-style="{ color: '#303133' }"
136
+                <el-table ref="multipleTableTwo" :data="advices_template" border style="width: 100%;"
137
+                          :row-style="{ color: '#303133' }"
125
                           :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
138
                           :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
126
                           highlight-current-row>
139
                           highlight-current-row>
127
                   <el-table-column align="center" type="selection" width="40"></el-table-column>
140
                   <el-table-column align="center" type="selection" width="40"></el-table-column>
142
             </el-tabs>
155
             </el-tabs>
143
           </div>
156
           </div>
144
 
157
 
145
-         <div style="height:84%;overflow-y: auto;margin-bottom: 60px;" v-show="showTwo">
158
+          <div style="height:84%;overflow-y: auto;margin-bottom: 60px;" v-show="showTwo">
146
             <el-tabs class="rightTabs" v-model="activeName">
159
             <el-tabs class="rightTabs" v-model="activeName">
147
               <el-tab-pane label="项目列表" name="1">
160
               <el-tab-pane label="项目列表" name="1">
148
-                 <el-table :data="tabProject" border @select='selectChange' style="width: 100%;"
161
+                <el-table ref="tables" :data="tabProject" border @select='selectChange' style="width: 100%;"
149
                           :row-style="{ color: '#303133' }"
162
                           :row-style="{ color: '#303133' }"
163
+                          @select-all="changeAllGoodInfoTableDataTwo"
150
                           :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
164
                           :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
151
-                          highlight-current-row >
165
+                          highlight-current-row>
152
                   <el-table-column align="center" type="selection" width="40"></el-table-column>
166
                   <el-table-column align="center" type="selection" width="40"></el-table-column>
153
                   <el-table-column align="center" prop="name" label="名称">
167
                   <el-table-column align="center" prop="name" label="名称">
154
                     <template slot-scope="scope">{{ scope.row.project_name }}</template>
168
                     <template slot-scope="scope">{{ scope.row.project_name }}</template>
165
                 <el-table :data="tabPrjectTeam" border style="width: 100%;" :row-style="{ color: '#303133' }"
179
                 <el-table :data="tabPrjectTeam" border style="width: 100%;" :row-style="{ color: '#303133' }"
166
                           :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
180
                           :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
167
                           highlight-current-row
181
                           highlight-current-row
168
-                         @select='selectTeam'>
182
+                          @select='selectTeam'>
169
                   <el-table-column align="center" type="selection" width="40"></el-table-column>
183
                   <el-table-column align="center" type="selection" width="40"></el-table-column>
170
                   <el-table-column align="center" prop="name" label="名称">
184
                   <el-table-column align="center" prop="name" label="名称">
171
                     <template slot-scope="scope">{{scope.row.project_team}}</template>
185
                     <template slot-scope="scope">{{scope.row.project_team}}</template>
204
 
218
 
205
 
219
 
206
 <script>
220
 <script>
207
-  import { getPatientInfo, getSchedulePatientList, getInitData,createHisPrescription } from '@/api/his/his'
208
-  import { getDictionaryDataConfig} from "@/utils/data";
221
+  import {
222
+    createHisPrescription,
223
+    delHisPrescription,
224
+    getInitData,
225
+    getPatientInfo,
226
+    getSchedulePatientList
227
+  } from '@/api/his/his'
228
+  import { getDictionaryDataConfig } from '@/utils/data'
209
   import prescriptionTable from './prescriptionTable'
229
   import prescriptionTable from './prescriptionTable'
210
   import selectTemplate from './selectTemplate'
230
   import selectTemplate from './selectTemplate'
211
   import saveTemplate from './saveTemplate'
231
   import saveTemplate from './saveTemplate'
212
   import additionalCharges from './additionalCharges'
232
   import additionalCharges from './additionalCharges'
213
-  import { getHisProject,addProjectTeam,getAllProjectTeam,getPojectListById } from '@/api/project/project'
214
-  // import { getPatientInfo, getSchedulePatientList,createHisPrescription } from '@/api/his/his'
233
+  import { addProjectTeam, getAllProjectTeam, getHisProject, getPojectListById } from '@/api/project/project'
215
 
234
 
216
   export default {
235
   export default {
217
     props: {
236
     props: {
218
       patientInfo: Object,
237
       patientInfo: Object,
219
       hisPatientInfo: Object,
238
       hisPatientInfo: Object,
220
       prescriptions: Array,
239
       prescriptions: Array,
221
-      record_date:String,
240
+      record_date: String,
241
+      other_sick: {
242
+        type: Array,
243
+        default: []
244
+      },
245
+      diagnoses: {
246
+        type: Array,
247
+        default: []
248
+      }
222
     },
249
     },
223
     components: {
250
     components: {
224
       selectTemplate,
251
       selectTemplate,
228
     },
255
     },
229
     data() {
256
     data() {
230
       return {
257
       return {
231
-        value:"",
258
+        value: '',
232
         form: {
259
         form: {
233
           name: ''
260
           name: ''
234
         },
261
         },
235
-        drugs:[],
236
-        allDrugs:[],
237
-        advices_template:[],
262
+        drugs: [],
263
+        allDrugs: [],
264
+        advices_template: [],
238
 
265
 
239
         editableTabsValue: '处方1',
266
         editableTabsValue: '处方1',
240
         editableTabs: [{
267
         editableTabs: [{
242
           name: '1'
269
           name: '1'
243
         }],
270
         }],
244
         tabIndex: 1,
271
         tabIndex: 1,
245
-        currenet_inedx:0,
272
+        currenet_inedx: 0,
246
         rightTab: 1,
273
         rightTab: 1,
247
         activeName: '1',
274
         activeName: '1',
248
         curPrescriptions: this.prescriptions[0],
275
         curPrescriptions: this.prescriptions[0],
253
         doctorValue: '',
280
         doctorValue: '',
254
         departmentOptions: [],
281
         departmentOptions: [],
255
         departmentValue: '',
282
         departmentValue: '',
256
-        diagnoses: this.getDictionaryDataConfig('system','diagnose'),
257
-        other_sick:this.getDictionaryDataConfig('system','other_sick_history'),
258
         total: 0,
283
         total: 0,
259
-        state1:"",
260
-        state2:"",
261
-        customTabIndex:1,
262
-        options:[],
263
-        tabProject:[],
264
-        strids:"",
265
-        showOne:true,
266
-        showTwo:false,
267
-        tableData:[],
268
-        tabPrjectTeam:[],
269
-        teamList:[],
270
-        doctors:[],
271
-        departMent:[]
284
+        state1: '',
285
+        state2: '',
286
+        customTabIndex: 1,
287
+        options: [],
288
+        tabProject: [],
289
+        strids: '',
290
+        showOne: true,
291
+        showTwo: false,
292
+        tableData: [],
293
+        tabPrjectTeam: [],
294
+        teamList: [],
295
+        doctors: [],
296
+        departMent: [],
297
+        curStatus: 0
272
       }
298
       }
273
     },
299
     },
274
     methods: {
300
     methods: {
275
-      createFilter (queryString) {
301
+      getTotal() {
302
+        var total = 0
303
+        for (let i = 0; i < this.prescriptions.length; i++) {
304
+          if (this.prescriptions[i].advices != null) {
305
+            for (let a = 0; a < this.prescriptions[i].advices.length; a++) {
306
+              total = total + this.prescriptions[i].advices[a].price * this.prescriptions[i].advices[a].prescribing_number
307
+            }
308
+          }
309
+          if (this.prescriptions[i].project != null) {
310
+            for (let b = 0; b < this.prescriptions[i].project.length; b++) {
311
+              total = total + this.prescriptions[i].project[b].price * this.prescriptions[i].project[b].count
312
+            }
313
+          }
314
+        }
315
+        return total
316
+      },
317
+      createFilter(queryString) {
276
         return (restaurant) => {
318
         return (restaurant) => {
277
           return (restaurant.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0)
319
           return (restaurant.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0)
278
         }
320
         }
279
       },
321
       },
280
 
322
 
281
-      querySearch (queryString, cb) {
323
+      querySearch(queryString, cb) {
282
         var restaurants = this.diagnoses
324
         var restaurants = this.diagnoses
283
         console.log(restaurants)
325
         console.log(restaurants)
284
         restaurants.map(item => {
326
         restaurants.map(item => {
288
         // 调用 callback 返回建议列表的数据
330
         // 调用 callback 返回建议列表的数据
289
         cb(results)
331
         cb(results)
290
       },
332
       },
291
-      querySearch2 (queryString, cb) {
333
+
334
+      querySearch2(queryString, cb) {
292
         var restaurants = this.other_sick
335
         var restaurants = this.other_sick
293
         restaurants.map(item => {
336
         restaurants.map(item => {
294
           item.value = item.name
337
           item.value = item.name
297
         // 调用 callback 返回建议列表的数据
340
         // 调用 callback 返回建议列表的数据
298
         cb(results)
341
         cb(results)
299
       },
342
       },
300
-      changeKind(val){
343
+      changeKind(val) {
301
         this.drugs = []
344
         this.drugs = []
302
 
345
 
303
         if(val == 0){
346
         if(val == 0){
311
         }
354
         }
312
       },
355
       },
313
       getDictionaryDataConfig(module, filed_name) {
356
       getDictionaryDataConfig(module, filed_name) {
314
-        console.log(getDictionaryDataConfig(module, filed_name))
315
         return getDictionaryDataConfig(module, filed_name)
357
         return getDictionaryDataConfig(module, filed_name)
316
 
358
 
317
       },
359
       },
318
-      getInitData(){
360
+      getInitData() {
319
         getInitData().then(response => {
361
         getInitData().then(response => {
320
           if (response.data.state == 0) {
362
           if (response.data.state == 0) {
321
             this.$message.error(response.data.msg)
363
             this.$message.error(response.data.msg)
325
             this.allDrugs = response.data.data.drugs
367
             this.allDrugs = response.data.data.drugs
326
             this.advices_template = response.data.data.advices_template
368
             this.advices_template = response.data.data.advices_template
327
             this.doctors = response.data.data.doctors
369
             this.doctors = response.data.data.doctors
328
-            this.departMent =  response.data.data.department
329
-           
370
+            this.departMent = response.data.data.department
371
+
330
           }
372
           }
331
         })
373
         })
332
 
374
 
333
       },
375
       },
334
-      tabclickEvent(val){
335
-        for (let i= 0; i<this.prescriptions.length; i++){
376
+      tabclickEvent(val) {
377
+        for (let i = 0; i < this.prescriptions.length; i++) {
336
           console.log(this.prescriptions[i].name)
378
           console.log(this.prescriptions[i].name)
337
-            if(this.prescriptions[i].name == val.name){
338
-              this.curPrescriptions = this.prescriptions[i]
339
-
340
-              //用来区分处方属于项目还是药品
341
-              if(this.curPrescriptions.advices.length > 0 && this.curPrescriptions.project.length == 0){
342
-                this.customTabIndex = 1
343
-              }
344
-              if(this.curPrescriptions.advices.length == 0 && this.curPrescriptions.project.length > 0){
379
+          if (this.prescriptions[i].name == val.name) {
380
+            this.curPrescriptions = this.prescriptions[i]
345
 
381
 
346
-                this.customTabIndex = 2
347
-              }
382
+            //用来区分处方属于项目还是药品
383
+            if (this.curPrescriptions.advices.length > 0 && this.curPrescriptions.project.length == 0) {
384
+              this.customTabIndex = 1
385
+              this.curStatus = 1
386
+            }
387
+            if (this.curPrescriptions.advices.length == 0 && this.curPrescriptions.project.length > 0) {
348
 
388
 
349
-              if(this.curPrescriptions.advices.length == 0 && this.curPrescriptions.project.length == 0){
350
-                this.customTabIndex = this.rightTab
351
-              }
389
+              this.customTabIndex = 2
390
+              this.curStatus = 2
391
+            }
352
 
392
 
393
+            if (this.curPrescriptions.advices.length == 0 && this.curPrescriptions.project.length == 0) {
394
+              this.customTabIndex = this.rightTab
353
             }
395
             }
354
 
396
 
397
+          }
355
 
398
 
356
         }
399
         }
400
+      }, clearData() {
401
+
402
+        this.curPrescriptions = []
357
       },
403
       },
358
-      setData(data){
404
+      setData(data) {
359
         this.prescriptions = data
405
         this.prescriptions = data
360
         console.log(this.$refs)
406
         console.log(this.$refs)
361
         this.$nextTick(() => {
407
         this.$nextTick(() => {
362
-         this.$refs.prescription_tables.setNewData(this.prescriptions[0])
363
-        });
408
+          this.$refs.prescription_tables.setNewData(this.prescriptions[0])
409
+        })
364
       },
410
       },
365
       moreState(tab, event) {
411
       moreState(tab, event) {
366
         if (tab == 'more') {
412
         if (tab == 'more') {
369
       },
415
       },
370
       open(index) {
416
       open(index) {
371
         if (index == 1) {
417
         if (index == 1) {
372
-          let params ={
418
+          let params = {
373
             patient_id: this.patientInfo.id,
419
             patient_id: this.patientInfo.id,
374
             diagnose: this.state1,
420
             diagnose: this.state1,
375
             sick_history: this.state2,
421
             sick_history: this.state2,
378
             record_date: this.record_date,
424
             record_date: this.record_date,
379
             his_patient_id: this.hisPatientInfo.id
425
             his_patient_id: this.hisPatientInfo.id
380
           }
426
           }
381
-         
382
-          for (let i = 0; i < this.prescriptions.length; i++){
383
-            if(this.prescriptions[i].advices.length > 0 && this.prescriptions[i].project.length == 0){
427
+
428
+          for (let i = 0; i < this.prescriptions.length; i++) {
429
+            if (this.prescriptions[i].advices.length > 0 && this.prescriptions[i].project.length == 0) {
384
               this.prescriptions[i]['type'] = 1
430
               this.prescriptions[i]['type'] = 1
385
             }
431
             }
386
-            if(this.prescriptions[i].advices.length == 0 && this.prescriptions[i].project.length > 0){
432
+            if (this.prescriptions[i].advices.length == 0 && this.prescriptions[i].project.length > 0) {
387
               this.prescriptions[i]['type'] = 2
433
               this.prescriptions[i]['type'] = 2
388
             }
434
             }
389
-            for (let b = 0; b < this.prescriptions[i].advices.length; b++){
435
+            for (let b = 0; b < this.prescriptions[i].advices.length; b++) {
390
               this.prescriptions[i].advices[b].single_dose = this.prescriptions[i].advices[b].single_dose.toString()
436
               this.prescriptions[i].advices[b].single_dose = this.prescriptions[i].advices[b].single_dose.toString()
391
               this.prescriptions[i].advices[b].prescribing_number = this.prescriptions[i].advices[b].prescribing_number.toString()
437
               this.prescriptions[i].advices[b].prescribing_number = this.prescriptions[i].advices[b].prescribing_number.toString()
392
               this.prescriptions[i].advices[b].retail_price = this.prescriptions[i].advices[b].retail_price.toString()
438
               this.prescriptions[i].advices[b].retail_price = this.prescriptions[i].advices[b].retail_price.toString()
393
 
439
 
394
             }
440
             }
395
           }
441
           }
396
-          let data={
397
-            "prescriptions":this.prescriptions
442
+          let data = {
443
+            'prescriptions': this.prescriptions
398
           }
444
           }
399
-           console.log("data",data)
400
-           console.log("params",params)
401
-          createHisPrescription(data,params).then(response=>{
402
-            if(response.data.state == 1){
445
+          createHisPrescription(data, params).then(response => {
446
+            if (response.data.state == 1) {
403
               this.prescriptions = []
447
               this.prescriptions = []
404
-              this.$message.success("保存成功")
448
+              this.$message.success('保存成功')
405
             }
449
             }
406
           })
450
           })
407
-          localStorage.setItem('drugs', JSON.stringify(this.preDrugs))
408
-          // this.$message({ message: '保存成功', type: 'success' })
409
         } else if (index == 2) {
451
         } else if (index == 2) {
410
           this.$router.push('/outpatientDoctorStation/print')
452
           this.$router.push('/outpatientDoctorStation/print')
411
         } else if (index == 4) {
453
         } else if (index == 4) {
419
         ++this.tabIndex
461
         ++this.tabIndex
420
         let newTabName = '处方' + this.tabIndex
462
         let newTabName = '处方' + this.tabIndex
421
         this.prescriptions.push({
463
         this.prescriptions.push({
464
+          id: 0,
422
           name: newTabName,
465
           name: newTabName,
423
           advices: [],
466
           advices: [],
424
-          project:[],
425
-          projects:[]
467
+          project: []
426
 
468
 
427
         })
469
         })
428
         this.editableTabsValue = newTabName
470
         this.editableTabsValue = newTabName
429
-        this.curPrescriptions = this.prescriptions[this.prescriptions.length-1]
471
+        this.curPrescriptions = this.prescriptions[this.prescriptions.length - 1]
472
+        this.curStatus = 0
430
       },
473
       },
431
       removeTab(targetName) {
474
       removeTab(targetName) {
475
+        let id = 0
476
+        for (let i = 0; i < this.prescriptions.length; i++) {
477
+          if (this.prescriptions[i].name == targetName) {
478
+            id = this.prescriptions[i].id
479
+          }
480
+        }
481
+
482
+        if (id == 0) {
483
+          let tabs = this.prescriptions
484
+          let activeName = this.editableTabsValue
485
+          if (activeName === targetName) {
486
+            tabs.forEach((tab, index) => {
487
+              if (tab.name === targetName) {
488
+                let nextTab = tabs[index + 1] || tabs[index - 1]
489
+                if (nextTab) {
490
+                  activeName = nextTab.name
491
+
492
+                }
493
+              }
494
+            })
495
+          }
496
+          this.editableTabsValue = activeName
497
+          this.prescriptions = tabs.filter(tab => tab.name !== targetName)
432
 
498
 
433
-        let tabs = this.prescriptions
434
-        let activeName = this.editableTabsValue
435
-        if (activeName === targetName) {
436
-          tabs.forEach((tab, index) => {
437
-            if (tab.name === targetName) {
438
-              let nextTab = tabs[index + 1] || tabs[index - 1]
439
-              if (nextTab) {
440
-                activeName = nextTab.name
499
+          for (let i = 0; i < this.prescriptions.length; i++) {
500
+            if (activeName == this.prescriptions[i].name) {
501
+              this.curPrescriptions = this.prescriptions[i]
502
+              if(this.curPrescriptions.advices.length > 0 && this.curPrescriptions.project.length == 0){
503
+                this.curStatus = 1
441
               }
504
               }
505
+              if(this.curPrescriptions.advices.length == 0 && this.curPrescriptions.project.length > 0){
506
+                this.curStatus = 2
507
+              }
508
+            }
509
+          }
510
+          if (this.prescriptions.length == 0) {
511
+            this.curPrescriptions = []
512
+            this.curStatus = 0
513
+          }
514
+        } else {
515
+          let params = {
516
+            'id': id
517
+          }
518
+          delHisPrescription(params).then(response => {
519
+            if (response.data.state == 1) {
520
+              this.$message.success('删除成功')
521
+            } else {
522
+              this.$message.success(response.data.msg)
442
             }
523
             }
443
           })
524
           })
444
         }
525
         }
445
-
446
-        this.editableTabsValue = activeName
447
-        this.prescriptions = tabs.filter(tab => tab.name !== targetName)
448
-        console.log(this.prescriptions)
449
       },
526
       },
450
       clickTab(index) {
527
       clickTab(index) {
451
-        if(index == 1){
528
+        if (index == 1) {
452
           this.showOne = true
529
           this.showOne = true
453
           this.showTwo = false
530
           this.showTwo = false
454
           this.$nextTick(() => {
531
           this.$nextTick(() => {
455
-            this.$refs.prescription_tables.setNewData(this.prescriptions[this.prescriptions.length-1])
456
-          });
457
-         this.customTabIndex = 1
532
+            this.$refs.prescription_tables.setNewData(this.prescriptions[this.prescriptions.length - 1])
533
+          })
534
+          this.customTabIndex = 1
458
         }
535
         }
459
-        if(index == 2){
536
+        if (index == 2) {
460
           this.showTwo = true
537
           this.showTwo = true
461
           this.showOne = false
538
           this.showOne = false
462
-           this.$nextTick(() => {
463
-            this.$refs.prescription_tables.setNewData(this.prescriptions[this.prescriptions.length-1])
464
-          });
465
-         this.customTabIndex = 2
539
+          this.$nextTick(() => {
540
+            this.$refs.prescription_tables.setNewData(this.prescriptions[this.prescriptions.length - 1])
541
+          })
542
+          this.customTabIndex = 2
466
         }
543
         }
467
         this.rightTab = index
544
         this.rightTab = index
468
 
545
 
469
-
470
         //用来区分处方属于项目还是药品
546
         //用来区分处方属于项目还是药品
471
-        if(this.curPrescriptions.advices.length > 0 && this.curPrescriptions.project.length == 0){
547
+        if (this.curPrescriptions.advices.length > 0 && this.curPrescriptions.project.length == 0) {
472
 
548
 
473
           this.customTabIndex = 1
549
           this.customTabIndex = 1
474
         }
550
         }
475
-        if(this.curPrescriptions.advices.length == 0 && this.curPrescriptions.project.length > 0){
551
+        if (this.curPrescriptions.advices.length == 0 && this.curPrescriptions.project.length > 0) {
476
 
552
 
477
           this.customTabIndex = 2
553
           this.customTabIndex = 2
478
         }
554
         }
479
-        if(this.curPrescriptions.advices.length == 0 && this.curPrescriptions.project.length == 0){
555
+        if (this.curPrescriptions.advices.length == 0 && this.curPrescriptions.project.length == 0) {
480
           // this.customTabIndex = this.rightTab
556
           // this.customTabIndex = this.rightTab
481
           this.customTabIndex = index
557
           this.customTabIndex = index
482
         }
558
         }
483
-
484
-
485
-
486
-
487
-      },
488
-      addCharges() {
559
+      }, changeAllGoodInfoTableData: function(selection) {
560
+        this.curDrugs = selection
561
+      }, addCharges() {
489
         this.$refs.additionalCharges.show()
562
         this.$refs.additionalCharges.show()
490
       },
563
       },
491
       selectDrugs(selection, row) {
564
       selectDrugs(selection, row) {
492
         this.curDrugs = selection
565
         this.curDrugs = selection
493
       },
566
       },
494
       comfirm() {
567
       comfirm() {
495
-        this.preDrugs = this.curDrugs
568
+        console.log(this.curStatus)
569
+        console.log(this.rightTab)
570
+        console.log(this.curPrescriptions)
571
+
572
+
573
+        if (this.curStatus == 1  && this.rightTab == 2) {
574
+          this.$message.error('改处方是药品,无法添加项目')
575
+          this.teamList = []
576
+          this.$refs.tables.clearSelection()
577
+          return
578
+        }
579
+
580
+        if (this.curStatus ==2 && this.rightTab == 1) {
581
+          this.$message.error('改处方是项目,无法添加药品')
582
+          this.curDrugs = []
583
+          this.$refs.multipleTable.clearSelection()
584
+          return
585
+        }
496
 
586
 
497
-        for (let i = 0; i < this.prescriptions.length; i++){
498
-          console.log("名称",this.prescriptions[i].name)
499
-          console.log("名称2",this.editableTabsValue)
500
-          if(this.prescriptions[i].name == this.editableTabsValue){
501
-           var temp =  this.deepClone(this.preDrugs)
502
-            var temp2 =  this.deepClone(this.teamList)
587
+        for (let i = 0; i < this.prescriptions.length; i++) {
588
+          if (this.prescriptions[i].name == this.editableTabsValue) {
589
+            var temp = this.deepClone(this.curDrugs)
590
+            var temp2 = this.deepClone(this.teamList)
591
+
592
+            if (temp.length > 0) {
593
+              for (let b = 0; b < temp.length; b++) {
594
+                let obj = {
595
+                  advice_id: 0,
596
+                  drug_name: temp[b].drug_name,
597
+                  single_dose: temp[b].single_dose,
598
+                  delivery_way: temp[b].delivery_way,
599
+                  execution_frequency: temp[b].execution_frequency,
600
+                  retail_price: temp[b].retail_price.toString(),
601
+                  remark: '',
602
+                  prescribing_number: temp[b].prescribing_number,
603
+                  single_dose_unit: temp[b].min_unit,
604
+                  prescribing_number_unit: temp[b].min_unit,
605
+                  min_unit: temp[b].min_unit
606
+
607
+                }
608
+                this.prescriptions[i].advices.push(obj)
609
+              }
610
+              this.curStatus = 1
611
+            }
503
 
612
 
504
-            this.prescriptions[i].advices = temp
505
-            this.prescriptions[i].project = temp2
613
+            if (temp2.length > 0) {
614
+              for (let b = 0; b < temp2.length; b++) {
615
+                this.prescriptions[i].project.push(temp2[b])
616
+              }
617
+              this.curStatus = 2
618
+            }
506
             this.curPrescriptions = this.prescriptions[i]
619
             this.curPrescriptions = this.prescriptions[i]
507
-            // this.$refs.prescription_tables.setNewData(this.prescriptions[i])
620
+            this.$refs.multipleTable.clearSelection()
621
+            this.$refs.tables.clearSelection()
622
+
508
           }
623
           }
509
         }
624
         }
510
-        console.log("222222",this.prescriptions)
625
+        this.curDrugs = []
626
+        this.preDrugs = []
627
+        this.teamList = []
628
+
629
+      }, changeAllGoodInfoTableDataTwo(row) {
630
+        this.teamList = row
511
       },
631
       },
512
-      selectChange(row){
632
+      selectChange(row) {
513
         this.teamList = row
633
         this.teamList = row
514
       },
634
       },
515
-      getlist(){
516
-        getHisProject().then(response=>{
517
-          if(response.data.state == 1){
635
+      getlist() {
636
+        getHisProject().then(response => {
637
+          if (response.data.state == 1) {
518
             var project = response.data.data.project
638
             var project = response.data.data.project
519
-            console.log("project",project)
639
+            console.log('project', project)
520
             this.tabProject = project
640
             this.tabProject = project
521
           }
641
           }
522
         })
642
         })
523
-      },
524
-      querySearch(){
525
-
526
-      },deepClone(source) {
643
+      }, deepClone(source) {
527
         if (!source && typeof source !== 'object') {
644
         if (!source && typeof source !== 'object') {
528
           throw new Error('error arguments', 'shallowClone')
645
           throw new Error('error arguments', 'shallowClone')
529
         }
646
         }
537
         })
654
         })
538
         return targetObj
655
         return targetObj
539
       },
656
       },
540
-      getAllProjectTeam(){
541
-        getAllProjectTeam().then(response=>{
542
-          if(response.data.state == 1){
543
-            var team =  response.data.data.team
544
-            console.log("team",team)
657
+      getAllProjectTeam() {
658
+        getAllProjectTeam().then(response => {
659
+          if (response.data.state == 1) {
660
+            var team = response.data.data.team
661
+            console.log('team', team)
545
             this.tabPrjectTeam = team
662
             this.tabPrjectTeam = team
546
           }
663
           }
547
         })
664
         })
548
       },
665
       },
549
-      selectTeam(row){
550
-          var arr = []
551
-          for(let i=0;i<row.length;i++){
552
-             arr.push(row[i].project_id)
553
-          }
554
-        var ids =  arr.join(",")
555
-        console.log("ids",ids)
556
-        var strArr = ids.split(",")
557
-        var res = [];//接收不重复的数据
558
-
559
-        for (var i = 0; i<strArr.length; i++){
560
-        var flag = true;
561
-
562
-        for (var j = 0; j<i; j++){
563
-          if(strArr[i]===strArr[j]){
564
-            flag = false;
565
-            break;
566
-           }
567
-         }
568
-        if(flag){
569
-          res.push(strArr[i])
570
-         }
666
+      selectTeam(row) {
667
+        var arr = []
668
+        for (let i = 0; i < row.length; i++) {
669
+          arr.push(row[i].project_id)
571
         }
670
         }
572
-        console.log("res",res)
671
+        var ids = arr.join(',')
672
+        var strArr = ids.split(',')
673
+        var res = []//接收不重复的数据
674
+
675
+        for (var i = 0; i < strArr.length; i++) {
676
+          var flag = true
573
 
677
 
574
-        var idstr =  res.join(",")
575
-        console.log("idstr",idstr)
678
+          for (var j = 0; j < i; j++) {
679
+            if (strArr[i] === strArr[j]) {
680
+              flag = false
681
+              break
682
+            }
683
+          }
684
+          if (flag) {
685
+            res.push(strArr[i])
686
+          }
687
+        }
688
+        var idstr = res.join(',')
576
         const params = {
689
         const params = {
577
-           project_id:idstr
690
+          project_id: idstr
578
         }
691
         }
579
-        getPojectListById(params).then(response=>{
580
-           if(response.data.state == 1){
581
-             var project =  response.data.data.project
582
-             console.log("project222",project)
583
-             this.teamList = []
584
-             this.teamList = project
585
-           }
692
+        getPojectListById(params).then(response => {
693
+          if (response.data.state == 1) {
694
+            var project = response.data.data.project
695
+            console.log('project222', project)
696
+            this.teamList = []
697
+            this.teamList = project
698
+          }
586
         })
699
         })
587
       }
700
       }
588
     },
701
     },
589
-    created(){
702
+    created() {
590
       this.getInitData()
703
       this.getInitData()
591
       //获取所有项目
704
       //获取所有项目
592
       this.getlist()
705
       this.getlist()
593
       //获取所以项目组套
706
       //获取所以项目组套
594
       this.getAllProjectTeam()
707
       this.getAllProjectTeam()
595
 
708
 
596
-
597
     }
709
     }
598
   }
710
   }
599
 </script>
711
 </script>

+ 18 - 29
src/xt_pages/outpatientDoctorStation/components/deskRecord.vue 查看文件

36
       <el-form-item label="联系电话: " prop="name">
36
       <el-form-item label="联系电话: " prop="name">
37
         <el-input v-model="patientInfo.phone" placeholder="" readonly></el-input>
37
         <el-input v-model="patientInfo.phone" placeholder="" readonly></el-input>
38
       </el-form-item>
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
       </el-form-item>
51
       </el-form-item>
43
       <el-form-item label="家庭住址: " prop="name">
52
       <el-form-item label="家庭住址: " prop="name">
44
         <el-input v-model="patientInfo.home_address" placeholder="" readonly></el-input>
53
         <el-input v-model="patientInfo.home_address" placeholder="" readonly></el-input>
50
         <el-input v-model="case_history.temperature" placeholder=""></el-input>
59
         <el-input v-model="case_history.temperature" placeholder=""></el-input>
51
         <span>℃</span>
60
         <span>℃</span>
52
       </el-form-item>
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
       <el-form-item label="脉搏: " prop="name">
62
       <el-form-item label="脉搏: " prop="name">
58
         <el-input v-model="case_history.pulse" placeholder=""></el-input>
63
         <el-input v-model="case_history.pulse" placeholder=""></el-input>
59
         (次/分)
64
         (次/分)
60
       </el-form-item>
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
       <el-form-item label="血压:" prop="name">
70
       <el-form-item label="血压:" prop="name">
62
         <el-input v-model="case_history.sbp" placeholder=""></el-input>
71
         <el-input v-model="case_history.sbp" placeholder=""></el-input>
63
         /
72
         /
64
         <el-input v-model="case_history.dbp" placeholder=""></el-input>
73
         <el-input v-model="case_history.dbp" placeholder=""></el-input>
65
         mmHg
74
         mmHg
66
       </el-form-item>
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
     </el-form>
76
     </el-form>
76
     <div class="mainTitle">病历信息:</div>
77
     <div class="mainTitle">病历信息:</div>
77
     <el-form class="recordForm" :model="case_history" :rules="rules" ref="form" label-width="80px">
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
       <el-form-item label="发病日期: " prop="name">
79
       <el-form-item label="发病日期: " prop="name">
92
         <el-date-picker
80
         <el-date-picker
93
           style="width:100%;"
81
           style="width:100%;"
249
             }
237
             }
250
           })
238
           })
251
         } else if (index == 2) {
239
         } else if (index == 2) {
252
-
240
+          this.$router.push('/outpatientDoctorStation/recordPrint')
253
         } else if (index == 3) {
241
         } else if (index == 3) {
254
           this.$refs.medicalRecord.show()
242
           this.$refs.medicalRecord.show()
255
         } else if (index == 4) {
243
         } else if (index == 4) {
267
     font-size: 18px;
255
     font-size: 18px;
268
     font-weight: bold;
256
     font-weight: bold;
269
     margin-bottom: 10px;
257
     margin-bottom: 10px;
258
+    color:#409EFF;
270
   }
259
   }
271
 
260
 
272
   .backColor {
261
   .backColor {

+ 13 - 7
src/xt_pages/outpatientDoctorStation/components/medicalRecord.vue 查看文件

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

+ 115 - 38
src/xt_pages/outpatientDoctorStation/components/prescriptionTable.vue 查看文件

1
 <template>
1
 <template>
2
   <div class="prescriptionTable">
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
               :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
4
               :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
5
       <el-table-column align="center" prop="name" label="名称">
5
       <el-table-column align="center" prop="name" label="名称">
6
         <template slot-scope="scope">{{ scope.row.drug_name }}</template>
6
         <template slot-scope="scope">{{ scope.row.drug_name }}</template>
16
         <template slot-scope="scope">
16
         <template slot-scope="scope">
17
           <el-select v-model="scope.row.delivery_way" placeholder="请选择">
17
           <el-select v-model="scope.row.delivery_way" placeholder="请选择">
18
             <el-option
18
             <el-option
19
-              v-for="item,index in drugways"
19
+              v-for="(item,index) in drugways"
20
               :key="index"
20
               :key="index"
21
               :label="item.name"
21
               :label="item.name"
22
               :value="item.name">
22
               :value="item.name">
26
       </el-table-column>
26
       </el-table-column>
27
       <el-table-column align="center" prop="name" width="50" label="频率">
27
       <el-table-column align="center" prop="name" width="50" label="频率">
28
         <template slot-scope="scope">
28
         <template slot-scope="scope">
29
-          <el-select v-model="scope.row.execution_frequency" placeholder="请选择">
29
+          <el-select v-model="scope.row.execution_frequency" placehold er="请选择">
30
             <el-option
30
             <el-option
31
-              v-for="item in efs"
31
+              v-for="item,index in efs"
32
               :key="index"
32
               :key="index"
33
               :label="item.name"
33
               :label="item.name"
34
               :value="item.name">
34
               :value="item.name">
57
       </el-table-column>
57
       </el-table-column>
58
       <el-table-column align="center" width="40" prop="name" label="操作">
58
       <el-table-column align="center" width="40" prop="name" label="操作">
59
         <template slot-scope="scope">
59
         <template slot-scope="scope">
60
-          <i class="el-icon-delete" @click="deleteDrug(scope.row)"></i>
60
+          <i class="el-icon-delete" @click="deleteDrug(scope.$index, scope.row)"></i>
61
         </template>
61
         </template>
62
       </el-table-column>
62
       </el-table-column>
63
     </el-table>
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
               :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
66
               :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
67
       <el-table-column align="center" type="selection" width="40"></el-table-column>
67
       <el-table-column align="center" type="selection" width="40"></el-table-column>
68
       <el-table-column align="center" type="index" width="40" label="序号">
68
       <el-table-column align="center" type="index" width="40" label="序号">
70
             {{scope.$index + 1}}
70
             {{scope.$index + 1}}
71
          </template>
71
          </template>
72
       </el-table-column>
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
         <template slot-scope="scope">{{ scope.row.project_name }}</template>
74
         <template slot-scope="scope">{{ scope.row.project_name }}</template>
75
       </el-table-column>
75
       </el-table-column>
76
       <el-table-column align="center" prop="statistical_classification" width="50" label="组">
76
       <el-table-column align="center" prop="statistical_classification" width="50" label="组">
78
           {{getGroup(scope.row.statistical_classification)}}
78
           {{getGroup(scope.row.statistical_classification)}}
79
         </template>
79
         </template>
80
       </el-table-column>
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
         <template slot-scope="scope">
82
         <template slot-scope="scope">
83
           <el-input v-model="scope.row.single_dose" placeholder=""></el-input>
83
           <el-input v-model="scope.row.single_dose" placeholder=""></el-input>
84
         </template>
84
         </template>
85
       </el-table-column>
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
         <template slot-scope="scope">
87
         <template slot-scope="scope">
88
           <el-input v-model="scope.row.delivery_way" placeholder=""></el-input>
88
           <el-input v-model="scope.row.delivery_way" placeholder=""></el-input>
89
         </template>
89
         </template>
90
       </el-table-column>
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
         <template slot-scope="scope">
92
         <template slot-scope="scope">
93
           <el-input v-model="scope.row.execution_frequency" placeholder=""></el-input>
93
           <el-input v-model="scope.row.execution_frequency" placeholder=""></el-input>
94
         </template>
94
         </template>
95
       </el-table-column>
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
         <template slot-scope="scope">
97
         <template slot-scope="scope">
98
           <el-input v-model="scope.row.number_days" placeholder=""></el-input>
98
           <el-input v-model="scope.row.number_days" placeholder=""></el-input>
99
         </template>
99
         </template>
100
       </el-table-column>
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
         <template slot-scope="scope">
102
         <template slot-scope="scope">
103
           <div style="display:flex;">
103
           <div style="display:flex;">
104
             <el-input v-model="scope.row.total" style="width:50" placeholder=""></el-input>
104
             <el-input v-model="scope.row.total" style="width:50" placeholder=""></el-input>
110
           <el-input v-model="scope.row.price" placeholder=""></el-input>
110
           <el-input v-model="scope.row.price" placeholder=""></el-input>
111
         </template>
111
         </template>
112
       </el-table-column>
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
         <template slot-scope="scope">
114
         <template slot-scope="scope">
115
            <el-input v-model="scope.row.remark"></el-input>
115
            <el-input v-model="scope.row.remark"></el-input>
116
         </template>
116
         </template>
122
       </el-table-column>
122
       </el-table-column>
123
     </el-table>
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
 
130
 
140
 
131
 <script>
141
 <script>
132
   import { getDictionaryDataConfig} from "@/utils/data";
142
   import { getDictionaryDataConfig} from "@/utils/data";
133
-  import { getInitData } from '@/api/his/his'
143
+  import { getInitData,delHisAdvice,delHisProject } from '@/api/his/his'
134
 
144
 
135
   export default {
145
   export default {
136
     props: {
146
     props: {
185
           }
195
           }
186
         })
196
         })
187
 
197
 
188
-      },deleteDrug:function(row){
189
-        for (let i = 0; i < this.prescription.advices.length; i++){
190
-          if(this.prescription.advices[i].id == row.id){
191
-              this.prescription.advices.splice(i, 1)
198
+      },deleteDrug:function(index, row){
199
+        console.log(row)
200
+       console.log(index)
201
+
202
+       if(row.advice_id == 0){
203
+          this.prescription.advices.splice(index, 1)
204
+        }else{
205
+          let params = {
206
+            'id': row.advice_id,
192
           }
207
           }
208
+          delHisAdvice(params).then(response => {
209
+            if (response.data.state == 0) {
210
+              this.$message.error(response.data.msg)
211
+              return false
212
+            } else {
213
+              var temp2 = this.deepClone(this.prescription.advices)
214
+              temp2.splice(index, 1)
215
+              this.prescription.advices = temp2
216
+              this.$message.success(response.data.data.msg)
217
+            }
218
+          })
219
+
220
+
193
         }
221
         }
194
-      },
195
-    
222
+
223
+      },deepClone(source) {
224
+       if (!source && typeof source !== 'object') {
225
+         throw new Error('error arguments', 'shallowClone')
226
+       }
227
+       const targetObj = source.constructor === Array ? [] : {}
228
+       Object.keys(source).forEach((keys) => {
229
+         if (source[keys] && typeof source[keys] === 'object') {
230
+           targetObj[keys] = this.deepClone(source[keys])
231
+         } else {
232
+           targetObj[keys] = source[keys]
233
+         }
234
+       })
235
+       return targetObj
236
+     },
237
+
196
       setNewData:function(data){
238
       setNewData:function(data){
239
+        this.prescription = data
197
 
240
 
198
         // this.prescription.advices = data.advices
241
         // this.prescription.advices = data.advices
199
       },
242
       },
212
          return name
255
          return name
213
       },
256
       },
214
       deleteProject(row){
257
       deleteProject(row){
215
-       
216
-        for (let i = 0; i < this.prescription.project.length; i++){
217
-          if(this.prescription.project[i].id == row.id){
218
-              this.prescription.project.splice(i, 1)
258
+        if(row.id == 0){
259
+          this.prescription.project.splice(i, 1)
260
+
261
+        }else{
262
+          let params = {
263
+            'id': row.id,
219
           }
264
           }
265
+          delHisProject(params).then(response => {
266
+            if (response.data.state == 0) {
267
+              this.$message.error(response.data.msg)
268
+              return false
269
+            } else {
270
+              for (let i = 0; i < this.prescription.project.length; i++){
271
+                if(this.prescription.project[i].id == row.id){
272
+                  this.prescription.project.splice(i, 1)
273
+                }
274
+              }
275
+              this.$message.error(response.data.data.msg)
276
+            }
277
+          })
278
+
279
+
220
         }
280
         }
281
+
221
       },
282
       },
222
     },mounted(){
283
     },mounted(){
223
       this.getInitData()
284
       this.getInitData()
224
     },
285
     },
225
-    watch:{
226
-      prescription:function(){
227
-        console.log("8888888",this)
228
-        console.log("9999999",this.prescription)
229
-      }
230
-    }
231
   }
286
   }
232
 </script>
287
 </script>
233
 
288
 
234
 <style lang="scss">
289
 <style lang="scss">
235
   .prescriptionTable {
290
   .prescriptionTable {
291
+    .additionalBox{
292
+      margin-top: 20px;
293
+      display: flex;
294
+      flex-wrap: wrap;
295
+      .additionalOne{
296
+        margin-right:20px;
297
+        margin-bottom:10px;
298
+        display: flex;
299
+        align-items: center;
300
+        >span{
301
+          white-space: nowrap;
302
+          overflow: hidden;
303
+          text-overflow: ellipsis;
304
+          width:60px;
305
+          display: inline-block;
306
+          font-size: 14px;
307
+        }
308
+      }
309
+      .deleteIcon{
310
+        color:red;
311
+        margin-left:5px;
312
+      }
313
+    }
314
+    .el-table th .cell, .el-table td .cell {
315
+      padding: 0 2px;
316
+      white-space: pre-line;
317
+    }
236
 
318
 
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
-  }
319
+    .el-icon-delete {
320
+      color: red;
321
+    }
245
 
322
 
246
   }
323
   }
247
 </style>
324
 </style>

+ 1 - 29
src/xt_pages/outpatientDoctorStation/components/recordTemplateDetail.vue 查看文件

8
         append-to-body
8
         append-to-body
9
     >
9
     >
10
         <el-form class="recordForm" :model="form" :rules="rules" ref="form" label-width="80px">
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
                 <el-input v-model="form.name" placeholder=""></el-input>
12
                 <el-input v-model="form.name" placeholder=""></el-input>
13
             </el-form-item>
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
             <el-form-item label="模板说明: " prop="name" style="width:100%;">
14
             <el-form-item label="模板说明: " prop="name" style="width:100%;">
19
                 <el-input v-model="form.name" placeholder=""></el-input>
15
                 <el-input v-model="form.name" placeholder=""></el-input>
20
             </el-form-item>
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
             <el-form-item label="主诉:" prop="name" style="width:100%;">
17
             <el-form-item label="主诉:" prop="name" style="width:100%;">
46
                 <el-input
18
                 <el-input
47
                 type="textarea"
19
                 type="textarea"

+ 3 - 1
src/xt_pages/outpatientDoctorStation/components/saveRecordTemplate.vue 查看文件

22
                 v-model="textarea">
22
                 v-model="textarea">
23
                 </el-input>
23
                 </el-input>
24
             </el-form-item>
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
             </el-form-item>
28
             </el-form-item>
27
         </el-form>
29
         </el-form>
28
         <div slot="footer" class="dialog-footer">
30
         <div slot="footer" class="dialog-footer">

+ 60 - 18
src/xt_pages/outpatientDoctorStation/doctorDesk.vue 查看文件

26
           <el-table :data="patientTableData" @row-click='choosePatient' border style="width: 100%;"
26
           <el-table :data="patientTableData" @row-click='choosePatient' border style="width: 100%;"
27
                     :row-style="{ color: '#303133' }"
27
                     :row-style="{ color: '#303133' }"
28
                     :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
28
                     :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
29
-                     highlight-current-row
29
+                    highlight-current-row
30
                     ref="tab"
30
                     ref="tab"
31
-                   >
31
+          >
32
             <el-table-column align="center" prop="name" label="患者姓名">
32
             <el-table-column align="center" prop="name" label="患者姓名">
33
-              <template slot-scope="scope">{{ scope.row.patients.name }}</template>
33
+              <template slot-scope="scope">{{scope.row.patients?scope.row.patients.name:''}}</template>
34
             </el-table-column>
34
             </el-table-column>
35
             <el-table-column align="center" prop="name" label="就诊号" width="90">
35
             <el-table-column align="center" prop="name" label="就诊号" width="90">
36
-              <template slot-scope="scope">{{ scope.row.his_patient.number }}</template>
36
+              <template slot-scope="scope">{{ scope.row.his_patient ?scope.row.his_patient.number:''}}</template>
37
             </el-table-column>
37
             </el-table-column>
38
           </el-table>
38
           </el-table>
39
         </div>
39
         </div>
46
           </el-radio-group>
46
           </el-radio-group>
47
         </div>
47
         </div>
48
         <!--<desk-prescription ref="prescriptions"   :prescriptions="prescriptions" :patientInfo="patientInfo" :hisPatientInfo="hisPatientInfo"-->
48
         <!--<desk-prescription ref="prescriptions"   :prescriptions="prescriptions" :patientInfo="patientInfo" :hisPatientInfo="hisPatientInfo"-->
49
-                   <!--v-if="titleType == '处方'" style="flex:1;"></desk-prescription>-->
50
-        <desk-prescription :record_date="record_date" ref="prescriptions"  :prescriptions="prescriptions" :patientInfo="patientInfo" :hisPatientInfo="hisPatientInfo"
49
+        <!--v-if="titleType == '处方'" style="flex:1;"></desk-prescription>-->
50
+        <desk-prescription :diagnoses="diagnoses" :other_sick="other_sick" :record_date="record_date"
51
+                           ref="prescriptions" :prescriptions="prescriptions" :patientInfo="patientInfo"
52
+                           :hisPatientInfo="hisPatientInfo"
51
                            v-if="titleType == '处方'" style="flex:1;"></desk-prescription>
53
                            v-if="titleType == '处方'" style="flex:1;"></desk-prescription>
52
         <desk-record :record_date="record_date" :case_history="case_history" :patientInfo="patientInfo"
54
         <desk-record :record_date="record_date" :case_history="case_history" :patientInfo="patientInfo"
53
                      :hisPatientInfo="hisPatientInfo" v-if="titleType == '病历'"></desk-record>
55
                      :hisPatientInfo="hisPatientInfo" v-if="titleType == '病历'"></desk-record>
62
   import deskPrescription from './components/deskPrescription'
64
   import deskPrescription from './components/deskPrescription'
63
   import deskRecord from './components/deskRecord'
65
   import deskRecord from './components/deskRecord'
64
   import { getPatientInfo, getSchedulePatientList } from '@/api/his/his'
66
   import { getPatientInfo, getSchedulePatientList } from '@/api/his/his'
67
+  import { getDictionaryDataConfig } from '@/utils/data'
65
 
68
 
66
   import { uParseTime } from '@/utils/tools'
69
   import { uParseTime } from '@/utils/tools'
67
 
70
 
94
         patientInfo: {},
97
         patientInfo: {},
95
         hisPatientInfo: {},
98
         hisPatientInfo: {},
96
         case_history: {},
99
         case_history: {},
97
-        patient_id:0,
100
+        patient_id: 0,
101
+        diagnoses: [],
102
+        other_sick: []
103
+
98
       }
104
       }
99
     },
105
     },
100
     methods: {
106
     methods: {
107
+      getDictionaryDataConfig(module, filed_name) {
108
+        console.log(getDictionaryDataConfig(module, filed_name))
109
+        return getDictionaryDataConfig(module, filed_name)
110
+
111
+      },
101
       changeTab(val) {
112
       changeTab(val) {
102
 
113
 
103
       },
114
       },
119
             return false
130
             return false
120
           } else {
131
           } else {
121
             this.patientTableData = response.data.data.list
132
             this.patientTableData = response.data.data.list
122
-            console.log("222",this.patientTableData)
133
+            console.log('222', this.patientTableData)
123
             // this.$refs.tab.setCurrentRow(this.patientTableData[0])
134
             // this.$refs.tab.setCurrentRow(this.patientTableData[0])
124
             let cal_one = 0
135
             let cal_one = 0
125
             let cal_two = 0
136
             let cal_two = 0
131
                 cal_two = cal_two + 1
142
                 cal_two = cal_two + 1
132
               }
143
               }
133
             }
144
             }
134
-
145
+            this.$refs.tab.setCurrentRow(this.patientTableData[0])
146
+            console.log(this.patientTableData[0])
147
+            this.choosePatient(this.patientTableData[0])
135
             this.cal_one = cal_one
148
             this.cal_one = cal_one
136
             this.cal_two = cal_two
149
             this.cal_two = cal_two
137
           }
150
           }
142
           'record_date': this.record_date,
155
           'record_date': this.record_date,
143
           'patient_id': val.patients.id
156
           'patient_id': val.patients.id
144
         }
157
         }
158
+        console.log("-------")
145
         getPatientInfo(params).then(response => {
159
         getPatientInfo(params).then(response => {
146
           if (response.data.state == 0) {
160
           if (response.data.state == 0) {
147
             this.$message.error(response.data.msg)
161
             this.$message.error(response.data.msg)
148
             return false
162
             return false
149
           } else {
163
           } else {
164
+            console.log("999888811111")
165
+
166
+            this.prescriptions = []
167
+            this.$refs.prescriptions.clearData()
150
             this.patientInfo = response.data.data.xt_info
168
             this.patientInfo = response.data.data.xt_info
151
             this.hisPatientInfo = response.data.data.his_info
169
             this.hisPatientInfo = response.data.data.his_info
152
             this.case_history = response.data.data.case_history
170
             this.case_history = response.data.data.case_history
181
             } else {
199
             } else {
182
               this.case_history.is_infect = false
200
               this.case_history.is_infect = false
183
             }
201
             }
184
-            this.prescriptions = []
185
             if (response.data.data.prescription.length > 0) {
202
             if (response.data.data.prescription.length > 0) {
186
               for (let i = 0; i < response.data.data.prescription.length; i++) {
203
               for (let i = 0; i < response.data.data.prescription.length; i++) {
187
                 var prescription = response.data.data.prescription[i]
204
                 var prescription = response.data.data.prescription[i]
205
+                let tempAdvice = []
206
+                for (let b = 0; b < prescription.advices.length; b++) {
207
+                  let obj = {
208
+                    advice_id: prescription.advices[b].id,
209
+                    drug_name: prescription.advices[b].advice_name,
210
+                    single_dose: prescription.advices[b].single_dose,
211
+                    delivery_way: prescription.advices[b].delivery_way,
212
+                    execution_frequency: prescription.advices[b].execution_frequency,
213
+                    retail_price: prescription.advices[b].price.toString(),
214
+                    remark: prescription.advices[b].remark,
215
+                    prescribing_number:prescription.advices[b].prescribing_number,
216
+                    single_dose_unit:prescription.advices[b].single_dose_unit,
217
+                    prescribing_number_unit:prescription.advices[b].prescribing_number_unit,
218
+                    min_unit:prescription.advices[b].single_dose_unit
219
+
220
+                  }
221
+                  tempAdvice.push(obj)
222
+                }
188
                 let index = i + 1
223
                 let index = i + 1
189
                 let obj = {
224
                 let obj = {
190
-                  name: "处方" + index,
191
-                  advices: prescription.advices,
192
-                  projects: prescription.project,
225
+                  id: prescription.id,
226
+                  name: '处方' + index,
227
+                  advices: tempAdvice,
228
+                  project: prescription.project
193
                 }
229
                 }
194
                 this.prescriptions.push(obj)
230
                 this.prescriptions.push(obj)
195
               }
231
               }
196
-            }else{
232
+            } else {
197
               let obj = {
233
               let obj = {
198
-                name: "处方" + 1,
234
+                id:0,
235
+                name: '处方' + 1,
199
                 advices: [],
236
                 advices: [],
200
-                projects: [],
237
+                project: []
201
               }
238
               }
202
               this.prescriptions.push(obj)
239
               this.prescriptions.push(obj)
203
             }
240
             }
204
-           
241
+
205
             this.$refs.prescriptions.setData(this.prescriptions)
242
             this.$refs.prescriptions.setData(this.prescriptions)
206
           }
243
           }
207
         })
244
         })
216
         //     psn_name:"杨美英",
253
         //     psn_name:"杨美英",
217
         //     age:60.7
254
         //     age:60.7
218
         // }
255
         // }
219
-      },
256
+      }
220
       // changePatient(val){
257
       // changePatient(val){
221
       //   console.log("患者val",val)
258
       //   console.log("患者val",val)
222
       //   this.hisPatientInfo = val.hisPatientInfo
259
       //   this.hisPatientInfo = val.hisPatientInfo
235
         (nowDay < 10 ? '0' + nowDay : nowDay)
272
         (nowDay < 10 ? '0' + nowDay : nowDay)
236
       this.getList()
273
       this.getList()
237
 
274
 
275
+      this.diagnoses = this.getDictionaryDataConfig('system', 'diagnose')
276
+      this.other_sick = this.getDictionaryDataConfig('system', 'other_sick_history')
277
+
278
+
279
+
238
     }
280
     }
239
   }
281
   }
240
 </script>
282
 </script>

+ 22 - 395
src/xt_pages/outpatientDoctorStation/print.vue 查看文件

2
   <div class="main-contain">
2
   <div class="main-contain">
3
     <div class="position">
3
     <div class="position">
4
       <bread-crumb :crumbs="crumbs"></bread-crumb>
4
       <bread-crumb :crumbs="crumbs"></bread-crumb>
5
-       <template v-if="org_template_info.template_id == 25">
5
+       <template>
6
         <el-button
6
         <el-button
7
           :loading="loading"
7
           :loading="loading"
8
           size="small"
8
           size="small"
34
                 </el-table>
34
                 </el-table>
35
             </div>
35
             </div>
36
             
36
             
37
-            <div class='dialysisPage' style="height: calc(100vh - 178px);overflow-x:auto;::-webkit-scrollbar:height:15px">
38
-            <DialysisPrintOrderOne
39
-                v-bind:childResponse="childResponse"
40
-                v-if="org_template_info.template_id == 1"
41
-            >
42
-            </DialysisPrintOrderOne>
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>
43
             </div>
39
             </div>
44
         </el-container>
40
         </el-container>
45
     </div>
41
     </div>
58
 import { jsGetAge, uParseTime } from "@/utils/tools";
54
 import { jsGetAge, uParseTime } from "@/utils/tools";
59
 // import LabelBox from "./printItem/LabelBox";
55
 // import LabelBox from "./printItem/LabelBox";
60
 import BreadCrumb from "@/xt_pages/components/bread-crumb";
56
 import BreadCrumb from "@/xt_pages/components/bread-crumb";
61
-// import DialysisPrintOrderOne from "./template/dialysisPrintOrderOne";
62
-// import DialysisPrintOrderTwo from "./template/dialysisPrintOrderTwo";
63
-// import DialysisPrintOrderThree from "./template/dialysisPrintOrderThree";
64
-// import DialysisPrintOrderFour from "./template/DialysisPrintOrderFour";
65
-// import DialysisPrintOrderFive from "./template/DialysisPrintOrderFive";
66
-// import DialysisPrintOrderSix from "./template/DialysisPrintOrderSix";
67
-// import DialysisPrintOrderSeven from "./template/DialysisPrintOrderSeven";
68
-// import DialysisPrintOrderEight from "./template/DialysisPrintOrderEight";
69
-// import DialysisPrintOrderNine from "./template/DialysisPrintOrderNine";
70
 import print from "print-js";
57
 import print from "print-js";
71
-// import DialysisPrintOrderTen from "./template/DialysisPrintOrderTen";
72
-// import DialysisPrintOrderEleven from "./template/DialysisPrintOrderEleven";
73
-// import DialysisPrintOrderTwelve from "./template/DialysisPrintOrderTwelve";
74
-// import DialysisPrintOrderThirteen from "./template/DialysisPrintOrderThirteen";
75
-// import DialysisPrintOrderFourteen from "./template/DialysisPrintOrderFourteen";
76
-// import DialysisPrintOrderFifteen from "./template/DialysisPrintOrderFifteen";
77
-// import DialysisPrintOrderSixteen from "./template/DialysisPrintOrderSixteen";
78
-// import DialysisPrintOrderSeventeen from "./template/DialysisPrintOrderSeventeen";
79
-// import DialysisPrintOrderEighteen from "./template/DialysisPrintOrderEighteen";
80
-// import DialysisPrintOrderNineteen from "./template/DialysisPrintOrderNineteen";
81
-// import DialysisPrintOrderTwenty from "./template/DialysisPrintOrderTwenty";
82
-// import DialysisPrintOrderTwentyOne from "./template/DialysisPrintOrderTwentyOne";
83
-// import DialysisPrintOrderTwentyTwo from "./template/DialysisPrintOrderTwentyTwo";
84
-// import DialysisPrintOrderTwentyThree from "./template/DialysisPrintOrderTwentyThree";
85
-// import DialysisPrintOrderTwentyFour from "./template/DialysisPrintOrderTwentyFour";
86
-// import DialysisPrintOrderTwentyFive from "./template/DialysisPrintOrderTwentyFive";
58
+import printOne from "./template/printOne"
87
 export default {
59
 export default {
88
   name: "dialysisPrintOrder",
60
   name: "dialysisPrintOrder",
89
   components: {
61
   components: {
90
-    // DialysisPrintOrderTwentyFive,
91
-    // DialysisPrintOrderTwentyFour,
92
-    // DialysisPrintOrderTwentyThree,
93
-    // DialysisPrintOrderTwentyTwo,
94
-    // DialysisPrintOrderTwentyOne,
95
-    // DialysisPrintOrderTwenty,
96
-    // DialysisPrintOrderNineteen,
97
-    // DialysisPrintOrderEighteen,
98
-    // DialysisPrintOrderSeventeen,
99
-    // DialysisPrintOrderSixteen,
100
-    // DialysisPrintOrderFifteen,
101
-    // DialysisPrintOrderFourteen,
102
-    // DialysisPrintOrderThirteen,
103
-    // DialysisPrintOrderTwelve,
104
-    // DialysisPrintOrderEleven,
105
-    // DialysisPrintOrderTen,
106
-    // DialysisPrintOrderOne,
107
-    // DialysisPrintOrderTwo,
108
-    // DialysisPrintOrderThree,
109
-    // DialysisPrintOrderFour,
110
-    // DialysisPrintOrderFive,
111
-    // DialysisPrintOrderSix,
112
-    // DialysisPrintOrderSeven,
113
-    // DialysisPrintOrderEight,
114
-    // DialysisPrintOrderNine,
115
-
116
-    // LabelBox,
117
-    BreadCrumb
62
+    BreadCrumb,
63
+    printOne
118
   },
64
   },
119
   data() {
65
   data() {
120
     return {
66
     return {
272
       this.print_time = uParseTime(ptime, "{y}-{m}-{d} {h}:{i}");
218
       this.print_time = uParseTime(ptime, "{y}-{m}-{d} {h}:{i}");
273
 
219
 
274
       const style =
220
       const style =
275
-        '@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;}';
276
-      const style2 =
277
-        '@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: 1050px;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;}.table-box1 {border: 1px solid #000;width: 100%;line-height: 30px;font-size: 14px;border-collapse: collapse;}.table-box1 tr {border-bottom: 1px solid #000;}';
278
-      const style3 =
279
-        '@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:16px;border-color: #000;}.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 #000;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;}.row {font-size: 16px;line-height: 20px;padding: 5px 0;}.inline_block { display: inline-block;}.under_line {display: inline-block;border-bottom: 1px solid #000;text-align: center;white-space: nowrap; width: 50%;}';
280
-      // const style3 =
281
-      //   '@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: 16px;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: 5px 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: 16px;padding: 5px 5px;line-height: 18px;}.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-300 {margin-bottom:450px;}.margin-bottom-600 {margin-bottom:600px;}.margin-bottom-900 {margin-bottom:950px;}.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:1050px;left: 50%;}.print-yema5{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;}';
282
-      //
283
-
284
-      const style5 =
285
-        '@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 0px 20px;}.dialysis-print-order .table-box {  width: 100%;  line-height: 18px;  font-size: 14px;}.dialysis-print-order .print-table {  width: 100%;  text-align: center;  border-collapse: collapse;  line-height: 28px;  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;}.dialysis-print-order .radio-lebel-box {  font-weight: 400;  cursor: pointer;}.dialysis-print-order .radio-no {  opacity: 0;  outline: none;  position: absolute;  margin: 0;  width: 0;  height: 0;  z-index: -1;}.dialysis-print-order .radio-inner {  white-space: nowrap;  cursor: pointer;  outline: none;  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 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),    background-color 0.25s cubic-bezier(0.71, -0.46, 0.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;}.dialysis-print-order .print-table tr td {  padding: 1px 1px;  /*line-height: 25px;*/}.es-img {  height: 25px;}.advice-name {  text-align: left;}.advice-children {  display: flex;}.title-box-pro {  border: 0 #fff;  line-height: 25px;  height: 25px;  text-align: left;  padding-left: 10px !important;}.title-box-pro-tr {  border: 0 #fff;}.text-align-left {  text-align: left !important;  padding-left: 10px !important;  font-size: 14px !important;  line-height: 25px;}.print-table-tr-new td {line-height: 20px !important;}.border-top-solid {border: solid 1px #000;}.print-template-two tr {line-height: 30px;}}';
286
-      const style6 =
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:16px}.dialysis-print-order .print-table{width:100%;text-align:center;border-collapse:collapse;line-height:25px;font-size:16px}.dialysis-print-order .print-table-no{width:100%;text-align:center;border-collapse:collapse;font-size:16px}.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
-
289
-      if (this.org_template_info.template_id == 1) {
290
-        printJS({
291
-          printable: "dialysis-print-box",
292
-          type: "html",
293
-          style: style,
294
-          scanStyles: false
295
-        });
296
-      } else if (
297
-        this.org_template_info.template_id == 2 ||
298
-        this.org_template_info.template_id == 0
299
-      ) {
300
-        printJS({
301
-          printable: "dialysis-print-box-1",
302
-          type: "html",
303
-          style: style2,
304
-          scanStyles: false
305
-        });
306
-      } else if (this.org_template_info.template_id == 3) {
307
-        printJS({
308
-          printable: "dialysis-print-box",
309
-          type: "html",
310
-          style: style,
311
-          scanStyles: false
312
-        });
313
-      } else if (this.org_template_info.template_id == 4) {
314
-        printJS({
315
-          printable: "dialysis-print-box",
316
-          type: "html",
317
-          style: style,
318
-          scanStyles: false
319
-        });
320
-      } else if (this.org_template_info.template_id == 5) {
321
-        printJS({
322
-          printable: "dialysis-print-box-1",
323
-          type: "html",
324
-          style: style2,
325
-          scanStyles: false
326
-        });
327
-      } else if (
328
-        this.org_template_info.template_id == 6 ||
329
-        this.org_template_info.template_id == 10 ||
330
-        this.org_template_info.template_id == 11
331
-      ) {
332
-        printJS({
333
-          printable: "dialysis-print-box-1",
334
-          type: "html",
335
-          style: style2,
336
-          scanStyles: false
337
-        });
338
-      } else if (this.org_template_info.template_id == 7) {
339
-        printJS({
340
-          printable: "dialysis-print-box",
341
-          type: "html",
342
-          style: style,
343
-          scanStyles: false
344
-        });
345
-      } else if (this.org_template_info.template_id == 8) {
346
-        printJS({
347
-          printable: "dialysis-print-box",
348
-          type: "html",
349
-          style: style,
350
-          scanStyles: false
351
-        });
352
-      } else if (this.org_template_info.template_id == 9 ||  this.org_template_info.template_id==25) {
353
-        printJS({
354
-          printable: "dialysis-print-box",
355
-          type: "html",
356
-          style: style5,
357
-          scanStyles: false
358
-        });
359
-      } else if (this.org_template_info.template_id == 12) {
360
-        printJS({
361
-          printable: "dialysis-print-box",
362
-          type: "html",
363
-          style: style,
364
-          scanStyles: false
365
-        });
366
-      } else if (this.org_template_info.template_id == 13) {
367
-        printJS({
368
-          printable: "dialysis-print-box-1",
369
-          type: "html",
370
-          style: style3,
371
-          scanStyles: false
372
-        });
373
-      } else if (this.org_template_info.template_id == 14){
374
-        printJS({
375
-          printable: "dialysis-print-box",
376
-          type: "html",
377
-          style: style,
378
-          scanStyles: false
379
-        });
380
-      } else if (this.org_template_info.template_id == 15){
381
-        printJS({
382
-          printable: "dialysis-print-box",
383
-          type: "html",
384
-          style: style,
385
-          scanStyles: false
386
-        });
387
-      } else if (this.org_template_info.template_id == 16){
388
-        printJS({
389
-          printable: "dialysis-print-box",
390
-          type: "html",
391
-          style: style,
392
-          scanStyles: false
393
-        });
394
-      } else if (this.org_template_info.template_id == 17) {
395
-        printJS({
396
-          printable: "dialysis-print-box",
397
-          type: "html",
398
-          style: style6,
399
-          scanStyles: false
400
-        });
401
-      } else if (this.org_template_info.template_id == 18) {
402
-        printJS({
403
-          printable: "dialysis-print-box",
404
-          type: "html",
405
-          style: style,
406
-          scanStyles: false
407
-        });
408
-      } else if (this.org_template_info.template_id == 19) {
409
-        printJS({
410
-          printable: "dialysis-print-box-1",
411
-          type: "html",
412
-          style: style2,
413
-          scanStyles: false
414
-        });
415
-      } else if (this.org_template_info.template_id == 20) {
416
-        printJS({
417
-          printable: "dialysis-print-box",
418
-          type: "html",
419
-          style: style,
420
-          scanStyles: false
421
-        });
422
-      } else if (this.org_template_info.template_id == 21) {
423
-        printJS({
424
-          printable: "dialysis-print-box",
425
-          type: "html",
426
-          style: style,
427
-          scanStyles: false
428
-        });
429
-      } else if (this.org_template_info.template_id == 22) {
430
-        printJS({
431
-          printable: "dialysis-print-box-1",
432
-          type: "html",
433
-          style: style2,
434
-          scanStyles: false
435
-        });
436
-      } else if (this.org_template_info.template_id == 23){
437
-        printJS({
438
-          printable: "dialysis-print-box",
439
-          type: "html",
440
-          style: style,
441
-          scanStyles: false
442
-        });
443
-      } else if (this.org_template_info.template_id == 24){
444
-        printJS({
445
-          printable: "dialysis-print-box",
446
-          type: "html",
447
-          style: style,
448
-          scanStyles: false
449
-        });
450
-      }else if (this.org_template_info.template_id == 25) {
451
-        printJS({
452
-          printable: "dialysis-print-box",
453
-          type: "html",
454
-          style: style5,
455
-          scanStyles: false
456
-        });
457
-      }
458
-    },
459
-    printThisOnePage() {
460
-      var ptime = Math.round(new Date().getTime() / 1000);
461
-      this.print_time = uParseTime(ptime, "{y}-{m}-{d} {h}:{i}");
462
-
463
-      const style =
464
-        '@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;}';
465
-      const style2 =
466
-        '@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;}';
467
-
468
-      if (this.org_template_info.template_id == 1) {
469
-        printJS({
470
-          printable: "dialysis-print-box",
471
-          type: "html",
472
-          style: style,
473
-          scanStyles: false
474
-        });
475
-      } else if (
476
-        this.org_template_info.template_id == 2 ||
477
-        this.org_template_info.template_id == 0 ||
478
-        this.org_template_info.template_id == 5 ||
479
-        this.org_template_info.template_id == 22 
480
-      ) {
481
-        printJS({
482
-          printable: "dialysis-print-box-1-1",
483
-          type: "html",
484
-          style: style2,
485
-          scanStyles: false
486
-        });
487
-      } else if(this.org_template_info.template_id == 14){
488
-        printJS({
489
-          printable: "new-dialysis-1",
490
-          type: "html",
491
-          style: style,
492
-          scanStyles: false
493
-        });
494
-      } else if(this.org_template_info.template_id == 21){
495
-        printJS({
496
-          printable: "new-dialysis-1",
497
-          type: "html",
498
-          style: style,
499
-          scanStyles: false
500
-        });
501
-      }
502
-    },
503
-    printThisTwoPage() {
504
-      var ptime = Math.round(new Date().getTime() / 1000);
505
-      this.print_time = uParseTime(ptime, "{y}-{m}-{d} {h}:{i}");
506
-
507
-      const style =
508
-        '@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;}';
509
-      const style2 =
510
-        '@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;}';
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
+      printJS({
223
+        printable: "prescription-print",
224
+        type: "html",
225
+        style: style,
226
+        scanStyles: false
227
+      });
511
 
228
 
512
-      if (this.org_template_info.template_id == 1) {
513
-        printJS({
514
-          printable: "dialysis-print-box",
515
-          type: "html",
516
-          style: style,
517
-          scanStyles: false
518
-        });
519
-      } else if (
520
-        this.org_template_info.template_id == 2 ||
521
-        this.org_template_info.template_id == 0 ||
522
-        this.org_template_info.template_id == 5 ||
523
-        this.org_template_info.template_id == 22 
524
-      ) {
525
-        printJS({
526
-          printable: "dialysis-print-box-1-2",
527
-          type: "html",
528
-          style: style2,
529
-          scanStyles: false
530
-        });
531
-      }else if(this.org_template_info.template_id == 14){
532
-        printJS({
533
-          printable: "new-dialysis-2",
534
-          type: "html",
535
-          style: style,
536
-          scanStyles: false
537
-        });
538
-      } else if(this.org_template_info.template_id == 21){
539
-        printJS({
540
-          printable: "new-dialysis-2",
541
-          type: "html",
542
-          style: style,
543
-          scanStyles: false
544
-        });
545
-      }
229
+      // if (this.org_template_info.template_id == 1) {
230
+      //   printJS({
231
+      //     printable: "dialysis-print-box",
232
+      //     type: "html",
233
+      //     style: style,
234
+      //     scanStyles: false
235
+      //   });
236
+      // }
546
     },
237
     },
238
+    
547
     getNumber() {
239
     getNumber() {
548
       if (this.dialysisOrder != null) {
240
       if (this.dialysisOrder != null) {
549
         return (
241
         return (
1194
     }
886
     }
1195
   },
887
   },
1196
   created() {
888
   created() {
1197
-    var schedule_type_selected = this.$store.getters.schedule_type_selected
1198
-    var zone_selected = this.$store.getters.zone_selected
1199
-    var patient_state_selected = this.$store.getters.patient_state_selected
1200
-    var treat_state_selected = this.$store.getters.treat_state_selected
1201
-    var selected_date = this.$store.getters.selected_date
1202
-    if (schedule_type_selected) {
1203
-      this.scheduleStateVal = schedule_type_selected.schedule_type_selected
1204
-    }
1205
-    if (zone_selected) {
1206
-      this.zoneVal = zone_selected.zone_selected
1207
-    }
1208
-    if (patient_state_selected) {
1209
-      this.patientStateVal = patient_state_selected.patient_state_selected
1210
-    }
1211
-    if (treat_state_selected) {
1212
-      this.treatStateVal = treat_state_selected.treat_state_selected
1213
-    }
1214
-    if (selected_date.selected_date) {
1215
-      this.selected_date = selected_date.selected_date
1216
-    }
1217
-    this.getInitData();
1218
-
1219
-    var xtuser = this.$store.getters.xt_user;
1220
-    this.orgname = xtuser.org.org_name;
1221
-    // this.orgname = "遂溪方济医院";
1222
-    this.modeOptions = this.$store.getters.treatment_mode;
1223
-    this.replacementWays = this.$store.getters.replacement_ways;
1224
-    this.perfusionApparatus = this.$store.getters.perfusion_apparatus;
1225
-    this.anticoagulantsConfit = this.$store.getters.anticoagulants_confit;
1226
-
1227
-    // this.bloodAccessParOpera = getDataConfig('hemodialysis', 'vascular_access_desc')
1228
-
1229
-    var bloodAccessParOpera = getDataConfig(
1230
-      "hemodialysis",
1231
-      "vascular_access_desc"
1232
-    );
1233
-    for (var key in bloodAccessParOpera) {
1234
-      this.bloodAccessParOpera[bloodAccessParOpera[key].id] =
1235
-        bloodAccessParOpera[key];
1236
-    }
1237
-
1238
-    var dialysateFormulationOptions = getDataConfig(
1239
-      "hemodialysis",
1240
-      "dialysate_formulation"
1241
-    );
1242
-    for (var key in dialysateFormulationOptions) {
1243
-      this.dialysateFormulationOptions[dialysateFormulationOptions[key].id] =
1244
-        dialysateFormulationOptions[key];
1245
-    }
1246
-
1247
-    const xtdate = this.$route.query && this.$route.query.xtdate;
1248
-    const xtno = this.$route.query && this.$route.query.xtno;
1249
-    if (
1250
-      typeof xtdate === "string" &&
1251
-      xtdate.length > 0 &&
1252
-      typeof xtno === "string" &&
1253
-      xtno.length > 0
1254
-    ) {
1255
-      this.queryParams.xtdate = xtdate;
1256
-      this.queryParams.xtno = xtno;
1257
-      this.getDialysisRecord();
1258
-    } else {
1259
-      this.$message.error("参数不齐");
1260
-      return false;
1261
-    }
1262
   },
889
   },
1263
   computed:{
890
   computed:{
1264
     filtedSchedules: function() {
891
     filtedSchedules: function() {

+ 329 - 0
src/xt_pages/outpatientDoctorStation/recordPrint.vue 查看文件

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 查看文件

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>

+ 107 - 0
src/xt_pages/outpatientDoctorStation/template/printOne.vue 查看文件

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>

+ 8 - 6
src/xt_pages/outpatientRegistration/index.vue 查看文件

18
                         </el-select>
18
                         </el-select>
19
                     </el-form-item>
19
                     </el-form-item>
20
                     <el-form-item class="specialFormItem" label="医保卡号:">
20
                     <el-form-item class="specialFormItem" label="医保卡号:">
21
-                        <el-input v-model="form.medicalInsuranceCard"></el-input>
22
-                        <el-button type="primary" @click="reading">读卡</el-button>
21
+                        <div style="display:flex;">
22
+                            <el-input v-model="form.medicalInsuranceCard"></el-input>
23
+                            <el-button style="margin-left:10px;" type="primary" @click="reading">读卡</el-button>
24
+                        </div>
23
                     </el-form-item>
25
                     </el-form-item>
24
                     <el-form-item label="患者姓名:">
26
                     <el-form-item label="患者姓名:">
25
                         <el-input v-model="form.name"></el-input>
27
                         <el-input v-model="form.name"></el-input>
442
     flex-wrap: wrap;
444
     flex-wrap: wrap;
443
     justify-content: space-between;
445
     justify-content: space-between;
444
     .el-form-item{
446
     .el-form-item{
445
-        width: 260px;
447
+        width: 33%;
446
     }
448
     }
447
     .specialFormItem{
449
     .specialFormItem{
448
-        width:625px;
450
+        width:67%;
449
         .el-input{
451
         .el-input{
450
             min-width: 150px;
452
             min-width: 150px;
451
         }
453
         }
452
     }
454
     }
453
     .el-select{
455
     .el-select{
454
-        width: 180px;
456
+        width: 100%;
455
     }
457
     }
456
     .el-input{
458
     .el-input{
457
-        width: 180px;
459
+        width: 100%;
458
     }
460
     }
459
 }
461
 }
460
     .el-form-item__error{
462
     .el-form-item__error{