ylyx-cli 1.0.16 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. package/README.md +313 -276
  2. package/bin/ylyx.js +176 -168
  3. package/lib/config.js +325 -283
  4. package/lib/deploy.js +509 -529
  5. package/lib/environments.js +111 -0
  6. package/lib/generator.js +192 -192
  7. package/lib/index.js +113 -113
  8. package/lib/interactive.js +87 -87
  9. package/lib/remote.js +179 -179
  10. package/lib/template.js +174 -174
  11. package/lib/utils.js +148 -148
  12. package/package.json +61 -59
  13. package/templates/react-app/files/.gitignore +22 -0
  14. package/templates/react-app/files/README.md +23 -23
  15. package/templates/react-app/files/package.json +28 -28
  16. package/templates/react-app/files/public/index.html +11 -11
  17. package/templates/react-app/files/src/App.css +15 -15
  18. package/templates/react-app/files/src/App.js +15 -15
  19. package/templates/react-app/files/src/index.css +10 -10
  20. package/templates/react-app/files/src/index.js +11 -11
  21. package/templates/react-app/template.json +11 -11
  22. package/templates/react-component/files/Component.module.css +5 -5
  23. package/templates/react-component/files/Component.tsx +31 -31
  24. package/templates/react-component/files/index.ts +2 -2
  25. package/templates/react-component/template.json +48 -48
  26. package/templates/vue-app/files/.editorconfig +14 -14
  27. package/templates/vue-app/files/.env.development +21 -21
  28. package/templates/vue-app/files/.env.production +18 -18
  29. package/templates/vue-app/files/.eslintignore +5 -5
  30. package/templates/vue-app/files/.eslintrc.js +267 -267
  31. package/templates/vue-app/files/.gitignore +24 -0
  32. package/templates/vue-app/files/.prettierignore +11 -11
  33. package/templates/vue-app/files/.travis.yml +5 -5
  34. package/templates/vue-app/files/.vscode/extensions.json +7 -7
  35. package/templates/vue-app/files/.vscode/settings.json +39 -39
  36. package/templates/vue-app/files/LICENSE +191 -191
  37. package/templates/vue-app/files/README.md +87 -87
  38. package/templates/vue-app/files/babel.config.js +11 -11
  39. package/templates/vue-app/files/jest.config.js +24 -24
  40. package/templates/vue-app/files/package.json +136 -136
  41. package/templates/vue-app/files/plopfile.js +7 -7
  42. package/templates/vue-app/files/postcss.config.js +5 -5
  43. package/templates/vue-app/files/public/default.js +25 -25
  44. package/templates/vue-app/files/public/index.html +26 -26
  45. package/templates/vue-app/files/src/App.vue +54 -54
  46. package/templates/vue-app/files/src/api/bigDataV/index.js +198 -198
  47. package/templates/vue-app/files/src/api/data.js +42 -42
  48. package/templates/vue-app/files/src/api/dataArchive/index.js +186 -186
  49. package/templates/vue-app/files/src/api/generator/genConfig.js +16 -16
  50. package/templates/vue-app/files/src/api/generator/generator.js +32 -32
  51. package/templates/vue-app/files/src/api/indexManagement/index.js +39 -39
  52. package/templates/vue-app/files/src/api/institutionMonitor/index.js +396 -396
  53. package/templates/vue-app/files/src/api/institutionSet/index.js +120 -120
  54. package/templates/vue-app/files/src/api/login.js +44 -44
  55. package/templates/vue-app/files/src/api/selfStatistics/index.js +50 -50
  56. package/templates/vue-app/files/src/api/system/code.js +15 -15
  57. package/templates/vue-app/files/src/api/system/dict.js +34 -34
  58. package/templates/vue-app/files/src/api/system/dictDetail.js +52 -52
  59. package/templates/vue-app/files/src/api/system/equipment.js +35 -35
  60. package/templates/vue-app/files/src/api/system/examManage.js +49 -49
  61. package/templates/vue-app/files/src/api/system/examProject.js +48 -48
  62. package/templates/vue-app/files/src/api/system/hosModel.js +35 -35
  63. package/templates/vue-app/files/src/api/system/hospital.js +88 -88
  64. package/templates/vue-app/files/src/api/system/job.js +40 -40
  65. package/templates/vue-app/files/src/api/system/menu.js +67 -67
  66. package/templates/vue-app/files/src/api/system/model.js +42 -42
  67. package/templates/vue-app/files/src/api/system/risConfig.js +9 -9
  68. package/templates/vue-app/files/src/api/system/role.js +64 -64
  69. package/templates/vue-app/files/src/api/system/sysSet.js +19 -19
  70. package/templates/vue-app/files/src/api/system/timing.js +41 -41
  71. package/templates/vue-app/files/src/api/system/user.js +121 -121
  72. package/templates/vue-app/files/src/api/tools/alipay.js +25 -25
  73. package/templates/vue-app/files/src/api/tools/email.js +24 -24
  74. package/templates/vue-app/files/src/api/tools/localStorage.js +27 -27
  75. package/templates/vue-app/files/src/api/tools/qiniu.js +40 -40
  76. package/templates/vue-app/files/src/assets/css/font-awesome.css +2342 -2342
  77. package/templates/vue-app/files/src/assets/css/font-awesome.min.css +2336 -2336
  78. package/templates/vue-app/files/src/assets/fonts/fontawesome-webfont.svg +2671 -2671
  79. package/templates/vue-app/files/src/assets/icons/index.js +9 -9
  80. package/templates/vue-app/files/src/assets/icons/svg/hospital.svg +1 -1
  81. package/templates/vue-app/files/src/assets/icons/svg/hospital1.svg +1 -1
  82. package/templates/vue-app/files/src/assets/icons/svg/loginOne.svg +35 -35
  83. package/templates/vue-app/files/src/assets/icons/svg/loginOneWhite.svg +19 -19
  84. package/templates/vue-app/files/src/assets/icons/svg/loginOr.svg +93 -93
  85. package/templates/vue-app/files/src/assets/icons/svg/loginUp.svg +96 -96
  86. package/templates/vue-app/files/src/assets/icons/svg/monitor.svg +1 -1
  87. package/templates/vue-app/files/src/assets/icons/svg/offline.svg +1 -1
  88. package/templates/vue-app/files/src/assets/icons/svg/online.svg +1 -1
  89. package/templates/vue-app/files/src/assets/icons/svg/system.svg +1 -1
  90. package/templates/vue-app/files/src/assets/icons/svgo.yml +21 -21
  91. package/templates/vue-app/files/src/assets/styles/btn.scss +103 -103
  92. package/templates/vue-app/files/src/assets/styles/eladmin.scss +124 -124
  93. package/templates/vue-app/files/src/assets/styles/element-ui.scss +217 -217
  94. package/templates/vue-app/files/src/assets/styles/element-variables.scss +31 -31
  95. package/templates/vue-app/files/src/assets/styles/global.scss +73 -73
  96. package/templates/vue-app/files/src/assets/styles/index.scss +220 -220
  97. package/templates/vue-app/files/src/assets/styles/mixin.scss +60 -60
  98. package/templates/vue-app/files/src/assets/styles/publicStyle.scss +224 -224
  99. package/templates/vue-app/files/src/assets/styles/sidebar.scss +239 -239
  100. package/templates/vue-app/files/src/assets/styles/transition.scss +48 -48
  101. package/templates/vue-app/files/src/assets/styles/variables.scss +44 -44
  102. package/templates/vue-app/files/src/common/flexible.js +145 -145
  103. package/templates/vue-app/files/src/components/Breadcrumb/index.vue +87 -87
  104. package/templates/vue-app/files/src/components/Crud/CRUD.operation.vue +248 -248
  105. package/templates/vue-app/files/src/components/Crud/Pagination.vue +20 -20
  106. package/templates/vue-app/files/src/components/Crud/RR.operation.vue +39 -39
  107. package/templates/vue-app/files/src/components/Crud/UD.operation.vue +106 -106
  108. package/templates/vue-app/files/src/components/Crud/crud.js +907 -907
  109. package/templates/vue-app/files/src/components/Crud/user/UR.operation.vue +154 -154
  110. package/templates/vue-app/files/src/components/DateRangePicker/index.vue +42 -42
  111. package/templates/vue-app/files/src/components/DateRangePickerProhibitNext/index.vue +42 -42
  112. package/templates/vue-app/files/src/components/DateRangePickerProhibitTodayNext/index.vue +48 -48
  113. package/templates/vue-app/files/src/components/Dict/Dict.js +31 -31
  114. package/templates/vue-app/files/src/components/Dict/index.js +29 -29
  115. package/templates/vue-app/files/src/components/Doc/index.vue +16 -16
  116. package/templates/vue-app/files/src/components/Echarts/BarChart.vue +115 -115
  117. package/templates/vue-app/files/src/components/Echarts/Category.vue +768 -768
  118. package/templates/vue-app/files/src/components/Echarts/Funnel.vue +120 -120
  119. package/templates/vue-app/files/src/components/Echarts/Gauge.vue +74 -74
  120. package/templates/vue-app/files/src/components/Echarts/Graph.vue +101 -101
  121. package/templates/vue-app/files/src/components/Echarts/HeatMap.vue +301 -301
  122. package/templates/vue-app/files/src/components/Echarts/Line3D.vue +110 -110
  123. package/templates/vue-app/files/src/components/Echarts/PieChart.vue +84 -84
  124. package/templates/vue-app/files/src/components/Echarts/Point.vue +161 -161
  125. package/templates/vue-app/files/src/components/Echarts/RadarChart.vue +123 -123
  126. package/templates/vue-app/files/src/components/Echarts/Rich.vue +160 -160
  127. package/templates/vue-app/files/src/components/Echarts/Sankey.vue +114 -114
  128. package/templates/vue-app/files/src/components/Echarts/Scatter.vue +192 -192
  129. package/templates/vue-app/files/src/components/Echarts/Sunburst.vue +127 -127
  130. package/templates/vue-app/files/src/components/Echarts/ThemeRiver.vue +233 -233
  131. package/templates/vue-app/files/src/components/Echarts/WordCloud.vue +201 -201
  132. package/templates/vue-app/files/src/components/GithubCorner/index.vue +55 -55
  133. package/templates/vue-app/files/src/components/Hamburger/index.vue +44 -44
  134. package/templates/vue-app/files/src/components/HeaderSearch/index.vue +196 -196
  135. package/templates/vue-app/files/src/components/IconSelect/index.vue +74 -74
  136. package/templates/vue-app/files/src/components/IconSelect/requireIcons.js +10 -10
  137. package/templates/vue-app/files/src/components/Iframe/index.vue +30 -30
  138. package/templates/vue-app/files/src/components/JavaEdit/index.vue +78 -78
  139. package/templates/vue-app/files/src/components/Pagination/index.vue +100 -100
  140. package/templates/vue-app/files/src/components/PanThumb/index.vue +149 -149
  141. package/templates/vue-app/files/src/components/ParentView/index.vue +3 -3
  142. package/templates/vue-app/files/src/components/Permission/index.js +13 -13
  143. package/templates/vue-app/files/src/components/Permission/permission.js +21 -21
  144. package/templates/vue-app/files/src/components/RightPanel/index.vue +149 -149
  145. package/templates/vue-app/files/src/components/Screenfull/index.vue +60 -60
  146. package/templates/vue-app/files/src/components/SizeSelect/index.vue +60 -60
  147. package/templates/vue-app/files/src/components/SvgIcon/index.vue +66 -66
  148. package/templates/vue-app/files/src/components/ThemePicker/index.vue +177 -177
  149. package/templates/vue-app/files/src/components/UploadExcel/index.vue +149 -149
  150. package/templates/vue-app/files/src/components/WaterMark/setWaterMark.js +68 -68
  151. package/templates/vue-app/files/src/components/WaterMark/waterMark.vue +69 -69
  152. package/templates/vue-app/files/src/components/Xgplayer/index.vue +49 -49
  153. package/templates/vue-app/files/src/components/YamlEdit/index.vue +81 -81
  154. package/templates/vue-app/files/src/layout/components/AppMain.vue +67 -67
  155. package/templates/vue-app/files/src/layout/components/Navbar.vue +209 -209
  156. package/templates/vue-app/files/src/layout/components/Settings/index.vue +125 -125
  157. package/templates/vue-app/files/src/layout/components/Sidebar/FixiOSBug.js +26 -26
  158. package/templates/vue-app/files/src/layout/components/Sidebar/Item.vue +29 -29
  159. package/templates/vue-app/files/src/layout/components/Sidebar/Link.vue +35 -35
  160. package/templates/vue-app/files/src/layout/components/Sidebar/Logo.vue +93 -93
  161. package/templates/vue-app/files/src/layout/components/Sidebar/SidebarItem.vue +104 -104
  162. package/templates/vue-app/files/src/layout/components/Sidebar/index.vue +79 -79
  163. package/templates/vue-app/files/src/layout/components/TagsView/ScrollPane.vue +90 -90
  164. package/templates/vue-app/files/src/layout/components/TagsView/index.vue +299 -299
  165. package/templates/vue-app/files/src/layout/components/index.js +5 -5
  166. package/templates/vue-app/files/src/layout/index.vue +119 -119
  167. package/templates/vue-app/files/src/layout/mixin/ResizeHandler.js +45 -45
  168. package/templates/vue-app/files/src/main.js +89 -89
  169. package/templates/vue-app/files/src/mixins/crud.js +348 -348
  170. package/templates/vue-app/files/src/router/index.js +156 -156
  171. package/templates/vue-app/files/src/router/routers.js +203 -203
  172. package/templates/vue-app/files/src/settings.js +57 -57
  173. package/templates/vue-app/files/src/store/getters.js +29 -29
  174. package/templates/vue-app/files/src/store/index.js +25 -25
  175. package/templates/vue-app/files/src/store/modules/api.js +33 -33
  176. package/templates/vue-app/files/src/store/modules/app.js +55 -55
  177. package/templates/vue-app/files/src/store/modules/permission.js +79 -79
  178. package/templates/vue-app/files/src/store/modules/register.js +17 -17
  179. package/templates/vue-app/files/src/store/modules/settings.js +46 -46
  180. package/templates/vue-app/files/src/store/modules/tagsView.js +168 -168
  181. package/templates/vue-app/files/src/store/modules/user.js +119 -119
  182. package/templates/vue-app/files/src/utils/auth.js +18 -18
  183. package/templates/vue-app/files/src/utils/base64ToFile.js +27 -27
  184. package/templates/vue-app/files/src/utils/clipboard.js +36 -36
  185. package/templates/vue-app/files/src/utils/datetime.js +289 -289
  186. package/templates/vue-app/files/src/utils/getBlobFile.js +10 -10
  187. package/templates/vue-app/files/src/utils/getTime.js +29 -29
  188. package/templates/vue-app/files/src/utils/index.js +520 -520
  189. package/templates/vue-app/files/src/utils/permission.js +29 -29
  190. package/templates/vue-app/files/src/utils/pinyin.js +450 -450
  191. package/templates/vue-app/files/src/utils/request.js +139 -139
  192. package/templates/vue-app/files/src/utils/rsaEncrypt.js +37 -37
  193. package/templates/vue-app/files/src/utils/shortcuts.js +210 -210
  194. package/templates/vue-app/files/src/utils/upload.js +12 -12
  195. package/templates/vue-app/files/src/utils/validate.js +262 -262
  196. package/templates/vue-app/files/src/views/components/Echarts.vue +124 -124
  197. package/templates/vue-app/files/src/views/components/Editor.vue +75 -75
  198. package/templates/vue-app/files/src/views/components/MarkDown.vue +44 -44
  199. package/templates/vue-app/files/src/views/components/UVideo.vue +37 -37
  200. package/templates/vue-app/files/src/views/components/YamlEdit.vue +206 -206
  201. package/templates/vue-app/files/src/views/components/camera/camera.vue +115 -115
  202. package/templates/vue-app/files/src/views/components/camera/cameraTest.vue +158 -158
  203. package/templates/vue-app/files/src/views/components/excel/upload-excel.vue +41 -41
  204. package/templates/vue-app/files/src/views/components/icons/element-icons.js +74 -74
  205. package/templates/vue-app/files/src/views/components/icons/index.vue +106 -106
  206. package/templates/vue-app/files/src/views/components/icons/svg-icons.js +10 -10
  207. package/templates/vue-app/files/src/views/components/scroll/index.vue +107 -107
  208. package/templates/vue-app/files/src/views/components/scrollFull/index.vue +99 -99
  209. package/templates/vue-app/files/src/views/dashboard/LineChart.vue +138 -138
  210. package/templates/vue-app/files/src/views/dashboard/PanelGroup.vue +173 -173
  211. package/templates/vue-app/files/src/views/dashboard/mixins/resize.js +57 -57
  212. package/templates/vue-app/files/src/views/dataArchive/delTable.vue +354 -354
  213. package/templates/vue-app/files/src/views/dataArchive/exportDetail.vue +121 -121
  214. package/templates/vue-app/files/src/views/dataArchive/exportList.vue +160 -160
  215. package/templates/vue-app/files/src/views/dataArchive/index.vue +2104 -2104
  216. package/templates/vue-app/files/src/views/features/401.vue +83 -83
  217. package/templates/vue-app/files/src/views/features/404.vue +226 -226
  218. package/templates/vue-app/files/src/views/features/redirect.vue +12 -12
  219. package/templates/vue-app/files/src/views/generator/config.vue +348 -348
  220. package/templates/vue-app/files/src/views/generator/index.vue +143 -143
  221. package/templates/vue-app/files/src/views/generator/preview.vue +39 -39
  222. package/templates/vue-app/files/src/views/home.vue +80 -80
  223. package/templates/vue-app/files/src/views/indexManagement/index.vue +422 -422
  224. package/templates/vue-app/files/src/views/indexManagement/other.vue +286 -286
  225. package/templates/vue-app/files/src/views/institutionMonitor/components/LineChart.vue +191 -191
  226. package/templates/vue-app/files/src/views/institutionMonitor/index.scss +339 -339
  227. package/templates/vue-app/files/src/views/institutionMonitor/index.vue +1385 -1385
  228. package/templates/vue-app/files/src/views/institutionMonitor/mixins/resize.js +57 -57
  229. package/templates/vue-app/files/src/views/institutionMonitor/monitorDetail/checkProjectCode.vue +267 -267
  230. package/templates/vue-app/files/src/views/institutionMonitor/monitorDetail/imageAbnormalMonitor.vue +361 -361
  231. package/templates/vue-app/files/src/views/institutionMonitor/monitorDetail/index.vue +686 -686
  232. package/templates/vue-app/files/src/views/institutionMonitor/monitorDetail/leakageAnomaly.vue +270 -270
  233. package/templates/vue-app/files/src/views/institutionMonitor/monitorDetail/moveMonitore.vue +114 -114
  234. package/templates/vue-app/files/src/views/institutionMonitor/monitorDetail/qualityMonitore.vue +338 -338
  235. package/templates/vue-app/files/src/views/institutionSet/cloudSet.vue +534 -534
  236. package/templates/vue-app/files/src/views/institutionSet/index.vue +2550 -2550
  237. package/templates/vue-app/files/src/views/login.vue +243 -243
  238. package/templates/vue-app/files/src/views/qualityLogin.vue +280 -280
  239. package/templates/vue-app/files/src/views/selfStatistics/components/LineChart.vue +296 -296
  240. package/templates/vue-app/files/src/views/selfStatistics/hospitalDetail/index.vue +533 -533
  241. package/templates/vue-app/files/src/views/selfStatistics/index.scss +447 -447
  242. package/templates/vue-app/files/src/views/selfStatistics/index.vue +903 -903
  243. package/templates/vue-app/files/src/views/selfStatistics/mixins/resize.js +57 -57
  244. package/templates/vue-app/files/src/views/selfStatistics/monitorDetail/index.vue +285 -285
  245. package/templates/vue-app/files/src/views/selfStatistics/offlineDetail/index.vue +104 -104
  246. package/templates/vue-app/files/src/views/selfStatistics/selfActiveDetail/index.vue +104 -104
  247. package/templates/vue-app/files/src/views/selfStatistics/selfMonitorDetail/index.vue +420 -420
  248. package/templates/vue-app/files/src/views/selfStatistics/setWaterMark/setWaterMark.js +68 -68
  249. package/templates/vue-app/files/src/views/selfStatistics/setWaterMark/waterMark.vue +69 -69
  250. package/templates/vue-app/files/src/views/system/dept/index.vue +144 -144
  251. package/templates/vue-app/files/src/views/system/dict/dictDetail.vue +146 -146
  252. package/templates/vue-app/files/src/views/system/dict/index.vue +159 -159
  253. package/templates/vue-app/files/src/views/system/examModality/index.vue +174 -174
  254. package/templates/vue-app/files/src/views/system/examPart/index.vue +184 -184
  255. package/templates/vue-app/files/src/views/system/examProject/index.vue +321 -321
  256. package/templates/vue-app/files/src/views/system/examine/index.vue +66 -66
  257. package/templates/vue-app/files/src/views/system/job/index.vue +119 -119
  258. package/templates/vue-app/files/src/views/system/job/module/form.vue +72 -72
  259. package/templates/vue-app/files/src/views/system/job/module/header.vue +48 -48
  260. package/templates/vue-app/files/src/views/system/menu/index.vue +327 -327
  261. package/templates/vue-app/files/src/views/system/model/index.vue +285 -285
  262. package/templates/vue-app/files/src/views/system/role/index.vue +434 -434
  263. package/templates/vue-app/files/src/views/system/sysSet/index.vue +84 -84
  264. package/templates/vue-app/files/src/views/system/timing/index.vue +289 -289
  265. package/templates/vue-app/files/src/views/system/timing/log.vue +143 -143
  266. package/templates/vue-app/files/src/views/system/user/admin.vue +414 -414
  267. package/templates/vue-app/files/src/views/system/user/center/updateEmail.vue +146 -146
  268. package/templates/vue-app/files/src/views/system/user/center/updatePass.vue +168 -168
  269. package/templates/vue-app/files/src/views/system/user/center.vue +140 -140
  270. package/templates/vue-app/files/src/views/system/user/index.vue +972 -972
  271. package/templates/vue-app/files/src/views/systemSet/role/index.vue +314 -314
  272. package/templates/vue-app/files/src/views/systemSet/user/admin.vue +414 -414
  273. package/templates/vue-app/files/src/views/systemSet/user/center/updateEmail.vue +146 -146
  274. package/templates/vue-app/files/src/views/systemSet/user/center/updatePass.vue +115 -115
  275. package/templates/vue-app/files/src/views/systemSet/user/center.vue +351 -351
  276. package/templates/vue-app/files/src/views/systemSet/user/index.vue +928 -928
  277. package/templates/vue-app/files/src/views/tools/aliPay/config.vue +102 -102
  278. package/templates/vue-app/files/src/views/tools/aliPay/index.vue +48 -48
  279. package/templates/vue-app/files/src/views/tools/aliPay/toPay.vue +91 -91
  280. package/templates/vue-app/files/src/views/tools/email/config.vue +91 -91
  281. package/templates/vue-app/files/src/views/tools/email/index.vue +42 -42
  282. package/templates/vue-app/files/src/views/tools/email/send.vue +159 -159
  283. package/templates/vue-app/files/src/views/tools/storage/index.vue +35 -35
  284. package/templates/vue-app/files/src/views/tools/storage/local/index.vue +207 -207
  285. package/templates/vue-app/files/src/views/tools/storage/qiniu/form.vue +108 -108
  286. package/templates/vue-app/files/src/views/tools/storage/qiniu/index.vue +241 -241
  287. package/templates/vue-app/files/src/views/tools/swagger/index.vue +14 -14
  288. package/templates/vue-app/files/vue.config.js +173 -173
  289. package/templates/vue-app/template.json +29 -29
@@ -1,206 +1,206 @@
1
- <template>
2
- <div class="app-container">
3
- <p class="warn-content">
4
- Yaml编辑器 基于
5
- <a href="https://github.com/codemirror/CodeMirror" target="_blank">CodeMirror</a>,
6
- 主题预览地址 <a href="https://codemirror.net/demo/theme.html#idea" target="_blank">Theme</a>
7
- </p>
8
- <Yaml :value="value" :height="height" />
9
- </div>
10
- </template>
11
-
12
- <script>
13
- import Yaml from '@/components/YamlEdit/index';
14
- export default {
15
- name: 'YamlEdit',
16
- components: { Yaml },
17
- data() {
18
- return {
19
- height: document.documentElement.clientHeight - 210 + 'px',
20
- value:
21
- '# 展示数据,如需更换主题,请在src/components/YamlEdit 目录中搜索原主题名称进行替换\n' +
22
- '\n' +
23
- '# ===================================================================\n' +
24
- '# Spring Boot configuration.\n' +
25
- '#\n' +
26
- '# This configuration will be overridden by the Spring profile you use,\n' +
27
- '# for example application-dev.yml if you use the "dev" profile.\n' +
28
- '#\n' +
29
- '# More information on profiles: https://www.jhipster.tech/profiles/\n' +
30
- '# More information on configuration properties: https://www.jhipster.tech/common-application-properties/\n' +
31
- '# ===================================================================\n' +
32
- '\n' +
33
- '# ===================================================================\n' +
34
- '# Standard Spring Boot properties.\n' +
35
- '# Full reference is available at:\n' +
36
- '# http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html\n' +
37
- '# ===================================================================\n' +
38
- '\n' +
39
- 'eureka:\n' +
40
- ' client:\n' +
41
- ' enabled: true\n' +
42
- ' healthcheck:\n' +
43
- ' enabled: true\n' +
44
- ' fetch-registry: true\n' +
45
- ' register-with-eureka: true\n' +
46
- ' instance-info-replication-interval-seconds: 10\n' +
47
- ' registry-fetch-interval-seconds: 10\n' +
48
- ' instance:\n' +
49
- ' appname: product\n' +
50
- ' instanceId: product:${spring.application.instance-id:${random.value}}\n' +
51
- ' #instanceId: 127.0.0.1:9080\n' +
52
- ' lease-renewal-interval-in-seconds: 5\n' +
53
- ' lease-expiration-duration-in-seconds: 10\n' +
54
- ' status-page-url-path: ${management.endpoints.web.base-path}/info\n' +
55
- ' health-check-url-path: ${management.endpoints.web.base-path}/health\n' +
56
- ' metadata-map:\n' +
57
- ' zone: primary # This is needed for the load balancer\n' +
58
- ' profile: ${spring.profiles.active}\n' +
59
- ' version: ${info.project.version:}\n' +
60
- ' git-version: ${git.commit.id.describe:}\n' +
61
- ' git-commit: ${git.commit.id.abbrev:}\n' +
62
- ' git-branch: ${git.branch:}\n' +
63
- 'ribbon:\n' +
64
- ' ReadTimeout: 120000\n' +
65
- ' ConnectTimeout: 300000\n' +
66
- ' eureka:\n' +
67
- ' enabled: true\n' +
68
- 'zuul:\n' +
69
- ' host:\n' +
70
- ' connect-timeout-millis: 5000\n' +
71
- ' max-per-route-connections: 10000\n' +
72
- ' max-total-connections: 5000\n' +
73
- ' socket-timeout-millis: 60000\n' +
74
- ' semaphore:\n' +
75
- ' max-semaphores: 500\n' +
76
- '\n' +
77
- 'feign:\n' +
78
- ' hystrix:\n' +
79
- ' enabled: true\n' +
80
- ' client:\n' +
81
- ' config:\n' +
82
- ' default:\n' +
83
- ' connectTimeout: 500000\n' +
84
- ' readTimeout: 500000\n' +
85
- '\n' +
86
- '# See https://github.com/Netflix/Hystrix/wiki/Configuration\n' +
87
- 'hystrix:\n' +
88
- ' command:\n' +
89
- ' default:\n' +
90
- ' circuitBreaker:\n' +
91
- ' sleepWindowInMilliseconds: 100000\n' +
92
- ' forceClosed: true\n' +
93
- ' execution:\n' +
94
- ' isolation:\n' +
95
- '# strategy: SEMAPHORE\n' +
96
- '# See https://github.com/spring-cloud/spring-cloud-netflix/issues/1330\n' +
97
- ' thread:\n' +
98
- ' timeoutInMilliseconds: 60000\n' +
99
- ' shareSecurityContext: true\n' +
100
- '\n' +
101
- 'management:\n' +
102
- ' endpoints:\n' +
103
- ' web:\n' +
104
- ' base-path: /management\n' +
105
- ' exposure:\n' +
106
- ' include: ["configprops", "env", "health", "info", "threaddump"]\n' +
107
- ' endpoint:\n' +
108
- ' health:\n' +
109
- ' show-details: when_authorized\n' +
110
- ' info:\n' +
111
- ' git:\n' +
112
- ' mode: full\n' +
113
- ' health:\n' +
114
- ' mail:\n' +
115
- ' enabled: false # When using the MailService, configure an SMTP server and set this to true\n' +
116
- ' metrics:\n' +
117
- ' enabled: false # http://micrometer.io/ is disabled by default, as we use http://metrics.dropwizard.io/ instead\n' +
118
- '\n' +
119
- 'spring:\n' +
120
- ' application:\n' +
121
- ' name: product\n' +
122
- ' jpa:\n' +
123
- ' open-in-view: false\n' +
124
- ' hibernate:\n' +
125
- ' ddl-auto: update\n' +
126
- ' naming:\n' +
127
- ' physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy\n' +
128
- ' implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy\n' +
129
- ' messages:\n' +
130
- ' basename: i18n/messages\n' +
131
- ' mvc:\n' +
132
- ' favicon:\n' +
133
- ' enabled: false\n' +
134
- ' thymeleaf:\n' +
135
- ' mode: HTML\n' +
136
- 'security:\n' +
137
- ' oauth2:\n' +
138
- ' resource:\n' +
139
- ' filter-order: 3\n' +
140
- '\n' +
141
- 'server:\n' +
142
- ' servlet:\n' +
143
- ' session:\n' +
144
- ' cookie:\n' +
145
- ' http-only: true\n' +
146
- '\n' +
147
- '# Properties to be exposed on the /info management endpoint\n' +
148
- 'info:\n' +
149
- ' # Comma separated list of profiles that will trigger the ribbon to show\n' +
150
- ' display-ribbon-on-profiles: "dev"\n' +
151
- '\n' +
152
- '# ===================================================================\n' +
153
- '# JHipster specific properties\n' +
154
- '#\n' +
155
- '# Full reference is available at: https://www.jhipster.tech/common-application-properties/\n' +
156
- '# ===================================================================\n' +
157
- '\n' +
158
- 'jhipster:\n' +
159
- ' async:\n' +
160
- ' core-pool-size: 2\n' +
161
- ' max-pool-size: 50\n' +
162
- ' queue-capacity: 10000\n' +
163
- ' # By default CORS is disabled. Uncomment to enable.\n' +
164
- ' #cors:\n' +
165
- ' #allowed-origins: "*"\n' +
166
- ' #allowed-methods: "*"\n' +
167
- ' #allowed-headers: "*"\n' +
168
- ' #exposed-headers: "Authorization,Link,X-Total-Count"\n' +
169
- ' #allow-credentials: true\n' +
170
- ' #max-age: 1800\n' +
171
- ' mail:\n' +
172
- ' from: product@localhost\n' +
173
- ' swagger:\n' +
174
- ' default-include-pattern: /api/.*\n' +
175
- ' title: product API\n' +
176
- ' description: product API documentation\n' +
177
- ' version: 0.0.1\n' +
178
- ' terms-of-service-url:\n' +
179
- ' contact-name:\n' +
180
- ' contact-url:\n' +
181
- ' contact-email:\n' +
182
- ' license:\n' +
183
- ' license-url:\n' +
184
- '\n' +
185
- '# ===================================================================\n' +
186
- '# Application specific properties\n' +
187
- '# Add your own application properties here, see the ApplicationProperties class\n' +
188
- '# to have type-safe configuration, like in the JHipsterProperties above\n' +
189
- '#\n' +
190
- '# More documentation is available at:\n' +
191
- '# https://www.jhipster.tech/common-application-properties/\n' +
192
- '# ===================================================================\n' +
193
- '\n' +
194
- '# application:\n',
195
- };
196
- },
197
- mounted() {
198
- const that = this;
199
- window.onresize = function temp() {
200
- that.height = document.documentElement.clientHeight - 210 + 'px';
201
- };
202
- },
203
- };
204
- </script>
205
-
206
- <style scoped></style>
1
+ <template>
2
+ <div class="app-container">
3
+ <p class="warn-content">
4
+ Yaml编辑器 基于
5
+ <a href="https://github.com/codemirror/CodeMirror" target="_blank">CodeMirror</a>,
6
+ 主题预览地址 <a href="https://codemirror.net/demo/theme.html#idea" target="_blank">Theme</a>
7
+ </p>
8
+ <Yaml :value="value" :height="height" />
9
+ </div>
10
+ </template>
11
+
12
+ <script>
13
+ import Yaml from '@/components/YamlEdit/index';
14
+ export default {
15
+ name: 'YamlEdit',
16
+ components: { Yaml },
17
+ data() {
18
+ return {
19
+ height: document.documentElement.clientHeight - 210 + 'px',
20
+ value:
21
+ '# 展示数据,如需更换主题,请在src/components/YamlEdit 目录中搜索原主题名称进行替换\n' +
22
+ '\n' +
23
+ '# ===================================================================\n' +
24
+ '# Spring Boot configuration.\n' +
25
+ '#\n' +
26
+ '# This configuration will be overridden by the Spring profile you use,\n' +
27
+ '# for example application-dev.yml if you use the "dev" profile.\n' +
28
+ '#\n' +
29
+ '# More information on profiles: https://www.jhipster.tech/profiles/\n' +
30
+ '# More information on configuration properties: https://www.jhipster.tech/common-application-properties/\n' +
31
+ '# ===================================================================\n' +
32
+ '\n' +
33
+ '# ===================================================================\n' +
34
+ '# Standard Spring Boot properties.\n' +
35
+ '# Full reference is available at:\n' +
36
+ '# http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html\n' +
37
+ '# ===================================================================\n' +
38
+ '\n' +
39
+ 'eureka:\n' +
40
+ ' client:\n' +
41
+ ' enabled: true\n' +
42
+ ' healthcheck:\n' +
43
+ ' enabled: true\n' +
44
+ ' fetch-registry: true\n' +
45
+ ' register-with-eureka: true\n' +
46
+ ' instance-info-replication-interval-seconds: 10\n' +
47
+ ' registry-fetch-interval-seconds: 10\n' +
48
+ ' instance:\n' +
49
+ ' appname: product\n' +
50
+ ' instanceId: product:${spring.application.instance-id:${random.value}}\n' +
51
+ ' #instanceId: 127.0.0.1:9080\n' +
52
+ ' lease-renewal-interval-in-seconds: 5\n' +
53
+ ' lease-expiration-duration-in-seconds: 10\n' +
54
+ ' status-page-url-path: ${management.endpoints.web.base-path}/info\n' +
55
+ ' health-check-url-path: ${management.endpoints.web.base-path}/health\n' +
56
+ ' metadata-map:\n' +
57
+ ' zone: primary # This is needed for the load balancer\n' +
58
+ ' profile: ${spring.profiles.active}\n' +
59
+ ' version: ${info.project.version:}\n' +
60
+ ' git-version: ${git.commit.id.describe:}\n' +
61
+ ' git-commit: ${git.commit.id.abbrev:}\n' +
62
+ ' git-branch: ${git.branch:}\n' +
63
+ 'ribbon:\n' +
64
+ ' ReadTimeout: 120000\n' +
65
+ ' ConnectTimeout: 300000\n' +
66
+ ' eureka:\n' +
67
+ ' enabled: true\n' +
68
+ 'zuul:\n' +
69
+ ' host:\n' +
70
+ ' connect-timeout-millis: 5000\n' +
71
+ ' max-per-route-connections: 10000\n' +
72
+ ' max-total-connections: 5000\n' +
73
+ ' socket-timeout-millis: 60000\n' +
74
+ ' semaphore:\n' +
75
+ ' max-semaphores: 500\n' +
76
+ '\n' +
77
+ 'feign:\n' +
78
+ ' hystrix:\n' +
79
+ ' enabled: true\n' +
80
+ ' client:\n' +
81
+ ' config:\n' +
82
+ ' default:\n' +
83
+ ' connectTimeout: 500000\n' +
84
+ ' readTimeout: 500000\n' +
85
+ '\n' +
86
+ '# See https://github.com/Netflix/Hystrix/wiki/Configuration\n' +
87
+ 'hystrix:\n' +
88
+ ' command:\n' +
89
+ ' default:\n' +
90
+ ' circuitBreaker:\n' +
91
+ ' sleepWindowInMilliseconds: 100000\n' +
92
+ ' forceClosed: true\n' +
93
+ ' execution:\n' +
94
+ ' isolation:\n' +
95
+ '# strategy: SEMAPHORE\n' +
96
+ '# See https://github.com/spring-cloud/spring-cloud-netflix/issues/1330\n' +
97
+ ' thread:\n' +
98
+ ' timeoutInMilliseconds: 60000\n' +
99
+ ' shareSecurityContext: true\n' +
100
+ '\n' +
101
+ 'management:\n' +
102
+ ' endpoints:\n' +
103
+ ' web:\n' +
104
+ ' base-path: /management\n' +
105
+ ' exposure:\n' +
106
+ ' include: ["configprops", "env", "health", "info", "threaddump"]\n' +
107
+ ' endpoint:\n' +
108
+ ' health:\n' +
109
+ ' show-details: when_authorized\n' +
110
+ ' info:\n' +
111
+ ' git:\n' +
112
+ ' mode: full\n' +
113
+ ' health:\n' +
114
+ ' mail:\n' +
115
+ ' enabled: false # When using the MailService, configure an SMTP server and set this to true\n' +
116
+ ' metrics:\n' +
117
+ ' enabled: false # http://micrometer.io/ is disabled by default, as we use http://metrics.dropwizard.io/ instead\n' +
118
+ '\n' +
119
+ 'spring:\n' +
120
+ ' application:\n' +
121
+ ' name: product\n' +
122
+ ' jpa:\n' +
123
+ ' open-in-view: false\n' +
124
+ ' hibernate:\n' +
125
+ ' ddl-auto: update\n' +
126
+ ' naming:\n' +
127
+ ' physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy\n' +
128
+ ' implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy\n' +
129
+ ' messages:\n' +
130
+ ' basename: i18n/messages\n' +
131
+ ' mvc:\n' +
132
+ ' favicon:\n' +
133
+ ' enabled: false\n' +
134
+ ' thymeleaf:\n' +
135
+ ' mode: HTML\n' +
136
+ 'security:\n' +
137
+ ' oauth2:\n' +
138
+ ' resource:\n' +
139
+ ' filter-order: 3\n' +
140
+ '\n' +
141
+ 'server:\n' +
142
+ ' servlet:\n' +
143
+ ' session:\n' +
144
+ ' cookie:\n' +
145
+ ' http-only: true\n' +
146
+ '\n' +
147
+ '# Properties to be exposed on the /info management endpoint\n' +
148
+ 'info:\n' +
149
+ ' # Comma separated list of profiles that will trigger the ribbon to show\n' +
150
+ ' display-ribbon-on-profiles: "dev"\n' +
151
+ '\n' +
152
+ '# ===================================================================\n' +
153
+ '# JHipster specific properties\n' +
154
+ '#\n' +
155
+ '# Full reference is available at: https://www.jhipster.tech/common-application-properties/\n' +
156
+ '# ===================================================================\n' +
157
+ '\n' +
158
+ 'jhipster:\n' +
159
+ ' async:\n' +
160
+ ' core-pool-size: 2\n' +
161
+ ' max-pool-size: 50\n' +
162
+ ' queue-capacity: 10000\n' +
163
+ ' # By default CORS is disabled. Uncomment to enable.\n' +
164
+ ' #cors:\n' +
165
+ ' #allowed-origins: "*"\n' +
166
+ ' #allowed-methods: "*"\n' +
167
+ ' #allowed-headers: "*"\n' +
168
+ ' #exposed-headers: "Authorization,Link,X-Total-Count"\n' +
169
+ ' #allow-credentials: true\n' +
170
+ ' #max-age: 1800\n' +
171
+ ' mail:\n' +
172
+ ' from: product@localhost\n' +
173
+ ' swagger:\n' +
174
+ ' default-include-pattern: /api/.*\n' +
175
+ ' title: product API\n' +
176
+ ' description: product API documentation\n' +
177
+ ' version: 0.0.1\n' +
178
+ ' terms-of-service-url:\n' +
179
+ ' contact-name:\n' +
180
+ ' contact-url:\n' +
181
+ ' contact-email:\n' +
182
+ ' license:\n' +
183
+ ' license-url:\n' +
184
+ '\n' +
185
+ '# ===================================================================\n' +
186
+ '# Application specific properties\n' +
187
+ '# Add your own application properties here, see the ApplicationProperties class\n' +
188
+ '# to have type-safe configuration, like in the JHipsterProperties above\n' +
189
+ '#\n' +
190
+ '# More documentation is available at:\n' +
191
+ '# https://www.jhipster.tech/common-application-properties/\n' +
192
+ '# ===================================================================\n' +
193
+ '\n' +
194
+ '# application:\n',
195
+ };
196
+ },
197
+ mounted() {
198
+ const that = this;
199
+ window.onresize = function temp() {
200
+ that.height = document.documentElement.clientHeight - 210 + 'px';
201
+ };
202
+ },
203
+ };
204
+ </script>
205
+
206
+ <style scoped></style>
@@ -1,115 +1,115 @@
1
- <template>
2
- <div>
3
- <video id="video" width="640" height="480" autoplay="autoplay"></video>
4
- <!--拍照按钮-->
5
- <div>
6
- <button @click="action" id="capture">拍照</button>
7
- </div>
8
- <!--描绘video截图-->
9
- <canvas v-show="false" id="canvas" width="640" height="480"></canvas>
10
- </div>
11
- </template>
12
-
13
- <script>
14
- export default {
15
- name: 'home',
16
- data() {
17
- return {
18
- fileName: '点击Vue拍照',
19
- base64ImgData: null,
20
- };
21
- },
22
- created() {
23
- this.init();
24
- },
25
- methods: {
26
- init() {
27
- this.$nextTick(() => {
28
- let canvas = document.getElementById('canvas');
29
- let video = document.getElementById('video');
30
- let context = canvas.getContext('2d');
31
- let capture = document.getElementById('capture');
32
- });
33
-
34
- // 老的浏览器可能根本没有实现 mediaDevices,所以我们可以先设置一个空的对象
35
- if (navigator.mediaDevices === undefined) {
36
- navigator.mediaDevices = {};
37
- }
38
-
39
- // 一些浏览器部分支持 mediaDevices。我们不能直接给对象设置 getUserMedia
40
- // 因为这样可能会覆盖已有的属性。这里我们只会在没有getUserMedia属性的时候添加它。
41
- if (navigator.mediaDevices.getUserMedia === undefined) {
42
- navigator.mediaDevices.getUserMedia = function (constraints) {
43
- // 首先,如果有getUserMedia的话,就获得它
44
- var getUserMedia = navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
45
-
46
- // 一些浏览器根本没实现它 - 那么就返回一个error到promise的reject来保持一个统一的接口
47
- if (!getUserMedia) {
48
- return Promise.reject(new Error('getUserMedia is not implemented in this browser'));
49
- }
50
-
51
- // 否则,为老的navigator.getUserMedia方法包裹一个Promise
52
- return new Promise(function (resolve, reject) {
53
- getUserMedia.call(navigator, constraints, resolve, reject);
54
- });
55
- };
56
- }
57
-
58
- //默认使用前摄像头,强制使用后置摄像头如下设置
59
- // let constraints = {video: { facingMode: { exact: "environment" } }};
60
- let constraints = { video: true };
61
- navigator.mediaDevices
62
- .getUserMedia(constraints)
63
- .then(function (stream) {
64
- // 旧的浏览器可能没有srcObject
65
- if ('srcObject' in video) {
66
- video.srcObject = stream;
67
- } else {
68
- // 防止在新的浏览器里使用它,应为它已经不再支持了
69
- video.src = window.URL.createObjectURL(stream);
70
- }
71
- video.onloadedmetadata = function (e) {
72
- video.play();
73
- };
74
- })
75
- .catch(function (err) {
76
- console.log(err.name + ': ' + err.message);
77
- });
78
- },
79
- action() {
80
- this.$nextTick(() => {
81
- let canvas = document.getElementById('canvas');
82
- let context = canvas.getContext('2d');
83
- context.drawImage(video, 0, 0, 640, 480);
84
- var dataURL = canvas.toDataURL('image/jpg');
85
- this.$emit('sentDataURL', dataURL);
86
- });
87
- },
88
- },
89
- components: {},
90
- };
91
- </script>
92
-
93
- <style scope>
94
- .home {
95
- width: 200px;
96
- margin: 0 auto;
97
- position: relative;
98
- }
99
- .home input[type='file'] {
100
- position: absolute;
101
- left: 0;
102
- top: 0;
103
- width: 200px;
104
- height: 200px;
105
- z-index: 9;
106
- opacity: 0;
107
- }
108
- .home p {
109
- font-size: 13px;
110
- color: #8d8d8d;
111
- }
112
- .preview img {
113
- width: 100%;
114
- }
115
- </style>
1
+ <template>
2
+ <div>
3
+ <video id="video" width="640" height="480" autoplay="autoplay"></video>
4
+ <!--拍照按钮-->
5
+ <div>
6
+ <button @click="action" id="capture">拍照</button>
7
+ </div>
8
+ <!--描绘video截图-->
9
+ <canvas v-show="false" id="canvas" width="640" height="480"></canvas>
10
+ </div>
11
+ </template>
12
+
13
+ <script>
14
+ export default {
15
+ name: 'home',
16
+ data() {
17
+ return {
18
+ fileName: '点击Vue拍照',
19
+ base64ImgData: null,
20
+ };
21
+ },
22
+ created() {
23
+ this.init();
24
+ },
25
+ methods: {
26
+ init() {
27
+ this.$nextTick(() => {
28
+ let canvas = document.getElementById('canvas');
29
+ let video = document.getElementById('video');
30
+ let context = canvas.getContext('2d');
31
+ let capture = document.getElementById('capture');
32
+ });
33
+
34
+ // 老的浏览器可能根本没有实现 mediaDevices,所以我们可以先设置一个空的对象
35
+ if (navigator.mediaDevices === undefined) {
36
+ navigator.mediaDevices = {};
37
+ }
38
+
39
+ // 一些浏览器部分支持 mediaDevices。我们不能直接给对象设置 getUserMedia
40
+ // 因为这样可能会覆盖已有的属性。这里我们只会在没有getUserMedia属性的时候添加它。
41
+ if (navigator.mediaDevices.getUserMedia === undefined) {
42
+ navigator.mediaDevices.getUserMedia = function (constraints) {
43
+ // 首先,如果有getUserMedia的话,就获得它
44
+ var getUserMedia = navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
45
+
46
+ // 一些浏览器根本没实现它 - 那么就返回一个error到promise的reject来保持一个统一的接口
47
+ if (!getUserMedia) {
48
+ return Promise.reject(new Error('getUserMedia is not implemented in this browser'));
49
+ }
50
+
51
+ // 否则,为老的navigator.getUserMedia方法包裹一个Promise
52
+ return new Promise(function (resolve, reject) {
53
+ getUserMedia.call(navigator, constraints, resolve, reject);
54
+ });
55
+ };
56
+ }
57
+
58
+ //默认使用前摄像头,强制使用后置摄像头如下设置
59
+ // let constraints = {video: { facingMode: { exact: "environment" } }};
60
+ let constraints = { video: true };
61
+ navigator.mediaDevices
62
+ .getUserMedia(constraints)
63
+ .then(function (stream) {
64
+ // 旧的浏览器可能没有srcObject
65
+ if ('srcObject' in video) {
66
+ video.srcObject = stream;
67
+ } else {
68
+ // 防止在新的浏览器里使用它,应为它已经不再支持了
69
+ video.src = window.URL.createObjectURL(stream);
70
+ }
71
+ video.onloadedmetadata = function (e) {
72
+ video.play();
73
+ };
74
+ })
75
+ .catch(function (err) {
76
+ console.log(err.name + ': ' + err.message);
77
+ });
78
+ },
79
+ action() {
80
+ this.$nextTick(() => {
81
+ let canvas = document.getElementById('canvas');
82
+ let context = canvas.getContext('2d');
83
+ context.drawImage(video, 0, 0, 640, 480);
84
+ var dataURL = canvas.toDataURL('image/jpg');
85
+ this.$emit('sentDataURL', dataURL);
86
+ });
87
+ },
88
+ },
89
+ components: {},
90
+ };
91
+ </script>
92
+
93
+ <style scope>
94
+ .home {
95
+ width: 200px;
96
+ margin: 0 auto;
97
+ position: relative;
98
+ }
99
+ .home input[type='file'] {
100
+ position: absolute;
101
+ left: 0;
102
+ top: 0;
103
+ width: 200px;
104
+ height: 200px;
105
+ z-index: 9;
106
+ opacity: 0;
107
+ }
108
+ .home p {
109
+ font-size: 13px;
110
+ color: #8d8d8d;
111
+ }
112
+ .preview img {
113
+ width: 100%;
114
+ }
115
+ </style>