Quellcode durchsuchen

Merge branch 'master' of http://git.shengws.com/csx/Vue_New

See999 vor 5 Jahren
Ursprung
Commit
3352e22873

+ 39 - 3
src/api/integration.js Datei anzeigen

@@ -8,6 +8,45 @@ export function fetchPatientList(params) {
8 8
   })
9 9
 }
10 10
 
11
+export function saveinspectionsysitemid(params) {
12
+  return request({
13
+    url: '/api/patienthis/saveinspectionsysitemid',
14
+    method: 'post',
15
+    params: params
16
+  })
17
+}
18
+
19
+export function getsysinspectionlist(params) {
20
+  return request({
21
+    url: '/api/integration/sysinspectionlist',
22
+    method: 'get',
23
+    params: params
24
+  })
25
+}
26
+
27
+export function getsynclist(params) {
28
+  return request({
29
+    url: '/api/integration/synclist',
30
+    method: 'get',
31
+    params: params
32
+  })
33
+}
34
+
35
+export function saveInterface(params) {
36
+  return request({
37
+    url: '/api/patienthis/saveinterface',
38
+    method: 'post',
39
+    params: params
40
+  })
41
+}
42
+
43
+export function getInterface(params) {
44
+  return request({
45
+    url: '/api/patienthis/getinterface',
46
+    method: 'post',
47
+    params: params
48
+  })
49
+}
11 50
 
12 51
 export function fetchAdminList(params) {
13 52
   return request({
@@ -17,7 +56,6 @@ export function fetchAdminList(params) {
17 56
   })
18 57
 }
19 58
 
20
-
21 59
 export function createPatientHis(params) {
22 60
   return request({
23 61
     url: '/api/patienthis/create',
@@ -33,8 +71,6 @@ export function editPatientHis(params) {
33 71
   })
34 72
 }
35 73
 
36
-
37
-
38 74
 export function createAdminHis(params) {
39 75
   return request({
40 76
     url: '/api/adminhis/create',

+ 1 - 1
src/lang/zh.js Datei anzeigen

@@ -138,7 +138,7 @@ export default {
138 138
     special_permission_manage: '特殊权限管理',
139 139
     schedule_print: '排班打印',
140 140
 
141
-    warehouseReceipt: '出入库',
141
+    warehouseReceipt: '耗材出入库',
142 142
     warehouseReceiptOther: '其他出入库',
143 143
     stockInOrder: '耗材入库单',
144 144
     salesReturnOrder: '耗材退货单',

+ 22 - 11
src/router/modules/integration.js Datei anzeigen

@@ -10,17 +10,28 @@ export default {
10 10
     title: 'integration_config',
11 11
     icon: 'excel'
12 12
   },
13
-  children: [
14
-    {
15
-      path: '/integration/his',
16
-      component: () => import('@/xt_pages/integration/his_config'),
17
-      name: 'his_config',
18
-      meta: {
19
-        title: 'his_config',
20
-        noCache: true,
21
-
22
-      }
23
-    },
13
+  children: [{
14
+    path: '/data/hisconfig',
15
+    component: () => import('@/xt_pages/integration/his_config'),
16
+    name: 'HIS集成',
17
+    meta: {
18
+      title: 'HIS集成'
19
+    }
20
+  }, {
21
+    path: '/data/lisconfig',
22
+    component: () => import('@/xt_pages/integration/lis_config'),
23
+    name: 'LIS集成',
24
+    meta: {
25
+      title: 'LIS集成'
26
+    }
27
+  }, {
28
+    path: '/data/sisconfig',
29
+    component: () => import('@/xt_pages/integration/sis_config'),
30
+    name: '质控集成',
31
+    meta: {
32
+      title: '质控集成'
33
+    }
34
+  }
24 35
 
25 36
   ]
26 37
 }

+ 101 - 101
src/router/modules/stock.js Datei anzeigen

@@ -1,114 +1,114 @@
1
-import Layout from "@/views/layout/Layout";
1
+import Layout from '@/views/layout/Layout'
2 2
 
3 3
 export default {
4
-  path: "/stock",
4
+  path: '/stock',
5 5
   component: Layout,
6
-  redirect: "noredirect",
7
-  name: "stockManage",
6
+  redirect: 'noredirect',
7
+  name: 'stockManage',
8 8
   alwaysShow: true,
9 9
   meta: {
10
-    title: "stockManage",
11
-    icon: "stock",
10
+    title: 'stockManage',
11
+    icon: 'stock',
12 12
     isChild: true
13 13
   },
14 14
   children: [
15 15
     {
16
-      path: "/stock/warehouseReceipt/",
16
+      path: '/stock/warehouseReceipt/',
17 17
       component: Layout,
18
-      redirect: "/stock/in",
19
-      name: "warehouseReceipt",
18
+      redirect: '/stock/in',
19
+      name: 'warehouseReceipt',
20 20
       parentNum: 1,
21 21
       meta: {
22 22
         isChild: true,
23
-        title: "warehouseReceipt",
24
-        noCache: true,
23
+        title: 'warehouseReceipt',
24
+        noCache: true
25 25
 
26 26
       }
27 27
     },
28 28
     {
29
-      path: "/stock/warehouseReceiptOther/",
29
+      path: '/stock/warehouseReceiptOther/',
30 30
       component: Layout,
31
-      redirect: "/stock/in/other",
32
-      name: "warehouseReceiptOther",
31
+      redirect: '/stock/in/other',
32
+      name: 'warehouseReceiptOther',
33 33
       parentNum: 2,
34 34
       meta: {
35 35
         isChild: true,
36
-        title: "warehouseReceiptOther",
37
-        noCache: true,
36
+        title: 'warehouseReceiptOther',
37
+        noCache: true
38 38
 
39 39
       }
40 40
     },
41 41
     {
42
-      path: "/stock/in",
43
-      component: () => import("@/xt_pages/stock/stockInOrder"),
44
-      name: "stockInOrder",
42
+      path: '/stock/in',
43
+      component: () => import('@/xt_pages/stock/stockInOrder'),
44
+      name: 'stockInOrder',
45 45
       hidden: true,
46 46
       is_menu: false,
47 47
       num: 1,
48
-      meta: { title: "stockInOrder", noCache: true }
48
+      meta: { title: 'stockInOrder', noCache: true }
49 49
     },
50 50
     {
51
-      path: "/stock/return",
52
-      component: () => import("@/xt_pages/stock/salesReturnOrder"),
53
-      name: "salesReturnOrder",
51
+      path: '/stock/return',
52
+      component: () => import('@/xt_pages/stock/salesReturnOrder'),
53
+      name: 'salesReturnOrder',
54 54
       hidden: true,
55 55
       is_menu: false,
56 56
       num: 1,
57
-      meta: { title: "salesReturnOrder", noCache: true }
57
+      meta: { title: 'salesReturnOrder', noCache: true }
58 58
     },
59 59
     {
60
-      path: "/stock/out",
61
-      component: () => import("@/xt_pages/stock/stockOutOrder"),
62
-      name: "stockOutOrder",
60
+      path: '/stock/out',
61
+      component: () => import('@/xt_pages/stock/stockOutOrder'),
62
+      name: 'stockOutOrder',
63 63
       hidden: true,
64 64
       is_menu: false,
65 65
       num: 1,
66
-      meta: { title: "stockOutOrder", noCache: true }
66
+      meta: { title: 'stockOutOrder', noCache: true }
67 67
     },
68 68
     {
69
-      path: "/stock/cancel",
70
-      component: () => import("@/xt_pages/stock/cancelStockOrder"),
71
-      name: "cancelStockOrder",
69
+      path: '/stock/cancel',
70
+      component: () => import('@/xt_pages/stock/cancelStockOrder'),
71
+      name: 'cancelStockOrder',
72 72
       hidden: true,
73 73
       is_menu: false,
74 74
       num: 1,
75
-      meta: { title: "cancelStockOrder", noCache: true }
75
+      meta: { title: 'cancelStockOrder', noCache: true }
76 76
     },
77 77
     {
78
-      path: "/stock/in/other",
79
-      component: () => import("@/xt_pages/stock/otherStockInOrder"),
80
-      name: "otherStockInOrder",
78
+      path: '/stock/in/other',
79
+      component: () => import('@/xt_pages/stock/otherStockInOrder'),
80
+      name: 'otherStockInOrder',
81 81
       hidden: true,
82 82
       is_menu: false,
83 83
       num: 2,
84
-      meta: { title: "otherStockInOrder", noCache: true }
84
+      meta: { title: 'otherStockInOrder', noCache: true }
85 85
     },
86 86
     {
87
-      path: "/stock/return/other",
88
-      component: () => import("@/xt_pages/stock/otherSalesReturnOrder"),
89
-      name: "otherSalesReturnOrder",
87
+      path: '/stock/return/other',
88
+      component: () => import('@/xt_pages/stock/otherSalesReturnOrder'),
89
+      name: 'otherSalesReturnOrder',
90 90
       hidden: true,
91 91
       is_menu: false,
92 92
       num: 2,
93
-      meta: { title: "otherSalesReturnOrder", noCache: true }
93
+      meta: { title: 'otherSalesReturnOrder', noCache: true }
94 94
     },
95 95
     {
96
-      path: "/stock/out/other",
97
-      component: () => import("@/xt_pages/stock/otherStockOutOrder"),
98
-      name: "otherStockOutOrder",
96
+      path: '/stock/out/other',
97
+      component: () => import('@/xt_pages/stock/otherStockOutOrder'),
98
+      name: 'otherStockOutOrder',
99 99
       hidden: true,
100 100
       is_menu: false,
101 101
       num: 2,
102
-      meta: { title: "otherStockOutOrder", noCache: true }
102
+      meta: { title: 'otherStockOutOrder', noCache: true }
103 103
     },
104 104
     {
105
-      path: "/stock/cancel/other",
106
-      component: () => import("@/xt_pages/stock/otherCancelStockOrder"),
107
-      name: "otherCancelStockOrder",
105
+      path: '/stock/cancel/other',
106
+      component: () => import('@/xt_pages/stock/otherCancelStockOrder'),
107
+      name: 'otherCancelStockOrder',
108 108
       hidden: true,
109 109
       is_menu: false,
110 110
       num: 2,
111
-      meta: { title: "otherCancelStockOrder", noCache: true }
111
+      meta: { title: 'otherCancelStockOrder', noCache: true }
112 112
     },
113 113
     // {
114 114
     //   path: "/stock/",
@@ -161,105 +161,105 @@ export default {
161 161
     //   ]
162 162
     // },
163 163
     {
164
-      path: "/stock/query",
165
-      component: () => import("@/xt_pages/stock/stockQuery"),
166
-      name: "stockQuery",
167
-      meta: { title: "stockQuery", noCache: true }
164
+      path: '/stock/query',
165
+      component: () => import('@/xt_pages/stock/stockQuery'),
166
+      name: 'stockQuery',
167
+      meta: { title: 'stockQuery', noCache: true }
168 168
     },
169 169
     {
170
-      path: "/stock/detail",
171
-      component: () => import("@/xt_pages/stock/stockDetailIndex"),
172
-      name: "stockDetail",
173
-      meta: { title: "stockDetail", noCache: true }
170
+      path: '/stock/detail',
171
+      component: () => import('@/xt_pages/stock/stockDetailIndex'),
172
+      name: 'stockDetail',
173
+      meta: { title: 'stockDetail', noCache: true }
174 174
     },
175 175
     {
176
-      path: "/stock/in/add",
177
-      component: () => import("@/xt_pages/stock/stockInOrderAdd"),
178
-      name: "stockInOrderAdd",
176
+      path: '/stock/in/add',
177
+      component: () => import('@/xt_pages/stock/stockInOrderAdd'),
178
+      name: 'stockInOrderAdd',
179 179
       hidden: true,
180 180
       is_menu: false,
181
-      meta: { title: "stockInOrderAdd", noCache: true }
181
+      meta: { title: 'stockInOrderAdd', noCache: true }
182 182
     },
183 183
     {
184
-      path: "/stock/in/detail",
185
-      component: () => import("@/xt_pages/stock/stockInDetail"),
186
-      name: "stockInDetail",
184
+      path: '/stock/in/detail',
185
+      component: () => import('@/xt_pages/stock/stockInDetail'),
186
+      name: 'stockInDetail',
187 187
       hidden: true,
188 188
       is_menu: false,
189
-      meta: { title: "stockInDetail", noCache: true }
189
+      meta: { title: 'stockInDetail', noCache: true }
190 190
     },
191 191
     {
192
-      path: "/stock/return/detail",
193
-      component: () => import("@/xt_pages/stock/salesReturnDetail"),
194
-      name: "salesReturnDetail",
192
+      path: '/stock/return/detail',
193
+      component: () => import('@/xt_pages/stock/salesReturnDetail'),
194
+      name: 'salesReturnDetail',
195 195
       hidden: true,
196 196
       is_menu: false,
197
-      meta: { title: "salesReturnDetail", noCache: true }
197
+      meta: { title: 'salesReturnDetail', noCache: true }
198 198
     },
199 199
     {
200
-      path: "/stock/return/add",
201
-      component: () => import("@/xt_pages/stock/salesReturnOrderAdd"),
202
-      name: "salesReturnOrderAdd",
200
+      path: '/stock/return/add',
201
+      component: () => import('@/xt_pages/stock/salesReturnOrderAdd'),
202
+      name: 'salesReturnOrderAdd',
203 203
       hidden: true,
204 204
       is_menu: false,
205
-      meta: { title: "salesReturnOrderAdd", noCache: true }
205
+      meta: { title: 'salesReturnOrderAdd', noCache: true }
206 206
     },
207 207
     {
208
-      path: "/stock/out/add",
209
-      component: () => import("@/xt_pages/stock/stockOutOrderAdd"),
210
-      name: "stockOutOrderAdd",
208
+      path: '/stock/out/add',
209
+      component: () => import('@/xt_pages/stock/stockOutOrderAdd'),
210
+      name: 'stockOutOrderAdd',
211 211
       hidden: true,
212 212
       is_menu: false,
213
-      meta: { title: "stockOutOrderAdd", noCache: true }
213
+      meta: { title: 'stockOutOrderAdd', noCache: true }
214 214
     },
215 215
     {
216
-      path: "/stock/out/detail",
217
-      component: () => import("@/xt_pages/stock/stockOutDetail"),
218
-      name: "stockOutDetail",
216
+      path: '/stock/out/detail',
217
+      component: () => import('@/xt_pages/stock/stockOutDetail'),
218
+      name: 'stockOutDetail',
219 219
       hidden: true,
220 220
       is_menu: false,
221
-      meta: { title: "stockOutDetail", noCache: true }
221
+      meta: { title: 'stockOutDetail', noCache: true }
222 222
     },
223 223
     {
224
-      path: "/stock/cancel/add",
225
-      component: () => import("@/xt_pages/stock/cancelStockOrderAdd"),
226
-      name: "cancelStockOrderAdd",
224
+      path: '/stock/cancel/add',
225
+      component: () => import('@/xt_pages/stock/cancelStockOrderAdd'),
226
+      name: 'cancelStockOrderAdd',
227 227
       hidden: true,
228 228
       is_menu: false,
229
-      meta: { title: "cancelStockOrderAdd", noCache: true }
229
+      meta: { title: 'cancelStockOrderAdd', noCache: true }
230 230
     },
231 231
     {
232
-      path: "/stock/cancel/detail",
233
-      component: () => import("@/xt_pages/stock/cancelStockDetail"),
234
-      name: "cancelStockDetail",
232
+      path: '/stock/cancel/detail',
233
+      component: () => import('@/xt_pages/stock/cancelStockDetail'),
234
+      name: 'cancelStockDetail',
235 235
       hidden: true,
236 236
       is_menu: false,
237
-      meta: { title: "cancelStockDetail", noCache: true }
237
+      meta: { title: 'cancelStockDetail', noCache: true }
238 238
     },
239 239
     {
240
-      path: "/stock/config",
241
-      component: () => import("@/xt_pages/stock/index"),
242
-      name: "config",
243
-      meta: { title: "config", noCache: true }
240
+      path: '/stock/config',
241
+      component: () => import('@/xt_pages/stock/index'),
242
+      name: 'config',
243
+      meta: { title: 'config', noCache: true }
244 244
     },
245 245
     {
246
-      path: "/stock/print",
247
-      component: () => import("@/xt_pages/stock/detail/print"),
246
+      path: '/stock/print',
247
+      component: () => import('@/xt_pages/stock/detail/print'),
248 248
       hidden: true,
249 249
       is_menu: false,
250
-      name: "stock_print",
250
+      name: 'stock_print',
251 251
       meta: {
252
-        title: "库存打印",
252
+        title: '库存打印',
253 253
         noCache: true
254 254
       }
255 255
     },
256 256
     {
257
-      path: "/stock/user/detail",
258
-      component: () => import("@/xt_pages/stock/stockUserDetail"),
259
-      name: "user_detail",
257
+      path: '/stock/user/detail',
258
+      component: () => import('@/xt_pages/stock/stockUserDetail'),
259
+      name: 'user_detail',
260 260
       hidden: true,
261 261
       is_menu: false,
262
-      meta: { title: "user_detail", noCache: true }
262
+      meta: { title: 'user_detail', noCache: true }
263 263
     }
264 264
   ]
265
-};
265
+}

+ 1 - 8
src/router/modules/systems.js Datei anzeigen

@@ -118,13 +118,6 @@ export default {
118 118
     meta: {
119 119
       title: 'printTemplate'
120 120
     }
121
-  }, {
122
-    path: '/data/hisconfig',
123
-    component: () => import('@/xt_pages/data/hisConfig'),
124
-    name: 'hisconfig',
125
-    meta: {
126
-      title: 'hisconfig'
127
-    }
128
-  },
121
+  }
129 122
   ]
130 123
 }

+ 5 - 5
src/utils/admin_info_cache.js Datei anzeigen

@@ -1,13 +1,13 @@
1
-const userInfoKey = "admin_user_info"
1
+const userInfoKey = 'admin_user_info'
2 2
 
3 3
 export function getAdminUserInfoCache() {
4
-    return window.sessionStorage.getItem(userInfoKey)
4
+  return window.sessionStorage.getItem(userInfoKey)
5 5
 }
6 6
 
7 7
 export function cacheAdminUserInfo(infoJSONStr) {
8
-    window.sessionStorage.setItem(userInfoKey, infoJSONStr)
8
+  window.sessionStorage.setItem(userInfoKey, infoJSONStr)
9 9
 }
10 10
 
11 11
 export function removeAdminUserInfoCache() {
12
-    window.sessionStorage.removeItem(userInfoKey)
13
-}
12
+  window.sessionStorage.removeItem(userInfoKey)
13
+}

+ 7 - 0
src/views/layout/components/Navbar.vue Datei anzeigen

@@ -272,12 +272,18 @@ export default {
272 272
     },
273 273
     toClick() {
274 274
       window.location.href = "https://testsso.sgjyun.com/help";
275
+    },
276
+    getCreatorName() {
277
+      getCreatorName().then(response => {});
275 278
     }
276 279
   },
277 280
   created() {
278 281
     getOrgs().then(response => {
279 282
       if (response.data.state === 1) {
280 283
         this.orgs = response.data.data.orgs;
284
+        console.log("org", this.orgs);
285
+        var creator = response.data.data.creator;
286
+        console.log("creator", creator);
281 287
         for (let i = 0; i < this.orgs.length; i++) {
282 288
           if (this.orgs[i].id == this.org_id) {
283 289
             this.org_name = this.orgs[i].org_name;
@@ -285,6 +291,7 @@ export default {
285 291
         }
286 292
       }
287 293
     });
294
+    this.getCreatorName();
288 295
   }
289 296
 };
290 297
 </script>

+ 1 - 1
src/xt_pages/dialysis/bulletinBoard.vue Datei anzeigen

@@ -235,7 +235,7 @@ export default {
235 235
         } else {
236 236
           if (r.data.boards.length == 0) {
237 237
             this.currentPage = 1;
238
-            this.getBoards();
238
+            // this.getBoards();
239 239
           } else {
240 240
             this.today = r.data.today;
241 241
             this.week =

+ 7 - 2
src/xt_pages/dialysis/details/dialog/monitor_dialog.vue Datei anzeigen

@@ -600,7 +600,7 @@ export default {
600 600
       visible: false,
601 601
       edit: false,
602 602
       current_row_class: "current-box-class",
603
-
603
+      creator:0,
604 604
       patient_id: 0,
605 605
       schedule_date: 0,
606 606
       template_id: 0,
@@ -773,6 +773,10 @@ export default {
773 773
         this.$message.error("请选择一条监测记录");
774 774
         return;
775 775
       }
776
+      this.creator = this.table_current_row.creator
777
+      console.log( this.table_current_row)
778
+      console.log( this.table_current_row.creator)
779
+      console.log(this.creator)
776 780
       this.setEditMonitor(this.table_current_row);
777 781
       this.$refs.table.setCurrentRow(null);
778 782
       this.edit = true;
@@ -785,6 +789,7 @@ export default {
785 789
     },
786 790
     tableCurrentRowChange: function(currentRow) {
787 791
       this.table_current_row = currentRow;
792
+
788 793
       // console.log("tableCurrentRowChange", currentRow)
789 794
     },
790 795
     setEditMonitor: function(monitor) {
@@ -965,7 +970,7 @@ export default {
965 970
       let mode = "1"
966 971
        if(this.form.id > 0){
967 972
          mode = "2"
968
-         if(this.form.monitoring_nurse > 0 && this.form.monitoring_nurse != this.$store.getters.xt_user.user.id){
973
+         if(this.creator > 0 && this.creator!= this.$store.getters.xt_user.user.id){
969 974
           mode = "3"
970 975
          }
971 976
       }

+ 151 - 0
src/xt_pages/integration/his/fieldConfig.vue Datei anzeigen

@@ -0,0 +1,151 @@
1
+<template>
2
+  <div style="display:flex;">
3
+    <el-tabs tabPosition="left" type="border-card" style="display:inline-black;">
4
+      <el-tab-pane v-for="item in sysInspec" :key="item.project_id" :label="item.project_name" >
5
+        <el-table :data="item.inspection_reference" border style="width: 100%">
6
+          <el-table-column
7
+            prop="item_name"
8
+            label="检验名称"
9
+            width="180">
10
+          </el-table-column>
11
+          <el-table-column
12
+            prop="id"
13
+            label="item_id"
14
+            width="180">
15
+          </el-table-column>
16
+        </el-table>
17
+      </el-tab-pane>
18
+    </el-tabs>
19
+
20
+    <template v-if="ownerInspec">
21
+      <el-tabs  tabPosition="left" type="border-card" style="display:inline-black;margin-left:100px;">
22
+        <el-tab-pane v-for="owner in ownerInspec" :key="owner.project_id" :label="owner.project_name" >
23
+          <el-table :data="owner.inspection_reference" border style="width: 100%">
24
+            <el-table-column
25
+              prop="item_name"
26
+              label="检验名称"
27
+              width="180">
28
+            </el-table-column>
29
+            <el-table-column label="item_id"  width="180"> 
30
+              <template slot-scope="scope">
31
+                <span v-if="scope.row.sys_item_id > 0">{{scope.row.sys_item_id}}</span>
32
+              </template>
33
+            </el-table-column>
34
+            <el-table-column label="编辑" width="180">
35
+              <template slot-scope="scope">
36
+              <el-button size="mini"  @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
37
+              </template>
38
+            </el-table-column>
39
+          </el-table>
40
+        </el-tab-pane>
41
+      </el-tabs>
42
+    </template>
43
+    <el-dialog title="编辑item_id" :visible.sync="dialogFormVisible">
44
+      <el-form :model="form">
45
+        <el-form-item label="检验检查名称" :label-width="formLabelWidth">
46
+          <el-input v-model="form.item_name" autocomplete="off"></el-input>
47
+        </el-form-item>
48
+        <el-form-item label="系统item_id" :label-width="formLabelWidth">
49
+          <el-input v-model="form.sys_item_id" autocomplete="off"></el-input>
50
+        </el-form-item>
51
+      </el-form>
52
+      <div slot="footer" class="dialog-footer">
53
+        <el-button @click="dialogFormVisible = false">取 消</el-button>
54
+        <el-button type="primary" @click="saveinspection()">确 定</el-button>
55
+      </div>
56
+    </el-dialog>
57
+  </div>
58
+</template>
59
+
60
+<script>
61
+import { getsysinspectionlist, saveinspectionsysitemid } from '@/api/integration'
62
+
63
+export default {
64
+  name: 'patientHisConfig',
65
+
66
+  created() {
67
+    this.getsysinspectionlist()
68
+  },
69
+  data() {
70
+    return {
71
+      dialogFormVisible: false,
72
+      ownerInspec: {},
73
+      sysInspec: {},
74
+      form: []
75
+    }
76
+  },
77
+  methods: {
78
+    handleEdit: function(index, row) {
79
+      this.form = row
80
+      this.dialogFormVisible = true
81
+    },
82
+    saveinspection: function() {
83
+      saveinspectionsysitemid(this.form).then(response => {
84
+        if (response.data.state == 0) {
85
+          this.$message.error(response.data.msg)
86
+          return false
87
+        } else {
88
+          this.ownerInspec[this.form.project_id]['inspection_reference']['sys_item_id'] = this.form.sys_item_id
89
+          this.dialogFormVisible = false
90
+        }
91
+      })
92
+    },
93
+    getsysinspectionlist: function() {
94
+      getsysinspectionlist().then(response => {
95
+        if (response.data.state == 0) {
96
+          this.$message.error(response.data.msg)
97
+          return false
98
+        } else {
99
+          this.ownerInspec = response.data.data.ownerInspec
100
+          this.sysInspec = response.data.data.sysInspec
101
+        }
102
+      })
103
+    }
104
+  }
105
+}
106
+</script>
107
+
108
+<style rel="stylesheet/css" lang="scss" scoped>
109
+.information {
110
+  border: 1px #dcdfe6 solid;
111
+  padding: 30px 20px 30px 20px;
112
+
113
+  .border {
114
+    border-bottom: 1px #dcdfe6 solid;
115
+    margin: 0px 0 20px 0;
116
+  }
117
+}
118
+
119
+.edit_separater {
120
+  border-top: 1px solid rgb(233, 233, 233);
121
+  margin-top: 15px;
122
+  margin-bottom: 15px;
123
+}
124
+</style>
125
+
126
+<style>
127
+.sign-and-weigh-box .sign-and-weigh-box-patients .cell {
128
+  font-size: 12px;
129
+}
130
+
131
+.sign-and-weigh-box .sign-and-weigh-box-patients .current-row > td {
132
+  background: #6fb5fa;
133
+}
134
+
135
+.count {
136
+  color: #bd2c00;
137
+}
138
+
139
+.el-table td,
140
+.el-table th.is-leaf,
141
+.el-table--border,
142
+.el-table--group {
143
+  border-color: #d0d3da;
144
+}
145
+
146
+.el-table--border::after,
147
+.el-table--group::after,
148
+.el-table::before {
149
+  background-color: #d0d3da;
150
+}
151
+</style>

+ 250 - 0
src/xt_pages/integration/his/interfaceConfig.vue Datei anzeigen

@@ -0,0 +1,250 @@
1
+<template>
2
+  <el-form ref="form" :model="form" label-width="140px" style="margin-top:40px;">
3
+    <el-form-item label="同步模式">
4
+      <el-select v-model="form.pattern" placeholder="请选择同步模式"  style="width :600px;">
5
+        <el-option v-for="item in patterns" :key="item.value" :label="item.label" :value="item.value"> </el-option>
6
+      </el-select>
7
+    </el-form-item>
8
+    <el-form-item label="数据库地址" v-if="form.pattern == 1 || form.pattern == 0" >
9
+      <el-input v-model.trim="form.dbhost" maxlength="200" style="width :600px;"></el-input>
10
+    </el-form-item>
11
+    <el-form-item label="用户名" v-if="form.pattern == 1 || form.pattern == 0" >
12
+      <el-input v-model.trim="form.dbuser" maxlength="200" style="width :600px;"></el-input>
13
+    </el-form-item>
14
+    <el-form-item label="密码" v-if="form.pattern == 1 || form.pattern == 0" >
15
+      <el-input v-model.trim="form.dbpassword" maxlength="200" style="width :600px;"></el-input>
16
+    </el-form-item>
17
+    <el-form-item label="数据库名" v-if="form.pattern == 1 || form.pattern == 0" >
18
+      <el-input v-model.trim="form.dbname" maxlength="200" style="width :600px;"></el-input>
19
+    </el-form-item>
20
+    <el-form-item label="接口地址" v-if="form.pattern == 2" >
21
+      <el-input v-model.trim="form.interface_url" maxlength="200" style="width :600px;"></el-input>
22
+    </el-form-item>
23
+    <el-form-item label="密钥" v-if="form.pattern == 2" >
24
+      <el-input v-model.trim="form.interface_token" maxlength="200" style="width :600px;"></el-input>
25
+    </el-form-item>
26
+    <el-form-item label="可访问IP" v-if="form.pattern == 3" >
27
+      <el-input v-model.trim="form.allow_ip" maxlength="200" style="width :600px;"></el-input>
28
+    </el-form-item>
29
+    <el-form-item label="密钥" v-if="form.pattern == 3" >
30
+      <el-input v-model.trim="form.allow_token" maxlength="200" style="width :600px;"></el-input>
31
+    </el-form-item>
32
+    <el-form-item label="同步频率">
33
+      <el-select v-model="form.sync_frequency" placeholder="请选择同步频率" style="width :600px;">
34
+        <el-option v-for="item in sync_frequencys" :key="item.value" :label="item.label" :value="item.value"> </el-option>
35
+      </el-select>
36
+    </el-form-item>
37
+
38
+    <el-form-item label="Tips" v-if="form.pattern == 3" >
39
+      <div style="width :600px;">本接口方位地址为:https://api.kuyicloud.com/api/sync?org_id=xx?str=xxx?timestamp=xxx?titck=xxx
40
+需要传递的参数有,org_id(机构id),str(随机字符串),timestamp(当前时间戳),和titck(签名)
41
+签名生成规则:org_id+str+timestamp,以md5加密钥的方式生成字符串</div>
42
+    </el-form-item>
43
+  
44
+    <el-form-item>
45
+      <el-button type="primary" @click="onSubmit">保存</el-button>
46
+      <el-button>重置</el-button>
47
+    </el-form-item>
48
+  </el-form>
49
+</template>
50
+
51
+<script>
52
+import { getInterface, saveInterface } from '@/api/integration'
53
+export default {
54
+  name: 'interfaceConfig',
55
+
56
+  created() {
57
+    this.getInterface()
58
+  },
59
+  data() {
60
+    return {
61
+      sync_frequencys: [{
62
+        value: 1,
63
+        label: '1分钟/次'
64
+      }, {
65
+        value: 2,
66
+        label: '10分钟/次'
67
+      }, {
68
+        value: 3,
69
+        label: '30分钟/次'
70
+      }, {
71
+        value: 4,
72
+        label: '1小时/次'
73
+      }, {
74
+        value: 5,
75
+        label: '6小时/次'
76
+      }, {
77
+        value: 6,
78
+        label: '12小时/次'
79
+      }, {
80
+        value: 7,
81
+        label: '1天/次'
82
+      }],
83
+      patterns: [{
84
+        value: 1,
85
+        label: '访问数据库模式'
86
+      }, {
87
+        value: 2,
88
+        label: '调用接口模式'
89
+      }, {
90
+        value: 3,
91
+        label: '数据接收模式'
92
+      }],
93
+      form: {
94
+        id: 0,
95
+        pattern: '',
96
+        dbhost: '',
97
+        dbuser: '',
98
+        dbpassword: '',
99
+        dbname: '',
100
+        interface_url: '',
101
+        interface_token: '',
102
+        allow_ip: '',
103
+        allow_token: '',
104
+        sync_frequency: ''
105
+      }
106
+    }
107
+  },
108
+  methods: {
109
+    getInterface: function() {
110
+      getInterface().then(response => {
111
+        if (response.data.state == 0) {
112
+          this.$message.error(response.data.msg)
113
+          return false
114
+        } else {
115
+          var interfaceinfo = response.data.data.interfaceinfo
116
+          if (interfaceinfo != null) {
117
+            this.form.id = interfaceinfo.id
118
+            this.form.pattern = interfaceinfo.pattern
119
+            this.form.dbhost = interfaceinfo.dbhost
120
+            this.form.dbuser = interfaceinfo.dbuser
121
+            this.form.dbpassword = interfaceinfo.dbpassword
122
+            this.form.dbname = interfaceinfo.dbname
123
+            this.form.interface_url = interfaceinfo.interface_url
124
+            this.form.interface_token = interfaceinfo.interface_token
125
+            this.form.allow_ip = interfaceinfo.allow_ip
126
+            this.form.allow_token = interfaceinfo.allow_token
127
+            this.form.sync_frequency = interfaceinfo.sync_frequency
128
+          }
129
+        }
130
+      })
131
+    },
132
+    onSubmit() {
133
+      if (this.form.pattern === '') {
134
+        this.$message.error('请选择同步模式')
135
+        return false
136
+      }
137
+      if (this.form.pattern == 1) {
138
+        if (this.form.dbhost.length <= 0) {
139
+          this.$message.error('请输入数据库地址')
140
+          return false
141
+        }
142
+        if (this.form.dbuser.length <= 0) {
143
+          this.$message.error('请输入数据库用户名')
144
+          return false
145
+        }
146
+        if (this.form.dbpassword.length <= 0) {
147
+          this.$message.error('请输入数据库密码')
148
+          return false
149
+        }
150
+        if (this.form.dbname.length <= 0) {
151
+          this.$message.error('请输入数据库名')
152
+          return false
153
+        }
154
+      }
155
+      if (this.form.pattern == 2) {
156
+        if (this.form.interface_url.length <= 0) {
157
+          this.$message.error('请输入接口地址')
158
+          return false
159
+        }
160
+        if (this.form.interface_token.length <= 0) {
161
+          this.$message.error('请输入密钥')
162
+          return false
163
+        }
164
+      }
165
+      if (this.form.pattern == 3) {
166
+        if (this.form.allow_ip.length <= 0) {
167
+          this.$message.error('请输入可访问IP地址')
168
+          return false
169
+        }
170
+        if (this.form.allow_token.length <= 0) {
171
+          this.$message.error('请输入密钥')
172
+          return false
173
+        }
174
+      }
175
+      if (this.form.sync_frequency === '') {
176
+        this.$message.error('请选择同步频率')
177
+        return false
178
+      }
179
+
180
+      saveInterface(this.form).then(response => {
181
+        if (response.data.state == 0) {
182
+          this.$message.error(response.data.msg)
183
+          return false
184
+        } else {
185
+          var interfaceinfo = response.data.data.interfaceinfo
186
+          if (interfaceinfo != null && interfaceinfo.length > 0) {
187
+            this.form.id = interfaceinfo.id
188
+            this.form.pattern = interfaceinfo.pattern
189
+            this.form.dbhost = interfaceinfo.dbhost
190
+            this.form.dbuser = interfaceinfo.dbuser
191
+            this.form.dbpassword = interfaceinfo.dbpassword
192
+            this.form.dbname = interfaceinfo.dbname
193
+            this.form.interface_url = interfaceinfo.interface_url
194
+            this.form.interface_token = interfaceinfo.interface_token
195
+            this.form.allow_ip = interfaceinfo.allow_ip
196
+            this.form.allow_token = interfaceinfo.allow_token
197
+            this.form.sync_frequency = interfaceinfo.sync_frequency
198
+          }
199
+          this.$message({ message: '提交成功', type: 'success' })
200
+        }
201
+      })
202
+    }
203
+  }
204
+}
205
+</script>
206
+
207
+<style rel="stylesheet/css" lang="scss" scoped>
208
+.information {
209
+  border: 1px #dcdfe6 solid;
210
+  padding: 30px 20px 30px 20px;
211
+
212
+  .border {
213
+    border-bottom: 1px #dcdfe6 solid;
214
+    margin: 0px 0 20px 0;
215
+  }
216
+}
217
+
218
+.edit_separater {
219
+  border-top: 1px solid rgb(233, 233, 233);
220
+  margin-top: 15px;
221
+  margin-bottom: 15px;
222
+}
223
+</style>
224
+
225
+<style>
226
+.sign-and-weigh-box .sign-and-weigh-box-patients .cell {
227
+  font-size: 12px;
228
+}
229
+
230
+.sign-and-weigh-box .sign-and-weigh-box-patients .current-row > td {
231
+  background: #6fb5fa;
232
+}
233
+
234
+.count {
235
+  color: #bd2c00;
236
+}
237
+
238
+.el-table td,
239
+.el-table th.is-leaf,
240
+.el-table--border,
241
+.el-table--group {
242
+  border-color: #d0d3da;
243
+}
244
+
245
+.el-table--border::after,
246
+.el-table--group::after,
247
+.el-table::before {
248
+  background-color: #d0d3da;
249
+}
250
+</style>

+ 4 - 11
src/xt_pages/integration/his/patientHisConfig.vue Datei anzeigen

@@ -1,7 +1,7 @@
1 1
 <template>
2 2
   <div>
3 3
     <el-dialog width="1010px"
4
-               :title="his_id.length == 0?'添加his_id':'修改his_id'" :visible.sync="dialogFormVisible">
4
+               :title="his_id.length == 0?'添加his_user_id':'修改his_user_id'" :visible.sync="dialogFormVisible">
5 5
       <el-form
6 6
         :rules="rules"
7 7
         ref="dataForm"
@@ -195,7 +195,6 @@
195 195
           } else {
196 196
             this.total = response.data.data.total
197 197
             this.patientData = response.data.data.list
198
-
199 198
           }
200 199
         })
201 200
       },
@@ -265,18 +264,16 @@
265 264
         }
266 265
         this.form.other_age = this.getAge(row)
267 266
         this.form.infectious = this.getInfectiousName(row)
268
-        console.log("111111")
267
+        console.log('111111')
269 268
         console.log(this.getInfectiousName(row))
270 269
 
271 270
         if (row.his_patient.id > 0) {
272 271
           this.his_record_id = row.his_patient.id
273 272
         }
274
-
275 273
       }, getAge: function(val) {
276 274
         if (val.birthday > 0) {
277 275
           return jsGetAge(uParseTime(val.birthday, '{y}-{m}-{d}'), '-')
278 276
         }
279
-
280 277
       }, getInfectiousName: function(val) {
281 278
         var names = []
282 279
         for (let i = 0; i < val.contagions.length; i++) {
@@ -286,14 +283,13 @@
286 283
       }, GetName: function(id) {
287 284
         for (let i = 0; i < this.contagions.length; i++) {
288 285
           if (this.contagions[i].id == id) {
289
-
290 286
             return this.contagions[i].name
291 287
           }
292 288
         }
293 289
       }, createData: function(formName) {
294 290
         this.$refs[formName].validate(valid => {
295 291
           if (valid) {
296
-            let params = {
292
+            const params = {
297 293
               id: this.patient_id,
298 294
               his_user_id: this.form.his_user_id
299 295
 
@@ -305,18 +301,16 @@
305 301
                 this.$message.success('创建成功')
306 302
                 this.patientData[this.current_index].his_patient.his_user_id = response.data.data.patient.his_user_id
307 303
                 this.patientData[this.current_index].his_patient.id = response.data.data.patient.id
308
-
309 304
               } else {
310 305
                 this.$message.error(response.data.msg)
311 306
               }
312 307
             })
313 308
           }
314 309
         })
315
-
316 310
       }, modifyData: function(formName) {
317 311
         this.$refs[formName].validate(valid => {
318 312
           if (valid) {
319
-            let params = {
313
+            const params = {
320 314
               id: this.his_record_id,
321 315
               his_user_id: this.form.his_user_id
322 316
             }
@@ -331,7 +325,6 @@
331 325
               }
332 326
             })
333 327
           }
334
-
335 328
         })
336 329
       }
337 330
 

+ 162 - 0
src/xt_pages/integration/his/syncList.vue Datei anzeigen

@@ -0,0 +1,162 @@
1
+<template>
2
+  <div>
3
+    <el-row :gutter="12" style="margin-top: 10px">
4
+      <el-table :data="patientData"  border :row-style="{ color: '#303133' }" :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)', color: '#606266' }" >
5
+        <el-table-column label="同步时间" align="center" width="200">
6
+          <template slot-scope="scope">{{getTime( scope.row.sync_time ,'{y}-{m}-{d} {h}:{i}:{s}')}}</template>
7
+        </el-table-column>
8
+
9
+        <el-table-column label="同步结果" align="center">
10
+          <template slot-scope="scope">
11
+            <span v-if="scope.row.sync_result_type == 1">成功</span>
12
+            <span v-if="scope.row.sync_result_type == 2">失败</span>
13
+          </template>
14
+        </el-table-column>
15
+
16
+        <el-table-column label="同步信息" align="center">
17
+          <template slot-scope="scope">{{scope.row.sync_result_remark }}</template>
18
+        </el-table-column>
19
+
20
+        <el-table-column label="同步条数" align="center">
21
+          <template slot-scope="scope">{{scope.row.sync_total_num }}</template>
22
+        </el-table-column>
23
+
24
+        <el-table-column label="上传条数" align="center">
25
+            <template slot-scope="scope">{{scope.row.sync_success_num }}</template>
26
+        </el-table-column>
27
+      </el-table>
28
+
29
+      <el-pagination
30
+        @size-change="handleSizeChange"
31
+        @current-change="handleCurrentChange"
32
+        :page-sizes="[10, 50, 100]"
33
+        :page-size="10"
34
+        background
35
+        style="margin-top:20px;float: right"
36
+        layout="total, sizes, prev, pager, next, jumper"
37
+        :total="total"
38
+      ></el-pagination>
39
+    </el-row>
40
+  </div>
41
+</template>
42
+
43
+<script>
44
+import { getsynclist } from '@/api/integration'
45
+import { uParseTime } from '@/utils/tools'
46
+
47
+export default {
48
+  name: 'patientHisConfig',
49
+
50
+  created() {
51
+    this.getsynclist()
52
+  },
53
+  data() {
54
+    return {
55
+      dialogFormVisible: false,
56
+      page: 1,
57
+      limit: 10,
58
+      total: 0,
59
+      pageTotal: 0,
60
+      pageSelect: 0,
61
+      adminUserOptions: [],
62
+      patientData: [],
63
+      contagions: [],
64
+      patient_id: 0,
65
+      his_record_id: 0,
66
+      his_id: '',
67
+      current_index: 0,
68
+      name: '',
69
+
70
+      form: {
71
+        his_user_id: '',
72
+        name: '',
73
+        sex: '',
74
+        other_age: '',
75
+        infectious: ''
76
+      },
77
+      rules: {
78
+        his_user_id: [
79
+          { required: true, message: '请输入his_id', trigger: 'blur' }
80
+        ]
81
+      }
82
+    }
83
+  },
84
+  methods: {
85
+    getsynclist: function() {
86
+      const Params = {
87
+        page: this.page,
88
+        limit: this.limit
89
+      }
90
+      getsynclist(Params).then(response => {
91
+        if (response.data.state == 0) {
92
+          this.$message.error(response.data.msg)
93
+          return false
94
+        } else {
95
+          this.total = response.data.data.total
96
+          this.patientData = response.data.data.list
97
+        }
98
+      })
99
+    },
100
+    handleSizeChange(val) {
101
+      this.limit = val
102
+      this.getsynclist()
103
+    },
104
+    handleCurrentChange(val) {
105
+      this.page = val
106
+      this.getsynclist()
107
+    },
108
+    getTime(value, temp) {
109
+      if (value != undefined) {
110
+        return uParseTime(value, temp)
111
+      }
112
+      return ''
113
+    }
114
+
115
+  }
116
+}
117
+</script>
118
+
119
+<style rel="stylesheet/css" lang="scss" scoped>
120
+.information {
121
+  border: 1px #dcdfe6 solid;
122
+  padding: 30px 20px 30px 20px;
123
+
124
+  .border {
125
+    border-bottom: 1px #dcdfe6 solid;
126
+    margin: 0px 0 20px 0;
127
+  }
128
+}
129
+
130
+.edit_separater {
131
+  border-top: 1px solid rgb(233, 233, 233);
132
+  margin-top: 15px;
133
+  margin-bottom: 15px;
134
+}
135
+</style>
136
+
137
+<style>
138
+.sign-and-weigh-box .sign-and-weigh-box-patients .cell {
139
+  font-size: 12px;
140
+}
141
+
142
+.sign-and-weigh-box .sign-and-weigh-box-patients .current-row > td {
143
+  background: #6fb5fa;
144
+}
145
+
146
+.count {
147
+  color: #bd2c00;
148
+}
149
+
150
+.el-table td,
151
+.el-table th.is-leaf,
152
+.el-table--border,
153
+.el-table--group {
154
+  border-color: #d0d3da;
155
+}
156
+
157
+.el-table--border::after,
158
+.el-table--group::after,
159
+.el-table::before {
160
+  background-color: #d0d3da;
161
+}
162
+</style>

+ 15 - 1
src/xt_pages/integration/his_config.vue Datei anzeigen

@@ -12,6 +12,15 @@
12 12
           <el-tab-pane label="医护配置">
13 13
             <admin-his-config></admin-his-config>
14 14
           </el-tab-pane>
15
+          <el-tab-pane label="接口配置">
16
+            <interface-config></interface-config>
17
+          </el-tab-pane>
18
+          <el-tab-pane label="同步列表">
19
+            <sync-list></sync-list>
20
+          </el-tab-pane>
21
+          <!-- <el-tab-pane label="字段配置">
22
+            <field-config></field-config>
23
+          </el-tab-pane> -->
15 24
         </el-tabs>
16 25
       </div>
17 26
     </div>
@@ -19,16 +28,21 @@
19 28
 </template>
20 29
 
21 30
 <script>
22
-
23 31
   import BreadCrumb from '@/xt_pages/components/bread-crumb'
24 32
   import PatientHisConfig from './his/patientHisConfig'
25 33
   import AdminHisConfig from './his/adminHisConfig'
34
+  import InterfaceConfig from './his/interfaceConfig'
35
+  import SyncList from './his/syncList'
36
+  import FieldConfig from './his/fieldConfig'
26 37
 
27 38
   export default {
28 39
     name: 'his_config',
29 40
     components: {
30 41
       AdminHisConfig,
31 42
       PatientHisConfig,
43
+      InterfaceConfig,
44
+      SyncList,
45
+      FieldConfig,
32 46
       BreadCrumb
33 47
     },
34 48
     data() {

+ 60 - 0
src/xt_pages/integration/lis_config.vue Datei anzeigen

@@ -0,0 +1,60 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div class="service-box">
8
+        <el-tabs v-model="activeName">
9
+          <el-tab-pane label="接口配置" name="first">
10
+            <interface-config></interface-config>
11
+          </el-tab-pane>
12
+          <el-tab-pane label="同步列表">
13
+            <sync-list></sync-list>
14
+          </el-tab-pane>
15
+          <el-tab-pane label="字段配置">
16
+            <field-config></field-config>
17
+          </el-tab-pane>
18
+        </el-tabs>
19
+      </div>
20
+    </div>
21
+  </div>
22
+</template>
23
+
24
+<script>
25
+  import BreadCrumb from '@/xt_pages/components/bread-crumb'
26
+  import InterfaceConfig from './his/interfaceConfig'
27
+  import SyncList from './his/syncList'
28
+  import FieldConfig from './his/fieldConfig'
29
+
30
+  export default {
31
+    name: 'his_config',
32
+    components: {
33
+      InterfaceConfig,
34
+      SyncList,
35
+      FieldConfig,
36
+      BreadCrumb
37
+    },
38
+    data() {
39
+      return {
40
+        crumbs: [
41
+          { path: false, name: '集成配置' },
42
+          { path: '/integration/his', name: 'HIS集成配置' }
43
+        ],
44
+        activeName: 'first'
45
+
46
+      }
47
+    },
48
+    methods: {
49
+      handleClick(tab, event) {
50
+        console.log(tab, event, this.activeName)
51
+      }
52
+    }
53
+  }
54
+</script>
55
+
56
+
57
+
58
+
59
+
60
+

+ 60 - 0
src/xt_pages/integration/sis_config.vue Datei anzeigen

@@ -0,0 +1,60 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div class="service-box">
8
+        <el-tabs v-model="activeName">
9
+          <el-tab-pane label="接口配置" name="first">
10
+            <interface-config></interface-config>
11
+          </el-tab-pane>
12
+          <el-tab-pane label="同步列表">
13
+            <sync-list></sync-list>
14
+          </el-tab-pane>
15
+          <!-- <el-tab-pane label="字段配置">
16
+            <field-config></field-config>
17
+          </el-tab-pane> -->
18
+        </el-tabs>
19
+      </div>
20
+    </div>
21
+  </div>
22
+</template>
23
+
24
+<script>
25
+  import BreadCrumb from '@/xt_pages/components/bread-crumb'
26
+  import InterfaceConfig from './his/interfaceConfig'
27
+  import SyncList from './his/syncList'
28
+  import FieldConfig from './his/fieldConfig'
29
+
30
+  export default {
31
+    name: 'his_config',
32
+    components: {
33
+      InterfaceConfig,
34
+      SyncList,
35
+      FieldConfig,
36
+      BreadCrumb
37
+    },
38
+    data() {
39
+      return {
40
+        crumbs: [
41
+          { path: false, name: '集成配置' },
42
+          { path: '/integration/his', name: 'HIS集成配置' }
43
+        ],
44
+        activeName: 'first'
45
+
46
+      }
47
+    },
48
+    methods: {
49
+      handleClick(tab, event) {
50
+        console.log(tab, event, this.activeName)
51
+      }
52
+    }
53
+  }
54
+</script>
55
+
56
+
57
+
58
+
59
+
60
+