李帅 месяцев назад: 4
Родитель
Сommit
24783a352b

+ 27 - 1
src/views/medicalRecords/index.vue

@@ -40,6 +40,15 @@
40 40
           {{ row.attendingDoctorName }}
41 41
         </template>
42 42
       </el-table-column>
43
+      <el-table-column label="操作" show-overflow-tooltip align="center">
44
+        <template #default="{ row }">
45
+          <el-button
46
+            size="mini"
47
+            type="text"
48
+            @click="look(row)"
49
+          >查看</el-button>
50
+        </template>
51
+      </el-table-column>
43 52
     </el-table>
44 53
     <pagination
45 54
       v-show="total > 0"
@@ -48,16 +57,22 @@
48 57
       :limit.sync="queryParams.pageSize"
49 58
       @pagination="initList"
50 59
     />
60
+
61
+    <recordDetailDialog :recordDetailObj="recordDetailObj" :recordDetailFlag="recordDetailFlag" @cancelAll="cancelAll"/>
51 62
   </div>
52 63
 </template>
53 64
 
54 65
 <script>
55
-import { recordMedicalRecordList } from '@/api/allApi.js'
66
+import { recordMedicalRecordList , recordDetail} from '@/api/allApi.js'
56 67
 import initName from '@/utils/initName.js'
68
+import recordDetailDialog from './recordDetailDialog.vue';
57 69
 
58 70
 export default {
59 71
   name: 'EitcErmPcIndex',
60 72
   mixins: [initName],
73
+  components: {
74
+    recordDetailDialog
75
+  },
61 76
   data() {
62 77
     return {
63 78
       queryParams: {
@@ -65,7 +80,9 @@ export default {
65 80
         pageSize: 10,
66 81
         searchParam: ''
67 82
       },
83
+      recordDetailFlag: false,
68 84
       tableData: [],
85
+      recordDetailObj: {},
69 86
       total: 0
70 87
     }
71 88
   },
@@ -80,6 +97,15 @@ export default {
80 97
       if (res.code !== 200) return this.$message.error(res.msg)
81 98
       this.tableData = res.rows
82 99
       this.total = res.total
100
+    },
101
+    async look(row) {
102
+      const res = await recordDetail(row.id)
103
+      this.recordDetailObj = res.data
104
+      this.recordDetailFlag = true
105
+      console.log(this.recordDetailObj);
106
+    },
107
+    cancelAll() {
108
+      this.recordDetailFlag = false
83 109
     }
84 110
   }
85 111
 }

+ 241 - 0
src/views/medicalRecords/recordDetailDialog.vue

@@ -0,0 +1,241 @@
1
+<template>
2
+  <div>
3
+    <el-dialog
4
+      title="就诊详情"
5
+      :visible.sync="recordDetailFlag"
6
+      v-if="recordDetailFlag"
7
+      width="1200px"
8
+      :close-on-press-escape="false"
9
+      :close-on-click-modal="false"
10
+      :before-close="cancel"
11
+    >
12
+    <div class="df_box">
13
+      <div class="left_box">
14
+        <div style="display: flex; margin-top: 10px">
15
+          <div style="width: 80px; font-weight: 700">主诉:</div>
16
+          <div style="flex: 1">
17
+            {{ initToothPosition(recordDetailObj.dataList[0].toothPosition) }}
18
+            {{ recordDetailObj.dataList[0].data[0].contentInfo }}
19
+          </div>
20
+        </div>
21
+        <div style="display: flex; margin-top: 10px">
22
+          <div style="width: 80px; font-weight: 700">现病史:</div>
23
+          <div style="flex: 1">
24
+            {{ initToothPosition(recordDetailObj.dataList[0].toothPosition) }}
25
+            {{ recordDetailObj.dataList[0].data[1].contentInfo }}
26
+          </div>
27
+        </div>
28
+        <div style="display: flex; margin-top: 10px">
29
+          <div style="width: 80px; font-weight: 700">既往史:</div>
30
+          <div style="flex: 1">
31
+            {{
32
+              recordDetailObj.dataList[0].data[2].formattedPartsList.length > 0
33
+                ? recordDetailObj.dataList[0].data[2].formattedPartsList.join()
34
+                : '无'
35
+            }}
36
+          </div>
37
+        </div>
38
+        <div style="display: flex; margin-top: 10px">
39
+          <div style="width: 80px; font-weight: 700">家族史:</div>
40
+          <div style="flex: 1">
41
+            {{
42
+              recordDetailObj.dataList[0].data[3].formattedPartsList.length > 0
43
+                ? recordDetailObj.dataList[0].data[2].formattedPartsList.join()
44
+                : '无'
45
+            }}
46
+          </div>
47
+        </div>
48
+        <div style="display: flex; margin-top: 10px">
49
+          <div style="width: 80px; font-weight: 700">过敏史:</div>
50
+          <div style="flex: 1">
51
+            {{
52
+              recordDetailObj.dataList[0].data[4].formattedPartsList.length > 0
53
+                ? recordDetailObj.dataList[0].data[2].formattedPartsList.join()
54
+                : '无'
55
+            }}
56
+          </div>
57
+        </div>
58
+        <div style="display: flex; margin-top: 10px">
59
+          <div style="width: 80px; font-weight: 700">检查:</div>
60
+          <div style="flex: 1; display: flex; flex-direction: column">
61
+            <span
62
+              v-for="(it, ind) in recordDetailObj.dataList"
63
+              :key="ind"
64
+              style="margin-top: 5px"
65
+            >
66
+              {{
67
+                initToothPosition(recordDetailObj.dataList[ind].toothPosition)
68
+              }}
69
+              {{ it.data[5].contentInfo }}
70
+            </span>
71
+          </div>
72
+        </div>
73
+        <div style="display: flex; margin-top: 10px">
74
+          <div style="width: 80px; font-weight: 700">X线片示(影像):</div>
75
+          <div style="flex: 1; display: flex; flex-direction: column">
76
+            <span
77
+              v-for="(it, ind) in recordDetailObj.dataList"
78
+              :key="ind"
79
+              style="margin-top: 5px"
80
+            >
81
+              {{
82
+                initToothPosition(recordDetailObj.dataList[ind].toothPosition)
83
+              }}
84
+              {{ it.data[6].contentInfo }}
85
+            </span>
86
+          </div>
87
+        </div>
88
+        <div style="display: flex; margin-top: 10px">
89
+          <div style="width: 80px; font-weight: 700">诊断:</div>
90
+          <div style="flex: 1; display: flex; flex-direction: column">
91
+            <span
92
+              v-for="(it, ind) in recordDetailObj.dataList"
93
+              :key="ind"
94
+              style="margin-top: 5px"
95
+            >
96
+              {{
97
+                initToothPosition(recordDetailObj.dataList[ind].toothPosition)
98
+              }}
99
+              {{ it.data[7].contentInfo }}
100
+            </span>
101
+          </div>
102
+        </div>
103
+        <div style="display: flex; margin-top: 10px">
104
+          <div style="width: 80px; font-weight: 700">治疗计划:</div>
105
+          <div style="flex: 1; display: flex; flex-direction: column">
106
+            <span
107
+              v-for="(it, ind) in recordDetailObj.dataList"
108
+              :key="ind"
109
+              style="margin-top: 5px"
110
+            >
111
+              {{
112
+                initToothPosition(recordDetailObj.dataList[ind].toothPosition)
113
+              }}
114
+              {{ it.data[8].contentInfo }}
115
+            </span>
116
+          </div>
117
+        </div>
118
+        <div style="display: flex; margin-top: 10px">
119
+          <div style="width: 80px; font-weight: 700">
120
+            处置(基础模版公用):
121
+          </div>
122
+          <div style="flex: 1; display: flex; flex-direction: column">
123
+            <span
124
+              v-for="(it, ind) in recordDetailObj.dataList"
125
+              :key="ind"
126
+              style="margin-top: 5px"
127
+            >
128
+              {{
129
+                initToothPosition(recordDetailObj.dataList[ind].toothPosition)
130
+              }}
131
+              {{ it.data[9].contentInfo }}
132
+            </span>
133
+          </div>
134
+        </div>
135
+        <div style="display: flex; margin-top: 10px">
136
+          <div style="width: 80px; font-weight: 700">处置:</div>
137
+          <div style="flex: 1; display: flex; flex-direction: column">
138
+            <span
139
+              v-for="(it, ind) in recordDetailObj.dataList"
140
+              :key="ind"
141
+              style="margin-top: 5px"
142
+            >
143
+              {{
144
+                initToothPosition(recordDetailObj.dataList[ind].toothPosition)
145
+              }}
146
+              {{ it.data[10].contentInfo }}
147
+            </span>
148
+          </div>
149
+        </div>
150
+        <div style="display: flex; margin-top: 10px">
151
+          <div style="width: 80px; font-weight: 700">医嘱:</div>
152
+          <div style="flex: 1; display: flex; flex-direction: column">
153
+            <span
154
+              v-for="(it, ind) in recordDetailObj.dataList"
155
+              :key="ind"
156
+              style="margin-top: 5px"
157
+            >
158
+              {{
159
+                initToothPosition(recordDetailObj.dataList[ind].toothPosition)
160
+              }}
161
+              {{ it.data[11].contentInfo }}
162
+            </span>
163
+          </div>
164
+        </div>
165
+      </div>
166
+      <div class="rigth_box">
167
+        <el-card style="height: 100%; padding: 20px">
168
+          <div style="display: flex; margin-top: 10px">
169
+            <div style="width: 80px; font-weight: 700">科室:</div>
170
+            <div style="flex: 1">
171
+              {{ recordDetailObj.department }}
172
+            </div>
173
+          </div>
174
+          <div style="display: flex; margin-top: 10px">
175
+            <div style="width: 80px; font-weight: 700">医生:</div>
176
+            <div style="flex: 1">
177
+              {{ recordDetailObj.attendingDoctorName }}
178
+            </div>
179
+          </div>
180
+          <div style="display: flex; margin-top: 10px">
181
+            <div style="width: 80px; font-weight: 700">费用:</div>
182
+            <div style="flex: 1">
183
+              {{ recordDetailObj.cost }}
184
+            </div>
185
+          </div>
186
+          <div style="display: flex; margin-top: 10px">
187
+            <div style="width: 80px; font-weight: 700">诊所:</div>
188
+            <div style="flex: 1">
189
+              {{ recordDetailObj.clinicName }}
190
+            </div>
191
+          </div>
192
+        </el-card>
193
+      </div>
194
+    </div>
195
+    </el-dialog>
196
+  </div>
197
+</template>
198
+
199
+<script>
200
+import initName from '@/utils/initName.js'
201
+export default {
202
+  name: 'EitcErmPcRecordDetailDialog',
203
+  mixins: [initName],
204
+  props: {
205
+    recordDetailFlag: {
206
+      type: Boolean,
207
+      default: false
208
+    },
209
+    recordDetailObj: {
210
+      type: Object,
211
+      default: {}
212
+    }
213
+  },
214
+  data() {
215
+    return {}
216
+  },
217
+
218
+  mounted() {},
219
+
220
+  methods: {
221
+    cancel() {
222
+      this.$emit('cancelAll')
223
+    }
224
+  }
225
+}
226
+</script>
227
+<style lang="scss" scoped>
228
+.df_box {
229
+  display: flex;
230
+  max-height: 70vh;
231
+  overflow: auto;
232
+
233
+  .left_box {
234
+    flex: 1;
235
+    padding-left: 10px;
236
+  }
237
+  .rigth_box {
238
+    width: 300px;
239
+  }
240
+}
241
+</style>

+ 1 - 1
src/views/operationsAnalysis/index.vue

@@ -79,7 +79,7 @@ export default {
79 79
 
80 80
   methods: {
81 81
     async initList() {
82
-      if (this.time.length) {
82
+      if (Array.isArray(this.time) && this.time.length) {
83 83
         this.form = {
84 84
           startDate: this.time[0],
85 85
           endDate: this.time[1]

+ 3 - 0
src/views/patientCenter/printMedical.vue

@@ -94,6 +94,9 @@ import { VueEditor } from 'vue2-editor'
94 94
 export default {
95 95
   name: 'EitcErmPcPrintMedical',
96 96
   mixins: [initName],
97
+  components: {
98
+    VueEditor
99
+  },
97 100
   props: {
98 101
     printDialogVisible: {
99 102
       type: Boolean,