Browse Source

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

XMLWAN 4 years ago
parent
commit
5ae0d1feaa
93 changed files with 5542 additions and 1092 deletions
  1. 6 1
      index.html
  2. 12 31
      package-lock.json
  3. 1 1
      package.json
  4. 12 2
      src/api/data.js
  5. 1 0
      src/api/datastore.js
  6. 9 0
      src/api/drug.js
  7. 27 1
      src/api/drug/drug_stock.js
  8. BIN
      src/assets/logo/logo2.png
  9. 26 2
      src/lang/zh.js
  10. 37 1
      src/router/index.js
  11. 17 0
      src/router/modules/createPatient.js
  12. 18 0
      src/router/modules/dataDictionary.js
  13. 16 0
      src/router/modules/dataDruguse.js
  14. 16 0
      src/router/modules/dataPrescription.js
  15. 16 0
      src/router/modules/dataPrint.js
  16. 16 0
      src/router/modules/dataShowconfig.js
  17. 18 0
      src/router/modules/dataTemplate.js
  18. 27 26
      src/router/modules/data_dict.js
  19. 0 9
      src/router/modules/dialysis.js
  20. 17 0
      src/router/modules/dialysisRecord.js
  21. 70 0
      src/router/modules/drugs.js
  22. 18 0
      src/router/modules/kuyiShopping.js
  23. 40 0
      src/router/modules/otherManagement.js
  24. 46 0
      src/router/modules/outpatientCharges.js
  25. 34 0
      src/router/modules/outpatientDoctorStation.js
  26. 40 0
      src/router/modules/outpatientPharmacy.js
  27. 28 0
      src/router/modules/outpatientRegistration.js
  28. 0 10
      src/router/modules/patient.js
  29. 18 0
      src/router/modules/roleManage.js
  30. 42 0
      src/router/modules/selfPreparedMedicine.js
  31. 18 0
      src/router/modules/specialDictionary.js
  32. 46 38
      src/router/modules/stock.js
  33. 27 1
      src/router/modules/weight_sign.js
  34. 1 1
      src/store/modules/xt_permission.js
  35. 8 4
      src/styles/index.scss
  36. 20 14
      src/styles/sidebar.scss
  37. 249 59
      src/views/layout/Layout.vue
  38. 9 4
      src/views/layout/components/AppMain.vue
  39. 32 27
      src/views/layout/components/Navbar.vue
  40. 40 243
      src/views/layout/components/Sidebar/SidebarItem.vue
  41. 185 210
      src/views/layout/components/Sidebar/index.vue
  42. 1 1
      src/xt_pages/components/bread-crumb.vue
  43. 4 4
      src/xt_pages/data/components/configure.vue
  44. 97 53
      src/xt_pages/data/components/consumables.vue
  45. 3 3
      src/xt_pages/data/components/drugs.vue
  46. 168 40
      src/xt_pages/data/components/selfPayment.vue
  47. 1 1
      src/xt_pages/index/verify_token.vue
  48. 5 0
      src/xt_pages/kuyiShopping/index.vue
  49. 82 0
      src/xt_pages/outpatientCharges/advancePayment.vue
  50. 166 0
      src/xt_pages/outpatientCharges/components/charged.vue
  51. 165 0
      src/xt_pages/outpatientCharges/components/medicalInsuranceRefund.vue
  52. 165 0
      src/xt_pages/outpatientCharges/components/noCharge.vue
  53. 86 0
      src/xt_pages/outpatientCharges/labelPrinting.vue
  54. 71 0
      src/xt_pages/outpatientCharges/outpatientChargesManagement.vue
  55. 77 0
      src/xt_pages/outpatientCharges/outpatientInvoice.vue
  56. 88 0
      src/xt_pages/outpatientCharges/summary.vue
  57. 135 0
      src/xt_pages/outpatientDoctorStation/components/advice.vue
  58. 146 0
      src/xt_pages/outpatientDoctorStation/components/inquiriesDetail.vue
  59. 106 0
      src/xt_pages/outpatientDoctorStation/components/inspection.vue
  60. 148 0
      src/xt_pages/outpatientDoctorStation/components/medicalRecord.vue
  61. 151 0
      src/xt_pages/outpatientDoctorStation/components/prescription.vue
  62. 70 0
      src/xt_pages/outpatientDoctorStation/components/saveTemplate.vue
  63. 93 0
      src/xt_pages/outpatientDoctorStation/components/selectTemplate.vue
  64. 97 0
      src/xt_pages/outpatientDoctorStation/components/templateDetail.vue
  65. 207 0
      src/xt_pages/outpatientDoctorStation/doctorDesk.vue
  66. 100 0
      src/xt_pages/outpatientDoctorStation/pastInquiries.vue
  67. 99 0
      src/xt_pages/outpatientDoctorStation/templateManagement.vue
  68. 101 0
      src/xt_pages/outpatientPharmacy/dispensingInquiry.vue
  69. 107 0
      src/xt_pages/outpatientPharmacy/drugReturnInquiry.vue
  70. 133 0
      src/xt_pages/outpatientPharmacy/pharmacyFormula.vue
  71. 110 0
      src/xt_pages/outpatientPharmacy/prescriptionDrugReturn.vue
  72. 193 0
      src/xt_pages/outpatientRegistration/index.vue
  73. 126 0
      src/xt_pages/outpatientRegistration/registrationHistory.vue
  74. 13 14
      src/xt_pages/qcd/treatmentControlAnalysis/components/TimePersonal.vue
  75. 0 0
      src/xt_pages/sign/lineUp.vue
  76. 0 0
      src/xt_pages/sign/signIn.vue
  77. 111 56
      src/xt_pages/stock/Dialog/goodInfoDailog.vue
  78. 2 2
      src/xt_pages/stock/drugs/cancelDrugStockOrder.vue
  79. 59 11
      src/xt_pages/stock/drugs/cancelDrugStockOrderAdd.vue
  80. 65 7
      src/xt_pages/stock/drugs/cancelDrugStockOrderEdit.vue
  81. 61 2
      src/xt_pages/stock/drugs/drugSalesReturnEdit.vue
  82. 2 2
      src/xt_pages/stock/drugs/drugSalesReturnOrder.vue
  83. 68 7
      src/xt_pages/stock/drugs/drugSalesReturnOrderAdd.vue
  84. 1 1
      src/xt_pages/stock/drugs/drugSalesReturnOrderDetail.vue
  85. 11 5
      src/xt_pages/stock/drugs/drugStockInOrderAdd.vue
  86. 22 5
      src/xt_pages/stock/drugs/drugStockInOrderEdit.vue
  87. 1 1
      src/xt_pages/stock/drugs/drugStockOutOrder.vue
  88. 27 12
      src/xt_pages/stock/drugs/drugStockOutOrderAdd.vue
  89. 3 3
      src/xt_pages/stock/drugs/drugStockOutOrderDetail.vue
  90. 34 6
      src/xt_pages/stock/drugs/drugStockOutOrderEdit.vue
  91. 16 5
      src/xt_pages/stock/drugs/drugsStockDialog/index.vue
  92. 375 166
      src/xt_pages/stock/drugs/query.vue
  93. 107 0
      src/xt_pages/stock/drugs/settingDialog/index.vue

+ 6 - 1
index.html View File

@@ -9,6 +9,11 @@
9 9
       content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
10 10
     />
11 11
     <title>血透管理-酷医云</title>
12
+    <!-- <link
13
+      rel="stylesheet"
14
+      href="//at.alicdn.com/t/font_1480998_l66fq6mc0y.css"
15
+    /> -->
16
+    
12 17
   </head>
13 18
 
14 19
   <body>
@@ -24,7 +29,7 @@
24 29
     <!-- built files will be auto injected -->
25 30
     <link
26 31
       rel="stylesheet"
27
-      href="//at.alicdn.com/t/font_1480998_l66fq6mc0y.css"
32
+      href="//at.alicdn.com/t/font_795029_9ftx46rzd47.css"
28 33
     />
29 34
   </body>
30 35
 </html>

+ 12 - 31
package-lock.json View File

@@ -4740,8 +4740,7 @@
4740 4740
         "ansi-regex": {
4741 4741
           "version": "2.1.1",
4742 4742
           "bundled": true,
4743
-          "dev": true,
4744
-          "optional": true
4743
+          "dev": true
4745 4744
         },
4746 4745
         "aproba": {
4747 4746
           "version": "1.2.0",
@@ -4764,15 +4763,13 @@
4764 4763
         "balanced-match": {
4765 4764
           "version": "1.0.0",
4766 4765
           "bundled": true,
4767
-          "dev": true,
4768
-          "optional": true
4766
+          "dev": true
4769 4767
         },
4770 4768
         "brace-expansion": {
4771 4769
           "version": "1.1.11",
4772 4770
           "resolved": false,
4773 4771
           "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
4774 4772
           "dev": true,
4775
-          "optional": true,
4776 4773
           "requires": {
4777 4774
             "balanced-match": "^1.0.0",
4778 4775
             "concat-map": "0.0.1"
@@ -4788,22 +4785,19 @@
4788 4785
         "code-point-at": {
4789 4786
           "version": "1.1.0",
4790 4787
           "bundled": true,
4791
-          "dev": true,
4792
-          "optional": true
4788
+          "dev": true
4793 4789
         },
4794 4790
         "concat-map": {
4795 4791
           "version": "0.0.1",
4796 4792
           "resolved": false,
4797 4793
           "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
4798
-          "dev": true,
4799
-          "optional": true
4794
+          "dev": true
4800 4795
         },
4801 4796
         "console-control-strings": {
4802 4797
           "version": "1.1.0",
4803 4798
           "resolved": false,
4804 4799
           "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
4805
-          "dev": true,
4806
-          "optional": true
4800
+          "dev": true
4807 4801
         },
4808 4802
         "core-util-is": {
4809 4803
           "version": "1.0.2",
@@ -4933,8 +4927,7 @@
4933 4927
         "inherits": {
4934 4928
           "version": "2.0.3",
4935 4929
           "bundled": true,
4936
-          "dev": true,
4937
-          "optional": true
4930
+          "dev": true
4938 4931
         },
4939 4932
         "ini": {
4940 4933
           "version": "1.3.5",
@@ -4948,7 +4941,6 @@
4948 4941
           "resolved": false,
4949 4942
           "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
4950 4943
           "dev": true,
4951
-          "optional": true,
4952 4944
           "requires": {
4953 4945
             "number-is-nan": "^1.0.0"
4954 4946
           }
@@ -4965,7 +4957,6 @@
4965 4957
           "resolved": false,
4966 4958
           "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
4967 4959
           "dev": true,
4968
-          "optional": true,
4969 4960
           "requires": {
4970 4961
             "brace-expansion": "^1.1.7"
4971 4962
           }
@@ -4973,15 +4964,13 @@
4973 4964
         "minimist": {
4974 4965
           "version": "0.0.8",
4975 4966
           "bundled": true,
4976
-          "dev": true,
4977
-          "optional": true
4967
+          "dev": true
4978 4968
         },
4979 4969
         "minipass": {
4980 4970
           "version": "2.3.5",
4981 4971
           "resolved": false,
4982 4972
           "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
4983 4973
           "dev": true,
4984
-          "optional": true,
4985 4974
           "requires": {
4986 4975
             "safe-buffer": "^5.1.2",
4987 4976
             "yallist": "^3.0.0"
@@ -5002,7 +4991,6 @@
5002 4991
           "resolved": false,
5003 4992
           "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
5004 4993
           "dev": true,
5005
-          "optional": true,
5006 4994
           "requires": {
5007 4995
             "minimist": "0.0.8"
5008 4996
           }
@@ -5090,8 +5078,7 @@
5090 5078
         "number-is-nan": {
5091 5079
           "version": "1.0.1",
5092 5080
           "bundled": true,
5093
-          "dev": true,
5094
-          "optional": true
5081
+          "dev": true
5095 5082
         },
5096 5083
         "object-assign": {
5097 5084
           "version": "4.1.1",
@@ -5105,7 +5092,6 @@
5105 5092
           "resolved": false,
5106 5093
           "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
5107 5094
           "dev": true,
5108
-          "optional": true,
5109 5095
           "requires": {
5110 5096
             "wrappy": "1"
5111 5097
           }
@@ -5200,8 +5186,7 @@
5200 5186
         "safe-buffer": {
5201 5187
           "version": "5.1.2",
5202 5188
           "bundled": true,
5203
-          "dev": true,
5204
-          "optional": true
5189
+          "dev": true
5205 5190
         },
5206 5191
         "safer-buffer": {
5207 5192
           "version": "2.1.2",
@@ -5243,7 +5228,6 @@
5243 5228
           "resolved": false,
5244 5229
           "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
5245 5230
           "dev": true,
5246
-          "optional": true,
5247 5231
           "requires": {
5248 5232
             "code-point-at": "^1.0.0",
5249 5233
             "is-fullwidth-code-point": "^1.0.0",
@@ -5265,7 +5249,6 @@
5265 5249
           "resolved": false,
5266 5250
           "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
5267 5251
           "dev": true,
5268
-          "optional": true,
5269 5252
           "requires": {
5270 5253
             "ansi-regex": "^2.0.0"
5271 5254
           }
@@ -5313,15 +5296,13 @@
5313 5296
         "wrappy": {
5314 5297
           "version": "1.0.2",
5315 5298
           "bundled": true,
5316
-          "dev": true,
5317
-          "optional": true
5299
+          "dev": true
5318 5300
         },
5319 5301
         "yallist": {
5320 5302
           "version": "3.0.3",
5321 5303
           "resolved": false,
5322 5304
           "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
5323
-          "dev": true,
5324
-          "optional": true
5305
+          "dev": true
5325 5306
         }
5326 5307
       }
5327 5308
     },
@@ -7943,7 +7924,7 @@
7943 7924
     },
7944 7925
     "normalize-wheel": {
7945 7926
       "version": "1.0.1",
7946
-      "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
7927
+      "resolved": "http://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz",
7947 7928
       "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU="
7948 7929
     },
7949 7930
     "normalize.css": {

+ 1 - 1
package.json View File

@@ -123,7 +123,7 @@
123 123
     "vue-template-compiler": "2.5.16",
124 124
     "webpack": "3.10.0",
125 125
     "webpack-bundle-analyzer": "2.9.1",
126
-    "webpack-dev-server": "2.9.7",
126
+    "webpack-dev-server": "^2.9.7",
127 127
     "webpack-merge": "4.1.1",
128 128
     "write-json": "^3.0.1"
129 129
   },

+ 12 - 2
src/api/data.js View File

@@ -148,15 +148,23 @@ export function getBaseDrugLibList(params) {
148 148
 
149 149
 
150 150
 
151
-export function createMedicineInsurancePercent(params) {
151
+export function createMedicineInsurancePercent(params,module) {
152 152
   return request({
153
-    url: '/api/medicineinsurancepercent/create',
153
+    url: '/api/medicineinsurancepercent/create?module='+module,
154 154
     method: 'post',
155 155
     data: params
156 156
   })
157 157
 }
158 158
 
159 159
 
160
+export function getMedicineInsurancePercent(type_id,module) {
161
+  return request({
162
+    url: '/api/medicineinsurancepercent/get?type_id='+type_id+"&module="+module,
163
+    method: 'get',
164
+  })
165
+}
166
+
167
+
160 168
 export function createDrugUnitSafeguard(params) {
161 169
   return request({
162 170
     url: '/api/drugunitsafeguard/create',
@@ -167,3 +175,5 @@ export function createDrugUnitSafeguard(params) {
167 175
 
168 176
 
169 177
 
178
+
179
+

+ 1 - 0
src/api/datastore.js View File

@@ -1,6 +1,7 @@
1 1
 import request from '@/utils/request'
2 2
 
3 3
 export function getConfigList(params) {
4
+
4 5
   return request({
5 6
     url: '/api/getconfiglist',
6 7
     method: 'get',

+ 9 - 0
src/api/drug.js View File

@@ -0,0 +1,9 @@
1
+import request from '@/utils/request'
2
+
3
+export function getDruglist(params){
4
+  return request({
5
+    url:"/api/getdruglist",
6
+    methods:"get",
7
+    params:params
8
+   })
9
+}

+ 27 - 1
src/api/drug/drug_stock.js View File

@@ -42,7 +42,7 @@ export function getDrugWarehouseInfo(params) {
42 42
 
43 43
 export function getDrugSalesReturnList(params) {
44 44
   return request({
45
-    url: '/api/salesreturn/list',
45
+    url: '/api/drugsalesreturn/list',
46 46
     method: 'get',
47 47
     params: params
48 48
   })
@@ -355,6 +355,7 @@ export function getPrintStockGood(params) {
355 355
 }
356 356
 
357 357
 
358
+
358 359
 export function getWarehouseOutUser(params) {
359 360
   return request({
360 361
     url: '/api/drugwarehouseout/user',
@@ -362,3 +363,28 @@ export function getWarehouseOutUser(params) {
362 363
     params: params
363 364
   })
364 365
 }
366
+
367
+
368
+export function createDrugStockAutomaticReduceConfig(is_open) {
369
+  return request({
370
+    url: '/api/drugstock/automaticreduce/isopen?is_open='+is_open,
371
+    method: 'post',
372
+  })
373
+}
374
+
375
+export function getDrugStockAutomaticReduceConfig() {
376
+  return request({
377
+    url: '/api/drugstockautomaticreduce/get',
378
+    method: 'get',
379
+  })
380
+}
381
+
382
+
383
+
384
+
385
+
386
+
387
+
388
+
389
+
390
+

BIN
src/assets/logo/logo2.png View File


+ 26 - 2
src/lang/zh.js View File

@@ -149,7 +149,7 @@ export default {
149 149
     RescueRecord: '抢救记录',
150 150
     special_permission_manage: '特殊权限管理',
151 151
     schedule_print: '排班打印',
152
-    
152
+
153 153
     drugsExpiryDate:'药品有效期预警',
154 154
     drugsSurplus:'药品剩余预警',
155 155
     drugsQuery:'明细查询',
@@ -201,7 +201,31 @@ export default {
201 201
 
202 202
     slow: '慢病管理',
203 203
     scrm: 'SCRM',
204
-    shop: '分销商城'
204
+    shop: '分销商城',
205
+
206
+    outpatientRegistration:'门诊挂号',
207
+    outpatientRegistrationIndex:'门诊挂号',
208
+    outpatientRegistrationRegistrationHistory:'挂号历史',
209
+    outpatientDoctorStation:"门诊医生站",
210
+    outpatientDoctorStationDoctorDesk:'医生工作台',
211
+    outpatientDoctorStationPastInquiries:'既往查询',
212
+    outpatientDoctorStationTemplateManagement:'模板管理',
213
+    outpatientCharges:'门诊收费',
214
+    outpatientChargesManagement:'门诊收费管理',
215
+    outpatientInvoice:'门诊发票',
216
+    advancePayment:'预交金',
217
+    labelPrinting:'标签打印',
218
+    summary:'项目消费明细汇总',
219
+    outpatientPharmacy:'门诊药房',
220
+    pharmacyFormula:'药房配发药',
221
+    prescriptionDrugReturn:'处方退药',
222
+    dispensingInquiry:'处方发药查询',
223
+    drugReturnInquiry:'处方退药查询',
224
+    signIndex:'签到排队',
225
+    signIn:'签到窗口',
226
+    lineUp:'排队窗口',
227
+
228
+
205 229
   },
206 230
   navbar: {
207 231
     logOut: '退出登录',

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

@@ -21,6 +21,24 @@ import medicalScheduling from './modules/medical_scheduling'
21 21
 import slow from './modules/slow'
22 22
 import scrm from './modules/scrm'
23 23
 import shop from './modules/shop'
24
+import selfPreparedMedicine from './modules/selfPreparedMedicine'
25
+import drugs from './modules/drugs'
26
+import outpatientRegistration from './modules/outpatientRegistration'
27
+import outpatientDoctorStation from './modules/outpatientDoctorStation'
28
+import outpatientCharges from './modules/outpatientCharges'
29
+import outpatientPharmacy from './modules/outpatientPharmacy'
30
+import kuyiShopping from './modules/kuyiShopping'
31
+import createPatient from './modules/createPatient'
32
+import dialysisRecord from './modules/dialysisRecord'
33
+import otherManagement from './modules/otherManagement'
34
+import roleManage from './modules/roleManage'
35
+import dataDictionary from './modules/dataDictionary'
36
+import specialDictionary from './modules/specialDictionary'
37
+import dataTemplate from './modules/dataTemplate'
38
+import dataPrescription from './modules/dataPrescription'
39
+import dataDruguse from './modules/dataDruguse'
40
+import dataShowconfig from './modules/dataShowconfig'
41
+import dataPrint from './modules/dataPrint'
24 42
 
25 43
 Vue.use(Router)
26 44
 
@@ -94,11 +112,16 @@ service
94 112
 
95 113
 var _asy_router_map = [
96 114
   patient,
115
+  createPatient,
97 116
   workforce,
98 117
   medicalScheduling,
99 118
   weight_sign,
119
+  dialysisRecord,
100 120
   dialysis,
101 121
   stock,
122
+  selfPreparedMedicine,
123
+  drugs,
124
+  otherManagement,
102 125
   qcd,
103 126
   device,
104 127
   org,
@@ -107,7 +130,20 @@ var _asy_router_map = [
107 130
   scrm,
108 131
   shop,
109 132
   integration,
110
-  systems
133
+  systems,
134
+  roleManage,
135
+  dataDictionary,
136
+  specialDictionary,
137
+  dataTemplate,
138
+  dataPrescription,
139
+  dataDruguse,
140
+  dataShowconfig,
141
+  dataPrint,
142
+  outpatientRegistration,
143
+  outpatientDoctorStation,
144
+  outpatientCharges,
145
+  outpatientPharmacy,
146
+  kuyiShopping
111 147
 ]
112 148
 
113 149
 var is_asy_router = process.env.NODE_ENV === 'production' // true; 设置为 true 强制进行路由验证

+ 17 - 0
src/router/modules/createPatient.js View File

@@ -0,0 +1,17 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default {
4
+  path: '/createPatient',
5
+  component: Layout,
6
+  name:'createPatient',
7
+  redirct: '/patients/create',
8
+  children: [{
9
+    path: '/patients/create',
10
+    component: () => import('@/xt_pages/user/createPatient'),
11
+    name: 'createPatient',
12
+    meta: {
13
+      title: 'createPatient',
14
+      noCache: true
15
+    }
16
+  },]
17
+}

+ 18 - 0
src/router/modules/dataDictionary.js View File

@@ -0,0 +1,18 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default {
4
+    path: '/data/dictionary',
5
+    component: Layout,
6
+    name:'dictionary',
7
+    redirct: '/data/dictionary',
8
+    children: [{
9
+        path: '/data/dictionary',
10
+        component: () => import('@/xt_pages/data/index'),
11
+        name: 'dictionary',
12
+        meta: {
13
+          title: 'data_dictionary',
14
+          noCache: true,
15
+    
16
+        }
17
+    },]
18
+}

+ 16 - 0
src/router/modules/dataDruguse.js View File

@@ -0,0 +1,16 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default {
4
+    path: '/data/druguse',
5
+    component: Layout,
6
+    name:'druguse',
7
+    redirct: '/data/druguse',
8
+    children: [{
9
+        path: '/data/druguse',
10
+        component: () => import('@/xt_pages/data/druguseTemplate'),
11
+        name: 'druguse',
12
+        meta: {
13
+          title: 'druguse'
14
+        }
15
+    },]
16
+}

+ 16 - 0
src/router/modules/dataPrescription.js View File

@@ -0,0 +1,16 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default {
4
+    path: '/data/prescription',
5
+    component: Layout,
6
+    name:'prescription',
7
+    redirct: '/data/prescription',
8
+    children: [{
9
+        path: '/data/prescription',
10
+        component: () => import('@/xt_pages/data/prescription'),
11
+        name: 'prescription',
12
+        meta: {
13
+          title: 'system_prescription'
14
+        }
15
+    },]
16
+}

+ 16 - 0
src/router/modules/dataPrint.js View File

@@ -0,0 +1,16 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default {
4
+    path: '/data/print',
5
+    component: Layout,
6
+    name:'printTemplate',
7
+    redirct: '/data/print',
8
+    children: [{
9
+        path: '/data/print',
10
+        component: () => import('@/xt_pages/data/printTemplate'),
11
+        name: 'printTemplate',
12
+        meta: {
13
+          title: 'printTemplate'
14
+        }
15
+      },]
16
+}

+ 16 - 0
src/router/modules/dataShowconfig.js View File

@@ -0,0 +1,16 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default {
4
+    path: '/data/showconfig',
5
+    component: Layout,
6
+    name:'showconfig',
7
+    redirct: '/data/showconfig',
8
+    children: [{
9
+        path: '/data/showconfig',
10
+        component: () => import('@/xt_pages/data/showConfig'),
11
+        name: 'showconfig',
12
+        meta: {
13
+          title: 'showconfig'
14
+        }
15
+      },]
16
+}

+ 18 - 0
src/router/modules/dataTemplate.js View File

@@ -0,0 +1,18 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default {
4
+    path: '/data/template',
5
+    component: Layout,
6
+    name:'template',
7
+    redirct: '/data/template',
8
+    children: [{
9
+        path: '/data/template',
10
+        component: () => import('@/xt_pages/data/template'),
11
+        name: 'template',
12
+        meta: {
13
+          title: 'template',
14
+          noCache: true,
15
+    
16
+        }
17
+    },]
18
+}

+ 27 - 26
src/router/modules/data_dict.js View File

@@ -12,35 +12,36 @@ export default {
12 12
   },
13 13
   children: [
14 14
     {
15
-    path: '/data/dictionary',
16
-    component: () => import('@/xt_pages/data/index'),
17
-    name: 'dictionary',
18
-    meta: {
19
-      title: 'field_config',
20
-      noCache: true,
15
+      path: '/data/dictionary',
16
+      component: () => import('@/xt_pages/data/index'),
17
+      name: 'dictionary',
18
+      meta: {
19
+        title: 'field_config',
20
+        noCache: true,
21 21
 
22
-    }
23
-  },
24
-  {
25
-    path: '/data/template',
26
-    component: () => import('@/xt_pages/data/template'),
27
-    name: 'template',
28
-    meta: {
29
-      title: 'template',
30
-      noCache: true,
22
+      }
23
+    },
24
+    {
25
+      path: '/data/template',
26
+      component: () => import('@/xt_pages/data/template'),
27
+      name: 'template',
28
+      meta: {
29
+        title: 'template',
30
+        noCache: true,
31 31
 
32
-    }
33
-  },
34
-  {
35
-    path: '/data/druguse',
36
-    component: () => import('@/xt_pages/data/druguseTemplate'),
37
-    name: 'druguse',
38
-    meta: {
39
-      title: 'druguse',
40
-      noCache: true,
32
+      }
33
+    },
34
+    {
35
+      path: '/data/druguse',
36
+      component: () => import('@/xt_pages/data/druguseTemplate'),
37
+      name: 'druguse',
38
+      meta: {
39
+        title: 'druguse',
40
+        noCache: true,
41 41
 
42
-    }
43
-  }, {
42
+      }
43
+    }, 
44
+    {
44 45
       path: '/data/showconfig',
45 46
       component: () => import('@/xt_pages/data/showConfig'),
46 47
       name: 'showconfig',

+ 0 - 9
src/router/modules/dialysis.js View File

@@ -11,15 +11,6 @@ export default {
11 11
     icon: 'touxi'
12 12
   },
13 13
   children: [
14
-    {
15
-      path: '/dialysis/dialysisrecord',
16
-      component: () => import('@/xt_pages/dialysis/schedualPatient'),
17
-      name: '透析记录',
18
-      meta: {
19
-        title: '透析记录',
20
-        noCache: true
21
-      }
22
-    },
23 14
     {
24 15
       path: '/dialysis/watch',
25 16
       component: () => import('@/xt_pages/dialysis/bloodPresssWatch'),

+ 17 - 0
src/router/modules/dialysisRecord.js View File

@@ -0,0 +1,17 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default {
4
+  path: '/dialysisrecord',
5
+  component: Layout,
6
+  name:'dialysisrecord',
7
+  redirct: '/dialysis/dialysisrecord',
8
+  children: [{
9
+    path: '/dialysis/dialysisrecord',
10
+    component: () => import('@/xt_pages/dialysis/schedualPatient'),
11
+    name: '透析记录',
12
+    meta: {
13
+      title: '透析记录',
14
+      noCache: true
15
+    }
16
+  },]
17
+}

+ 70 - 0
src/router/modules/drugs.js View File

@@ -0,0 +1,70 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default {
4
+  path: '/stock/drugs',
5
+  component: Layout,
6
+  redirect: 'noredirect',
7
+  name: 'stockDrugs',
8
+  alwaysShow: true,
9
+  meta: {
10
+    title: 'stockDrugs',
11
+    icon: 'stock',
12
+    isChild: true
13
+  },
14
+  children: [
15
+    {
16
+        path: '/stock/drugs/stock/in',
17
+        component: () => import('@/xt_pages/stock/drugs/stockIn'),
18
+        name: 'drugsStockIn',
19
+        meta: { title: 'drugsStockIn', noCache: true }
20
+    },
21
+    {
22
+        path: '/stock/drugs/stock/out',
23
+        component: () => import('@/xt_pages/stock/drugs/stockOut'),
24
+        name: 'drugsStockOut',
25
+        meta: { title: 'drugsStockOut', noCache: true }
26
+    },
27
+    {
28
+        path: '/stock/drugs/stock/return',
29
+        component: () => import('@/xt_pages/stock/drugs/stockReturn'),
30
+        name: 'drugsStockReturn',
31
+        meta: { title: 'drugsStockReturn', noCache: true }
32
+    },
33
+    {
34
+        path: '/stock/drugs/stock/cancel',
35
+        component: () => import('@/xt_pages/stock/drugs/stockCancel'),
36
+        name: 'drugsStockCancel',
37
+        meta: { title: 'drugsStockCancel', noCache: true }
38
+    },
39
+    {
40
+        path: '/stock/drugs/stock/adjustPrice',
41
+        component: () => import('@/xt_pages/stock/drugs/adjustPrice'),
42
+        name: 'drugsAdjustPrice',
43
+        meta: { title: 'drugsAdjustPrice', noCache: true }
44
+    },
45
+    {
46
+        path: '/stock/drugs/stock/reportLoss',
47
+        component: () => import('@/xt_pages/stock/drugs/reportLoss'),
48
+        name: 'drugsReportLoss',
49
+        meta: { title: 'drugsReportLoss', noCache: true }
50
+    },
51
+    {
52
+        path: '/stock/drugs/stock/query',
53
+        component: () => import('@/xt_pages/stock/drugs/query'),
54
+        name: 'drugsQuery',
55
+        meta: { title: 'drugsQuery', noCache: true }
56
+    },
57
+    {
58
+        path: '/stock/drugs/stock/drugsSurplus',
59
+        component: () => import('@/xt_pages/stock/drugs/drugsSurplus'),
60
+        name: 'drugsSurplus',
61
+        meta: { title: 'drugsSurplus', noCache: true }
62
+    },
63
+    {
64
+        path: '/stock/drugs/stock/drugsExpiryDate',
65
+        component: () => import('@/xt_pages/stock/drugs/drugsExpiryDate'),
66
+        name: 'drugsExpiryDate',
67
+        meta: { title: 'drugsExpiryDate', noCache: true }
68
+    },
69
+  ]
70
+}

+ 18 - 0
src/router/modules/kuyiShopping.js View File

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

+ 40 - 0
src/router/modules/otherManagement.js View File

@@ -0,0 +1,40 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default {
4
+  path: '/other',
5
+  component: Layout,
6
+  redirect: 'noredirect',
7
+  name: 'otherManagement',
8
+  alwaysShow: true,
9
+  meta: {
10
+    title: 'otherManagement',
11
+    icon: 'otherManagement',
12
+    isChild: true
13
+  },
14
+  children: [
15
+    {
16
+        path: '/stock/in/other',
17
+        component: () => import('@/xt_pages/stock/otherStockInOrder'),
18
+        name: 'otherStockInOrder',
19
+        meta: { title: 'otherStockInOrder', noCache: true }
20
+    },
21
+    {
22
+        path: '/stock/return/other',
23
+        component: () => import('@/xt_pages/stock/otherSalesReturnOrder'),
24
+        name: 'otherSalesReturnOrder',
25
+        meta: { title: 'otherSalesReturnOrder', noCache: true }
26
+    },
27
+    {
28
+        path: '/stock/out/other',
29
+        component: () => import('@/xt_pages/stock/otherStockOutOrder'),
30
+        name: 'otherStockOutOrder',
31
+        meta: { title: 'otherStockOutOrder', noCache: true }
32
+    },
33
+    {
34
+        path: '/stock/cancel/other',
35
+        component: () => import('@/xt_pages/stock/otherCancelStockOrder'),
36
+        name: 'otherCancelStockOrder',
37
+        meta: { title: 'otherCancelStockOrder', noCache: true }
38
+    },
39
+  ]
40
+}

+ 46 - 0
src/router/modules/outpatientCharges.js View File

@@ -0,0 +1,46 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default {
4
+  path: '/outpatientCharges',
5
+  component: Layout,
6
+  redirect: 'noredirect',
7
+  name: 'outpatientCharges',
8
+  alwaysShow: true,
9
+  meta: {
10
+    title: 'outpatientCharges',
11
+    icon: 'outpatientCharges',
12
+    isChild: true
13
+  },
14
+  children: [
15
+    {
16
+        path: '/outpatientCharges/outpatientChargesManagement',
17
+        component: () => import('@/xt_pages/outpatientCharges/outpatientChargesManagement'),
18
+        name: 'outpatientChargesManagement',
19
+        meta: { title: 'outpatientChargesManagement', noCache: true }
20
+    },
21
+    {
22
+        path: '/outpatientCharges/outpatientInvoice',
23
+        component: () => import('@/xt_pages/outpatientCharges/outpatientInvoice'),
24
+        name: 'outpatientInvoice',
25
+        meta: { title: 'outpatientInvoice', noCache: true }
26
+    },
27
+    {
28
+        path: '/outpatientCharges/advancePayment',
29
+        component: () => import('@/xt_pages/outpatientCharges/advancePayment'),
30
+        name: 'advancePayment',
31
+        meta: { title: 'advancePayment', noCache: true }
32
+    },
33
+    {
34
+        path: '/outpatientCharges/labelPrinting',
35
+        component: () => import('@/xt_pages/outpatientCharges/labelPrinting'),
36
+        name: 'labelPrinting',
37
+        meta: { title: 'labelPrinting', noCache: true }
38
+    },
39
+    {
40
+        path: '/outpatientCharges/summary',
41
+        component: () => import('@/xt_pages/outpatientCharges/summary'),
42
+        name: 'summary',
43
+        meta: { title: 'summary', noCache: true }
44
+    },
45
+  ]
46
+}

+ 34 - 0
src/router/modules/outpatientDoctorStation.js View File

@@ -0,0 +1,34 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default {
4
+  path: '/outpatientDoctorStation',
5
+  component: Layout,
6
+  redirect: 'noredirect',
7
+  name: 'outpatientDoctorStation',
8
+  alwaysShow: true,
9
+  meta: {
10
+    title: 'outpatientDoctorStation',
11
+    icon: 'outpatientDoctorStation',
12
+    isChild: true
13
+  },
14
+  children: [
15
+    {
16
+        path: '/outpatientDoctorStation/doctorDesk',
17
+        component: () => import('@/xt_pages/outpatientDoctorStation/doctorDesk'),
18
+        name: 'outpatientDoctorStationDoctorDesk',
19
+        meta: { title: 'outpatientDoctorStationDoctorDesk', noCache: true }
20
+    },
21
+    {
22
+        path: '/outpatientDoctorStation/pastInquiries',
23
+        component: () => import('@/xt_pages/outpatientDoctorStation/pastInquiries'),
24
+        name: 'outpatientDoctorStationPastInquiries',
25
+        meta: { title: 'outpatientDoctorStationPastInquiries', noCache: true }
26
+    },
27
+    {
28
+        path: '/outpatientDoctorStation/templateManagement',
29
+        component: () => import('@/xt_pages/outpatientDoctorStation/templateManagement'),
30
+        name: 'outpatientDoctorStationTemplateManagement',
31
+        meta: { title: 'outpatientDoctorStationTemplateManagement', noCache: true }
32
+    },
33
+  ]
34
+}

+ 40 - 0
src/router/modules/outpatientPharmacy.js View File

@@ -0,0 +1,40 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default {
4
+  path: '/outpatientPharmacy',
5
+  component: Layout,
6
+  redirect: 'noredirect',
7
+  name: 'outpatientPharmacy',
8
+  alwaysShow: true,
9
+  meta: {
10
+    title: 'outpatientPharmacy',
11
+    icon: 'outpatientPharmacy',
12
+    isChild: true
13
+  },
14
+  children: [
15
+    {
16
+        path: '/outpatientPharmacy/pharmacyFormula',
17
+        component: () => import('@/xt_pages/outpatientPharmacy/pharmacyFormula'),
18
+        name: 'pharmacyFormula',
19
+        meta: { title: 'pharmacyFormula', noCache: true }
20
+    },
21
+    {
22
+        path: '/outpatientPharmacy/prescriptionDrugReturn',
23
+        component: () => import('@/xt_pages/outpatientPharmacy/prescriptionDrugReturn'),
24
+        name: 'prescriptionDrugReturn',
25
+        meta: { title: 'prescriptionDrugReturn', noCache: true }
26
+    },
27
+    {
28
+        path: '/outpatientPharmacy/dispensingInquiry',
29
+        component: () => import('@/xt_pages/outpatientPharmacy/dispensingInquiry'),
30
+        name: 'dispensingInquiry',
31
+        meta: { title: 'dispensingInquiry', noCache: true }
32
+    },
33
+    {
34
+        path: '/outpatientPharmacy/drugReturnInquiry',
35
+        component: () => import('@/xt_pages/outpatientPharmacy/drugReturnInquiry'),
36
+        name: 'drugReturnInquiry',
37
+        meta: { title: 'drugReturnInquiry', noCache: true }
38
+    },
39
+  ]
40
+}

+ 28 - 0
src/router/modules/outpatientRegistration.js View File

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

+ 0 - 10
src/router/modules/patient.js View File

@@ -5,7 +5,6 @@ export default {
5 5
   component: Layout,
6 6
   redirect: 'noredirect',
7 7
   name: 'User',
8
-  alwaysShow: true,
9 8
   meta: {
10 9
     title: 'user',
11 10
     icon: 'bingren'
@@ -19,15 +18,6 @@ export default {
19 18
       noCache: true
20 19
     }
21 20
   },
22
-  {
23
-    path: '/patients/create',
24
-    component: () => import('@/xt_pages/user/createPatient'),
25
-    name: 'createPatient',
26
-    meta: {
27
-      title: 'createPatient',
28
-      noCache: true
29
-    }
30
-  },
31 21
   {
32 22
     path: '/patients/patient/:id',
33 23
     component: () => import('@/xt_pages/user/patientInfo'),

+ 18 - 0
src/router/modules/roleManage.js View File

@@ -0,0 +1,18 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default {
4
+    path: '/role/manage',
5
+    component: Layout,
6
+    name:'roleManage',
7
+    redirct: '/role/manage',
8
+    children: [{
9
+        path: '/role/manage',
10
+        component: () => import('@/xt_pages/role/role'),
11
+        name: 'roleManage',
12
+        meta: {
13
+          title: 'roleManage',
14
+          noCache: true,
15
+    
16
+        }
17
+    },]
18
+}

+ 42 - 0
src/router/modules/selfPreparedMedicine.js View File

@@ -0,0 +1,42 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default {
4
+  path: '/stock/selfPreparedMedicine',
5
+  component: Layout,
6
+  redirect: 'noredirect',
7
+  name: 'selfPreparedMedicine',
8
+  alwaysShow: true,
9
+  meta: {
10
+    title: 'selfPreparedMedicine',
11
+    icon: 'stock',
12
+    isChild: true
13
+  },
14
+  children: [
15
+    {
16
+        path: '/stock/selfPreparedMedicineIndex',
17
+        component: () => import('@/xt_pages/stock/selfPreparedMedicine/index'),
18
+        name: 'selfPreparedMedicineIndex',
19
+        meta: { title: 'selfPreparedMedicineIndex', noCache: true }
20
+    },
21
+    {
22
+        path: '/stock/selfPreparedMedicineQuery',
23
+        component: () => import('@/xt_pages/stock/selfPreparedMedicine/query'),
24
+        name: 'selfPreparedMedicineQuery',
25
+        meta: { title: 'selfPreparedMedicineQuery', noCache: true }
26
+    },
27
+    {
28
+        path: '/stock/selfPreparedMedicineQueryPrint',
29
+        component: () => import('@/xt_pages/stock/selfPreparedMedicine/queryPrint'),
30
+        name: 'selfPreparedMedicineQueryPrint',
31
+        hidden: true,
32
+        is_menu: false,
33
+        meta: { title: 'selfPreparedMedicineQueryPrint', noCache: true }
34
+    },
35
+    {
36
+        path: '/stock/selfPreparedMedicineInfo',
37
+        component: () => import('@/xt_pages/stock/selfPreparedMedicine/info'),
38
+        name: 'selfPreparedMedicineInfo',
39
+        meta: { title: 'selfPreparedMedicineInfo', noCache: true }
40
+    }
41
+  ]
42
+}

+ 18 - 0
src/router/modules/specialDictionary.js View File

@@ -0,0 +1,18 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default {
4
+    path: '/data/specialDictionary',
5
+    component: Layout,
6
+    name:'specialDictionary',
7
+    redirct: '/data/specialDictionary',
8
+    children: [{
9
+        path: '/data/specialDictionary',
10
+        component: () => import('@/xt_pages/data/specialDictionary'),
11
+        name: 'specialDictionary',
12
+        meta: {
13
+          title: 'specialDictionary',
14
+          noCache: true,
15
+    
16
+        }
17
+    },]
18
+}

+ 46 - 38
src/router/modules/stock.js View File

@@ -201,6 +201,13 @@ export default {
201 201
       hidden: true,
202 202
       is_menu: false,
203 203
       meta: { title: 'salesReturnDetail', noCache: true }
204
+    }, {
205
+      path: '/drugstock/return/detail',
206
+      component: () => import('@/xt_pages/stock/drugs/drugSalesReturnDetail'),
207
+      name: 'drugSalesReturnDetail',
208
+      hidden: true,
209
+      is_menu: false,
210
+      meta: { title: 'drugSalesReturnDetail', noCache: true }
204 211
     },
205 212
     {
206 213
       path: '/stock/return/add',
@@ -364,6 +371,7 @@ export default {
364 371
         noCache: true
365 372
       }
366 373
     },
374
+
367 375
     {
368 376
       path: '/stock/drugs/stock/in',
369 377
       component: () => import('@/xt_pages/stock/drugs/drugStockInOrder'),
@@ -394,30 +402,30 @@ export default {
394 402
     {
395 403
       path: '/stock/drugs/stock/cancel',
396 404
       component: () => import('@/xt_pages/stock/drugs/cancelDrugStockOrder'),
397
-      name: 'cancelDrugStockOrder',
398
-      hidden: true,
399
-      is_menu: false,
400
-      num: 3,
401
-      meta: { title: 'cancelDrugStockOrder', noCache: true }
402
-    },
403
-    {
404
-      path: '/stock/drugs/stock/adjustPrice',
405
-      component: () => import('@/xt_pages/stock/drugs/adjustPrice'),
406
-      name: 'drugsAdjustPrice',
407
-      hidden: true,
408
-      is_menu: false,
409
-      num: 3,
410
-      meta: { title: 'drugsAdjustPrice', noCache: true }
411
-    },
412
-    {
413
-      path: '/stock/drugs/stock/reportLoss',
414
-      component: () => import('@/xt_pages/stock/drugs/reportLoss'),
415
-      name: 'drugsReportLoss',
405
+      name: 'drugsStockCancel',
416 406
       hidden: true,
417 407
       is_menu: false,
418 408
       num: 3,
419
-      meta: { title: 'drugsReportLoss', noCache: true }
409
+      meta: { title: 'drugsStockCancel', noCache: true }
420 410
     },
411
+    // {
412
+    //   path: '/stock/drugs/stock/adjustPrice',
413
+    //   component: () => import('@/xt_pages/stock/drugs/adjustPrice'),
414
+    //   name: 'drugsAdjustPrice',
415
+    //   hidden: true,
416
+    //   is_menu: false,
417
+    //   num: 3,
418
+    //   meta: { title: 'drugsAdjustPrice', noCache: true }
419
+    // },
420
+    // {
421
+    //   path: '/stock/drugs/stock/reportLoss',
422
+    //   component: () => import('@/xt_pages/stock/drugs/reportLoss'),
423
+    //   name: 'drugsReportLoss',
424
+    //   hidden: true,
425
+    //   is_menu: false,
426
+    //   num: 3,
427
+    //   meta: { title: 'drugsReportLoss', noCache: true }
428
+    // },
421 429
     {
422 430
       path: '/stock/drugs/stock/query',
423 431
       component: () => import('@/xt_pages/stock/drugs/query'),
@@ -427,23 +435,23 @@ export default {
427 435
       num: 3,
428 436
       meta: { title: 'drugsQuery', noCache: true }
429 437
     },
430
-    {
431
-      path: '/stock/drugs/stock/drugsSurplus',
432
-      component: () => import('@/xt_pages/stock/drugs/drugsSurplus'),
433
-      name: 'drugsSurplus',
434
-      hidden: true,
435
-      is_menu: false,
436
-      num: 3,
437
-      meta: { title: 'drugsSurplus', noCache: true }
438
-    },
439
-    {
440
-      path: '/stock/drugs/stock/drugsExpiryDate',
441
-      component: () => import('@/xt_pages/stock/drugs/drugsExpiryDate'),
442
-      name: 'drugsExpiryDate',
443
-      hidden: true,
444
-      is_menu: false,
445
-      num: 3,
446
-      meta: { title: 'drugsExpiryDate', noCache: true }
447
-    },
438
+    // {
439
+    //   path: '/stock/drugs/stock/drugsSurplus',
440
+    //   component: () => import('@/xt_pages/stock/drugs/drugsSurplus'),
441
+    //   name: 'drugsSurplus',
442
+    //   hidden: true,
443
+    //   is_menu: false,
444
+    //   num: 3,
445
+    //   meta: { title: 'drugsSurplus', noCache: true }
446
+    // },
447
+    // {
448
+    //   path: '/stock/drugs/stock/drugsExpiryDate',
449
+    //   component: () => import('@/xt_pages/stock/drugs/drugsExpiryDate'),
450
+    //   name: 'drugsExpiryDate',
451
+    //   hidden: true,
452
+    //   is_menu: false,
453
+    //   num: 3,
454
+    //   meta: { title: 'drugsExpiryDate', noCache: true }
455
+    // },
448 456
   ]
449 457
 }

+ 27 - 1
src/router/modules/weight_sign.js View File

@@ -3,8 +3,34 @@ import Layout from '@/views/layout/Layout'
3 3
 export default {
4 4
   path: '/sign',
5 5
   component: Layout,
6
-  redirct: '/sign/index',
6
+  name:'signIndex',
7
+  redirct: 'noredirect',
8
+  meta: {
9
+    title: 'signIndex',
10
+    icon: 'signIndex',
11
+    isChild: true
12
+  },
7 13
   children: [{
14
+    path: '/signIn',
15
+    component: () => import('@/xt_pages/sign/signIn'),
16
+    name: 'signIn',
17
+    meta: {
18
+      title: 'signIn',
19
+      icon: 'signIn',
20
+      noCache: true
21
+    }
22
+  },
23
+  {
24
+    path: '/lineUp',
25
+    component: () => import('@/xt_pages/sign/lineUp'),
26
+    name: 'lineUp',
27
+    meta: {
28
+      title: 'lineUp',
29
+      icon: 'lineUp',
30
+      noCache: true
31
+    }
32
+  },
33
+  {
8 34
     path: '/sign',
9 35
     component: () => import('@/xt_pages/sign/index'),
10 36
     name: 'sign',

+ 1 - 1
src/store/modules/xt_permission.js View File

@@ -41,7 +41,7 @@ function xt_filterAsyncRouter(routers) {
41 41
 }
42 42
 
43 43
 function setupRouters(urls) {
44
-  // console.log(urls)
44
+  console.log(urls)
45 45
   xt_asyncRouterMap.forEach(router => {
46 46
     if (Object.prototype.toString.call(router.children) === '[object Array]') {
47 47
       router.hidden = true

+ 8 - 4
src/styles/index.scss View File

@@ -139,8 +139,9 @@ code {
139 139
 .app-container {
140 140
   padding: 20px;
141 141
   background: #fff;
142
-  margin: 0 15px 15px 15px;
143
-  min-height: calc(100vh - 178px);
142
+  margin: 10px 10px 5px 10px;
143
+  // min-height: calc(100vh - 178px);
144
+  min-height: calc(100vh - 118px);
144 145
 }
145 146
 
146 147
 .components-container {
@@ -349,16 +350,19 @@ code {
349 350
 }
350 351
 
351 352
 .position {
352
-  background: #f6f8f9;
353
+  background: #fff;
353 354
   padding: 10px 20px;
354 355
   display: flex;
355 356
   align-items: center;
356 357
   justify-content: space-between;
357
-  height: 52px;
358
+  height: 50px;
359
+  border-top:1px solid #e5e5e5;
360
+  border-bottom:1px solid #e5e5e5;
358 361
 }
359 362
 
360 363
 // 筛选全局样式
361 364
 .app-container {
365
+  height:100%;
362 366
   .cell.clearfix {
363 367
     margin: 0px 0 12px 0;
364 368
     display: flex;

+ 20 - 14
src/styles/sidebar.scss View File

@@ -3,21 +3,21 @@
3 3
   .main-container {
4 4
     min-height: 100%;
5 5
     transition: margin-left 0.28s;
6
-    margin-left: 150px;
6
+    // margin-left: 150px;
7 7
     position: relative;
8 8
   }
9 9
   // 侧边栏
10 10
   .sidebar-container {
11
-    transition: width 0.28s;
12
-    width: 150px !important;
13
-    height: 100%;
14
-    position: fixed;
15
-    font-size: 0px;
16
-    // top: 60px;
17
-    bottom: 0;
18
-    left: 0;
19
-    z-index: 1001;
20
-    overflow: hidden;
11
+    // transition: width 0.28s;
12
+    // width: 150px !important;
13
+    // height: 100%;
14
+    // position: fixed;
15
+    // font-size: 0px;
16
+    // // top: 60px;
17
+    // bottom: 0;
18
+    // left: 0;
19
+    // z-index: 1001;
20
+    // overflow: hidden;
21 21
     //reset element-ui css
22 22
     .horizontal-collapse-transition {
23 23
       transition: 0s width ease-in-out, 0s padding-left ease-in-out,
@@ -25,6 +25,8 @@
25 25
     }
26 26
     .scrollbar-wrapper {
27 27
       overflow-x: hidden !important;
28
+      width: 150px;
29
+      border-right:1px solid #e5e5e5;
28 30
       .el-scrollbar__view {
29 31
         height: 96%;
30 32
         .hamburger-container {
@@ -41,7 +43,7 @@
41 43
     a {
42 44
       display: inline-block;
43 45
       width: 100%;
44
-      overflow: hidden;
46
+      // overflow: hidden;
45 47
     }
46 48
     .svg-icon {
47 49
       margin-right: 6px;
@@ -93,14 +95,18 @@
93 95
   .sidebar-container .nest-menu .el-submenu > .el-submenu__title,
94 96
   .sidebar-container .el-submenu .el-menu-item {
95 97
     // min-width: 180px !important;
96
-    background-color: $subMenuBg !important;
98
+    // background-color: $subMenuBg !important;
97 99
     &:hover {
98
-      background-color: $menuHover !important;
100
+      // background-color: $menuHover !important;
101
+      background-color: #eaebeb !important;
99 102
     }
100 103
   }
101 104
   .el-menu--collapse .el-menu .el-submenu {
102 105
     // min-width: 180px !important;
103 106
   }
107
+  .el-menu-item.is-active{
108
+    background-color: #eaebeb !important;
109
+  }
104 110
 
105 111
   //适配移动端
106 112
   .mobile {

+ 249 - 59
src/views/layout/Layout.vue View File

@@ -1,25 +1,103 @@
1 1
 <template>
2 2
   <div class="app-wrapper" :class="classObj">
3
-    <div v-if="device === 'mobile' && sidebar.opened" class="drawer-bg" @click="handleClickOutside"></div>
4
-    <navbar></navbar>
5
-
6
-    <div class="Header-container">
7
-      <sidebar class="sidebar-container" @callBackIndex="handleIndex"></sidebar>
8
-      <!-- <sidebar class="newSide" @callBackIndex="handleIndex"></sidebar> -->
9
-      <div class="main-container">
10
-        <tags-view :index="index" :num="num"></tags-view>
3
+    <div v-if="device==='mobile'&&sidebar.opened" class="drawer-bg" @click="handleClickOutside"></div>
4
+    
5
+    <div class="mainBox">
6
+      <div class="navLeft">
7
+        <div :class="index == 0 ? 'navOne navActive' : 'navOne'" @click="clickActive(0,'门诊管理')">
8
+          <i class="iconfont icon--yishengmenzhen navIcon"></i>
9
+          <p>门诊管理</p>
10
+        </div>
11
+        <div :class="index == 1 ? 'navOne navActive' : 'navOne'" @click="clickActive(1,'电子病历')">
12
+          <i class="iconfont icon-s_bingli navIcon"></i>
13
+          <p>电子病历</p>
14
+        </div>
15
+        <div :class="index == 2 ? 'navOne navActive' : 'navOne'" @click="clickActive(2,'透析管理')">
16
+          <i class="iconfont icon-computer_fill navIcon"></i>
17
+          <p>透析管理</p>
18
+        </div>
19
+        <div :class="index == 3 ? 'navOne navActive' : 'navOne'" @click="clickActive(3,'库存管理')">
20
+          <i class="iconfont icon-kccx navIcon"></i>
21
+          <p>库存管理</p>
22
+        </div>
23
+        <div :class="index == 4 ? 'navOne navActive' : 'navOne'" @click="clickActive(4,'酷医商城')">
24
+          <i class="iconfont icon-shangcheng-1 navIcon"></i>
25
+          <p>酷医商城</p>
26
+        </div>
27
+        
28
+        <div class="navOne" @click="open">
29
+          <i class="iconfont icon-manage_fill navIcon"></i>
30
+          <p>更多</p>
31
+        </div>
32
+      </div>
33
+      <sidebar :navTitle="navTitle" v-show="navShow" class="sidebar-container" @func="show"></sidebar>
34
+      <div class="main-container new-main-container" style="flex:1;margin-top:50px;">
35
+        <navbar></navbar>
36
+        
37
+        <!-- <tags-view></tags-view> -->
11 38
         <app-main></app-main>
12 39
       </div>
13 40
     </div>
41
+    <div class="dialogMadol" v-if="sign" @click="close"></div>
42
+    <div class="dialogBox" v-if="sign">
43
+      <div class="dialogBoxTitle">
44
+        <span>更多菜单</span>
45
+        <span @click="close">关闭</span>
46
+      </div>
47
+      <div class="dialogMain">
48
+        <!-- <div class="dialogMainOne" @click="clickActive(5,'库存管理')">
49
+          <div class="dialogIcon">
50
+            <i class="el-icon-menu newIcon"></i>
51
+          </div>
52
+          <p>库存管理</p>
53
+        </div> -->
54
+        <a :href="CDMWebsit()" target="_blank" v-if="this.$store.getters.xt_user.cdm_role_exist">
55
+          <div class="dialogMainOne">
56
+            <div class="dialogIcon">
57
+              <i class="iconfont icon-yiliao newIcon"></i>
58
+            </div>
59
+            <p>慢病管理</p>
60
+          </div>
61
+        </a>
62
+        <a :href="SCRMWebsit()" target="_blank" v-if="this.$store.getters.xt_user.scrm_role_exist">
63
+          <div class="dialogMainOne">
64
+            <div class="dialogIcon">
65
+              <i class="iconfont icon-yingxiao newIcon"></i>
66
+            </div>
67
+            <p>营销管理</p>
68
+          </div>
69
+        </a>
70
+        <div class="dialogMainOne">
71
+          <div class="dialogIcon">
72
+            <i class="iconfont icon-shujufenxi-jingyinggaikuang newIcon"></i>
73
+          </div>
74
+          <p>经营中心</p>
75
+        </div>
76
+        <a :href="MircoMallWebsit()" target="_blank" v-if="this.$store.getters.xt_user.mall_role_exist">
77
+          <div class="dialogMainOne">
78
+            <div class="dialogIcon">
79
+              <i class="iconfont icon-fenxiao newIcon"></i>
80
+            </div>
81
+            <p>分销商城</p>
82
+          </div>
83
+        </a>
84
+        <div class="dialogMainOne" @click="clickActive(11,'配置管理')">
85
+          <div class="dialogIcon">
86
+            <i class="iconfont icon-setup_fill newIcon"></i>
87
+          </div>
88
+          <p>配置管理</p>
89
+        </div>
90
+      </div>
91
+    </div>
14 92
   </div>
15 93
 </template>
16 94
 
17 95
 <script>
18
-import { Navbar, Sidebar, AppMain, TagsView } from "./components";
19
-import ResizeMixin from "./mixin/ResizeHandler";
96
+import { Navbar, Sidebar, AppMain, TagsView } from './components'
97
+import ResizeMixin from './mixin/ResizeHandler'
20 98
 
21 99
 export default {
22
-  name: "layout",
100
+  name: 'layout',
23 101
   components: {
24 102
     Navbar,
25 103
     Sidebar,
@@ -27,73 +105,185 @@ export default {
27 105
     TagsView
28 106
   },
29 107
   mixins: [ResizeMixin],
108
+  data(){
109
+    return{
110
+      index:2,
111
+      navTitle:'透析管理',
112
+      sign:false,
113
+      navShow:true
114
+    }
115
+  },
30 116
   computed: {
31 117
     sidebar() {
32
-      return this.$store.state.app.sidebar;
118
+      return this.$store.state.app.sidebar
33 119
     },
34 120
     device() {
35
-      return this.$store.state.app.device;
121
+      return this.$store.state.app.device
36 122
     },
37 123
     classObj() {
38 124
       return {
39 125
         hideSidebar: !this.sidebar.opened,
40 126
         openSidebar: this.sidebar.opened,
41 127
         withoutAnimation: this.sidebar.withoutAnimation,
42
-        mobile: this.device === "mobile"
43
-      };
128
+        mobile: this.device === 'mobile'
129
+      }
44 130
     }
45 131
   },
46
-  data() {
47
-    return {
48
-      index: 0,
49
-      num: 1
50
-    };
51
-  },
52 132
   methods: {
53 133
     handleClickOutside() {
54
-      this.$store.dispatch("closeSideBar", { withoutAnimation: false });
134
+      this.$store.dispatch('closeSideBar', { withoutAnimation: false })
135
+    },
136
+    clickActive(index,title){
137
+      if(index == 4){
138
+        this.$router.push('/kuyiShopping')
139
+      }else if(index == 6){
140
+        this.CDMWebsit()
141
+      }
142
+      this.index = index
143
+      this.navTitle = title
144
+      this.sign = false
145
+    },
146
+    open(){
147
+      this.sign = true
148
+    },
149
+    close(){
150
+      this.sign = false
151
+    },
152
+    show(data){
153
+      this.navShow = data
154
+    },
155
+    SCRMWebsit() {
156
+      return process.env.SRCM_HOST;
157
+    },
158
+    MircoMallWebsit() {
159
+      return process.env.MIRCO_MALL_HOST;
160
+    },
161
+    CDMWebsit() {
162
+      return process.env.CDM_HOST;
55 163
     },
56
-    handleIndex(data, num) {
57
-      // console.log({ prop: data });
58
-      this.index = data;
59
-      this.num = num;
60
-    }
61 164
   }
62
-};
165
+}
63 166
 </script>
64 167
 
65 168
 <style rel="stylesheet/scss" lang="scss" scoped>
66
-@import "src/styles/mixin.scss";
67
-.app-wrapper {
68
-  @include clearfix;
69
-  // position: relative;
70
-  height: 100%;
71
-  width: 100%;
72
-  // &.mobile.openSidebar{
169
+  @import "src/styles/mixin.scss";
170
+  .app-wrapper {
171
+    @include clearfix;
172
+    position: relative;
173
+    height: 100%;
174
+    width: 100%;
175
+    &.mobile.openSidebar{
176
+      position: fixed;
177
+      top: 0;
178
+    }
179
+  }
180
+  .drawer-bg {
181
+    background: #000;
182
+    opacity: 0.3;
183
+    width: 100%;
184
+    top: 0;
185
+    height: 100%;
186
+    position: absolute;
187
+    z-index: 999;
188
+  }
189
+  // .sidebar-container{
73 190
   //   position: fixed;
74
-  //   top: 0;
191
+  //   top:50px;
192
+  //   left:0;
75 193
   // }
76
-}
77
-.drawer-bg {
78
-  background: #000;
79
-  opacity: 0.3;
80
-  width: 100%;
81
-  top: 0;
82
-  height: 100%;
83
-  position: absolute;
84
-  z-index: 999;
85
-}
86
-.newSide {
87
-  width: 150px !important;
88
-  height: 100%;
89
-  position: fixed;
90
-  top: 60px;
91
-  bottom: 0;
92
-  left: 0;
93
-  z-index: 1001;
94
-  overflow: hidden;
95
-}
96
-</style>
97
-<style lang="scss">
98
-
194
+  .navLeft{
195
+    width:80px;
196
+    height:100%;
197
+    background: #1F2D3D;
198
+    margin-top:50px;
199
+    .navOne{
200
+      width:80px;
201
+      height:80px;
202
+      color:#BFCBD9;
203
+      display: flex;
204
+      align-items: center;
205
+      flex-direction: column;
206
+      cursor: pointer;
207
+      .navIcon{
208
+        margin: 16px 0 10px 0;
209
+        font-size: 24px;
210
+      }
211
+    }
212
+    .navActive{
213
+      background: #409EFF;
214
+      color:#fff;
215
+    }
216
+  }
217
+  .mainBox{
218
+    display:flex;
219
+    width:100%;
220
+    height:calc(100% - 50px)
221
+  }
222
+  #app .sidebar-container {
223
+    width: 150px !important;
224
+    height: 100%;
225
+    margin-top:50px;
226
+    overflow: visible;
227
+    background-color: #fff;
228
+  }
229
+  .dialogBox{
230
+    width: 392px;
231
+    height: 400px;
232
+    background: #304155;
233
+    position: fixed;
234
+    bottom:0;
235
+    left:80px;
236
+    z-index:4000;
237
+    .dialogBoxTitle{
238
+      display: flex;
239
+      justify-content: space-between;
240
+      padding:0 16px;
241
+      border-bottom:1px solid #BFCBD9;
242
+      height:44px;
243
+      align-items: center;
244
+      color:#BFCBD9;
245
+      >:last-child{
246
+        cursor: pointer;
247
+      }
248
+    }
249
+    .dialogMain{
250
+      display: flex;
251
+      flex-wrap: wrap;
252
+    }
253
+    .dialogMainOne{
254
+      color:#BFCBD9;
255
+      display: flex;
256
+      align-items: center;
257
+      flex-direction: column;
258
+      margin: 16px;
259
+      .dialogIcon{
260
+        width: 66px;
261
+        height: 66px;
262
+        background: rgba(64, 158, 255, 0.2);
263
+        display: flex;
264
+        align-items: center;
265
+        margin-bottom: 10px;
266
+      }
267
+      .newIcon{
268
+        margin: 0 auto;
269
+        font-size: 24px;
270
+      }
271
+      >p{
272
+        font-size: 14px;
273
+      }
274
+    }
275
+  }
276
+  .dialogMadol{
277
+    position: fixed;
278
+    left: 0;
279
+    top: 0;
280
+    width: 100%;
281
+    height: 100%;
282
+    opacity: .5;
283
+    background: #000;
284
+    z-index: 3000;
285
+  }
286
+  .new-main-container{
287
+    width: calc(100% - 220px);
288
+  }
99 289
 </style>

+ 9 - 4
src/views/layout/components/AppMain.vue View File

@@ -1,5 +1,5 @@
1 1
 <template>
2
-  <section class="app-main">
2
+  <section class="app-main new-app-main">
3 3
     <transition name="fade-transform" mode="out-in">
4 4
       <keep-alive :include="cachedViews">
5 5
         <router-view :key="key"></router-view>
@@ -25,11 +25,16 @@ export default {
25 25
 <style scoped>
26 26
 .app-main {
27 27
   /*84 = navbar + tags-view = 50 +34 */
28
-  min-height: calc(100vh - 120px);
28
+  /* min-height: calc(100vh - 120px); */
29 29
   position: relative;
30
-  overflow: hidden;
31
-  margin-top: 40px;
30
+  /* overflow: hidden; */
31
+  /* margin-top: 40px; */
32 32
   background: #f6f8f9;
33
+  height:100%;
34
+  overflow: auto;
35
+}
36
+.new-app-main{
37
+  height:100%;
33 38
 }
34 39
 </style>
35 40
 

+ 32 - 27
src/views/layout/components/Navbar.vue View File

@@ -63,21 +63,26 @@
63 63
 
64 64
       </div>
65 65
     </el-menu>-->
66
-    <div class="dropdownBox">
67
-      <el-dropdown trigger="click" @command="handleOrgCommand">
68
-        <span class="el-dropdown-link">
69
-          {{ org_name }}
70
-          <i class="el-icon-arrow-down el-icon--right"></i>
71
-        </span>
72
-        <el-dropdown-menu slot="dropdown">
73
-          <el-dropdown-item
74
-            v-for="(item, index) in orgs"
75
-            :key="index"
76
-            :command="item.id"
77
-            >{{ item.org_name }}</el-dropdown-item
78
-          >
79
-        </el-dropdown-menu>
80
-      </el-dropdown>
66
+    <div style="display:flex;align-items: center;">
67
+      <div class="nav-logo">
68
+        <img :src="require(`../../../assets/logo/logo2.png`)" alt="">
69
+      </div>
70
+      <div class="dropdownBox">
71
+        <el-dropdown trigger="click" @command="handleOrgCommand">
72
+          <span class="el-dropdown-link">
73
+            {{ org_name }}
74
+            <i class="el-icon-arrow-down el-icon--right"></i>
75
+          </span>
76
+          <el-dropdown-menu slot="dropdown">
77
+            <el-dropdown-item
78
+              v-for="(item, index) in orgs"
79
+              :key="index"
80
+              :command="item.id"
81
+              >{{ item.org_name }}</el-dropdown-item
82
+            >
83
+          </el-dropdown-menu>
84
+        </el-dropdown>
85
+      </div>
81 86
     </div>
82 87
     <div class="navRight">
83 88
       <!-- <el-input placeholder="搜索患者透析号/姓名/首拼" prefix-icon="el-icon-search" v-model="input2"></el-input>
@@ -300,17 +305,17 @@ export default {
300 305
 
301 306
 <style rel="stylesheet/scss" lang="scss" scoped>
302 307
 .top-nav {
303
-  background: #409eff;
308
+  background: #fff;
304 309
   position: fixed;
305 310
   top: 0;
306
-  left: 150px;
311
+  left: 0px;
307 312
   right: 0;
308 313
   z-index: 1000;
309 314
   height: 50px;
310 315
   display: flex;
311 316
   align-items: center;
312 317
   justify-content: space-between;
313
-  color: #fff;
318
+  color: #666666;
314 319
   .dropdownBox {
315 320
     margin-left: 10px;
316 321
   }
@@ -325,7 +330,7 @@ export default {
325 330
       float: right;
326 331
       height: 100%;
327 332
       z-index: 99999;
328
-      color: #fff;
333
+      color: #666666;
329 334
       & :focus {
330 335
         outline: none;
331 336
       }
@@ -371,12 +376,12 @@ export default {
371 376
           .user-title {
372 377
             margin: 0 8px;
373 378
             font-size: 14px;
374
-            color: #fff;
379
+            color: #666666;
375 380
           }
376 381
 
377 382
           .el-icon-caret-bottom {
378 383
             font-size: 12px;
379
-            color: #fff;
384
+            color: #666666;
380 385
           }
381 386
         }
382 387
       }
@@ -384,13 +389,13 @@ export default {
384 389
   }
385 390
 
386 391
   .nav-logo {
387
-    width: 162px;
392
+    width: 140px;
388 393
     display: flex;
389 394
     align-items: center;
390
-    height: 60px;
395
+    // height: 60px;
391 396
     text-align: center;
392 397
     justify-content: center;
393
-    padding: 10px 0;
398
+    // padding: 10px 0;
394 399
     box-sizing: border-box;
395 400
     float: left;
396 401
 
@@ -469,12 +474,12 @@ export default {
469 474
           .user-title {
470 475
             margin: 0 8px;
471 476
             font-size: 14px;
472
-            color: #fff;
477
+            color: #666666;
473 478
           }
474 479
 
475 480
           .el-icon-caret-bottom {
476 481
             font-size: 12px;
477
-            color: #fff;
482
+            color: #666666;
478 483
           }
479 484
         }
480 485
       }
@@ -532,7 +537,7 @@ export default {
532 537
 .dropdownBox {
533 538
   .el-dropdown-link {
534 539
     font-size: 14px;
535
-    color: #fff;
540
+    color: #666;
536 541
   }
537 542
 }
538 543
 </style>

+ 40 - 243
src/views/layout/components/Sidebar/SidebarItem.vue View File

@@ -1,283 +1,80 @@
1 1
 <template>
2
-  <div v-if="!item.hidden && item.children" class="menu-wrapper">
3
-    <div v-if="item.other">
4
-      <a :href="item.src" target="_blank">
5
-        <el-menu-item
6
-          :index="resolvePath(item.src)"
7
-          :class="{ 'submenu-title-noDropdown': !isNest }"
8
-        >
9
-          <i
10
-            v-if="item.name == 'slow'"
11
-            class="icon iconfont icon-manbing-xuanzhong"
12
-            style="margin-right: 4px;"
13
-          ></i>
14
-          <i
15
-            v-if="item.name == 'scrm'"
16
-            class="icon iconfont icon-pengyou"
17
-            style="margin-right: 4px;"
18
-          ></i>
19
-          <i
20
-            v-if="item.name == 'shop'"
21
-            class="icon iconfont icon-service_fill"
22
-            style="margin-right: 4px;"
23
-          ></i>
24
-          <span slot="title">{{ generateTitle(item.name) }}</span>
25
-        </el-menu-item>
26
-      </a>
27
-    </div>
28
-    <div v-else>
29
-      <div
30
-        v-if="
31
-          hasOneShowingChild(item.children) &&
32
-          !onlyOneChild.children &&
33
-          !item.alwaysShow
34
-        "
35
-        @click="onClick(item)"
36
-      >
37
-        <router-link :to="resolvePath(onlyOneChild.path)">
38
-          <el-menu-item
39
-            :index="resolvePath(onlyOneChild.path)"
40
-            :class="{ 'submenu-title-noDropdown': !isNest }"
41
-          >
42
-            <svg-icon
43
-              v-if="onlyOneChild.meta && onlyOneChild.meta.icon"
44
-              :icon-class="onlyOneChild.meta.icon"
45
-            ></svg-icon>
46
-            <span
47
-              v-if="onlyOneChild.meta && onlyOneChild.meta.title"
48
-              slot="title"
49
-              >{{ generateTitle(onlyOneChild.meta.title) }}</span
50
-            >
51
-          </el-menu-item>
52
-        </router-link>
53
-      </div>
2
+  <div v-if="!item.hidden&&item.children" class="menu-wrapper">
54 3
 
55
-      <div v-else>
56
-        <el-submenu
57
-          v-if="item.meta.isChild"
58
-          id="mySubmenu"
59
-          :index="item.name || item.path"
60
-        >
61
-          <template slot="title">
62
-            <svg-icon
63
-              v-if="item.meta && item.meta.icon"
64
-              :icon-class="item.meta.icon"
65
-            ></svg-icon>
66
-            <span v-if="item.meta && item.meta.title" slot="title">
67
-              {{ generateTitle(item.meta.title) }}
68
-            </span>
69
-          </template>
70
-          <template v-for="child in item.children" v-if="!child.hidden">
71
-            <router-link
72
-              :to="resolvePath(child.path)"
73
-              v-if="child.meta.isChild != true"
74
-              :key="child.name"
75
-            >
76
-              <el-menu-item
77
-                @click="onClick(item)"
78
-                :index="resolvePath(child.path)"
79
-              >
80
-                <svg-icon
81
-                  v-if="child.meta && child.meta.icon"
82
-                  :icon-class="child.meta.icon"
83
-                ></svg-icon>
84
-                <span v-if="child.meta && child.meta.title" slot="title">
85
-                  {{ generateTitle(child.meta.title) }}
86
-                </span>
87
-              </el-menu-item>
88
-            </router-link>
4
+      <router-link v-if="hasOneShowingChild(item.children) && !onlyOneChild.children&&!item.alwaysShow" :to="resolvePath(onlyOneChild.path)">
5
+        <el-menu-item :index="resolvePath(onlyOneChild.path)" :class="{'submenu-title-noDropdown':!isNest}">
6
+          <!-- <svg-icon v-if="onlyOneChild.meta&&onlyOneChild.meta.icon" :icon-class="onlyOneChild.meta.icon"></svg-icon> -->
7
+          <span v-if="onlyOneChild.meta&&onlyOneChild.meta.title" slot="title">{{generateTitle(onlyOneChild.meta.title)}}</span>
8
+        </el-menu-item>
9
+      </router-link>
89 10
 
90
-            <router-link
91
-              v-if="child.meta.isChild == true"
92
-              :to="child.path"
93
-              :key="child.name"
94
-            >
95
-              <el-menu-item
96
-                @click="onClick(item, child.parentNum)"
97
-                :index="resolvePath(child.path)"
98
-              >
99
-                <svg-icon
100
-                  v-if="child.meta && child.meta.icon"
101
-                  :icon-class="child.meta.icon"
102
-                ></svg-icon>
103
-                <span v-if="child.meta && child.meta.title" slot="title">
104
-                  {{ generateTitle(child.meta.title) }}
105
-                </span>
106
-              </el-menu-item>
107
-            </router-link>
108
-          </template>
109
-        </el-submenu>
110
-        <div v-else @click="onClick(item)">
111
-          <router-link :to="resolvePath(item.children[0].path)">
112
-            <el-menu-item :index="item.name || item.path">
113
-              <template slot="title">
114
-                <svg-icon
115
-                  v-if="item.meta && item.meta.icon"
116
-                  :icon-class="item.meta.icon"
117
-                ></svg-icon>
118
-                <span v-if="item.meta && item.meta.title" slot="title">
119
-                  {{ generateTitle(item.meta.title) }}
120
-                </span>
121
-              </template>
11
+      <el-submenu v-else :index="item.name||item.path">
12
+        <template slot="title">
13
+          <!-- <svg-icon v-if="item.meta&&item.meta.icon" :icon-class="item.meta.icon"></svg-icon> -->
14
+          <span v-if="item.meta&&item.meta.title" slot="title">{{generateTitle(item.meta.title)}}</span>
15
+        </template>
122 16
 
123
-              <!-- <template v-for="child in item.children" v-if="!child.hidden">
124
-                <sidebar-item
125
-                  :is-nest="true"
126
-                  class="nest-menu"
127
-                  v-if="child.children && child.children.length > 0"
128
-                  :item="child"
129
-                  :key="child.path"
130
-                  :base-path="resolvePath(child.path)"
131
-                ></sidebar-item>
17
+        <template v-for="child in item.children" v-if="!child.hidden">
18
+          <sidebar-item :is-nest="true" class="nest-menu" v-if="child.children&&child.children.length>0" :item="child" :key="child.path" :base-path="resolvePath(child.path)"></sidebar-item>
132 19
 
133
-                <router-link
134
-                  v-else
135
-                  :to="resolvePath(child.path)"
136
-                  :key="child.name"
137
-                >
138
-                  <el-menu-item :index="resolvePath(child.path)">
139
-                    <svg-icon
140
-                      v-if="child.meta && child.meta.icon"
141
-                      :icon-class="child.meta.icon"
142
-                    ></svg-icon>
143
-                    <span v-if="child.meta && child.meta.title" slot="title">{{
144
-                      generateTitle(child.meta.title)
145
-                    }}</span>
146
-                  </el-menu-item>
147
-                </router-link>
148
-              </template> -->
20
+          <router-link v-else :to="resolvePath(child.path)" :key="child.name">
21
+            <el-menu-item :index="resolvePath(child.path)">
22
+              <!-- <svg-icon v-if="child.meta&&child.meta.icon" :icon-class="child.meta.icon"></svg-icon> -->
23
+              <span v-if="child.meta&&child.meta.title" slot="title">&nbsp;&nbsp;{{generateTitle(child.meta.title)}}</span>
149 24
             </el-menu-item>
150 25
           </router-link>
151
-        </div>
152
-      </div>
153
-    </div>
26
+        </template>
27
+      </el-submenu>
28
+
154 29
   </div>
155 30
 </template>
156 31
 
157 32
 <script>
158
-import path from "path";
159
-import { generateTitle } from "@/utils/i18n";
160
-import { mapGetters } from "vuex";
33
+import path from 'path'
34
+import { generateTitle } from '@/utils/i18n'
161 35
 
162 36
 export default {
163
-  name: "SidebarItem",
37
+  name: 'SidebarItem',
164 38
   props: {
165 39
     // route object
166 40
     item: {
167 41
       type: Object,
168
-      required: true,
42
+      required: true
169 43
     },
170 44
     isNest: {
171 45
       type: Boolean,
172
-      default: false,
46
+      default: false
173 47
     },
174 48
     basePath: {
175 49
       type: String,
176
-      default: "",
177
-    },
178
-    index: {
179
-      type: Number,
180
-    },
181
-  },
182
-  computed: {
183
-    ...mapGetters(["permission_routers"]),
50
+      default: ''
51
+    }
184 52
   },
185 53
   data() {
186 54
     return {
187
-      onlyOneChild: null,
188
-    };
55
+      onlyOneChild: null
56
+    }
189 57
   },
190 58
   methods: {
191 59
     hasOneShowingChild(children) {
192
-      const showingChildren = children.filter((item) => {
60
+      const showingChildren = children.filter(item => {
193 61
         if (item.hidden) {
194
-          return false;
62
+          return false
195 63
         } else {
196 64
           // temp set(will be used if only has one showing child )
197
-          this.onlyOneChild = item;
198
-          return true;
65
+          this.onlyOneChild = item
66
+          return true
199 67
         }
200
-      });
68
+      })
201 69
       if (showingChildren.length === 1) {
202
-        return true;
70
+        return true
203 71
       }
204
-      return false;
72
+      return false
205 73
     },
206 74
     resolvePath(...paths) {
207
-      return path.resolve(this.basePath, ...paths);
75
+      return path.resolve(this.basePath, ...paths)
208 76
     },
209
-    generateTitle,
210
-    onClick(index, num) {
211
-      this.permission_routers.map((item, i) => {
212
-        if (this.isObjectValueEqual(item, index)) {
213
-          if (num) {
214
-            this.$emit("a", i, num);
215
-          } else {
216
-            this.$emit("a", i, 999);
217
-          }
218
-        }
219
-      });
220
-    },
221
-    isObjectValueEqual(a, b) {
222
-      var aProps = Object.getOwnPropertyNames(a);
223
-      var bProps = Object.getOwnPropertyNames(b);
224
-
225
-      if (aProps.length != bProps.length) {
226
-        return false;
227
-      }
228
-
229
-      for (var i = 0; i < aProps.length; i++) {
230
-        var propName = aProps[i];
231
-
232
-        if (a[propName] !== b[propName]) {
233
-          return false;
234
-        }
235
-      }
236
-
237
-      return true;
238
-    },
239
-  },
240
-  created() {
241
-    console.log(this.permission_routers);
242
-  },
243
-};
244
-</script>
245
-
246
-<style lang="scss">
247
-#mySubmenu {
248
-  .el-menu {
249
-    display: flex;
250
-    flex-wrap: wrap;
251
-    > a {
252
-      width: 50% !important;
253
-    }
254
-    .el-menu-item {
255
-      min-width: 0;
256
-      padding: 0 5px !important;
257
-      font-size: 12px;
258
-      background-color: #1f2d3d !important;
259
-    }
77
+    generateTitle
260 78
   }
261 79
 }
262
-.menu-wrapper {
263
-  .el-menu-item {
264
-    background-color: #1f2d3d !important;
265
-    color: #fff !important;
266
-  }
267
-  .el-menu {
268
-    background-color: #1f2d3d !important;
269
-  }
270
-  .el-submenu__title {
271
-    background-color: #1f2d3d !important;
272
-    color: #fff !important;
273
-    height: 32px !important;
274
-    line-height: 32px !important;
275
-  }
276
-  .router-link-exact-active {
277
-    color: rgb(64, 158, 255) !important;
278
-    .el-menu-item {
279
-      color: rgb(64, 158, 255) !important;
280
-    }
281
-  }
282
-}
283
-</style>
80
+</script>

+ 185 - 210
src/views/layout/components/Sidebar/index.vue View File

@@ -1,257 +1,232 @@
1 1
 <template>
2 2
   <el-scrollbar wrapClass="scrollbar-wrapper">
3
-    <!-- <div class="sideColumn">
4
-      <hamburger
5
-        class="hamburger-container"
6
-        :toggleClick="toggleSideBar"
7
-        :isActive="sidebar.opened"
8
-      ></hamburger>
9
-    </div>-->
10
-    <!-- <el-menu
11
-      mode="vertical"
12
-      :unique-opened="uniqueOpened"
13
-      :show-timeout="200"
14
-      :default-active="$route.path"
15
-      :collapse="isCollapse"
16
-      background-color="#304156"
17
-      text-color="#bfcbd9"
18
-      active-text-color="#409EFF"
19
-    >-->
20
-    <div class="logo">
21
-      <img src="../../../../assets/logo/logo1.png" alt />
3
+    <div class="sideColumn">
4
+       <!-- <hamburger class="hamburger-container" :toggleClick="toggleSideBar" :isActive="sidebar.opened"></hamburger>       -->
5
+       {{ navTitle }}
22 6
     </div>
23 7
     <el-menu
24 8
       mode="vertical"
25 9
       :unique-opened="uniqueOpened"
26 10
       :show-timeout="200"
27 11
       :default-active="$route.path"
28
-      background-color="#304156"
29
-      text-color="#bfcbd9"
30
-      active-text-color="#409EFF"
12
+      background-color="#f3f5f6"
13
+      text-color="#000"
14
+      active-text-color="#000"
31 15
     >
32
-      <sidebar-item
33
-        v-for="(route, index) in permission_routers"
34
-        :key="route.name"
35
-        :item="route"
36
-        :base-path="route.path"
37
-        :index="index"
38
-        @a="b"
39
-      ></sidebar-item>
40
-    <!-- <el-menu-item v-if="this.$store.getters.xt_user.cdm_role_exist" index="100">
41
-      <a :href="CDMWebsit()">
42
-        <i class="icon iconfont icon-manbing-xuanzhong" style="margin-right:4px"></i>
43
-        <span
44
-          slot="title"
45
-        >慢病管理</span>
46
-      </a>
47
-    </el-menu-item>
48
-      <el-menu-item v-if="this.$store.getters.xt_user.scrm_role_exist" index="101">
49
-        <a :href="SCRMWebsit()">
50
-          <i class="icon iconfont icon-pengyou" style="margin-right:4px"></i>
51
-          <span
52
-            slot="title"
53
-          >SCRM</span>
54
-        </a>
55
-      </el-menu-item>
56
-      <el-menu-item v-if="this.$store.getters.xt_user.mall_role_exist" index="102">
57
-        <a :href="MircoMallWebsit()">
58
-          <i class="icon iconfont icon-service_fill" style="margin-right:4px"></i>
59
-          <span
60
-            slot="title"
61
-          >分销商城</span>
62
-        </a>
63
-      </el-menu-item> -->
16
+      <sidebar-item v-for="route in arr" :key="route.name" :item="route" :base-path="route.path"></sidebar-item>
64 17
     </el-menu>
65
-
66 18
   </el-scrollbar>
67
-  <!-- <div class="mianLeft">
68
-    <div class="logo">
69
-      <img src="/static/img/logo.8dbb9fd.png" alt="" />
70
-    </div>
71
-    <div class="navBox">
72
-      <div
73
-        class="navOne"
74
-        :class="activeClass == index ? 'active' : ''"
75
-        v-for="(item, index) in permission_routers"
76
-        :key="item.name"
77
-        v-if="!item.hidden && item.children"
78
-      >
79
-        <div v-if="item.meta" @click="onClick(index)" class="one">
80
-          <router-link :to="item.children[0].path">
81
-          <svg-icon
82
-            v-if="item.meta && item.meta.icon"
83
-            :icon-class="item.meta.icon"
84
-          ></svg-icon>
85
-          <p v-if="item.meta && item.meta.title">
86
-            {{ generateTitle(item.meta.title) }}
87
-          </p>
88
-          </router-link>
89
-        </div>
90
-
91
-        <div v-else @click="onClick(index)">
92
-          <router-link :to="item.children[0].path" class="one">
93
-            <svg-icon :icon-class="item.children[0].meta.icon"></svg-icon>
94
-            <p>
95
-              {{ generateTitle(item.children[0].meta.title) }}
96
-            </p>
97
-          </router-link>
98
-        </div>
99
-      </div>
100
-    </div>
101
-  </div>-->
102 19
 </template>
103 20
 
104 21
 <script>
105 22
 import { mapGetters } from "vuex";
106 23
 import SidebarItem from "./SidebarItem";
107 24
 import Hamburger from "@/components/Hamburger";
108
-import { generateTitle } from "@/utils/i18n";
25
+
109 26
 
110 27
 export default {
111
-  components: { SidebarItem, Hamburger },
28
+  props:{
29
+    navTitle:String
30
+  },
31
+  components: { SidebarItem,Hamburger },
112 32
   computed: {
113 33
     ...mapGetters(["permission_routers", "sidebar"]),
114 34
     isCollapse() {
115 35
       return !this.sidebar.opened;
116 36
     }
117 37
   },
118
-  data() {
119
-    return {
120
-      uniqueOpened: true,
121
-      activeClass: 0,
122
-      index: 0
123
-    };
38
+  data(){
39
+    return{
40
+      uniqueOpened:true,
41
+      arr:[]
42
+    }
124 43
   },
125
-  methods: {
44
+  methods:{
126 45
     toggleSideBar() {
127 46
       this.$store.dispatch("toggleSideBar");
128 47
     },
129
-    generateTitle,
130
-    resolvePath(...paths) {
131
-      return path.resolve(this.basePath, ...paths);
132
-    },
133
-    b(index, num) {
134
-      // this.index = index;
135
-      // this.activeClass = index;
136
-      this.$emit("callBackIndex", index, num);
137
-    },
138
-    CDMWebsit() {
139
-      return process.env.CDM_HOST;
140
-    },
141
-    SCRMWebsit() {
142
-      return process.env.SRCM_HOST;
143
-    },
144
-    MircoMallWebsit() {
145
-      return process.env.MIRCO_MALL_HOST;
146
-    },
147 48
   },
148
-  created() {
149
-    // console.log(1111111121121111111, this.permission_routers);
150
-    // this.permission_routers.map(item => {
151
-    //   console.log(item.children);
152
-    // });
49
+  created(){
50
+    if(this.navTitle == '透析管理'){
51
+      let nameArr = ['workforce','dialysisrecord', 'dialysis', 'medicalScheduling', 'signIndex', 'qcd', 'quality_control']
52
+      console.log('permission_routers',this.permission_routers)
53
+      let routerArr = []
54
+      this.permission_routers.map(item => {
55
+        if(nameArr.indexOf(item.name) > -1){
56
+          routerArr.push(item)
57
+        }
58
+      })
59
+      this.arr = routerArr
60
+    }else if(this.navTitle == '电子病历'){
61
+      this.arr = []
62
+    }
63
+    
64
+    // let a = this.permission_routers
65
+    // this.arr = a.slice(0,10)
66
+    // console.log('this.arr',this.arr)
67
+  },
68
+  watch:{
69
+    navTitle:{
70
+      handler(newVal,oldVal){
71
+        if(newVal == '门诊管理'){
72
+          let nameArr = ['outpatientRegistration','outpatientDoctorStation','outpatientCharges','outpatientPharmacy']
73
+          console.log('permission_routers',this.permission_routers)
74
+          let routerArr = []
75
+          this.permission_routers.map(item => {
76
+            if(nameArr.indexOf(item.name) > -1){
77
+              routerArr.push(item)
78
+            }
79
+          })
80
+          this.arr = routerArr
81
+          if(this.arr.length > 0){
82
+            let a = true
83
+            this.$emit('func',a)
84
+          }else{
85
+            let a = false
86
+            this.$emit('func',a)
87
+          }
88
+        }else if(newVal == '电子病历'){
89
+          let nameArr = ['User','createPatient']
90
+          console.log('permission_routers',this.permission_routers)
91
+          let routerArr = []
92
+          this.permission_routers.map(item => {
93
+            if(nameArr.indexOf(item.name) > -1){
94
+              routerArr.push(item)
95
+            }
96
+          })
97
+          this.arr = routerArr
98
+          if(this.arr.length > 0){
99
+            let a = true
100
+            this.$emit('func',a)
101
+          }else{
102
+            let a = false
103
+            this.$emit('func',a)
104
+          }
105
+        }else if(newVal == '透析管理'){
106
+          let nameArr = ['workforce', 'dialysisrecord', 'dialysis', 'medicalScheduling', 'signIndex', 'qcd', 'quality_control']
107
+          console.log('permission_routers',this.permission_routers)
108
+          let routerArr = []
109
+          this.permission_routers.map(item => {
110
+            if(nameArr.indexOf(item.name) > -1){
111
+              routerArr.push(item)
112
+            }
113
+          })
114
+          console.log('routerArr',routerArr)
115
+          this.arr = routerArr
116
+          if(this.arr.length > 0){
117
+            let a = true
118
+            this.$emit('func',a)
119
+          }else{
120
+            let a = false
121
+            this.$emit('func',a)
122
+          }
123
+        }else if(newVal == '库存管理'){
124
+          let nameArr = ['stockManage','selfPreparedMedicine','stockDrugs','otherManagement']
125
+          console.log('permission_routers',this.permission_routers)
126
+          let routerArr = []
127
+          this.permission_routers.map(item => {
128
+            if(nameArr.indexOf(item.name) > -1){
129
+              routerArr.push(item)
130
+            }
131
+          })
132
+          this.arr = routerArr
133
+          if(this.arr.length > 0){
134
+            let a = true
135
+            this.$emit('func',a)
136
+          }else{
137
+            let a = false
138
+            this.$emit('func',a)
139
+          }
140
+        }else if(newVal == '配置管理'){
141
+          let nameArr = ['system','roleManage','dictionary','specialDictionary','template','prescription','druguse','showconfig','printTemplate']
142
+          console.log('permission_routers',this.permission_routers)
143
+          let routerArr = []
144
+          this.permission_routers.map(item => {
145
+            if(nameArr.indexOf(item.name) > -1){
146
+              routerArr.push(item)
147
+            }
148
+          })
149
+          this.arr = routerArr
150
+          if(this.arr.length > 0){
151
+            let a = true
152
+            this.$emit('func',a)
153
+          }else{
154
+            let a = false
155
+            this.$emit('func',a)
156
+          }
157
+        }else {
158
+          this.arr = []
159
+          if(this.arr.length > 0){
160
+            let a = true
161
+            this.$emit('func',a)
162
+          }else{
163
+            let a = false
164
+            this.$emit('func',a)
165
+          }
166
+        }
167
+      },
168
+      deep:true,
169
+      immediate: true
170
+    }
153 171
   }
154 172
 };
155 173
 </script>
156 174
 
157
-<style rel="stylesheet/scss" lang="scss" scoped>
158
-.mianLeft {
159
-  width: 150px;
160
-  height: 100%;
161
-  overflow-y: auto;
162
-  background: #304155;
163
-
164
-  .navBox {
165
-    display: flex;
166
-    flex-wrap: wrap;
167
-    .navOne {
168
-      width: 50%;
169
-      height: 75px;
170
-      display: flex;
171
-      align-items: center;
172
-      justify-content: space-around;
173
-      color: #fff;
174
-      .one {
175
-        display: flex;
176
-        align-items: center;
177
-        flex-direction: column;
178
-        p {
179
-          margin-top: 10px;
180
-          font-size: 14px;
181
-        }
182
-      }
183
-    }
184
-    .active {
185
-      background: #409eff;
175
+<style  rel="stylesheet/scss" lang="scss" scoped>
176
+.sideColumn{
177
+  // background-color: rgb(48, 65, 86);
178
+  background-color:#fff;
179
+  text-align: center;
180
+  height:50px;
181
+  line-height: 50px;
182
+  border-top:1px solid #e5e5e5;
183
+  border-bottom:1px solid #e5e5e5;
184
+  // color: rgb(191, 203, 217);
185
+  color:#000;
186
+.head {
187
+  text-align: center;
188
+  padding: 20px 0 0 0;
189
+  .tx {
190
+    .img {
191
+      width: 45px;
192
+      height: 45px;
193
+      border-radius: 50%;
194
+      -o-object-fit: cover;
195
+    object-fit: cover;
196
+    -o-object-position: center;
197
+    object-position: center;
186 198
     }
187
-  }
188
-}
199
+  } 
200
+  .title {
201
+    font-size: 14px;
202
+    color: #bfcbd9;
203
+    padding: 10px 10px 15px 10px;
204
+    line-height: 22px;
189 205
 
190
-.logo {
191
-  width: 100px;
192
-  height: 32px;
193
-  margin: 20px auto;
194
-  img {
195
-    width: 100%;
196
-    height: 100%;
197
-    display: block;
198 206
   }
199 207
 }
200
-
201
-.sideColumn {
202
-  background-color: rgb(48, 65, 86);
203
-  .head {
204
-    text-align: center;
205
-    padding: 20px 0 0 0;
206
-    .tx {
207
-      .img {
208
-        width: 45px;
209
-        height: 45px;
210
-        border-radius: 50%;
211
-        -o-object-fit: cover;
212
-        object-fit: cover;
213
-        -o-object-position: center;
214
-        object-position: center;
215
-      }
216
-    }
217
-    .title {
218
-      font-size: 14px;
219
-      color: #bfcbd9;
220
-      padding: 10px 10px 15px 10px;
221
-      line-height: 22px;
208
+.headShrink{
209
+  .tx{
210
+    .img{
211
+      width: 30px;
212
+      height: 30px;
222 213
     }
214
+
223 215
   }
224
-  .headShrink {
225
-    .tx {
226
-      .img {
227
-        width: 30px;
228
-        height: 30px;
229
-      }
230
-    }
231
-    .title {
232
-      display: none;
233
-    }
216
+  .title{
217
+    display: none;
234 218
   }
235 219
 }
220
+}
221
+
222
+
236 223
 </style>
237 224
 
238 225
 <style lang="scss">
239
-.scrollbar-wrapper {
240
-  background-color: #1F2D3D;
241
-  .el-menu{
242
-    background-color: #1F2D3D !important;
243
-  }
244
-  .el-menu-item{
245
-    height: 32px !important;
246
-    line-height: 32px !important;
247
-    background-color: #1F2D3D !important;
248
-    color: #fff !important;
249
-    i{
250
-      color: #fff;
251
-    }
252
-  }
226
+.el-scrollbar__thumb{
227
+  height:0 !important;
228
+}
229
+.scrollbar-wrapper::-webkit-scrollbar{
230
+  width:0 !important;
253 231
 }
254
-</style>
255
-<style lang="scss">
256
-
257 232
 </style>

+ 1 - 1
src/xt_pages/components/bread-crumb.vue View File

@@ -1,6 +1,6 @@
1 1
 <template>
2 2
     <el-breadcrumb separator="/">
3
-    <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
3
+    <el-breadcrumb-item>首页</el-breadcrumb-item>
4 4
     <template v-for="(crumb, index) in crumbsList" >
5 5
       <el-breadcrumb-item v-if="crumb.path" :to="{ path: crumb.path }" :key="index">{{crumb.name}}</el-breadcrumb-item>
6 6
       <el-breadcrumb-item v-else :key="index">{{crumb.name}}</el-breadcrumb-item>

+ 4 - 4
src/xt_pages/data/components/configure.vue View File

@@ -1,10 +1,10 @@
1 1
 <template>
2 2
     <div class="page_configure">
3 3
         <div style="width:50%;padding-right:10px;">
4
-            <div class="cell clearfix" style='margin-bottom:10px;'>
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="search">搜索</el-button>
7
-            </div>
4
+            <!--<div class="cell clearfix" style='margin-bottom:10px;'>-->
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="search">搜索</el-button>-->
7
+            <!--</div>-->
8 8
             <!--<el-table :data="drugList" border style="width: 100%" :row-style="{ color: '#303133' }" -->
9 9
              <!--:header-cell-style="{backgroundColor: 'rgb(245, 247, 250)', color: '#606266'}" -->
10 10
               <!--highlight-current-row-->

+ 97 - 53
src/xt_pages/data/components/consumables.vue View File

@@ -2,13 +2,13 @@
2 2
   <div class="page_consumables">
3 3
     <div style="display:flex;justify-content: space-between;width:100%;margin-bottom:20px;">
4 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"
5
+        <el-input style="width: 180px;margin-right:10px;" @keyup.enter.native='searchAction' v-model="keywords"
6 6
                   class="filter-item"/>
7 7
         <el-button style="margin-right:10px;" class="filter-item" type="primary" icon="el-icon-search"
8 8
                    @click="searchAction">搜索
9 9
         </el-button>
10 10
         <label class="title"><span class="name">是否启用</span> : </label>
11
-        <el-select v-model="is_use" style="width:140px;margin-right:10px;" placeholder="请选择">
11
+        <el-select v-model="is_use" style="width:140px;margin-right:10px;" placeholder="请选择" @change="changeUser">
12 12
           <el-option
13 13
             v-for="item in options"
14 14
             :key="item.value"
@@ -17,7 +17,7 @@
17 17
           </el-option>
18 18
         </el-select>
19 19
         <label class="title"><span class="name">是否收费</span> : </label>
20
-        <el-select v-model="is_charge" style="width:140px;margin-right:10px;" placeholder="请选择">
20
+        <el-select v-model="is_charge" style="width:140px;margin-right:10px;" placeholder="请选择" @change="changeCharge">
21 21
           <el-option
22 22
             v-for="item in options"
23 23
             :key="item.value"
@@ -26,7 +26,7 @@
26 26
           </el-option>
27 27
         </el-select>
28 28
         <span style="color: #909399;font-size:14px;">耗材种类 : &nbsp;</span>
29
-        <el-select v-model="good_kind" style="width:140px;margin-right:10px;" placeholder="请选择">
29
+        <el-select v-model="good_kind" style="width:140px;margin-right:10px;" placeholder="请选择" @change="changeKind">
30 30
           <el-option
31 31
             v-for="item,index in  getDictionaryDataConfig('system','good_kind')"
32 32
             :key="index"
@@ -50,33 +50,47 @@
50 50
       </el-table-column>
51 51
       <el-table-column label="名称" align="center">
52 52
         <template slot-scope="scope">
53
-          {{ scope.row.specification_name }}
53
+          {{ scope.row.good_name }}
54 54
         </template>
55 55
       </el-table-column>
56 56
       <el-table-column prop="date" label="规格型号" align="center">
57
+        <template slot-scope="scope">
58
+        {{ scope.row.specification_name }}
59
+        </template>
57 60
 
58 61
       </el-table-column>
59 62
       <el-table-column prop="date" label="耗材种类" width="140" align="center">
60
-
63
+        <template slot-scope="scope">
64
+          {{ getGoodKind(scope.row.good_kind) }}
65
+        </template>
61 66
       </el-table-column>
62 67
       <el-table-column label="耗材编码" width="140" align="center">
63
-
68
+        <template slot-scope="scope">
69
+          {{ scope.row.good_code }}
70
+        </template>
64 71
       </el-table-column>
65 72
 
66 73
       <el-table-column label="最小单位" width="60" align="center">
67
-
74
+        <template slot-scope="scope">
75
+          {{ getGoodUnit(scope.row.good_unit) }}
76
+        </template>
68 77
       </el-table-column>
69 78
       <el-table-column label="零售价" width="60" align="center">
70
-
79
+        <template slot-scope="scope">
80
+          {{ scope.row.retail_price }}
81
+        </template>
71 82
       </el-table-column>
72 83
       <el-table-column label="状态" width="60" align="center">
84
+        <template slot-scope="scope">
85
+        {{ scope.row.good_status}}
86
+        </template>
73 87
 
74 88
       </el-table-column>
75 89
 
76 90
       <el-table-column prop="date" label="操作" width="300" align="center">
77 91
         <template slot-scope="scope">
78 92
           <el-button @click="handleGoodInfoEdit(scope.$index, scope.row)" type="primary" size="small">编辑</el-button>
79
-          <!--<el-button type="primary" size="small" @click="clickSelfPayment">自付比例</el-button>-->
93
+          <el-button type="primary" size="small" @click="clickSelfPayment(scope.row.id)">自付比例</el-button>
80 94
           <el-button type="danger" size="small" @click="handleGoodInfoDelete(scope.$index, scope.row)">删除</el-button>
81 95
         </template>
82 96
       </el-table-column>
@@ -94,8 +108,6 @@
94 108
       :total="total"
95 109
     >
96 110
     </el-pagination>
97
-
98
-    <!--<add-consumable ref="addConsumable"></add-consumable>-->
99 111
     <good-info-dailog ref="addConsumable"
100 112
                       :titles="goodInfo.goodInfoDialog.goodInfoTitle"
101 113
                       :formValue="goodInfo.goodInfoDialog.formValue"
@@ -104,12 +116,15 @@
104 116
                       v-on:dialog-comfirm="goodInfoDialogComfirm"
105 117
                       v-on:dialog-cancle="goodInfoDialogCancle"
106 118
     ></good-info-dailog>
119
+    <self-payment ref='selfPayment'></self-payment>
120
+
107 121
   </div>
108 122
 </template>
109 123
 
110 124
 <script>
111 125
   import GoodInfoDailog from '../../stock/Dialog/goodInfoDailog'
112 126
   import { getDictionaryDataConfig } from "@/utils/data";
127
+  import selfPayment from './selfPayment'
113 128
 
114 129
   import {
115 130
     createGoodInfo,
@@ -125,6 +140,7 @@
125 140
   export default {
126 141
     components: {
127 142
       GoodInfoDailog,
143
+      selfPayment
128 144
     },
129 145
     data() {
130 146
       return {
@@ -203,6 +219,39 @@
203 219
       }
204 220
     },
205 221
     methods: {
222
+      changeKind(val){
223
+        this.getList()
224
+
225
+      },
226
+      changeCharge(val){
227
+        this.getList()
228
+
229
+      },
230
+      changeUser(val){
231
+        this.getList()
232
+
233
+
234
+      },
235
+      getGoodUnit(id){
236
+        for (let i = 0; i <this.$store.getters.good_unit.length; i++ ){
237
+          if(id == this.$store.getters.good_unit[i].id){
238
+
239
+            return this.$store.getters.good_unit[i].name
240
+          }
241
+        }
242
+        return ""
243
+      },
244
+      getGoodKind(id){
245
+        var data = this.getDictionaryDataConfig('system','good_kind')
246
+        var name = ""
247
+        for(let i = 0; i < data.length; i++){
248
+          if(id == data[i].id){
249
+            name = data[i].name
250
+          }
251
+
252
+        }
253
+        return name
254
+      },
206 255
       getDictionaryDataConfig(module,filed_name){
207 256
         return getDictionaryDataConfig(module,filed_name)
208 257
 
@@ -408,7 +457,7 @@
408 457
 
409 458
 
410 459
 
411
-            this.$refs.addConsumable.show()
460
+            this.$refs.addConsumable.show(row.id, this.goodInfo.goodInfoDialog.formValue)
412 461
           }
413 462
         })
414 463
       },
@@ -480,9 +529,11 @@
480 529
             return false
481 530
           } else {
482 531
             this.goodInfo.loading = false
483
-            for (let i = 0; i < response.data.data.list.length; i++) {
484
-              this.goodInfo.goodInfoData.push(response.data.data.list[i])
485
-            }
532
+            this.getList()
533
+
534
+            // for (let i = 0; i < response.data.data.list.length; i++) {
535
+            //   this.goodInfo.goodInfoData.push(response.data.data.list[i])
536
+            // }
486 537
           }
487 538
         })
488 539
       },
@@ -498,25 +549,25 @@
498 549
               return false
499 550
             } else {
500 551
               this.$refs.addConsumable.hide()
501
-
502
-              this.goodInfo.goodInfoData[
503
-                this.goodInfo.editGoodIndex
504
-                ].specification_name =
505
-                response.data.data.goodInfo.specification_name
506
-              this.goodInfo.goodInfoData[this.goodInfo.editGoodIndex].good_unit =
507
-                response.data.data.goodInfo.good_unit
508
-              this.goodInfo.goodInfoData[
509
-                this.goodInfo.editGoodIndex
510
-                ].buy_price = response.data.data.goodInfo.buy_price.toString()
511
-              this.goodInfo.goodInfoData[
512
-                this.goodInfo.editGoodIndex
513
-                ].sell_price = response.data.data.goodInfo.sell_price.toString()
514
-              this.goodInfo.goodInfoData[
515
-                this.goodInfo.editGoodIndex
516
-                ].expiry_date_warn_day_count = response.data.data.goodInfo.expiry_date_warn_day_count.toString()
517
-              this.goodInfo.goodInfoData[
518
-                this.goodInfo.editGoodIndex
519
-                ].stock_warn_count = response.data.data.goodInfo.stock_warn_count.toString()
552
+              this.getList()
553
+              // this.goodInfo.goodInfoData[
554
+              //   this.goodInfo.editGoodIndex
555
+              //   ].specification_name =
556
+              //   response.data.data.goodInfo.specification_name
557
+              // this.goodInfo.goodInfoData[this.goodInfo.editGoodIndex].good_unit =
558
+              //   response.data.data.goodInfo.good_unit
559
+              // this.goodInfo.goodInfoData[
560
+              //   this.goodInfo.editGoodIndex
561
+              //   ].buy_price = response.data.data.goodInfo.buy_price.toString()
562
+              // this.goodInfo.goodInfoData[
563
+              //   this.goodInfo.editGoodIndex
564
+              //   ].sell_price = response.data.data.goodInfo.sell_price.toString()
565
+              // this.goodInfo.goodInfoData[
566
+              //   this.goodInfo.editGoodIndex
567
+              //   ].expiry_date_warn_day_count = response.data.data.goodInfo.expiry_date_warn_day_count.toString()
568
+              // this.goodInfo.goodInfoData[
569
+              //   this.goodInfo.editGoodIndex
570
+              //   ].stock_warn_count = response.data.data.goodInfo.stock_warn_count.toString()
520 571
 
521 572
               this.$message.success('修改成功')
522 573
             }
@@ -529,9 +580,8 @@
529 580
               return false
530 581
             } else {
531 582
               this.$refs.addConsumable.hide()
532
-
533
-              this.goodInfo.goodInfoData.unshift(response.data.data.goodInfo)
534
-
583
+              this.getList()
584
+              // this.goodInfo.goodInfoData.unshift(response.data.data.goodInfo)
535 585
               this.$message.success('新增成功')
536 586
             }
537 587
           })
@@ -541,7 +591,6 @@
541 591
         this.$refs.addConsumable.hide()
542 592
       },
543 593
       showInfoDialog: function() {
544
-        this.$refs.addConsumable.show()
545 594
         this.getAllDealer()
546 595
         this.getAllManufacturer()
547 596
         this.goodInfo.goodInfoDialog.formValue.goodType = []
@@ -567,17 +616,8 @@
567 616
             }
568 617
           }
569 618
         })
570
-        this.goodInfo.goodInfoDialog.formValue.good_id = ''
571
-        this.goodInfo.goodInfoDialog.formValue.specification_name = ''
572
-        this.goodInfo.goodInfoDialog.formValue.buy_price = ''
573
-        this.goodInfo.goodInfoDialog.formValue.sell_price = ''
574
-        this.goodInfo.goodInfoDialog.formValue.remark = ''
575
-        this.goodInfo.goodInfoDialog.formValue.manufacturer = ''
576
-        this.goodInfo.goodInfoDialog.formValue.good_type_id = ''
577
-        this.goodInfo.goodInfoDialog.formValue.dealer = ''
578
-        this.goodInfo.goodInfoDialog.formValue.expiry_date_warn_day_count = ''
579
-        this.goodInfo.goodInfoDialog.formValue.stock_warn_count = ''
580
-        this.goodInfo.goodInfoDialog.formValue.is_reuse = '2'
619
+        this.$refs.addConsumable.show()
620
+
581 621
       },
582 622
       getAllDealer: function() {
583 623
         this.goodInfo.goodInfoDialog.formValue.dealers = []
@@ -636,8 +676,12 @@
636 676
         this.getList()
637 677
       },
638 678
       searchAction() {
639
-      },clickSelfPayment(){
640
-
679
+        this.is_use = ""
680
+        this.is_charge = ""
681
+        this.good_kind = ""
682
+        this.getList()
683
+      },clickSelfPayment(id){
684
+      this.$refs.selfPayment.show(id,2)
641 685
       },
642 686
       openForm() {
643 687
 
@@ -699,7 +743,7 @@
699 743
         this.goodInfo.goodInfoDialog.formValue.agent = ''
700 744
         this.goodInfo.goodInfoDialog.formValue.good_number = ''
701 745
 
702
-        this.$refs.addConsumable.show()
746
+        this.$refs.addConsumable.show(0)
703 747
       }
704 748
     }, created() {
705 749
       this.getList()

+ 3 - 3
src/xt_pages/data/components/drugs.vue View File

@@ -80,7 +80,7 @@
80 80
       <el-table-column prop="date" label="操作" width="400" align="center">
81 81
         <template slot-scope="scope">
82 82
           <el-button @click="openForm(scope.row.id)" type="primary" size="small">编辑</el-button>
83
-          <!--<el-button type="primary" size="small" @click="clickSelfPayment">自付比例</el-button>-->
83
+          <el-button type="primary" size="small" @click="clickSelfPayment(scope.row.id)">自付比例</el-button>
84 84
           <!--<el-button type="primary" size="small" @click="clickMainTain">单位维护</el-button>-->
85 85
           <!--<el-button type="danger" size="small">删除</el-button>-->
86 86
         </template>
@@ -339,8 +339,8 @@
339 339
       searchAction() {
340 340
         this.getList()
341 341
       },
342
-      clickSelfPayment() {
343
-        this.$refs.selfPayment.show()
342
+      clickSelfPayment(drug_id) {
343
+        this.$refs.selfPayment.show(drug_id,1)
344 344
       },
345 345
       clickMainTain() {
346 346
         // this.$refs.maintain.show();

+ 168 - 40
src/xt_pages/data/components/selfPayment.vue View File

@@ -1,19 +1,20 @@
1 1
 <template>
2
-    <el-dialog
2
+  <el-dialog
3 3
     title="自付比例"
4 4
     width="660px"
5 5
     :visible.sync="visible"
6 6
     :before-close="_close"
7 7
   >
8
-    <el-table :data="tableData" border style="width: 100%" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)', color: '#606266'}">
9
-        <el-table-column prop="name" label="医保类型" align="center"></el-table-column>
10
-        <el-table-column label="自付比例(%)" align="center">
11
-            <template slot-scope="scope">
12
-                <el-input v-model="input" placeholder="请输入内容"></el-input>
13
-            </template>
14
-        </el-table-column>
8
+    <el-table :data="tableData" border style="width: 100%" :row-style="{ color: '#303133' }"
9
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)', color: '#606266'}">
10
+      <el-table-column prop="name" label="医保类型" align="center"></el-table-column>
11
+      <el-table-column label="自付比例(%)" align="center">
12
+        <template slot-scope="scope">
13
+          <el-input v-model="scope.row.percent" placeholder="请输入内容"></el-input>
14
+        </template>
15
+      </el-table-column>
15 16
     </el-table>
16
-    
17
+
17 18
     <div slot="footer" class="dialog-footer">
18 19
       <el-button @click="hide">取 消</el-button>
19 20
       <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
@@ -23,45 +24,172 @@
23 24
 
24 25
 
25 26
 <script>
26
-export default {
27
-    data(){
28
-        return{
29
-            visible: false,
30
-            tableData:[
27
+  import { createMedicineInsurancePercent, getMedicineInsurancePercent } from '@/api/data'
28
+
29
+  export default {
30
+    data() {
31
+      return {
32
+        visible: false,
33
+        module:0,
34
+        tableData: [
35
+          {
36
+            name: '深圳医保1档',
37
+            medicine_insurance_type: 1,
38
+            percent: '',
39
+            type_id: 0
40
+          },
41
+          {
42
+            name: '深圳医保2档',
43
+            medicine_insurance_type: 2,
44
+            type_id: 0,
45
+            percent: ''
46
+          },
47
+          {
48
+            name: '深圳医保3档',
49
+            medicine_insurance_type: 3,
50
+            type_id: 0,
51
+            percent: ''
52
+          },
53
+          {
54
+            name: '外地医保',
55
+            medicine_insurance_type: 4,
56
+            type_id: 0,
57
+            percent: ''
58
+          },
59
+          {
60
+            name: '自费',
61
+            medicine_insurance_type: 5,
62
+            percent: '',
63
+            type_id: 0
64
+          }
65
+        ]
66
+      }
67
+    },
68
+    methods: {
69
+
70
+      submitAction: function() {
71
+        let params = {
72
+          'mip': this.tableData
73
+        }
74
+        createMedicineInsurancePercent(params,this.module).then(response => {
75
+          if (response.data.state == 0) {
76
+            this.$message.error(response.data.msg)
77
+            return false
78
+          } else {
79
+            this.hide()
80
+          }
81
+
82
+        })
83
+
84
+      },
85
+      _close: function(done) {
86
+        done()
87
+      },
88
+      show(id,module) {
89
+        this.module = module
90
+        this.tableData = []
91
+        getMedicineInsurancePercent(id,module).then(response => {
92
+            if (response.data.state == 0) {
93
+              this.$message.error(response.data.msg)
94
+              return false
95
+            } else {
96
+              var temptableData = [
31 97
                 {
32
-                    name:'深圳医保1档',
33
-                    scale:0
98
+                  name: '深圳医保1档',
99
+                  medicine_insurance_type: 1,
100
+                  percent: '',
101
+                  type_id: id
34 102
                 },
35 103
                 {
36
-                    name:'深圳医保2档',
37
-                    scale:0
104
+                  name: '深圳医保2档',
105
+                  medicine_insurance_type: 2,
106
+                  type_id: id,
107
+                  percent: ''
38 108
                 },
39 109
                 {
40
-                    name:'深圳医保3档',
41
-                    scale:0
110
+                  name: '深圳医保3档',
111
+                  medicine_insurance_type: 3,
112
+                  type_id: id,
113
+                  percent: ''
42 114
                 },
43 115
                 {
44
-                    name:'外地医保',
45
-                    scale:0
116
+                  name: '外地医保',
117
+                  medicine_insurance_type: 4,
118
+                  type_id: id,
119
+                  percent: ''
46 120
                 },
47 121
                 {
48
-                    name:'自费',
49
-                    scale:0
50
-                },
51
-            ]
52
-        }
53
-    },
54
-    methods:{
55
-        _close: function(done) {
56
-            done()
57
-        },
58
-        show() {
59
-            this.visible = true
60
-        },
61
-        hide() {
62
-            // this.clear()
63
-            this.visible = false
64
-        },
122
+                  name: '自费',
123
+                  medicine_insurance_type: 5,
124
+                  percent: '',
125
+                  type_id: id
126
+                }
127
+              ]
128
+              this.tableData = temptableData
129
+
130
+              this.visible = true
131
+              for (let i = 0; i < this.tableData.length; i++) {
132
+                this.tableData[i].type_id = id
133
+              }
134
+              if (response.data.data.mip != null && response.data.data.mip.length > 0) {
135
+
136
+                for (let i = 0; i < response.data.data.mip.length; i++) {
137
+                  for (let a = 0; a < this.tableData.length; a++) {
138
+                    if (response.data.data.mip[i].medicine_insurance_type == this.tableData[a].medicine_insurance_type) {
139
+                      this.tableData[a].percent = response.data.data.mip[i].percent.toString()
140
+                    }
141
+                  }
142
+                }
143
+
144
+              }else{
145
+               var temptableData = [
146
+                  {
147
+                    name: '深圳医保1档',
148
+                    medicine_insurance_type: 1,
149
+                    percent: '',
150
+                    type_id: id
151
+                  },
152
+                  {
153
+                    name: '深圳医保2档',
154
+                    medicine_insurance_type: 2,
155
+                    type_id: id,
156
+                    percent: ''
157
+                  },
158
+                  {
159
+                    name: '深圳医保3档',
160
+                    medicine_insurance_type: 3,
161
+                    type_id: id,
162
+                    percent: ''
163
+                  },
164
+                  {
165
+                    name: '外地医保',
166
+                    medicine_insurance_type: 4,
167
+                    type_id: id,
168
+                    percent: ''
169
+                  },
170
+                  {
171
+                    name: '自费',
172
+                    medicine_insurance_type: 5,
173
+                    percent: '',
174
+                    type_id: id
175
+                  }
176
+                ]
177
+                this.tableData = temptableData
178
+
179
+
180
+
181
+              }
182
+
183
+            }
184
+
185
+          }
186
+        )
187
+
188
+      },
189
+      hide() {
190
+        // this.clear()
191
+        this.visible = false
192
+      }
65 193
     }
66
-}
194
+  }
67 195
 </script>

+ 1 - 1
src/xt_pages/index/verify_token.vue View File

@@ -15,7 +15,7 @@ export default {
15 15
           // console.log(this.$store.getters.xt_permission.addRouters)
16 16
           this.$router.addRoutes(this.$store.getters.xt_permission.addRouters) // 动态添加可访问路由表
17 17
   //        next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
18
-          this.$router.replace({ path: '/' })
18
+          this.$router.replace({ path: '/dialysis/dialysisrecord' })
19 19
         })
20 20
       })
21 21
     }).catch((error) => {

+ 5 - 0
src/xt_pages/kuyiShopping/index.vue View File

@@ -0,0 +1,5 @@
1
+<template>
2
+    <div style="width:100%;height:100%;">
3
+        <iframe style="width:100%;height:100%;" src="http://market.kuyicloud.com/app/index.php?i=2&c=entry&m=ewei_shopv2&do=mobile&r=pc" frameborder="0"></iframe>
4
+    </div>
5
+</template>

+ 82 - 0
src/xt_pages/outpatientCharges/advancePayment.vue View File

@@ -0,0 +1,82 @@
1
+<template>
2
+    <div class="main-contain outpatientChargesManagement">
3
+        <div class="position">
4
+            <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+        </div>
6
+        <div class="app-container">
7
+            <div style="display: flex;justify-content: space-between;margin-bottom:10px;">
8
+                <div>
9
+                    <el-input size="small" style="width:150px;" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
10
+                    <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
11
+                </div>
12
+                <el-button size="small" type="primary">预交金查询</el-button>
13
+            </div>
14
+            <el-table :data="tableData" border height="500" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
15
+                <el-table-column type="selection" width="55" align="center"></el-table-column>
16
+                <el-table-column align="center" prop="name" label="序号">
17
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
18
+                </el-table-column>
19
+                <el-table-column align="center" prop="name" label="患者姓名">
20
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
21
+                </el-table-column>
22
+                <el-table-column align="center" prop="name" label="证件号码">
23
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
24
+                </el-table-column>
25
+                <el-table-column align="center" prop="name" label="患者类型">
26
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
27
+                </el-table-column>
28
+                <el-table-column align="center" prop="name" label="地址">
29
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
30
+                </el-table-column>
31
+                <el-table-column align="center" prop="name" label="预交金余额(元)">
32
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
33
+                </el-table-column>
34
+                <el-table-column align="center" prop="name" label="已交金额(元)">
35
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
36
+                </el-table-column>
37
+                <el-table-column align="center" prop="name" label="操作" width="300">
38
+                    <template slot-scope="scope">
39
+                        <el-button size="mini" type="primary">交款</el-button>
40
+                        <el-button size="mini" type="danger">删除</el-button>
41
+                        <el-button size="mini" type="primary">结算</el-button>
42
+                    </template>
43
+                </el-table-column>
44
+            </el-table>
45
+        </div>
46
+    </div>
47
+</template>
48
+
49
+
50
+<script>
51
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
52
+export default {
53
+    components:{
54
+        BreadCrumb,
55
+    },
56
+    data(){
57
+        return{
58
+            crumbs: [
59
+                { path: false, name: '门诊收费' },
60
+                { path: false, name: '预交金' }
61
+            ],
62
+            tableData: [{
63
+            date: '2016-05-02',
64
+            name: '王小虎',
65
+            address: '上海市普陀区金沙江路 1518 弄'
66
+            }, {
67
+            date: '2016-05-04',
68
+            name: '王小虎',
69
+            address: '上海市普陀区金沙江路 1517 弄'
70
+            }, {
71
+            date: '2016-05-01',
72
+            name: '王小虎',
73
+            address: '上海市普陀区金沙江路 1519 弄'
74
+            }, {
75
+            date: '2016-05-03',
76
+            name: '王小虎',
77
+            address: '上海市普陀区金沙江路 1516 弄'
78
+            }]
79
+        }
80
+    }
81
+}
82
+</script>

+ 166 - 0
src/xt_pages/outpatientCharges/components/charged.vue View File

@@ -0,0 +1,166 @@
1
+<template>
2
+    <div style="display:flex;">
3
+        <div class="noChargeLeft">
4
+            <div class="mainCell" style="margin-bottom:10px;">
5
+                <el-input size="small" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
6
+                <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
7
+            </div>
8
+            <el-table :data="tableData" border height="500" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
9
+                <el-table-column align="center" prop="name" label="处方号" width="100">
10
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
11
+                </el-table-column>
12
+                <el-table-column align="center" prop="name" label="姓名" width="99">
13
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
14
+                </el-table-column>
15
+            </el-table>
16
+        </div>
17
+        <div style="flex:1;overflow-x: hidden;">
18
+            <div class="noChargeRight">
19
+                <div class="chargeInfo">
20
+                    <p>姓名:<span></span></p>
21
+                    <p>性别:<span></span></p>
22
+                    <p>年龄:<span></span></p>
23
+                    <p>证件号:<span></span></p>
24
+                    <p>挂号类型:<span></span></p>
25
+                    <p>上一个发票号:<span></span></p>
26
+                    <p>下一个发票号:<span></span></p>
27
+                </div>
28
+                <div class="chargeBox">
29
+                    <p>医疗费用总额:<span></span></p>
30
+                    <p>基金支付金额:<span></span></p>
31
+                    <p>个人账户支付金额:<span></span></p>
32
+                    <p>个人支付金额:<span></span></p>
33
+                    <p>个人账号金额:<span></span></p>
34
+                </div>
35
+                <p class='chargeTitle'>药品信息</p>
36
+                <el-table :data="tableData" border height="200" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
37
+                    <el-table-column align="center" prop="name" label="名称">
38
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
39
+                    </el-table-column>
40
+                    <el-table-column align="center" prop="name" label="单位">
41
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
42
+                    </el-table-column>
43
+                    <el-table-column align="center" prop="name" label="单价(元)">
44
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
45
+                    </el-table-column>
46
+                    <el-table-column align="center" prop="name" label="数量">
47
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
48
+                    </el-table-column>
49
+                    <el-table-column align="center" prop="name" label="总价">
50
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
51
+                    </el-table-column>
52
+                    <el-table-column align="center" prop="name" label="自付比例">
53
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
54
+                    </el-table-column>
55
+                </el-table>
56
+                <p class='chargeTitle'>项目信息</p>
57
+                <el-table :data="tableData" border height="200" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
58
+                    <el-table-column align="center" prop="name" label="名称">
59
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
60
+                    </el-table-column>
61
+                    <el-table-column align="center" prop="name" label="科室">
62
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
63
+                    </el-table-column>
64
+                    <el-table-column align="center" prop="name" label="单价(元)">
65
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
66
+                    </el-table-column>
67
+                    <el-table-column align="center" prop="name" label="数量">
68
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
69
+                    </el-table-column>
70
+                    <el-table-column align="center" prop="name" label="总价">
71
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
72
+                    </el-table-column>
73
+                    <el-table-column align="center" prop="name" label="自付比例">
74
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
75
+                    </el-table-column>
76
+                </el-table>
77
+                <div class='chargeBtn'>
78
+                    <p>总金额:0元</p>
79
+                    <div>
80
+                        <el-button>收费清单打印</el-button>
81
+                        <el-button type="primary">处方查询</el-button>
82
+                        <el-button type="danger">退费</el-button>
83
+                    </div>
84
+                </div>
85
+            </div>
86
+        </div>
87
+    </div>
88
+</template>
89
+
90
+<script>
91
+export default {
92
+    data(){
93
+        return{
94
+            tableData: [{
95
+            date: '2016-05-02',
96
+            name: '王小虎',
97
+            address: '上海市普陀区金沙江路 1518 弄'
98
+            }, {
99
+            date: '2016-05-04',
100
+            name: '王小虎',
101
+            address: '上海市普陀区金沙江路 1517 弄'
102
+            }, {
103
+            date: '2016-05-01',
104
+            name: '王小虎',
105
+            address: '上海市普陀区金沙江路 1519 弄'
106
+            }, {
107
+            date: '2016-05-03',
108
+            name: '王小虎',
109
+            address: '上海市普陀区金沙江路 1516 弄'
110
+            }]
111
+        }
112
+    }
113
+}
114
+</script>
115
+
116
+
117
+<style lang="scss" scoped>
118
+.noChargeLeft{
119
+    width:200px;
120
+    .mainCell{
121
+        display: flex;
122
+    }
123
+}
124
+.noChargeRight{
125
+    margin-left:20px;
126
+    // flex: 1;
127
+    .chargeInfo{
128
+        display: flex;
129
+        justify-content: space-between;
130
+        align-items: center;
131
+        height: 32px;
132
+        margin-bottom: 10px;
133
+        >p{
134
+            display: flex;
135
+        }
136
+        >p>span{
137
+            display: inline-block;
138
+            min-width: 50px;
139
+        }
140
+    }
141
+    .chargeBox{
142
+        height:42px;
143
+        border: 1px solid #EBEEF5;
144
+        display: flex;
145
+        justify-content: space-between;
146
+        background-color: rgb(245, 247, 250);
147
+        color: rgb(96, 98, 102);
148
+        align-items: center;
149
+        padding: 0 20px;
150
+        >p>span{
151
+            display: inline-block;
152
+            min-width: 50px;
153
+        }
154
+    }
155
+    .chargeTitle{
156
+        line-height: 32px;
157
+        height: 32px;
158
+    }
159
+    .chargeBtn{
160
+        display: flex;
161
+        justify-content: space-between;
162
+        align-items: center;
163
+        margin-top: 20px;
164
+    }
165
+}
166
+</style>

+ 165 - 0
src/xt_pages/outpatientCharges/components/medicalInsuranceRefund.vue View File

@@ -0,0 +1,165 @@
1
+<template>
2
+    <div style="display:flex;">
3
+        <div class="noChargeLeft">
4
+            <div class="mainCell" style="margin-bottom:10px;">
5
+                <el-input size="small" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
6
+                <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
7
+            </div>
8
+            <el-table :data="tableData" border height="500" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
9
+                <el-table-column align="center" prop="name" label="处方号" width="100">
10
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
11
+                </el-table-column>
12
+                <el-table-column align="center" prop="name" label="姓名" width="99">
13
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
14
+                </el-table-column>
15
+            </el-table>
16
+        </div>
17
+        <div style="flex:1;overflow-x: hidden;">
18
+            <div class="noChargeRight">
19
+                <div class="chargeInfo">
20
+                    <p>姓名:<span></span></p>
21
+                    <p>性别:<span></span></p>
22
+                    <p>年龄:<span></span></p>
23
+                    <p>证件号:<span></span></p>
24
+                    <p>挂号类型:<span></span></p>
25
+                    <p>上一个发票号:<span></span></p>
26
+                    <p>下一个发票号:<span></span></p>
27
+                </div>
28
+                <div class="chargeBox">
29
+                    <p>医疗费用总额:<span></span></p>
30
+                    <p>基金支付金额:<span></span></p>
31
+                    <p>个人账户支付金额:<span></span></p>
32
+                    <p>个人支付金额:<span></span></p>
33
+                    <p>个人账号金额:<span></span></p>
34
+                </div>
35
+                <p class='chargeTitle'>药品信息</p>
36
+                <el-table :data="tableData" border height="200" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
37
+                    <el-table-column align="center" prop="name" label="名称">
38
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
39
+                    </el-table-column>
40
+                    <el-table-column align="center" prop="name" label="单位">
41
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
42
+                    </el-table-column>
43
+                    <el-table-column align="center" prop="name" label="单价(元)">
44
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
45
+                    </el-table-column>
46
+                    <el-table-column align="center" prop="name" label="数量">
47
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
48
+                    </el-table-column>
49
+                    <el-table-column align="center" prop="name" label="总价">
50
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
51
+                    </el-table-column>
52
+                    <el-table-column align="center" prop="name" label="自付比例">
53
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
54
+                    </el-table-column>
55
+                </el-table>
56
+                <p class='chargeTitle'>项目信息</p>
57
+                <el-table :data="tableData" border height="200" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
58
+                    <el-table-column align="center" prop="name" label="名称">
59
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
60
+                    </el-table-column>
61
+                    <el-table-column align="center" prop="name" label="科室">
62
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
63
+                    </el-table-column>
64
+                    <el-table-column align="center" prop="name" label="单价(元)">
65
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
66
+                    </el-table-column>
67
+                    <el-table-column align="center" prop="name" label="数量">
68
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
69
+                    </el-table-column>
70
+                    <el-table-column align="center" prop="name" label="总价">
71
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
72
+                    </el-table-column>
73
+                    <el-table-column align="center" prop="name" label="自付比例">
74
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
75
+                    </el-table-column>
76
+                </el-table>
77
+                <div class='chargeBtn'>
78
+                    <p>总金额:0元</p>
79
+                    <div>
80
+                        <el-button type="primary">处方查询</el-button>
81
+                        <el-button type="danger">退单</el-button>
82
+                    </div>
83
+                </div>
84
+            </div>
85
+        </div>
86
+    </div>
87
+</template>
88
+
89
+<script>
90
+export default {
91
+    data(){
92
+        return{
93
+            tableData: [{
94
+            date: '2016-05-02',
95
+            name: '王小虎',
96
+            address: '上海市普陀区金沙江路 1518 弄'
97
+            }, {
98
+            date: '2016-05-04',
99
+            name: '王小虎',
100
+            address: '上海市普陀区金沙江路 1517 弄'
101
+            }, {
102
+            date: '2016-05-01',
103
+            name: '王小虎',
104
+            address: '上海市普陀区金沙江路 1519 弄'
105
+            }, {
106
+            date: '2016-05-03',
107
+            name: '王小虎',
108
+            address: '上海市普陀区金沙江路 1516 弄'
109
+            }]
110
+        }
111
+    }
112
+}
113
+</script>
114
+
115
+
116
+<style lang="scss" scoped>
117
+.noChargeLeft{
118
+    width:200px;
119
+    .mainCell{
120
+        display: flex;
121
+    }
122
+}
123
+.noChargeRight{
124
+    margin-left:20px;
125
+    // flex: 1;
126
+    .chargeInfo{
127
+        display: flex;
128
+        justify-content: space-between;
129
+        align-items: center;
130
+        height: 32px;
131
+        margin-bottom: 10px;
132
+        >p{
133
+            display: flex;
134
+        }
135
+        >p>span{
136
+            display: inline-block;
137
+            min-width: 50px;
138
+        }
139
+    }
140
+    .chargeBox{
141
+        height:42px;
142
+        border: 1px solid #EBEEF5;
143
+        display: flex;
144
+        justify-content: space-between;
145
+        background-color: rgb(245, 247, 250);
146
+        color: rgb(96, 98, 102);
147
+        align-items: center;
148
+        padding: 0 20px;
149
+        >p>span{
150
+            display: inline-block;
151
+            min-width: 50px;
152
+        }
153
+    }
154
+    .chargeTitle{
155
+        line-height: 32px;
156
+        height: 32px;
157
+    }
158
+    .chargeBtn{
159
+        display: flex;
160
+        justify-content: space-between;
161
+        align-items: center;
162
+        margin-top: 20px;
163
+    }
164
+}
165
+</style>

+ 165 - 0
src/xt_pages/outpatientCharges/components/noCharge.vue View File

@@ -0,0 +1,165 @@
1
+<template>
2
+    <div style="display:flex;">
3
+        <div class="noChargeLeft">
4
+            <div class="mainCell" style="margin-bottom:10px;">
5
+                <el-input size="small" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
6
+                <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
7
+            </div>
8
+            <el-table :data="tableData" border height="500" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
9
+                <el-table-column align="center" prop="name" label="处方号" width="100">
10
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
11
+                </el-table-column>
12
+                <el-table-column align="center" prop="name" label="姓名" width="99">
13
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
14
+                </el-table-column>
15
+            </el-table>
16
+        </div>
17
+        <div style="flex:1;overflow-x: hidden;">
18
+            <div class="noChargeRight">
19
+                <div class="chargeInfo">
20
+                    <p>姓名:<span></span></p>
21
+                    <p>性别:<span></span></p>
22
+                    <p>年龄:<span></span></p>
23
+                    <p>证件号:<span></span></p>
24
+                    <p>挂号类型:<span></span></p>
25
+                    <p>上一个发票号:<span></span></p>
26
+                    <p>下一个发票号:<span></span></p>
27
+                </div>
28
+                <div class="chargeBox">
29
+                    <p>医疗费用总额:<span></span></p>
30
+                    <p>基金支付金额:<span></span></p>
31
+                    <p>个人账户支付金额:<span></span></p>
32
+                    <p>个人支付金额:<span></span></p>
33
+                    <p>个人账号金额:<span></span></p>
34
+                </div>
35
+                <p class='chargeTitle'>药品信息</p>
36
+                <el-table :data="tableData" border height="200" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
37
+                    <el-table-column align="center" prop="name" label="名称">
38
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
39
+                    </el-table-column>
40
+                    <el-table-column align="center" prop="name" label="单位">
41
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
42
+                    </el-table-column>
43
+                    <el-table-column align="center" prop="name" label="单价(元)">
44
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
45
+                    </el-table-column>
46
+                    <el-table-column align="center" prop="name" label="数量">
47
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
48
+                    </el-table-column>
49
+                    <el-table-column align="center" prop="name" label="总价">
50
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
51
+                    </el-table-column>
52
+                    <el-table-column align="center" prop="name" label="自付比例">
53
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
54
+                    </el-table-column>
55
+                </el-table>
56
+                <p class='chargeTitle'>项目信息</p>
57
+                <el-table :data="tableData" border height="200" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
58
+                    <el-table-column align="center" prop="name" label="名称">
59
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
60
+                    </el-table-column>
61
+                    <el-table-column align="center" prop="name" label="科室">
62
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
63
+                    </el-table-column>
64
+                    <el-table-column align="center" prop="name" label="单价(元)">
65
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
66
+                    </el-table-column>
67
+                    <el-table-column align="center" prop="name" label="数量">
68
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
69
+                    </el-table-column>
70
+                    <el-table-column align="center" prop="name" label="总价">
71
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
72
+                    </el-table-column>
73
+                    <el-table-column align="center" prop="name" label="自付比例">
74
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
75
+                    </el-table-column>
76
+                </el-table>
77
+                <div class='chargeBtn'>
78
+                    <p>总金额:0元</p>
79
+                    <div>
80
+                        <el-button>预结算</el-button>
81
+                        <el-button type="primary">结算保存</el-button>
82
+                    </div>
83
+                </div>
84
+            </div>
85
+        </div>
86
+    </div>
87
+</template>
88
+
89
+<script>
90
+export default {
91
+    data(){
92
+        return{
93
+            tableData: [{
94
+            date: '2016-05-02',
95
+            name: '王小虎',
96
+            address: '上海市普陀区金沙江路 1518 弄'
97
+            }, {
98
+            date: '2016-05-04',
99
+            name: '王小虎',
100
+            address: '上海市普陀区金沙江路 1517 弄'
101
+            }, {
102
+            date: '2016-05-01',
103
+            name: '王小虎',
104
+            address: '上海市普陀区金沙江路 1519 弄'
105
+            }, {
106
+            date: '2016-05-03',
107
+            name: '王小虎',
108
+            address: '上海市普陀区金沙江路 1516 弄'
109
+            }]
110
+        }
111
+    }
112
+}
113
+</script>
114
+
115
+
116
+<style lang="scss" scoped>
117
+.noChargeLeft{
118
+    width:200px;
119
+    .mainCell{
120
+        display: flex;
121
+    }
122
+}
123
+.noChargeRight{
124
+    margin-left:20px;
125
+    // flex: 1;
126
+    .chargeInfo{
127
+        display: flex;
128
+        justify-content: space-between;
129
+        align-items: center;
130
+        height: 32px;
131
+        margin-bottom: 10px;
132
+        >p{
133
+            display: flex;
134
+        }
135
+        >p>span{
136
+            display: inline-block;
137
+            min-width: 50px;
138
+        }
139
+    }
140
+    .chargeBox{
141
+        height:42px;
142
+        border: 1px solid #EBEEF5;
143
+        display: flex;
144
+        justify-content: space-between;
145
+        background-color: rgb(245, 247, 250);
146
+        color: rgb(96, 98, 102);
147
+        align-items: center;
148
+        padding: 0 20px;
149
+        >p>span{
150
+            display: inline-block;
151
+            min-width: 50px;
152
+        }
153
+    }
154
+    .chargeTitle{
155
+        line-height: 32px;
156
+        height: 32px;
157
+    }
158
+    .chargeBtn{
159
+        display: flex;
160
+        justify-content: space-between;
161
+        align-items: center;
162
+        margin-top: 20px;
163
+    }
164
+}
165
+</style>

+ 86 - 0
src/xt_pages/outpatientCharges/labelPrinting.vue View File

@@ -0,0 +1,86 @@
1
+<template>
2
+    <div class="main-contain outpatientChargesManagement">
3
+        <div class="position">
4
+            <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+        </div>
6
+        <div class="app-container">
7
+            <div style="display: flex;justify-content: space-between;margin-bottom:10px;">
8
+                <div>
9
+                    <el-input size="small" style="width:150px;" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
10
+                    <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
11
+                    <el-select size="small" v-model="value" placeholder="请选择" style="width:150px;margin-left:10px;">
12
+                        <el-option
13
+                        v-for="item in options"
14
+                        :key="item.value"
15
+                        :label="item.label"
16
+                        :value="item.value">
17
+                        </el-option>
18
+                    </el-select>
19
+                    <el-date-picker size="small" v-model="selected_date" prefix-icon="el-icon-date" @change="handleScheduleDateChange" :editable="false" :clearable="false" style="width: 196px;" type="date" placeholder="选择日期时间" align="right" ></el-date-picker>
20
+                </div>
21
+                <el-button size="small" type="primary">打印</el-button>
22
+            </div>
23
+            <el-table :data="tableData" border height="500" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
24
+                <el-table-column type="selection" width="55" align="center"></el-table-column>
25
+                <el-table-column align="center" prop="name" label="患者名字">
26
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
27
+                </el-table-column>
28
+                <el-table-column align="center" prop="name" label="处方号">
29
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
30
+                </el-table-column>
31
+                <el-table-column align="center" prop="name" label="创建时间">
32
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
33
+                </el-table-column>
34
+                <el-table-column align="center" prop="name" label="创建医生">
35
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
36
+                </el-table-column>
37
+                <el-table-column align="center" prop="name" label="项目名称">
38
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
39
+                </el-table-column>
40
+                <el-table-column align="center" prop="name" label="试管颜色">
41
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
42
+                </el-table-column>
43
+                <el-table-column align="center" prop="name" label="操作">
44
+                    <template slot-scope="scope">
45
+                        <el-button size="mini" type="primary">打印</el-button>
46
+                    </template>
47
+                </el-table-column>
48
+            </el-table>
49
+        </div>
50
+    </div>
51
+</template>
52
+
53
+
54
+<script>
55
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
56
+export default {
57
+    components:{
58
+        BreadCrumb,
59
+    },
60
+    data(){
61
+        return{
62
+            crumbs: [
63
+                { path: false, name: '门诊收费' },
64
+                { path: false, name: '标签打印' }
65
+            ],
66
+            tableData: [{
67
+            date: '2016-05-02',
68
+            name: '王小虎',
69
+            address: '上海市普陀区金沙江路 1518 弄'
70
+            }, {
71
+            date: '2016-05-04',
72
+            name: '王小虎',
73
+            address: '上海市普陀区金沙江路 1517 弄'
74
+            }, {
75
+            date: '2016-05-01',
76
+            name: '王小虎',
77
+            address: '上海市普陀区金沙江路 1519 弄'
78
+            }, {
79
+            date: '2016-05-03',
80
+            name: '王小虎',
81
+            address: '上海市普陀区金沙江路 1516 弄'
82
+            }]
83
+        }
84
+    }
85
+}
86
+</script>

+ 71 - 0
src/xt_pages/outpatientCharges/outpatientChargesManagement.vue View File

@@ -0,0 +1,71 @@
1
+<template>
2
+    <div class="main-contain outpatientChargesManagement">
3
+        <div class="position">
4
+            <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+        </div>
6
+        <div class="app-container">
7
+            <div class="dateBox">
8
+                <el-date-picker v-model="selected_date" prefix-icon="el-icon-date" @change="handleScheduleDateChange" :editable="false" :clearable="false" style="width: 196px;" type="date" placeholder="选择日期时间" align="right" ></el-date-picker>
9
+            </div>
10
+            <el-tabs v-model="activeName">
11
+                <el-tab-pane label="未收费" name="first">
12
+                    <no-charge></no-charge>
13
+                </el-tab-pane>
14
+                <el-tab-pane label="已收费" name="second">
15
+                    <charged></charged>
16
+                </el-tab-pane>
17
+                <el-tab-pane label="医保退处方" name="third">
18
+                    <medical-insurance-refund></medical-insurance-refund>
19
+                </el-tab-pane>
20
+            </el-tabs>
21
+        </div>
22
+    </div>
23
+</template>
24
+
25
+
26
+<script>
27
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
28
+import noCharge from './components/noCharge'
29
+import charged from './components/charged'
30
+import medicalInsuranceRefund from './components/medicalInsuranceRefund'
31
+export default {
32
+    components:{
33
+        BreadCrumb,
34
+        noCharge,
35
+        charged,
36
+        medicalInsuranceRefund
37
+    },
38
+    data(){
39
+        return{
40
+            crumbs: [
41
+                { path: false, name: '门诊收费' },
42
+                { path: false, name: '门诊收费管理' }
43
+            ],
44
+            activeName:'first'
45
+        }
46
+    }
47
+}
48
+</script>
49
+
50
+<style lang="scss" scoped>
51
+.outpatientChargesManagement{
52
+    .el-tabs{
53
+        position: relative;
54
+    }
55
+    .el-tabs__nav-wrap{
56
+        padding-left:200px;
57
+    }
58
+    .dateBox{
59
+        position: absolute;
60
+        z-index:99;
61
+    }
62
+}
63
+</style>
64
+
65
+<style lang="scss">
66
+.outpatientChargesManagement{
67
+    .el-tabs__nav-wrap{
68
+        padding-left:220px;
69
+    }
70
+}
71
+</style>

+ 77 - 0
src/xt_pages/outpatientCharges/outpatientInvoice.vue View File

@@ -0,0 +1,77 @@
1
+<template>
2
+    <div class="main-contain outpatientChargesManagement">
3
+        <div class="position">
4
+            <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+        </div>
6
+        <div class="app-container">
7
+            <div style="display: flex;justify-content: space-between;margin-bottom:10px;">
8
+                <div>
9
+                    <el-input size="small" style="width:150px;" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
10
+                    <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
11
+                </div>
12
+                <el-button size="small" type="danger">删除</el-button>
13
+            </div>
14
+            <el-table :data="tableData" border height="500" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
15
+                <el-table-column type="selection" width="55" align="center"></el-table-column>
16
+                <el-table-column align="center" prop="name" label="序号">
17
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
18
+                </el-table-column>
19
+                <el-table-column align="center" prop="name" label="操作员">
20
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
21
+                </el-table-column>
22
+                <el-table-column align="center" prop="name" label="发票起">
23
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
24
+                </el-table-column>
25
+                <el-table-column align="center" prop="name" label="发票止">
26
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
27
+                </el-table-column>
28
+                <el-table-column align="center" prop="name" label="状态">
29
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
30
+                </el-table-column>
31
+                <el-table-column align="center" prop="name" label="备注">
32
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
33
+                </el-table-column>
34
+                <el-table-column align="center" prop="name" label="操作">
35
+                    <template slot-scope="scope">
36
+                        <el-button size="mini" type="danger">删除</el-button>
37
+                    </template>
38
+                </el-table-column>
39
+            </el-table>
40
+        </div>
41
+    </div>
42
+</template>
43
+
44
+
45
+<script>
46
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
47
+export default {
48
+    components:{
49
+        BreadCrumb,
50
+    },
51
+    data(){
52
+        return{
53
+            crumbs: [
54
+                { path: false, name: '门诊收费' },
55
+                { path: false, name: '门诊发票' }
56
+            ],
57
+            tableData: [{
58
+            date: '2016-05-02',
59
+            name: '王小虎',
60
+            address: '上海市普陀区金沙江路 1518 弄'
61
+            }, {
62
+            date: '2016-05-04',
63
+            name: '王小虎',
64
+            address: '上海市普陀区金沙江路 1517 弄'
65
+            }, {
66
+            date: '2016-05-01',
67
+            name: '王小虎',
68
+            address: '上海市普陀区金沙江路 1519 弄'
69
+            }, {
70
+            date: '2016-05-03',
71
+            name: '王小虎',
72
+            address: '上海市普陀区金沙江路 1516 弄'
73
+            }]
74
+        }
75
+    }
76
+}
77
+</script>

+ 88 - 0
src/xt_pages/outpatientCharges/summary.vue View File

@@ -0,0 +1,88 @@
1
+<template>
2
+    <div class="main-contain outpatientChargesManagement">
3
+        <div class="position">
4
+            <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+        </div>
6
+        <div class="app-container">
7
+            <div style="display: flex;justify-content: space-between;margin-bottom:10px;">
8
+                <div>
9
+                    <el-input size="small" style="width:150px;" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
10
+                    <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
11
+                    <el-select size="small" v-model="value" placeholder="请选择" style="width:150px;margin-left:10px;">
12
+                        <el-option
13
+                        v-for="item in options"
14
+                        :key="item.value"
15
+                        :label="item.label"
16
+                        :value="item.value">
17
+                        </el-option>
18
+                    </el-select>
19
+                    <el-date-picker size="small" v-model="selected_date" prefix-icon="el-icon-date" @change="handleScheduleDateChange" :editable="false" :clearable="false" style="width: 196px;margin-right:10px;" type="date" placeholder="选择日期时间" align="right" ></el-date-picker>
20
+                    <el-radio v-model="radio" label="1">明细</el-radio>
21
+                    <el-radio v-model="radio" label="2">汇总</el-radio>
22
+                </div>
23
+                <el-button size="small" type="primary">报表下载</el-button>
24
+            </div>
25
+            <el-table :data="tableData" border height="500" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
26
+                <el-table-column type="selection" width="55" align="center"></el-table-column>
27
+                <el-table-column align="center" prop="name" label="患者名字">
28
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
29
+                </el-table-column>
30
+                <el-table-column align="center" prop="name" label="处方号">
31
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
32
+                </el-table-column>
33
+                <el-table-column align="center" prop="name" label="创建时间">
34
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
35
+                </el-table-column>
36
+                <el-table-column align="center" prop="name" label="创建医生">
37
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
38
+                </el-table-column>
39
+                <el-table-column align="center" prop="name" label="项目名称">
40
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
41
+                </el-table-column>
42
+                <el-table-column align="center" prop="name" label="试管颜色">
43
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
44
+                </el-table-column>
45
+                <el-table-column align="center" prop="name" label="操作">
46
+                    <template slot-scope="scope">
47
+                        <el-button size="mini" type="primary">打印</el-button>
48
+                    </template>
49
+                </el-table-column>
50
+            </el-table>
51
+        </div>
52
+    </div>
53
+</template>
54
+
55
+
56
+<script>
57
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
58
+export default {
59
+    components:{
60
+        BreadCrumb,
61
+    },
62
+    data(){
63
+        return{
64
+            crumbs: [
65
+                { path: false, name: '门诊收费' },
66
+                { path: false, name: '项目消费明细汇总' }
67
+            ],
68
+            tableData: [{
69
+            date: '2016-05-02',
70
+            name: '王小虎',
71
+            address: '上海市普陀区金沙江路 1518 弄'
72
+            }, {
73
+            date: '2016-05-04',
74
+            name: '王小虎',
75
+            address: '上海市普陀区金沙江路 1517 弄'
76
+            }, {
77
+            date: '2016-05-01',
78
+            name: '王小虎',
79
+            address: '上海市普陀区金沙江路 1519 弄'
80
+            }, {
81
+            date: '2016-05-03',
82
+            name: '王小虎',
83
+            address: '上海市普陀区金沙江路 1516 弄'
84
+            }]
85
+        }
86
+    }
87
+}
88
+</script>

+ 135 - 0
src/xt_pages/outpatientDoctorStation/components/advice.vue View File

@@ -0,0 +1,135 @@
1
+<template>
2
+    <el-dialog
3
+        title="新增医嘱"
4
+        width="1000px"
5
+        :visible.sync="visible"
6
+        :before-close="_close"
7
+    >
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;">
10
+                <el-form-item class="width50" label="开嘱医生 : " prop="name">
11
+                    张三
12
+                </el-form-item>
13
+                <el-form-item class="width50" label="开嘱时间 : " prop="name">
14
+                    张三
15
+                </el-form-item>
16
+                <el-form-item label="医嘱内容 : " prop="name" style="width:100%;">
17
+                    <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="textarea"></el-input>
18
+                </el-form-item>
19
+                <el-form-item class="width50" label="药品规格 : " prop="name">
20
+                    <el-input v-model="form.name" placeholder="" style="width:180px;"></el-input>
21
+                    <el-select v-model="value" style="width:180px;margin-left:9px;" placeholder="请选择">
22
+                        <el-option
23
+                        v-for="item in options"
24
+                        :key="item.value"
25
+                        :label="item.label"
26
+                        :value="item.value">
27
+                        </el-option>
28
+                    </el-select>
29
+                </el-form-item>
30
+                <el-form-item class="width50" label="总量 : " prop="name">
31
+                    <el-input v-model="form.name" placeholder="" style="width:180px;"></el-input>
32
+                    <el-select v-model="value" style="width:180px;margin-left:9px;" placeholder="请选择">
33
+                        <el-option
34
+                        v-for="item in options"
35
+                        :key="item.value"
36
+                        :label="item.label"
37
+                        :value="item.value">
38
+                        </el-option>
39
+                    </el-select>
40
+                </el-form-item>
41
+                <el-form-item class="width50" label="每次量 : " prop="name">
42
+                    <el-input v-model="form.name" placeholder="" style="width:180px;"></el-input>
43
+                    <el-select v-model="value" style="width:180px;margin-left:9px;" placeholder="请选择">
44
+                        <el-option
45
+                        v-for="item in options"
46
+                        :key="item.value"
47
+                        :label="item.label"
48
+                        :value="item.value">
49
+                        </el-option>
50
+                    </el-select>
51
+                </el-form-item>
52
+                <el-form-item class="width50" label="用法 : " prop="name">
53
+                    <el-select v-model="value" style="width:100%;" placeholder="请选择">
54
+                        <el-option
55
+                        v-for="item in options"
56
+                        :key="item.value"
57
+                        :label="item.label"
58
+                        :value="item.value">
59
+                        </el-option>
60
+                    </el-select>
61
+                </el-form-item>
62
+                <el-form-item class="width50" label="执行频率 : " prop="name">
63
+                    <el-select v-model="value" style="width:100%;" placeholder="请选择">
64
+                        <el-option
65
+                        v-for="item in options"
66
+                        :key="item.value"
67
+                        :label="item.label"
68
+                        :value="item.value">
69
+                        </el-option>
70
+                    </el-select>
71
+                </el-form-item>
72
+                <el-form-item class="width50" label="天数 : " prop="name">
73
+                    <el-input v-model="form.name" placeholder=""></el-input>
74
+                </el-form-item>
75
+                <el-form-item label="限制说明 : " prop="name" style="width:100%;">
76
+                    <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="textarea"></el-input>
77
+                </el-form-item>
78
+            </el-form>
79
+        </div>
80
+        <div slot="footer" class="dialog-footer">
81
+            <el-button @click="hide">取 消</el-button>
82
+            <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
83
+        </div>
84
+    </el-dialog>         
85
+</template>
86
+
87
+<script>
88
+export default {
89
+    data(){
90
+        return{
91
+            visible:false,
92
+            form:{
93
+                name:''
94
+            },
95
+        }
96
+    },
97
+    methods:{
98
+        _close: function(done) {
99
+            // this.clear()
100
+            done()
101
+        },
102
+        clear: function() {
103
+            this.form.id = 0;
104
+            this.form.name = "";
105
+            this.form.intro = "";
106
+        },
107
+        show() {
108
+            // this.clear()
109
+            this.visible = true
110
+        },
111
+        hide() {
112
+            // this.clear()
113
+            this.visible = false
114
+        },
115
+    }
116
+}
117
+</script>
118
+
119
+<style lang="scss" scoped>
120
+.adviceForm{
121
+    .width33{
122
+        width:33%;
123
+    }
124
+    .width50{
125
+        width:50%;
126
+    }
127
+    .width100{
128
+        width:100%;
129
+    }
130
+    .el-radio{
131
+        margin-right:2px;
132
+    }
133
+}
134
+</style>
135
+

+ 146 - 0
src/xt_pages/outpatientDoctorStation/components/inquiriesDetail.vue View File

@@ -0,0 +1,146 @@
1
+<template>
2
+    <el-dialog
3
+        title="详情"
4
+        width="1000px"
5
+        :visible.sync="visible"
6
+        :before-close="_close"
7
+        class="detailDialog"
8
+    >
9
+        <el-tabs v-model="activeName">
10
+            <el-tab-pane label="处方详情" name="first">
11
+                <el-table :data="tableData" border height="350" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
12
+                    <el-table-column align="center" prop="name" label="类型">
13
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
14
+                    </el-table-column>
15
+                    <el-table-column align="center" prop="name" label="医嘱名称">
16
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
17
+                    </el-table-column>
18
+                    <el-table-column align="center" prop="name" label="组">
19
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
20
+                    </el-table-column>
21
+                    <el-table-column align="center" prop="name" label="每次量">
22
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
23
+                    </el-table-column>
24
+                    <el-table-column align="center" prop="name" label="单位">
25
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
26
+                    </el-table-column>
27
+                    <el-table-column align="center" prop="name" label="用法">
28
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
29
+                    </el-table-column>
30
+                    <el-table-column align="center" prop="name" label="频率">
31
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
32
+                    </el-table-column>
33
+                    <el-table-column align="center" prop="name" label="天数">
34
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
35
+                    </el-table-column>
36
+                    <el-table-column align="center" prop="name" label="总量">
37
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
38
+                    </el-table-column>
39
+                    <el-table-column align="center" prop="name" label="单位">
40
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
41
+                    </el-table-column>
42
+                    <el-table-column align="center" prop="name" label="限制说明">
43
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
44
+                    </el-table-column>
45
+                </el-table> 
46
+            </el-tab-pane>
47
+            <el-tab-pane label="病历详情" name="second">
48
+                <el-table :data="tableData" border height="350" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
49
+                    <el-table-column align="center" prop="name" label="类型">
50
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
51
+                    </el-table-column>
52
+                    <el-table-column align="center" prop="name" label="医嘱名称">
53
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
54
+                    </el-table-column>
55
+                    <el-table-column align="center" prop="name" label="组">
56
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
57
+                    </el-table-column>
58
+                    <el-table-column align="center" prop="name" label="每次量">
59
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
60
+                    </el-table-column>
61
+                    <el-table-column align="center" prop="name" label="单位">
62
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
63
+                    </el-table-column>
64
+                    <el-table-column align="center" prop="name" label="用法">
65
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
66
+                    </el-table-column>
67
+                    <el-table-column align="center" prop="name" label="频率">
68
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
69
+                    </el-table-column>
70
+                    <el-table-column align="center" prop="name" label="天数">
71
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
72
+                    </el-table-column>
73
+                    <el-table-column align="center" prop="name" label="总量">
74
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
75
+                    </el-table-column>
76
+                    <el-table-column align="center" prop="name" label="单位">
77
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
78
+                    </el-table-column>
79
+                    <el-table-column align="center" prop="name" label="限制说明">
80
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
81
+                    </el-table-column>
82
+                </el-table> 
83
+            </el-tab-pane>
84
+        </el-tabs>
85
+        <div slot="footer" class="dialog-footer">
86
+            <el-button @click="hide">取 消</el-button>
87
+            <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
88
+        </div>
89
+    </el-dialog>         
90
+</template>
91
+
92
+<script>
93
+export default {
94
+    data(){
95
+        return{
96
+            visible:false,
97
+            tableData: [{
98
+            date: '2016-05-02',
99
+            name: '王小虎',
100
+            address: '上海市普陀区金沙江路 1518 弄'
101
+            }, {
102
+            date: '2016-05-04',
103
+            name: '王小虎',
104
+            address: '上海市普陀区金沙江路 1517 弄'
105
+            }, {
106
+            date: '2016-05-01',
107
+            name: '王小虎',
108
+            address: '上海市普陀区金沙江路 1519 弄'
109
+            }, {
110
+            date: '2016-05-03',
111
+            name: '王小虎',
112
+            address: '上海市普陀区金沙江路 1516 弄'
113
+            }],
114
+            activeName:'first'
115
+        }
116
+    },
117
+    methods:{
118
+        _close: function(done) {
119
+            // this.clear()
120
+            done()
121
+        },
122
+        clear: function() {
123
+            this.form.id = 0;
124
+            this.form.name = "";
125
+            this.form.intro = "";
126
+        },
127
+        show() {
128
+            // this.clear()
129
+            this.visible = true
130
+        },
131
+        hide() {
132
+            // this.clear()
133
+            this.visible = false
134
+        },
135
+    }
136
+}
137
+</script>
138
+
139
+<style lang="scss">
140
+.detailDialog{
141
+    .el-dialog__body{
142
+        padding: 0 20px 30px;
143
+    }
144
+}
145
+</style>
146
+

+ 106 - 0
src/xt_pages/outpatientDoctorStation/components/inspection.vue View File

@@ -0,0 +1,106 @@
1
+<template>
2
+    <el-dialog
3
+        title="选择模板"
4
+        width="1000px"
5
+        :visible.sync="visible"
6
+        :before-close="_close"
7
+    >
8
+        <div class="inspectionTitle">
9
+            <p>姓名:<span>张三</span></p>
10
+            <p>证件号:<span>张三</span></p>
11
+            <p>性别:<span>张三</span></p>
12
+            <p>类型:<span>张三</span></p>
13
+            <p>金额:<span>张三</span></p>
14
+        </div>
15
+        <div style="margin:10px 0;">
16
+           <el-input v-model="name" placeholder="" style="width:150px;"></el-input> 
17
+        </div>
18
+        <div style="display:flex;">
19
+            <div style="width: 151px;">
20
+                <el-table :data="tableData" border height="300" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
21
+                    <el-table-column align="center" prop="name" label="模板名称" width="150">
22
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
23
+                    </el-table-column>
24
+                </el-table> 
25
+            </div>
26
+            <el-table :data="tableData" border height="300" style="flex:1;margin-left:20px;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
27
+                <el-table-column type="selection" width="55" align="center"></el-table-column>
28
+                <el-table-column align="center" prop="name" label="项目名称">
29
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
30
+                </el-table-column>
31
+                <el-table-column align="center" prop="name" label="数量">
32
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
33
+                </el-table-column>
34
+                <el-table-column align="center" prop="name" label="单位">
35
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
36
+                </el-table-column>
37
+                <el-table-column align="center" prop="name" label="金额">
38
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
39
+                </el-table-column>
40
+            </el-table> 
41
+        </div>
42
+        <div slot="footer" class="dialog-footer">
43
+            <el-button @click="hide">取 消</el-button>
44
+            <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
45
+        </div>
46
+    </el-dialog>         
47
+</template>
48
+
49
+<script>
50
+export default {
51
+    data(){
52
+        return{
53
+            visible:false,
54
+            tableData: [{
55
+            date: '2016-05-02',
56
+            name: '王小虎',
57
+            address: '上海市普陀区金沙江路 1518 弄'
58
+            }, {
59
+            date: '2016-05-04',
60
+            name: '王小虎',
61
+            address: '上海市普陀区金沙江路 1517 弄'
62
+            }, {
63
+            date: '2016-05-01',
64
+            name: '王小虎',
65
+            address: '上海市普陀区金沙江路 1519 弄'
66
+            }, {
67
+            date: '2016-05-03',
68
+            name: '王小虎',
69
+            address: '上海市普陀区金沙江路 1516 弄'
70
+            }]
71
+        }
72
+    },
73
+    methods:{
74
+        _close: function(done) {
75
+            // this.clear()
76
+            done()
77
+        },
78
+        clear: function() {
79
+            this.form.id = 0;
80
+            this.form.name = "";
81
+            this.form.intro = "";
82
+        },
83
+        show() {
84
+            // this.clear()
85
+            this.visible = true
86
+        },
87
+        hide() {
88
+            // this.clear()
89
+            this.visible = false
90
+        },
91
+    }
92
+}
93
+</script>
94
+
95
+<style lang="scss" scoped>
96
+.inspectionTitle{
97
+    display:flex;
98
+    justify-content: space-between;
99
+    span{
100
+        min-width:80px;
101
+        display:inline-block;
102
+        
103
+    }
104
+}
105
+</style>
106
+

+ 148 - 0
src/xt_pages/outpatientDoctorStation/components/medicalRecord.vue View File

@@ -0,0 +1,148 @@
1
+<template>
2
+    <el-dialog
3
+        title="病历"
4
+        width="1000px"
5
+        :visible.sync="visible"
6
+        :before-close="_close"
7
+    >
8
+        <div>
9
+            <el-form :model="form" :rules="rules" class="medicalRecordForm" ref="form" label-width="100px" style="display: flex;flex-wrap: wrap;justify-content: space-between;">
10
+                <el-form-item class="width33" label="传染病:" prop="name">
11
+                    <el-radio v-model="radio" label="1">阴性</el-radio>
12
+                    <el-radio v-model="radio" label="2">阳性</el-radio>
13
+                </el-form-item>
14
+                <el-form-item class="width33" label="患病类型:" prop="name">
15
+                    <el-radio v-model="radio" label="1">慢性病</el-radio>
16
+                    <el-radio v-model="radio" label="2">神经病</el-radio>
17
+                    <el-radio v-model="radio" label="3">抑郁症</el-radio>
18
+                </el-form-item>
19
+                <el-form-item class="width33" label="透析之前情况:" prop="name">
20
+                    <el-radio v-model="radio" label="1">腹膜透析</el-radio>
21
+                    <el-radio v-model="radio" label="2">肾移植</el-radio>
22
+                </el-form-item>
23
+                <el-form-item class="width100" label="主诉 : " prop="name">
24
+                    <el-input v-model="form.name" placeholder=""></el-input>
25
+                </el-form-item>
26
+                <el-form-item class="width100" label="现病史 : " prop="name">
27
+                    <el-input v-model="form.name" placeholder=""></el-input>
28
+                </el-form-item>
29
+                <el-form-item class="width100" label="既往史 : " prop="name">
30
+                    <el-input v-model="form.name" placeholder=""></el-input>
31
+                </el-form-item>
32
+                <el-form-item class="width50" label="药品规格 : " prop="name">
33
+                    <el-input v-model="form.name" placeholder="" style="width:180px;"></el-input>
34
+                    <el-select v-model="value" style="width:180px;margin-left:9px;" placeholder="请选择">
35
+                        <el-option
36
+                        v-for="item in options"
37
+                        :key="item.value"
38
+                        :label="item.label"
39
+                        :value="item.value">
40
+                        </el-option>
41
+                    </el-select>
42
+                </el-form-item>
43
+                <el-form-item class="width50" label="总量 : " prop="name">
44
+                    <el-input v-model="form.name" placeholder="" style="width:180px;"></el-input>
45
+                    <el-select v-model="value" style="width:180px;margin-left:9px;" placeholder="请选择">
46
+                        <el-option
47
+                        v-for="item in options"
48
+                        :key="item.value"
49
+                        :label="item.label"
50
+                        :value="item.value">
51
+                        </el-option>
52
+                    </el-select>
53
+                </el-form-item>
54
+                <el-form-item class="width50" label="每次量 : " prop="name">
55
+                    <el-input v-model="form.name" placeholder="" style="width:180px;"></el-input>
56
+                    <el-select v-model="value" style="width:180px;margin-left:9px;" placeholder="请选择">
57
+                        <el-option
58
+                        v-for="item in options"
59
+                        :key="item.value"
60
+                        :label="item.label"
61
+                        :value="item.value">
62
+                        </el-option>
63
+                    </el-select>
64
+                </el-form-item>
65
+                <el-form-item class="width50" label="用法 : " prop="name">
66
+                    <el-select v-model="value" style="width:100%;" placeholder="请选择">
67
+                        <el-option
68
+                        v-for="item in options"
69
+                        :key="item.value"
70
+                        :label="item.label"
71
+                        :value="item.value">
72
+                        </el-option>
73
+                    </el-select>
74
+                </el-form-item>
75
+                <el-form-item class="width50" label="执行频率 : " prop="name">
76
+                    <el-select v-model="value" style="width:100%;" placeholder="请选择">
77
+                        <el-option
78
+                        v-for="item in options"
79
+                        :key="item.value"
80
+                        :label="item.label"
81
+                        :value="item.value">
82
+                        </el-option>
83
+                    </el-select>
84
+                </el-form-item>
85
+                <el-form-item class="width50" label="天数 : " prop="name">
86
+                    <el-input v-model="form.name" placeholder=""></el-input>
87
+                </el-form-item>
88
+                <el-form-item label="限制说明 : " prop="name" style="width:100%;">
89
+                    <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="textarea"></el-input>
90
+                </el-form-item>
91
+            </el-form>
92
+        </div>
93
+        <div slot="footer" class="dialog-footer">
94
+            <el-button @click="hide">取 消</el-button>
95
+            <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
96
+        </div>
97
+    </el-dialog>         
98
+</template>
99
+
100
+<script>
101
+export default {
102
+    data(){
103
+        return{
104
+            visible:false,
105
+            form:{
106
+                name:''
107
+            },
108
+        }
109
+    },
110
+    methods:{
111
+        _close: function(done) {
112
+            // this.clear()
113
+            done()
114
+        },
115
+        clear: function() {
116
+            this.form.id = 0;
117
+            this.form.name = "";
118
+            this.form.intro = "";
119
+        },
120
+        show() {
121
+            // this.clear()
122
+            this.visible = true
123
+        },
124
+        hide() {
125
+            // this.clear()
126
+            this.visible = false
127
+        },
128
+    }
129
+}
130
+</script>
131
+
132
+<style lang="scss" scoped>
133
+.medicalRecordForm{
134
+    .width33{
135
+        width:33%;
136
+    }
137
+    .width50{
138
+        width:50%;
139
+    }
140
+    .width100{
141
+        width:100%;
142
+    }
143
+    .el-radio{
144
+        margin-right:2px;
145
+    }
146
+}
147
+</style>
148
+

+ 151 - 0
src/xt_pages/outpatientDoctorStation/components/prescription.vue View File

@@ -0,0 +1,151 @@
1
+<template>
2
+    <el-dialog
3
+        title="开处方"
4
+        width="1000px"
5
+        :visible.sync="visible"
6
+        :before-close="_close"
7
+    >
8
+        <div>
9
+            <el-form :model="form" :rules="rules" ref="form" class="perscriptionForm" label-width="140px" style="display: flex;flex-wrap: wrap;justify-content: space-between;">
10
+                <el-form-item label="透析模式:" prop="name">
11
+                    <el-input v-model="form.name" placeholder=""></el-input>
12
+                </el-form-item>
13
+                <el-form-item label="透析时长(h): " prop="name">
14
+                    <el-input v-model="form.name" placeholder=""></el-input>
15
+                </el-form-item>
16
+                <el-form-item label="透析时长(min): " prop="name">
17
+                    <el-input v-model="form.name" placeholder=""></el-input>
18
+                </el-form-item>
19
+                <el-form-item label="血流量(ml/min): " prop="name">
20
+                    <el-input v-model="form.name" placeholder=""></el-input>
21
+                </el-form-item>
22
+                <el-form-item label="预充量(L): " prop="name">
23
+                    <el-input v-model="form.name" placeholder=""></el-input>
24
+                </el-form-item>
25
+                <el-form-item label="目标超滤量(L): " prop="name">
26
+                    <el-input v-model="form.name" placeholder=""></el-input>
27
+                </el-form-item>
28
+                <el-form-item label="透析液配方: " prop="name">
29
+                    <el-select v-model="value" style="width:160px;" placeholder="请选择">
30
+                        <el-option
31
+                        v-for="item in options"
32
+                        :key="item.value"
33
+                        :label="item.label"
34
+                        :value="item.value">
35
+                        </el-option>
36
+                    </el-select>
37
+                </el-form-item>
38
+                <el-form-item label="抗凝剂: " prop="name">
39
+                    <el-select v-model="value" style="width:160px;" placeholder="请选择">
40
+                        <el-option
41
+                        v-for="item in options"
42
+                        :key="item.value"
43
+                        :label="item.label"
44
+                        :value="item.value">
45
+                        </el-option>
46
+                    </el-select>
47
+                </el-form-item>
48
+                <el-form-item label="首剂(mg): " prop="name">
49
+                    <el-input v-model="form.name" placeholder=""></el-input>
50
+                </el-form-item>
51
+                <el-form-item label="维持(mg/h): " prop="name">
52
+                    <el-input v-model="form.name" placeholder=""></el-input>
53
+                </el-form-item>
54
+                <el-form-item label="总量(mg): " prop="name">
55
+                    <el-input v-model="form.name" placeholder=""></el-input>
56
+                </el-form-item>
57
+                <el-form-item label="置换量(L): " prop="name">
58
+                    <el-input v-model="form.name" placeholder=""></el-input>
59
+                </el-form-item>
60
+                <el-form-item label="钾(mmol/L): " prop="name">
61
+                    <el-input v-model="form.name" placeholder=""></el-input>
62
+                </el-form-item>
63
+                <el-form-item label="钠(mmol/L): " prop="name">
64
+                    <el-input v-model="form.name" placeholder=""></el-input>
65
+                </el-form-item>
66
+                <el-form-item label="钙(mmol/L): " prop="name">
67
+                    <el-input v-model="form.name" placeholder=""></el-input>
68
+                </el-form-item>
69
+                <el-form-item label="碳酸氢盐(mmol/L): " prop="name">
70
+                    <el-input v-model="form.name" placeholder=""></el-input>
71
+                </el-form-item>
72
+                <el-form-item label="透析液流量(ml/min): " prop="name">
73
+                    <el-input v-model="form.name" placeholder=""></el-input>
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>
80
+                </el-form-item>
81
+                <el-form-item label="体液过多症状: " prop="name">
82
+                    <el-input v-model="form.name" placeholder=""></el-input>
83
+                </el-form-item>
84
+                <el-form-item label="体液过多其他症状: " prop="name">
85
+                    <el-input v-model="form.name" placeholder=""></el-input>
86
+                </el-form-item>
87
+                <el-form-item label="透析前使用特殊药品: " prop="name">
88
+                    <el-input v-model="form.name" placeholder=""></el-input>
89
+                </el-form-item>
90
+                <el-form-item label="透析前使用其他特殊药品: " prop="name">
91
+                    <el-input v-model="form.name" placeholder=""></el-input>
92
+                </el-form-item>
93
+                <el-form-item label="置换液: " prop="name">
94
+                    <el-input v-model="form.name" placeholder=""></el-input>
95
+                </el-form-item>
96
+                <el-form-item label="限制说明 : " style="width:100%;" prop="name">
97
+                    <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="textarea"></el-input>
98
+                </el-form-item>
99
+            </el-form>
100
+        </div>
101
+        <div slot="footer" class="dialog-footer">
102
+            <el-button @click="hide">取 消</el-button>
103
+            <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
104
+            <el-button type="primary">设为长期处方</el-button>
105
+        </div>
106
+    </el-dialog>         
107
+</template>
108
+
109
+<script>
110
+export default {
111
+    data(){
112
+        return{
113
+            visible:false,
114
+            form:{
115
+                name:''
116
+            },
117
+        }
118
+    },
119
+    methods:{
120
+        _close: function(done) {
121
+            // this.clear()
122
+            done()
123
+        },
124
+        clear: function() {
125
+            this.form.id = 0;
126
+            this.form.name = "";
127
+            this.form.intro = "";
128
+        },
129
+        show() {
130
+            // this.clear()
131
+            this.visible = true
132
+        },
133
+        hide() {
134
+            // this.clear()
135
+            this.visible = false
136
+        },
137
+    }
138
+}
139
+</script>
140
+
141
+<style lang="scss" scoped>
142
+.perscriptionForm{
143
+    .el-form-item{
144
+        width:33%;
145
+    }
146
+    .el-input{
147
+        width:160px;
148
+    }
149
+}
150
+</style>
151
+

+ 70 - 0
src/xt_pages/outpatientDoctorStation/components/saveTemplate.vue View File

@@ -0,0 +1,70 @@
1
+<template>
2
+    <el-dialog
3
+        title="新增医嘱"
4
+        width="600px"
5
+        :visible.sync="visible"
6
+        :before-close="_close"
7
+    >
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;">
10
+                <el-form-item label="模板名称 : " prop="name" style="width: 100%;">
11
+                    <el-input v-model="form.name" placeholder=""></el-input>
12
+                </el-form-item>
13
+                <el-form-item label="模板类型 : " prop="name" style="width: 100%;">
14
+                    <el-select v-model="value" style="width:100%;" placeholder="请选择">
15
+                        <el-option
16
+                        v-for="item in options"
17
+                        :key="item.value"
18
+                        :label="item.label"
19
+                        :value="item.value">
20
+                        </el-option>
21
+                    </el-select>
22
+                </el-form-item>
23
+                <el-form-item label="模板等级 : " prop="name" style="width: 100%;">
24
+                    <el-input v-model="form.name" placeholder=""></el-input>
25
+                </el-form-item>
26
+                <el-form-item label="创建时间 : " prop="name" style="width: 100%;">
27
+                    <el-input v-model="form.name" placeholder=""></el-input>
28
+                </el-form-item>
29
+            </el-form>
30
+        </div>
31
+        <div slot="footer" class="dialog-footer">
32
+            <el-button @click="hide">取 消</el-button>
33
+            <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
34
+        </div>
35
+    </el-dialog>         
36
+</template>
37
+
38
+<script>
39
+export default {
40
+    data(){
41
+        return{
42
+            visible:false,
43
+            form:{
44
+                name:''
45
+            },
46
+        }
47
+    },
48
+    methods:{
49
+        _close: function(done) {
50
+            // this.clear()
51
+            done()
52
+        },
53
+        clear: function() {
54
+            this.form.id = 0;
55
+            this.form.name = "";
56
+            this.form.intro = "";
57
+        },
58
+        show() {
59
+            // this.clear()
60
+            this.visible = true
61
+        },
62
+        hide() {
63
+            // this.clear()
64
+            this.visible = false
65
+        },
66
+    }
67
+}
68
+</script>
69
+
70
+

+ 93 - 0
src/xt_pages/outpatientDoctorStation/components/selectTemplate.vue View File

@@ -0,0 +1,93 @@
1
+<template>
2
+    <el-dialog
3
+        title="选择模板"
4
+        width="1000px"
5
+        :visible.sync="visible"
6
+        :before-close="_close"
7
+    >
8
+        <div style="display:flex;">
9
+            <div style="width: 121px;">
10
+                <el-table :data="tableData" border height="300" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
11
+                    <el-table-column align="center" prop="name" label="模板名称" width="120">
12
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
13
+                    </el-table-column>
14
+                </el-table> 
15
+            </div>
16
+            <el-table :data="tableData" border height="300" style="flex:1;margin-left:20px;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
17
+                <el-table-column type="selection" width="55" align="center"></el-table-column>
18
+                <el-table-column align="center" prop="name" label="医嘱内容">
19
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
20
+                </el-table-column>
21
+                <el-table-column align="center" prop="name" label="药品规格">
22
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
23
+                </el-table-column>
24
+                <el-table-column align="center" prop="name" label="开药数量">
25
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
26
+                </el-table-column>
27
+                <el-table-column align="center" prop="name" label="单次用量">
28
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
29
+                </el-table-column>
30
+                <el-table-column align="center" prop="name" label="给药途径">
31
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
32
+                </el-table-column>
33
+                <el-table-column align="center" prop="name" label="执行频率">
34
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
35
+                </el-table-column>
36
+                <el-table-column align="center" prop="name" label="天数">
37
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
38
+                </el-table-column>
39
+            </el-table> 
40
+        </div>
41
+        <div slot="footer" class="dialog-footer">
42
+            <el-button @click="hide">取 消</el-button>
43
+            <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
44
+        </div>
45
+    </el-dialog>         
46
+</template>
47
+
48
+<script>
49
+export default {
50
+    data(){
51
+        return{
52
+            visible:false,
53
+            tableData: [{
54
+            date: '2016-05-02',
55
+            name: '王小虎',
56
+            address: '上海市普陀区金沙江路 1518 弄'
57
+            }, {
58
+            date: '2016-05-04',
59
+            name: '王小虎',
60
+            address: '上海市普陀区金沙江路 1517 弄'
61
+            }, {
62
+            date: '2016-05-01',
63
+            name: '王小虎',
64
+            address: '上海市普陀区金沙江路 1519 弄'
65
+            }, {
66
+            date: '2016-05-03',
67
+            name: '王小虎',
68
+            address: '上海市普陀区金沙江路 1516 弄'
69
+            }]
70
+        }
71
+    },
72
+    methods:{
73
+        _close: function(done) {
74
+            // this.clear()
75
+            done()
76
+        },
77
+        clear: function() {
78
+            this.form.id = 0;
79
+            this.form.name = "";
80
+            this.form.intro = "";
81
+        },
82
+        show() {
83
+            // this.clear()
84
+            this.visible = true
85
+        },
86
+        hide() {
87
+            // this.clear()
88
+            this.visible = false
89
+        },
90
+    }
91
+}
92
+</script>
93
+

+ 97 - 0
src/xt_pages/outpatientDoctorStation/components/templateDetail.vue View File

@@ -0,0 +1,97 @@
1
+<template>
2
+    <el-dialog
3
+        title="详情"
4
+        width="1000px"
5
+        :visible.sync="visible"
6
+        :before-close="_close"
7
+    >
8
+        <el-table :data="tableData" border height="350" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
9
+            <el-table-column align="center" prop="name" label="类型">
10
+                <template slot-scope="scope">{{ scope.row.date }}</template>
11
+            </el-table-column>
12
+            <el-table-column align="center" prop="name" label="医嘱名称">
13
+                <template slot-scope="scope">{{ scope.row.date }}</template>
14
+            </el-table-column>
15
+            <el-table-column align="center" prop="name" label="组">
16
+                <template slot-scope="scope">{{ scope.row.date }}</template>
17
+            </el-table-column>
18
+            <el-table-column align="center" prop="name" label="每次量">
19
+                <template slot-scope="scope">{{ scope.row.date }}</template>
20
+            </el-table-column>
21
+            <el-table-column align="center" prop="name" label="单位/容量">
22
+                <template slot-scope="scope">{{ scope.row.date }}</template>
23
+            </el-table-column>
24
+            <el-table-column align="center" prop="name" label="用法">
25
+                <template slot-scope="scope">{{ scope.row.date }}</template>
26
+            </el-table-column>
27
+            <el-table-column align="center" prop="name" label="频率">
28
+                <template slot-scope="scope">{{ scope.row.date }}</template>
29
+            </el-table-column>
30
+            <el-table-column align="center" prop="name" label="天数">
31
+                <template slot-scope="scope">{{ scope.row.date }}</template>
32
+            </el-table-column>
33
+            <el-table-column align="center" prop="name" label="总量">
34
+                <template slot-scope="scope">{{ scope.row.date }}</template>
35
+            </el-table-column>
36
+            <el-table-column align="center" prop="name" label="限制说明">
37
+                <template slot-scope="scope">{{ scope.row.date }}</template>
38
+            </el-table-column>
39
+            <el-table-column align="center" prop="name" label="组套名称">
40
+                <template slot-scope="scope">{{ scope.row.date }}</template>
41
+            </el-table-column>
42
+        </el-table> 
43
+        <div slot="footer" class="dialog-footer">
44
+            <el-button @click="hide">取 消</el-button>
45
+            <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
46
+        </div>
47
+    </el-dialog>         
48
+</template>
49
+
50
+<script>
51
+export default {
52
+    data(){
53
+        return{
54
+            visible:false,
55
+            tableData: [{
56
+            date: '2016-05-02',
57
+            name: '王小虎',
58
+            address: '上海市普陀区金沙江路 1518 弄'
59
+            }, {
60
+            date: '2016-05-04',
61
+            name: '王小虎',
62
+            address: '上海市普陀区金沙江路 1517 弄'
63
+            }, {
64
+            date: '2016-05-01',
65
+            name: '王小虎',
66
+            address: '上海市普陀区金沙江路 1519 弄'
67
+            }, {
68
+            date: '2016-05-03',
69
+            name: '王小虎',
70
+            address: '上海市普陀区金沙江路 1516 弄'
71
+            }],
72
+            activeName:'first'
73
+        }
74
+    },
75
+    methods:{
76
+        _close: function(done) {
77
+            // this.clear()
78
+            done()
79
+        },
80
+        clear: function() {
81
+            this.form.id = 0;
82
+            this.form.name = "";
83
+            this.form.intro = "";
84
+        },
85
+        show() {
86
+            // this.clear()
87
+            this.visible = true
88
+        },
89
+        hide() {
90
+            // this.clear()
91
+            this.visible = false
92
+        },
93
+    }
94
+}
95
+</script>
96
+
97
+

+ 207 - 0
src/xt_pages/outpatientDoctorStation/doctorDesk.vue View File

@@ -0,0 +1,207 @@
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" style="display:flex">
7
+            <div class="mainLeft">
8
+                <div class="mainCell" style="justify-content: space-between;">
9
+                    <p>未就诊:<span>0</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
+                <el-table :data="tableData" border height="500" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
24
+                    <el-table-column align="center" width="40">
25
+                        <template slot-scope="scope">
26
+                            <el-popover placement="top-start" width="200" trigger="hover">
27
+                                <i slot="reference" class="el-icon-caret-bottom"></i>
28
+                            </el-popover>
29
+                        </template>
30
+                    </el-table-column>
31
+                    <el-table-column align="center" prop="name" label="姓名" width="100">
32
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
33
+                    </el-table-column>
34
+                    <el-table-column align="center" prop="name" label="姓名" width="110">
35
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
36
+                    </el-table-column>
37
+                </el-table>
38
+            </div> 
39
+            <div class="mainRight">
40
+                <div style="display:flex;justify-content: space-between;">
41
+                    <div>
42
+                        <div class="mainCell">
43
+                            <p>姓名:<span class="cellSpan"></span></p>
44
+                            <p>证件号:<span class="cellSpan"></span></p>
45
+                            <p>挂号类型:<span class="cellSpan"></span></p>
46
+                            <p>患者保险类型:<span class="cellSpan"></span></p>
47
+                        </div>
48
+                        <div class="mainCell">
49
+                            <label class="title"><span class="name">诊断</span> : </label>
50
+                            <el-input size="small" style="width:150px;margin:0 10px;" v-model="input" placeholder="请输入内容"></el-input>
51
+                            <label class="title"><span class="name">处方类型</span> : </label>
52
+                            <el-select size="small" v-model="value" placeholder="请选择" style="width:150px;margin-left:10px;">
53
+                                <el-option
54
+                                v-for="item in options"
55
+                                :key="item.value"
56
+                                :label="item.label"
57
+                                :value="item.value">
58
+                                </el-option>
59
+                            </el-select>
60
+                        </div>
61
+                    </div>
62
+                    <div class="cost">
63
+                        <p>当用费用总额:</p>
64
+                        <p>药品费用总额:</p>
65
+                    </div>
66
+                </div>
67
+                <div style="display:flex;justify-content: space-between;">
68
+                    <div class="mainCell" style="margin-bottom:10px;">
69
+                        <label class="title"><span class="name">新增</span> : </label>
70
+                        <el-button size="small" @click="open(1)" type="primary" style="margin-left:10px;">智慧医保</el-button>
71
+                        <el-button size="small" @click="open(2)" type="primary">病历</el-button>
72
+                        <el-button size="small" @click="open(3)" type="primary">新医嘱</el-button>
73
+                        <el-button size="small" @click="open(4)" type="primary">选择模板</el-button>
74
+                        <el-button size="small" @click="open(5)" type="primary">存模板</el-button>
75
+                        <el-button size="small" @click="open(6)" type="primary">开检验</el-button>
76
+                    </div>
77
+                    <div><el-button size="small" type="primary">保存打印</el-button></div>
78
+                </div>
79
+                <el-table :data="tableData" border height="500" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
80
+                    <el-table-column align="center" prop="name" label="类型">
81
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
82
+                    </el-table-column>
83
+                    <el-table-column align="center" prop="name" label="名称">
84
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
85
+                    </el-table-column>
86
+                    <el-table-column align="center" prop="name" label="规格">
87
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
88
+                    </el-table-column>
89
+                    <el-table-column align="center" prop="name" label="数量">
90
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
91
+                    </el-table-column>
92
+                    <el-table-column align="center" prop="name" label="单次用量">
93
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
94
+                    </el-table-column>
95
+                    <el-table-column align="center" prop="name" label="操作">
96
+                        <template slot-scope="scope">
97
+                            <el-button size="mini" type="danger">删除</el-button>
98
+                        </template>
99
+                    </el-table-column>
100
+                </el-table>
101
+            </div>
102
+        </div>
103
+        <prescription ref='prescription'></prescription>
104
+        <medicalRecord ref='medicalRecord'></medicalRecord>
105
+        <advice ref='advice'></advice>
106
+        <select-template ref='selectTemplate'></select-template>
107
+        <save-template ref='saveTemplate'></save-template>
108
+        <inspection ref='inspection'></inspection>
109
+    </div>
110
+</template>
111
+
112
+<script>
113
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
114
+import prescription from './components/prescription'
115
+import medicalRecord from './components/medicalRecord'
116
+import advice from './components/advice'
117
+import selectTemplate from './components/selectTemplate'
118
+import saveTemplate from './components/saveTemplate'
119
+import inspection from './components/inspection'
120
+export default {
121
+    components:{
122
+        BreadCrumb,
123
+        prescription,
124
+        medicalRecord,
125
+        advice,
126
+        selectTemplate,
127
+        saveTemplate,
128
+        inspection
129
+    },
130
+    data(){
131
+        return{
132
+            crumbs: [
133
+                { path: false, name: '门诊医生站' },
134
+                { path: false, name: '医生工作台' }
135
+            ],
136
+            tableData: [{
137
+            date: '2016-05-02',
138
+            name: '王小虎',
139
+            address: '上海市普陀区金沙江路 1518 弄'
140
+            }, {
141
+            date: '2016-05-04',
142
+            name: '王小虎',
143
+            address: '上海市普陀区金沙江路 1517 弄'
144
+            }, {
145
+            date: '2016-05-01',
146
+            name: '王小虎',
147
+            address: '上海市普陀区金沙江路 1519 弄'
148
+            }, {
149
+            date: '2016-05-03',
150
+            name: '王小虎',
151
+            address: '上海市普陀区金沙江路 1516 弄'
152
+            }]
153
+        }
154
+    },
155
+    methods:{
156
+        open(index){
157
+            if(index == 1){
158
+                this.$refs.prescription.show()
159
+            }else if(index == 2){
160
+                this.$refs.medicalRecord.show()
161
+            }else if(index == 3){
162
+                this.$refs.advice.show()
163
+            }else if(index == 4){
164
+                this.$refs.selectTemplate.show()
165
+            }else if(index == 5){
166
+                this.$refs.saveTemplate.show()
167
+            }else if(index == 6){
168
+                this.$refs.inspection.show()
169
+            }
170
+            
171
+        }
172
+    }
173
+}
174
+</script>
175
+
176
+<style lang="scss" scoped>
177
+.mainCell{
178
+    height:36px;
179
+    display: flex;
180
+    align-items: center;
181
+}
182
+.mainLeft{
183
+    width:250px;
184
+    .el-radio{
185
+        margin-right:20px;
186
+    }
187
+    
188
+}
189
+.mainRight{
190
+    margin-left:20px;
191
+    flex:1;
192
+    .cellSpan{
193
+        min-width: 80px;
194
+        display: inline-block;
195
+        margin-right: 10px;
196
+    }
197
+    .cost{
198
+        border: 1px solid #ccc;
199
+        height: 60px;
200
+        display: flex;
201
+        width: 200px;
202
+        flex-direction: column;
203
+        justify-content: space-around;
204
+        padding: 0 10px;
205
+    }
206
+}
207
+</style>

+ 100 - 0
src/xt_pages/outpatientDoctorStation/pastInquiries.vue View File

@@ -0,0 +1,100 @@
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="cell clearfix">
8
+                <el-input size="small" style="width:150px;" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
9
+                <el-button size="small" style="margin:0 10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
10
+                <el-date-picker v-model="selected_date" prefix-icon="el-icon-date" @change="handleScheduleDateChange" :editable="false" :clearable="false" style="width: 196px;margin-right:10px;" type="date" placeholder="选择日期时间" align="right" ></el-date-picker>
11
+            </div>
12
+            <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>
13
+                <el-table-column align="center" width="60" label="序号">
14
+                    <template slot-scope="scope">
15
+                        1
16
+                    </template>
17
+                </el-table-column>
18
+                <el-table-column align="center" prop="name" label="姓名" width="100">
19
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
20
+                </el-table-column>
21
+                <el-table-column align="center" prop="name" label="处方日期" width="110">
22
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
23
+                </el-table-column>
24
+                <el-table-column align="center" prop="name" label="患者类型">
25
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
26
+                </el-table-column>
27
+                <el-table-column align="center" prop="name" label="处方号">
28
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
29
+                </el-table-column>
30
+                <el-table-column align="center" prop="name" label="开立医生">
31
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
32
+                </el-table-column>
33
+                <el-table-column align="center" prop="name" label="诊断">
34
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
35
+                </el-table-column>
36
+                <el-table-column align="center" prop="name" label="状态">
37
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
38
+                </el-table-column>
39
+                <el-table-column align="center" prop="name" label="操作" width="100">
40
+                    <template slot-scope="scope">
41
+                        <el-button size="mini" type="danger" @click="handerDelete">删除</el-button>
42
+                    </template>
43
+                </el-table-column>
44
+            </el-table>
45
+            <el-pagination
46
+                @size-change="handleSizeChange"
47
+                @current-change="handleCurrentChange"
48
+                :page-sizes="[10, 50, 100]"
49
+                :page-size="10"
50
+                background
51
+                style="margin-top:20px;float: right"
52
+                layout="total, sizes, prev, pager, next, jumper"
53
+                :total="total"
54
+            >
55
+            </el-pagination>
56
+            <inquiries-detail ref="inquiriesDetail"></inquiries-detail>
57
+        </div>
58
+    </div>
59
+</template>
60
+
61
+<script>
62
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
63
+import inquiriesDetail from './components/inquiriesDetail'
64
+export default {
65
+    components:{
66
+        BreadCrumb,
67
+        inquiriesDetail
68
+    },
69
+    data(){
70
+        return{
71
+            crumbs: [
72
+                { path: false, name: '门诊医生站' },
73
+                { path: false, name: '既往查询' }
74
+            ],
75
+            tableData: [{
76
+            date: '2016-05-02',
77
+            name: '王小虎',
78
+            address: '上海市普陀区金沙江路 1518 弄'
79
+            }, {
80
+            date: '2016-05-04',
81
+            name: '王小虎',
82
+            address: '上海市普陀区金沙江路 1517 弄'
83
+            }, {
84
+            date: '2016-05-01',
85
+            name: '王小虎',
86
+            address: '上海市普陀区金沙江路 1519 弄'
87
+            }, {
88
+            date: '2016-05-03',
89
+            name: '王小虎',
90
+            address: '上海市普陀区金沙江路 1516 弄'
91
+            }]
92
+        }
93
+    },
94
+    methods:{
95
+        handerDelete(){
96
+            this.$refs.inquiriesDetail.show()
97
+        }
98
+    }
99
+}
100
+</script>

+ 99 - 0
src/xt_pages/outpatientDoctorStation/templateManagement.vue View File

@@ -0,0 +1,99 @@
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="cell clearfix">
8
+                <el-input size="small" style="width:150px;" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
9
+                <el-button size="small" style="margin:0 10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
10
+                <label class="title"><span class="name">模板类型</span> : </label>
11
+                <el-select size="small" v-model="value" placeholder="请选择" style="width:150px;margin-left:10px;">
12
+                    <el-option
13
+                    v-for="item in options"
14
+                    :key="item.value"
15
+                    :label="item.label"
16
+                    :value="item.value">
17
+                    </el-option>
18
+                </el-select>
19
+            </div>
20
+            <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>
21
+                <el-table-column align="center" width="60" label="序号">
22
+                    <template slot-scope="scope">
23
+                        1
24
+                    </template>
25
+                </el-table-column>
26
+                <el-table-column align="center" prop="name" label="模板名称" width="100">
27
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
28
+                </el-table-column>
29
+                <el-table-column align="center" prop="name" label="模板类型" width="110">
30
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
31
+                </el-table-column>
32
+                <el-table-column align="center" prop="name" label="模板等级">
33
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
34
+                </el-table-column>
35
+                <el-table-column align="center" prop="name" label="创建时间">
36
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
37
+                </el-table-column>
38
+                <el-table-column align="center" prop="name" label="操作" width="100">
39
+                    <template slot-scope="scope">
40
+                        <el-button size="mini" type="primary" @click="handerDetail">编辑</el-button>
41
+                    </template>
42
+                </el-table-column>
43
+            </el-table>
44
+            <el-pagination
45
+                @size-change="handleSizeChange"
46
+                @current-change="handleCurrentChange"
47
+                :page-sizes="[10, 50, 100]"
48
+                :page-size="10"
49
+                background
50
+                style="margin-top:20px;float: right"
51
+                layout="total, sizes, prev, pager, next, jumper"
52
+                :total="total"
53
+            >
54
+            </el-pagination>
55
+            <template-detail ref="templateDetail"></template-detail>
56
+        </div>
57
+    </div>
58
+</template>
59
+
60
+<script>
61
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
62
+import templateDetail from './components/templateDetail'
63
+export default {
64
+    components:{
65
+        BreadCrumb,
66
+        templateDetail
67
+    },
68
+    data(){
69
+        return{
70
+            crumbs: [
71
+                { path: false, name: '门诊医生站' },
72
+                { path: false, name: '模板管理' }
73
+            ],
74
+            tableData: [{
75
+            date: '2016-05-02',
76
+            name: '王小虎',
77
+            address: '上海市普陀区金沙江路 1518 弄'
78
+            }, {
79
+            date: '2016-05-04',
80
+            name: '王小虎',
81
+            address: '上海市普陀区金沙江路 1517 弄'
82
+            }, {
83
+            date: '2016-05-01',
84
+            name: '王小虎',
85
+            address: '上海市普陀区金沙江路 1519 弄'
86
+            }, {
87
+            date: '2016-05-03',
88
+            name: '王小虎',
89
+            address: '上海市普陀区金沙江路 1516 弄'
90
+            }]
91
+        }
92
+    },
93
+    methods:{
94
+        handerDetail(){
95
+            this.$refs.templateDetail.show()
96
+        }
97
+    }
98
+}
99
+</script>

+ 101 - 0
src/xt_pages/outpatientPharmacy/dispensingInquiry.vue View File

@@ -0,0 +1,101 @@
1
+<template>
2
+    <div class="main-contain outpatientChargesManagement">
3
+        <div class="position">
4
+            <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+        </div>
6
+        <div class="app-container">
7
+            <div class="cell clearfix">
8
+                <el-input size="small" @keyup.enter.native='searchAction' style="width:150px;" v-model.trim="search_input" class="filter-item"/>
9
+                <el-button size="small" style="margin:0 10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
10
+                <el-date-picker v-model="selected_date" prefix-icon="el-icon-date" @change="handleScheduleDateChange" :editable="false" :clearable="false" style="width: 196px;" type="date" placeholder="选择日期时间" align="right" size="small"></el-date-picker>
11
+            </div>
12
+            <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>
13
+                <el-table-column align="center" prop="name" label="序号">
14
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
15
+                </el-table-column>
16
+                <el-table-column align="center" prop="name" label="药品名称">
17
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
18
+                </el-table-column>
19
+                <el-table-column align="center" prop="name" label="患者姓名">
20
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
21
+                </el-table-column>
22
+                <el-table-column align="center" prop="name" label="处方号">
23
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
24
+                </el-table-column>
25
+                <el-table-column align="center" prop="name" label="数量">
26
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
27
+                </el-table-column>
28
+                <el-table-column align="center" prop="name" label="用量用法">
29
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
30
+                </el-table-column>
31
+                <el-table-column align="center" prop="name" label="规格">
32
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
33
+                </el-table-column>
34
+                <el-table-column align="center" prop="name" label="单位">
35
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
36
+                </el-table-column>
37
+                <el-table-column align="center" prop="name" label="数量">
38
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
39
+                </el-table-column>
40
+                <el-table-column align="center" prop="name" label="金额">
41
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
42
+                </el-table-column>
43
+                <el-table-column align="center" prop="name" label="操作时间">
44
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
45
+                </el-table-column>
46
+                <el-table-column align="center" prop="name" label="操作人">
47
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
48
+                </el-table-column>
49
+            </el-table>
50
+            <el-pagination
51
+                @size-change="handleSizeChange"
52
+                @current-change="handleCurrentChange"
53
+                :page-sizes="[10, 50, 100]"
54
+                :page-size="10"
55
+                background
56
+                style="margin-top:20px;float: right"
57
+                layout="total, sizes, prev, pager, next, jumper"
58
+                :total="total"
59
+            >
60
+            </el-pagination>
61
+        </div>
62
+    </div>
63
+</template>
64
+
65
+
66
+<script>
67
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
68
+export default {
69
+    components:{
70
+        BreadCrumb,
71
+    },
72
+    data(){
73
+        return{
74
+            crumbs: [
75
+                { path: false, name: '门诊药房' },
76
+                { path: false, name: '门诊配发药' }
77
+            ],
78
+            tableData: [{
79
+            date: '2016-05-02',
80
+            name: '王小虎',
81
+            address: '上海市普陀区金沙江路 1518 弄'
82
+            }, {
83
+            date: '2016-05-04',
84
+            name: '王小虎',
85
+            address: '上海市普陀区金沙江路 1517 弄'
86
+            }, {
87
+            date: '2016-05-01',
88
+            name: '王小虎',
89
+            address: '上海市普陀区金沙江路 1519 弄'
90
+            }, {
91
+            date: '2016-05-03',
92
+            name: '王小虎',
93
+            address: '上海市普陀区金沙江路 1516 弄'
94
+            }],
95
+        }
96
+    },
97
+    methods:{
98
+    }
99
+}
100
+</script>
101
+

+ 107 - 0
src/xt_pages/outpatientPharmacy/drugReturnInquiry.vue View File

@@ -0,0 +1,107 @@
1
+<template>
2
+    <div class="main-contain outpatientChargesManagement">
3
+        <div class="position">
4
+            <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+        </div>
6
+        <div class="app-container">
7
+            <div style="display:flex;justify-content: space-between;">
8
+                <div class="cell clearfix">
9
+                    <el-input size="small" @keyup.enter.native='searchAction' style="width:150px;" v-model.trim="search_input" class="filter-item"/>
10
+                    <el-button size="small" style="margin:0 10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
11
+                    <el-date-picker v-model="selected_date" prefix-icon="el-icon-date" @change="handleScheduleDateChange" :editable="false" :clearable="false" style="width: 196px;" type="date" placeholder="选择日期时间" align="right" size="small"></el-date-picker>
12
+                </div>
13
+                <div>
14
+                    <el-button size="small">打印</el-button>
15
+                    <el-button size="small" type="primary">报表下载</el-button>
16
+                </div>
17
+            </div>
18
+            <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>
19
+                <el-table-column align="center" prop="name" label="序号">
20
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
21
+                </el-table-column>
22
+                <el-table-column align="center" prop="name" label="药品名称">
23
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
24
+                </el-table-column>
25
+                <el-table-column align="center" prop="name" label="患者姓名">
26
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
27
+                </el-table-column>
28
+                <el-table-column align="center" prop="name" label="处方号">
29
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
30
+                </el-table-column>
31
+                <el-table-column align="center" prop="name" label="数量">
32
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
33
+                </el-table-column>
34
+                <el-table-column align="center" prop="name" label="用量用法">
35
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
36
+                </el-table-column>
37
+                <el-table-column align="center" prop="name" label="规格">
38
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
39
+                </el-table-column>
40
+                <el-table-column align="center" prop="name" label="单位">
41
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
42
+                </el-table-column>
43
+                <el-table-column align="center" prop="name" label="数量">
44
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
45
+                </el-table-column>
46
+                <el-table-column align="center" prop="name" label="金额">
47
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
48
+                </el-table-column>
49
+                <el-table-column align="center" prop="name" label="操作时间">
50
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
51
+                </el-table-column>
52
+                <el-table-column align="center" prop="name" label="操作人">
53
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
54
+                </el-table-column>
55
+            </el-table>
56
+            <el-pagination
57
+                @size-change="handleSizeChange"
58
+                @current-change="handleCurrentChange"
59
+                :page-sizes="[10, 50, 100]"
60
+                :page-size="10"
61
+                background
62
+                style="margin-top:20px;float: right"
63
+                layout="total, sizes, prev, pager, next, jumper"
64
+                :total="total"
65
+            >
66
+            </el-pagination>
67
+        </div>
68
+    </div>
69
+</template>
70
+
71
+
72
+<script>
73
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
74
+export default {
75
+    components:{
76
+        BreadCrumb,
77
+    },
78
+    data(){
79
+        return{
80
+            crumbs: [
81
+                { path: false, name: '门诊药房' },
82
+                { path: false, name: '门诊配发药' }
83
+            ],
84
+            tableData: [{
85
+            date: '2016-05-02',
86
+            name: '王小虎',
87
+            address: '上海市普陀区金沙江路 1518 弄'
88
+            }, {
89
+            date: '2016-05-04',
90
+            name: '王小虎',
91
+            address: '上海市普陀区金沙江路 1517 弄'
92
+            }, {
93
+            date: '2016-05-01',
94
+            name: '王小虎',
95
+            address: '上海市普陀区金沙江路 1519 弄'
96
+            }, {
97
+            date: '2016-05-03',
98
+            name: '王小虎',
99
+            address: '上海市普陀区金沙江路 1516 弄'
100
+            }],
101
+        }
102
+    },
103
+    methods:{
104
+    }
105
+}
106
+</script>
107
+

+ 133 - 0
src/xt_pages/outpatientPharmacy/pharmacyFormula.vue View File

@@ -0,0 +1,133 @@
1
+<template>
2
+    <div class="main-contain outpatientChargesManagement">
3
+        <div class="position">
4
+            <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+        </div>
6
+        <div class="app-container">
7
+            <div style="display:flex;">
8
+                <div class="formulaLeft">
9
+                    <div class="mainCell" style="margin-bottom:10px;">
10
+                        <el-input size="small" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
11
+                        <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
12
+                    </div>
13
+                    <el-table :data="tableData" border height="500" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
14
+                        <el-table-column align="center" prop="name" label="处方号" width="100">
15
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
16
+                        </el-table-column>
17
+                        <el-table-column align="center" prop="name" label="姓名" width="99">
18
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
19
+                        </el-table-column>
20
+                        <el-table-column align="center" prop="name" label="操作" width="100">
21
+                            <template slot-scope="scope">
22
+                                <el-button size="mini" type="primary">发药</el-button>
23
+                            </template>
24
+                        </el-table-column>
25
+                    </el-table>
26
+                </div>
27
+                <div style="flex:1;margin-left:20px;">
28
+                    <el-button size="small" style="margin-bottom:10px;float:right" type="primary" @click="visible = true">出库设置</el-button>
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>
30
+                        <el-table-column align="center" prop="name" label="药品名称">
31
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
32
+                        </el-table-column>
33
+                        <el-table-column align="center" prop="name" label="生产厂商">
34
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
35
+                        </el-table-column>
36
+                        <el-table-column align="center" prop="name" label="单位">
37
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
38
+                        </el-table-column>
39
+                        <el-table-column align="center" prop="name" label="单价">
40
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
41
+                        </el-table-column>
42
+                        <el-table-column align="center" prop="name" label="数量">
43
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
44
+                        </el-table-column>
45
+                        <el-table-column align="center" prop="name" label="总价">
46
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
47
+                        </el-table-column>
48
+                        <el-table-column align="center" prop="name" label="天数">
49
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
50
+                        </el-table-column>
51
+                        <el-table-column align="center" prop="name" label="总量">
52
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
53
+                        </el-table-column>
54
+                        <el-table-column align="center" prop="name" label="自付比例">
55
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
56
+                        </el-table-column>
57
+                    </el-table>
58
+                </div>
59
+            </div>
60
+            <el-dialog
61
+                title="出库设置"
62
+                width="600px"
63
+                :visible.sync="visible"
64
+                :before-close="_close"
65
+            >
66
+                <div>
67
+                    <el-form :model="form" :rules="rules" class="adviceForm" ref="form" label-width="140px" style="display: flex;flex-wrap: wrap;justify-content: space-between;">
68
+                        <el-form-item label="药品出库扣减方式 : " prop="name">
69
+                            <el-radio v-model="radio" label="1">启用系统自动扣减</el-radio>
70
+                            <el-radio v-model="radio" label="2">从药房发药按钮药品扣减</el-radio>
71
+                        </el-form-item>
72
+                    </el-form>
73
+                </div>
74
+                <div slot="footer" class="dialog-footer">
75
+                    <el-button @click="visible = false">取 消</el-button>
76
+                    <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
77
+                </div>
78
+            </el-dialog>  
79
+        </div>
80
+    </div>
81
+</template>
82
+
83
+
84
+<script>
85
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
86
+export default {
87
+    components:{
88
+        BreadCrumb,
89
+    },
90
+    data(){
91
+        return{
92
+            crumbs: [
93
+                { path: false, name: '门诊药房' },
94
+                { path: false, name: '门诊配发药' }
95
+            ],
96
+            tableData: [{
97
+            date: '2016-05-02',
98
+            name: '王小虎',
99
+            address: '上海市普陀区金沙江路 1518 弄'
100
+            }, {
101
+            date: '2016-05-04',
102
+            name: '王小虎',
103
+            address: '上海市普陀区金沙江路 1517 弄'
104
+            }, {
105
+            date: '2016-05-01',
106
+            name: '王小虎',
107
+            address: '上海市普陀区金沙江路 1519 弄'
108
+            }, {
109
+            date: '2016-05-03',
110
+            name: '王小虎',
111
+            address: '上海市普陀区金沙江路 1516 弄'
112
+            }],
113
+            visible:false
114
+        }
115
+    },
116
+    methods:{
117
+        _close: function(done) {
118
+            done()
119
+        },
120
+    }
121
+}
122
+</script>
123
+
124
+
125
+
126
+<style lang="scss" scoped>
127
+.formulaLeft{
128
+    width:300px;
129
+    .mainCell{
130
+        display: flex;
131
+    }
132
+}
133
+</style>

+ 110 - 0
src/xt_pages/outpatientPharmacy/prescriptionDrugReturn.vue View File

@@ -0,0 +1,110 @@
1
+<template>
2
+    <div class="main-contain outpatientChargesManagement">
3
+        <div class="position">
4
+            <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+        </div>
6
+        <div class="app-container">
7
+            <div style="display:flex;">
8
+                <div class="formulaLeft">
9
+                    <div class="mainCell" style="margin-bottom:10px;">
10
+                        <el-input size="small" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
11
+                        <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
12
+                    </div>
13
+                    <el-table :data="tableData" border height="500" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
14
+                        <el-table-column align="center" prop="name" label="处方号" width="100">
15
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
16
+                        </el-table-column>
17
+                        <el-table-column align="center" prop="name" label="姓名" width="99">
18
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
19
+                        </el-table-column>
20
+                        <el-table-column align="center" prop="name" label="操作" width="100">
21
+                            <template slot-scope="scope">
22
+                                <el-button size="mini" type="danger">退药</el-button>
23
+                            </template>
24
+                        </el-table-column>
25
+                    </el-table>
26
+                </div>
27
+                <div style="flex:1;margin-left:20px;">
28
+                    <el-date-picker v-model="selected_date" prefix-icon="el-icon-date" @change="handleScheduleDateChange" :editable="false" :clearable="false" style="width: 196px;margin-bottom:10px;" type="date" placeholder="选择日期时间" align="right" size="small"></el-date-picker>
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>
30
+                        <el-table-column align="center" prop="name" label="药品名称">
31
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
32
+                        </el-table-column>
33
+                        <el-table-column align="center" prop="name" label="生产厂商">
34
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
35
+                        </el-table-column>
36
+                        <el-table-column align="center" prop="name" label="单位">
37
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
38
+                        </el-table-column>
39
+                        <el-table-column align="center" prop="name" label="单价">
40
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
41
+                        </el-table-column>
42
+                        <el-table-column align="center" prop="name" label="数量">
43
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
44
+                        </el-table-column>
45
+                        <el-table-column align="center" prop="name" label="总价">
46
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
47
+                        </el-table-column>
48
+                        <el-table-column align="center" prop="name" label="天数">
49
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
50
+                        </el-table-column>
51
+                        <el-table-column align="center" prop="name" label="总量">
52
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
53
+                        </el-table-column>
54
+                        <el-table-column align="center" prop="name" label="自付比例">
55
+                            <template slot-scope="scope">{{ scope.row.date }}</template>
56
+                        </el-table-column>
57
+                    </el-table>
58
+                </div>
59
+            </div>
60
+        </div>
61
+    </div>
62
+</template>
63
+
64
+
65
+<script>
66
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
67
+export default {
68
+    components:{
69
+        BreadCrumb,
70
+    },
71
+    data(){
72
+        return{
73
+            crumbs: [
74
+                { path: false, name: '门诊药房' },
75
+                { path: false, name: '门诊配发药' }
76
+            ],
77
+            tableData: [{
78
+            date: '2016-05-02',
79
+            name: '王小虎',
80
+            address: '上海市普陀区金沙江路 1518 弄'
81
+            }, {
82
+            date: '2016-05-04',
83
+            name: '王小虎',
84
+            address: '上海市普陀区金沙江路 1517 弄'
85
+            }, {
86
+            date: '2016-05-01',
87
+            name: '王小虎',
88
+            address: '上海市普陀区金沙江路 1519 弄'
89
+            }, {
90
+            date: '2016-05-03',
91
+            name: '王小虎',
92
+            address: '上海市普陀区金沙江路 1516 弄'
93
+            }],
94
+        }
95
+    },
96
+    methods:{
97
+    }
98
+}
99
+</script>
100
+
101
+
102
+
103
+<style lang="scss" scoped>
104
+.formulaLeft{
105
+    width:300px;
106
+    .mainCell{
107
+        display: flex;
108
+    }
109
+}
110
+</style>

+ 193 - 0
src/xt_pages/outpatientRegistration/index.vue View File

@@ -0,0 +1,193 @@
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="nameTitle">患者基本信息:</div>
8
+            <div class="formMain">
9
+                <el-form class="basicForm" ref="form" :model="form" label-width="80px">
10
+                    <el-form-item label="结算类型">
11
+                        <el-select v-model="value" placeholder="请选择">
12
+                            <el-option
13
+                            v-for="item in options"
14
+                            :key="item.value"
15
+                            :label="item.label"
16
+                            :value="item.value">
17
+                            </el-option>
18
+                        </el-select>
19
+                    </el-form-item>
20
+                    <el-form-item class="specialFormItem" label="医保卡号">
21
+                        <el-input v-model="form.name"></el-input>
22
+                        <el-button type="primary">读卡</el-button>
23
+                    </el-form-item>
24
+                    <el-form-item label="患者姓名">
25
+                        <el-input v-model="form.name"></el-input>
26
+                    </el-form-item>
27
+                    <el-form-item label="性别">
28
+                        <el-select v-model="value" placeholder="请选择">
29
+                            <el-option
30
+                            v-for="item in options"
31
+                            :key="item.value"
32
+                            :label="item.label"
33
+                            :value="item.value">
34
+                            </el-option>
35
+                        </el-select>
36
+                    </el-form-item>
37
+                    <el-form-item label="证件类型">
38
+                        <el-select v-model="value" placeholder="请选择">
39
+                            <el-option
40
+                            v-for="item in options"
41
+                            :key="item.value"
42
+                            :label="item.label"
43
+                            :value="item.value">
44
+                            </el-option>
45
+                        </el-select>
46
+                    </el-form-item>
47
+                    <el-form-item label="医疗类别">
48
+                        <el-select v-model="value" placeholder="请选择">
49
+                            <el-option
50
+                            v-for="item in options"
51
+                            :key="item.value"
52
+                            :label="item.label"
53
+                            :value="item.value">
54
+                            </el-option>
55
+                        </el-select>
56
+                    </el-form-item>
57
+                    <el-form-item label="出生日期">
58
+                        <el-date-picker v-model="value1" type="date" placeholder="选择日期"></el-date-picker>
59
+                    </el-form-item>
60
+                    <el-form-item label="年龄">
61
+                        <el-input v-model="form.name"></el-input>
62
+                    </el-form-item>
63
+                    <el-form-item label="证件号码">
64
+                        <el-input v-model="form.name"></el-input>
65
+                    </el-form-item>
66
+                </el-form>
67
+            </div>
68
+            <div class="nameTitle">患者挂号信息:</div>
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="value" placeholder="请选择">
73
+                            <el-option
74
+                            v-for="item in options"
75
+                            :key="item.value"
76
+                            :label="item.label"
77
+                            :value="item.value">
78
+                            </el-option>
79
+                        </el-select>
80
+                    </el-form-item>
81
+                    <el-form-item label="医生">
82
+                        <el-select v-model="value" placeholder="请选择">
83
+                            <el-option
84
+                            v-for="item in options"
85
+                            :key="item.value"
86
+                            :label="item.label"
87
+                            :value="item.value">
88
+                            </el-option>
89
+                        </el-select>
90
+                    </el-form-item>
91
+                    <el-form-item label="科室">
92
+                        <el-select v-model="value" placeholder="请选择">
93
+                            <el-option
94
+                            v-for="item in options"
95
+                            :key="item.value"
96
+                            :label="item.label"
97
+                            :value="item.value">
98
+                            </el-option>
99
+                        </el-select>
100
+                    </el-form-item>
101
+                    <el-form-item>
102
+                        <el-checkbox v-model="checked">是否需要工本费</el-checkbox>
103
+                    </el-form-item>
104
+                    <el-form-item label="挂号费">
105
+                        <el-input v-model="form.name"></el-input>
106
+                    </el-form-item>
107
+                    <el-form-item label="诊疗费">
108
+                        <el-input v-model="form.name"></el-input>
109
+                    </el-form-item>
110
+                    <el-form-item label="工本费">
111
+                        <el-input v-model="form.name"></el-input>
112
+                    </el-form-item>
113
+                    <el-form-item label="合计">
114
+                        <el-input v-model="form.name"></el-input>
115
+                    </el-form-item>
116
+                    <el-form-item>
117
+                        <!-- <el-input v-model="form.name"></el-input> -->
118
+                    </el-form-item>
119
+                </el-form>
120
+                <el-button style="float:right" type="primary">挂号</el-button>
121
+            </div>
122
+            
123
+        </div>
124
+    </div>
125
+</template>
126
+
127
+<script>
128
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
129
+export default {
130
+    components:{
131
+        BreadCrumb
132
+    },
133
+    data(){
134
+        return{
135
+            crumbs: [
136
+                { path: false, name: '门诊挂号' },
137
+                { path: false, name: '门诊挂号' }
138
+            ],
139
+            form:{},
140
+            options: [{
141
+                value: '选项1',
142
+                label: '黄金糕'
143
+                }, {
144
+                value: '选项2',
145
+                label: '双皮奶'
146
+                }, {
147
+                value: '选项3',
148
+                label: '蚵仔煎'
149
+                }, {
150
+                value: '选项4',
151
+                label: '龙须面'
152
+                }, {
153
+                value: '选项5',
154
+                label: '北京烤鸭'
155
+            }],
156
+            value: ''
157
+        }
158
+    }
159
+}
160
+</script>
161
+
162
+<style lang="scss" scoped>
163
+.nameTitle{
164
+    font-weight: bold;
165
+    font-size: 16px;
166
+}
167
+.formMain{
168
+    // padding: 10px 90px;
169
+    width:80%;
170
+    margin: 0 auto;
171
+}
172
+.basicForm{
173
+    
174
+    display: flex;
175
+    flex-wrap: wrap;
176
+    justify-content: space-between;
177
+    .el-form-item{
178
+        width: 260px;
179
+    }
180
+    .specialFormItem{
181
+        width:625px;
182
+        .el-input{
183
+            min-width: 150px;
184
+        }
185
+    }
186
+    .el-select{
187
+        width: 180px;
188
+    }
189
+    .el-input{
190
+        width: 180px;
191
+    }
192
+}
193
+</style>

+ 126 - 0
src/xt_pages/outpatientRegistration/registrationHistory.vue View File

@@ -0,0 +1,126 @@
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="cell clearfix">
8
+                <el-input style="width: 180px;" @keyup.enter.native='searchAction' 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>
10
+                <el-date-picker
11
+                v-model="value1"
12
+                style="margin-right:10px;"
13
+                type="daterange"
14
+                range-separator="-"
15
+                start-placeholder="开始日期"
16
+                end-placeholder="结束日期">
17
+                </el-date-picker>
18
+                <label class="title"><span class="name">挂号类型</span> : </label>
19
+                <el-select v-model="value" placeholder="请选择" style="width:150px;">
20
+                    <el-option
21
+                    v-for="item in options"
22
+                    :key="item.value"
23
+                    :label="item.label"
24
+                    :value="item.value">
25
+                    </el-option>
26
+                </el-select>
27
+            </div>
28
+            <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>
29
+                <el-table-column align="center" prop="dialysis_no" label="序号" width="60">
30
+                    <template slot-scope="scope">1</template>
31
+                </el-table-column>
32
+                <el-table-column align="center" prop="name" label="时间" width="100">
33
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
34
+                </el-table-column>
35
+                <el-table-column align="center" prop="dialysis_no" label="姓名" width="80">
36
+                    <template slot-scope="scope">{{scope.row.name}}</template>
37
+                </el-table-column>
38
+                <el-table-column align="center" prop="name" label="科室" width="80">
39
+                    <template slot-scope="scope">{{ scope.row.name }}</template>
40
+                </el-table-column>
41
+                <el-table-column align="center" prop="name" label="挂号类型" width="90">
42
+                    <template slot-scope="scope">{{ scope.row.name }}</template>
43
+                </el-table-column>
44
+                <el-table-column align="center" prop="name" label="就诊号" width="80">
45
+                    <template slot-scope="scope">{{ scope.row.name }}</template>
46
+                </el-table-column>
47
+                <el-table-column align="center" prop="name" label="证件号">
48
+                    <template slot-scope="scope">782319204827282917</template>
49
+                </el-table-column>
50
+                <el-table-column align="center" prop="name" label="患者保险类型" width="80">
51
+                    <template slot-scope="scope">{{ scope.row.name }}</template>
52
+                </el-table-column>
53
+                <el-table-column align="center" prop="name" label="医生" width="80">
54
+                    <template slot-scope="scope">{{ scope.row.name }}</template>
55
+                </el-table-column>
56
+                <el-table-column align="center" prop="name" label="挂号费" width="70">
57
+                    <template slot-scope="scope">{{ scope.row.name }}</template>
58
+                </el-table-column>
59
+                <el-table-column align="center" prop="name" label="诊疗费" width="70">
60
+                    <template slot-scope="scope">{{ scope.row.name }}</template>
61
+                </el-table-column>
62
+                <el-table-column align="center" prop="name" label="工本费" width="70">
63
+                    <template slot-scope="scope">{{ scope.row.name }}</template>
64
+                </el-table-column>
65
+                <el-table-column align="center" prop="name" label="操作人" width="70">
66
+                    <template slot-scope="scope">{{ scope.row.name }}</template>
67
+                </el-table-column>
68
+                <el-table-column align="center" prop="name" label="操作" width="80">
69
+                    <template slot-scope="scope">
70
+                        <el-button size="mini" type="primary">编辑</el-button>
71
+                    </template>
72
+                </el-table-column>
73
+            </el-table>
74
+
75
+            <el-pagination
76
+                @size-change="handleSizeChange"
77
+                @current-change="handleCurrentChange"
78
+                :page-sizes="[10, 50, 100]"
79
+                :page-size="10"
80
+                background
81
+                style="margin-top:20px;float: right"
82
+                layout="total, sizes, prev, pager, next, jumper"
83
+                :total="total"
84
+            >
85
+            </el-pagination>
86
+        </div>
87
+    </div>
88
+</template>
89
+
90
+<script>
91
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
92
+export default {
93
+    components:{
94
+        BreadCrumb
95
+    },
96
+    data(){
97
+        return{
98
+            crumbs: [
99
+                { path: false, name: '门诊挂号' },
100
+                { path: false, name: '挂号历史' }
101
+            ],
102
+            value1:'',
103
+            tableData: [{
104
+            date: '2016-05-02',
105
+            name: '王小虎',
106
+            address: '上海市普陀区金沙江路 1518 弄'
107
+            }, {
108
+            date: '2016-05-04',
109
+            name: '王小虎',
110
+            address: '上海市普陀区金沙江路 1517 弄'
111
+            }, {
112
+            date: '2016-05-01',
113
+            name: '王小虎',
114
+            address: '上海市普陀区金沙江路 1519 弄'
115
+            }, {
116
+            date: '2016-05-03',
117
+            name: '王小虎',
118
+            address: '上海市普陀区金沙江路 1516 弄'
119
+            }]
120
+        }
121
+    }
122
+}
123
+</script>
124
+
125
+<style lang="scss" scoped>
126
+</style>

+ 13 - 14
src/xt_pages/qcd/treatmentControlAnalysis/components/TimePersonal.vue View File

@@ -70,7 +70,7 @@
70 70
       </div>
71 71
       <div style="padding-left:10px;flex:1">
72 72
         <div class="tableTitle">统计表</div>
73
-        <el-table :data="DialysisData" style="width: 100%" border :row-style="{ color: '#303133' }" 
73
+        <el-table :data="DialysisData" style="width: 100%" border :row-style="{ color: '#303133' }"
74 74
         :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
75 75
         >
76 76
           <el-table-column prop="name" label="姓名" width="140">
@@ -84,8 +84,7 @@
84 84
           </el-table-column>
85 85
           <el-table-column prop="mode_id" label="透析模式">
86 86
               <template slot-scope="scope">
87
-                <!-- <span>{{ scope.row.mode_id.join("、") }}</span> -->
88
-                <span>{{getModeIdCount(scope.row.patient_id)}}</span>
87
+                <span>{{ scope.row.mode_id.join("、")}}</span>
89 88
               </template>
90 89
            </el-table-column>
91 90
           <el-table-column prop="address" label="透析总次数" width="140">
@@ -141,7 +140,7 @@ export default {
141 140
           let threeMonths = new Date(new Date().setFullYear(new Date().getFullYear()-1)).getTime() - 24 * 3600 * 1000;
142 141
           return time.getTime() > Date.now() || time.getTime() < threeMonths;;
143 142
         }
144
-      }, 
143
+      },
145 144
       patient_id:0,
146 145
       modeIdCount:[],
147 146
     };
@@ -155,7 +154,7 @@ export default {
155 154
       } else {
156 155
         this.getDialysisList()
157 156
       }
158
-      
157
+
159 158
     },
160 159
     changeEndTime(val) {
161 160
       var time =
@@ -195,13 +194,13 @@ export default {
195 194
          if(response.data.state === 1){
196 195
           var list = response.data.data.list
197 196
           var totallist  =  response.data.data.totallist
198
-          this.total = totallist  
197
+          this.total = totallist
199 198
           var prescriptionList = response.data.data.prescriptionList
200
-         
199
+
201 200
           this.getModeId(prescriptionList)
202 201
           var count = response.data.data.count
203 202
           this.DialysisCount = count
204
-          
203
+
205 204
           var modeIdCount = response.data.data.modeIdCount
206 205
           console.log("modeidcount=====",modeIdCount)
207 206
           for(let i=0;i<modeIdCount.length;i++){
@@ -280,7 +279,7 @@ export default {
280 279
             }
281 280
           })
282 281
           let list = Object.values(dataInfo)
283
-          // console.log("arr",list)    
282
+          // console.log("arr",list)
284 283
           list.map(item => {
285 284
             for (let i = 0; i < prescriptionList.length; i++) {
286 285
               if (item.patient_id === prescriptionList[i].patient_id) {
@@ -347,7 +346,7 @@ export default {
347 346
          }
348 347
        })
349 348
       }
350
-    
349
+
351 350
     },
352 351
     unique(arr) {
353 352
         const res = new Map();
@@ -381,7 +380,7 @@ export default {
381 380
             // console.log("total",total)
382 381
           }
383 382
        })
384
-     
383
+
385 384
     },
386 385
     getModeId(patients){
387 386
       for(let i=0;i<patients.length;i++){
@@ -457,10 +456,10 @@ export default {
457 456
         }
458 457
         let str = ''
459 458
         arr.map(item => {
460
-          str += item.mode_id + '(' + item.Count + '次) 、' 
459
+          str += item.mode_id + '(' + item.Count + '次) 、'
461 460
         })
462 461
         var strs = str.substring(0, str.length - 1)
463
-       
462
+
464 463
         return strs
465 464
       }
466 465
   },
@@ -485,7 +484,7 @@ export default {
485 484
       (nowMonth < 10 ? "0" + nowMonth : nowMonth) +
486 485
       "-" +
487 486
       (nowDay < 10 ? "0" + nowDay : nowDay);
488
-    
487
+
489 488
      //获取该机构下的所有患者
490 489
      this.getCurrentOrgPatients()
491 490
      //统计列表

+ 0 - 0
src/xt_pages/sign/lineUp.vue View File


+ 0 - 0
src/xt_pages/sign/signIn.vue View File


+ 111 - 56
src/xt_pages/stock/Dialog/goodInfoDailog.vue View File

@@ -5,11 +5,12 @@
5 5
              :close-on-click-modal="isClose"
6 6
              :close-on-press-escape="isClose">
7 7
 
8
-    <el-tabs v-model="activeName" >
8
+    <el-tabs v-model="activeName">
9 9
       <el-tab-pane label="基础数据" name="first">
10 10
         <div>
11 11
           <!--:rules="rules"-->
12
-          <el-form :model="form"  ref="form" :rules="rules" label-width="100px" style="display: flex;flex-wrap: wrap;justify-content: space-between;">
12
+          <el-form :model="form" ref="form" :rules="rules" label-width="100px"
13
+                   style="display: flex;flex-wrap: wrap;justify-content: space-between;">
13 14
             <el-form-item label="耗材名称 : " prop="good_name" style="width:100%">
14 15
               <el-input v-model="form.good_name" placeholder="" maxlength="30"></el-input>
15 16
             </el-form-item>
@@ -52,7 +53,7 @@
52 53
             <el-form-item label="规格型号 : " prop="specification_name" style="width:100%">
53 54
               <el-input v-model="form.specification_name" placeholder="" maxlength="30"></el-input>
54 55
             </el-form-item>
55
-            <el-form-item label="生产厂商 : " prop="manufacturer"  style="width:100%">
56
+            <el-form-item label="生产厂商 : " prop="manufacturer" style="width:100%">
56 57
               <el-select v-model="form.manufacturer" style="width:100%" placeholder="请选择">
57 58
                 <el-option
58 59
                   v-for="item,index in form.manufacturers"
@@ -82,7 +83,8 @@
82 83
               <el-input v-model="form.stock_warn_count" style="width:160px;" placeholder="" maxlength="30"></el-input>
83 84
             </el-form-item>
84 85
             <el-form-item label="医保编码 : " prop="medical_insurance_number">
85
-              <el-input v-model="form.medical_insurance_number" style="width:160px;" placeholder="" maxlength="30"></el-input>
86
+              <el-input v-model="form.medical_insurance_number" style="width:160px;" placeholder=""
87
+                        maxlength="30"></el-input>
86 88
             </el-form-item>
87 89
             <el-form-item label="是否特病目录:" prop="is_special_diseases">
88 90
               <el-select v-model="form.is_special_diseases" style="width:160px;" placeholder="请选择">
@@ -115,17 +117,23 @@
115 117
               </el-select>
116 118
             </el-form-item>
117 119
             <!--<el-form-item label="代理商 : " prop="name" style="visibility: hidden;">-->
118
-              <!--<el-input style="width:160px;" v-model="form.agent" placeholder="" maxlength="30"></el-input>-->
120
+            <!--<el-input style="width:160px;" v-model="form.agent" placeholder="" maxlength="30"></el-input>-->
119 121
             <!--</el-form-item>-->
120 122
 
121 123
 
122
-
123 124
             <el-form-item label="状态 : " prop="good_status">
124
-              <el-radio-group v-model="form.good_status">
125
-                <el-radio :label="1">停用</el-radio>
126
-                <el-radio :label="2">收费</el-radio>
127
-              </el-radio-group>
125
+              <!--<el-radio-group v-model="form.good_status">-->
126
+              <!--<el-radio :label="1">停用</el-radio>-->
127
+              <!--<el-radio :label="2">收费</el-radio>-->
128
+              <!--</el-radio-group>-->
129
+
130
+              <el-checkbox-group v-model="good_status">
131
+                <el-checkbox label="停用">停用</el-checkbox>
132
+                <el-checkbox label="收费">收费</el-checkbox>
133
+              </el-checkbox-group>
128 134
             </el-form-item>
135
+
136
+
129 137
             <el-form-item label="备注 : " prop="name" style="width:100%;">
130 138
               <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="form.remark"></el-input>
131 139
             </el-form-item>
@@ -133,7 +141,8 @@
133 141
         </div>
134 142
       </el-tab-pane>
135 143
       <el-tab-pane label="扩展数据" name="second">
136
-        <el-form :model="form"    label-width="120px" style="display: flex;flex-wrap: wrap;justify-content: space-between;">
144
+        <el-form :model="form" label-width="120px"
145
+                 style="display: flex;flex-wrap: wrap;justify-content: space-between;">
137 146
           <el-form-item label="默认使用数量:" prop="name">
138 147
             <el-input v-model="form.default_count" style="width:160px;" placeholder="" maxlength="30"></el-input>
139 148
           </el-form-item>
@@ -215,10 +224,8 @@
215 224
     </el-tabs>
216 225
 
217 226
 
218
-
219
-
220 227
     <span slot="footer" class="dialog-footer">
221
-    <el-button  @click="cancle('form')">取 消</el-button>
228
+    <el-button @click="cancle('form')">取 消</el-button>
222 229
     <el-button type="primary" @click="comfirm('form')">保 存</el-button>
223 230
   </span>
224 231
   </el-dialog>
@@ -227,15 +234,15 @@
227 234
 
228 235
 
229 236
 <script>
230
-  import { getDictionaryDataConfig } from "@/utils/data";
237
+  import { getDictionaryDataConfig } from '@/utils/data'
231 238
 
232 239
   export default {
233 240
     name: 'goodInfoDailog',
234 241
     data() {
235 242
       return {
236
-        visible:false,
237
-        formTitle:'',
238
-        activeName:'first',
243
+        visible: false,
244
+        formTitle: '',
245
+        activeName: 'first',
239 246
         options: [{
240 247
           value: '1',
241 248
           label: '是'
@@ -245,8 +252,9 @@
245 252
         }],
246 253
         good_unit: '',
247 254
         isClose: false,
255
+        good_status: [],
248 256
         size: 11,
249
-        visibility:false,
257
+        visibility: false,
250 258
         form: {
251 259
           good_id: '',
252 260
           specification_name: '',
@@ -259,28 +267,28 @@
259 267
           expiry_date_warn_day_count: '',
260 268
           stock_warn_count: '',
261 269
           is_reuse: '2',
262
-          good_name:'',
263
-          pinyin:"",
264
-          wubi:"",
265
-          good_kind:'',
266
-          medical_insurance_level:'',
267
-          good_unit:'',
268
-          retail_price:'',
269
-          medical_insurance_number:'',
270
-          is_special_diseases:'',
271
-          is_record:'',
272
-          statistics_category:'',
273
-          agent:'',
274
-          good_status:'',
275
-          default_count:'',
276
-          sign:'',
277
-          is_default:'',
278
-          is_charge_use:'',
279
-          is_charge_predict:'',
280
-          is_statistics_work:'',
281
-          sort:'',
282
-          is_doctor_use:'',
283
-          good_number:'',
270
+          good_name: '',
271
+          pinyin: '',
272
+          wubi: '',
273
+          good_kind: '',
274
+          medical_insurance_level: '',
275
+          good_unit: '',
276
+          retail_price: '',
277
+          medical_insurance_number: '',
278
+          is_special_diseases: '',
279
+          is_record: '',
280
+          statistics_category: '',
281
+          agent: '',
282
+          good_status: '',
283
+          default_count: '',
284
+          sign: '',
285
+          is_default: '',
286
+          is_charge_use: '',
287
+          is_charge_predict: '',
288
+          is_statistics_work: '',
289
+          sort: '',
290
+          is_doctor_use: '',
291
+          good_number: ''
284 292
         },
285 293
 
286 294
         rules: {
@@ -305,18 +313,16 @@
305 313
           medical_insurance_level: [
306 314
             { required: true, message: '请输入医保等级', trigger: 'blur' }
307 315
           ],
308
-          manufacturer:[
316
+          manufacturer: [
309 317
             { required: true, message: '请选择生产厂商', trigger: 'blur' }
310
-          ],good_unit:[
318
+          ], good_unit: [
311 319
             { required: true, message: '请选择单位', trigger: 'blur' }
312
-          ],retail_price:[
320
+          ], retail_price: [
313 321
             { required: true, message: '请输入零价', trigger: 'blur' }
314
-          ],stock_warn_count:[
322
+          ], stock_warn_count: [
315 323
             { required: true, message: '请输入库存警戒', trigger: 'blur' }
316 324
           ]
317 325
 
318
-
319
-
320 326
         }
321 327
       }
322 328
     },
@@ -337,15 +343,66 @@
337 343
 
338 344
     },
339 345
     methods: {
340
-      getDictionaryDataConfig(module,filed_name){
341
-       return getDictionaryDataConfig(module,filed_name)
346
+      getDictionaryDataConfig(module, filed_name) {
347
+        return getDictionaryDataConfig(module, filed_name)
342 348
 
343 349
       },
344
-      show() {
350
+      show(id,form) {
345 351
         this.visible = true
346
-        console.log(this.getDictionaryDataConfig("system","drug_type"))
352
+        this.good_status =[]
353
+        if (id == 0) {
347 354
 
348
-      },  hide() {
355
+          var tempform = {
356
+              good_id: '',
357
+              specification_name: '',
358
+              buy_price: '',
359
+              sell_price: '',
360
+              remark: '',
361
+              manufacturer: '',
362
+              good_type_id: '',
363
+              dealer: '',
364
+              expiry_date_warn_day_count: '',
365
+              stock_warn_count: '',
366
+              is_reuse: '2',
367
+              good_name: '',
368
+              pinyin: '',
369
+              wubi: '',
370
+              good_kind: '',
371
+              medical_insurance_level: '',
372
+              good_unit: '',
373
+              retail_price: '',
374
+              medical_insurance_number: '',
375
+              is_special_diseases: '',
376
+              is_record: '',
377
+              statistics_category: '',
378
+              agent: '',
379
+              good_status: '',
380
+              default_count: '',
381
+              sign: '',
382
+              is_default: '',
383
+              is_charge_use: '',
384
+              is_charge_predict: '',
385
+              is_statistics_work: '',
386
+              sort: '',
387
+              is_doctor_use: '',
388
+              good_number: ''
389
+            }
390
+          this.good_status = []
391
+          for (let key in tempform) {
392
+            this.form[key] = tempform[key]
393
+          }
394
+        } else {
395
+          for (let key in form) {
396
+            this.form[key] = form[key]
397
+          }
398
+          if (this.form.good_status.length > 0) {
399
+            for (let i = 0; i < this.form.good_status.split(",").length; i++) {
400
+              this.good_status.push(this.form.good_status.split(',')[i])
401
+            }
402
+          }
403
+        }
404
+
405
+      }, hide() {
349 406
         this.visible = false
350 407
       },
351 408
       cancle: function(formName) {
@@ -383,7 +440,7 @@
383 440
         form['is_special_diseases'] = this.form.is_special_diseases
384 441
         form['is_record'] = this.form.is_record
385 442
         form['statistics_category'] = this.form.statistics_category
386
-        form['good_status'] = this.form.good_status
443
+        // form['good_status'] = this.form.good_status
387 444
         form['default_count'] = this.form.default_count
388 445
         form['sign'] = this.form.sign
389 446
         form['is_default'] = this.form.is_default
@@ -394,9 +451,7 @@
394 451
         form['is_doctor_use'] = this.form.is_doctor_use
395 452
         form['agent'] = this.form.agent
396 453
         form['good_number'] = this.form.good_number
397
-
398
-
399
-
454
+        form['good_status'] = this.good_status.join(',')
400 455
 
401 456
         return form
402 457
       }, changeSelected: function(val) {

+ 2 - 2
src/xt_pages/stock/drugs/cancelDrugStockOrder.vue View File

@@ -264,7 +264,7 @@ export default {
264 264
     },
265 265
     AddNewOrder: function() {
266 266
       this.$router.push({
267
-        name: "cancelStockOrderAdd",
267
+        name: "cancelDrugStockOrderAdd",
268 268
         query: { type: this.type }
269 269
       });
270 270
     },
@@ -390,7 +390,7 @@ export default {
390 390
     },
391 391
     handleEdit: function(index, row) {
392 392
       this.$router.push({
393
-        name: "cancelStockDetail",
393
+        name: "cancelDrugStockDetail",
394 394
         query: { id: row.id, type: this.type }
395 395
       });
396 396
     },

+ 59 - 11
src/xt_pages/stock/drugs/cancelDrugStockOrderAdd.vue View File

@@ -120,9 +120,9 @@
120 120
 
121 121
               <el-form-item style="padding-top: 15px">
122 122
                 <el-input
123
-                  placeholder="请输入商品类型"
124
-                  v-model="scope.row.good_type_id"
125
-                  :value="typeName(scope.row.good_type_id)"
123
+                  placeholder="请输入药品名称"
124
+                  v-model="scope.row.drug_id"
125
+                  :value="typeName(scope.row.drug_id)"
126 126
                   @focus="showDialog(scope.$index, scope.row)"
127 127
                 ></el-input>
128 128
               </el-form-item>
@@ -136,14 +136,35 @@
136 136
               <el-form-item style="padding-top: 15px">
137 137
                 <el-input
138 138
                   placeholder="请输入规格名称"
139
-                  v-model="scope.row.good_id"
140
-                  :value="specificationName(scope.row.good_id)"
139
+                  v-model="scope.row.drug_id"
140
+                  :value="specificationName(scope.row.drug_id)"
141 141
                   @focus="showDialog(scope.$index, scope.row)"
142 142
                 ></el-input>
143 143
               </el-form-item>
144 144
             </template>
145 145
           </el-table-column>
146 146
 
147
+          <el-table-column align="center" width="150">
148
+            <template slot="header" slot-scope="scope">
149
+              <span>进价<span style="color: red">*</span></span>
150
+            </template>
151
+            <template slot-scope="scope">
152
+              <!--<el-input type="number" v-model="scope.row.price"  @blur="handleBlur(scope.$index, scope.row)"></el-input>-->
153
+              <el-form-item
154
+                :prop="'recordData.' + scope.$index + '.price'"
155
+                :rules="tableRules.price"
156
+                style="padding-top: 17px"
157
+              >
158
+                <el-input
159
+                  placeholder="请输入单价"
160
+                  type="number"
161
+                  v-model="scope.row.price"
162
+                ></el-input>
163
+              </el-form-item>
164
+            </template>
165
+          </el-table-column>
166
+
167
+
147 168
           <el-table-column min-width="23" align="center">
148 169
             <template slot="header" slot-scope="scope">
149 170
               <span>退库数量<span style="color: red">*</span></span>
@@ -162,6 +183,25 @@
162 183
               </el-form-item>
163 184
             </template>
164 185
           </el-table-column>
186
+
187
+          <el-table-column label="进价总价" align="center" width="150">
188
+            <template slot-scope="scope">
189
+              {{ calculate(scope.row.price * scope.row.return_count) }}
190
+            </template>
191
+          </el-table-column>
192
+
193
+
194
+          <el-table-column label="零价" align="center" width="150">
195
+            <template slot-scope="scope">
196
+              {{ scope.row.retail_price }}
197
+            </template>
198
+          </el-table-column>
199
+
200
+          <el-table-column label="零价总价" align="center" width="150">
201
+            <template slot-scope="scope">
202
+              {{ calculate(scope.row.retail_price * scope.row.return_count) }}
203
+            </template>
204
+          </el-table-column>
165 205
           <el-table-column label="操作" align="center" min-width="20">
166 206
             <template slot-scope="scope">
167 207
               <el-tooltip
@@ -270,19 +310,20 @@ export default {
270 310
       if (val.selectedGoodInfo.length > 0) {
271 311
         for (let i = val.selectedGoodInfo.length - 1; i >= 0; i--) {
272 312
           if (i == 0) {
273
-            this.recordInfo.recordData[this.currentIndex].good_type_id = val.selectedGoodInfo[i].good_type_id
274
-            this.recordInfo.recordData[this.currentIndex].good_id = val.selectedGoodInfo[i].id
275
-
313
+            this.recordInfo.recordData[this.currentIndex].drug_id = val.selectedGoodInfo[i].id
314
+            this.recordInfo.recordData[this.currentIndex].price = val.selectedGoodInfo[i].last_price.toString();
315
+            this.recordInfo.recordData[this.currentIndex].retail_price = val.selectedGoodInfo[i].retail_price.toString();
276 316
           } else {
277 317
             const tempForm = {}
278 318
             tempForm['drug_id'] = val.selectedGoodInfo[i].id
279 319
             tempForm["return_count"] = "";
320
+            tempForm["price"] = val.selectedGoodInfo[i].last_price.toString();
321
+            tempForm["retail_price"] =  val.selectedGoodInfo[i].retail_price.toString();
280 322
             this.recordInfo.recordData.splice(this.currentIndex + 1, 0, tempForm)
281 323
           }
282 324
         }
283 325
       }
284 326
       this.currentIndex = -1
285
-
286 327
     },
287 328
 
288 329
     cancle: function() {
@@ -322,7 +363,7 @@ export default {
322 363
 
323 364
     },
324 365
 
325
-    typeName: function(good_type_id) {
366
+    typeName: function(drug_id) {
326 367
       let name = "";
327 368
       for (let i = 0; i < this.goodInfo.length; i++) {
328 369
         if (this.goodInfo[i].id == drug_id) {
@@ -332,7 +373,7 @@ export default {
332 373
       }
333 374
       return name;
334 375
     },
335
-    specificationName: function(good_info_id) {
376
+    specificationName: function(drug_id) {
336 377
       let name = "";
337 378
       for (let i = 0; i < this.goodInfo.length; i++) {
338 379
         if (this.goodInfo[i].id == drug_id) {
@@ -345,6 +386,9 @@ export default {
345 386
       const tempObj = {};
346 387
       tempObj["drug_id"] = 0;
347 388
       tempObj["return_count"] = "";
389
+      tempObj["price"] = "";
390
+      tempObj["retail_price"] = "";
391
+
348 392
       this.recordInfo.recordData.push(tempObj);
349 393
     },
350 394
     handleDelete: function(index, row) {
@@ -495,6 +539,10 @@ export default {
495 539
     tempObj["good_type_id"] = 0;
496 540
     tempObj["good_id"] = 0;
497 541
     tempObj["return_count"] = "";
542
+    tempObj["price"] = "";
543
+    tempObj["retail_price"] = "";
544
+
545
+
498 546
     this.recordInfo.recordData.push(tempObj);
499 547
     this.GetConfigInfo();
500 548
     this.propForm.goodUnit = this.$store.getters.good_unit;

+ 65 - 7
src/xt_pages/stock/drugs/cancelDrugStockOrderEdit.vue View File

@@ -73,8 +73,8 @@
73 73
 
74 74
             <template slot-scope="scope">
75 75
               <el-form-item style="padding-top: 15px">
76
-                <el-input placeholder="请输入药品类型" v-model="scope.row.good_type_id"
77
-                          :value="typeName(scope.row.good_type_id)"
76
+                <el-input placeholder="请输入药品类型" v-model="scope.row.drug_id"
77
+                          :value="typeName(scope.row.drug_id)"
78 78
                           @focus="showDialog(scope.$index, scope.row)"></el-input>
79 79
               </el-form-item>
80 80
             </template>
@@ -86,14 +86,34 @@
86 86
             <template slot-scope="scope">
87 87
 
88 88
               <el-form-item style="padding-top: 15px">
89
-                <el-input placeholder="请输入药品规格名称" v-model="scope.row.good_id"
90
-                          :value="specificationName(scope.row.good_id)"
89
+                <el-input placeholder="请输入药品规格名称" v-model="scope.row.drug_id"
90
+                          :value="specificationName(scope.row.drug_id)"
91 91
                           @focus="showDialog(scope.$index, scope.row)"></el-input>
92 92
               </el-form-item>
93 93
 
94 94
             </template>
95 95
           </el-table-column>
96 96
 
97
+          <el-table-column align="center" width="150">
98
+            <template slot="header" slot-scope="scope">
99
+              <span>进价<span style="color: red">*</span></span>
100
+            </template>
101
+            <template slot-scope="scope">
102
+              <!--<el-input type="number" v-model="scope.row.price"  @blur="handleBlur(scope.$index, scope.row)"></el-input>-->
103
+              <el-form-item
104
+                :prop="'recordData.' + scope.$index + '.price'"
105
+                :rules="tableRules.price"
106
+                style="padding-top: 17px"
107
+              >
108
+                <el-input
109
+                  placeholder="请输入单价"
110
+                  type="number"
111
+                  v-model="scope.row.price"
112
+                ></el-input>
113
+              </el-form-item>
114
+            </template>
115
+          </el-table-column>
116
+
97 117
 
98 118
           <el-table-column min-width="23" align="center">
99 119
             <template slot="header" slot-scope="scope">
@@ -107,6 +127,25 @@
107 127
             </template>
108 128
           </el-table-column>
109 129
 
130
+          <el-table-column label="进价总价" align="center" width="150">
131
+            <template slot-scope="scope">
132
+              {{ calculate(scope.row.price * scope.row.count) }}
133
+            </template>
134
+          </el-table-column>
135
+
136
+
137
+          <el-table-column label="零价" align="center" width="150">
138
+            <template slot-scope="scope">
139
+              {{ scope.row.retail_price }}
140
+            </template>
141
+          </el-table-column>
142
+
143
+          <el-table-column label="零价总价" align="center" width="150">
144
+            <template slot-scope="scope">
145
+              {{ calculate(scope.row.retail_price * scope.row.count) }}
146
+            </template>
147
+          </el-table-column>
148
+
110 149
           <el-table-column label="操作" align="center" min-width="20">
111 150
             <template slot-scope="scope">
112 151
               <el-tooltip class="item" effect="dark" content="新增" placement="top">
@@ -155,7 +194,7 @@
155 194
       return {
156 195
         crumbs: [
157 196
           { path: false, name: '库存管理' },
158
-          { path: false, name: '耗材退库单' },
197
+          { path: false, name: '药品退库单' },
159 198
           { path: false, name: '编辑退库单' }
160 199
         ],
161 200
 
@@ -220,12 +259,18 @@
220 259
         if (val.selectedGoodInfo.length > 0) {
221 260
           for (let i = val.selectedGoodInfo.length - 1; ; i--) {
222 261
             if (i == 0) {
262
+
223 263
               this.recordInfo.recordData[this.currentIndex].drug_id = val.selectedGoodInfo[i].id
264
+              this.recordInfo.recordData[this.currentIndex].price = val.selectedGoodInfo[i].last_price.toString()
265
+              this.recordInfo.recordData[this.currentIndex].retail_price = val.selectedGoodInfo[i].retail_price.toString()
266
+
224 267
             } else {
225 268
               const tempForm = {}
226 269
               tempForm['id'] = 0
227 270
               tempForm['drug_id'] = val.selectedGoodInfo[i].id
228 271
               tempForm['count'] = ''
272
+              tempForm['price'] = val.selectedGoodInfo[i].last_price.toString()
273
+              tempForm['retail_price'] =  val.selectedGoodInfo[i].retail_price.toString()
229 274
               this.recordInfo.recordData.splice(this.currentIndex + 1, 0, tempForm)
230 275
             }
231 276
           }
@@ -234,6 +279,11 @@
234 279
         this.currentIndex = -1
235 280
       }, cancle: function() {
236 281
         this.$refs.dialog.hide()
282
+      },calculate: function(val) {
283
+        if (val == 0) {
284
+          return ''
285
+        }
286
+        return Math.round(parseFloat(val) * 100) / 100
237 287
       },
238 288
       GetConfigInfo: function() {
239 289
         const loading = this.$loading({
@@ -266,7 +316,7 @@
266 316
 
267 317
       },
268 318
 
269
-      typeName: function(good_type_id) {
319
+      typeName: function(drug_id) {
270 320
         let name = "";
271 321
         for (let i = 0; i < this.goodInfo.length; i++) {
272 322
           if (this.goodInfo[i].id == drug_id) {
@@ -275,7 +325,7 @@
275 325
           }
276 326
         }
277 327
         return name;
278
-      },  specificationName: function(good_info_id) {
328
+      },  specificationName: function(drug_id) {
279 329
         console.log(this.goodInfo)
280 330
         let name = "";
281 331
         for (let i = 0; i < this.goodInfo.length; i++) {
@@ -289,6 +339,10 @@
289 339
         tempObj['id'] = 0
290 340
         tempObj['drug_id'] = 0
291 341
         tempObj['count'] = ''
342
+        tempObj['price'] = ''
343
+        tempObj['retail_price'] = ''
344
+
345
+
292 346
         this.recordInfo.recordData.push(tempObj)
293 347
       }, handleDelete: function(index, row) {
294 348
         if (row.id == 0) {
@@ -413,6 +467,8 @@
413 467
           } else {
414 468
             for (let i = 0; i < response.data.data.list.length; i++) {
415 469
               response.data.data.list[i].count = response.data.data.list[i].count.toString()
470
+              response.data.data.list[i].price = response.data.data.list[i].price.toString()
471
+              response.data.data.list[i].retail_price = response.data.data.list[i].retail_price.toString()
416 472
               this.recordInfo.recordData.push(response.data.data.list[i])
417 473
             }
418 474
             this.cancelStock = response.data.data.info
@@ -425,6 +481,8 @@
425 481
             tempObj['id'] = 0
426 482
             tempObj['drug_id'] = 0
427 483
             tempObj['count'] = ''
484
+            tempObj['price'] = ''
485
+            tempObj['retail_price'] = ''
428 486
             this.recordInfo.recordData.push(tempObj)
429 487
           }
430 488
         })

+ 61 - 2
src/xt_pages/stock/drugs/drugSalesReturnEdit.vue View File

@@ -106,6 +106,33 @@
106 106
               </template>
107 107
             </el-table-column>
108 108
 
109
+            <el-table-column align="center" width="150">
110
+              <template slot="header" slot-scope="scope">
111
+                <span>进价<span style="color: red">*</span></span>
112
+              </template>
113
+              <template slot-scope="scope">
114
+                <!--<el-input type="number" v-model="scope.row.price"  @blur="handleBlur(scope.$index, scope.row)"></el-input>-->
115
+                <el-form-item
116
+                  :prop="'recordData.' + scope.$index + '.price'"
117
+                  :rules="tableRules.price"
118
+                  style="padding-top: 17px"
119
+                >
120
+                  <el-input
121
+                    placeholder="请输入进价"
122
+                    type="number"
123
+                    v-model="scope.row.price"
124
+                  ></el-input>
125
+                </el-form-item>
126
+              </template>
127
+            </el-table-column>
128
+
129
+            <el-table-column label="进货总价" align="center" width="80">
130
+              <template slot-scope="scope">
131
+                {{ calculate(scope.row.price * scope.row.count) }}
132
+              </template>
133
+            </el-table-column>
134
+
135
+
109 136
 
110 137
             <el-table-column min-width="23" align="center">
111 138
               <template slot="header" slot-scope="scope">
@@ -119,6 +146,19 @@
119 146
               </template>
120 147
             </el-table-column>
121 148
 
149
+            <el-table-column label="零价" align="center" width="80">
150
+              <template slot-scope="scope">
151
+                {{ scope.row.retail_price }}
152
+              </template>
153
+            </el-table-column>
154
+
155
+            <el-table-column label="零价总价" align="center" width="80">
156
+              <template slot-scope="scope">
157
+                {{ calculate(scope.row.retail_price * scope.row.count) }}
158
+              </template>
159
+            </el-table-column>
160
+
161
+
122 162
             <el-table-column label="操作" align="center" min-width="20">
123 163
               <template slot-scope="scope">
124 164
                 <el-tooltip class="item" effect="dark" content="新增" placement="top">
@@ -227,12 +267,16 @@
227 267
           for (let i = val.selectedGoodInfo.length -1; i >= 0 ; i--) {
228 268
             if (i == 0) {
229 269
               this.recordInfo.recordData[this.currentIndex].drug_id = val.selectedGoodInfo[i].id
270
+              this.recordInfo.recordData[this.currentIndex].price = val.selectedGoodInfo[i].last_price.toString()
271
+              this.recordInfo.recordData[this.currentIndex].retail_price = val.selectedGoodInfo[i].retail_price.toString()
272
+
230 273
             } else {
231 274
               const tempForm = {}
232 275
               tempForm['id'] = 0
233 276
               tempForm['drug_id'] = val.selectedGoodInfo[i].id
234
-              tempForm['return_count'] = ''
235
-              tempForm['price'] = ''
277
+              tempForm['count'] = ''
278
+              tempForm['price'] = val.selectedGoodInfo[i].last_price.toString()
279
+              tempForm['retail_price'] = val.selectedGoodInfo[i].retail_price.toString()
236 280
               this.recordInfo.recordData.splice(this.currentIndex + 1, 0, tempForm)
237 281
             }
238 282
           }
@@ -295,6 +339,8 @@
295 339
         tempObj['id'] = 0
296 340
         tempObj['drug_id'] = 0
297 341
         tempObj['count'] = ''
342
+        tempObj['price'] = ''
343
+        tempObj['retail_price'] = ''
298 344
         this.recordInfo.recordData.push(tempObj)
299 345
       }, handleDelete: function(index, row) {
300 346
         console.log(row.id)
@@ -327,6 +373,12 @@
327 373
         } else {
328 374
           return ''
329 375
         }
376
+      },calculate: function(val) {
377
+        if (val == 0) {
378
+          return ''
379
+        }
380
+
381
+        return Math.round(parseFloat(val) * 100) / 100
330 382
       },
331 383
       showDialog(index, row) {
332 384
         this.currentIndex = index;
@@ -418,6 +470,9 @@
418 470
           } else {
419 471
             for (let i = 0; i < response.data.data.list.length; i++) {
420 472
               response.data.data.list[i].count = response.data.data.list[i].count.toString()
473
+              response.data.data.list[i].price = response.data.data.list[i].price.toString()
474
+              response.data.data.list[i].retail_price = response.data.data.list[i].retail_price.toString()
475
+
421 476
               this.recordInfo.recordData.push(response.data.data.list[i])
422 477
             }
423 478
             this.salesReturn = response.data.data.salesReturn
@@ -431,6 +486,10 @@
431 486
             tempObj['id'] = 0
432 487
             tempObj['drug_id'] = 0
433 488
             tempObj['count'] = ''
489
+            tempObj['price'] = ''
490
+            tempObj['retail_price'] = ''
491
+
492
+
434 493
             this.recordInfo.recordData.push(tempObj)
435 494
           }
436 495
         })

+ 2 - 2
src/xt_pages/stock/drugs/drugSalesReturnOrder.vue View File

@@ -260,7 +260,7 @@ export default {
260 260
     },
261 261
     AddNewOrder: function() {
262 262
       this.$router.push({
263
-        name: "salesReturnOrderAdd",
263
+        name: "drugSalesReturnOrderAdd",
264 264
         query: { type: this.type }
265 265
       });
266 266
     },
@@ -387,7 +387,7 @@ export default {
387 387
     },
388 388
     handleEdit: function(index, row) {
389 389
       this.$router.push({
390
-        name: "salesReturnDetail",
390
+        name: "drugSalesReturnDetail",
391 391
         query: { id: row.id, type: this.type }
392 392
       });
393 393
     },

+ 68 - 7
src/xt_pages/stock/drugs/drugSalesReturnOrderAdd.vue View File

@@ -96,7 +96,34 @@
96 96
             </template>
97 97
           </el-table-column>
98 98
 
99
-          <el-table-column min-width="23" align="center">
99
+          <el-table-column align="center" width="150">
100
+            <template slot="header" slot-scope="scope">
101
+              <span>进价<span style="color: red">*</span></span>
102
+            </template>
103
+            <template slot-scope="scope">
104
+              <!--<el-input type="number" v-model="scope.row.price"  @blur="handleBlur(scope.$index, scope.row)"></el-input>-->
105
+              <el-form-item
106
+                :prop="'recordData.' + scope.$index + '.price'"
107
+                :rules="tableRules.price"
108
+                style="padding-top: 17px"
109
+              >
110
+                <el-input
111
+                  placeholder="请输入进价"
112
+                  type="number"
113
+                  v-model="scope.row.price"
114
+                ></el-input>
115
+              </el-form-item>
116
+            </template>
117
+          </el-table-column>
118
+
119
+          <el-table-column label="进货总价" align="center" width="80">
120
+            <template slot-scope="scope">
121
+              {{ calculate(scope.row.price * scope.row.return_count) }}
122
+            </template>
123
+          </el-table-column>
124
+
125
+
126
+          <el-table-column align="center"  width="150">
100 127
             <template slot="header" slot-scope="scope">
101 128
               <span>退货数量<span style="color: red">*</span></span>
102 129
             </template>
@@ -108,7 +135,21 @@
108 135
             </template>
109 136
           </el-table-column>
110 137
 
111
-          <el-table-column label="操作" align="center" min-width="20">
138
+          <el-table-column label="零价" align="center" width="80">
139
+            <template slot-scope="scope">
140
+              {{ scope.row.retail_price }}
141
+            </template>
142
+          </el-table-column>
143
+
144
+          <el-table-column label="零价总价" align="center" width="80">
145
+            <template slot-scope="scope">
146
+              {{ calculate(scope.row.retail_price * scope.row.return_count) }}
147
+            </template>
148
+          </el-table-column>
149
+
150
+
151
+
152
+          <el-table-column label="操作" align="center" min-width="60">
112 153
             <template slot-scope="scope">
113 154
               <el-tooltip class="item" effect="dark" content="新增" placement="top">
114 155
 
@@ -155,7 +196,7 @@
155 196
       return {
156 197
         crumbs: [
157 198
           { path: false, name: '库存管理' },
158
-          { path: false, name: '耗材退货单' },
199
+          { path: false, name: '药品退货单' },
159 200
           { path: false, name: '新增退货单' }
160 201
         ],
161 202
         crumbs2: [
@@ -198,7 +239,8 @@
198 239
         manufacturer: [],
199 240
         dealer: [],
200 241
         goodType: [],
201
-        goodInfo:[]
242
+        goodInfo:[],
243
+        numbers:[],
202 244
 
203 245
       }
204 246
     },
@@ -208,13 +250,16 @@
208 250
         if (val.selectedGoodInfo.length > 0) {
209 251
           for (let i = val.selectedGoodInfo.length -1; i >= 0 ; i--) {
210 252
               if (i == 0) {
211
-                this.recordInfo.recordData[this.currentIndex].good_type_id = val.selectedGoodInfo[i].good_type_id
212
-                this.recordInfo.recordData[this.currentIndex].good_id = val.selectedGoodInfo[i].id
253
+                this.recordInfo.recordData[this.currentIndex].drug_id = val.selectedGoodInfo[i].id
254
+                this.recordInfo.recordData[this.currentIndex].retail_price = val.selectedGoodInfo[i].retail_price.toString()
255
+                this.recordInfo.recordData[this.currentIndex].price = val.selectedGoodInfo[i].last_price.toString()
256
+
213 257
               } else {
214 258
                 const tempForm = {}
215 259
                 tempForm['drug_id'] = val.selectedGoodInfo[i].id
216 260
                 tempForm['return_count'] = ''
217
-                tempForm['price'] = ''
261
+                tempForm['retail_price'] = val.selectedGoodInfo[i].retail_price.toString()
262
+                tempForm['price'] =val.selectedGoodInfo[i].last_price.toString()
218 263
                 this.recordInfo.recordData.splice(this.currentIndex + 1, 0, tempForm)
219 264
               }
220 265
           }
@@ -249,6 +294,11 @@
249 294
                 }
250 295
               }
251 296
             }
297
+            // for (let i = 0; i < response.data.data.numbers.length; i++){
298
+            //   if( response.data.data.numbers[i].number.length > 0) {
299
+            //     this.numbers.push(response.data.data.numbers[i])
300
+            //   }
301
+            // }
252 302
             this.manufacturer.splice(0, 0, { id: 0, manufacturer_name: "全部" });
253 303
             this.dealer.splice(0, 0, { id: 0, dealer_name: "全部" });
254 304
 
@@ -296,6 +346,15 @@
296 346
         } else {
297 347
           return ''
298 348
         }
349
+      },handleEdit: function(index, row) {
350
+        const tempObj = {}
351
+        tempObj['id'] = 0
352
+        tempObj['drug_id'] = 0
353
+        tempObj['return_count'] = ''
354
+        tempObj['retail_price'] = ''
355
+        tempObj['price'] = ''
356
+        tempObj['remark'] = ''
357
+        this.recordInfo.recordData.push(tempObj)
299 358
       },
300 359
       showDialog(index, row) {
301 360
         const loading = this.$loading({
@@ -410,6 +469,8 @@
410 469
       const tempObj = {}
411 470
       tempObj['drug_id'] = 0
412 471
       tempObj['return_count'] = ''
472
+      tempObj['number'] = ''
473
+      tempObj['retail_price'] = ''
413 474
       tempObj['price'] = ''
414 475
       this.recordInfo.recordData.push(tempObj)
415 476
       console.log(this.recordInfo.recordData)

+ 1 - 1
src/xt_pages/stock/drugs/drugSalesReturnOrderDetail.vue View File

@@ -92,7 +92,7 @@
92 92
       return {
93 93
         crumbs: [
94 94
           { path: false, name: '库存管理' },
95
-          { path: false, name: '耗材退货单' },
95
+          { path: false, name: '退货药品单' },
96 96
           { path: false, name: '退货单详情' }
97 97
         ],
98 98
         crumbs2: [

+ 11 - 5
src/xt_pages/stock/drugs/drugStockInOrderAdd.vue View File

@@ -149,13 +149,13 @@
149 149
 
150 150
           <el-table-column label="零价" align="center" width="150">
151 151
             <template slot-scope="scope">
152
-              <!--{{ // calculate(scope.row.price * scope.row.warehousing_count) }}-->
152
+              {{ scope.row.retail_price }}
153 153
             </template>
154 154
           </el-table-column>
155 155
 
156 156
           <el-table-column label="零价总价" align="center" width="150">
157 157
             <template slot-scope="scope">
158
-              <!--{{ calculate(scope.row.price * scope.row.warehousing_count) }}-->
158
+              {{ calculate(scope.row.retail_price * scope.row.warehousing_count) }}
159 159
             </template>
160 160
           </el-table-column>
161 161
           <el-table-column align="center" width="150">
@@ -279,8 +279,8 @@
279 279
       return {
280 280
         crumbs: [
281 281
           { path: false, name: '库存管理' },
282
-          { path: false, name: '耗材入库单' },
283
-          { path: false, name: '新增入库单' }
282
+          { path: false, name: "药品入库单" },
283
+          { path: false, name: "新增入库单" }
284 284
         ],
285 285
         crumbs2: [
286 286
           { path: false, name: '库存管理' },
@@ -397,6 +397,8 @@
397 397
           for (let i = val.selectedGoodInfo.length - 1; i >= 0; i--) {
398 398
             if (i == 0) {
399 399
               this.recordInfo.recordData[this.currentIndex].drug_id = val.selectedGoodInfo[i].id
400
+              this.recordInfo.recordData[this.currentIndex].price = val.selectedGoodInfo[i].last_price.toString()
401
+              this.recordInfo.recordData[this.currentIndex].retail_price = val.selectedGoodInfo[i].retail_price.toString()
400 402
 
401 403
             } else {
402 404
               const tempForm = {}
@@ -406,7 +408,8 @@
406 408
               tempForm['product_date'] = ''
407 409
               tempForm['expiry_date'] = ''
408 410
               tempForm['warehousing_count'] = ''
409
-              tempForm['price'] = ''
411
+              tempForm['retail_price'] = val.selectedGoodInfo[i].retail_price.toString()
412
+              tempForm['price'] =  val.selectedGoodInfo[i].last_price.toString()
410 413
               tempForm['remark'] = ''
411 414
               tempForm['dealer'] = ''
412 415
               tempForm['manufacturer'] = ''
@@ -474,6 +477,7 @@
474 477
         tempObj['product_date'] = ''
475 478
         tempObj['expiry_date'] = ''
476 479
         tempObj['warehousing_count'] = ''
480
+        tempObj['retail_price'] = ''
477 481
         tempObj['price'] = ''
478 482
         tempObj['remark'] = ''
479 483
         tempObj['dealer'] = ''
@@ -598,6 +602,7 @@
598 602
         this.$refs['tableForm'].validate((valid) => {
599 603
           if (valid) {
600 604
             const array = this.recordInfo.recordData
605
+            console.log(array)
601 606
             for (let i = 0; i < array.length; i++) {
602 607
 
603 608
               if (array[i].drug_id == 0) {
@@ -654,6 +659,7 @@
654 659
       tempObj['product_date'] = ''
655 660
       tempObj['expiry_date'] = ''
656 661
       tempObj['warehousing_count'] = ''
662
+      tempObj['retail_price'] = ''
657 663
       tempObj['price'] = ''
658 664
       tempObj['remark'] = ''
659 665
       tempObj['dealer'] = ''

+ 22 - 5
src/xt_pages/stock/drugs/drugStockInOrderEdit.vue View File

@@ -186,13 +186,13 @@
186 186
 
187 187
           <el-table-column label="零价" align="center" width="150">
188 188
             <template slot-scope="scope">
189
-              <!--{{ // calculate(scope.row.price * scope.row.warehousing_count) }}-->
189
+              {{ scope.row.retail_price }}
190 190
             </template>
191 191
           </el-table-column>
192 192
 
193 193
           <el-table-column label="零价总价" align="center" width="150">
194 194
             <template slot-scope="scope">
195
-              <!--{{ calculate(scope.row.price * scope.row.warehousing_count) }}-->
195
+              {{ calculate(scope.row.retail_price * scope.row.warehousing_count) }}
196 196
             </template>
197 197
           </el-table-column>
198 198
           <el-table-column align="center" width="150">
@@ -318,8 +318,8 @@ export default {
318 318
     return {
319 319
       crumbs: [
320 320
         { path: false, name: "库存管理" },
321
-        { path: false, name: "耗材入库单" },
322
-        { path: false, name: "编辑入库单" }
321
+        { path: false, name: "药品入库单" },
322
+        { path: false, name: "药品入库单" }
323 323
       ],
324 324
       crumbs2: [
325 325
         { path: false, name: "库存管理" },
@@ -380,6 +380,11 @@ export default {
380 380
           if (i == 0) {
381 381
             this.recordInfo.recordData[this.currentIndex].drug_id =
382 382
               val.selectedGoodInfo[i].id;
383
+            this.recordInfo.recordData[this.currentIndex].price = val.selectedGoodInfo[i].last_price.toString()
384
+            this.recordInfo.recordData[this.currentIndex].retail_price = val.selectedGoodInfo[i].retail_price.toString()
385
+
386
+
387
+
383 388
           } else {
384 389
 
385 390
             const tempForm = {};
@@ -389,10 +394,12 @@ export default {
389 394
             tempForm["product_date"] = "";
390 395
             tempForm["expiry_date"] = "";
391 396
             tempForm["warehousing_count"] = "";
392
-            tempForm["price"] = "";
397
+            tempForm["price"] = val.selectedGoodInfo[i].last_price.toString();
393 398
             tempForm["remark"] = "";
394 399
             tempForm["dealer"] = "";
395 400
             tempForm["manufacturer"] = "";
401
+            tempForm["retail_price"] = val.selectedGoodInfo[i].retail_price.toString();
402
+
396 403
             this.recordInfo.recordData.splice(
397 404
               this.currentIndex + 1,
398 405
               0,
@@ -472,6 +479,9 @@ export default {
472 479
       tempObj["remark"] = "";
473 480
       tempObj["dealer"] = "";
474 481
       tempObj["manufacturer"] = "";
482
+      tempObj['retail_price'] = ""
483
+
484
+
475 485
       this.recordInfo.recordData.push(tempObj);
476 486
     },
477 487
     handleDelete: function(index, row) {
@@ -623,6 +633,11 @@ export default {
623 633
             response.data.data.info[i].price = response.data.data.info[
624 634
               i
625 635
             ].price.toString();
636
+
637
+            response.data.data.info[i].retail_price = response.data.data.info[
638
+              i
639
+              ].retail_price.toString();
640
+
626 641
             response.data.data.info[
627 642
               i
628 643
             ].warehousing_count = response.data.data.info[
@@ -653,6 +668,8 @@ export default {
653 668
             tempObj["remark"] = "";
654 669
             tempObj["dealer"] = "";
655 670
             tempObj["manufacturer"] = "";
671
+            tempObj['retail_price'] = ""
672
+
656 673
             this.recordInfo.recordData.push(tempObj);
657 674
           }
658 675
         }

+ 1 - 1
src/xt_pages/stock/drugs/drugStockOutOrder.vue View File

@@ -373,7 +373,7 @@ export default {
373 373
 
374 374
     handleEdit: function(index, row) {
375 375
       this.$router.push({
376
-        name: "stockOutDetail",
376
+        name: "drugStockOutDetail",
377 377
         query: { id: row.id, type: this.type }
378 378
       });
379 379
     },

+ 27 - 12
src/xt_pages/stock/drugs/drugStockOutOrderAdd.vue View File

@@ -138,7 +138,7 @@
138 138
 
139 139
           <el-table-column min-width="23" align="center">
140 140
             <template slot="header" slot-scope="scope">
141
-              <span>价<span style="color: red">*</span></span>
141
+              <span>价<span style="color: red">*</span></span>
142 142
             </template>
143 143
             <template slot-scope="scope">
144 144
               <!--<el-input type="number" v-model="scope.row.price"  @blur="handleBlur(scope.$index, scope.row)"></el-input>-->
@@ -148,7 +148,7 @@
148 148
                 style="padding-top: 17px"
149 149
               >
150 150
                 <el-input
151
-                  placeholder="请输入价"
151
+                  placeholder="请输入价"
152 152
                   type="number"
153 153
                   v-model="scope.row.price"
154 154
                 ></el-input>
@@ -175,11 +175,26 @@
175 175
             </template>
176 176
           </el-table-column>
177 177
 
178
-          <el-table-column label="总价" min-width="20" align="center">
178
+          <el-table-column label="进价总价" min-width="20" align="center">
179 179
             <template slot-scope="scope">
180 180
               {{ calculate(scope.row.price * scope.row.count) }}
181 181
             </template>
182 182
           </el-table-column>
183
+
184
+
185
+          <el-table-column label="零价" align="center" width="150">
186
+            <template slot-scope="scope">
187
+              {{ scope.row.retail_price }}
188
+            </template>
189
+          </el-table-column>
190
+
191
+          <el-table-column label="零价总价" align="center" width="150">
192
+            <template slot-scope="scope">
193
+              {{ calculate(scope.row.retail_price * scope.row.count) }}
194
+            </template>
195
+          </el-table-column>
196
+
197
+
183 198
           <el-table-column label="备注" min-width="20" align="center">
184 199
             <template slot-scope="scope">
185 200
               <el-input v-model="scope.row.remark"></el-input>
@@ -239,7 +254,7 @@ export default {
239 254
     return {
240 255
       crumbs: [
241 256
         { path: false, name: "库存管理" },
242
-        { path: false, name: "耗材出库单" },
257
+        { path: false, name: "药品出库单" },
243 258
         { path: false, name: "新增出库单" }
244 259
       ],
245 260
       crumbs2: [
@@ -295,12 +310,15 @@ export default {
295 310
         for (let i = val.selectedGoodInfo.length - 1; i >= 0; i--) {
296 311
           if (i == 0) {
297 312
             this.recordInfo.recordData[this.currentIndex].drug_id = val.selectedGoodInfo[i].id
313
+            this.recordInfo.recordData[this.currentIndex].price = val.selectedGoodInfo[i].last_price.toString()
314
+            this.recordInfo.recordData[this.currentIndex].retail_price = val.selectedGoodInfo[i].retail_price.toString()
298 315
 
299 316
           } else {
300 317
             const tempForm = {}
301 318
             tempForm['drug_id'] = val.selectedGoodInfo[i].id
319
+            tempForm['retail_price'] = val.selectedGoodInfo[i].retail_price.toString()
320
+            tempForm['price'] =  val.selectedGoodInfo[i].last_price.toString()
302 321
             tempForm['count'] = ''
303
-            tempForm['price'] = ''
304 322
             tempForm['remark'] = ''
305 323
             this.recordInfo.recordData.splice(this.currentIndex + 1, 0, tempForm)
306 324
           }
@@ -400,6 +418,7 @@ export default {
400 418
       tempObj["drug_id"] = 0;
401 419
       tempObj["count"] = "";
402 420
       tempObj["price"] = "";
421
+      tempObj["retail_price"] = "";
403 422
       tempObj["remark"] = "";
404 423
 
405 424
       this.recordInfo.recordData.push(tempObj);
@@ -492,12 +511,8 @@ export default {
492 511
           const array = this.recordInfo.recordData;
493 512
           let total = 0;
494 513
           for (let i = 0; i < array.length; i++) {
495
-            if (array[i].good_type_id == 0) {
496
-              this.$message.error("商品类型不能为空");
497
-              return;
498
-            }
499
-            if (array[i].good_id == 0) {
500
-              this.$message.error("规格名称不能为空");
514
+            if (array[i].drug_id == 0) {
515
+              this.$message.error("药品名称或者药品规格名称不能为空");
501 516
               return;
502 517
             }
503 518
             total = total + array[i].price * array[i].return_count;
@@ -510,7 +525,6 @@ export default {
510 525
           const params = {
511 526
             stockOut: this.recordInfo.recordData
512 527
           };
513
-          console.log(this.form.dealer);
514 528
 
515 529
           postDrugWarehouseOut(
516 530
             params,
@@ -557,6 +571,7 @@ export default {
557 571
     tempObj["price"] = "";
558 572
     tempObj["remark"] = "";
559 573
 
574
+
560 575
     this.recordInfo.recordData.push(tempObj);
561 576
     this.GetConfigInfo();
562 577
     this.propForm.goodUnit = this.$store.getters.good_unit;

+ 3 - 3
src/xt_pages/stock/drugs/drugStockOutOrderDetail.vue View File

@@ -114,7 +114,7 @@
114 114
     components: { BreadCrumb },
115 115
     created() {
116 116
       const order_id = this.$route.query.id
117
-      this.GetConfigInfo()
117
+      // this.GetConfigInfo()
118 118
       this.GetOrderDetail(order_id)
119 119
     },
120 120
     data() {
@@ -225,7 +225,7 @@
225 225
             this.pos = 0
226 226
           } else {
227 227
             // 判断当前元素与上一个元素是否相同
228
-            if (this.warehousingOutInfo.warehousingOutData[i].good_type_id === this.warehousingOutInfo.warehousingOutData[i - 1].good_type_id) {
228
+            if (this.warehousingOutInfo.warehousingOutData[i].drug_id === this.warehousingOutInfo.warehousingOutData[i - 1].drug_id) {
229 229
               this.tempArr[this.pos] += 1
230 230
               this.tempArr.push(0)
231 231
             } else {
@@ -241,7 +241,7 @@
241 241
           if (index === 0) {
242 242
             sameRowArr.push([index])
243 243
           } else {
244
-            if (item.good_type_id === this.warehousingOutInfo.warehousingOutData[index - 1].good_type_id) {
244
+            if (item.drug_id === this.warehousingOutInfo.warehousingOutData[index - 1].drug_id) {
245 245
               sameRowArr[sIdx].push(index)
246 246
             } else {
247 247
               sIdx = sIdx + 1

+ 34 - 6
src/xt_pages/stock/drugs/drugStockOutOrderEdit.vue View File

@@ -113,7 +113,7 @@
113 113
 
114 114
           <el-table-column min-width="23" align="center">
115 115
             <template slot="header" slot-scope="scope">
116
-              <span>价<span style="color: red">*</span></span>
116
+              <span>价<span style="color: red">*</span></span>
117 117
             </template>
118 118
             <template slot-scope="scope">
119 119
               <!--<el-input type="number" v-model="scope.row.price"  @blur="handleBlur(scope.$index, scope.row)"></el-input>-->
@@ -138,11 +138,26 @@
138 138
             </template>
139 139
           </el-table-column>
140 140
 
141
-          <el-table-column label="总价" min-width="20" align="center">
141
+          <el-table-column label="进价总价" min-width="20" align="center">
142 142
             <template slot-scope="scope">
143 143
               {{calculate(scope.row.price*scope.row.count)}}
144 144
             </template>
145 145
           </el-table-column>
146
+
147
+
148
+          <el-table-column label="零价" align="center" width="150">
149
+            <template slot-scope="scope">
150
+              {{ scope.row.retail_price }}
151
+            </template>
152
+          </el-table-column>
153
+
154
+          <el-table-column label="零价总价" align="center" width="150">
155
+            <template slot-scope="scope">
156
+              {{ calculate(scope.row.retail_price * scope.row.count) }}
157
+            </template>
158
+          </el-table-column>
159
+
160
+
146 161
           <el-table-column label="备注" min-width="20" align="center">
147 162
             <template slot-scope="scope">
148 163
               <el-input v-model="scope.row.remark"></el-input>
@@ -194,7 +209,7 @@
194 209
       return {
195 210
         crumbs: [
196 211
           { path: false, name: '库存管理' },
197
-          { path: false, name: '耗材出库单' },
212
+          { path: false, name: '药品出库单' },
198 213
           { path: false, name: '编辑出库单' }
199 214
         ],
200 215
         crumbs2: [
@@ -258,18 +273,26 @@
258 273
         this.propForm.goods = [];
259 274
 
260 275
         if (val.selectedGoodInfo.length > 0) {
261
-          for (let i = val.selectedGoodInfo.length - 1; ; i--) {
276
+          for (let i = val.selectedGoodInfo.length - 1;i >= 0 ; i--) {
262 277
             if (i == 0) {
263 278
 
264 279
               this.recordInfo.recordData[this.currentIndex].drug_id =
265 280
                 val.selectedGoodInfo[i].id;
266 281
 
282
+              this.recordInfo.recordData[this.currentIndex].price =
283
+                val.selectedGoodInfo[i].last_price.toString();
284
+
285
+              this.recordInfo.recordData[this.currentIndex].retail_price =
286
+                val.selectedGoodInfo[i].retail_price.toString();
287
+
267 288
             } else {
268 289
               const tempForm = {};
269 290
               tempForm["id"] = 0;
270 291
               tempForm["drug_id"] = val.selectedGoodInfo[i].id;
292
+              tempForm["retail_price"] = val.selectedGoodInfo[i].retail_price.toString();
293
+
271 294
               tempForm["count"] = "";
272
-              tempForm["price"] = val.selectedGoodInfo[i].buy_price.toString();
295
+              tempForm["price"] = val.selectedGoodInfo[i].last_price.toString();
273 296
               tempForm["remark"] = "";
274 297
               this.recordInfo.recordData.splice(
275 298
                 this.currentIndex + 1,
@@ -336,6 +359,8 @@
336 359
         const tempObj = {}
337 360
         tempObj['id'] = 0
338 361
         tempObj['drug_id'] = 0
362
+        tempObj['retail_price'] = ''
363
+
339 364
         tempObj['count'] = ''
340 365
         tempObj['price'] = ''
341 366
         tempObj['remark'] = ''
@@ -390,7 +415,7 @@
390 415
             this.$message.error(response.data.msg);
391 416
             return false;
392 417
           } else {
393
-            if (response.data.data.goodInfo.length <= 0) {
418
+            if (response.data.data.drugs.length <= 0) {
394 419
               this.$message.error("该厂商或经销商没有药品信息");
395 420
               return;
396 421
             }
@@ -460,6 +485,7 @@
460 485
           } else {
461 486
             for (let i = 0; i < response.data.data.list.length; i++) {
462 487
               response.data.data.list[i].price = response.data.data.list[i].price.toString()
488
+              response.data.data.list[i].retail_price = response.data.data.list[i].retail_price.toString()
463 489
               response.data.data.list[i].count = response.data.data.list[i].count.toString()
464 490
               this.recordInfo.recordData.push(response.data.data.list[i])
465 491
             }
@@ -474,6 +500,8 @@
474 500
             const tempObj = {}
475 501
             tempObj['id'] = 0
476 502
             tempObj['drug_id'] = 0
503
+            tempObj['retail_price'] = ''
504
+
477 505
             tempObj['count'] = ''
478 506
             tempObj['price'] = ''
479 507
             tempObj['remark'] = ''

+ 16 - 5
src/xt_pages/stock/drugs/drugsStockDialog/index.vue View File

@@ -54,23 +54,34 @@
54 54
             property="drug_spec"
55 55
             style="word-break: keep-all;white-space:nowrap;"
56 56
           ></el-table-column>
57
+          <!--<el-table-column-->
58
+            <!--align="center"-->
59
+            <!--label="单位"-->
60
+            <!--property="good_unit"-->
61
+          <!--&gt;-->
62
+            <!--<template slot-scope="scope">-->
63
+              <!--&lt;!&ndash;<span>{{getName(scope.row.good_unit)}}</span>&ndash;&gt;-->
64
+            <!--</template>-->
65
+          <!--</el-table-column>-->
66
+
57 67
           <el-table-column
58 68
             align="center"
59
-            label="单位"
60
-            property="good_unit"
69
+            label="上次进货价"
70
+            property="buy_price"
61 71
           >
62 72
             <template slot-scope="scope">
63
-              <!--<span>{{getName(scope.row.good_unit)}}</span>-->
73
+              <span>{{scope.row.last_price}}</span>
64 74
             </template>
65 75
           </el-table-column>
66 76
 
77
+
67 78
           <el-table-column
68 79
             align="center"
69
-            label="价"
80
+            label="零售价"
70 81
             property="buy_price"
71 82
           >
72 83
             <template slot-scope="scope">
73
-              <!--<span>{{scope.row.buy_price}}</span>-->
84
+              <span>{{scope.row.retail_price}}</span>
74 85
             </template>
75 86
           </el-table-column>
76 87
 

+ 375 - 166
src/xt_pages/stock/drugs/query.vue View File

@@ -1,193 +1,402 @@
1 1
 <template>
2 2
   <div class="main-contain">
3 3
     <div class="position">
4
-      <!--<bread-crumb :crumbs='crumbs'></bread-crumb>-->
5 4
       <bread-crumb :crumbs="crumbs"></bread-crumb>
6
-      <el-button
7
-        size="small"
8
-        @click="handleWarehouse"
9
-        class="filter-item"
10
-        style="float:right;"
11
-        type="primary"
12
-        icon="el-icon-circle-plus-outline"
13
-        >新增</el-button
14
-      >
15 5
     </div>
6
+    <div class="app-container ">
7
+      <div class="cell clearfix">
8
+        <el-input
9
+          size="small"
10
+          style="width: 400px;"
11
+          class="filter-item"
12
+          v-model.trim="keywords"
13
+          placeholder="商品名称/规格名称"
14
+        />
15
+        <el-button
16
+          size="small"
17
+          class="filter-item"
18
+          type="primary"
19
+          icon="el-icon-search"
20
+          @click="search"
21
+        >搜索</el-button
22
+        >
23
+      </div>
16 24
 
17
-    <div class="app-container">
18
-        <div class="cell clearfix">
19
-            <el-input
20
-            size="small"
21
-            style="width: 400px;"
22
-            v-model.trim="searchKey"
23
-            class="filter-item"
24
-            placeholder="单据编码/制单人/厂商"
25
-            />
26
-            <el-button
27
-            style="margin-right:10px;"
28
-            size="small"
29
-            class="filter-item"
30
-            type="primary"
31
-            icon="el-icon-search"
32
-            @click="search"
33
-            >搜索</el-button
34
-            >
35
-            <label class="title"><span class="name">报损日期</span> : </label>
36
-            <el-date-picker
37
-            size="small"
38
-            v-model="start_time"
39
-            prefix-icon="el-icon-date"
40
-            :editable="false"
41
-            style="width: 196px;"
42
-            type="date"
43
-            placeholder="选择日期时间"
44
-            align="right"
45
-            format="yyyy-MM-dd"
46
-            value-format="yyyy-MM-dd"
47
-            @change="startTimeChange"
48
-            ></el-date-picker>
49
-            <span class="cellLine"> - </span>
50
-            <el-date-picker
51
-            size="small"
52
-            v-model="end_time"
53
-            prefix-icon="el-icon-date"
54
-            :editable="false"
55
-            style="width: 196px;"
56
-            type="date"
57
-            placeholder="选择日期时间"
58
-            align="right"
59
-            format="yyyy-MM-dd"
60
-            value-format="yyyy-MM-dd"
61
-            @change="endTimeChange"
62
-            ></el-date-picker>
63
-        </div>
64
-
65
-        <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>
66
-            <el-table-column align="center" prop="dialysis_no" label="单据编码">
67
-                <template slot-scope="scope">{{scope.row.dialysis_no}}</template>
68
-            </el-table-column>
69
-            <el-table-column align="center" prop="name" label="药品名称">
70
-                <template slot-scope="scope">{{ scope.row.name }}</template>
71
-            </el-table-column>
72
-            <el-table-column align="center" prop="dialysis_no" label="规格名称">
73
-                <template slot-scope="scope">{{scope.row.dialysis_no}}</template>
74
-            </el-table-column>
75
-            <el-table-column align="center" prop="name" label="批号">
76
-                <template slot-scope="scope">{{ scope.row.name }}</template>
77
-            </el-table-column>
78
-            <el-table-column align="center" prop="name" label="数量">
79
-                <template slot-scope="scope">{{ scope.row.name }}</template>
80
-            </el-table-column>
81
-            <el-table-column align="center" prop="name" label="原零价">
82
-                <template slot-scope="scope">{{ scope.row.name }}</template>
83
-            </el-table-column>
84
-            <el-table-column align="center" prop="name" label="现零价">
85
-                <template slot-scope="scope">{{ scope.row.name }}</template>
86
-            </el-table-column>
87
-            <el-table-column align="center" prop="name" label="操作人">
88
-                <template slot-scope="scope">{{ scope.row.name }}</template>
89
-            </el-table-column>
90
-        </el-table>
91
-
92
-
93
-      
94
-
95
-        <el-pagination
96
-            @size-change="handleSizeChange"
97
-            @current-change="handleCurrentChange"
98
-            :page-sizes="[10, 50, 100]"
99
-            :page-size="10"
100
-            background
101
-            style="margin-top:20px;float: right"
102
-            layout="total, sizes, prev, pager, next, jumper"
103
-            :total="total"
25
+      <div class="cell clearfix">
26
+        <el-button
27
+          size="small"
28
+          class="filter-item"
29
+          type="primary"
30
+          icon="el-icon-search"
31
+          @click="setting"
32
+        >设置</el-button
104 33
         >
105
-        </el-pagination>
34
+      </div>
35
+
36
+      <el-table
37
+        :row-style="{ color: '#303133' }"
38
+        :header-cell-style="{
39
+          backgroundColor: 'rgb(245, 247, 250)',
40
+          color: '#606266'
41
+        }"
42
+        :data="WarehouseInfo.warehouseInfoDate"
43
+        :class="signAndWeighBoxPatients"
44
+        border
45
+        v-loading="WarehouseInfo.loading"
46
+        :span-method="merge"
47
+
48
+      >
49
+        <el-table-column label="药品名称" align="center">
50
+          <template slot-scope="scope">
51
+            {{ scope.row.drug_name }}
52
+          </template>
53
+        </el-table-column>
54
+        <el-table-column label="规格名称" align="center">
55
+          <template slot-scope="scope">
56
+            <span>{{ scope.row.drug_spec }}</span>
57
+          </template>
58
+        </el-table-column>
59
+        <el-table-column label="入库数量" align="center">
60
+          <template slot-scope="scope">
61
+            <span
62
+              @click="showStockInDetailDialog(scope.row.drug_id)"
63
+            >{{ stockInCount(scope.row) }}</span
64
+            >
65
+          </template>
66
+        </el-table-column>
67
+        <el-table-column label="入库退货" align="center">
68
+          <template slot-scope="scope">
69
+            <span
70
+              @click="showSaleReturnDetailDialog(scope.row)"
71
+            >{{ salesReturnCount(scope.row) }}</span
72
+            >
73
+          </template>
74
+        </el-table-column>
75
+        <el-table-column label="实际入库" align="center">
76
+          <template slot-scope="scope">
77
+            {{ stockInCount(scope.row) - salesReturnCount(scope.row) }}
78
+          </template>
79
+        </el-table-column>
80
+        <el-table-column label="出库数量" align="center">
81
+          <template slot-scope="scope">
82
+            <span
83
+              @click="showStockOutDetailDialog(scope.row.drug_id)"
84
+            >{{ stockOutCount(scope.row) }}</span
85
+            >
86
+          </template>
87
+        </el-table-column>
88
+        <el-table-column label="出库退库" align="center">
89
+          <template slot-scope="scope">
90
+            <span
91
+              @click="showCancelStockDetailDialog(scope.row)"
92
+            >{{ cancelStockCount(scope.row) }}</span
93
+            >
94
+          </template>
95
+        </el-table-column>
96
+        <el-table-column label="实际出库" align="center">
97
+          <template slot-scope="scope">
98
+            {{ stockOutCount(scope.row) - cancelStockCount(scope.row) }}
99
+          </template>
100
+        </el-table-column>
101
+
102
+        <el-table-column label="剩余库存" align="center">
103
+          <template slot-scope="scope">
104
+            <span>{{
105
+              stockInCount(scope.row) -
106
+                salesReturnCount(scope.row) -
107
+                stockOutCount(scope.row) +
108
+                cancelStockCount(scope.row)
109
+            }}</span>
110
+          </template>
111
+        </el-table-column>
112
+      </el-table>
113
+      <el-pagination
114
+        @size-change="handleSizeChange"
115
+        @current-change="handleCurrentChange"
116
+        :page-sizes="[10, 50, 100]"
117
+        :page-size="10"
118
+        background
119
+        align="right"
120
+        style="margin-top:20px;"
121
+        layout="total, sizes, prev, pager, next, jumper"
122
+        :total="total"
123
+      >
124
+      </el-pagination>
106 125
     </div>
126
+
127
+    <setting-dialog
128
+      ref="dialog"
129
+    ></setting-dialog>
130
+
107 131
   </div>
108 132
 </template>
109 133
 
110 134
 <script>
111
-import BreadCrumb from "../../components/bread-crumb";
112
-
113
-export default {
114
-  name: "stockIn",
115
-  components: { BreadCrumb },
116
-  created() {
117
-    
118
-  },
119
-  data() {
120
-    return {
135
+  import { uParseTime } from '@/utils/tools'
136
+  import BreadCrumb from '@/xt_pages/components/bread-crumb'
137
+  import { getAllDrugStockQueryList } from '@/api/drug/drug_stock'
138
+  import SettingDialog from './settingDialog/index'
139
+
140
+  export default {
141
+    name: "stockIn",
142
+    created() {
143
+      this.GetAllDrugStockQueryList();
144
+    },
145
+    components: {
146
+      SettingDialog,
147
+      BreadCrumb
148
+    },
149
+    data() {
150
+      return {
121 151
         crumbs: [
122
-            { path: false, name: "库存管理" },
123
-            { path: false, name: "入库单" }
152
+          { path: false, name: "库存管理" },
153
+          { path: "/stock/drugs/stock/query", name: "药品库存查询" }
124 154
         ],
125
-        searchKey: "",
126
-        tableData: [{
127
-            date: '2016-05-02',
128
-            name: '王小虎',
129
-            address: '上海市普陀区金沙江路 1518 弄'
130
-            }, {
131
-            date: '2016-05-04',
132
-            name: '王小虎',
133
-            address: '上海市普陀区金沙江路 1517 弄'
134
-            }, {
135
-            date: '2016-05-01',
136
-            name: '王小虎',
137
-            address: '上海市普陀区金沙江路 1519 弄'
138
-            }, {
139
-            date: '2016-05-03',
140
-            name: '王小虎',
141
-            address: '上海市普陀区金沙江路 1516 弄'
142
-        }]
143
-      
144
-    };
145
-  },
146
-  methods: {
147
-    
148
-  }
149
-};
155
+        keywords: "",
156
+        total: 0,
157
+        multipleSelection: [],
158
+        signAndWeighBoxPatients: "sign-and-weigh-box-patients",
159
+        start_time: "",
160
+        end_time: "",
161
+        page: 1,
162
+        limit: 10,
163
+        goodType: [],
164
+        goodInfo: [],
165
+        tempArr:[],
166
+        sameRowArr: [],
167
+        WarehouseInfo: {
168
+          loading: false,
169
+          warehouseInfoDate: []
170
+        }
171
+      };
172
+    },
173
+    methods: {
174
+      handleSpanTempArr(){
175
+        this.tempArr = []
176
+
177
+        for (let i = 0; i < this.WarehouseInfo.warehouseInfoDate.length; i++) {
178
+          if (i === 0) {
179
+            this.tempArr.push(1)
180
+            this.pos = 0
181
+          } else {
182
+            // 判断当前元素与上一个元素是否相同
183
+            if (this.WarehouseInfo.warehouseInfoDate[i].drug_name === this.WarehouseInfo.warehouseInfoDate[i - 1].drug_name) {
184
+              this.tempArr[this.pos] += 1
185
+              this.tempArr.push(0)
186
+            } else {
187
+              this.tempArr.push(1)
188
+              this.pos = i
189
+            }
190
+          }
191
+        }
192
+
193
+        let sameRowArr = [], sIdx = 0
194
+        this.WarehouseInfo.warehouseInfoDate.forEach((item, index) => {
195
+          item.index = index
196
+          if (index === 0) {
197
+            sameRowArr.push([index])
198
+          } else {
199
+            if (item.drug_name === this.WarehouseInfo.warehouseInfoDate[index - 1].drug_name) {
200
+              sameRowArr[sIdx].push(index)
201
+            } else {
202
+              sIdx = sIdx + 1
203
+              sameRowArr.push([index])
204
+            }
205
+          }
206
+        })
207
+        this.sameRowArr = sameRowArr
208
+
209
+
210
+
211
+      },
212
+      merge({ row, column, rowIndex, columnIndex }) {
213
+        if (columnIndex === 0) {
214
+          const _row = this.tempArr[rowIndex]
215
+          const _col = _row > 0 ? 1 : 0
216
+          return {
217
+            rowspan: _row,
218
+            colspan: _col
219
+          }
220
+        }
221
+      },
222
+      GetAllDrugStockQueryList: function() {
223
+        console.log(this.keywords);
224
+        const Params = {
225
+          page: this.page,
226
+          limit: this.limit,
227
+          keyword: this.keywords
228
+        };
229
+        this.WarehouseInfo.loading = true;
230
+        this.WarehouseInfo.warehouseInfoDate = [];
231
+        getAllDrugStockQueryList(Params).then(response => {
232
+          if (response.data.state == 0) {
233
+            this.WarehouseInfo.loading = false;
234
+            this.$message.error(response.data.msg);
235
+            return false;
236
+          } else {
237
+            this.WarehouseInfo.loading = false;
238
+            this.total = response.data.data.total;
239
+            for (let i = 0; i < response.data.data.list.length; i++) {
240
+
241
+              this.WarehouseInfo.warehouseInfoDate.push(
242
+                response.data.data.list[i]
243
+              );
244
+            }
245
+            this.handleSpanTempArr()
246
+          }
247
+        });
248
+      },
249
+      getSpecificationName: function(id) {
250
+        let name = "";
251
+        for (let i = 0; i < this.goodInfo.length; i++) {
252
+          if (this.goodInfo[i].id == id) {
253
+            name = this.goodInfo[i].specification_name;
254
+          }
255
+        }
256
+        return name;
257
+      },
258
+      getTypeName: function(id) {
259
+        let name = "";
260
+        for (let i = 0; i < this.goodType.length; i++) {
261
+          if (this.goodType[i].id == id) {
262
+            name = this.goodType[i].type_name;
263
+          }
264
+        }
265
+        return name;
266
+      },
267
+      GetAllGoodType: function() {
268
+        GetAllGoodType().then(response => {
269
+          if (response.data.state == 0) {
270
+            this.$message.error(response.data.msg);
271
+            return false;
272
+          } else {
273
+            for (let i = 0; i < response.data.data.goodType.length; i++) {
274
+              this.goodType.push(response.data.data.goodType[i]);
275
+            }
276
+          }
277
+        });
278
+      },
279
+      GetAllGoodInfo: function() {
280
+        GetAllGoodInfo().then(response => {
281
+          if (response.data.state == 0) {
282
+            this.$message.error(response.data.msg);
283
+            return false;
284
+          } else {
285
+            for (let i = 0; i < response.data.data.goodInfo.length; i++) {
286
+              this.goodInfo.push(response.data.data.goodInfo[i]);
287
+            }
288
+          }
289
+        });
290
+      },
291
+      handleBack: function() {
292
+        this.$router.go(-1);
293
+      },
294
+      handleSizeChange(val) {
295
+        this.limit = val;
296
+        this.GetAllStockQuery();
297
+      },
298
+      handleCurrentChange(val) {
299
+        this.page = val;
300
+        this.GetAllStockQuery();
301
+      },
302
+      calculate: function(val) {
303
+        return Math.round(parseFloat(val) * 100) / 100;
304
+      },
305
+      startTimeChange: function() {
306
+        this.GetAllStockQuery();
307
+      },
308
+      endTimeChange: function() {
309
+        this.GetAllStockQuery();
310
+      },
311
+      stockInCount: function(row) {
312
+        let total = 0;
313
+        for (let i = 0; i < row.query_drug_warehousing_info.length; i++) {
314
+          total = total + row.query_drug_warehousing_info[i].warehousing_count;
315
+        }
316
+        return total;
317
+      },
318
+      salesReturnCount: function(row) {
319
+        let total = 0;
320
+        for (let i = 0; i < row.query_drug_sales_return_info.length; i++) {
321
+          total = total + row.query_drug_sales_return_info[i].count;
322
+        }
323
+        return total;
324
+      },
325
+      stockOutCount: function(row) {
326
+        let total = 0;
327
+        for (let i = 0; i < row.query_drug_warehouseout_info.length; i++) {
328
+          total = total + row.query_drug_warehouseout_info[i].count;
329
+        }
330
+        return total;
331
+      },
332
+      cancelStockCount: function(row) {
333
+        let total = 0;
334
+        for (let i = 0; i < row.query_drug_cancel_stock_info.length; i++) {
335
+          total = total + row.query_drug_cancel_stock_info[i].count;
336
+        }
337
+        return total;
338
+      },
339
+      showStockInDetailDialog: function(val) {},
340
+      showSaleReturnDetailDialog: function() {},
341
+      showStockOutDetailDialog: function() {},
342
+      showCancelStockDetailDialog: function() {},
343
+      search: function() {
344
+        this.GetAllStockQuery();
345
+      },setting:function() {
346
+        this.$refs.dialog.show()
347
+      }
348
+    }
349
+  };
150 350
 </script>
151 351
 
152 352
 <style rel="stylesheet/css" lang="scss" scoped>
153
-.information {
154
-  border: 1px #dcdfe6 solid;
155
-  padding: 30px 20px 30px 20px;
353
+  .information {
354
+    border: 1px #dcdfe6 solid;
355
+    padding: 30px 20px 30px 20px;
156 356
 
157 357
   .border {
158 358
     border-bottom: 1px #dcdfe6 solid;
159 359
     margin: 0px 0 20px 0;
160 360
   }
161
-}
361
+  }
362
+
363
+  .title {
364
+    background: #409eff;
365
+    height: 44px;
366
+    line-height: 44px;
367
+    padding: 0 0 0 10px;
368
+    color: #fff;
369
+    margin: 0 0 10px 0;
370
+  }
162 371
 
163
-.edit_separater {
164
-  border-top: 1px solid rgb(233, 233, 233);
165
-  margin-top: 15px;
166
-  margin-bottom: 15px;
167
-}
372
+  .edit_separater {
373
+    border-top: 1px solid rgb(233, 233, 233);
374
+    margin-top: 15px;
375
+    margin-bottom: 15px;
376
+  }
168 377
 </style>
169 378
 
170 379
 <style>
171
-.sign-and-weigh-box .sign-and-weigh-box-patients .cell {
172
-  font-size: 12px;
173
-}
174
-
175
-.sign-and-weigh-box .sign-and-weigh-box-patients .current-row > td {
176
-  background: #6fb5fa;
177
-}
178
-
179
-.count {
180
-  color: #bd2c00;
181
-}
182
-.el-table td,
183
-.el-table th.is-leaf,
184
-.el-table--border,
185
-.el-table--group {
186
-  border-color: #d0d3da;
187
-}
188
-.el-table--border::after,
189
-.el-table--group::after,
190
-.el-table::before {
191
-  background-color: #d0d3da;
192
-}
380
+  .sign-and-weigh-box .sign-and-weigh-box-patients .cell {
381
+    font-size: 12px;
382
+  }
383
+
384
+  .sign-and-weigh-box .sign-and-weigh-box-patients .current-row > td {
385
+    background: #6fb5fa;
386
+  }
387
+
388
+  .count {
389
+    color: #bd2c00;
390
+  }
391
+  .el-table td,
392
+  .el-table th.is-leaf,
393
+  .el-table--border,
394
+  .el-table--group {
395
+    border-color: #d0d3da;
396
+  }
397
+  .el-table--border::after,
398
+  .el-table--group::after,
399
+  .el-table::before {
400
+    background-color: #d0d3da;
401
+  }
193 402
 </style>

+ 107 - 0
src/xt_pages/stock/drugs/settingDialog/index.vue View File

@@ -0,0 +1,107 @@
1
+<template>
2
+  <el-dialog title="设置" :visible.sync="visibility" :close-on-click-modal="isClose"
3
+             :close-on-press-escape="isClose">
4
+    <div style="text-align: center;">
5
+
6
+      <div>
7
+        <el-button type="primary" v-if="!is_open" @click="changeOpen(1)">启用自动扣减</el-button>
8
+        <el-button type="danger" v-if="is_open" @click="changeOpen(2)">关闭自动扣减</el-button>
9
+        <div style="margin-top: 40px;"><p style="color:#909399;text-align: center;">
10
+          启用“药品管理”后,在开透析医嘱时,医生可以选择药品后将自动产生出库单</p></div>
11
+      </div>
12
+    </div>
13
+
14
+    <span slot="footer" class="dialog-footer">
15
+    <el-button @click="hide()">取 消</el-button>
16
+  </span>
17
+  </el-dialog>
18
+
19
+</template>
20
+
21
+<script>
22
+  import { createDrugStockAutomaticReduceConfig, getDrugStockAutomaticReduceConfig } from '@/api/drug/drug_stock'
23
+
24
+  export default {
25
+    name: 'settingDialog',
26
+    data() {
27
+      return {
28
+        is_open: false,
29
+        visibility: false,
30
+        isClose: false
31
+      }
32
+    },
33
+    props: {
34
+      propForm: {
35
+        type: Object
36
+      }
37
+    },
38
+    methods: {
39
+      hide: function() {
40
+        this.visibility = false
41
+      },
42
+      show: function() {
43
+        this.getConfig()
44
+        this.visibility = true
45
+
46
+      }, changeOpen(val) {
47
+        var message = ''
48
+        if (val == 1) {
49
+          message = '启用药品自动扣减功能'
50
+        } else {
51
+          message = '关闭药品自动扣减功能'
52
+        }
53
+
54
+        this.$confirm(message, '提示', {
55
+          confirmButtonText: '确定',
56
+          cancelButtonText: '取消',
57
+          type: 'info'
58
+        }).then(() => {
59
+          createDrugStockAutomaticReduceConfig(val).then(response => {
60
+            if (response.data.state == 0) {
61
+              this.$message.error(response.data.msg)
62
+              return false
63
+            } else {
64
+              if (response.data.data.is_open == 1) {
65
+                this.is_open = true
66
+                this.$message({
67
+                  type: 'success',
68
+                  message: '已启用'
69
+                })
70
+              } else {
71
+                this.is_open = false
72
+                this.$message({
73
+                  type: 'success',
74
+                  message: '已关闭'
75
+                })
76
+              }
77
+            }
78
+          })
79
+        }).catch(() => {
80
+
81
+        })
82
+
83
+      },
84
+      getConfig() {
85
+        getDrugStockAutomaticReduceConfig().then(response => {
86
+          if (response.data.state == 0) {
87
+            this.$message.error(response.data.msg)
88
+            return false
89
+          } else {
90
+            var config = response.data.data.config
91
+            if (config.is_open == 1) {
92
+              this.is_open = true
93
+            } else {
94
+              this.is_open = false
95
+            }
96
+          }
97
+        })
98
+      }
99
+    }
100
+
101
+  }
102
+
103
+</script>
104
+
105
+<style scoped>
106
+
107
+</style>