Procházet zdrojové kódy

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

XMLWAN před 4 roky
rodič
revize
5ae0d1feaa
93 změnil soubory, kde provedl 5542 přidání a 1092 odebrání
  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ární
      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 Zobrazit soubor

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

+ 12 - 31
package-lock.json Zobrazit soubor

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

+ 1 - 1
package.json Zobrazit soubor

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

+ 12 - 2
src/api/data.js Zobrazit soubor

148
 
148
 
149
 
149
 
150
 
150
 
151
-export function createMedicineInsurancePercent(params) {
151
+export function createMedicineInsurancePercent(params,module) {
152
   return request({
152
   return request({
153
-    url: '/api/medicineinsurancepercent/create',
153
+    url: '/api/medicineinsurancepercent/create?module='+module,
154
     method: 'post',
154
     method: 'post',
155
     data: params
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
 export function createDrugUnitSafeguard(params) {
168
 export function createDrugUnitSafeguard(params) {
161
   return request({
169
   return request({
162
     url: '/api/drugunitsafeguard/create',
170
     url: '/api/drugunitsafeguard/create',
167
 
175
 
168
 
176
 
169
 
177
 
178
+
179
+

+ 1 - 0
src/api/datastore.js Zobrazit soubor

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

+ 9 - 0
src/api/drug.js Zobrazit soubor

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 Zobrazit soubor

42
 
42
 
43
 export function getDrugSalesReturnList(params) {
43
 export function getDrugSalesReturnList(params) {
44
   return request({
44
   return request({
45
-    url: '/api/salesreturn/list',
45
+    url: '/api/drugsalesreturn/list',
46
     method: 'get',
46
     method: 'get',
47
     params: params
47
     params: params
48
   })
48
   })
355
 }
355
 }
356
 
356
 
357
 
357
 
358
+
358
 export function getWarehouseOutUser(params) {
359
 export function getWarehouseOutUser(params) {
359
   return request({
360
   return request({
360
     url: '/api/drugwarehouseout/user',
361
     url: '/api/drugwarehouseout/user',
362
     params: params
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ární
src/assets/logo/logo2.png Zobrazit soubor


+ 26 - 2
src/lang/zh.js Zobrazit soubor

149
     RescueRecord: '抢救记录',
149
     RescueRecord: '抢救记录',
150
     special_permission_manage: '特殊权限管理',
150
     special_permission_manage: '特殊权限管理',
151
     schedule_print: '排班打印',
151
     schedule_print: '排班打印',
152
-    
152
+
153
     drugsExpiryDate:'药品有效期预警',
153
     drugsExpiryDate:'药品有效期预警',
154
     drugsSurplus:'药品剩余预警',
154
     drugsSurplus:'药品剩余预警',
155
     drugsQuery:'明细查询',
155
     drugsQuery:'明细查询',
201
 
201
 
202
     slow: '慢病管理',
202
     slow: '慢病管理',
203
     scrm: 'SCRM',
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
   navbar: {
230
   navbar: {
207
     logOut: '退出登录',
231
     logOut: '退出登录',

+ 37 - 1
src/router/index.js Zobrazit soubor

21
 import slow from './modules/slow'
21
 import slow from './modules/slow'
22
 import scrm from './modules/scrm'
22
 import scrm from './modules/scrm'
23
 import shop from './modules/shop'
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
 Vue.use(Router)
43
 Vue.use(Router)
26
 
44
 
94
 
112
 
95
 var _asy_router_map = [
113
 var _asy_router_map = [
96
   patient,
114
   patient,
115
+  createPatient,
97
   workforce,
116
   workforce,
98
   medicalScheduling,
117
   medicalScheduling,
99
   weight_sign,
118
   weight_sign,
119
+  dialysisRecord,
100
   dialysis,
120
   dialysis,
101
   stock,
121
   stock,
122
+  selfPreparedMedicine,
123
+  drugs,
124
+  otherManagement,
102
   qcd,
125
   qcd,
103
   device,
126
   device,
104
   org,
127
   org,
107
   scrm,
130
   scrm,
108
   shop,
131
   shop,
109
   integration,
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
 var is_asy_router = process.env.NODE_ENV === 'production' // true; 设置为 true 强制进行路由验证
149
 var is_asy_router = process.env.NODE_ENV === 'production' // true; 设置为 true 强制进行路由验证

+ 17 - 0
src/router/modules/createPatient.js Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

12
   },
12
   },
13
   children: [
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
       path: '/data/showconfig',
45
       path: '/data/showconfig',
45
       component: () => import('@/xt_pages/data/showConfig'),
46
       component: () => import('@/xt_pages/data/showConfig'),
46
       name: 'showconfig',
47
       name: 'showconfig',

+ 0 - 9
src/router/modules/dialysis.js Zobrazit soubor

11
     icon: 'touxi'
11
     icon: 'touxi'
12
   },
12
   },
13
   children: [
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
       path: '/dialysis/watch',
15
       path: '/dialysis/watch',
25
       component: () => import('@/xt_pages/dialysis/bloodPresssWatch'),
16
       component: () => import('@/xt_pages/dialysis/bloodPresssWatch'),

+ 17 - 0
src/router/modules/dialysisRecord.js Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

5
   component: Layout,
5
   component: Layout,
6
   redirect: 'noredirect',
6
   redirect: 'noredirect',
7
   name: 'User',
7
   name: 'User',
8
-  alwaysShow: true,
9
   meta: {
8
   meta: {
10
     title: 'user',
9
     title: 'user',
11
     icon: 'bingren'
10
     icon: 'bingren'
19
       noCache: true
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
     path: '/patients/patient/:id',
22
     path: '/patients/patient/:id',
33
     component: () => import('@/xt_pages/user/patientInfo'),
23
     component: () => import('@/xt_pages/user/patientInfo'),

+ 18 - 0
src/router/modules/roleManage.js Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

201
       hidden: true,
201
       hidden: true,
202
       is_menu: false,
202
       is_menu: false,
203
       meta: { title: 'salesReturnDetail', noCache: true }
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
       path: '/stock/return/add',
213
       path: '/stock/return/add',
364
         noCache: true
371
         noCache: true
365
       }
372
       }
366
     },
373
     },
374
+
367
     {
375
     {
368
       path: '/stock/drugs/stock/in',
376
       path: '/stock/drugs/stock/in',
369
       component: () => import('@/xt_pages/stock/drugs/drugStockInOrder'),
377
       component: () => import('@/xt_pages/stock/drugs/drugStockInOrder'),
394
     {
402
     {
395
       path: '/stock/drugs/stock/cancel',
403
       path: '/stock/drugs/stock/cancel',
396
       component: () => import('@/xt_pages/stock/drugs/cancelDrugStockOrder'),
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
       hidden: true,
406
       hidden: true,
417
       is_menu: false,
407
       is_menu: false,
418
       num: 3,
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
       path: '/stock/drugs/stock/query',
430
       path: '/stock/drugs/stock/query',
423
       component: () => import('@/xt_pages/stock/drugs/query'),
431
       component: () => import('@/xt_pages/stock/drugs/query'),
427
       num: 3,
435
       num: 3,
428
       meta: { title: 'drugsQuery', noCache: true }
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 Zobrazit soubor

3
 export default {
3
 export default {
4
   path: '/sign',
4
   path: '/sign',
5
   component: Layout,
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
   children: [{
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
     path: '/sign',
34
     path: '/sign',
9
     component: () => import('@/xt_pages/sign/index'),
35
     component: () => import('@/xt_pages/sign/index'),
10
     name: 'sign',
36
     name: 'sign',

+ 1 - 1
src/store/modules/xt_permission.js Zobrazit soubor

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

+ 8 - 4
src/styles/index.scss Zobrazit soubor

139
 .app-container {
139
 .app-container {
140
   padding: 20px;
140
   padding: 20px;
141
   background: #fff;
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
 .components-container {
147
 .components-container {
349
 }
350
 }
350
 
351
 
351
 .position {
352
 .position {
352
-  background: #f6f8f9;
353
+  background: #fff;
353
   padding: 10px 20px;
354
   padding: 10px 20px;
354
   display: flex;
355
   display: flex;
355
   align-items: center;
356
   align-items: center;
356
   justify-content: space-between;
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
 .app-container {
364
 .app-container {
365
+  height:100%;
362
   .cell.clearfix {
366
   .cell.clearfix {
363
     margin: 0px 0 12px 0;
367
     margin: 0px 0 12px 0;
364
     display: flex;
368
     display: flex;

+ 20 - 14
src/styles/sidebar.scss Zobrazit soubor

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

+ 249 - 59
src/views/layout/Layout.vue Zobrazit soubor

1
 <template>
1
 <template>
2
   <div class="app-wrapper" :class="classObj">
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
         <app-main></app-main>
38
         <app-main></app-main>
12
       </div>
39
       </div>
13
     </div>
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
   </div>
92
   </div>
15
 </template>
93
 </template>
16
 
94
 
17
 <script>
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
 export default {
99
 export default {
22
-  name: "layout",
100
+  name: 'layout',
23
   components: {
101
   components: {
24
     Navbar,
102
     Navbar,
25
     Sidebar,
103
     Sidebar,
27
     TagsView
105
     TagsView
28
   },
106
   },
29
   mixins: [ResizeMixin],
107
   mixins: [ResizeMixin],
108
+  data(){
109
+    return{
110
+      index:2,
111
+      navTitle:'透析管理',
112
+      sign:false,
113
+      navShow:true
114
+    }
115
+  },
30
   computed: {
116
   computed: {
31
     sidebar() {
117
     sidebar() {
32
-      return this.$store.state.app.sidebar;
118
+      return this.$store.state.app.sidebar
33
     },
119
     },
34
     device() {
120
     device() {
35
-      return this.$store.state.app.device;
121
+      return this.$store.state.app.device
36
     },
122
     },
37
     classObj() {
123
     classObj() {
38
       return {
124
       return {
39
         hideSidebar: !this.sidebar.opened,
125
         hideSidebar: !this.sidebar.opened,
40
         openSidebar: this.sidebar.opened,
126
         openSidebar: this.sidebar.opened,
41
         withoutAnimation: this.sidebar.withoutAnimation,
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
   methods: {
132
   methods: {
53
     handleClickOutside() {
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
 </script>
166
 </script>
64
 
167
 
65
 <style rel="stylesheet/scss" lang="scss" scoped>
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
   //   position: fixed;
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
 </style>
289
 </style>

+ 9 - 4
src/views/layout/components/AppMain.vue Zobrazit soubor

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

+ 32 - 27
src/views/layout/components/Navbar.vue Zobrazit soubor

63
 
63
 
64
       </div>
64
       </div>
65
     </el-menu>-->
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
     </div>
86
     </div>
82
     <div class="navRight">
87
     <div class="navRight">
83
       <!-- <el-input placeholder="搜索患者透析号/姓名/首拼" prefix-icon="el-icon-search" v-model="input2"></el-input>
88
       <!-- <el-input placeholder="搜索患者透析号/姓名/首拼" prefix-icon="el-icon-search" v-model="input2"></el-input>
300
 
305
 
301
 <style rel="stylesheet/scss" lang="scss" scoped>
306
 <style rel="stylesheet/scss" lang="scss" scoped>
302
 .top-nav {
307
 .top-nav {
303
-  background: #409eff;
308
+  background: #fff;
304
   position: fixed;
309
   position: fixed;
305
   top: 0;
310
   top: 0;
306
-  left: 150px;
311
+  left: 0px;
307
   right: 0;
312
   right: 0;
308
   z-index: 1000;
313
   z-index: 1000;
309
   height: 50px;
314
   height: 50px;
310
   display: flex;
315
   display: flex;
311
   align-items: center;
316
   align-items: center;
312
   justify-content: space-between;
317
   justify-content: space-between;
313
-  color: #fff;
318
+  color: #666666;
314
   .dropdownBox {
319
   .dropdownBox {
315
     margin-left: 10px;
320
     margin-left: 10px;
316
   }
321
   }
325
       float: right;
330
       float: right;
326
       height: 100%;
331
       height: 100%;
327
       z-index: 99999;
332
       z-index: 99999;
328
-      color: #fff;
333
+      color: #666666;
329
       & :focus {
334
       & :focus {
330
         outline: none;
335
         outline: none;
331
       }
336
       }
371
           .user-title {
376
           .user-title {
372
             margin: 0 8px;
377
             margin: 0 8px;
373
             font-size: 14px;
378
             font-size: 14px;
374
-            color: #fff;
379
+            color: #666666;
375
           }
380
           }
376
 
381
 
377
           .el-icon-caret-bottom {
382
           .el-icon-caret-bottom {
378
             font-size: 12px;
383
             font-size: 12px;
379
-            color: #fff;
384
+            color: #666666;
380
           }
385
           }
381
         }
386
         }
382
       }
387
       }
384
   }
389
   }
385
 
390
 
386
   .nav-logo {
391
   .nav-logo {
387
-    width: 162px;
392
+    width: 140px;
388
     display: flex;
393
     display: flex;
389
     align-items: center;
394
     align-items: center;
390
-    height: 60px;
395
+    // height: 60px;
391
     text-align: center;
396
     text-align: center;
392
     justify-content: center;
397
     justify-content: center;
393
-    padding: 10px 0;
398
+    // padding: 10px 0;
394
     box-sizing: border-box;
399
     box-sizing: border-box;
395
     float: left;
400
     float: left;
396
 
401
 
469
           .user-title {
474
           .user-title {
470
             margin: 0 8px;
475
             margin: 0 8px;
471
             font-size: 14px;
476
             font-size: 14px;
472
-            color: #fff;
477
+            color: #666666;
473
           }
478
           }
474
 
479
 
475
           .el-icon-caret-bottom {
480
           .el-icon-caret-bottom {
476
             font-size: 12px;
481
             font-size: 12px;
477
-            color: #fff;
482
+            color: #666666;
478
           }
483
           }
479
         }
484
         }
480
       }
485
       }
532
 .dropdownBox {
537
 .dropdownBox {
533
   .el-dropdown-link {
538
   .el-dropdown-link {
534
     font-size: 14px;
539
     font-size: 14px;
535
-    color: #fff;
540
+    color: #666;
536
   }
541
   }
537
 }
542
 }
538
 </style>
543
 </style>

+ 40 - 243
src/views/layout/components/Sidebar/SidebarItem.vue Zobrazit soubor

1
 <template>
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
             </el-menu-item>
24
             </el-menu-item>
150
           </router-link>
25
           </router-link>
151
-        </div>
152
-      </div>
153
-    </div>
26
+        </template>
27
+      </el-submenu>
28
+
154
   </div>
29
   </div>
155
 </template>
30
 </template>
156
 
31
 
157
 <script>
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
 export default {
36
 export default {
163
-  name: "SidebarItem",
37
+  name: 'SidebarItem',
164
   props: {
38
   props: {
165
     // route object
39
     // route object
166
     item: {
40
     item: {
167
       type: Object,
41
       type: Object,
168
-      required: true,
42
+      required: true
169
     },
43
     },
170
     isNest: {
44
     isNest: {
171
       type: Boolean,
45
       type: Boolean,
172
-      default: false,
46
+      default: false
173
     },
47
     },
174
     basePath: {
48
     basePath: {
175
       type: String,
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
   data() {
53
   data() {
186
     return {
54
     return {
187
-      onlyOneChild: null,
188
-    };
55
+      onlyOneChild: null
56
+    }
189
   },
57
   },
190
   methods: {
58
   methods: {
191
     hasOneShowingChild(children) {
59
     hasOneShowingChild(children) {
192
-      const showingChildren = children.filter((item) => {
60
+      const showingChildren = children.filter(item => {
193
         if (item.hidden) {
61
         if (item.hidden) {
194
-          return false;
62
+          return false
195
         } else {
63
         } else {
196
           // temp set(will be used if only has one showing child )
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
       if (showingChildren.length === 1) {
69
       if (showingChildren.length === 1) {
202
-        return true;
70
+        return true
203
       }
71
       }
204
-      return false;
72
+      return false
205
     },
73
     },
206
     resolvePath(...paths) {
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 Zobrazit soubor

1
 <template>
1
 <template>
2
   <el-scrollbar wrapClass="scrollbar-wrapper">
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
     </div>
6
     </div>
23
     <el-menu
7
     <el-menu
24
       mode="vertical"
8
       mode="vertical"
25
       :unique-opened="uniqueOpened"
9
       :unique-opened="uniqueOpened"
26
       :show-timeout="200"
10
       :show-timeout="200"
27
       :default-active="$route.path"
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
     </el-menu>
17
     </el-menu>
65
-
66
   </el-scrollbar>
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
 </template>
19
 </template>
103
 
20
 
104
 <script>
21
 <script>
105
 import { mapGetters } from "vuex";
22
 import { mapGetters } from "vuex";
106
 import SidebarItem from "./SidebarItem";
23
 import SidebarItem from "./SidebarItem";
107
 import Hamburger from "@/components/Hamburger";
24
 import Hamburger from "@/components/Hamburger";
108
-import { generateTitle } from "@/utils/i18n";
25
+
109
 
26
 
110
 export default {
27
 export default {
111
-  components: { SidebarItem, Hamburger },
28
+  props:{
29
+    navTitle:String
30
+  },
31
+  components: { SidebarItem,Hamburger },
112
   computed: {
32
   computed: {
113
     ...mapGetters(["permission_routers", "sidebar"]),
33
     ...mapGetters(["permission_routers", "sidebar"]),
114
     isCollapse() {
34
     isCollapse() {
115
       return !this.sidebar.opened;
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
     toggleSideBar() {
45
     toggleSideBar() {
127
       this.$store.dispatch("toggleSideBar");
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
 </script>
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
 </style>
223
 </style>
237
 
224
 
238
 <style lang="scss">
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
 </style>
232
 </style>

+ 1 - 1
src/xt_pages/components/bread-crumb.vue Zobrazit soubor

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

+ 4 - 4
src/xt_pages/data/components/configure.vue Zobrazit soubor

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

+ 97 - 53
src/xt_pages/data/components/consumables.vue Zobrazit soubor

2
   <div class="page_consumables">
2
   <div class="page_consumables">
3
     <div style="display:flex;justify-content: space-between;width:100%;margin-bottom:20px;">
3
     <div style="display:flex;justify-content: space-between;width:100%;margin-bottom:20px;">
4
       <div class="cell clearfix" style="margin-bottom:0;">
4
       <div class="cell clearfix" style="margin-bottom:0;">
5
-        <el-input style="width: 180px;margin-right:10px;" @keyup.enter.native='searchAction' v-model.trim="search_input"
5
+        <el-input style="width: 180px;margin-right:10px;" @keyup.enter.native='searchAction' v-model="keywords"
6
                   class="filter-item"/>
6
                   class="filter-item"/>
7
         <el-button style="margin-right:10px;" class="filter-item" type="primary" icon="el-icon-search"
7
         <el-button style="margin-right:10px;" class="filter-item" type="primary" icon="el-icon-search"
8
                    @click="searchAction">搜索
8
                    @click="searchAction">搜索
9
         </el-button>
9
         </el-button>
10
         <label class="title"><span class="name">是否启用</span> : </label>
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
           <el-option
12
           <el-option
13
             v-for="item in options"
13
             v-for="item in options"
14
             :key="item.value"
14
             :key="item.value"
17
           </el-option>
17
           </el-option>
18
         </el-select>
18
         </el-select>
19
         <label class="title"><span class="name">是否收费</span> : </label>
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
           <el-option
21
           <el-option
22
             v-for="item in options"
22
             v-for="item in options"
23
             :key="item.value"
23
             :key="item.value"
26
           </el-option>
26
           </el-option>
27
         </el-select>
27
         </el-select>
28
         <span style="color: #909399;font-size:14px;">耗材种类 : &nbsp;</span>
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
           <el-option
30
           <el-option
31
             v-for="item,index in  getDictionaryDataConfig('system','good_kind')"
31
             v-for="item,index in  getDictionaryDataConfig('system','good_kind')"
32
             :key="index"
32
             :key="index"
50
       </el-table-column>
50
       </el-table-column>
51
       <el-table-column label="名称" align="center">
51
       <el-table-column label="名称" align="center">
52
         <template slot-scope="scope">
52
         <template slot-scope="scope">
53
-          {{ scope.row.specification_name }}
53
+          {{ scope.row.good_name }}
54
         </template>
54
         </template>
55
       </el-table-column>
55
       </el-table-column>
56
       <el-table-column prop="date" label="规格型号" align="center">
56
       <el-table-column prop="date" label="规格型号" align="center">
57
+        <template slot-scope="scope">
58
+        {{ scope.row.specification_name }}
59
+        </template>
57
 
60
 
58
       </el-table-column>
61
       </el-table-column>
59
       <el-table-column prop="date" label="耗材种类" width="140" align="center">
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
       </el-table-column>
66
       </el-table-column>
62
       <el-table-column label="耗材编码" width="140" align="center">
67
       <el-table-column label="耗材编码" width="140" align="center">
63
-
68
+        <template slot-scope="scope">
69
+          {{ scope.row.good_code }}
70
+        </template>
64
       </el-table-column>
71
       </el-table-column>
65
 
72
 
66
       <el-table-column label="最小单位" width="60" align="center">
73
       <el-table-column label="最小单位" width="60" align="center">
67
-
74
+        <template slot-scope="scope">
75
+          {{ getGoodUnit(scope.row.good_unit) }}
76
+        </template>
68
       </el-table-column>
77
       </el-table-column>
69
       <el-table-column label="零售价" width="60" align="center">
78
       <el-table-column label="零售价" width="60" align="center">
70
-
79
+        <template slot-scope="scope">
80
+          {{ scope.row.retail_price }}
81
+        </template>
71
       </el-table-column>
82
       </el-table-column>
72
       <el-table-column label="状态" width="60" align="center">
83
       <el-table-column label="状态" width="60" align="center">
84
+        <template slot-scope="scope">
85
+        {{ scope.row.good_status}}
86
+        </template>
73
 
87
 
74
       </el-table-column>
88
       </el-table-column>
75
 
89
 
76
       <el-table-column prop="date" label="操作" width="300" align="center">
90
       <el-table-column prop="date" label="操作" width="300" align="center">
77
         <template slot-scope="scope">
91
         <template slot-scope="scope">
78
           <el-button @click="handleGoodInfoEdit(scope.$index, scope.row)" type="primary" size="small">编辑</el-button>
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
           <el-button type="danger" size="small" @click="handleGoodInfoDelete(scope.$index, scope.row)">删除</el-button>
94
           <el-button type="danger" size="small" @click="handleGoodInfoDelete(scope.$index, scope.row)">删除</el-button>
81
         </template>
95
         </template>
82
       </el-table-column>
96
       </el-table-column>
94
       :total="total"
108
       :total="total"
95
     >
109
     >
96
     </el-pagination>
110
     </el-pagination>
97
-
98
-    <!--<add-consumable ref="addConsumable"></add-consumable>-->
99
     <good-info-dailog ref="addConsumable"
111
     <good-info-dailog ref="addConsumable"
100
                       :titles="goodInfo.goodInfoDialog.goodInfoTitle"
112
                       :titles="goodInfo.goodInfoDialog.goodInfoTitle"
101
                       :formValue="goodInfo.goodInfoDialog.formValue"
113
                       :formValue="goodInfo.goodInfoDialog.formValue"
104
                       v-on:dialog-comfirm="goodInfoDialogComfirm"
116
                       v-on:dialog-comfirm="goodInfoDialogComfirm"
105
                       v-on:dialog-cancle="goodInfoDialogCancle"
117
                       v-on:dialog-cancle="goodInfoDialogCancle"
106
     ></good-info-dailog>
118
     ></good-info-dailog>
119
+    <self-payment ref='selfPayment'></self-payment>
120
+
107
   </div>
121
   </div>
108
 </template>
122
 </template>
109
 
123
 
110
 <script>
124
 <script>
111
   import GoodInfoDailog from '../../stock/Dialog/goodInfoDailog'
125
   import GoodInfoDailog from '../../stock/Dialog/goodInfoDailog'
112
   import { getDictionaryDataConfig } from "@/utils/data";
126
   import { getDictionaryDataConfig } from "@/utils/data";
127
+  import selfPayment from './selfPayment'
113
 
128
 
114
   import {
129
   import {
115
     createGoodInfo,
130
     createGoodInfo,
125
   export default {
140
   export default {
126
     components: {
141
     components: {
127
       GoodInfoDailog,
142
       GoodInfoDailog,
143
+      selfPayment
128
     },
144
     },
129
     data() {
145
     data() {
130
       return {
146
       return {
203
       }
219
       }
204
     },
220
     },
205
     methods: {
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
       getDictionaryDataConfig(module,filed_name){
255
       getDictionaryDataConfig(module,filed_name){
207
         return getDictionaryDataConfig(module,filed_name)
256
         return getDictionaryDataConfig(module,filed_name)
208
 
257
 
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
             return false
529
             return false
481
           } else {
530
           } else {
482
             this.goodInfo.loading = false
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
               return false
549
               return false
499
             } else {
550
             } else {
500
               this.$refs.addConsumable.hide()
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
               this.$message.success('修改成功')
572
               this.$message.success('修改成功')
522
             }
573
             }
529
               return false
580
               return false
530
             } else {
581
             } else {
531
               this.$refs.addConsumable.hide()
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
               this.$message.success('新增成功')
585
               this.$message.success('新增成功')
536
             }
586
             }
537
           })
587
           })
541
         this.$refs.addConsumable.hide()
591
         this.$refs.addConsumable.hide()
542
       },
592
       },
543
       showInfoDialog: function() {
593
       showInfoDialog: function() {
544
-        this.$refs.addConsumable.show()
545
         this.getAllDealer()
594
         this.getAllDealer()
546
         this.getAllManufacturer()
595
         this.getAllManufacturer()
547
         this.goodInfo.goodInfoDialog.formValue.goodType = []
596
         this.goodInfo.goodInfoDialog.formValue.goodType = []
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
       getAllDealer: function() {
622
       getAllDealer: function() {
583
         this.goodInfo.goodInfoDialog.formValue.dealers = []
623
         this.goodInfo.goodInfoDialog.formValue.dealers = []
636
         this.getList()
676
         this.getList()
637
       },
677
       },
638
       searchAction() {
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
       openForm() {
686
       openForm() {
643
 
687
 
699
         this.goodInfo.goodInfoDialog.formValue.agent = ''
743
         this.goodInfo.goodInfoDialog.formValue.agent = ''
700
         this.goodInfo.goodInfoDialog.formValue.good_number = ''
744
         this.goodInfo.goodInfoDialog.formValue.good_number = ''
701
 
745
 
702
-        this.$refs.addConsumable.show()
746
+        this.$refs.addConsumable.show(0)
703
       }
747
       }
704
     }, created() {
748
     }, created() {
705
       this.getList()
749
       this.getList()

+ 3 - 3
src/xt_pages/data/components/drugs.vue Zobrazit soubor

80
       <el-table-column prop="date" label="操作" width="400" align="center">
80
       <el-table-column prop="date" label="操作" width="400" align="center">
81
         <template slot-scope="scope">
81
         <template slot-scope="scope">
82
           <el-button @click="openForm(scope.row.id)" type="primary" size="small">编辑</el-button>
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
           <!--<el-button type="primary" size="small" @click="clickMainTain">单位维护</el-button>-->
84
           <!--<el-button type="primary" size="small" @click="clickMainTain">单位维护</el-button>-->
85
           <!--<el-button type="danger" size="small">删除</el-button>-->
85
           <!--<el-button type="danger" size="small">删除</el-button>-->
86
         </template>
86
         </template>
339
       searchAction() {
339
       searchAction() {
340
         this.getList()
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
       clickMainTain() {
345
       clickMainTain() {
346
         // this.$refs.maintain.show();
346
         // this.$refs.maintain.show();

+ 168 - 40
src/xt_pages/data/components/selfPayment.vue Zobrazit soubor

1
 <template>
1
 <template>
2
-    <el-dialog
2
+  <el-dialog
3
     title="自付比例"
3
     title="自付比例"
4
     width="660px"
4
     width="660px"
5
     :visible.sync="visible"
5
     :visible.sync="visible"
6
     :before-close="_close"
6
     :before-close="_close"
7
   >
7
   >
8
-    <el-table :data="tableData" border style="width: 100%" :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
     </el-table>
16
     </el-table>
16
-    
17
+
17
     <div slot="footer" class="dialog-footer">
18
     <div slot="footer" class="dialog-footer">
18
       <el-button @click="hide">取 消</el-button>
19
       <el-button @click="hide">取 消</el-button>
19
       <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
20
       <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
23
 
24
 
24
 
25
 
25
 <script>
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
 </script>
195
 </script>

+ 1 - 1
src/xt_pages/index/verify_token.vue Zobrazit soubor

15
           // console.log(this.$store.getters.xt_permission.addRouters)
15
           // console.log(this.$store.getters.xt_permission.addRouters)
16
           this.$router.addRoutes(this.$store.getters.xt_permission.addRouters) // 动态添加可访问路由表
16
           this.$router.addRoutes(this.$store.getters.xt_permission.addRouters) // 动态添加可访问路由表
17
   //        next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
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
     }).catch((error) => {
21
     }).catch((error) => {

+ 5 - 0
src/xt_pages/kuyiShopping/index.vue Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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 Zobrazit soubor

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

+ 0 - 0
src/xt_pages/sign/lineUp.vue Zobrazit soubor


+ 0 - 0
src/xt_pages/sign/signIn.vue Zobrazit soubor


+ 111 - 56
src/xt_pages/stock/Dialog/goodInfoDailog.vue Zobrazit soubor

5
              :close-on-click-modal="isClose"
5
              :close-on-click-modal="isClose"
6
              :close-on-press-escape="isClose">
6
              :close-on-press-escape="isClose">
7
 
7
 
8
-    <el-tabs v-model="activeName" >
8
+    <el-tabs v-model="activeName">
9
       <el-tab-pane label="基础数据" name="first">
9
       <el-tab-pane label="基础数据" name="first">
10
         <div>
10
         <div>
11
           <!--:rules="rules"-->
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
             <el-form-item label="耗材名称 : " prop="good_name" style="width:100%">
14
             <el-form-item label="耗材名称 : " prop="good_name" style="width:100%">
14
               <el-input v-model="form.good_name" placeholder="" maxlength="30"></el-input>
15
               <el-input v-model="form.good_name" placeholder="" maxlength="30"></el-input>
15
             </el-form-item>
16
             </el-form-item>
52
             <el-form-item label="规格型号 : " prop="specification_name" style="width:100%">
53
             <el-form-item label="规格型号 : " prop="specification_name" style="width:100%">
53
               <el-input v-model="form.specification_name" placeholder="" maxlength="30"></el-input>
54
               <el-input v-model="form.specification_name" placeholder="" maxlength="30"></el-input>
54
             </el-form-item>
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
               <el-select v-model="form.manufacturer" style="width:100%" placeholder="请选择">
57
               <el-select v-model="form.manufacturer" style="width:100%" placeholder="请选择">
57
                 <el-option
58
                 <el-option
58
                   v-for="item,index in form.manufacturers"
59
                   v-for="item,index in form.manufacturers"
82
               <el-input v-model="form.stock_warn_count" style="width:160px;" placeholder="" maxlength="30"></el-input>
83
               <el-input v-model="form.stock_warn_count" style="width:160px;" placeholder="" maxlength="30"></el-input>
83
             </el-form-item>
84
             </el-form-item>
84
             <el-form-item label="医保编码 : " prop="medical_insurance_number">
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
             </el-form-item>
88
             </el-form-item>
87
             <el-form-item label="是否特病目录:" prop="is_special_diseases">
89
             <el-form-item label="是否特病目录:" prop="is_special_diseases">
88
               <el-select v-model="form.is_special_diseases" style="width:160px;" placeholder="请选择">
90
               <el-select v-model="form.is_special_diseases" style="width:160px;" placeholder="请选择">
115
               </el-select>
117
               </el-select>
116
             </el-form-item>
118
             </el-form-item>
117
             <!--<el-form-item label="代理商 : " prop="name" style="visibility: hidden;">-->
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
             <!--</el-form-item>-->
121
             <!--</el-form-item>-->
120
 
122
 
121
 
123
 
122
-
123
             <el-form-item label="状态 : " prop="good_status">
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
             </el-form-item>
134
             </el-form-item>
135
+
136
+
129
             <el-form-item label="备注 : " prop="name" style="width:100%;">
137
             <el-form-item label="备注 : " prop="name" style="width:100%;">
130
               <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="form.remark"></el-input>
138
               <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="form.remark"></el-input>
131
             </el-form-item>
139
             </el-form-item>
133
         </div>
141
         </div>
134
       </el-tab-pane>
142
       </el-tab-pane>
135
       <el-tab-pane label="扩展数据" name="second">
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
           <el-form-item label="默认使用数量:" prop="name">
146
           <el-form-item label="默认使用数量:" prop="name">
138
             <el-input v-model="form.default_count" style="width:160px;" placeholder="" maxlength="30"></el-input>
147
             <el-input v-model="form.default_count" style="width:160px;" placeholder="" maxlength="30"></el-input>
139
           </el-form-item>
148
           </el-form-item>
215
     </el-tabs>
224
     </el-tabs>
216
 
225
 
217
 
226
 
218
-
219
-
220
     <span slot="footer" class="dialog-footer">
227
     <span slot="footer" class="dialog-footer">
221
-    <el-button  @click="cancle('form')">取 消</el-button>
228
+    <el-button @click="cancle('form')">取 消</el-button>
222
     <el-button type="primary" @click="comfirm('form')">保 存</el-button>
229
     <el-button type="primary" @click="comfirm('form')">保 存</el-button>
223
   </span>
230
   </span>
224
   </el-dialog>
231
   </el-dialog>
227
 
234
 
228
 
235
 
229
 <script>
236
 <script>
230
-  import { getDictionaryDataConfig } from "@/utils/data";
237
+  import { getDictionaryDataConfig } from '@/utils/data'
231
 
238
 
232
   export default {
239
   export default {
233
     name: 'goodInfoDailog',
240
     name: 'goodInfoDailog',
234
     data() {
241
     data() {
235
       return {
242
       return {
236
-        visible:false,
237
-        formTitle:'',
238
-        activeName:'first',
243
+        visible: false,
244
+        formTitle: '',
245
+        activeName: 'first',
239
         options: [{
246
         options: [{
240
           value: '1',
247
           value: '1',
241
           label: '是'
248
           label: '是'
245
         }],
252
         }],
246
         good_unit: '',
253
         good_unit: '',
247
         isClose: false,
254
         isClose: false,
255
+        good_status: [],
248
         size: 11,
256
         size: 11,
249
-        visibility:false,
257
+        visibility: false,
250
         form: {
258
         form: {
251
           good_id: '',
259
           good_id: '',
252
           specification_name: '',
260
           specification_name: '',
259
           expiry_date_warn_day_count: '',
267
           expiry_date_warn_day_count: '',
260
           stock_warn_count: '',
268
           stock_warn_count: '',
261
           is_reuse: '2',
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
         rules: {
294
         rules: {
305
           medical_insurance_level: [
313
           medical_insurance_level: [
306
             { required: true, message: '请输入医保等级', trigger: 'blur' }
314
             { required: true, message: '请输入医保等级', trigger: 'blur' }
307
           ],
315
           ],
308
-          manufacturer:[
316
+          manufacturer: [
309
             { required: true, message: '请选择生产厂商', trigger: 'blur' }
317
             { required: true, message: '请选择生产厂商', trigger: 'blur' }
310
-          ],good_unit:[
318
+          ], good_unit: [
311
             { required: true, message: '请选择单位', trigger: 'blur' }
319
             { required: true, message: '请选择单位', trigger: 'blur' }
312
-          ],retail_price:[
320
+          ], retail_price: [
313
             { required: true, message: '请输入零价', trigger: 'blur' }
321
             { required: true, message: '请输入零价', trigger: 'blur' }
314
-          ],stock_warn_count:[
322
+          ], stock_warn_count: [
315
             { required: true, message: '请输入库存警戒', trigger: 'blur' }
323
             { required: true, message: '请输入库存警戒', trigger: 'blur' }
316
           ]
324
           ]
317
 
325
 
318
-
319
-
320
         }
326
         }
321
       }
327
       }
322
     },
328
     },
337
 
343
 
338
     },
344
     },
339
     methods: {
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
         this.visible = true
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
         this.visible = false
406
         this.visible = false
350
       },
407
       },
351
       cancle: function(formName) {
408
       cancle: function(formName) {
383
         form['is_special_diseases'] = this.form.is_special_diseases
440
         form['is_special_diseases'] = this.form.is_special_diseases
384
         form['is_record'] = this.form.is_record
441
         form['is_record'] = this.form.is_record
385
         form['statistics_category'] = this.form.statistics_category
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
         form['default_count'] = this.form.default_count
444
         form['default_count'] = this.form.default_count
388
         form['sign'] = this.form.sign
445
         form['sign'] = this.form.sign
389
         form['is_default'] = this.form.is_default
446
         form['is_default'] = this.form.is_default
394
         form['is_doctor_use'] = this.form.is_doctor_use
451
         form['is_doctor_use'] = this.form.is_doctor_use
395
         form['agent'] = this.form.agent
452
         form['agent'] = this.form.agent
396
         form['good_number'] = this.form.good_number
453
         form['good_number'] = this.form.good_number
397
-
398
-
399
-
454
+        form['good_status'] = this.good_status.join(',')
400
 
455
 
401
         return form
456
         return form
402
       }, changeSelected: function(val) {
457
       }, changeSelected: function(val) {

+ 2 - 2
src/xt_pages/stock/drugs/cancelDrugStockOrder.vue Zobrazit soubor

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

+ 59 - 11
src/xt_pages/stock/drugs/cancelDrugStockOrderAdd.vue Zobrazit soubor

120
 
120
 
121
               <el-form-item style="padding-top: 15px">
121
               <el-form-item style="padding-top: 15px">
122
                 <el-input
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
                   @focus="showDialog(scope.$index, scope.row)"
126
                   @focus="showDialog(scope.$index, scope.row)"
127
                 ></el-input>
127
                 ></el-input>
128
               </el-form-item>
128
               </el-form-item>
136
               <el-form-item style="padding-top: 15px">
136
               <el-form-item style="padding-top: 15px">
137
                 <el-input
137
                 <el-input
138
                   placeholder="请输入规格名称"
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
                   @focus="showDialog(scope.$index, scope.row)"
141
                   @focus="showDialog(scope.$index, scope.row)"
142
                 ></el-input>
142
                 ></el-input>
143
               </el-form-item>
143
               </el-form-item>
144
             </template>
144
             </template>
145
           </el-table-column>
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
           <el-table-column min-width="23" align="center">
168
           <el-table-column min-width="23" align="center">
148
             <template slot="header" slot-scope="scope">
169
             <template slot="header" slot-scope="scope">
149
               <span>退库数量<span style="color: red">*</span></span>
170
               <span>退库数量<span style="color: red">*</span></span>
162
               </el-form-item>
183
               </el-form-item>
163
             </template>
184
             </template>
164
           </el-table-column>
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
           <el-table-column label="操作" align="center" min-width="20">
205
           <el-table-column label="操作" align="center" min-width="20">
166
             <template slot-scope="scope">
206
             <template slot-scope="scope">
167
               <el-tooltip
207
               <el-tooltip
270
       if (val.selectedGoodInfo.length > 0) {
310
       if (val.selectedGoodInfo.length > 0) {
271
         for (let i = val.selectedGoodInfo.length - 1; i >= 0; i--) {
311
         for (let i = val.selectedGoodInfo.length - 1; i >= 0; i--) {
272
           if (i == 0) {
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
           } else {
316
           } else {
277
             const tempForm = {}
317
             const tempForm = {}
278
             tempForm['drug_id'] = val.selectedGoodInfo[i].id
318
             tempForm['drug_id'] = val.selectedGoodInfo[i].id
279
             tempForm["return_count"] = "";
319
             tempForm["return_count"] = "";
320
+            tempForm["price"] = val.selectedGoodInfo[i].last_price.toString();
321
+            tempForm["retail_price"] =  val.selectedGoodInfo[i].retail_price.toString();
280
             this.recordInfo.recordData.splice(this.currentIndex + 1, 0, tempForm)
322
             this.recordInfo.recordData.splice(this.currentIndex + 1, 0, tempForm)
281
           }
323
           }
282
         }
324
         }
283
       }
325
       }
284
       this.currentIndex = -1
326
       this.currentIndex = -1
285
-
286
     },
327
     },
287
 
328
 
288
     cancle: function() {
329
     cancle: function() {
322
 
363
 
323
     },
364
     },
324
 
365
 
325
-    typeName: function(good_type_id) {
366
+    typeName: function(drug_id) {
326
       let name = "";
367
       let name = "";
327
       for (let i = 0; i < this.goodInfo.length; i++) {
368
       for (let i = 0; i < this.goodInfo.length; i++) {
328
         if (this.goodInfo[i].id == drug_id) {
369
         if (this.goodInfo[i].id == drug_id) {
332
       }
373
       }
333
       return name;
374
       return name;
334
     },
375
     },
335
-    specificationName: function(good_info_id) {
376
+    specificationName: function(drug_id) {
336
       let name = "";
377
       let name = "";
337
       for (let i = 0; i < this.goodInfo.length; i++) {
378
       for (let i = 0; i < this.goodInfo.length; i++) {
338
         if (this.goodInfo[i].id == drug_id) {
379
         if (this.goodInfo[i].id == drug_id) {
345
       const tempObj = {};
386
       const tempObj = {};
346
       tempObj["drug_id"] = 0;
387
       tempObj["drug_id"] = 0;
347
       tempObj["return_count"] = "";
388
       tempObj["return_count"] = "";
389
+      tempObj["price"] = "";
390
+      tempObj["retail_price"] = "";
391
+
348
       this.recordInfo.recordData.push(tempObj);
392
       this.recordInfo.recordData.push(tempObj);
349
     },
393
     },
350
     handleDelete: function(index, row) {
394
     handleDelete: function(index, row) {
495
     tempObj["good_type_id"] = 0;
539
     tempObj["good_type_id"] = 0;
496
     tempObj["good_id"] = 0;
540
     tempObj["good_id"] = 0;
497
     tempObj["return_count"] = "";
541
     tempObj["return_count"] = "";
542
+    tempObj["price"] = "";
543
+    tempObj["retail_price"] = "";
544
+
545
+
498
     this.recordInfo.recordData.push(tempObj);
546
     this.recordInfo.recordData.push(tempObj);
499
     this.GetConfigInfo();
547
     this.GetConfigInfo();
500
     this.propForm.goodUnit = this.$store.getters.good_unit;
548
     this.propForm.goodUnit = this.$store.getters.good_unit;

+ 65 - 7
src/xt_pages/stock/drugs/cancelDrugStockOrderEdit.vue Zobrazit soubor

73
 
73
 
74
             <template slot-scope="scope">
74
             <template slot-scope="scope">
75
               <el-form-item style="padding-top: 15px">
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
                           @focus="showDialog(scope.$index, scope.row)"></el-input>
78
                           @focus="showDialog(scope.$index, scope.row)"></el-input>
79
               </el-form-item>
79
               </el-form-item>
80
             </template>
80
             </template>
86
             <template slot-scope="scope">
86
             <template slot-scope="scope">
87
 
87
 
88
               <el-form-item style="padding-top: 15px">
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
                           @focus="showDialog(scope.$index, scope.row)"></el-input>
91
                           @focus="showDialog(scope.$index, scope.row)"></el-input>
92
               </el-form-item>
92
               </el-form-item>
93
 
93
 
94
             </template>
94
             </template>
95
           </el-table-column>
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
           <el-table-column min-width="23" align="center">
118
           <el-table-column min-width="23" align="center">
99
             <template slot="header" slot-scope="scope">
119
             <template slot="header" slot-scope="scope">
107
             </template>
127
             </template>
108
           </el-table-column>
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
           <el-table-column label="操作" align="center" min-width="20">
149
           <el-table-column label="操作" align="center" min-width="20">
111
             <template slot-scope="scope">
150
             <template slot-scope="scope">
112
               <el-tooltip class="item" effect="dark" content="新增" placement="top">
151
               <el-tooltip class="item" effect="dark" content="新增" placement="top">
155
       return {
194
       return {
156
         crumbs: [
195
         crumbs: [
157
           { path: false, name: '库存管理' },
196
           { path: false, name: '库存管理' },
158
-          { path: false, name: '耗材退库单' },
197
+          { path: false, name: '药品退库单' },
159
           { path: false, name: '编辑退库单' }
198
           { path: false, name: '编辑退库单' }
160
         ],
199
         ],
161
 
200
 
220
         if (val.selectedGoodInfo.length > 0) {
259
         if (val.selectedGoodInfo.length > 0) {
221
           for (let i = val.selectedGoodInfo.length - 1; ; i--) {
260
           for (let i = val.selectedGoodInfo.length - 1; ; i--) {
222
             if (i == 0) {
261
             if (i == 0) {
262
+
223
               this.recordInfo.recordData[this.currentIndex].drug_id = val.selectedGoodInfo[i].id
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
             } else {
267
             } else {
225
               const tempForm = {}
268
               const tempForm = {}
226
               tempForm['id'] = 0
269
               tempForm['id'] = 0
227
               tempForm['drug_id'] = val.selectedGoodInfo[i].id
270
               tempForm['drug_id'] = val.selectedGoodInfo[i].id
228
               tempForm['count'] = ''
271
               tempForm['count'] = ''
272
+              tempForm['price'] = val.selectedGoodInfo[i].last_price.toString()
273
+              tempForm['retail_price'] =  val.selectedGoodInfo[i].retail_price.toString()
229
               this.recordInfo.recordData.splice(this.currentIndex + 1, 0, tempForm)
274
               this.recordInfo.recordData.splice(this.currentIndex + 1, 0, tempForm)
230
             }
275
             }
231
           }
276
           }
234
         this.currentIndex = -1
279
         this.currentIndex = -1
235
       }, cancle: function() {
280
       }, cancle: function() {
236
         this.$refs.dialog.hide()
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
       GetConfigInfo: function() {
288
       GetConfigInfo: function() {
239
         const loading = this.$loading({
289
         const loading = this.$loading({
266
 
316
 
267
       },
317
       },
268
 
318
 
269
-      typeName: function(good_type_id) {
319
+      typeName: function(drug_id) {
270
         let name = "";
320
         let name = "";
271
         for (let i = 0; i < this.goodInfo.length; i++) {
321
         for (let i = 0; i < this.goodInfo.length; i++) {
272
           if (this.goodInfo[i].id == drug_id) {
322
           if (this.goodInfo[i].id == drug_id) {
275
           }
325
           }
276
         }
326
         }
277
         return name;
327
         return name;
278
-      },  specificationName: function(good_info_id) {
328
+      },  specificationName: function(drug_id) {
279
         console.log(this.goodInfo)
329
         console.log(this.goodInfo)
280
         let name = "";
330
         let name = "";
281
         for (let i = 0; i < this.goodInfo.length; i++) {
331
         for (let i = 0; i < this.goodInfo.length; i++) {
289
         tempObj['id'] = 0
339
         tempObj['id'] = 0
290
         tempObj['drug_id'] = 0
340
         tempObj['drug_id'] = 0
291
         tempObj['count'] = ''
341
         tempObj['count'] = ''
342
+        tempObj['price'] = ''
343
+        tempObj['retail_price'] = ''
344
+
345
+
292
         this.recordInfo.recordData.push(tempObj)
346
         this.recordInfo.recordData.push(tempObj)
293
       }, handleDelete: function(index, row) {
347
       }, handleDelete: function(index, row) {
294
         if (row.id == 0) {
348
         if (row.id == 0) {
413
           } else {
467
           } else {
414
             for (let i = 0; i < response.data.data.list.length; i++) {
468
             for (let i = 0; i < response.data.data.list.length; i++) {
415
               response.data.data.list[i].count = response.data.data.list[i].count.toString()
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
               this.recordInfo.recordData.push(response.data.data.list[i])
472
               this.recordInfo.recordData.push(response.data.data.list[i])
417
             }
473
             }
418
             this.cancelStock = response.data.data.info
474
             this.cancelStock = response.data.data.info
425
             tempObj['id'] = 0
481
             tempObj['id'] = 0
426
             tempObj['drug_id'] = 0
482
             tempObj['drug_id'] = 0
427
             tempObj['count'] = ''
483
             tempObj['count'] = ''
484
+            tempObj['price'] = ''
485
+            tempObj['retail_price'] = ''
428
             this.recordInfo.recordData.push(tempObj)
486
             this.recordInfo.recordData.push(tempObj)
429
           }
487
           }
430
         })
488
         })

+ 61 - 2
src/xt_pages/stock/drugs/drugSalesReturnEdit.vue Zobrazit soubor

106
               </template>
106
               </template>
107
             </el-table-column>
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
             <el-table-column min-width="23" align="center">
137
             <el-table-column min-width="23" align="center">
111
               <template slot="header" slot-scope="scope">
138
               <template slot="header" slot-scope="scope">
119
               </template>
146
               </template>
120
             </el-table-column>
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
             <el-table-column label="操作" align="center" min-width="20">
162
             <el-table-column label="操作" align="center" min-width="20">
123
               <template slot-scope="scope">
163
               <template slot-scope="scope">
124
                 <el-tooltip class="item" effect="dark" content="新增" placement="top">
164
                 <el-tooltip class="item" effect="dark" content="新增" placement="top">
227
           for (let i = val.selectedGoodInfo.length -1; i >= 0 ; i--) {
267
           for (let i = val.selectedGoodInfo.length -1; i >= 0 ; i--) {
228
             if (i == 0) {
268
             if (i == 0) {
229
               this.recordInfo.recordData[this.currentIndex].drug_id = val.selectedGoodInfo[i].id
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
             } else {
273
             } else {
231
               const tempForm = {}
274
               const tempForm = {}
232
               tempForm['id'] = 0
275
               tempForm['id'] = 0
233
               tempForm['drug_id'] = val.selectedGoodInfo[i].id
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
               this.recordInfo.recordData.splice(this.currentIndex + 1, 0, tempForm)
280
               this.recordInfo.recordData.splice(this.currentIndex + 1, 0, tempForm)
237
             }
281
             }
238
           }
282
           }
295
         tempObj['id'] = 0
339
         tempObj['id'] = 0
296
         tempObj['drug_id'] = 0
340
         tempObj['drug_id'] = 0
297
         tempObj['count'] = ''
341
         tempObj['count'] = ''
342
+        tempObj['price'] = ''
343
+        tempObj['retail_price'] = ''
298
         this.recordInfo.recordData.push(tempObj)
344
         this.recordInfo.recordData.push(tempObj)
299
       }, handleDelete: function(index, row) {
345
       }, handleDelete: function(index, row) {
300
         console.log(row.id)
346
         console.log(row.id)
327
         } else {
373
         } else {
328
           return ''
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
       showDialog(index, row) {
383
       showDialog(index, row) {
332
         this.currentIndex = index;
384
         this.currentIndex = index;
418
           } else {
470
           } else {
419
             for (let i = 0; i < response.data.data.list.length; i++) {
471
             for (let i = 0; i < response.data.data.list.length; i++) {
420
               response.data.data.list[i].count = response.data.data.list[i].count.toString()
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
               this.recordInfo.recordData.push(response.data.data.list[i])
476
               this.recordInfo.recordData.push(response.data.data.list[i])
422
             }
477
             }
423
             this.salesReturn = response.data.data.salesReturn
478
             this.salesReturn = response.data.data.salesReturn
431
             tempObj['id'] = 0
486
             tempObj['id'] = 0
432
             tempObj['drug_id'] = 0
487
             tempObj['drug_id'] = 0
433
             tempObj['count'] = ''
488
             tempObj['count'] = ''
489
+            tempObj['price'] = ''
490
+            tempObj['retail_price'] = ''
491
+
492
+
434
             this.recordInfo.recordData.push(tempObj)
493
             this.recordInfo.recordData.push(tempObj)
435
           }
494
           }
436
         })
495
         })

+ 2 - 2
src/xt_pages/stock/drugs/drugSalesReturnOrder.vue Zobrazit soubor

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

+ 68 - 7
src/xt_pages/stock/drugs/drugSalesReturnOrderAdd.vue Zobrazit soubor

96
             </template>
96
             </template>
97
           </el-table-column>
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
             <template slot="header" slot-scope="scope">
127
             <template slot="header" slot-scope="scope">
101
               <span>退货数量<span style="color: red">*</span></span>
128
               <span>退货数量<span style="color: red">*</span></span>
102
             </template>
129
             </template>
108
             </template>
135
             </template>
109
           </el-table-column>
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
             <template slot-scope="scope">
153
             <template slot-scope="scope">
113
               <el-tooltip class="item" effect="dark" content="新增" placement="top">
154
               <el-tooltip class="item" effect="dark" content="新增" placement="top">
114
 
155
 
155
       return {
196
       return {
156
         crumbs: [
197
         crumbs: [
157
           { path: false, name: '库存管理' },
198
           { path: false, name: '库存管理' },
158
-          { path: false, name: '耗材退货单' },
199
+          { path: false, name: '药品退货单' },
159
           { path: false, name: '新增退货单' }
200
           { path: false, name: '新增退货单' }
160
         ],
201
         ],
161
         crumbs2: [
202
         crumbs2: [
198
         manufacturer: [],
239
         manufacturer: [],
199
         dealer: [],
240
         dealer: [],
200
         goodType: [],
241
         goodType: [],
201
-        goodInfo:[]
242
+        goodInfo:[],
243
+        numbers:[],
202
 
244
 
203
       }
245
       }
204
     },
246
     },
208
         if (val.selectedGoodInfo.length > 0) {
250
         if (val.selectedGoodInfo.length > 0) {
209
           for (let i = val.selectedGoodInfo.length -1; i >= 0 ; i--) {
251
           for (let i = val.selectedGoodInfo.length -1; i >= 0 ; i--) {
210
               if (i == 0) {
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
               } else {
257
               } else {
214
                 const tempForm = {}
258
                 const tempForm = {}
215
                 tempForm['drug_id'] = val.selectedGoodInfo[i].id
259
                 tempForm['drug_id'] = val.selectedGoodInfo[i].id
216
                 tempForm['return_count'] = ''
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
                 this.recordInfo.recordData.splice(this.currentIndex + 1, 0, tempForm)
263
                 this.recordInfo.recordData.splice(this.currentIndex + 1, 0, tempForm)
219
               }
264
               }
220
           }
265
           }
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
             this.manufacturer.splice(0, 0, { id: 0, manufacturer_name: "全部" });
302
             this.manufacturer.splice(0, 0, { id: 0, manufacturer_name: "全部" });
253
             this.dealer.splice(0, 0, { id: 0, dealer_name: "全部" });
303
             this.dealer.splice(0, 0, { id: 0, dealer_name: "全部" });
254
 
304
 
296
         } else {
346
         } else {
297
           return ''
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
       showDialog(index, row) {
359
       showDialog(index, row) {
301
         const loading = this.$loading({
360
         const loading = this.$loading({
410
       const tempObj = {}
469
       const tempObj = {}
411
       tempObj['drug_id'] = 0
470
       tempObj['drug_id'] = 0
412
       tempObj['return_count'] = ''
471
       tempObj['return_count'] = ''
472
+      tempObj['number'] = ''
473
+      tempObj['retail_price'] = ''
413
       tempObj['price'] = ''
474
       tempObj['price'] = ''
414
       this.recordInfo.recordData.push(tempObj)
475
       this.recordInfo.recordData.push(tempObj)
415
       console.log(this.recordInfo.recordData)
476
       console.log(this.recordInfo.recordData)

+ 1 - 1
src/xt_pages/stock/drugs/drugSalesReturnOrderDetail.vue Zobrazit soubor

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

+ 11 - 5
src/xt_pages/stock/drugs/drugStockInOrderAdd.vue Zobrazit soubor

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

+ 22 - 5
src/xt_pages/stock/drugs/drugStockInOrderEdit.vue Zobrazit soubor

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

+ 1 - 1
src/xt_pages/stock/drugs/drugStockOutOrder.vue Zobrazit soubor

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

+ 27 - 12
src/xt_pages/stock/drugs/drugStockOutOrderAdd.vue Zobrazit soubor

138
 
138
 
139
           <el-table-column min-width="23" align="center">
139
           <el-table-column min-width="23" align="center">
140
             <template slot="header" slot-scope="scope">
140
             <template slot="header" slot-scope="scope">
141
-              <span>价<span style="color: red">*</span></span>
141
+              <span>价<span style="color: red">*</span></span>
142
             </template>
142
             </template>
143
             <template slot-scope="scope">
143
             <template slot-scope="scope">
144
               <!--<el-input type="number" v-model="scope.row.price"  @blur="handleBlur(scope.$index, scope.row)"></el-input>-->
144
               <!--<el-input type="number" v-model="scope.row.price"  @blur="handleBlur(scope.$index, scope.row)"></el-input>-->
148
                 style="padding-top: 17px"
148
                 style="padding-top: 17px"
149
               >
149
               >
150
                 <el-input
150
                 <el-input
151
-                  placeholder="请输入价"
151
+                  placeholder="请输入价"
152
                   type="number"
152
                   type="number"
153
                   v-model="scope.row.price"
153
                   v-model="scope.row.price"
154
                 ></el-input>
154
                 ></el-input>
175
             </template>
175
             </template>
176
           </el-table-column>
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
             <template slot-scope="scope">
179
             <template slot-scope="scope">
180
               {{ calculate(scope.row.price * scope.row.count) }}
180
               {{ calculate(scope.row.price * scope.row.count) }}
181
             </template>
181
             </template>
182
           </el-table-column>
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
           <el-table-column label="备注" min-width="20" align="center">
198
           <el-table-column label="备注" min-width="20" align="center">
184
             <template slot-scope="scope">
199
             <template slot-scope="scope">
185
               <el-input v-model="scope.row.remark"></el-input>
200
               <el-input v-model="scope.row.remark"></el-input>
239
     return {
254
     return {
240
       crumbs: [
255
       crumbs: [
241
         { path: false, name: "库存管理" },
256
         { path: false, name: "库存管理" },
242
-        { path: false, name: "耗材出库单" },
257
+        { path: false, name: "药品出库单" },
243
         { path: false, name: "新增出库单" }
258
         { path: false, name: "新增出库单" }
244
       ],
259
       ],
245
       crumbs2: [
260
       crumbs2: [
295
         for (let i = val.selectedGoodInfo.length - 1; i >= 0; i--) {
310
         for (let i = val.selectedGoodInfo.length - 1; i >= 0; i--) {
296
           if (i == 0) {
311
           if (i == 0) {
297
             this.recordInfo.recordData[this.currentIndex].drug_id = val.selectedGoodInfo[i].id
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
           } else {
316
           } else {
300
             const tempForm = {}
317
             const tempForm = {}
301
             tempForm['drug_id'] = val.selectedGoodInfo[i].id
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
             tempForm['count'] = ''
321
             tempForm['count'] = ''
303
-            tempForm['price'] = ''
304
             tempForm['remark'] = ''
322
             tempForm['remark'] = ''
305
             this.recordInfo.recordData.splice(this.currentIndex + 1, 0, tempForm)
323
             this.recordInfo.recordData.splice(this.currentIndex + 1, 0, tempForm)
306
           }
324
           }
400
       tempObj["drug_id"] = 0;
418
       tempObj["drug_id"] = 0;
401
       tempObj["count"] = "";
419
       tempObj["count"] = "";
402
       tempObj["price"] = "";
420
       tempObj["price"] = "";
421
+      tempObj["retail_price"] = "";
403
       tempObj["remark"] = "";
422
       tempObj["remark"] = "";
404
 
423
 
405
       this.recordInfo.recordData.push(tempObj);
424
       this.recordInfo.recordData.push(tempObj);
492
           const array = this.recordInfo.recordData;
511
           const array = this.recordInfo.recordData;
493
           let total = 0;
512
           let total = 0;
494
           for (let i = 0; i < array.length; i++) {
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
               return;
516
               return;
502
             }
517
             }
503
             total = total + array[i].price * array[i].return_count;
518
             total = total + array[i].price * array[i].return_count;
510
           const params = {
525
           const params = {
511
             stockOut: this.recordInfo.recordData
526
             stockOut: this.recordInfo.recordData
512
           };
527
           };
513
-          console.log(this.form.dealer);
514
 
528
 
515
           postDrugWarehouseOut(
529
           postDrugWarehouseOut(
516
             params,
530
             params,
557
     tempObj["price"] = "";
571
     tempObj["price"] = "";
558
     tempObj["remark"] = "";
572
     tempObj["remark"] = "";
559
 
573
 
574
+
560
     this.recordInfo.recordData.push(tempObj);
575
     this.recordInfo.recordData.push(tempObj);
561
     this.GetConfigInfo();
576
     this.GetConfigInfo();
562
     this.propForm.goodUnit = this.$store.getters.good_unit;
577
     this.propForm.goodUnit = this.$store.getters.good_unit;

+ 3 - 3
src/xt_pages/stock/drugs/drugStockOutOrderDetail.vue Zobrazit soubor

114
     components: { BreadCrumb },
114
     components: { BreadCrumb },
115
     created() {
115
     created() {
116
       const order_id = this.$route.query.id
116
       const order_id = this.$route.query.id
117
-      this.GetConfigInfo()
117
+      // this.GetConfigInfo()
118
       this.GetOrderDetail(order_id)
118
       this.GetOrderDetail(order_id)
119
     },
119
     },
120
     data() {
120
     data() {
225
             this.pos = 0
225
             this.pos = 0
226
           } else {
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
               this.tempArr[this.pos] += 1
229
               this.tempArr[this.pos] += 1
230
               this.tempArr.push(0)
230
               this.tempArr.push(0)
231
             } else {
231
             } else {
241
           if (index === 0) {
241
           if (index === 0) {
242
             sameRowArr.push([index])
242
             sameRowArr.push([index])
243
           } else {
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
               sameRowArr[sIdx].push(index)
245
               sameRowArr[sIdx].push(index)
246
             } else {
246
             } else {
247
               sIdx = sIdx + 1
247
               sIdx = sIdx + 1

+ 34 - 6
src/xt_pages/stock/drugs/drugStockOutOrderEdit.vue Zobrazit soubor

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

+ 16 - 5
src/xt_pages/stock/drugs/drugsStockDialog/index.vue Zobrazit soubor

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

+ 375 - 166
src/xt_pages/stock/drugs/query.vue Zobrazit soubor

1
 <template>
1
 <template>
2
   <div class="main-contain">
2
   <div class="main-contain">
3
     <div class="position">
3
     <div class="position">
4
-      <!--<bread-crumb :crumbs='crumbs'></bread-crumb>-->
5
       <bread-crumb :crumbs="crumbs"></bread-crumb>
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
     </div>
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
     </div>
125
     </div>
126
+
127
+    <setting-dialog
128
+      ref="dialog"
129
+    ></setting-dialog>
130
+
107
   </div>
131
   </div>
108
 </template>
132
 </template>
109
 
133
 
110
 <script>
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
         crumbs: [
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
 </script>
350
 </script>
151
 
351
 
152
 <style rel="stylesheet/css" lang="scss" scoped>
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
   .border {
357
   .border {
158
     border-bottom: 1px #dcdfe6 solid;
358
     border-bottom: 1px #dcdfe6 solid;
159
     margin: 0px 0 20px 0;
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
 </style>
377
 </style>
169
 
378
 
170
 <style>
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
 </style>
402
 </style>

+ 107 - 0
src/xt_pages/stock/drugs/settingDialog/index.vue Zobrazit soubor

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>