Browse Source

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

csx 4 years ago
parent
commit
9baa35d61b

+ 13 - 0
src/api/his/his.js View File

@@ -355,6 +355,19 @@ export function getList (params) {
355 355
 
356 356
 
357 357
 
358
+export function getRecordList (params) {
359
+  return request({
360
+    url: '/api/record/list',
361
+    method: 'get',
362
+    params:params,
363
+  })
364
+}
365
+
366
+
367
+
368
+
369
+
370
+
358 371
 
359 372
 
360 373
 

+ 1 - 0
src/lang/zh.js View File

@@ -216,6 +216,7 @@ export default {
216 216
     outpatientCharges:'门诊收费',
217 217
     outpatientChargesManagement:'门诊收费管理',
218 218
     outpatientInvoice:'门诊发票',
219
+    outpatientRecord:'门诊备案',
219 220
     advancePayment:'预交金',
220 221
     labelPrinting:'标签打印',
221 222
     summary:'项目消费明细汇总',

+ 4 - 1
src/router/index.js View File

@@ -27,6 +27,8 @@ import outpatientRegistration from './modules/outpatientRegistration'
27 27
 import outpatientDoctorStation from './modules/outpatientDoctorStation'
28 28
 import outpatientCharges from './modules/outpatientCharges'
29 29
 import outpatientPharmacy from './modules/outpatientPharmacy'
30
+import outpatientRecord from './modules/outpatientRecord'
31
+
30 32
 import kuyiShopping from './modules/kuyiShopping'
31 33
 import createPatient from './modules/createPatient'
32 34
 import dialysisRecord from './modules/dialysisRecord'
@@ -151,7 +153,7 @@ var _asy_router_map = [
151 153
   slow,
152 154
   scrm,
153 155
   shop,
154
-  
156
+
155 157
   systems,
156 158
   DepartManage,
157 159
   roleManage,
@@ -169,6 +171,7 @@ var _asy_router_map = [
169 171
   outpatientDoctorStation,
170 172
   outpatientCharges,
171 173
   outpatientPharmacy,
174
+  outpatientRecord,
172 175
   // kuyiShopping,
173 176
   integration,
174 177
   basicConfig

+ 22 - 0
src/router/modules/outpatientRecord.js View File

@@ -0,0 +1,22 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default {
4
+  path: '/outpatientRecord',
5
+  component: Layout,
6
+  redirect: 'noredirect',
7
+  name: 'outpatientRecord',
8
+  alwaysShow: true,
9
+  meta: {
10
+    title: 'outpatientRecord',
11
+    icon: 'outpatientRecord',
12
+    isChild: true
13
+  },
14
+  children: [
15
+    {
16
+      path: '/outpatientRecord/outpatientRecord',
17
+      component: () => import('@/xt_pages/outpatientRecord/outpatientRecord'),
18
+      name: 'outpatientRecord',
19
+      meta: { title: 'outpatientRecord', noCache: true }
20
+    },
21
+  ]
22
+}

+ 20 - 5
src/xt_pages/outpatientCharges/outpatientChargesManagement.vue View File

@@ -648,7 +648,10 @@
648 648
         } else if (this.$store.getters.xt_user.org_id == 9919) {
649 649
           var that = this
650 650
           axios.get('http://127.0.0.1:9532/api/upload/get', {
651
-            params: form
651
+            params: form,
652
+            headers: {
653
+              'Permission': 5
654
+            }
652 655
           })
653 656
             .then(function(response) {
654 657
               if (response.data.state == 0) {
@@ -709,7 +712,10 @@
709 712
         var that = this
710 713
         if ( this.$store.getters.xt_user.org_id == 9504 || this.$store.getters.xt_user.org_id == 10028) {
711 714
           axios.get('http://127.0.0.1:9532/sz/api/register/get', {
712
-            params: forms
715
+            params: forms,
716
+            headers: {
717
+              'Permission': 5
718
+            }
713 719
           })
714 720
             .then(function(response) {
715 721
               if (response.data.state == 0) {
@@ -791,7 +797,10 @@
791 797
         if ( this.$store.getters.xt_user.org_id == 10028 ||  this.$store.getters.xt_user.org_id == 9504) {
792 798
 
793 799
           axios.get('http://127.0.0.1:9532/sz/api/register/get', {
794
-            params: forms
800
+            params: forms,
801
+            headers: {
802
+              'Permission': 5
803
+            }
795 804
           })
796 805
             .then(function(response) {
797 806
               if (response.data.state == 0) {
@@ -861,7 +870,10 @@
861 870
         } else if (this.$store.getters.xt_user.org_id == 9919 ) {
862 871
 
863 872
           axios.get('http://127.0.0.1:9532/api/register/get', {
864
-            params: forms
873
+            params: forms,
874
+            headers: {
875
+              'Permission': 5
876
+            }
865 877
           })
866 878
             .then(function(response) {
867 879
               if (response.data.state == 0) {
@@ -2514,7 +2526,10 @@
2514 2526
               'admin_user_id': this.$store.getters.xt_user.user.id
2515 2527
             }
2516 2528
             axios.get('http://127.0.0.1:9532/sz/api/upload/get', {
2517
-              params: params
2529
+              params: params,
2530
+              headers: {
2531
+                'Permission': 5,
2532
+              }
2518 2533
             })
2519 2534
               .then(function(response) {
2520 2535
                 if (response.data.state == 0) {

+ 349 - 0
src/xt_pages/outpatientRecord/outpatientRecord.vue View File

@@ -0,0 +1,349 @@
1
+<template>
2
+    <div class="main-contain incomeStatistics">
3
+        <div class="position">
4
+            <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+        </div>
6
+        <div class="app-container">
7
+            <div style="display: flex;justify-content: space-between;margin-bottom:10px;">
8
+                <div>
9
+                    <el-input size="small" style="width:150px;" v-model="keywords"
10
+                              class="filter-item"/>
11
+                    <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary"
12
+                               @click="searchAction">
13
+                        搜索
14
+                    </el-button>
15
+                </div>
16
+                <el-button size="small" type="primary" @click="dialogFormVisible = true">医保对账</el-button>
17
+            </div>
18
+            <el-table :data="tableData" border style="width: 100%;" :row-style="{ color: '#303133' }"
19
+                      :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
20
+                      highlight-current-row>
21
+                <el-table-column
22
+                        prop="date"
23
+                        label="序号"
24
+                        width="60"
25
+                        align="center"
26
+                        type="index"
27
+                >
28
+                </el-table-column>
29
+                <el-table-column align="center" prop="name" label="流水号">
30
+                    <template slot-scope="scope">{{scope.row.trt_dcla_detl_sn}}</template>
31
+                </el-table-column>
32
+                <el-table-column align="center" prop="name" label="时间">
33
+                    <template slot-scope="scope">{{getTimes(scope.row.ctime)}}</template>
34
+                </el-table-column>
35
+                <el-table-column align="center" prop="name" label="姓名">
36
+                    <template slot-scope="scope">{{scope.row.name}}</template>
37
+                </el-table-column>
38
+                <el-table-column align="center" prop="name" label="人员编号">
39
+                    <template slot-scope="scope">
40
+                        <div>{{scope.row.psn_no}}</div>
41
+                    </template>
42
+                </el-table-column>
43
+                <el-table-column align="center" prop="name" label="联系电话">
44
+                    <template slot-scope="scope">{{scope.row.phone}}</template>
45
+                </el-table-column>
46
+                <el-table-column align="center" prop="name" label="地址">
47
+                    <template slot-scope="scope">
48
+                        {{scope.row.home_address}}
49
+                    </template>
50
+                </el-table-column>
51
+                <el-table-column align="center" prop="name" width="160" label="鉴定定点医药机构">
52
+                    <template slot-scope="scope">
53
+                        {{scope.row.org_name}}
54
+                    </template>
55
+                </el-table-column>
56
+                <el-table-column align="center" prop="name" label="医生">
57
+                    <template slot-scope="scope">
58
+                        <el-select v-model="scope.row.doctor_id" placeholder="请选择">
59
+                            <el-option
60
+                                    v-for="item in doctorList"
61
+                                    :key="item.admin_user_id"
62
+                                    :label="item.user_name"
63
+                                    :value="item.admin_user_id">
64
+                            </el-option>
65
+                        </el-select>
66
+                    </template>
67
+                </el-table-column>
68
+                <el-table-column align="center" prop="name" label="科室">
69
+                    <template slot-scope="scope">
70
+                        <el-select style="margin-right:5px;width:140px;" v-model="scope.row.department_id" placeholder="请选择">
71
+                            <el-option
72
+                                    v-for="(item,index) in department"
73
+                                    :key="index"
74
+                                    :label="item.name"
75
+                                    :value="item.id">
76
+                            </el-option>
77
+                        </el-select>
78
+                    </template>
79
+                </el-table-column>
80
+
81
+
82
+
83
+                <el-table-column align="center" prop="name" label="险种类型">
84
+                    <template slot-scope="scope">
85
+                        <div v-if="scope.row.insutype == '310'">职工基本医疗保险</div>
86
+                        <div v-if="scope.row.insutype == '320'">公务员医疗补助</div>
87
+                        <div v-if="scope.row.insutype == '330'">大额医疗费用补助</div>
88
+                        <div v-if="scope.row.insutype == '340'">离休人员医疗保障</div>
89
+                        <div v-if="scope.row.insutype == '390'">城乡居民基本医疗保险</div>
90
+                        <div v-if="scope.row.insutype == '392'">城乡居民大病医疗保险</div>
91
+                        <div v-if="scope.row.insutype == '510'">生育保险</div>
92
+                    </template>
93
+                </el-table-column>
94
+
95
+                <el-table-column align="center" prop="name" label="疾病类型">
96
+                    <template slot-scope="scope">
97
+                        <el-select style="width:100%;" v-model="scope.row.sick_type" placeholder="请选择">
98
+                            <el-option
99
+                                    v-for="(item,index) in sick"
100
+                                    :key="index"
101
+                                    :label="item.class_name"
102
+                                    :value="item.id">
103
+                            </el-option>
104
+                        </el-select>
105
+                    </template>
106
+                </el-table-column>
107
+
108
+                <el-table-column prop="date" label="操作" width="250" align="center" fixed="right">
109
+                    <template slot-scope="scope">
110
+                        <el-button type="primary" size="small" icon="el-icon-refresh-left">
111
+                            <span v-if="scope.row.is_cancel == 0">备案</span>
112
+                            <span v-if="scope.row.is_cancel == 2">撤消</span>
113
+                        </el-button>
114
+                    </template>
115
+                </el-table-column>
116
+            </el-table>
117
+
118
+            <el-dialog title="备案" :visible.sync="dialogFormVisible">
119
+                <el-form :model="form" label-width="100px">
120
+                    <el-form-item label="险种类型" :label-width="formLabelWidth">
121
+                        <el-select v-model=" insutype" placeholder="请选择" style="width: 200px;">
122
+                            <el-option
123
+                                    v-for="item in insutypes"
124
+                                    :key="item.value"
125
+                                    :label="item.label"
126
+                                    :value="item.value">
127
+                            </el-option>
128
+                        </el-select>
129
+                    </el-form-item>
130
+                </el-form>
131
+                <div slot="footer" class="dialog-footer">
132
+                    <el-button @click="dialogFormVisible = false">取 消</el-button>
133
+                    <el-button type="primary" @click="confirm">确 定</el-button>
134
+                </div>
135
+            </el-dialog>
136
+        </div>
137
+
138
+
139
+    </div>
140
+</template>
141
+
142
+
143
+<script>
144
+  import BreadCrumb from '@/xt_pages/components/bread-crumb'
145
+  import { getRecordList,getAllDoctorList,getInitData } from '@/api/his/his'
146
+  import { uParseTime } from '@/utils/tools'
147
+  import { fetchAllAdminUsers } from '@/api/doctor'
148
+  import axios from 'axios'
149
+
150
+  export default {
151
+    components: {
152
+      BreadCrumb
153
+    },
154
+    data() {
155
+      return {
156
+        crumbs: [
157
+          { path: false, name: '门诊收费' },
158
+          { path: false, name: '医保费用对照' }
159
+        ],
160
+        tableData: [],
161
+        doctorList:[],
162
+        department:[],
163
+        sick:[],
164
+        limit: 10,
165
+        page: 1,
166
+        dialogFormVisible: false,
167
+        total: 0,
168
+        adminUserOptions: [],
169
+        start_time: '',
170
+        end_time: '',
171
+        insutype: '',
172
+        check_type: '',
173
+
174
+        options: [
175
+          {
176
+            value: 1,
177
+            label: '总账'
178
+          }, {
179
+            value: 2,
180
+            label: '明细'
181
+          }
182
+        ],
183
+
184
+        insutypes: [
185
+          {
186
+            value: '310',
187
+            label: '职工基本医疗保险'
188
+          }, {
189
+            value: '320',
190
+            label: '公务员医疗补助'
191
+          }, {
192
+            value: '330',
193
+            label: '大额医疗费用补助'
194
+          }, {
195
+            value: '340',
196
+            label: '离休人员医疗保障'
197
+          },
198
+          {
199
+            value: '390',
200
+            label: '城乡居民基本医疗保险'
201
+          }, {
202
+            value: '392',
203
+            label: '城乡居民大病医疗保险'
204
+          }, {
205
+            value: '510',
206
+            label: '生育保险'
207
+          }
208
+
209
+        ]
210
+
211
+      }
212
+    },
213
+    methods: {
214
+      getInitData() {
215
+        getInitData().then(response => {
216
+          if (response.data.state == 0) {
217
+            this.$message.error(response.data.msg)
218
+            return false
219
+          } else {
220
+            this.doctorList = response.data.data.doctors
221
+            this.department = response.data.data.department
222
+            this.sick = response.data.data.sick
223
+
224
+          }
225
+        })
226
+
227
+      },
228
+      getSickName(id){
229
+
230
+
231
+      },
232
+      confirm() {
233
+        if (this.check_type == 1) {
234
+          let params = {
235
+            start_time: this.start_time,
236
+            end_time: this.end_time,
237
+            insutype: this.insutype,
238
+            clr_type: '11'
239
+          }
240
+
241
+          var that = this
242
+
243
+          if (this.$store.getters.xt_user.org_id == 9919) {
244
+            axios.get('http://127.0.0.1:9532/api/checkaccount/get', {
245
+              params: params
246
+            })
247
+              .then(function(response) {
248
+                if (response.data.state == 0) {
249
+                  that.$message.error(response.data.msg)
250
+                  return false
251
+                } else {
252
+                  this.page = 1
253
+                  this.limit = 10
254
+                  this.keywords = ''
255
+                  this.getList()
256
+
257
+                }
258
+              })
259
+              .catch(function(error) {
260
+
261
+              })
262
+
263
+          }
264
+
265
+        } else {
266
+          let params = {
267
+            start_time: this.start_time,
268
+            end_time: this.end_time
269
+          }
270
+          var that = this
271
+          axios.get('http://127.0.0.1:9532/api/checkdetailaccount/get', {
272
+            params: params
273
+          })
274
+            .then(function(response) {
275
+              if (response.data.state == 0) {
276
+                that.$message.error(response.data.msg)
277
+                return false
278
+              } else {
279
+                this.page = 1
280
+                this.limit = 10
281
+                this.keywords = ''
282
+                this.getList()
283
+              }
284
+            })
285
+            .catch(function(error) {
286
+
287
+            })
288
+
289
+        }
290
+
291
+      },
292
+      getInsutype(type) {
293
+
294
+      },
295
+      fetchAllAdminUsers() {
296
+        fetchAllAdminUsers().then(response => {
297
+          if (response.data.state == 1) {
298
+            this.adminUserOptions = response.data.data.users
299
+
300
+          }
301
+        })
302
+      },
303
+      getName(admin_user_id) {
304
+        for (let i = 0; i < this.adminUserOptions.length; i++) {
305
+          if (this.adminUserOptions[i].id == admin_user_id) {
306
+            return this.adminUserOptions[i].name
307
+          }
308
+        }
309
+
310
+      },
311
+      getTimes(time) {
312
+        return uParseTime(time, '{y}-{m}-{d}')
313
+      },
314
+      getList() {
315
+        let params = {
316
+          'page': this.page,
317
+          'limit': this.limit,
318
+          'keywords': this.keywords
319
+
320
+        }
321
+        this.tableData = []
322
+        getList(params).then(response => {
323
+          if (response.data.state == 0) {
324
+            this.$message.error(response.data.msg)
325
+            return false
326
+          } else {
327
+            this.tableData = response.data.data.list
328
+            this.total = response.data.data.total
329
+          }
330
+        })
331
+
332
+      },
333
+      handleSizeChange(limit) {
334
+        this.limit = limit
335
+        this.getList()
336
+      },
337
+      handleCurrentChange(page) {
338
+        this.page = page
339
+        this.getList()
340
+
341
+      }
342
+    },
343
+    created() {
344
+      this.getList()
345
+      this.fetchAllAdminUsers()
346
+
347
+    }
348
+  }
349
+</script>

+ 16 - 4
src/xt_pages/outpatientRegistration/index.vue View File

@@ -941,7 +941,10 @@
941 941
             if (this.$store.getters.xt_user.org_id == 9504 || this.$store.getters.xt_user.org_id == 10028) {
942 942
               var that = this
943 943
               axios.get('http://127.0.0.1:9532/sz/api/register/get', {
944
-                params: params
944
+                params: params,
945
+                headers: {
946
+                  'Permission': 5
947
+                }
945 948
               })
946 949
                 .then(function(response) {
947 950
                   if (response.data.state == 0) {
@@ -966,7 +969,10 @@
966 969
               var that = this
967 970
 
968 971
               axios.get('http://127.0.0.1:9532/api/register/get', {
969
-                params: params
972
+                params: params,
973
+                headers: {
974
+                  'Permission': 5
975
+                }
970 976
               })
971 977
                 .then(function(response) {
972 978
                   if (response.data.state == 0) {
@@ -1137,7 +1143,10 @@
1137 1143
               var that = this
1138 1144
 
1139 1145
               axios.get('http://127.0.0.1:9532/sz/api/register/get', {
1140
-                params: params
1146
+                params: params,
1147
+                headers: {
1148
+                  'Permission': 5
1149
+                }
1141 1150
               })
1142 1151
                 .then(function(response) {
1143 1152
                   if (response.data.state == 0) {
@@ -1167,7 +1176,10 @@
1167 1176
               var that = this
1168 1177
 
1169 1178
               axios.get('http://127.0.0.1:9532/api/register/get', {
1170
-                params: params
1179
+                params: params,
1180
+                headers: {
1181
+                  'Permission': 5
1182
+                }
1171 1183
               })
1172 1184
                 .then(function(response) {
1173 1185
                   if (response.data.state == 0) {

+ 7 - 1
src/xt_pages/user/patient.vue View File

@@ -4,8 +4,9 @@
4 4
       <el-input   style="width: 400px;" v-model="searchKey" class="filter-item" />
5 5
       <el-button  class="filter-item" type="primary" icon="el-icon-search" @click="search" >搜索</el-button>
6 6
       <!-- <el-button  class="filter-item" type="primary" style="float:right;" icon="el-icon-download" >批量导入</el-button> -->
7
-      <!-- <el-button  type="primary" plain style="float:right;" icon="el-icon-download" >批量导入</el-button>       -->
8 7
       <el-button @click="$router.push({path:'/patients/create'})" class="filter-item" style="float:right;" type="primary" icon="el-icon-edit" >新增病人</el-button>
8
+
9
+
9 10
     </div>
10 11
   	<!-- <div class="search-component clearfix">
11 12
       <input type="text" class="searchBox" placeholder="姓名/首拼/透析号" v-model="searchVal">
@@ -286,6 +287,11 @@ export default {
286 287
     this.reimbursement_ways = this.$store.getters.reimbursement_ways;
287 288
   },
288 289
   methods: {
290
+    putOnRecord(){
291
+
292
+
293
+
294
+    },
289 295
     getCount(row){
290 296
       console.log(row)
291 297
       return row.total_dialysis + row.user_sys_before_count

+ 31 - 3
src/xt_pages/user/patients.vue View File

@@ -134,6 +134,7 @@
134 134
         </el-button>
135 135
       </div>
136 136
 
137
+      <el-button  type="primary" plain style="float:right;" icon="el-icon-download" @click="putOnRecord(2,{})" >备案</el-button>
137 138
 
138 139
     </div>
139 140
     <div class="app-container">
@@ -451,6 +452,22 @@
451 452
                 "
452 453
               ></el-button>
453 454
             </el-tooltip>
455
+
456
+            <el-tooltip
457
+                    class="item"
458
+                    effect="dark"
459
+                    content="备案"
460
+                    placement="top"
461
+            >
462
+              <el-button
463
+                      type="danger"
464
+                      icon="el-icon-tickets"
465
+                      size="small"
466
+                      @click="
467
+                  putOnRecord(1,scope.row)
468
+                "
469
+              ></el-button>
470
+            </el-tooltip>
454 471
           </template>
455 472
         </el-table-column>
456 473
       </el-table>
@@ -506,7 +523,7 @@
506 523
           <!-- <el-form-item label="治疗状态(转归):" prop="lapseto_type" required>
507 524
               <el-radio v-model="lapsetoForm.lapseto_type" :label="lapsetoForm.lapseto_type">转出</el-radio>
508 525
               <el-radio v-model="lapsetoForm.lapseto_type" :label="lapsetoForm.lapseto_type">死亡</el-radio>
509
-              
526
+
510 527
           </el-form-item> -->
511 528
           <el-form-item label="转归(死亡)时间 :" prop="lapseto_time" required>
512 529
             <el-date-picker
@@ -765,7 +782,7 @@
765 782
     },
766 783
     created() {
767 784
       if(sessionStorage.getItem('patientPageSize')){
768
-        this.listQuery.limit = parseInt(sessionStorage.getItem('patientPageSize')) 
785
+        this.listQuery.limit = parseInt(sessionStorage.getItem('patientPageSize'))
769 786
       }
770 787
       this.getList()
771 788
       this.contagionList = this.$store.getters.contagions
@@ -781,6 +798,17 @@
781 798
     },
782 799
 
783 800
     methods: {
801
+      putOnRecord:function(type,row){
802
+        if(type == 1){
803
+
804
+
805
+        }else{
806
+
807
+
808
+
809
+
810
+        }
811
+      },
784 812
       generateTxt: function(log) {
785 813
         var content = ''
786 814
         var errlog = log.err_logs
@@ -1499,7 +1527,7 @@
1499 1527
         }else {
1500 1528
           return uParseTime(val, '{y}-{m}-{d}')
1501 1529
         }
1502
-       
1530
+
1503 1531
       },
1504 1532
     }
1505 1533
   }