Explorar el Código

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

See999 hace 4 años
padre
commit
749433f07c

+ 81 - 0
src/api/his/his.js Ver fichero

1
+import request from "@/utils/request";
2
+
3
+
4
+
5
+export function getSchedulePatientList(params) {
6
+  return request({
7
+    url: "/api/hispatient/list",
8
+    method: "get",
9
+    params:params
10
+  });
11
+}
12
+
13
+
14
+export function getPatientInfo(params) {
15
+  return request({
16
+    url: "/api/hispatient/get",
17
+    method: "get",
18
+    params:params
19
+  });
20
+}
21
+
22
+
23
+export function createCaseHistory(params) {
24
+  return request({
25
+    url: "/api/doctorworkstation/casehistory/create",
26
+    method: "post",
27
+    params:params
28
+  });
29
+}
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+export function getInitData(params) {
38
+  return request({
39
+    url: "/api/hisprescription/config",
40
+    method: "get",
41
+    params:params
42
+  });
43
+}
44
+
45
+
46
+export function getDoctors() {
47
+  return request({
48
+    url: "/api/admin/get",
49
+    method: "get",
50
+  });
51
+}
52
+
53
+
54
+
55
+export function createHisPrescription(data, params) {
56
+  return request({
57
+    url: "/api/hisprescription/create",
58
+    method: "post",
59
+    data:data,
60
+    params:params,
61
+  });
62
+}
63
+
64
+
65
+
66
+
67
+
68
+
69
+// export function createCaseHistory(params) {
70
+//   return request({
71
+//     url: "/api/doctorworkstation/casehistory/create",
72
+//     method: "post",
73
+//     params:params
74
+//   });
75
+// }
76
+
77
+
78
+
79
+
80
+
81
+

+ 1 - 1
src/api/patient.js Ver fichero

373
 }
373
 }
374
 
374
 
375
 export function deleteDryWeight(id, data) {
375
 export function deleteDryWeight(id, data) {
376
-  console.log('id', id)
376
+ 
377
   return request({
377
   return request({
378
     url: '/api/patient/deletedryweight?id=' + id,
378
     url: '/api/patient/deletedryweight?id=' + id,
379
     method: 'delete',
379
     method: 'delete',

+ 111 - 1
src/api/project/project.js Ver fichero

160
        method:"post",
160
        method:"post",
161
        data:data
161
        data:data
162
     })
162
     })
163
-}
163
+}
164
+
165
+
166
+export function getAllProjectList(params){
167
+    return request({
168
+       url:"/api/his/getallprojectlist",
169
+       methods:"get",
170
+       params:params
171
+    })
172
+}
173
+
174
+export function addProjectList(params){
175
+  
176
+    return request({
177
+       url:"/api/his/addprojectlist",
178
+       methods:"get",
179
+       params:params
180
+    })
181
+}
182
+
183
+export function getPatientInformation(id,params){
184
+   
185
+   return request({
186
+     url:"/api/his/getpatientinformation?id="+id,
187
+     methods:"Get",
188
+     params:params
189
+   })
190
+}
191
+
192
+export function DeleteProject(id,params){
193
+   
194
+    return request({
195
+       url:"/api/his/deleteproject?id="+id,
196
+       methods:"Get",
197
+       params:params
198
+    })
199
+}
200
+
201
+
202
+export function getHisProject(params){
203
+  
204
+    return request({
205
+       url:"/api/his/gethisproject",
206
+       methods:"get",
207
+       params:params
208
+    })
209
+}
210
+
211
+export function addProjectTeam(params){
212
+   
213
+  return request({
214
+      url:"/api/his/getprojectteam",
215
+      methods:"Get",
216
+      params:params
217
+  })
218
+}
219
+
220
+export function getAllDoctorList(params){
221
+   
222
+  return request({
223
+      url:"/api/his/getalldoctorlist",
224
+      methods:"Get",
225
+      params:params
226
+  })
227
+} 
228
+
229
+export function saveHisPatient(params){
230
+   
231
+    return request({
232
+        url:"/api/his/savehispatient",
233
+        methods:"get",
234
+        params:params
235
+    })
236
+}
237
+
238
+export function getAllProjectTeam(params){
239
+  
240
+  return request({
241
+     url:"/api/hist/getallprojecteam",
242
+     methods:"get",
243
+     params:params
244
+  })
245
+}
246
+
247
+export function getPojectListById(params){
248
+  
249
+  return request({
250
+    url:"/api/his/getprojectlistbyid",
251
+    methods:"get",
252
+    params:params 
253
+  })
254
+}
255
+
256
+export function getHisPatientHistory(params){
257
+  
258
+    return request({
259
+        url:"/api/his/gethispatienthistory",
260
+        methods:"get",
261
+        params:params
262
+    })
263
+}
264
+
265
+
266
+export function changePatient(id,params){
267
+   
268
+    return request({
269
+      url:"/api/patient/changepatient?id="+id,
270
+      method:"get",
271
+      params:params
272
+    })
273
+  }

+ 134 - 7
src/xt_pages/data/components/addInspection.vue Ver fichero

43
                 <el-form-item label="备注 : " prop="name" style="width:100%;">
43
                 <el-form-item label="备注 : " prop="name" style="width:100%;">
44
                     <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="form.remark"></el-input>
44
                     <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="form.remark"></el-input>
45
                 </el-form-item>
45
                 </el-form-item>
46
+  
47
+                 <el-form-item label="组套明细" style="width:50%;">
48
+                    <el-select v-model="form.project_detail" placeholder="请选择">
49
+                        <el-option
50
+                        v-for="item in projectList"
51
+                        :key="item.id"
52
+                        :label="item.project_name"
53
+                        :value="item.id">
54
+                        </el-option>
55
+                    </el-select>
56
+
57
+                    </el-form-item>
58
+                 <el-form-item label="数量" style="width:50%;"> 
59
+                      <div style="display:flex;"> 
60
+                         <el-input v-model="form.number" style="margin-right:10px;"></el-input>
61
+                         <el-button type="primary" @click="addProjectList">添加</el-button>
62
+                      </div>
63
+                  </el-form-item>
64
+            </el-form>
65
+            <el-form>
66
+                <el-table :data="tableData" border  style="100%" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row ref="tab">
67
+                    <el-table-column align="center" prop="name" label="分类" width="120">
68
+                        <template slot-scope="scope">{{getId(scope.row.cost_classify)}}</template>
69
+                    </el-table-column>
70
+                    <el-table-column align="center" prop="name" label="组套明细" width="120">
71
+                        <template slot-scope="scope">{{scope.row.project_name}}</template>
72
+                    </el-table-column>
73
+                     <el-table-column align="center" prop="name" label="数量" width="120">
74
+                        <template slot-scope="scope">{{scope.row.number}}</template>
75
+                    </el-table-column>
76
+                     <el-table-column align="center" prop="name" label="单位" width="120">
77
+                        <template slot-scope="scope">{{scope.row.unit}}</template>
78
+                    </el-table-column>
79
+                    <el-table-column align="center" prop="name" label="单价" width="120">
80
+                        <template slot-scope="scope">{{scope.row.price}}</template>
81
+                    </el-table-column>
82
+                    <el-table-column align="center" prop="name" label="操作">
83
+                        <template slot-scope="scope">
84
+                          <el-tooltip
85
+                            class="item"
86
+                            effect="dark"
87
+                            content="删除"
88
+                            placement="top"
89
+                            >
90
+                            <el-button
91
+                                type="danger"
92
+                                icon="el-icon-delete"
93
+                                size="small"
94
+                                @click="DeleteProject(scope.row.id,scope.$index)"
95
+                            ></el-button>
96
+                            </el-tooltip>
97
+                        </template>
98
+                    </el-table-column>
99
+                </el-table>
46
             </el-form>
100
             </el-form>
47
         </div>
101
         </div>
48
 
102
 
56
 
110
 
57
 <script>
111
 <script>
58
 import { getDictionaryDataConfig,getDataConfig } from "@/utils/data";
112
 import { getDictionaryDataConfig,getDataConfig } from "@/utils/data";
59
-import { saveProjectTeam } from "@/api/project/project"
113
+import { saveProjectTeam,getAllProjectList,addProjectList,DeleteProject } from "@/api/project/project"
60
 export default {
114
 export default {
61
     data(){
115
     data(){
62
         return{
116
         return{
70
               wubi:"",
124
               wubi:"",
71
               tube_color:"",
125
               tube_color:"",
72
               team_type:"",
126
               team_type:"",
73
-              remark:""
127
+              remark:"",
128
+              project_detail:"",
129
+              number:""
74
             },
130
             },
75
             options: [
131
             options: [
76
             {value: 1,label: '是'},
132
             {value: 1,label: '是'},
84
               wubi: [{ required: true, message: '请填写五笔' , trigger: 'blur' }],
140
               wubi: [{ required: true, message: '请填写五笔' , trigger: 'blur' }],
85
               price: [{ required: true, message: '请填写价格', trigger: 'change' }],
141
               price: [{ required: true, message: '请填写价格', trigger: 'change' }],
86
               team_type: [{ required:true,message:'请填写组套类型',trigger:'change' }]
142
               team_type: [{ required:true,message:'请填写组套类型',trigger:'change' }]
87
-           }
143
+           },
144
+           tableData:[],
145
+           projectList:[]
88
         }
146
         }
89
     },
147
     },
90
     methods:{
148
     methods:{
110
          this.visible = false
168
          this.visible = false
111
         },
169
         },
112
         submitAction(formName){
170
         submitAction(formName){
171
+          
113
            this.$refs[formName].validate((valid)=>{
172
            this.$refs[formName].validate((valid)=>{
114
-               var params = {
173
+                var arr = []
174
+                for(let i=0;i<this.tableData.length;i++){
175
+                    arr.push(this.tableData[i].id)
176
+                }
177
+                console.log("arr",arr)
178
+                var ids = arr.join(",")
179
+                var params = {
115
                  project_team:this.form.project_team,
180
                  project_team:this.form.project_team,
116
                  price:this.form.price,
181
                  price:this.form.price,
117
                  pinyin:this.form.pinyin,
182
                  pinyin:this.form.pinyin,
118
                  wubi:this.form.wubi,
183
                  wubi:this.form.wubi,
119
                  tube_color:this.form.tube_color,
184
                  tube_color:this.form.tube_color,
120
                  team_type:this.form.team_type,
185
                  team_type:this.form.team_type,
121
-                 remark:this.form.remark
186
+                 remark:this.form.remark,
187
+                 ids:ids,
122
                }
188
                }
123
                console.log("params",params)
189
                console.log("params",params)
124
               saveProjectTeam(params).then(response=>{
190
               saveProjectTeam(params).then(response=>{
125
                  if(response.data.state == 1){
191
                  if(response.data.state == 1){
126
                    var projectTeam = response.data.data.projectTeam
192
                    var projectTeam = response.data.data.projectTeam
127
                    console.log("projectTeam",projectTeam)
193
                    console.log("projectTeam",projectTeam)
128
-                   this.$message.success("保存成功")
129
-                  
194
+                   this.$message.success("保存成功")  
130
                    this.visible = false
195
                    this.visible = false
131
                    this.form.project_team = "",
196
                    this.form.project_team = "",
132
                    this.form.price = "",
197
                    this.form.price = "",
136
                    this.form.team_type = "",
201
                    this.form.team_type = "",
137
                    this.form.remark = ""
202
                    this.form.remark = ""
138
                    this.$parent.getlist()
203
                    this.$parent.getlist()
204
+                 }else{
205
+                    this.$message.error("项目组套名称已存在!")
139
                  }
206
                  }
140
               }) 
207
               }) 
141
            })
208
            })
209
+        },
210
+        getlist(){
211
+          getAllProjectList().then(response=>{
212
+             if(response.data.state == 1){
213
+               var projectList = response.data.data.projectList
214
+               console.log('projectlist33333',projectList)
215
+               this.projectList = projectList
216
+               var hisprojectlist = response.data.data.hisprojectlist
217
+               console.log("hisprojectlist",hisprojectlist)
218
+               this.tableData = hisprojectlist
219
+             }
220
+          })   
221
+        },
222
+        addProjectList(){
223
+            const params = {
224
+              id:this.form.project_detail,
225
+              number:parseInt(this.form.number)
226
+            }
227
+           console.log("params",params)
228
+          addProjectList(params).then(response=>{
229
+             if(response.data.state == 1){
230
+               var projectList = response.data.data.projectList
231
+               this.$message.success("保存成功")
232
+               this.form.project_detail = ""
233
+               this.form.number = ""
234
+               this.getlist()
235
+             }
236
+          })
237
+        },
238
+        getId(id){
239
+          var name = ""
240
+          var statistics_category =  getDictionaryDataConfig('system','statistics_category') 
241
+          console.log("2235",statistics_category)
242
+          for(let i=0;i<statistics_category.length;i++){
243
+             if(id == statistics_category[i].id){
244
+                 name = statistics_category[i].name
245
+             }
246
+          }
247
+          return name
248
+        },
249
+        DeleteProject(id,index){
250
+           this.$confirm("确认删除此项目吗?", "删除", {
251
+            confirmButtonText: "确 定",
252
+            cancelButtonText: "取 消",
253
+            type: "warning"
254
+         }).then(() => {
255
+          DeleteProject(id).then(response => {
256
+            if (response.data.state == 1) {
257
+               this.tableData.splice(index, 1);
258
+            } else {
259
+             
260
+            }
261
+          });
262
+        })
263
+        .catch(() => {});
142
         }
264
         }
265
+    },
266
+    created(){
267
+      //获取所以的项目
268
+      this.getlist()
269
+   
143
     }
270
     }
144
 }
271
 }
145
 </script>
272
 </script>

+ 33 - 1
src/xt_pages/data/components/addProject.vue Ver fichero

104
                                 </el-option>
104
                                 </el-option>
105
                             </el-select>
105
                             </el-select>
106
                         </el-form-item>
106
                         </el-form-item>
107
+                        <el-form-item label="单次用量 : " prop="medical_code">
108
+                            <el-input v-model="form.single_dose" style="width:160px;" placeholder="" maxlength="30"></el-input>
109
+                        </el-form-item>
110
+                          <el-form-item label="用法 : " prop="medical_code">
111
+                            <el-input v-model="form.delivery_way" style="width:160px;" placeholder="" maxlength="30"></el-input>
112
+                        </el-form-item>
113
+                          <el-form-item label="频率 : " prop="medical_code">
114
+                            <el-input v-model="form.execution_frequency" style="width:160px;" placeholder="" maxlength="30"></el-input>
115
+                        </el-form-item>
116
+                          <el-form-item label="天数 : " prop="medical_code">
117
+                            <el-input v-model="form.number_days" style="width:160px;" placeholder="" maxlength="30"></el-input>
118
+                        </el-form-item>
119
+                          <el-form-item label="总量 : " prop="medical_code">
120
+                            <el-input v-model="form.total" style="width:160px;" placeholder="" maxlength="30"></el-input>
121
+                        </el-form-item>
107
                         <el-form-item label="状态 : " prop="medical_status" style="width:100%;">
122
                         <el-form-item label="状态 : " prop="medical_status" style="width:100%;">
108
                             <el-radio-group v-model="form.medical_status">
123
                             <el-radio-group v-model="form.medical_status">
109
                                 <el-radio :label="1">停用</el-radio>
124
                                 <el-radio :label="1">停用</el-radio>
233
               is_workload:"",
248
               is_workload:"",
234
               sort:"",
249
               sort:"",
235
               is_advice:"",
250
               is_advice:"",
251
+              single_dose:"",
252
+              delivery_way:"",
253
+              execution_frequency:"",
254
+              number_days:"",
255
+              total:""
236
             },
256
             },
237
             rules: {
257
             rules: {
238
                 project_name: [{ required: true, message: '请填写项目名称', trigger: 'blur'  }],
258
                 project_name: [{ required: true, message: '请填写项目名称', trigger: 'blur'  }],
300
                     is_workload:this.form.is_workload,
320
                     is_workload:this.form.is_workload,
301
                     sort:this.form.sort,
321
                     sort:this.form.sort,
302
                     is_advice:this.form.is_advice,
322
                     is_advice:this.form.is_advice,
303
-                    is_default:this.form.is_default
323
+                    is_default:this.form.is_default,
324
+                    single_dose:this.form.single_dose,
325
+                    delivery_way:this.form.delivery_way,
326
+                    execution_frequency:this.form.execution_frequency,
327
+                    number_days:this.form.number_days,
328
+                    total:this.form.total,
304
                }
329
                }
305
            
330
            
306
               saveProject(params).then(response=>{
331
               saveProject(params).then(response=>{
332
                    this.form.sort = ""
357
                    this.form.sort = ""
333
                    this.form.is_advice = ""
358
                    this.form.is_advice = ""
334
                    this.form.is_default = ""
359
                    this.form.is_default = ""
360
+                   this.form.single_dose = ""
361
+                   this.form.delivery_way = ""
362
+                   this.form.execution_frequency = ""
363
+                   this.form.number_days = ""
364
+                   this.form.total = ""
365
+                 }else {
366
+                    this.$message.error("项目名称已存在!")
335
                  }
367
                  }
336
               })
368
               })
337
             }
369
             }

+ 127 - 5
src/xt_pages/data/components/editInspection.vue Ver fichero

43
                 <el-form-item label="备注 : " prop="name" style="width:100%;">
43
                 <el-form-item label="备注 : " prop="name" style="width:100%;">
44
                     <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="form.remark"></el-input>
44
                     <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="form.remark"></el-input>
45
                 </el-form-item>
45
                 </el-form-item>
46
+                 <el-form-item label="组套明细" style="width:50%;">
47
+                    <el-select v-model="form.project_detail" placeholder="请选择">
48
+                        <el-option
49
+                        v-for="item in projectList"
50
+                        :key="item.id"
51
+                        :label="item.project_name"
52
+                        :value="item.id">
53
+                        </el-option>
54
+                    </el-select>
55
+
56
+                    </el-form-item>
57
+                 <el-form-item label="数量" style="width:50%;"> 
58
+                      <div style="display:flex;"> 
59
+                         <el-input v-model="form.number" style="margin-right:10px;"></el-input>
60
+                         <el-button type="primary" @click="addProjectList">添加</el-button>
61
+                      </div>
62
+                  </el-form-item>
63
+            </el-form>
64
+            <el-form>
65
+                <el-table :data="tableData" border  style="100%" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row ref="tab">
66
+                    <el-table-column align="center" prop="name" label="分类" width="120">
67
+                        <template slot-scope="scope">{{getId(scope.row.cost_classify)}}</template>
68
+                    </el-table-column>
69
+                    <el-table-column align="center" prop="name" label="组套明细" width="120">
70
+                        <template slot-scope="scope">{{scope.row.project_name}}</template>
71
+                    </el-table-column>
72
+                     <el-table-column align="center" prop="name" label="数量" width="120">
73
+                        <template slot-scope="scope">{{scope.row.number}}</template>
74
+                    </el-table-column>
75
+                     <el-table-column align="center" prop="name" label="单位" width="120">
76
+                        <template slot-scope="scope">{{scope.row.unit}}</template>
77
+                    </el-table-column>
78
+                    <el-table-column align="center" prop="name" label="单价" width="120">
79
+                        <template slot-scope="scope">{{scope.row.price}}</template>
80
+                    </el-table-column>
81
+                    <el-table-column align="center" prop="name" label="操作">
82
+                        <template slot-scope="scope">
83
+                          <el-tooltip
84
+                            class="item"
85
+                            effect="dark"
86
+                            content="删除"
87
+                            placement="top"
88
+                            >
89
+                            <el-button
90
+                                type="danger"
91
+                                icon="el-icon-delete"
92
+                                size="small"
93
+                                @click="DeleteProject(scope.row.id,scope.$index)"
94
+                            ></el-button>
95
+                            </el-tooltip>
96
+                        </template>
97
+                    </el-table-column>
98
+                </el-table>
46
             </el-form>
99
             </el-form>
47
         </div>
100
         </div>
48
 
101
 
55
 </template>
108
 </template>
56
 
109
 
57
 <script>
110
 <script>
58
-import { getProjectTeamDetail,updatedProjectTeam } from "@/api/project/project"
111
+import { getProjectTeamDetail,updatedProjectTeam,getAllProjectList,addProjectList,DeleteProject } from "@/api/project/project"
59
 import { getDictionaryDataConfig,getDataConfig} from "@/utils/data";
112
 import { getDictionaryDataConfig,getDataConfig} from "@/utils/data";
60
 export default {
113
 export default {
61
     data(){
114
     data(){
71
               wubi:"",
124
               wubi:"",
72
               tube_color:"",
125
               tube_color:"",
73
               team_type:"",
126
               team_type:"",
74
-              remark:""
127
+              remark:"",
128
+              project_detail:"",
129
+              number:"",
75
             },
130
             },
76
             options: [{
131
             options: [{
77
             value: 1,
132
             value: 1,
88
               wubi: [{ required: true, message: '请填写五笔' , trigger: 'blur' }],
143
               wubi: [{ required: true, message: '请填写五笔' , trigger: 'blur' }],
89
               price: [{ required: true, message: '请填写价格', trigger: 'change' }],
144
               price: [{ required: true, message: '请填写价格', trigger: 'change' }],
90
               team_type: [{ required:true,message:'请填写组套类型',trigger:'change' }]
145
               team_type: [{ required:true,message:'请填写组套类型',trigger:'change' }]
91
-           }
146
+           },
147
+           tableData:[]
92
         }
148
         }
93
     },
149
     },
94
     methods:{
150
     methods:{
133
         },
189
         },
134
         submitAction(formName){
190
         submitAction(formName){
135
            this.$refs[formName].validate((valid)=>{
191
            this.$refs[formName].validate((valid)=>{
136
-              if(valid){
192
+               var arr = []
193
+                for(let i=0;i<this.tableData.length;i++){
194
+                    arr.push(this.tableData[i].id)
195
+                }
196
+               console.log("arr",arr)
197
+               var ids = arr.join(",")
198
+               if(valid){
137
                 var params = {
199
                 var params = {
138
                     id:this.form.id,
200
                     id:this.form.id,
139
                     project_team:this.form.project_team,
201
                     project_team:this.form.project_team,
142
                     wubi:this.form.wubi,
204
                     wubi:this.form.wubi,
143
                     tube_color:this.form.tube_color,
205
                     tube_color:this.form.tube_color,
144
                     team_type:this.form.team_type,
206
                     team_type:this.form.team_type,
145
-                    remark:this.form.remark
207
+                    remark:this.form.remark,
208
+                    ids:ids,
146
                 }
209
                 }
210
+                console.log("params",params)
147
                  updatedProjectTeam(params).then(response=>{
211
                  updatedProjectTeam(params).then(response=>{
148
                    if(response.data.state == 1){
212
                    if(response.data.state == 1){
149
                      var projectTeam = response.data.data.projectTeam
213
                      var projectTeam = response.data.data.projectTeam
155
               }
219
               }
156
            })  
220
            })  
157
         
221
         
222
+        },
223
+       getlist(){
224
+          getAllProjectList().then(response=>{
225
+             if(response.data.state == 1){
226
+               var projectList = response.data.data.projectList
227
+               console.log('projectlist33333',projectList)
228
+               this.projectList = projectList
229
+               var hisprojectlist = response.data.data.hisprojectlist
230
+               console.log("hisprojectlist",hisprojectlist)
231
+               this.tableData = hisprojectlist
232
+             }
233
+          })   
234
+        },
235
+        getId(id){
236
+          var name = ""
237
+          var statistics_category =  getDictionaryDataConfig('system','statistics_category') 
238
+          console.log("2235",statistics_category)
239
+          for(let i=0;i<statistics_category.length;i++){
240
+             if(id == statistics_category[i].id){
241
+                 name = statistics_category[i].name
242
+             }
243
+          }
244
+          return name
245
+        },
246
+       addProjectList(){
247
+            const params = {
248
+              id:this.form.project_detail,
249
+              number:parseInt(this.form.number)
250
+            }
251
+           console.log("params",params)
252
+          addProjectList(params).then(response=>{
253
+             if(response.data.state == 1){
254
+               var projectList = response.data.data.projectList
255
+               this.$message.success("保存成功")
256
+               this.form.project_detail = ""
257
+               this.form.number = ""
258
+               this.getlist()
259
+             }
260
+          })
261
+        },
262
+        DeleteProject(id,index){
263
+           this.$confirm("确认删除此项目吗?", "删除", {
264
+            confirmButtonText: "确 定",
265
+            cancelButtonText: "取 消",
266
+            type: "warning"
267
+         }).then(() => {
268
+          DeleteProject(id).then(response => {
269
+            if (response.data.state == 1) {
270
+               this.tableData.splice(index, 1);
271
+            } else {
272
+             
273
+            }
274
+          });
275
+        })
276
+        .catch(() => {});
158
         }
277
         }
278
+    },
279
+    created(){
280
+       this.getlist()   
159
     }
281
     }
160
 }
282
 }
161
 </script>
283
 </script>

+ 33 - 1
src/xt_pages/data/components/editProject.vue Ver fichero

103
                                 :value="item.id">
103
                                 :value="item.id">
104
                                 </el-option>
104
                                 </el-option>
105
                             </el-select>
105
                             </el-select>
106
+                        </el-form-item>
107
+                         <el-form-item label="单次用量 : " prop="medical_code">
108
+                            <el-input v-model="form.single_dose" style="width:160px;" placeholder="" maxlength="30"></el-input>
109
+                        </el-form-item>
110
+                          <el-form-item label="用法 : " prop="medical_code">
111
+                            <el-input v-model="form.delivery_way" style="width:160px;" placeholder="" maxlength="30"></el-input>
112
+                        </el-form-item>
113
+                          <el-form-item label="频率 : " prop="medical_code">
114
+                            <el-input v-model="form.execution_frequency" style="width:160px;" placeholder="" maxlength="30"></el-input>
115
+                        </el-form-item>
116
+                          <el-form-item label="天数 : " prop="medical_code">
117
+                            <el-input v-model="form.number_days" style="width:160px;" placeholder="" maxlength="30"></el-input>
118
+                        </el-form-item>
119
+                          <el-form-item label="总量 : " prop="medical_code">
120
+                            <el-input v-model="form.total" style="width:160px;" placeholder="" maxlength="30"></el-input>
106
                         </el-form-item>
121
                         </el-form-item>
107
                         <el-form-item label="状态 : " prop="medical_status" style="width:100%;">
122
                         <el-form-item label="状态 : " prop="medical_status" style="width:100%;">
108
                             <el-radio-group v-model="form.medical_status">
123
                             <el-radio-group v-model="form.medical_status">
113
                         <el-form-item label="备注 : " prop="remark" style="width:100%;">
128
                         <el-form-item label="备注 : " prop="remark" style="width:100%;">
114
                             <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="form.remark"></el-input>
129
                             <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="form.remark"></el-input>
115
                         </el-form-item>
130
                         </el-form-item>
131
+
132
+                        
116
                     </el-form>
133
                     </el-form>
117
                 </div>
134
                 </div>
118
             </el-tab-pane>
135
             </el-tab-pane>
235
               is_workload:"",
252
               is_workload:"",
236
               sort:"",
253
               sort:"",
237
               is_advice:"",
254
               is_advice:"",
255
+              single_dose:"",
256
+              delivery_way:"",
257
+              execution_frequency:"",
258
+              number_days:"",
259
+              total:""
238
             },
260
             },
239
             rules: {
261
             rules: {
240
                 project_name: [{ required: true, message: '请填写项目名称', trigger: 'blur'  }],
262
                 project_name: [{ required: true, message: '请填写项目名称', trigger: 'blur'  }],
302
               this.form.is_workload = projecDetail.is_workload
324
               this.form.is_workload = projecDetail.is_workload
303
               this.form.sort = projecDetail.sort
325
               this.form.sort = projecDetail.sort
304
               this.form.is_advice = projecDetail.doctor_advice
326
               this.form.is_advice = projecDetail.doctor_advice
327
+              this.form.single_dose = projecDetail.single_dose
328
+              this.form.delivery_way = projecDetail.delivery_way
329
+              this.form.execution_frequency = projecDetail.execution_frequency
330
+              this.form.number_days = projecDetail.number_days
331
+              this.form.total = projecDetail.total
305
             }
332
             }
306
          })
333
          })
307
        },
334
        },
334
                     is_workload:this.form.is_workload,
361
                     is_workload:this.form.is_workload,
335
                     sort:this.form.sort,
362
                     sort:this.form.sort,
336
                     is_advice:this.form.is_advice,
363
                     is_advice:this.form.is_advice,
337
-                    is_default:this.form.is_default
364
+                    is_default:this.form.is_default,
365
+                    single_dose:this.form.single_dose,
366
+                    delivery_way:this.form.delivery_way,
367
+                    execution_frequency:this.form.execution_frequency,
368
+                    number_days:this.form.number_days,
369
+                    total:this.form.total,
338
                }
370
                }
339
               
371
               
340
               updatedProject(params).then(response=>{
372
               updatedProject(params).then(response=>{

+ 13 - 4
src/xt_pages/data/components/inspection.vue Ver fichero

4
             <div class="cell clearfix" style="margin-bottom:0;">
4
             <div class="cell clearfix" style="margin-bottom:0;">
5
                 <el-input style="width: 180px;margin-right:10px;" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
5
                 <el-input style="width: 180px;margin-right:10px;" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
6
                 <el-button style="margin-right:10px;" class="filter-item" type="primary" icon="el-icon-search" @click="searchAction">搜索</el-button>
6
                 <el-button style="margin-right:10px;" class="filter-item" type="primary" icon="el-icon-search" @click="searchAction">搜索</el-button>
7
-                <label class="title"><span class="name">是否启用</span> : </label>
8
-                <el-select v-model="value" style="width:140px;margin-right:10px;" placeholder="请选择">
7
+                <!-- <label class="title"><span class="name">是否启用</span> : </label> -->
8
+                <!-- <el-select v-model="value" style="width:140px;margin-right:10px;" placeholder="请选择">
9
                     <el-option
9
                     <el-option
10
                     v-for="item in options"
10
                     v-for="item in options"
11
                     :key="item.value"
11
                     :key="item.value"
12
                     :label="item.label"
12
                     :label="item.label"
13
                     :value="item.value">
13
                     :value="item.value">
14
                     </el-option>
14
                     </el-option>
15
-                </el-select>
15
+                </el-select> -->
16
             </div>
16
             </div>
17
             <el-button type="primary" @click="openForm(0)">新增</el-button>
17
             <el-button type="primary" @click="openForm(0)">新增</el-button>
18
         </div>
18
         </div>
75
 <script>
75
 <script>
76
 import addInspection from './addInspection'
76
 import addInspection from './addInspection'
77
 import editInspection from './editInspection'
77
 import editInspection from './editInspection'
78
+import { getDictionaryDataConfig,getDataConfig } from "@/utils/data";
78
 import { getProjectTeamList,DeleteProjectTeam } from "@/api/project/project"
79
 import { getProjectTeamList,DeleteProjectTeam } from "@/api/project/project"
79
 export default {
80
 export default {
80
     components:{
81
     components:{
100
         }
101
         }
101
     },
102
     },
102
     methods:{
103
     methods:{
104
+       getDataConfig(module, filed_name){
105
+         return getDataConfig(module, filed_name)
106
+       },
107
+        getDictionaryDataConfig(module, filed_name) {
108
+          return getDictionaryDataConfig(module, filed_name)
109
+       },
103
       handleSizeChange(val) {
110
       handleSizeChange(val) {
104
         this.limit = val
111
         this.limit = val
105
         this.getlist()
112
         this.getlist()
123
         },
130
         },
124
         getlist(){
131
         getlist(){
125
             const params = {
132
             const params = {
133
+               keyword:this.search_input,
126
                limit:this.limit,
134
                limit:this.limit,
127
                page:this.page,
135
                page:this.page,
128
             }
136
             }
154
         }
162
         }
155
     },
163
     },
156
     created(){
164
     created(){
157
-       this.getlist()  
165
+       this.getlist() 
166
+      
158
     }
167
     }
159
 }
168
 }
160
 </script>
169
 </script>

+ 24 - 12
src/xt_pages/data/components/project.vue Ver fichero

3
         <div style="display:flex;justify-content: space-between;width:100%;margin-bottom:20px;">
3
         <div style="display:flex;justify-content: space-between;width:100%;margin-bottom:20px;">
4
             <div class="cell clearfix" style="margin-bottom:0;">
4
             <div class="cell clearfix" style="margin-bottom:0;">
5
                 <el-input style="width: 180px;margin-right:10px;" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
5
                 <el-input style="width: 180px;margin-right:10px;" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
6
-                <el-button style="margin-right:10px;" class="filter-item" type="primary" icon="el-icon-search" @click="searchAction">搜索</el-button>
6
+                <el-button style="margin-right:10px;" class="filter-item" type="primary" icon="el-icon-search" @click="searchAction" >搜索</el-button>
7
                 <label class="title"><span class="name">是否启用</span> : </label>
7
                 <label class="title"><span class="name">是否启用</span> : </label>
8
-                <el-select v-model="value" style="width:140px;margin-right:10px;" placeholder="请选择">
8
+                <el-select v-model="is_start" style="width:140px;margin-right:10px;" placeholder="请选择" @change="changeStart">
9
                     <el-option
9
                     <el-option
10
                     v-for="item in options"
10
                     v-for="item in options"
11
                     :key="item.value"
11
                     :key="item.value"
14
                     </el-option>
14
                     </el-option>
15
                 </el-select>
15
                 </el-select>
16
                 <label class="title"><span class="name">是否收费</span> : </label>
16
                 <label class="title"><span class="name">是否收费</span> : </label>
17
-                <el-select v-model="value" style="width:140px;margin-right:10px;" placeholder="请选择">
17
+                <el-select v-model="is_charge" style="width:140px;margin-right:10px;" placeholder="请选择">
18
                     <el-option
18
                     <el-option
19
-                    v-for="item in options"
19
+                    v-for="item in optionOne"
20
                     :key="item.value"
20
                     :key="item.value"
21
                     :label="item.label"
21
                     :label="item.label"
22
                     :value="item.value">
22
                     :value="item.value">
96
     data(){
96
     data(){
97
         return{
97
         return{
98
             search_input:'',
98
             search_input:'',
99
-            options: [{
100
-            value: '1',
101
-            label: '是'
102
-            }, {
103
-            value: '2',
104
-            label: '否'
105
-            },],
99
+            options: [
100
+             {value:0,label:'全部'},
101
+             {value:1,label: '停用'},
102
+             {value:2,label: '收费'}
103
+            ],
104
+            optionOne:[
105
+              {value:0,label:'全部'},
106
+              {value:1,label:'是'},
107
+              {value:2,label:'否'}
108
+            ],
106
             value: '',
109
             value: '',
107
             limit:20,
110
             limit:20,
108
             page:1,
111
             page:1,
109
             total:0,
112
             total:0,
110
-            tableData: []
113
+            tableData: [],
114
+            is_start:0,
115
+            is_charge:0
111
         }
116
         }
112
     },
117
     },
113
     methods:{
118
     methods:{
119
+        changeStart(id){
120
+          console.log("id",id)
121
+        },
114
         handleSizeChange(val) {
122
         handleSizeChange(val) {
115
             this.limit = val
123
             this.limit = val
116
             this.getlist()
124
             this.getlist()
154
       
162
       
155
         getlist(){
163
         getlist(){
156
             var params = {
164
             var params = {
165
+               keyword:this.search_input,
166
+               is_charge:this.is_charge,
167
+               is_start:this.is_start,
157
                limit:this.limit,
168
                limit:this.limit,
158
                page:this.page,
169
                page:this.page,
159
             }
170
             }
171
+           console.log("222",params)
160
           getProjectList(params).then(response=>{
172
           getProjectList(params).then(response=>{
161
              if(response.data.state == 1){
173
              if(response.data.state == 1){
162
                var projecList = response.data.data.projecList
174
                var projecList = response.data.data.projecList

+ 1 - 1
src/xt_pages/data/specialDictionary.vue Ver fichero

1
-<template>
1
+ <template>
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>

+ 3 - 2
src/xt_pages/outpatientCharges/components/additionalCharges.vue Ver fichero

39
                 name:''
39
                 name:''
40
             },
40
             },
41
             tableData:[
41
             tableData:[
42
-              {id:1,name:"zs",money:50},
43
-              {id:2,name:"ls",money:60}  
42
+              {id:1,name:"工本费",money:""},
43
+              {id:2,name:"挂号费",money:""},
44
+              {id:3,name:"诊疗费",money:""}  
44
             ],
45
             ],
45
             patient_id:0,
46
             patient_id:0,
46
             chargeTable:[]
47
             chargeTable:[]

+ 89 - 87
src/xt_pages/outpatientCharges/outpatientChargesManagement.vue Ver fichero

10
                     <p>已就诊:<span>0</span>人</p>
10
                     <p>已就诊:<span>0</span>人</p>
11
                 </div>
11
                 </div>
12
                 <div class="mainCell">
12
                 <div class="mainCell">
13
-                    <el-radio-group v-model="radio">
14
-                        <el-radio :label="1">未就诊</el-radio>
15
-                        <el-radio :label="2">已就诊</el-radio>
16
-                        <el-radio :label="3">全部</el-radio>
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>
17
                     </el-radio-group>
18
                 </div>
18
                 </div>
19
                 <div class="mainCell" style="margin-bottom:10px;">
19
                 <div class="mainCell" style="margin-bottom:10px;">
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;">
23
                 <div style="flex:1;overflow-y:auto;">
24
-                    <el-table :data="patientTableData" border @row-click='choosePatient' style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
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">
25
                         <el-table-column align="center" prop="name" label="患者姓名">
28
                         <el-table-column align="center" prop="name" label="患者姓名">
26
                             <template slot-scope="scope">{{ scope.row.name }}</template>
29
                             <template slot-scope="scope">{{ scope.row.name }}</template>
27
                         </el-table-column>
30
                         </el-table-column>
28
                         <el-table-column align="center" prop="name" label="就诊号" width="90">
31
                         <el-table-column align="center" prop="name" label="就诊号" width="90">
29
-                            <template slot-scope="scope">{{ scope.row.mdtrt_id }}</template>
32
+                            <template slot-scope="scope">3222</template>
30
                         </el-table-column>
33
                         </el-table-column>
31
                     </el-table>
34
                     </el-table>
32
                 </div>
35
                 </div>
66
                     <div class="centerRight">
69
                     <div class="centerRight">
67
                         <p class="centerRightTitle">人员信息</p>
70
                         <p class="centerRightTitle">人员信息</p>
68
                         <div style="display:flex;justify-content: space-between;line-height:30px;">
71
                         <div style="display:flex;justify-content: space-between;line-height:30px;">
69
-                            <span style="font-size:14px;">人员编码:{{ patientInfo.psn_no }}</span>
70
-                            <span style="font-size:14px;">日期:2020-11-13</span>
72
+                            <span style="font-size:14px;">人员编码:</span>
73
+                            <span style="font-size:14px;">日期:{{start_time}}</span>
71
                         </div>
74
                         </div>
72
                         <ul class="basicUl">
75
                         <ul class="basicUl">
73
-                            <li style="width:50%;">姓名:{{ patientInfo.psn_name }}</li>
76
+                            <li style="width:50%;">姓名:{{ patientInfo.name }}</li>
74
                             <li style="width:50%;">性别:{{ patientInfo && patientInfo.gend == 1 ? '男' : "女" }}</li>
77
                             <li style="width:50%;">性别:{{ patientInfo && patientInfo.gend == 1 ? '男' : "女" }}</li>
75
                             <li style="width:50%;">年龄:{{ patientInfo.age }}</li>
78
                             <li style="width:50%;">年龄:{{ patientInfo.age }}</li>
76
                             <li style="width:50%;">身高:</li>
79
                             <li style="width:50%;">身高:</li>
107
 import medicalInsuranceRefund from './components/medicalInsuranceRefund'
110
 import medicalInsuranceRefund from './components/medicalInsuranceRefund'
108
 import prescriptionTable from './components/prescriptionTable'
111
 import prescriptionTable from './components/prescriptionTable'
109
 import additionalCharges from './components/additionalCharges'
112
 import additionalCharges from './components/additionalCharges'
113
+import { getPatientList,getPatientInformation } from "@/api/project/project"
114
+const moment = require('moment')
110
 export default {
115
 export default {
111
     components:{
116
     components:{
112
         BreadCrumb,
117
         BreadCrumb,
122
                 { path: false, name: '门诊收费' },
127
                 { path: false, name: '门诊收费' },
123
                 { path: false, name: '门诊收费管理' }
128
                 { path: false, name: '门诊收费管理' }
124
             ],
129
             ],
125
-            tableData: [{
126
-            date: '2016-05-02',
127
-            name: '王小虎',
128
-            address: '上海市普陀区金沙江路 1518 弄'
129
-            }, {
130
-            date: '2016-05-04',
131
-            name: '王小虎',
132
-            address: '上海市普陀区金沙江路 1517 弄'
133
-            }, {
134
-            date: '2016-05-01',
135
-            name: '王小虎',
136
-            address: '上海市普陀区金沙江路 1519 弄'
137
-            }, {
138
-            date: '2016-05-03',
139
-            name: '王小虎',
140
-            address: '上海市普陀区金沙江路 1516 弄'
141
-            },{
142
-            date: '2016-05-02',
143
-            name: '王小虎',
144
-            address: '上海市普陀区金沙江路 1518 弄'
145
-            }, {
146
-            date: '2016-05-04',
147
-            name: '王小虎',
148
-            address: '上海市普陀区金沙江路 1517 弄'
149
-            }, {
150
-            date: '2016-05-01',
151
-            name: '王小虎',
152
-            address: '上海市普陀区金沙江路 1519 弄'
153
-            }, {
154
-            date: '2016-05-03',
155
-            name: '王小虎',
156
-            address: '上海市普陀区金沙江路 1516 弄'
157
-            },{
158
-            date: '2016-05-02',
159
-            name: '王小虎',
160
-            address: '上海市普陀区金沙江路 1518 弄'
161
-            }, {
162
-            date: '2016-05-04',
163
-            name: '王小虎',
164
-            address: '上海市普陀区金沙江路 1517 弄'
165
-            }, {
166
-            date: '2016-05-01',
167
-            name: '王小虎',
168
-            address: '上海市普陀区金沙江路 1519 弄'
169
-            }, {
170
-            date: '2016-05-03',
171
-            name: '王小虎',
172
-            address: '上海市普陀区金沙江路 1516 弄'
173
-            }, {
174
-            date: '2016-05-04',
175
-            name: '王小虎',
176
-            address: '上海市普陀区金沙江路 1517 弄'
177
-            }, {
178
-            date: '2016-05-01',
179
-            name: '王小虎',
180
-            address: '上海市普陀区金沙江路 1519 弄'
181
-            }, {
182
-            date: '2016-05-03',
183
-            name: '王小虎',
184
-            address: '上海市普陀区金沙江路 1516 弄'
185
-            }],
130
+            tableData: [],
186
             editableTabsValue: '1',
131
             editableTabsValue: '1',
187
             editableTabs: [{
132
             editableTabs: [{
188
             title: '处方1',
133
             title: '处方1',
197
             patientInfo:{},
142
             patientInfo:{},
198
             doctor:{},
143
             doctor:{},
199
             total:0,
144
             total:0,
200
-            state:'未收费'
145
+            state:'未收费',
146
+            radio:1,
147
+            radioStatus:1,
148
+            search_input:"",
149
+            start_time:moment().locale('zh-cn').format('YYYY-MM-DD')
201
         }
150
         }
202
     },
151
     },
203
     created(){
152
     created(){
204
-        
153
+       
154
+       //获取患者信息
155
+       this.getPatientList()
205
     },
156
     },
206
     methods:{
157
     methods:{
207
         moreState(tab, event){
158
         moreState(tab, event){
255
             this.preTableData.map(item => {
206
             this.preTableData.map(item => {
256
                 this.total += item.unitPrice
207
                 this.total += item.unitPrice
257
             })
208
             })
258
-            this.patientInfo = {
259
-                certno:"440221195903290027",
260
-                psn_no:"0221201972",
261
-                gend:"2",
262
-                brdy:"1960-03-29",
263
-                naty:"01",
264
-                psn_cert_type:"01",
265
-                psn_name:"杨美英",
266
-                age:60.7
267
-            }
268
-            this.doctor = {
269
-                name:'刘志刚',
270
-                department:'血透中心',
271
-                total:20,
272
-            }
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
+            // }
224
+        },
225
+       changeRadio(id){ 
226
+         console.log(id)
227
+         this.radioStatus = id
228
+         this.getPatientList()
229
+       },
230
+
231
+        //患者列表
232
+        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
+           })
254
+        },
255
+
256
+        unique(arr) {
257
+            const res = new Map();
258
+            return arr.filter((arr) => !res.has(arr.id_card_no) && res.set(arr.id_card_no, 1))
259
+        },
260
+        handleCurrentChange(val){
261
+          console.log("val",val)
262
+          this.getPatientInformation(val.id)
263
+        },
264
+        
265
+        //获取患者的基本信息
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
+            })
273
         }
275
         }
274
     }
276
     }
275
 }
277
 }

+ 42 - 4
src/xt_pages/outpatientDoctorStation/components/additionalCharges.vue Ver fichero

5
         :visible.sync="visible"
5
         :visible.sync="visible"
6
         :before-close="_close"
6
         :before-close="_close"
7
     >
7
     >
8
-        <el-table :data="tableData" border style="width: 100%;" height="300" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
8
+        <el-table :data="tableData" border style="width: 100%;" height="300" :row-style="{ color: '#303133' }" 
9
+        :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row
10
+          @selection-change="handleSelectionChange">
9
             <el-table-column align="center" type="selection" width="40"></el-table-column>
11
             <el-table-column align="center" type="selection" width="40"></el-table-column>
10
             <el-table-column align="center" prop="name" label="名称" width="100">
12
             <el-table-column align="center" prop="name" label="名称" width="100">
11
-                <template slot-scope="scope">{{ scope.row.date }}</template>
13
+                <template slot-scope="scope">{{ scope.row.name }}</template>
12
             </el-table-column>
14
             </el-table-column>
13
             <el-table-column align="center" prop="name" label="金额(元)">
15
             <el-table-column align="center" prop="name" label="金额(元)">
14
                 <template slot-scope="scope">
16
                 <template slot-scope="scope">
15
-                    <el-input v-model="input" placeholder=""></el-input>
17
+                    <el-input v-model="scope.row.money" placeholder=""></el-input>
16
                 </template>
18
                 </template>
17
             </el-table-column>
19
             </el-table-column>
18
         </el-table>
20
         </el-table>
19
         <div slot="footer" class="dialog-footer">
21
         <div slot="footer" class="dialog-footer">
20
             <el-button @click="hide">取 消</el-button>
22
             <el-button @click="hide">取 消</el-button>
21
-            <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
23
+            <el-button type="primary"  @click="submitAction()">保 存</el-button>
22
         </div>
24
         </div>
23
     </el-dialog>         
25
     </el-dialog>         
24
 </template>
26
 </template>
25
 
27
 
26
 <script>
28
 <script>
29
+ import { saveCharges } from "@/api/project/project"
27
 export default {
30
 export default {
31
+   props: {
32
+      hisPatientInfo: Object,
33
+      patientInfo:Object,
34
+    },
28
     data(){
35
     data(){
29
         return{
36
         return{
30
             visible:false,
37
             visible:false,
31
             form:{
38
             form:{
32
                 name:''
39
                 name:''
33
             },
40
             },
41
+            tableData:[
42
+              {id:1,name:"工本费",money:""},
43
+              {id:2,name:"挂号费",money:""},
44
+              {id:3,name:"诊疗费",money:""}  
45
+            ],
46
+            chargeTable:[]
34
         }
47
         }
35
     },
48
     },
36
     methods:{
49
     methods:{
51
             // this.clear()
64
             // this.clear()
52
             this.visible = false
65
             this.visible = false
53
         },
66
         },
67
+        handleSelectionChange(val){
68
+          console.log("val",val)
69
+          this.chargeTable = val
70
+        },
71
+        submitAction(){
72
+          var params = {
73
+             his_patient_id:this.hisPatientInfo.id,
74
+             patient_id:this.patientInfo.id,
75
+             medicineData:this.chargeTable
76
+           }
77
+           console.log("params",params)
78
+          saveCharges(params).then(response=>{
79
+             if(response.data.state == 1){
80
+               var additionalCharge =  response.data.data.additionalCharge
81
+               console.log("additionalchar",additionalCharge)
82
+               this.visible = false
83
+               this.$message.success("保存成功")
84
+             }
85
+          })      
86
+        }
87
+    },
88
+    watch:{
89
+       hisPatientInfo:function(val){
90
+         console.log("患者ID",this)  
91
+       }
54
     }
92
     }
55
 }
93
 }
56
 </script>
94
 </script>

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 751 - 503
src/xt_pages/outpatientDoctorStation/components/deskPrescription.vue


+ 305 - 223
src/xt_pages/outpatientDoctorStation/components/deskRecord.vue Ver fichero

1
 <template>
1
 <template>
2
-    <div class="deskRecord">
3
-        <div style="overflow:hidden;border-top:1px solid #e5e5e5;margin-top:5px;">
4
-            <div class="mainCell" style="margin-bottom:10px;float:right">
5
-                <el-button size="small" @click="open(1)" type="primary" style="margin-left:10px;">保存</el-button>
6
-                <el-button size="small" @click="open(2)" type="primary">打印</el-button>
7
-                <el-button size="small" @click="open(3)" type="primary">病历调用</el-button>
8
-                <el-button size="small" @click="open(4)" type="primary">存模板</el-button>
9
-            </div>
10
-        </div>
11
-        <div class="backColor"></div>
12
-        <div class="mainTitle">基本信息:</div>
13
-        <el-form class="basicForm" :model="form" :rules="rules" ref="form" label-width="120px">
14
-            <el-form-item label="姓名:" prop="name">
15
-                <el-input v-model="form.name" placeholder=""></el-input>
16
-            </el-form-item>
17
-            <el-form-item label="性别: " prop="name">
18
-                <el-select style="width:100%;" v-model="value" placeholder="">
19
-                    <el-option
20
-                    v-for="item in options"
21
-                    :key="item.value"
22
-                    :label="item.label"
23
-                    :value="item.value">
24
-                    </el-option>
25
-                </el-select>
26
-            </el-form-item>
27
-            <el-form-item label="年龄: " prop="name">
28
-                <el-input v-model="form.name" placeholder=""></el-input>
29
-            </el-form-item>
30
-            <el-form-item label="证件号:" prop="name">
31
-                <el-input v-model="form.name" placeholder=""></el-input>
32
-            </el-form-item>
33
-            <el-form-item label="出生日期: " prop="name">
34
-                <el-date-picker
35
-                style="width:100%;"
36
-                v-model="value1"
37
-                type="date"
38
-                placeholder="选择日期">
39
-                </el-date-picker>
40
-            </el-form-item>
41
-            <el-form-item label="联系电话: " prop="name">
42
-                <el-input v-model="form.name" placeholder=""></el-input>
43
-            </el-form-item>
44
-            <el-form-item label="关系联系人: " prop="name">
45
-                <el-input v-model="form.name" placeholder=""></el-input>
46
-            </el-form-item>
47
-            <el-form-item label="关系联系人电话: " prop="name">
48
-                <el-input v-model="form.name" placeholder=""></el-input>
49
-            </el-form-item>
50
-            <el-form-item label="家庭住址: " prop="name">
51
-                <el-input v-model="form.name" placeholder=""></el-input>
52
-            </el-form-item>
53
-        </el-form>
54
-        <div class="mainTitle">体格信息:</div>
55
-        <el-form class="physiqueForm" :model="form" :rules="rules" ref="form" label-width="80px">
56
-            <el-form-item label="体温:" prop="name">
57
-                <el-input v-model="form.name" placeholder=""></el-input><span>℃</span>
58
-            </el-form-item>
59
-            <el-form-item label="血糖: " prop="name">
60
-                <el-input v-model="form.name" placeholder=""></el-input>mmol/L
61
-            </el-form-item>
62
-            <el-form-item label="脉搏: " prop="name">
63
-                <el-input v-model="form.name" placeholder=""></el-input>(次/分)
64
-            </el-form-item>
65
-            <el-form-item label="血压:" prop="name">
66
-                <el-input v-model="form.name" placeholder=""></el-input>/
67
-                <el-input v-model="form.name" placeholder=""></el-input>mmHg
68
-            </el-form-item>
69
-            <el-form-item label="身高: " prop="name">
70
-                <el-input v-model="form.name" placeholder=""></el-input>cm
71
-            </el-form-item>
72
-            <el-form-item label="血脂: " prop="name">
73
-                <el-input v-model="form.name" placeholder=""></el-input>mmol/L
74
-            </el-form-item>
75
-            <el-form-item label="脉搏: " prop="name">
76
-                <el-input v-model="form.name" placeholder=""></el-input>(次/分)
77
-            </el-form-item>
78
-            <el-form-item label="体重: " prop="name">
79
-                <el-input v-model="form.name" placeholder=""></el-input>kg
80
-            </el-form-item>
81
-        </el-form>
82
-        <div class="mainTitle">病历信息:</div>
83
-        <el-form class="recordForm" :model="form" :rules="rules" ref="form" label-width="80px">
84
-            <el-form-item label="病历分类:" prop="name">
85
-                <el-select style="width:100%;" v-model="value" placeholder="">
86
-                    <el-option
87
-                    v-for="item in options"
88
-                    :key="item.value"
89
-                    :label="item.label"
90
-                    :value="item.value">
91
-                    </el-option>
92
-                </el-select>
93
-            </el-form-item>
94
-            <el-form-item label="症状: " prop="name">
95
-                <el-input v-model="form.name" placeholder=""></el-input>
96
-            </el-form-item>
97
-            <el-form-item label="发病日期: " prop="name">
98
-                <el-date-picker
99
-                style="width:100%;"
100
-                v-model="value1"
101
-                type="date"
102
-                placeholder="选择日期">
103
-                </el-date-picker>
104
-            </el-form-item>
105
-            <el-form-item label="" prop="name">
106
-                <el-checkbox v-model="checked">是否传染</el-checkbox>
107
-            </el-form-item>
108
-            <el-form-item label="主诉:" prop="name" style="width:100%;">
109
-                <el-input
110
-                type="textarea"
111
-                :rows="2"
112
-                placeholder="请输入内容"
113
-                v-model="textarea">
114
-                </el-input>
115
-            </el-form-item>
116
-            <el-form-item label="现病史:" prop="name" style="width:100%;">
117
-                <el-input
118
-                type="textarea"
119
-                :rows="2"
120
-                placeholder="请输入内容"
121
-                v-model="textarea">
122
-                </el-input>
123
-            </el-form-item>
124
-            <el-form-item label="既往史:" prop="name" style="width:100%;">
125
-                <el-input
126
-                type="textarea"
127
-                :rows="2"
128
-                placeholder="请输入内容"
129
-                v-model="textarea">
130
-                </el-input>
131
-            </el-form-item>
132
-            <el-form-item label="个人史:" prop="name" style="width:100%;">
133
-                <el-input
134
-                type="textarea"
135
-                :rows="2"
136
-                placeholder="请输入内容"
137
-                v-model="textarea">
138
-                </el-input>
139
-            </el-form-item>
140
-            <el-form-item label="家族史:" prop="name" style="width:100%;">
141
-                <el-input
142
-                type="textarea"
143
-                :rows="2"
144
-                placeholder="请输入内容"
145
-                v-model="textarea">
146
-                </el-input>
147
-            </el-form-item>
148
-            <el-form-item label="诊断信息:" prop="name" style="width:100%;">
149
-                <el-input
150
-                type="textarea"
151
-                :rows="2"
152
-                placeholder="请输入内容"
153
-                v-model="textarea">
154
-                </el-input>
155
-            </el-form-item>
156
-        </el-form>
157
-        <medicalRecord ref='medicalRecord'></medicalRecord>
158
-        <saveRecordTemplate ref='saveRecordTemplate'></saveRecordTemplate>
2
+  <div class="deskRecord">
3
+    <div style="overflow:hidden;border-top:1px solid #e5e5e5;margin-top:5px;">
4
+      <div class="mainCell" style="margin-bottom:10px;float:right">
5
+        <el-button size="small" @click="open(1)" type="primary" style="margin-left:10px;">保存</el-button>
6
+        <el-button size="small" @click="open(2)" type="primary">打印</el-button>
7
+        <el-button size="small" @click="open(3)" type="primary">病历调用</el-button>
8
+        <el-button size="small" @click="open(4)" type="primary">存模板</el-button>
9
+      </div>
159
     </div>
10
     </div>
11
+    <div class="backColor"></div>
12
+    <div class="mainTitle">基本信息:</div>
13
+    <el-form class="basicForm" :model="patientInfo" :rules="rules" ref="form" label-width="120px">
14
+      <el-form-item label="姓名:" prop="name">
15
+        <el-input v-model="patientInfo.name" placeholder="" readonly></el-input>
16
+      </el-form-item>
17
+      <el-form-item label="性别: " prop="name">
18
+        <div v-if="patientInfo.gender == 1">男</div>
19
+        <div v-if="patientInfo.gender == 2">女</div>
20
+      </el-form-item>
21
+      <el-form-item label="年龄: " prop="name">
22
+        <el-input v-model="patientInfo.age" placeholder="" readonly></el-input>
23
+      </el-form-item>
24
+      <el-form-item label="证件号:" prop="name">
25
+        <el-input v-model="patientInfo.id_card_no" placeholder="" readonly></el-input>
26
+      </el-form-item>
27
+      <el-form-item label="出生日期: " prop="name">
28
+        <el-date-picker
29
+          style="width:100%;"
30
+          v-model="patientInfo.birth"
31
+          type="date"
32
+          readonly
33
+          placeholder="选择日期">
34
+        </el-date-picker>
35
+      </el-form-item>
36
+      <el-form-item label="联系电话: " prop="name">
37
+        <el-input v-model="patientInfo.phone" placeholder="" readonly></el-input>
38
+      </el-form-item>
39
+
40
+      <el-form-item label="关系联系人电话: " prop="name">
41
+        <el-input v-model="patientInfo.relative_phone" placeholder="" readonly></el-input>
42
+      </el-form-item>
43
+      <el-form-item label="家庭住址: " prop="name">
44
+        <el-input v-model="patientInfo.home_address" placeholder="" readonly></el-input>
45
+      </el-form-item>
46
+    </el-form>
47
+    <div class="mainTitle">体格信息:</div>
48
+    <el-form class="physiqueForm" :model="case_history" :rules="rules" ref="form" label-width="80px">
49
+      <el-form-item label="体温:" prop="name">
50
+        <el-input v-model="case_history.temperature" placeholder=""></el-input>
51
+        <span>℃</span>
52
+      </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">
58
+        <el-input v-model="case_history.pulse" placeholder=""></el-input>
59
+        (次/分)
60
+      </el-form-item>
61
+      <el-form-item label="血压:" prop="name">
62
+        <el-input v-model="case_history.sbp" placeholder=""></el-input>
63
+        /
64
+        <el-input v-model="case_history.dbp" placeholder=""></el-input>
65
+        mmHg
66
+      </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
+    <div class="mainTitle">病历信息:</div>
77
+    <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">
92
+        <el-date-picker
93
+          style="width:100%;"
94
+          v-model="case_history.sick_date"
95
+          type="date"
96
+          placeholder="选择日期">
97
+        </el-date-picker>
98
+      </el-form-item>
99
+      <el-form-item label="" prop="name">
100
+        <el-checkbox v-model="case_history.is_infect">是否传染</el-checkbox>
101
+      </el-form-item>
102
+      <el-form-item label="主诉:" prop="name" style="width:100%;">
103
+        <el-input
104
+          type="textarea"
105
+          :rows="2"
106
+          placeholder="请输入内容"
107
+          v-model="case_history.chief_conplaint">
108
+        </el-input>
109
+      </el-form-item>
110
+      <el-form-item label="现病史:" prop="name" style="width:100%;">
111
+        <el-input
112
+          type="textarea"
113
+          :rows="2"
114
+          placeholder="请输入内容"
115
+          v-model="case_history.history_of_present_illness">
116
+        </el-input>
117
+      </el-form-item>
118
+      <el-form-item label="既往史:" prop="name" style="width:100%;">
119
+        <el-input
120
+          type="textarea"
121
+          :rows="2"
122
+          placeholder="请输入内容"
123
+          v-model="case_history.past_history">
124
+        </el-input>
125
+      </el-form-item>
126
+      <el-form-item label="个人史:" prop="name" style="width:100%;">
127
+        <el-input
128
+          type="textarea"
129
+          :rows="2"
130
+          placeholder="请输入内容"
131
+          v-model="case_history.personal_history">
132
+        </el-input>
133
+      </el-form-item>
134
+      <el-form-item label="家族史:" prop="name" style="width:100%;">
135
+        <el-input
136
+          type="textarea"
137
+          :rows="2"
138
+          placeholder="请输入内容"
139
+          v-model="case_history.family_history">
140
+        </el-input>
141
+      </el-form-item>
142
+      <el-form-item label="诊断信息:" prop="name" style="width:100%;">
143
+        <el-input
144
+          type="textarea"
145
+          :rows="2"
146
+          placeholder="请输入内容"
147
+          v-model="case_history.diagnostic">
148
+        </el-input>
149
+      </el-form-item>
150
+    </el-form>
151
+    <medicalRecord ref='medicalRecord'></medicalRecord>
152
+    <saveRecordTemplate ref='saveRecordTemplate'></saveRecordTemplate>
153
+  </div>
160
 </template>
154
 </template>
161
 
155
 
162
 <script>
156
 <script>
163
-import medicalRecord from './medicalRecord'
164
-import saveRecordTemplate from './saveRecordTemplate'
165
-export default {
166
-    components:{
167
-       medicalRecord,
168
-       saveRecordTemplate 
157
+  import medicalRecord from './medicalRecord'
158
+  import saveRecordTemplate from './saveRecordTemplate'
159
+  import { getDictionaryDataConfig } from "@/utils/data";
160
+  import {  createCaseHistory } from '@/api/his/his'
161
+
162
+
163
+  export default {
164
+    props: {
165
+      case_history: Object,
166
+      patientInfo: Object,
167
+      hisPatientInfo: Object,
168
+      record_date:String,
169
     },
169
     },
170
-    data(){
171
-        return{
172
-            form:{
173
-                name:''
174
-            },
170
+    components: {
171
+      medicalRecord,
172
+      saveRecordTemplate
173
+    },
174
+    data() {
175
+      return {
176
+        case_history:{
177
+          sick_type:'',
178
+          symptom:"",
179
+          sick_date:"",
180
+          is_infect:"",
181
+          chief_conplaint:"",
182
+          history_of_present_illness:"",
183
+          past_history:"",
184
+          diagnostic:"",
185
+          personal_history:"",
186
+          family_history:"",
187
+
188
+        },
189
+        formValue:{
190
+          temperature:"",
191
+          blood_sugar:"",
192
+          pulse:"",
193
+          sbp:"",
194
+          dbp:"",
195
+          height:"",
196
+          blood_fat:"",
197
+        },
198
+        form: {
199
+          name: ''
175
         }
200
         }
201
+      }
176
     },
202
     },
177
-    methods:{
178
-        open(index){
179
-            if(index == 1){
180
-                
181
-            }else if(index == 2){
182
-                
183
-            }else if(index == 3){
184
-                this.$refs.medicalRecord.show()
185
-            }else if(index == 4){
186
-                this.$refs.saveRecordTemplate.show()
203
+    methods: {
204
+      getDictionaryDataConfig(module, filed_name) {
205
+        return getDictionaryDataConfig(module, filed_name)
206
+
207
+      },
208
+      setData(case_history,patientInfo,hisPatientInfo){
209
+        this.form.name = patientInfo.name
210
+
211
+
212
+
213
+      },
214
+      open(index) {
215
+        if (index == 1) {
216
+          if(this.patientInfo.id == undefined){
217
+            this.$message.error("请先选择病人")
218
+            return
219
+          }
220
+
221
+          let params = {
222
+            "patient_id":this.patientInfo.id,
223
+            "temperature":this.case_history.temperature,
224
+            "blood_sugar":this.case_history.blood_sugar,
225
+            "pulse":this.case_history.pulse,
226
+            "sbp":this.case_history.sbp,
227
+            "dbp":this.case_history.dbp,
228
+            "blood_fat":this.case_history.blood_fat,
229
+            "height":this.case_history.height,
230
+            "sick_type":this.case_history.sick_type,
231
+            "symptom":this.case_history.symptom,
232
+            "sick_date":this.case_history.sick_date,
233
+            "is_infect":this.case_history.is_infect,
234
+            "chief_conplaint":this.case_history.chief_conplaint,
235
+            "history_of_present_illness":this.case_history.history_of_present_illness,
236
+            "past_history":this.case_history.past_history,
237
+            "personal_history":this.case_history.personal_history,
238
+            "family_history":this.case_history.family_history,
239
+            "record_date":this.record_date,
240
+
241
+
242
+          }
243
+          createCaseHistory(params).then(response => {
244
+            if (response.data.state == 0) {
245
+              this.$message.error(response.data.msg)
246
+              return false
247
+            } else {
248
+              this.$message.success("保存成功")
187
             }
249
             }
188
-            
189
-        },
250
+          })
251
+        } else if (index == 2) {
252
+
253
+        } else if (index == 3) {
254
+          this.$refs.medicalRecord.show()
255
+        } else if (index == 4) {
256
+          this.$refs.saveRecordTemplate.show()
257
+        }
258
+
259
+      }
190
     }
260
     }
191
-}
261
+  }
192
 </script>
262
 </script>
193
 
263
 
194
 
264
 
195
 <style lang="scss" scoped>
265
 <style lang="scss" scoped>
196
-.mainTitle{
197
-    font-size:18px;
198
-    font-weight:bold;
266
+  .mainTitle {
267
+    font-size: 18px;
268
+    font-weight: bold;
199
     margin-bottom: 10px;
269
     margin-bottom: 10px;
200
-}
201
-.backColor{
270
+  }
271
+
272
+  .backColor {
202
     background: #f6f8f9;
273
     background: #f6f8f9;
203
     height: 5px;
274
     height: 5px;
204
     margin-bottom: 5px;
275
     margin-bottom: 5px;
205
-}
206
-.deskRecord{
207
-    .basicForm{
208
-        display: flex;
209
-        flex-wrap: wrap;
210
-        .el-form-item{
211
-            width:32%;
212
-            margin-right: 1%;
213
-        }
214
-    }
215
-    .physiqueForm{
216
-        display: flex;
217
-        flex-wrap: wrap;
218
-        .el-form-item{
219
-            width:24%;
220
-            margin-right: 1%;
221
-        }
222
-    }
223
-    .recordForm{
224
-        display: flex;
225
-        flex-wrap: wrap;
226
-        .el-form-item{
227
-            width:24%;
228
-            margin-right: 1%;
229
-        }
230
-    }
231
-    
232
-}
276
+  }
277
+
278
+  .deskRecord {
279
+
280
+  .basicForm {
281
+    display: flex;
282
+    flex-wrap: wrap;
283
+
284
+  .el-form-item {
285
+    width: 32%;
286
+    margin-right: 1%;
287
+  }
288
+
289
+  }
290
+  .physiqueForm {
291
+    display: flex;
292
+    flex-wrap: wrap;
293
+
294
+  .el-form-item {
295
+    width: 24%;
296
+    margin-right: 1%;
297
+  }
298
+
299
+  }
300
+  .recordForm {
301
+    display: flex;
302
+    flex-wrap: wrap;
303
+
304
+  .el-form-item {
305
+    width: 24%;
306
+    margin-right: 1%;
307
+  }
308
+
309
+  }
310
+
311
+  }
233
 </style>
312
 </style>
234
 
313
 
235
 <style lang="scss">
314
 <style lang="scss">
236
-.physiqueForm{
237
-    .el-form-item__content{
238
-        display: flex;
239
-    }
240
-    .el-input{
241
-        width:80px;
242
-        margin-right:5px;
243
-    }
244
-}
315
+  .physiqueForm {
316
+
317
+  .el-form-item__content {
318
+    display: flex;
319
+  }
320
+
321
+  .el-input {
322
+    width: 80px;
323
+    margin-right: 5px;
324
+  }
325
+
326
+  }
245
 </style>
327
 </style>

+ 236 - 137
src/xt_pages/outpatientDoctorStation/components/prescriptionTable.vue Ver fichero

1
 <template>
1
 <template>
2
-    <div class="prescriptionTable">
3
-        <el-table :data="preDrugs" 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="activeType  == 1" :data="prescription.advices" border style="width: 98%;" :row-style="{ color: '#303133' }"
4
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
5
+      <el-table-column align="center" prop="name" label="名称">
6
+        <template slot-scope="scope">{{ scope.row.drug_name }}</template>
7
+      </el-table-column>
8
+
9
+      <el-table-column align="center" prop="name" width="50" :label="'单次\n用量'">
10
+        <template slot-scope="scope">
11
+          <el-input  v-model="scope.row.single_dose"></el-input>
12
+          <div> {{scope.row.min_unit}}</div>
13
+        </template>
14
+      </el-table-column>
15
+      <el-table-column align="center" prop="name" width="50" label="用法">
16
+        <template slot-scope="scope">
17
+          <el-select v-model="scope.row.delivery_way" placeholder="请选择">
18
+            <el-option
19
+              v-for="item,index in drugways"
20
+              :key="index"
21
+              :label="item.name"
22
+              :value="item.name">
23
+            </el-option>
24
+          </el-select>
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="scope.row.execution_frequency" placeholder="请选择">
30
+            <el-option
31
+              v-for="item in efs"
32
+              :key="index"
33
+              :label="item.name"
34
+              :value="item.name">
35
+            </el-option>
36
+          </el-select>
37
+        </template>
38
+      </el-table-column>
39
+
40
+      <el-table-column align="center" prop="name" width="100" label="总量">
41
+        <template slot-scope="scope">
42
+          <div style="display:flex;">
43
+            <el-input v-model="scope.row.prescribing_number" style="width:50%" placeholder=""></el-input>
44
+            <div> {{scope.row.min_unit}}</div>
45
+          </div>
46
+        </template>
47
+      </el-table-column>
48
+      <el-table-column align="center" prop="name" width="50" label="单价">
49
+        <template slot-scope="scope">
50
+          <el-input v-model="scope.row.retail_price" 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-input v-model="scope.row.remark" style="width:50%" placeholder=""></el-input>
56
+        </template>
57
+      </el-table-column>
58
+      <el-table-column align="center" width="40" prop="name" label="操作">
59
+        <template slot-scope="scope">
60
+          <i class="el-icon-delete" @click="deleteDrug(scope.row)"></i>
61
+        </template>
62
+      </el-table-column>
63
+    </el-table>
64
+
65
+    <el-table v-if="activeType == 2" :data="prescription.project" border style="width: 98%;" :row-style="{ color: '#303133' }"
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>
68
+      <el-table-column align="center" type="index" width="40" label="序号">
69
+         <template slot-scope="scope">
70
+            {{scope.$index + 1}}
71
+         </template>
72
+      </el-table-column>
73
+      <el-table-column align="center" prop="project_name" label="名称">
74
+        <template slot-scope="scope">{{ scope.row.project_name }}</template>
75
+      </el-table-column>
76
+      <el-table-column align="center" prop="statistical_classification" width="50" label="组">
77
+        <template slot-scope="scope">
78
+          {{getGroup(scope.row.statistical_classification)}}
79
+        </template>
80
+      </el-table-column>
81
+      <el-table-column align="center" prop="single_dose" width="130" :label="'单次\n用量'">
82
+        <template slot-scope="scope">
83
+          <el-input v-model="scope.row.single_dose" placeholder=""></el-input>
84
+        </template>
85
+      </el-table-column>
86
+      <el-table-column align="center" prop="delivery_way" width="130" label="用法">
87
+        <template slot-scope="scope">
88
+          <el-input v-model="scope.row.delivery_way" placeholder=""></el-input>
89
+        </template>
90
+      </el-table-column>
91
+      <el-table-column align="center" prop="execution_frequency" width="130" label="频率">
92
+        <template slot-scope="scope">
93
+          <el-input v-model="scope.row.execution_frequency" placeholder=""></el-input>
94
+        </template>
95
+      </el-table-column>
96
+      <el-table-column align="center" prop="number_days" width="130" label="天数">
97
+        <template slot-scope="scope">
98
+          <el-input v-model="scope.row.number_days" placeholder=""></el-input>
99
+        </template>
100
+      </el-table-column>
101
+      <el-table-column align="center" prop="total" width="100" label="总量">
102
+        <template slot-scope="scope">
103
+          <div style="display:flex;">
104
+            <el-input v-model="scope.row.total" style="width:50" placeholder=""></el-input>
105
+          </div>
106
+        </template>
107
+      </el-table-column>
108
+      <el-table-column align="center" prop="name" width="50" label="单价">
109
+        <template slot-scope="scope">
110
+          <el-input v-model="scope.row.price" placeholder=""></el-input>
111
+        </template>
112
+      </el-table-column>
113
+      <el-table-column align="center" prop="name" width="120" label="备注">
114
+        <template slot-scope="scope">
115
+           <el-input v-model="scope.row.remark"></el-input>
116
+        </template>
117
+      </el-table-column>
118
+      <el-table-column align="center" width="40" prop="name" label="操作">
119
+        <template slot-scope="scope">
120
+          <i class="el-icon-delete" @click="deleteProject(scope.row)"></i>
121
+        </template>
122
+      </el-table-column>
123
+    </el-table>
124
+
125
+
126
+
127
+
128
+  </div>
105
 </template>
129
 </template>
106
 
130
 
107
 <script>
131
 <script>
108
-export default {
109
-    props:{
110
-        preDrugs:Array,
132
+  import { getDictionaryDataConfig} from "@/utils/data";
133
+  import { getInitData } from '@/api/his/his'
134
+
135
+  export default {
136
+    props: {
137
+      preDrugs: Array,
138
+      activeType: Number,
139
+      prescription:{
140
+        type:Object,
141
+        default: function () {
142
+          return {
143
+            name:"",
144
+            advices:[],
145
+            project:[],
146
+            drugways:[],
147
+            efs:[],
148
+          };
149
+        }
150
+      },
151
+    },
152
+    data() {
153
+      return {
154
+        advices:[],
155
+        tableData: [],
156
+        newoptions: [{
157
+          value: '1',
158
+          label: '1'
159
+        }, {
160
+          value: '2',
161
+          label: '2'
162
+        }, {
163
+          value: '3',
164
+          label: '3'
165
+        }, {
166
+          value: '4',
167
+          label: '4'
168
+        }, {
169
+          value: '5',
170
+          label: '5'
171
+        }],
172
+        value: '1',
173
+        input: 1,
174
+      }
111
     },
175
     },
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
176
+   methods:{
177
+      getInitData(){
178
+        getInitData().then(response => {
179
+          if (response.data.state == 0) {
180
+            this.$message.error(response.data.msg)
181
+            return false
182
+          } else {
183
+            this.drugways = response.data.data.drugways
184
+            this.efs = response.data.data.efs
185
+          }
186
+        })
187
+
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)
192
+          }
193
+        }
194
+      },
195
+    
196
+      setNewData:function(data){
197
+
198
+        // this.prescription.advices = data.advices
199
+      },
200
+      getDictionaryDataConfig(module, filed_name) {
201
+        return getDictionaryDataConfig(module, filed_name)
202
+      },
203
+      getGroup(id){
204
+         var name = ""
205
+          var statistics_category =  getDictionaryDataConfig('system','statistics_category')
206
+          console.log("2235",statistics_category)
207
+          for(let i=0;i<statistics_category.length;i++){
208
+             if(id == statistics_category[i].id){
209
+                 name = statistics_category[i].name
210
+             }
211
+          }
212
+         return name
213
+      },
214
+      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)
219
+          }
133
         }
220
         }
221
+      },
222
+    },mounted(){
223
+      this.getInitData()
224
+    },
225
+    watch:{
226
+      prescription:function(){
227
+        console.log("8888888",this)
228
+        console.log("9999999",this.prescription)
229
+      }
134
     }
230
     }
135
-}
231
+  }
136
 </script>
232
 </script>
137
 
233
 
138
 <style lang="scss">
234
 <style lang="scss">
139
-.prescriptionTable{
140
-    .el-table th .cell, .el-table td .cell{
141
-        padding: 0 2px;
142
-        white-space: pre-line;
143
-    }
144
-    .el-icon-delete{
145
-        color:red;
146
-    }
147
-}
235
+  .prescriptionTable {
236
+
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
+  }
245
+
246
+  }
148
 </style>
247
 </style>

+ 3 - 1
src/xt_pages/outpatientDoctorStation/components/saveTemplate.vue Ver fichero

6
         :before-close="_close"
6
         :before-close="_close"
7
     >
7
     >
8
         <div>
8
         <div>
9
-            <el-form :model="form" :rules="rules" class="adviceForm" ref="form" label-width="100px" style="display: flex;flex-wrap: wrap;justify-content: space-between;">
9
+            <el-form :model="form"  class="adviceForm" ref="form" label-width="100px" style="display: flex;flex-wrap: wrap;justify-content: space-between;">
10
                 <el-form-item label="创建人 : " style="width: 100%;margin-bottom:0;">
10
                 <el-form-item label="创建人 : " style="width: 100%;margin-bottom:0;">
11
                     医生
11
                     医生
12
                 </el-form-item>
12
                 </el-form-item>
59
             form:{
59
             form:{
60
                 name:''
60
                 name:''
61
             },
61
             },
62
+            radio:"1",
63
+            options:[]
62
         }
64
         }
63
     },
65
     },
64
     methods:{
66
     methods:{

+ 385 - 260
src/xt_pages/outpatientDoctorStation/doctorDesk.vue Ver fichero

1
 <template>
1
 <template>
2
-    <div class="main-contain new-main-contain">
3
-        <div class="position">
4
-            <bread-crumb :crumbs='crumbs'></bread-crumb>
2
+  <div class="main-contain new-main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+    </div>
6
+    <div class="app-container" style="display:flex;flex: 1;padding: 20px 20px 0px 20px;">
7
+      <div class="mainLeft">
8
+        <div class="mainCell" style="justify-content: space-between;">
9
+          <p>未就诊:<span>{{cal_one}}</span>人</p>
10
+          <p>已就诊:<span>{{cal_two}}</span>人</p>
11
+        </div>
12
+        <div class="mainCell">
13
+          <el-radio-group v-model="radio" @change="change">
14
+            <el-radio :label="1">未就诊</el-radio>
15
+            <el-radio :label="2">已就诊</el-radio>
16
+            <el-radio :label="0">全部</el-radio>
17
+          </el-radio-group>
18
+        </div>
19
+        <div class="mainCell" style="margin-bottom:10px;">
20
+          <el-input size="small" @keyup.enter.native='searchAction' v-model="search_input" class="filter-item"/>
21
+          <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary" @click="searchAction">
22
+            搜索
23
+          </el-button>
5
         </div>
24
         </div>
6
-        <div class="app-container" style="display:flex;flex: 1;padding: 20px 20px 0px 20px;">
7
-            <div class="mainLeft">
8
-                <div class="mainCell" style="justify-content: space-between;">
9
-                    <p>未就诊:<span>1</span>人</p>
10
-                    <p>已就诊:<span>0</span>人</p>
11
-                </div>
12
-                <div class="mainCell">
13
-                    <el-radio-group v-model="radio">
14
-                        <el-radio :label="1">未就诊</el-radio>
15
-                        <el-radio :label="2">已就诊</el-radio>
16
-                        <el-radio :label="3">全部</el-radio>
17
-                    </el-radio-group>
18
-                </div>
19
-                <div class="mainCell" style="margin-bottom:10px;">
20
-                    <el-input size="small" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
21
-                    <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
22
-                </div>
23
-                <div style="flex:1;overflow-y:auto;">
24
-                    <el-table :data="patientTableData" @row-click='choosePatient' border style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
25
-                        <el-table-column align="center" prop="name" label="患者姓名">
26
-                            <template slot-scope="scope">{{ scope.row.name }}</template>
27
-                        </el-table-column>
28
-                        <el-table-column align="center" prop="name" label="就诊号" width="90">
29
-                            <template slot-scope="scope">{{ scope.row.mdtrt_id }}</template>
30
-                        </el-table-column>
31
-                    </el-table>
32
-                </div>
33
-            </div> 
34
-            <div class="mainRight">
35
-                <div class="mainHeader">
36
-                    <el-radio-group v-model="titleType">
37
-                        <el-radio-button label="处方"></el-radio-button>
38
-                        <el-radio-button label="病历"></el-radio-button>
39
-                    </el-radio-group>
40
-                </div>
41
-                <desk-prescription :patientInfo="patientInfo" v-if="titleType == '处方'" style="flex:1;"></desk-prescription>
42
-                <desk-record v-if="titleType == '病历'"></desk-record>
43
-            </div>
44
-            
25
+        <div style="flex:1;overflow-y:auto;">
26
+          <el-table :data="patientTableData" @row-click='choosePatient' border style="width: 100%;"
27
+                    :row-style="{ color: '#303133' }"
28
+                    :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
29
+                     highlight-current-row
30
+                    ref="tab"
31
+                   >
32
+            <el-table-column align="center" prop="name" label="患者姓名">
33
+              <template slot-scope="scope">{{ scope.row.patients.name }}</template>
34
+            </el-table-column>
35
+            <el-table-column align="center" prop="name" label="就诊号" width="90">
36
+              <template slot-scope="scope">{{ scope.row.his_patient.number }}</template>
37
+            </el-table-column>
38
+          </el-table>
45
         </div>
39
         </div>
40
+      </div>
41
+      <div class="mainRight">
42
+        <div class="mainHeader">
43
+          <el-radio-group v-model="titleType" @change="changeTab">
44
+            <el-radio-button label="处方"></el-radio-button>
45
+            <el-radio-button label="病历"></el-radio-button>
46
+          </el-radio-group>
47
+        </div>
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"
51
+                           v-if="titleType == '处方'" style="flex:1;"></desk-prescription>
52
+        <desk-record :record_date="record_date" :case_history="case_history" :patientInfo="patientInfo"
53
+                     :hisPatientInfo="hisPatientInfo" v-if="titleType == '病历'"></desk-record>
54
+      </div>
55
+
46
     </div>
56
     </div>
57
+  </div>
47
 </template>
58
 </template>
48
 
59
 
49
 <script>
60
 <script>
50
-import BreadCrumb from '@/xt_pages/components/bread-crumb'
51
-import deskPrescription from './components/deskPrescription'
52
-import deskRecord from './components/deskRecord'
53
-export default {
54
-    components:{
55
-        BreadCrumb,
56
-        deskPrescription,
57
-        deskRecord
61
+  import BreadCrumb from '@/xt_pages/components/bread-crumb'
62
+  import deskPrescription from './components/deskPrescription'
63
+  import deskRecord from './components/deskRecord'
64
+  import { getPatientInfo, getSchedulePatientList } from '@/api/his/his'
65
+
66
+  import { uParseTime } from '@/utils/tools'
67
+
68
+  export default {
69
+    components: {
70
+      BreadCrumb,
71
+      deskPrescription,
72
+      deskRecord
58
     },
73
     },
59
-    data(){
60
-        return{
61
-            crumbs: [
62
-                { path: false, name: '门诊医生站' },
63
-                { path: false, name: '医生工作台' }
64
-            ],
65
-            titleType:'处方',
66
-            patientTableData:[{
67
-                name:'杨美英',
68
-                mdtrt_id:"1709946",
69
-            }],
70
-            tableData: [{
71
-            date: '2016-05-02',
72
-            name: '王小虎',
73
-            address: '上海市普陀区金沙江路 1518 弄'
74
-            }, {
75
-            date: '2016-05-04',
76
-            name: '王小虎',
77
-            address: '上海市普陀区金沙江路 1517 弄'
78
-            }, {
79
-            date: '2016-05-01',
80
-            name: '王小虎',
81
-            address: '上海市普陀区金沙江路 1519 弄'
82
-            }, {
83
-            date: '2016-05-03',
84
-            name: '王小虎',
85
-            address: '上海市普陀区金沙江路 1516 弄'
86
-            },{
87
-            date: '2016-05-02',
88
-            name: '王小虎',
89
-            address: '上海市普陀区金沙江路 1518 弄'
90
-            }, {
91
-            date: '2016-05-04',
92
-            name: '王小虎',
93
-            address: '上海市普陀区金沙江路 1517 弄'
94
-            }, {
95
-            date: '2016-05-01',
96
-            name: '王小虎',
97
-            address: '上海市普陀区金沙江路 1519 弄'
98
-            }, {
99
-            date: '2016-05-03',
100
-            name: '王小虎',
101
-            address: '上海市普陀区金沙江路 1516 弄'
102
-            },{
103
-            date: '2016-05-02',
104
-            name: '王小虎',
105
-            address: '上海市普陀区金沙江路 1518 弄'
106
-            }, {
107
-            date: '2016-05-04',
108
-            name: '王小虎',
109
-            address: '上海市普陀区金沙江路 1517 弄'
110
-            }, {
111
-            date: '2016-05-01',
112
-            name: '王小虎',
113
-            address: '上海市普陀区金沙江路 1519 弄'
114
-            }, {
115
-            date: '2016-05-03',
116
-            name: '王小虎',
117
-            address: '上海市普陀区金沙江路 1516 弄'
118
-            }, {
119
-            date: '2016-05-04',
120
-            name: '王小虎',
121
-            address: '上海市普陀区金沙江路 1517 弄'
122
-            }, {
123
-            date: '2016-05-01',
124
-            name: '王小虎',
125
-            address: '上海市普陀区金沙江路 1519 弄'
126
-            }, {
127
-            date: '2016-05-03',
128
-            name: '王小虎',
129
-            address: '上海市普陀区金沙江路 1516 弄'
130
-            }],
131
-            patientInfo:{}
132
-        }
74
+    data() {
75
+      return {
76
+        prescriptions: [
77
+          {
78
+            name: '处方1',
79
+            advice: [],
80
+            project: []
81
+          }
82
+        ],
83
+        search_input: '',
84
+        cal_one: 0,
85
+        cal_two: 0,
86
+        radio: 0,
87
+        record_date: '',
88
+        crumbs: [
89
+          { path: false, name: '门诊医生站' },
90
+          { path: false, name: '医生工作台' }
91
+        ],
92
+        titleType: '处方',
93
+        patientTableData: [{}],
94
+        patientInfo: {},
95
+        hisPatientInfo: {},
96
+        case_history: {},
97
+        patient_id:0,
98
+      }
133
     },
99
     },
134
-    methods:{
135
-        choosePatient(){
136
-            this.patientInfo = {
137
-                certno:"440221195903290027",
138
-                psn_no:"0221201972",
139
-                gend:"2",
140
-                brdy:"1960-03-29",
141
-                naty:"01",
142
-                psn_cert_type:"01",
143
-                psn_name:"杨美英",
144
-                age:60.7
100
+    methods: {
101
+      changeTab(val) {
102
+
103
+      },
104
+      searchAction() {
105
+
106
+      },
107
+      change(val) {
108
+        this.getList()
109
+
110
+      },
111
+      getList() {
112
+        let params = {
113
+          'record_date': this.record_date,
114
+          'type': this.radio
115
+        }
116
+        getSchedulePatientList(params).then(response => {
117
+          if (response.data.state == 0) {
118
+            this.$message.error(response.data.msg)
119
+            return false
120
+          } else {
121
+            this.patientTableData = response.data.data.list
122
+            console.log("222",this.patientTableData)
123
+            // this.$refs.tab.setCurrentRow(this.patientTableData[0])
124
+            let cal_one = 0
125
+            let cal_two = 0
126
+            for (let i = 0; i < response.data.data.list.length; i++) {
127
+              if (response.data.data.list[i].prescription == null || response.data.data.list[i].prescription.length == 0) {
128
+                cal_one = cal_one + 1
129
+              }
130
+              if (response.data.data.list[i].prescription != null && response.data.data.list[i].prescription.length > 0) {
131
+                cal_two = cal_two + 1
132
+              }
145
             }
133
             }
134
+
135
+            this.cal_one = cal_one
136
+            this.cal_two = cal_two
137
+          }
138
+        })
139
+      },
140
+      choosePatient(val) {
141
+        let params = {
142
+          'record_date': this.record_date,
143
+          'patient_id': val.patients.id
146
         }
144
         }
145
+        getPatientInfo(params).then(response => {
146
+          if (response.data.state == 0) {
147
+            this.$message.error(response.data.msg)
148
+            return false
149
+          } else {
150
+            this.patientInfo = response.data.data.xt_info
151
+            this.hisPatientInfo = response.data.data.his_info
152
+            this.case_history = response.data.data.case_history
153
+            this.patientInfo.birth = uParseTime(this.patientInfo.birthday, '{y}-{m}-{d}')
154
+            if (this.case_history.temperature <= 0) {
155
+              this.case_history.temperature = ''
156
+            }
157
+            if (this.case_history.blood_sugar <= 0) {
158
+              this.case_history.blood_sugar = ''
159
+            }
160
+            if (this.case_history.pulse <= 0) {
161
+              this.case_history.pulse = ''
162
+            }
163
+            if (this.case_history.sbp <= 0) {
164
+              this.case_history.sbp = ''
165
+            }
166
+            if (this.case_history.dbp <= 0) {
167
+              this.case_history.dbp = ''
168
+            }
169
+            if (this.case_history.height <= 0) {
170
+              this.case_history.height = ''
171
+            }
172
+            if (this.case_history.blood_fat <= 0) {
173
+              this.case_history.blood_fat = ''
174
+            }
175
+            if (this.case_history.sick_type <= 0) {
176
+              this.case_history.sick_type = ''
177
+            }
178
+            this.case_history.sick_date = uParseTime(this.case_history.sick_date, '{y}-{m}-{d}')
179
+            if (this.case_history.is_infect == 1) {
180
+              this.case_history.is_infect = true
181
+            } else {
182
+              this.case_history.is_infect = false
183
+            }
184
+            this.prescriptions = []
185
+            if (response.data.data.prescription.length > 0) {
186
+              for (let i = 0; i < response.data.data.prescription.length; i++) {
187
+                var prescription = response.data.data.prescription[i]
188
+                let index = i + 1
189
+                let obj = {
190
+                  name: "处方" + index,
191
+                  advices: prescription.advices,
192
+                  projects: prescription.project,
193
+                }
194
+                this.prescriptions.push(obj)
195
+              }
196
+            }else{
197
+              let obj = {
198
+                name: "处方" + 1,
199
+                advices: [],
200
+                projects: [],
201
+              }
202
+              this.prescriptions.push(obj)
203
+            }
204
+           
205
+            this.$refs.prescriptions.setData(this.prescriptions)
206
+          }
207
+        })
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
+      },
220
+      // changePatient(val){
221
+      //   console.log("患者val",val)
222
+      //   this.hisPatientInfo = val.hisPatientInfo
223
+      //   console.log("333333",this.hisPatientInfo)
224
+      // }
225
+    }, created() {
226
+      var nowDate = new Date()
227
+      var nowYear = nowDate.getFullYear()
228
+      var nowMonth = nowDate.getMonth() + 1
229
+      var nowDay = nowDate.getDate()
230
+      this.record_date =
231
+        nowYear +
232
+        '-' +
233
+        (nowMonth < 10 ? '0' + nowMonth : nowMonth) +
234
+        '-' +
235
+        (nowDay < 10 ? '0' + nowDay : nowDay)
236
+      this.getList()
237
+
147
     }
238
     }
148
-}
239
+  }
149
 </script>
240
 </script>
150
 
241
 
151
 <style lang="scss" scoped>
242
 <style lang="scss" scoped>
152
-.new-main-contain{
243
+  .new-main-contain {
153
     height: 100%;
244
     height: 100%;
154
     display: flex;
245
     display: flex;
155
     flex-direction: column;
246
     flex-direction: column;
156
-}
157
-.app-container{
158
-    height:100%;
159
-}
160
-.mainCell{
161
-    height:36px;
247
+  }
248
+
249
+  .app-container {
250
+    height: 100%;
251
+  }
252
+
253
+  .mainCell {
254
+    height: 36px;
162
     display: flex;
255
     display: flex;
163
     align-items: center;
256
     align-items: center;
164
-}
165
-.mainLeft{
166
-    width:200px;
257
+  }
258
+
259
+  .mainLeft {
260
+    width: 200px;
167
     height: 100%;
261
     height: 100%;
168
     display: flex;
262
     display: flex;
169
     flex-direction: column;
263
     flex-direction: column;
170
-    .el-radio{
171
-        margin-right:5px;
172
-    }
173
-    
174
-}
175
-.mainRight{
176
-    margin-left:20px;
177
-    flex:1;
264
+
265
+  .el-radio {
266
+    margin-right: 5px;
267
+  }
268
+
269
+  }
270
+  .mainRight {
271
+    margin-left: 20px;
272
+    flex: 1;
178
     height: 100%;
273
     height: 100%;
179
     display: flex;
274
     display: flex;
180
     flex-direction: column;
275
     flex-direction: column;
181
     overflow-y: auto;
276
     overflow-y: auto;
182
-    .cellSpan{
183
-        min-width: 80px;
184
-        display: inline-block;
185
-        margin-right: 10px;
186
-    }
187
-}
188
-.mainCenter{
277
+
278
+  .cellSpan {
279
+    min-width: 80px;
280
+    display: inline-block;
281
+    margin-right: 10px;
282
+  }
283
+
284
+  }
285
+  .mainCenter {
189
     display: flex;
286
     display: flex;
190
-    flex:1;
191
-}
192
-.centerLeft{
287
+    flex: 1;
288
+  }
289
+
290
+  .centerLeft {
193
     flex: 1;
291
     flex: 1;
194
     display: flex;
292
     display: flex;
195
     flex-direction: column;
293
     flex-direction: column;
196
     position: relative;
294
     position: relative;
197
-    .el-form-item{
198
-        width:32%;
199
-        margin-right: 1%;
200
-        float: left;
201
-    }
202
-    .el-form-item__label{
203
-        text-align: left;
204
-    }
205
-}
206
-.backColor{
295
+
296
+  .el-form-item {
297
+    width: 32%;
298
+    margin-right: 1%;
299
+    float: left;
300
+  }
301
+
302
+  .el-form-item__label {
303
+    text-align: left;
304
+  }
305
+
306
+  }
307
+  .backColor {
207
     background: #f6f8f9;
308
     background: #f6f8f9;
208
     height: 5px;
309
     height: 5px;
209
     margin-bottom: 5px;
310
     margin-bottom: 5px;
210
-}
211
-.tabsBox{
311
+  }
312
+
313
+  .tabsBox {
212
     position: relative;
314
     position: relative;
213
     height: 76%;
315
     height: 76%;
214
     overflow-y: auto;
316
     overflow-y: auto;
215
     margin-bottom: 60px;
317
     margin-bottom: 60px;
216
-    .el-tabs__item{
217
-        padding: 0 10px;
218
-    }
219
-}
220
-.preTabs{
221
-    height:100%;
222
-}
223
-.costBox{
224
-    width:100%;
225
-    height:60px;
226
-    background:#fff;
318
+
319
+  .el-tabs__item {
320
+    padding: 0 10px;
321
+  }
322
+
323
+  }
324
+  .preTabs {
325
+    height: 100%;
326
+  }
327
+
328
+  .costBox {
329
+    width: 100%;
330
+    height: 60px;
331
+    background: #fff;
227
     position: absolute;
332
     position: absolute;
228
-    bottom:0;
333
+    bottom: 0;
229
     display: flex;
334
     display: flex;
230
     align-items: center;
335
     align-items: center;
231
-}
232
-.addTab{
336
+  }
337
+
338
+  .addTab {
233
     position: absolute;
339
     position: absolute;
234
     right: 0;
340
     right: 0;
235
     top: 14px;
341
     top: 14px;
236
     z-index: 20;
342
     z-index: 20;
237
-}
238
-.centerRight{
343
+  }
344
+
345
+  .centerRight {
239
     width: 300px;
346
     width: 300px;
240
     margin-left: 5px;
347
     margin-left: 5px;
241
     display: flex;
348
     display: flex;
242
     flex-direction: column;
349
     flex-direction: column;
243
     position: relative;
350
     position: relative;
244
-}
245
-.rightTab{
351
+  }
352
+
353
+  .rightTab {
246
     height: 40px;
354
     height: 40px;
247
     width: 100%;
355
     width: 100%;
248
     border: 1px solid #d2d2d2;
356
     border: 1px solid #d2d2d2;
249
     box-sizing: border-box;
357
     box-sizing: border-box;
250
-    
251
-    p{
252
-        width: 50%;
253
-        height: 40px;
254
-        line-height: 40px;
255
-        text-align: center;
256
-        background: #eee;
257
-        float: left;
258
-    }
259
-    >p:last-child{
260
-      border-left: 1px solid #d2d2d2;  
261
-      float: right;
262
-    }
263
-    .activeP{
264
-        background: #409EFF;
265
-        color:#fff;
266
-    }
267
-}
268
-.comfirmBox{
269
-    width:100%;
270
-    height:60px;
271
-    background:#fff;
358
+
359
+  p {
360
+    width: 50%;
361
+    height: 40px;
362
+    line-height: 40px;
363
+    text-align: center;
364
+    background: #eee;
365
+    float: left;
366
+  }
367
+
368
+  > p:last-child {
369
+    border-left: 1px solid #d2d2d2;
370
+    float: right;
371
+  }
372
+
373
+  .activeP {
374
+    background: #409EFF;
375
+    color: #fff;
376
+  }
377
+
378
+  }
379
+  .comfirmBox {
380
+    width: 100%;
381
+    height: 60px;
382
+    background: #fff;
272
     position: absolute;
383
     position: absolute;
273
-    bottom:0;
384
+    bottom: 0;
274
     display: flex;
385
     display: flex;
275
     align-items: center;
386
     align-items: center;
276
     justify-content: space-between;
387
     justify-content: space-between;
277
-}
388
+  }
278
 </style>
389
 </style>
279
 
390
 
280
 <style lang="scss">
391
 <style lang="scss">
281
-.centerLeft{
282
-    .el-form-item__label{
283
-        text-align: left;
284
-    }
285
-}
286
-.tabsBox{
287
-    .el-tabs__item{
288
-        padding: 0 10px;
289
-    }
290
-    .el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){
291
-        padding: 0 10px;
292
-    }
293
-    .el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child, .el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child, .el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child, .el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child, .el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child, .el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child, .el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child, .el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{
294
-        padding: 0 10px;
295
-    }
296
-    .el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{
297
-        padding: 0 10px;
298
-    }
299
-}
300
-.centerRight{
301
-    .el-tabs__nav-scroll{
302
-        display: flex;
303
-    }
304
-    .el-tabs__nav{
305
-        margin: 0 auto;
306
-    }
307
-    .el-table th .cell, .el-table td .cell{
308
-        padding: 0 2px;
309
-    }
310
-}
311
-.preTabs{
312
-    // .el-tabs__content{
313
-    //     height:69%;
314
-    //     overflow-y: auto;
315
-    // }
316
-}
317
-.rightTabs{
392
+  .centerLeft {
393
+
394
+  .el-form-item__label {
395
+    text-align: left;
396
+  }
397
+
398
+  }
399
+  .tabsBox {
400
+
401
+  .el-tabs__item {
402
+    padding: 0 10px;
403
+  }
404
+
405
+  .el-tabs--bottom .el-tabs--left > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--bottom .el-tabs--right > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--bottom.el-tabs--border-card > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--bottom.el-tabs--card > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top .el-tabs--left > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top .el-tabs--right > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top.el-tabs--border-card > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top.el-tabs--card > .el-tabs__header .el-tabs__item:nth-child(2) {
406
+    padding: 0 10px;
407
+  }
408
+
409
+  .el-tabs--bottom .el-tabs--left > .el-tabs__header .el-tabs__item:last-child, .el-tabs--bottom .el-tabs--right > .el-tabs__header .el-tabs__item:last-child, .el-tabs--bottom.el-tabs--border-card > .el-tabs__header .el-tabs__item:last-child, .el-tabs--bottom.el-tabs--card > .el-tabs__header .el-tabs__item:last-child, .el-tabs--top .el-tabs--left > .el-tabs__header .el-tabs__item:last-child, .el-tabs--top .el-tabs--right > .el-tabs__header .el-tabs__item:last-child, .el-tabs--top.el-tabs--border-card > .el-tabs__header .el-tabs__item:last-child, .el-tabs--top.el-tabs--card > .el-tabs__header .el-tabs__item:last-child {
410
+    padding: 0 10px;
411
+  }
412
+
413
+  .el-tabs--card > .el-tabs__header .el-tabs__item.is-active.is-closable {
414
+    padding: 0 10px;
415
+  }
416
+
417
+  }
418
+  .centerRight {
419
+
420
+  .el-tabs__nav-scroll {
421
+    display: flex;
422
+  }
423
+
424
+  .el-tabs__nav {
425
+    margin: 0 auto;
426
+  }
427
+
428
+  .el-table th .cell, .el-table td .cell {
429
+    padding: 0 2px;
430
+  }
431
+
432
+  }
433
+  .preTabs {
434
+
435
+  .el-tabs__content {
436
+
437
+  }
438
+
439
+  }
440
+  .rightTabs {
318
     height: 100%;
441
     height: 100%;
319
-    // .el-tabs__content{
320
-    //     height:72%;
321
-    //     overflow-y: auto;
322
-    // }
323
-}
442
+
443
+
444
+  .el-tabs__content {
445
+
446
+  }
447
+
448
+  }
324
 </style>
449
 </style>

+ 124 - 42
src/xt_pages/outpatientRegistration/index.vue Ver fichero

6
         <div class="app-container">
6
         <div class="app-container">
7
             <div class="nameTitle">患者基本信息:</div>
7
             <div class="nameTitle">患者基本信息:</div>
8
             <div class="formMain">
8
             <div class="formMain">
9
-                <el-form class="basicForm" ref="form" :model="form" label-width="80px">
10
-                    <el-form-item label="结算类型">
9
+                <el-form class="basicForm"  :rules="rules" ref="form" :model="form" label-width="100px">
10
+                    <el-form-item label="结算类型">
11
                         <el-select v-model="form.settlementValue" placeholder="请选择">
11
                         <el-select v-model="form.settlementValue" placeholder="请选择">
12
                             <el-option
12
                             <el-option
13
                             v-for="item in settlement"
13
                             v-for="item in settlement"
17
                             </el-option>
17
                             </el-option>
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>
21
                         <el-input v-model="form.medicalInsuranceCard"></el-input>
22
                         <el-button type="primary" @click="reading">读卡</el-button>
22
                         <el-button type="primary" @click="reading">读卡</el-button>
23
                     </el-form-item>
23
                     </el-form-item>
24
-                    <el-form-item label="患者姓名">
24
+                    <el-form-item label="患者姓名">
25
                         <el-input v-model="form.name"></el-input>
25
                         <el-input v-model="form.name"></el-input>
26
                     </el-form-item>
26
                     </el-form-item>
27
-                    <el-form-item label="性别">
27
+                    <el-form-item label="性别">
28
                         <el-select v-model="form.sex" placeholder="请选择">
28
                         <el-select v-model="form.sex" placeholder="请选择">
29
                             <el-option
29
                             <el-option
30
                             v-for="item in sex"
30
                             v-for="item in sex"
34
                             </el-option>
34
                             </el-option>
35
                         </el-select>
35
                         </el-select>
36
                     </el-form-item>
36
                     </el-form-item>
37
-                    <el-form-item label="证件类型">
37
+                    <el-form-item label="证件类型">
38
                         <el-select v-model="form.certificates" placeholder="请选择">
38
                         <el-select v-model="form.certificates" placeholder="请选择">
39
                             <el-option
39
                             <el-option
40
                             v-for="item in certificates"
40
                             v-for="item in certificates"
44
                             </el-option>
44
                             </el-option>
45
                         </el-select>
45
                         </el-select>
46
                     </el-form-item>
46
                     </el-form-item>
47
-                    <el-form-item label="医疗类别">
47
+                    <el-form-item label="医疗类别">
48
                         <el-select v-model="form.medicalCare" placeholder="请选择">
48
                         <el-select v-model="form.medicalCare" placeholder="请选择">
49
                             <el-option
49
                             <el-option
50
                             v-for="item in medicalCare"
50
                             v-for="item in medicalCare"
54
                             </el-option>
54
                             </el-option>
55
                         </el-select>
55
                         </el-select>
56
                     </el-form-item>
56
                     </el-form-item>
57
-                    <el-form-item label="出生日期">
57
+                    <el-form-item label="出生日期">
58
                         <el-date-picker v-model="form.birthday" type="date" @change="getBirthday" placeholder="选择日期"></el-date-picker>
58
                         <el-date-picker v-model="form.birthday" type="date" @change="getBirthday" placeholder="选择日期"></el-date-picker>
59
                     </el-form-item>
59
                     </el-form-item>
60
-                    <el-form-item label="年龄">
61
-                        <el-input v-model="form.age" readonly=""></el-input>
60
+                    <el-form-item label="年龄">
61
+                        <el-input v-model="form.age"></el-input>
62
                     </el-form-item>
62
                     </el-form-item>
63
-                    <el-form-item label="证件号码">
63
+                    <el-form-item label="证件号码:" required prop="idCard">
64
                         <el-input v-model="form.idCard"></el-input>
64
                         <el-input v-model="form.idCard"></el-input>
65
                     </el-form-item>
65
                     </el-form-item>
66
                 </el-form>
66
                 </el-form>
67
             </div>
67
             </div>
68
             <div class="nameTitle">患者挂号信息:</div>
68
             <div class="nameTitle">患者挂号信息:</div>
69
             <div class="formMain">
69
             <div class="formMain">
70
-                <el-form class="basicForm" ref="form" :model="form" label-width="80px">
71
-                    <el-form-item label="挂号类型">
72
-                        <el-select v-model="form.register" placeholder="请选择">
70
+                <el-form class="basicForm" ref="form" :model="form" :rules="rules" label-width="100px">
71
+                    <el-form-item label="挂号类型:" required prop="register">
72
+                        <el-select v-model="form.register"  placeholder="请选择">
73
                             <el-option
73
                             <el-option
74
                             v-for="item in register"
74
                             v-for="item in register"
75
                             :key="item.value"
75
                             :key="item.value"
78
                             </el-option>
78
                             </el-option>
79
                         </el-select>
79
                         </el-select>
80
                     </el-form-item>
80
                     </el-form-item>
81
-                    <el-form-item label="医生">
81
+                    <el-form-item label="医生" required prop="doctor" >
82
                         <el-select v-model="form.doctor" placeholder="请选择">
82
                         <el-select v-model="form.doctor" placeholder="请选择">
83
                             <el-option
83
                             <el-option
84
-                            v-for="item in doctor"
85
-                            :key="item.value"
86
-                            :label="item.label"
87
-                            :value="item.value">
84
+                            v-for="item in doctorList"
85
+                            :key="item.admin_user_id"
86
+                            :label="item.user_name"
87
+                            :value="item.admin_user_id">
88
                             </el-option>
88
                             </el-option>
89
                         </el-select>
89
                         </el-select>
90
                     </el-form-item>
90
                     </el-form-item>
91
-                    <el-form-item label="科室">
92
-                        <el-select v-model="form.department" placeholder="请选择">
91
+                    <el-form-item label="科室:" required prop="department">
92
+                        <el-select v-model="form.department"  placeholder="请选择">
93
                             <el-option
93
                             <el-option
94
-                            v-for="item in department"
95
-                            :key="item.value"
96
-                            :label="item.label"
97
-                            :value="item.value">
94
+                            v-for="item in departmentList"
95
+                            :key="item.id"
96
+                            :label="item.name"
97
+                            :value="item.id">
98
                             </el-option>
98
                             </el-option>
99
                         </el-select>
99
                         </el-select>
100
                     </el-form-item>
100
                     </el-form-item>
101
                     <el-form-item>
101
                     <el-form-item>
102
                         <el-checkbox v-model="form.costChecked">是否需要工本费</el-checkbox>
102
                         <el-checkbox v-model="form.costChecked">是否需要工本费</el-checkbox>
103
                     </el-form-item>
103
                     </el-form-item>
104
-                    <el-form-item label="挂号费">
104
+                    <el-form-item label="挂号费">
105
                         <el-input v-model.number="form.registrationFee"></el-input>
105
                         <el-input v-model.number="form.registrationFee"></el-input>
106
                     </el-form-item>
106
                     </el-form-item>
107
-                    <el-form-item label="诊疗费">
107
+                    <el-form-item label="诊疗费">
108
                         <el-input v-model.number="form.medicalExpenses"></el-input>
108
                         <el-input v-model.number="form.medicalExpenses"></el-input>
109
                     </el-form-item>
109
                     </el-form-item>
110
-                    <el-form-item label="工本费">
110
+                    <el-form-item label="工本费">
111
                         <el-input v-model.number="form.cost" :readonly="!form.costChecked"></el-input>
111
                         <el-input v-model.number="form.cost" :readonly="!form.costChecked"></el-input>
112
                     </el-form-item>
112
                     </el-form-item>
113
-                    <el-form-item label="合计">
113
+                    <el-form-item label="合计">
114
                         <el-input v-model.number="total" readonly></el-input>
114
                         <el-input v-model.number="total" readonly></el-input>
115
                     </el-form-item>
115
                     </el-form-item>
116
                     <el-form-item>
116
                     <el-form-item>
117
                         <!-- <el-input v-model="form.name"></el-input> -->
117
                         <!-- <el-input v-model="form.name"></el-input> -->
118
                     </el-form-item>
118
                     </el-form-item>
119
                 </el-form>
119
                 </el-form>
120
-                <el-button style="float:right" @click="getForm" type="primary">挂号</el-button>
120
+                <el-button style="float:right" @click="saveHisPatient('form')" type="primary">挂号</el-button>
121
             </div>
121
             </div>
122
             
122
             
123
         </div>
123
         </div>
127
 <script>
127
 <script>
128
 import BreadCrumb from '@/xt_pages/components/bread-crumb'
128
 import BreadCrumb from '@/xt_pages/components/bread-crumb'
129
 import { basename } from 'path'
129
 import { basename } from 'path'
130
+import { getAllDoctorList,saveHisPatient } from "@/api/project/project"
130
 const moment = require('moment')
131
 const moment = require('moment')
131
 export default {
132
 export default {
132
     components:{
133
     components:{
155
                 registrationFee:'',
156
                 registrationFee:'',
156
                 medicalExpenses:'',
157
                 medicalExpenses:'',
157
                 cost:'',
158
                 cost:'',
158
-                total: ''
159
-
160
-            
159
+                total: '' 
161
             },
160
             },
162
             settlement: [{
161
             settlement: [{
163
                 value: 1,
162
                 value: 1,
193
                 label: "港澳地区身份证"
192
                 label: "港澳地区身份证"
194
             }],
193
             }],
195
             medicalCare: [{
194
             medicalCare: [{
196
-                value: 310,
195
+                value: 1,
197
                 label: '职工基本医疗保险'
196
                 label: '职工基本医疗保险'
198
                 }, {
197
                 }, {
199
-                value: 320,
198
+                value: 2,
200
                 label: "公务员医疗补助"
199
                 label: "公务员医疗补助"
201
                 },{
200
                 },{
202
-                value: 330,
201
+                value: 3,
203
                 label: "大额医疗费用补助"
202
                 label: "大额医疗费用补助"
204
                 },{
203
                 },{
205
-                value: 340,
204
+                value: 4,
206
                 label: "离休人员医疗"
205
                 label: "离休人员医疗"
207
                 },{
206
                 },{
208
-                value: 390,
207
+                value: 5,
209
                 label: "城乡居民基本医疗保险"
208
                 label: "城乡居民基本医疗保险"
210
                 },{
209
                 },{
211
-                value: 392,
210
+                value: 6,
212
                 label: "城乡居民大病医疗保险"
211
                 label: "城乡居民大病医疗保险"
213
                 },
212
                 },
214
                 {
213
                 {
215
-                value: 510,
214
+                value: 7,
216
                 label: "生育保险"
215
                 label: "生育保险"
217
             }],
216
             }],
218
             register: [{
217
             register: [{
241
                 psn_name:"杨美英",
240
                 psn_name:"杨美英",
242
                 age:60.7
241
                 age:60.7
243
             },
242
             },
243
+
244
+            rules: {
245
+              idCard: [{ required: true, message: '请填写证件号码', trigger: 'blur'  }],
246
+              register: [{ required: true, message: '请选择挂号类型' , trigger: 'blur' }],
247
+              doctor: [{ required: true, message: '请选择医生' , trigger: 'blur' }],
248
+              department: [{ required: true, message: '请填写科室', trigger: 'blur' }],
249
+           },
250
+           doctorList:[],
251
+           departmentList:[],
252
+           check:0
244
         }
253
         }
245
     },
254
     },
246
     computed:{
255
     computed:{
263
         getBirthday(date){
272
         getBirthday(date){
264
             console.log(date)
273
             console.log(date)
265
             let curTime = moment(new Date(date)).format('YYYY-MM-DD')
274
             let curTime = moment(new Date(date)).format('YYYY-MM-DD')
275
+            console.log("curTime22222",curTime)
276
+           
266
             console.log(this.jsGetAge(curTime))
277
             console.log(this.jsGetAge(curTime))
267
 
278
 
268
             this.form.age = this.jsGetAge(curTime)
279
             this.form.age = this.jsGetAge(curTime)
306
         },
317
         },
307
         getForm(){
318
         getForm(){
308
             this.form.total = this.total
319
             this.form.total = this.total
309
-            // console.log(new Date(new Date().toLocaleDateString()).getTime() / 1000)
310
-            // console.log(JSON.parse(localStorage.getItem("temp")))
311
             if(localStorage.getItem("temp")){
320
             if(localStorage.getItem("temp")){
312
                 let a = JSON.parse(localStorage.getItem("temp"))
321
                 let a = JSON.parse(localStorage.getItem("temp"))
313
                 // let arr = []
322
                 // let arr = []
333
             }
342
             }
334
         },
343
         },
335
         
344
         
345
+        getAllDoctorList(){
346
+           getAllDoctorList().then(response=>{
347
+             if(response.data.state == 1){
348
+               var doctor =  response.data.data.doctor
349
+               this.doctorList = doctor
350
+               var department = response.data.data.department
351
+               console.log("department",department)
352
+               this.departmentList = department
353
+             }
354
+           })   
355
+        },
356
+        saveHisPatient(formName){
357
+           
358
+            if(this.form.costChecked == true){
359
+               this.check = 1
360
+            }
361
+            if(this.form.costChecked == false){
362
+               this.check = 2
363
+            } 
364
+            var params = {
365
+              settlementValue:this.form.settlementValue,
366
+              medicalInsuranceCard:this.form.medicalInsuranceCard,
367
+              name:this.form.name,
368
+              sex:this.form.sex,
369
+              certificates:this.form.certificates, 
370
+              medicalCare:this.form.medicalCare,
371
+              birthDay:moment(new Date(this.form.birthday)).format('YYYY-MM-DD'),
372
+              age:parseInt(this.form.age),
373
+              idCard:this.form.idCard,
374
+              register:this.form.register,
375
+              doctor:this.form.doctor,
376
+              department:this.form.department,
377
+              costChecked:this.check,
378
+              registrationFee:this.form.registrationFee,
379
+              medicalExpenses:this.form.medicalExpenses,
380
+              cost:this.form.cost,
381
+              total:this.total
382
+            }
383
+            console.log("params",params)
384
+ 
385
+          this.$refs[formName].validate((valid)=>{
386
+             if(valid){
387
+                saveHisPatient(params).then(response=>{
388
+                   if(response.data.state == 1){
389
+                     var patient =  response.data.data.patient
390
+                     console.log("patient",patient)
391
+                     this.$message.success("保存成功")
392
+                     this.form.settlementValue = "",
393
+                     this.form.medicalInsuranceCard = "",
394
+                     this.form.name = "",
395
+                     this.form.sex="",
396
+                     this.form.certificates="",
397
+                     this.form.medicalCare = "",
398
+                     this.form.birthday ="",
399
+                     this.form.age ="",
400
+                     this.form.idCard = "",
401
+                     this.form.register = "",
402
+                     this.form.doctor = "",
403
+                     this.form.department = "",
404
+                     this.form.costChecked = false,
405
+                     this.form.registrationFee = "",
406
+                     this.form.medicalExpenses = "",
407
+                     this.form.cost="",
408
+                     this.form.total= "" 
409
+                   } 
410
+                })
411
+             } 
412
+          })
413
+        }
414
+    },
415
+    created(){
416
+      //获取当前机构有人员信息
417
+      this.getAllDoctorList()   
336
     }
418
     }
337
 }
419
 }
338
 </script>
420
 </script>

+ 207 - 64
src/xt_pages/outpatientRegistration/registrationHistory.vue Ver fichero

5
         </div>
5
         </div>
6
         <div class="app-container">
6
         <div class="app-container">
7
             <div class="cell clearfix">
7
             <div class="cell clearfix">
8
-                <el-input style="width: 180px;" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
8
+                <el-input style="width: 180px;" v-model.trim="search_input" class="filter-item"/>
9
                 <el-button style="margin-right:10px;" class="filter-item" type="primary" icon="el-icon-search" @click="searchAction">搜索</el-button>
9
                 <el-button style="margin-right:10px;" class="filter-item" type="primary" icon="el-icon-search" @click="searchAction">搜索</el-button>
10
-                <el-date-picker
10
+                <!-- <el-date-picker
11
                 v-model="value1"
11
                 v-model="value1"
12
                 @change="changeTime"
12
                 @change="changeTime"
13
                 style="margin-right:10px;"
13
                 style="margin-right:10px;"
15
                 range-separator="-"
15
                 range-separator="-"
16
                 start-placeholder="开始日期"
16
                 start-placeholder="开始日期"
17
                 end-placeholder="结束日期">
17
                 end-placeholder="结束日期">
18
+                </el-date-picker> -->
19
+                <el-date-picker type="datetime" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
20
+                    placeholder="选择时间" v-model="start_time" style="width:200px"
21
+                    @change="changeStart"
22
+                 >
23
+                </el-date-picker> -
24
+                <el-date-picker type="datetime" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
25
+                    placeholder="选择时间" v-model="end_time" style="width:200px"
26
+                    @change="changeEnd"
27
+                 >
18
                 </el-date-picker>
28
                 </el-date-picker>
19
-                <!-- <label class="title"><span class="name">挂号类型</span> : </label>
20
-                <el-select v-model="value" placeholder="请选择" style="width:150px;">
29
+                <label class="title"><span class="name">挂号类型</span> : </label>
30
+                <el-select v-model="register_type" placeholder="请选择" style="width:150px;" @change="changeRegister">
21
                     <el-option
31
                     <el-option
22
-                    v-for="item in options"
32
+                    v-for="item in register"
23
                     :key="item.value"
33
                     :key="item.value"
24
                     :label="item.label"
34
                     :label="item.label"
25
                     :value="item.value">
35
                     :value="item.value">
26
                     </el-option>
36
                     </el-option>
27
-                </el-select> -->
37
+                </el-select>
28
             </div>
38
             </div>
29
             <el-table :data="tableData" border style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
39
             <el-table :data="tableData" border style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
30
                 <el-table-column align="center" type="index" label="序号" width="60">
40
                 <el-table-column align="center" type="index" label="序号" width="60">
41
+                    <template slot-scope="scope">
42
+                        {{scope.$index+1}}
43
+                    </template>
31
                 </el-table-column>
44
                 </el-table-column>
32
                 <el-table-column align="center" prop="name" label="时间" width="100">
45
                 <el-table-column align="center" prop="name" label="时间" width="100">
33
-                    <template slot-scope="scope">{{ scope.row.create_time }}</template>
46
+                    <template slot-scope="scope">{{getTime(scope.row.record_date,"{y}-{m}-{d}")}}</template>
34
                 </el-table-column>
47
                 </el-table-column>
35
                 <el-table-column align="center" prop="dialysis_no" label="姓名" width="80">
48
                 <el-table-column align="center" prop="dialysis_no" label="姓名" width="80">
36
                     <template slot-scope="scope">{{scope.row.name }}</template>
49
                     <template slot-scope="scope">{{scope.row.name }}</template>
37
                 </el-table-column>
50
                 </el-table-column>
38
                 <el-table-column align="center" prop="name" label="科室" width="80">
51
                 <el-table-column align="center" prop="name" label="科室" width="80">
39
-                    <template slot-scope="scope">{{ scope.row.department }}</template>
52
+                    <template slot-scope="scope">{{getDepartMent(scope.row.departments)}}</template>
40
                 </el-table-column>
53
                 </el-table-column>
41
                 <el-table-column align="center" prop="name" label="挂号类型" width="90">
54
                 <el-table-column align="center" prop="name" label="挂号类型" width="90">
42
                     <template slot-scope="scope">
55
                     <template slot-scope="scope">
43
-                        <span v-if="scope.row.register == 1">普通</span>
44
-                        <span v-if="scope.row.register == 2">主治</span>
45
-                        <span v-if="scope.row.register == 3">主任</span>
46
-                        <span v-if="scope.row.register == 4">免收诊金</span>
47
-                        <span v-if="scope.row.register == 5">专家</span>
56
+                        <span v-if="scope.row.register_type == 1">普通</span>
57
+                        <span v-if="scope.row.register_type == 2">主治</span>
58
+                        <span v-if="scope.row.register_type == 3">主任</span>
59
+                        <span v-if="scope.row.register_type == 4">免收诊金</span>
60
+                        <span v-if="scope.row.register_type == 5">专家</span>
48
                     </template>
61
                     </template>
49
                 </el-table-column>
62
                 </el-table-column>
50
                 <el-table-column align="center" prop="name" label="就诊号" width="80">
63
                 <el-table-column align="center" prop="name" label="就诊号" width="80">
51
-                    <template slot-scope="scope"></template>
64
+                    <template slot-scope="scope">
65
+                        {{scope.row.number}}
66
+                    </template>
52
                 </el-table-column>
67
                 </el-table-column>
53
                 <el-table-column align="center" prop="name" label="证件号">
68
                 <el-table-column align="center" prop="name" label="证件号">
54
-                    <template slot-scope="scope">{{ scope.row.idCard }}</template>
69
+                    <template slot-scope="scope">{{ scope.row.id_card_no }}</template>
55
                 </el-table-column>
70
                 </el-table-column>
56
                 <el-table-column align="center" label="患者保险类型" width="80">
71
                 <el-table-column align="center" label="患者保险类型" width="80">
57
-                    <!-- <template slot-scope="scope">{{ scope.row.name }}</template> -->
72
+                    <template slot-scope="scope">{{getMedicalTreatment(scope.row.medical_treatment_type)}}</template>
58
                 </el-table-column>
73
                 </el-table-column>
59
                 <el-table-column align="center" prop="name" label="医生" width="80">
74
                 <el-table-column align="center" prop="name" label="医生" width="80">
60
-                    <template slot-scope="scope">{{ scope.row.doctor }}</template>
75
+                    <template slot-scope="scope">{{getDoctor(scope.row.doctor) }}</template>
61
                 </el-table-column>
76
                 </el-table-column>
62
                 <el-table-column align="center" prop="name" label="挂号费" width="70">
77
                 <el-table-column align="center" prop="name" label="挂号费" width="70">
63
-                    <template slot-scope="scope">{{ scope.row.registrationFee }}</template>
78
+                    <template slot-scope="scope">{{ scope.row.register_cost }}</template>
64
                 </el-table-column>
79
                 </el-table-column>
65
                 <el-table-column align="center" prop="name" label="诊疗费" width="70">
80
                 <el-table-column align="center" prop="name" label="诊疗费" width="70">
66
-                    <template slot-scope="scope">{{ scope.row.medicalExpenses }}</template>
81
+                    <template slot-scope="scope">{{ scope.row.treatment_cost }}</template>
67
                 </el-table-column>
82
                 </el-table-column>
68
                 <el-table-column align="center" prop="name" label="工本费" width="70">
83
                 <el-table-column align="center" prop="name" label="工本费" width="70">
69
-                    <template slot-scope="scope">{{ scope.row.cost }}</template>
84
+                    <template slot-scope="scope">{{ scope.row.cost_of_production }}</template>
70
                 </el-table-column>
85
                 </el-table-column>
71
                 <el-table-column align="center" prop="name" label="操作人" width="70">
86
                 <el-table-column align="center" prop="name" label="操作人" width="70">
72
-                    <template slot-scope="scope">{{ $store.getters.xt_user.org.org_name }}</template>
87
+                    <template slot-scope="scope">{{getDoctor(scope.row.admin_user_id) }}</template>
73
                 </el-table-column>
88
                 </el-table-column>
74
                 <el-table-column align="center" prop="name" label="操作" width="80">
89
                 <el-table-column align="center" prop="name" label="操作" width="80">
75
                     <template slot-scope="scope">
90
                     <template slot-scope="scope">
76
-                        <!-- <el-button size="mini" type="primary">编辑</el-button> -->
77
-                        <span>已就诊</span>
91
+                        <el-button size="mini" type="primary" v-if="scope.row.is_return == 1" @click ="toReturnPatient(scope.row.id)" >退号</el-button> 
92
+                        <el-button size="mini" type="primary" v-if="scope.row.is_return == 2" :disabled="true">已退号</el-button>
93
+                        <el-button size="mini" type="primary" v-if="scope.row.is_return == 3" :disabled="true">已就诊</el-button>  
78
                     </template>
94
                     </template>
79
                 </el-table-column>
95
                 </el-table-column>
80
             </el-table>
96
             </el-table>
81
 
97
 
82
-            <!-- <el-pagination
98
+            <el-pagination
83
                 @size-change="handleSizeChange"
99
                 @size-change="handleSizeChange"
84
                 @current-change="handleCurrentChange"
100
                 @current-change="handleCurrentChange"
85
                 :page-sizes="[10, 50, 100]"
101
                 :page-sizes="[10, 50, 100]"
89
                 layout="total, sizes, prev, pager, next, jumper"
105
                 layout="total, sizes, prev, pager, next, jumper"
90
                 :total="total"
106
                 :total="total"
91
             >
107
             >
92
-            </el-pagination> -->
108
+            </el-pagination>
93
         </div>
109
         </div>
94
     </div>
110
     </div>
95
 </template>
111
 </template>
97
 <script>
113
 <script>
98
 const moment = require('moment')
114
 const moment = require('moment')
99
 import BreadCrumb from '@/xt_pages/components/bread-crumb'
115
 import BreadCrumb from '@/xt_pages/components/bread-crumb'
116
+import { getHisPatientHistory,changePatient } from "@/api/project/project"
117
+import { uParseTime } from "@/utils/tools";
100
 export default {
118
 export default {
101
     components:{
119
     components:{
102
         BreadCrumb
120
         BreadCrumb
107
                 { path: false, name: '门诊挂号' },
125
                 { path: false, name: '门诊挂号' },
108
                 { path: false, name: '挂号历史' }
126
                 { path: false, name: '挂号历史' }
109
             ],
127
             ],
128
+            register_type:0,
110
             search_input:'',
129
             search_input:'',
111
             value1:'',
130
             value1:'',
112
-            tableData: []
131
+            tableData: [],
132
+            register: [
133
+                {value: 0,label:"全部"},
134
+                {value: 1,label: '普通'},
135
+                {value: 2,label: "主治"},
136
+                {value: 3,label: "主任"},
137
+                {value: 4,label: "免收诊金"},
138
+                {value: 5,label: "专家"}
139
+            ],
140
+            start_time:"",
141
+            end_time:"",
142
+            limit:20,
143
+            page:1,
144
+            total:0,
145
+            departMent:[],
146
+            doctorList:[],
147
+            medicalCare: [{
148
+                id: 1,
149
+                name: '职工基本医疗保险'
150
+                }, {
151
+                id: 2,
152
+                name: "公务员医疗补助"
153
+                },{
154
+                id: 3,
155
+                name: "大额医疗费用补助"
156
+                },{
157
+                id: 4,
158
+                name: "离休人员医疗"
159
+                },{
160
+                id: 5,
161
+                name: "城乡居民基本医疗保险"
162
+                },{
163
+                id: 6,
164
+                name: "城乡居民大病医疗保险"
165
+                },
166
+                {
167
+                id: 7,
168
+                name: "生育保险"
169
+            }],
113
         }
170
         }
114
     },
171
     },
115
     created(){
172
     created(){
116
-        let a = JSON.parse(localStorage.getItem("temp"))
117
-        let arr = []
118
-        a.map(item => {
119
-            if(item.org_id == this.$store.getters.xt_user.org_id){
120
-                item.create_time = moment(item.create_time * 1000).format('YYYY-MM-DD')
121
-                arr.push(item)
122
-            }
173
+        // let a = JSON.parse(localStorage.getItem("temp"))
174
+        // let arr = []
175
+        // a.map(item => {
176
+        //     if(item.org_id == this.$store.getters.xt_user.org_id){
177
+        //         item.create_time = moment(item.create_time * 1000).format('YYYY-MM-DD')
178
+        //         arr.push(item)
179
+        //     }
123
             
180
             
124
-        })
125
-        console.log('aaaaaaaaaaaaaa',a)
126
-        this.tableData = arr
181
+        // })
182
+        // this.tableData = arr
183
+     
184
+       this.getlist()
127
     },
185
     },
128
     methods:{
186
     methods:{
129
         searchAction(){
187
         searchAction(){
130
-            let arr = this.tableData
131
-            let a = []
132
-            arr.map(item => {
133
-                if(item.name.indexOf(this.search_input) > -1 && item.org_id == this.$store.getters.xt_user.org_id){
134
-                    a.push(item)
135
-                }
136
-            })
137
-            this.tableData = a
188
+           this.getlist()
138
         },
189
         },
139
-        changeTime(val){
140
-            let arr = JSON.parse(localStorage.getItem("temp"))
141
-            arr.map(item => {
142
-                item.create_time = moment(item.create_time * 1000).format('YYYY-MM-DD')
143
-            })
144
-            this.tableData = arr
145
-            console.log(new Date(val[0]).getTime() / 1000)
146
-            console.log(new Date(val[1]).getTime() / 1000)
147
-            let arr1 = this.tableData
148
-            let a = []
149
-            arr1.map(item => {
150
-                // if(new Date(val[0]).getTime() / 1000){
151
-                //     a.push(item)
152
-                // }
153
-                if(new Date(item.create_time).getTime() / 1000 > new Date(val[0]).getTime() / 1000 && new Date(item.create_time).getTime() / 1000 < new Date(val[1]).getTime() / 1000 && item.org_id == this.$store.getters.xt_user.org_id){
154
-                    a.push(item)
155
-                }
156
-            })
157
-            this.tableData = a
158
-        }
190
+        // changeTime(val){
191
+        //     let arr = JSON.parse(localStorage.getItem("temp"))
192
+        //     arr.map(item => {
193
+        //         item.create_time = moment(item.create_time * 1000).format('YYYY-MM-DD')
194
+        //     })
195
+        //     this.tableData = arr
196
+        //     console.log(new Date(val[0]).getTime() / 1000)
197
+        //     console.log(new Date(val[1]).getTime() / 1000)
198
+        //     let arr1 = this.tableData
199
+        //     let a = []
200
+        //     arr1.map(item => {
201
+        //      if(new Date(item.create_time).getTime() / 1000 > new Date(val[0]).getTime() / 1000 && new Date(item.create_time).getTime() / 1000 < new Date(val[1]).getTime() / 1000 && item.org_id == this.$store.getters.xt_user.org_id){
202
+        //         a.push(item)
203
+        //       }
204
+        //     })
205
+        //     this.tableData = a
206
+        // },
207
+        changeStart(val){
208
+          this.start_time = val
209
+        },
210
+        changeEnd(val){
211
+           this.end_time = val
212
+        },
213
+        changeRegister(val){
159
 
214
 
215
+        },
216
+       handleSizeChange(val) {
217
+          this.limit = val
218
+          this.getList()
219
+       },
220
+        handleCurrentChange(val) {
221
+        this.page = val
222
+        this.getList()
223
+        },
224
+        getlist(){
225
+          var params = {
226
+               keyword:this.search_input,
227
+               start_time:this.start_time,
228
+               end_time:this.end_time,
229
+               register_type:this.register_type,
230
+               limit:this.limit,
231
+               page:this.page,
232
+            }
233
+           console.log("params",params)
234
+          getHisPatientHistory(params).then(response=>{
235
+             if(response.data.state == 1){
236
+                var history = response.data.data.history
237
+                console.log("history",history)
238
+                this.tableData = history
239
+                var total =  response.data.data.total
240
+                console.log("total",total)
241
+                this.total = total
242
+                var department =  response.data.data.department
243
+                console.log("department",department)
244
+                this.departMent = department
245
+                var doctor = response.data.data.doctor
246
+                console.log("doctor",doctor)
247
+                this.doctorList = doctor
248
+             }
249
+          })
250
+ 
251
+        },
252
+        getDepartMent(id){
253
+          var name = ""
254
+          for(let i=0;i<this.departMent.length;i++){
255
+            if(id == this.departMent[i].id){
256
+                name = this.departMent[i].name
257
+            }
258
+          }
259
+          return name
260
+        },
261
+        getDoctor(id){
262
+          var user_name = ""
263
+          for(let i=0;i<this.doctorList.length;i++){
264
+            if(id == this.doctorList[i].admin_user_id){
265
+               user_name = this.doctorList[i].user_name 
266
+            }
267
+          }
268
+          return user_name
269
+        },
270
+        getMedicalTreatment(id){
271
+          var name = ""
272
+          for(let i=0;i<this.medicalCare.length;i++){
273
+             if(this.medicalCare[i].id == id){
274
+               name = this.medicalCare[i].name
275
+             }
276
+          }
277
+          return name
278
+        },
279
+        getTime(value, temp) {
280
+         if (value != undefined) {
281
+                return uParseTime(value, temp);
282
+            }
283
+            return "";
284
+        },
285
+        toReturnPatient(id){
286
+          this.$confirm("确认退号吗?", "退号", {
287
+          confirmButtonText: "确 定",
288
+          cancelButtonText: "取 消",
289
+          type: "warning"
290
+        }).then(() => {
291
+          changePatient(id).then(response => {
292
+            if (response.data.state == 1) {
293
+              var msg = response.data.data.msg
294
+              this.$message.success("退号成功");
295
+              this.getlist()
296
+            } else {
297
+               this.$message.error("患者已就诊,退号失败")
298
+            }
299
+          });
300
+        })
301
+        .catch(() => {});
302
+        }
160
     }
303
     }
161
 }
304
 }
162
 </script>
305
 </script>

+ 21 - 11
src/xt_pages/user/components/EditGroupAdvice.vue Ver fichero

396
                 @select="handleSelect"
396
                 @select="handleSelect"
397
                 @input="changeDrugName"
397
                 @input="changeDrugName"
398
               ></el-autocomplete>
398
               ></el-autocomplete>
399
-              
399
+
400
             </el-form-item>
400
             </el-form-item>
401
           </el-col>
401
           </el-col>
402
           <el-col :span="14">
402
           <el-col :span="14">
696
       default: function() {
696
       default: function() {
697
         return [];
697
         return [];
698
       }
698
       }
699
+    },executionFrequencyOptions:{
700
+      type: Array,
701
+      default: function() {
702
+        return [];
703
+      }
704
+    },deliveryWayOptions:{
705
+      type: Array,
706
+      default: function() {
707
+        return [];
708
+      }
699
     },
709
     },
700
 
710
 
701
     unitsOption: {
711
     unitsOption: {
921
                 frequency_type: 0,
931
                 frequency_type: 0,
922
                 day_count: "0",
932
                 day_count: "0",
923
                 week_days: "",
933
                 week_days: "",
924
-              
934
+
925
               };
935
               };
926
             }
936
             }
927
             let mode = "";
937
             let mode = "";
928
 
938
 
929
             if (_this.groupForm.advice_type == 1) {
939
             if (_this.groupForm.advice_type == 1) {
930
-            
940
+
931
               mode = "1-3";
941
               mode = "1-3";
932
               if (
942
               if (
933
                 _this.groupForm.doctor != _this.$store.getters.xt_user.user.id
943
                 _this.groupForm.doctor != _this.$store.getters.xt_user.user.id
1081
                 remark: _this.groupForm.remark,
1091
                 remark: _this.groupForm.remark,
1082
                 parent_id: _this.groupSelectRow.id,
1092
                 parent_id: _this.groupSelectRow.id,
1083
                 groupno: _this.groupForm.groupno,
1093
                 groupno: _this.groupForm.groupno,
1084
-               
1094
+
1085
               };
1095
               };
1086
 
1096
 
1087
               let mode = "";
1097
               let mode = "";
2396
                 obj.custom_id = this.rand(10000000, 99999999)
2406
                 obj.custom_id = this.rand(10000000, 99999999)
2397
                 obj.drug_specs = base_drug_list[i].drug_specs
2407
                 obj.drug_specs = base_drug_list[i].drug_specs
2398
                 this.all_drug.push(obj)
2408
                 this.all_drug.push(obj)
2399
-                
2409
+
2400
               }
2410
               }
2401
-            }   
2411
+            }
2402
         })
2412
         })
2403
-       
2413
+
2404
     },
2414
     },
2405
     changeDrugName(name){
2415
     changeDrugName(name){
2406
        this.current_drug_name = name
2416
        this.current_drug_name = name
2438
         }
2448
         }
2439
       },
2449
       },
2440
       handleSelect1(){
2450
       handleSelect1(){
2441
-        
2451
+
2442
       },
2452
       },
2443
       handleSelect(){
2453
       handleSelect(){
2444
 
2454
 
2452
         })
2462
         })
2453
         var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
2463
         var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
2454
         // 调用 callback 返回建议列表的数据
2464
         // 调用 callback 返回建议列表的数据
2455
-       
2465
+
2456
         cb(results);
2466
         cb(results);
2457
      },
2467
      },
2458
 
2468
 
2463
      },
2473
      },
2464
 
2474
 
2465
      querySearch1(queryString, cb) {
2475
      querySearch1(queryString, cb) {
2466
-      
2476
+
2467
         var restaurants = this.drugSpec;
2477
         var restaurants = this.drugSpec;
2468
          console.log(restaurants)
2478
          console.log(restaurants)
2469
         restaurants.map(item => {
2479
         restaurants.map(item => {
2471
         })
2481
         })
2472
         var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
2482
         var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
2473
         // 调用 callback 返回建议列表的数据
2483
         // 调用 callback 返回建议列表的数据
2474
-       
2484
+
2475
         cb(results);
2485
         cb(results);
2476
       },
2486
       },
2477
   },
2487
   },