vue2-client 0.1.0 → 1.1.0

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 (395) hide show
  1. package/.editorconfig +9 -0
  2. package/.env +14 -0
  3. package/.env.development +1 -0
  4. package/.eslintrc.js +81 -0
  5. package/.eslintrc.json +5 -0
  6. package/README.md +54 -36
  7. package/babel.config.js +11 -2
  8. package/docs/index.md +29 -0
  9. package/jest.config.js +3 -0
  10. package/package.json +68 -22
  11. package/public/index.html +13 -3
  12. package/src/App.vue +93 -0
  13. package/src/assets/img/alipay.png +0 -0
  14. package/src/assets/img/defect.png +0 -0
  15. package/src/assets/img/error.png +0 -0
  16. package/src/assets/img/logo.png +0 -0
  17. package/src/assets/img/preview-nine.png +0 -0
  18. package/src/assets/img/preview.png +0 -0
  19. package/src/assets/img/success.png +0 -0
  20. package/src/assets/img/success1.png +0 -0
  21. package/src/assets/img/wechatpay.png +0 -0
  22. package/src/base-client/all.js +57 -0
  23. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +1159 -0
  24. package/src/base-client/components/common/CreateQuery/index.js +3 -0
  25. package/src/base-client/components/common/CreateQuery/index.md +42 -0
  26. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +540 -0
  27. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -0
  28. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -0
  29. package/src/{components → base-client/components/common}/CustomColumnsDrawer/CustomColumnsDrawer.vue +21 -15
  30. package/src/{components → base-client/components/common}/CustomColumnsDrawer/index.js +0 -0
  31. package/src/{components → base-client/components/common}/CustomColumnsDrawer/index.md +0 -0
  32. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +150 -0
  33. package/src/base-client/components/common/FormGroupEdit/index.js +3 -0
  34. package/src/base-client/components/common/FormGroupEdit/index.md +43 -0
  35. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +163 -0
  36. package/src/base-client/components/common/FormGroupQuery/index.js +3 -0
  37. package/src/base-client/components/common/FormGroupQuery/index.md +43 -0
  38. package/src/base-client/components/common/JSONToTree/index.js +3 -0
  39. package/src/base-client/components/common/JSONToTree/jsontotree.vue +275 -0
  40. package/src/base-client/components/common/XAddForm/XAddForm.vue +323 -0
  41. package/src/base-client/components/common/XAddForm/index.js +3 -0
  42. package/src/base-client/components/common/XAddForm/index.md +60 -0
  43. package/src/base-client/components/common/XBadge/XBadge.vue +61 -0
  44. package/src/base-client/components/common/XBadge/index.js +3 -0
  45. package/src/base-client/components/common/XBadge/index.md +39 -0
  46. package/src/base-client/components/common/XCard/XCard.vue +59 -0
  47. package/src/base-client/components/common/XCard/index.js +3 -0
  48. package/src/base-client/components/common/XCard/index.md +43 -0
  49. package/src/base-client/components/common/XForm/XForm.vue +275 -0
  50. package/src/base-client/components/common/XForm/XFormItem.vue +217 -0
  51. package/src/base-client/components/common/XForm/index.js +3 -0
  52. package/src/base-client/components/common/XForm/index.md +196 -0
  53. package/src/{components/FormItem/FormItem.vue → base-client/components/common/XFormCol/XFormCol.vue} +16 -14
  54. package/src/base-client/components/common/XFormCol/index.js +3 -0
  55. package/src/{components/FormItem → base-client/components/common/XFormCol}/index.md +2 -2
  56. package/src/base-client/components/common/XFormTable/XFormTable.vue +405 -0
  57. package/src/base-client/components/common/XFormTable/index.js +3 -0
  58. package/src/base-client/components/common/XFormTable/index.md +89 -0
  59. package/src/base-client/components/common/XTable/XTable.vue +262 -0
  60. package/src/base-client/components/common/XTable/index.js +3 -0
  61. package/src/base-client/components/common/XTable/index.md +255 -0
  62. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +105 -0
  63. package/src/base-client/components/common/XTreeOne/index.js +3 -0
  64. package/src/base-client/components/iot/CustomerDetailsView/CustomerDetailsView.vue +226 -0
  65. package/src/base-client/components/iot/CustomerDetailsView/index.js +3 -0
  66. package/src/base-client/components/iot/CustomerDetailsView/index.md +41 -0
  67. package/src/base-client/components/iot/DataAnalysisUser/DataAnalysisUser.vue +127 -0
  68. package/src/base-client/components/iot/DataAnalysisUser/index.js +3 -0
  69. package/src/base-client/components/iot/DataAnalysisView/DataAnalysisView.vue +250 -0
  70. package/src/base-client/components/iot/DataAnalysisView/index.js +3 -0
  71. package/src/base-client/components/iot/DataAnalysisViewGD/DataAnalysisViewGD.vue +548 -0
  72. package/src/base-client/components/iot/DataAnalysisViewGD/WindowTemplate/WindowInfotemp.vue +99 -0
  73. package/src/base-client/components/iot/DataAnalysisViewGD/WindowTemplate/index.js +3 -0
  74. package/src/base-client/components/iot/DataAnalysisViewGD/index.js +3 -0
  75. package/src/base-client/components/iot/DeviceBrandDetailsView/DeviceBrandDetailsView.vue +453 -0
  76. package/src/base-client/components/iot/DeviceBrandDetailsView/index.js +3 -0
  77. package/src/base-client/components/iot/DeviceDetailsView/DeviceDetailsView.vue +231 -0
  78. package/src/base-client/components/iot/DeviceDetailsView/index.js +3 -0
  79. package/src/base-client/components/iot/DeviceDetailsView/index.md +43 -0
  80. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsCount.vue +330 -0
  81. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsException.vue +57 -0
  82. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsInstruct.vue +122 -0
  83. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsInstructOperate.vue +122 -0
  84. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsMain.vue +225 -0
  85. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsRead.vue +135 -0
  86. package/src/base-client/components/iot/DeviceDetailsView/part/index.js +8 -0
  87. package/src/base-client/components/iot/DeviceTypeDetailsView/DeviceTypeDetailsView.vue +277 -0
  88. package/src/base-client/components/iot/DeviceTypeDetailsView/index.js +3 -0
  89. package/src/base-client/components/iot/InstructDetailsView/InstructDetailsView.vue +472 -0
  90. package/src/{components → base-client/components/iot}/InstructDetailsView/index.js +0 -0
  91. package/src/base-client/components/iot/InstructDetailsView/index.md +45 -0
  92. package/src/base-client/components/iot/LogDetailsView/LogDetailsView.vue +380 -0
  93. package/src/base-client/components/iot/LogDetailsView/index.js +3 -0
  94. package/src/base-client/components/iot/LogDetailsView/index.md +43 -0
  95. package/src/base-client/components/iot/MeterDetailsView/MeterDetailsView.vue +360 -0
  96. package/src/{components → base-client/components/iot}/MeterDetailsView/index.js +0 -0
  97. package/src/base-client/components/iot/MeterDetailsView/index.md +43 -0
  98. package/src/{components → base-client/components/iot}/MeterDetailsView/part/MeterDetailsCount.vue +335 -381
  99. package/src/{components → base-client/components/iot}/MeterDetailsView/part/MeterDetailsException.vue +185 -204
  100. package/src/{components → base-client/components/iot}/MeterDetailsView/part/MeterDetailsHandPlan.vue +292 -320
  101. package/src/{components → base-client/components/iot}/MeterDetailsView/part/MeterDetailsInstruct.vue +237 -278
  102. package/src/{components → base-client/components/iot}/MeterDetailsView/part/MeterDetailsMain.vue +257 -247
  103. package/src/{components → base-client/components/iot}/MeterDetailsView/part/MeterDetailsSellGas.vue +190 -211
  104. package/src/base-client/components/iot/MeterDetailsView/part/index.js +9 -0
  105. package/src/base-client/components/iot/WebmeterAnalysisView/WebmeterAnalysisView.vue +723 -0
  106. package/src/base-client/components/iot/WebmeterAnalysisView/index.js +3 -0
  107. package/src/base-client/components/iot/WebmeterAnalysisView/index.md +48 -0
  108. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -0
  109. package/src/base-client/components/system/DictionaryDetailsView/index.js +3 -0
  110. package/src/base-client/components/system/DictionaryDetailsView/index.md +41 -0
  111. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +248 -0
  112. package/src/base-client/components/system/QueryParamsDetailsView/index.js +3 -0
  113. package/src/base-client/components/ticket/EmployeeDetailsView/EmployeeDetailsView.vue +406 -0
  114. package/src/base-client/components/ticket/EmployeeDetailsView/index.js +3 -0
  115. package/src/base-client/components/ticket/EmployeeDetailsView/index.md +28 -0
  116. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +486 -0
  117. package/src/base-client/components/ticket/TicketDetailsView/index.js +3 -0
  118. package/src/base-client/components/ticket/TicketDetailsView/index.md +29 -0
  119. package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +184 -0
  120. package/src/base-client/components/ticket/TicketDetailsView/part/index.js +3 -0
  121. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +303 -0
  122. package/src/base-client/components/ticket/TicketSubmitSuccessView/index.js +3 -0
  123. package/src/base-client/components/ticket/TicketSubmitSuccessView/index.md +29 -0
  124. package/src/base-client/plugins/AppData.js +69 -0
  125. package/src/{plugins → base-client/plugins}/Config.js +1 -1
  126. package/src/base-client/plugins/GetLoginInfoService.js +221 -0
  127. package/src/{plugins → base-client/plugins}/PagedList.js +0 -0
  128. package/src/base-client/plugins/authority-plugin.js +167 -0
  129. package/src/base-client/plugins/i18n-extend.js +32 -0
  130. package/src/base-client/plugins/index.js +21 -0
  131. package/src/{plugins → base-client/plugins}/moment.js +8 -8
  132. package/src/base-client/plugins/tabs-page-plugin.js +38 -0
  133. package/src/bootstrap.js +27 -0
  134. package/src/components/Charts/Bar.vue +62 -0
  135. package/src/components/Charts/ChartCard.vue +120 -0
  136. package/src/components/Charts/DataUserOrderSituation.vue +77 -0
  137. package/src/components/Charts/DataUserReporting.vue +74 -0
  138. package/src/components/Charts/DataUserSituation.vue +107 -0
  139. package/src/components/Charts/Liquid.vue +67 -0
  140. package/src/components/Charts/MiniArea.vue +39 -0
  141. package/src/components/Charts/MiniBar.vue +39 -0
  142. package/src/components/Charts/MiniProgress.vue +75 -0
  143. package/src/components/Charts/MiniSmoothArea.vue +40 -0
  144. package/src/components/Charts/Radar.vue +68 -0
  145. package/src/components/Charts/RankList.vue +77 -0
  146. package/src/components/Charts/TagCloud.vue +113 -0
  147. package/src/components/Charts/TransferBar.vue +64 -0
  148. package/src/components/Charts/Trend.vue +82 -0
  149. package/src/components/Charts/chart.less +13 -0
  150. package/src/components/Charts/smooth.area.less +14 -0
  151. package/src/components/Ellipsis/Ellipsis.vue +64 -0
  152. package/src/components/Ellipsis/index.js +3 -0
  153. package/src/components/Ellipsis/index.md +38 -0
  154. package/src/components/NumberInfo/NumberInfo.vue +54 -0
  155. package/src/components/NumberInfo/index.js +3 -0
  156. package/src/components/NumberInfo/index.less +55 -0
  157. package/src/components/NumberInfo/index.md +43 -0
  158. package/src/components/STable/README.md +341 -0
  159. package/src/components/STable/index.js +316 -0
  160. package/src/components/Trend/Trend.vue +41 -0
  161. package/src/components/Trend/index.js +3 -0
  162. package/src/components/Trend/index.less +42 -0
  163. package/src/components/Trend/index.md +45 -0
  164. package/src/components/_util/util.js +46 -0
  165. package/src/components/cache/AKeepAlive.js +172 -0
  166. package/src/components/card/ChartCard.vue +79 -0
  167. package/src/components/chart/Bar.vue +60 -0
  168. package/src/components/chart/MiniArea.vue +67 -0
  169. package/src/components/chart/MiniBar.vue +59 -0
  170. package/src/components/chart/MiniProgress.vue +57 -0
  171. package/src/components/chart/Radar.vue +80 -0
  172. package/src/components/chart/RankingList.vue +60 -0
  173. package/src/components/chart/Trend.vue +79 -0
  174. package/src/components/chart/index.less +9 -0
  175. package/src/components/checkbox/ColorCheckbox.vue +157 -0
  176. package/src/components/checkbox/ImgCheckbox.vue +163 -0
  177. package/src/components/checkbox/index.js +7 -0
  178. package/src/components/dataAnalysisView/UserData.vue +61 -0
  179. package/src/components/exception/ExceptionPage.vue +70 -0
  180. package/src/components/exception/typeConfig.js +19 -0
  181. package/src/components/form/FormRow.vue +52 -0
  182. package/src/components/index.js +36 -0
  183. package/src/components/index.less +6 -0
  184. package/src/components/input/IInput.vue +66 -0
  185. package/src/components/menu/Contextmenu.vue +84 -0
  186. package/src/components/menu/SideMenu.vue +62 -0
  187. package/src/components/menu/index.less +38 -0
  188. package/src/components/menu/menu.js +273 -0
  189. package/src/components/page/header/PageHeader.vue +64 -0
  190. package/src/components/page/header/index.less +40 -0
  191. package/src/components/result/Result.vue +77 -0
  192. package/src/components/setting/Setting.vue +237 -0
  193. package/src/components/setting/SettingItem.vue +26 -0
  194. package/src/components/setting/i18n.js +117 -0
  195. package/src/components/table/StandardTable.vue +142 -0
  196. package/src/components/table/advance/ActionColumns.vue +158 -0
  197. package/src/components/table/advance/ActionSize.vue +45 -0
  198. package/src/components/table/advance/AdvanceTable.vue +275 -0
  199. package/src/components/table/advance/SearchArea.vue +355 -0
  200. package/src/components/table/advance/index.js +2 -0
  201. package/src/components/table/api/ApiTable.vue +50 -0
  202. package/src/components/task/TaskGroup.vue +80 -0
  203. package/src/components/task/TaskItem.vue +26 -0
  204. package/src/components/tool/AStepItem.vue +60 -0
  205. package/src/components/tool/AvatarList.vue +69 -0
  206. package/src/components/tool/DetailList.vue +157 -0
  207. package/src/components/tool/Drawer.vue +142 -0
  208. package/src/components/tool/FooterToolBar.vue +30 -0
  209. package/src/components/tool/HeadInfo.vue +35 -0
  210. package/src/components/tool/TagSelect.vue +83 -0
  211. package/src/components/tool/TagSelectOption.vue +33 -0
  212. package/src/components/transition/PageToggleTransition.vue +97 -0
  213. package/src/config/config.js +13 -0
  214. package/src/config/default/admin.config.js +18 -0
  215. package/src/config/default/animate.config.js +21 -0
  216. package/src/config/default/antd.config.js +84 -0
  217. package/src/config/default/index.js +6 -0
  218. package/src/config/default/setting.config.js +33 -0
  219. package/src/config/index.js +6 -0
  220. package/src/config/replacer/index.js +10 -0
  221. package/src/config/replacer/resolve.config.js +67 -0
  222. package/src/index.js +28 -35
  223. package/src/layouts/AdminLayout.vue +174 -0
  224. package/src/layouts/BlankView.vue +22 -0
  225. package/src/layouts/CommonLayout.vue +42 -0
  226. package/src/layouts/ComponentLayoutOne.vue +47 -0
  227. package/src/layouts/PageLayout.vue +151 -0
  228. package/src/layouts/PageView.vue +55 -0
  229. package/src/layouts/SinglePageView.vue +74 -0
  230. package/src/layouts/footer/PageFooter.vue +46 -0
  231. package/src/layouts/header/AdminHeader.vue +109 -0
  232. package/src/layouts/header/HeaderAvatar.vue +60 -0
  233. package/src/layouts/header/HeaderNotice.vue +97 -0
  234. package/src/layouts/header/HeaderSearch.vue +67 -0
  235. package/src/layouts/header/index.less +92 -0
  236. package/src/layouts/tabs/TabsHead.vue +190 -0
  237. package/src/layouts/tabs/TabsView.vue +355 -0
  238. package/src/layouts/tabs/i18n.js +25 -0
  239. package/src/layouts/tabs/index.js +2 -0
  240. package/src/main.js +15 -7
  241. package/src/mock/common/activityData.js +32 -0
  242. package/src/mock/common/index.js +89 -0
  243. package/src/mock/common/reportData.js +20 -0
  244. package/src/mock/common/tableData.js +118 -0
  245. package/src/mock/extend/index.js +83 -0
  246. package/src/mock/goods/index.js +108 -0
  247. package/src/mock/index.js +12 -0
  248. package/src/mock/project/index.js +17 -0
  249. package/src/mock/user/current.js +13 -0
  250. package/src/mock/user/login.js +39 -0
  251. package/src/mock/user/routes.js +61 -0
  252. package/src/mock/workplace/index.js +15 -0
  253. package/src/pages/exception/403.vue +25 -0
  254. package/src/pages/exception/404.vue +25 -0
  255. package/src/pages/exception/500.vue +25 -0
  256. package/src/pages/login/Login.vue +194 -0
  257. package/src/pages/login/index.js +2 -0
  258. package/src/pages/report/ReportTable.js +125 -0
  259. package/src/pages/report/ReportTableHome.vue +28 -0
  260. package/src/pages/resourceManage/resourceManageMain.vue +55 -0
  261. package/src/pages/system/applyInstallView/Core.vue +570 -0
  262. package/src/pages/system/applyInstallView/LFComponents/AddPanel.vue +52 -0
  263. package/src/pages/system/applyInstallView/LFComponents/Control.vue +78 -0
  264. package/src/pages/system/applyInstallView/LFComponents/DataDialog.vue +24 -0
  265. package/src/pages/system/applyInstallView/LFComponents/NodePanel.vue +103 -0
  266. package/src/pages/system/applyInstallView/PropertySetting/Base.vue +124 -0
  267. package/src/pages/system/applyInstallView/PropertySetting/CommonProperty.vue +104 -0
  268. package/src/pages/system/applyInstallView/PropertySetting/PropertyDialog.vue +43 -0
  269. package/src/pages/system/applyInstallView/background/base.png +0 -0
  270. package/src/pages/system/applyInstallView/background/click.png +0 -0
  271. package/src/pages/system/applyInstallView/background/download.png +0 -0
  272. package/src/pages/system/applyInstallView/background/end.png +0 -0
  273. package/src/pages/system/applyInstallView/background/push.png +0 -0
  274. package/src/pages/system/applyInstallView/background/start.png +0 -0
  275. package/src/pages/system/applyInstallView/background/step.png +0 -0
  276. package/src/pages/system/applyInstallView/background/time.png +0 -0
  277. package/src/pages/system/applyInstallView/config.js +22 -0
  278. package/src/pages/system/applyInstallView/data.json +1284 -0
  279. package/src/pages/system/applyInstallView/index.vue +34 -0
  280. package/src/pages/system/applyInstallView/registerNode/Connect.vue +43 -0
  281. package/src/pages/system/applyInstallView/registerNode/index.js +16 -0
  282. package/src/pages/system/applyInstallView/registerNode/registerBackEdge.js +44 -0
  283. package/src/pages/system/applyInstallView/registerNode/registerBase.js +139 -0
  284. package/src/pages/system/applyInstallView/registerNode/registerConnect.js +60 -0
  285. package/src/pages/system/applyInstallView/registerNode/registerDownload.js +92 -0
  286. package/src/pages/system/applyInstallView/registerNode/registerEnd.js +110 -0
  287. package/src/pages/system/applyInstallView/registerNode/registerPolyline.js +14 -0
  288. package/src/pages/system/applyInstallView/registerNode/registerPush.js +127 -0
  289. package/src/pages/system/applyInstallView/registerNode/registerStart.js +105 -0
  290. package/src/pages/system/applyInstallView/registerNode/registerStep.js +209 -0
  291. package/src/pages/system/applyInstallView/registerNode/registerTask.js +29 -0
  292. package/src/pages/system/dictionary/index.vue +41 -0
  293. package/src/pages/system/queryParams/index.vue +41 -0
  294. package/src/router/async/config.async.js +25 -0
  295. package/src/router/async/router.map.js +59 -0
  296. package/src/router/config.js +23 -0
  297. package/src/router/guards.js +104 -0
  298. package/src/router/i18n.js +57 -0
  299. package/src/router/index.js +27 -0
  300. package/src/services/api/CustomerDetailsViewApi.js +6 -0
  301. package/src/services/api/DeviceBrandDetailsViewApi.js +14 -0
  302. package/src/services/api/DeviceDetailsViewApi.js +10 -0
  303. package/src/services/api/DeviceTypeDetailsViewApi.js +6 -0
  304. package/src/services/api/DictionaryDetailsViewApi.js +6 -0
  305. package/src/services/api/EmployeeDetailsViewApi.js +16 -0
  306. package/src/services/api/FormGroupEditApi.js +6 -0
  307. package/src/services/api/InstructDetailsViewApi.js +12 -0
  308. package/src/services/api/LogDetailsViewApi.js +10 -0
  309. package/src/services/api/MeterDetailsViewApi.js +24 -0
  310. package/src/services/api/QueryParamsDetailsViewApi.js +6 -0
  311. package/src/services/api/TicketDetailsViewApi.js +30 -0
  312. package/src/services/api/WebmeterAnalysisViewApi.js +30 -0
  313. package/src/services/api/common.js +39 -0
  314. package/src/services/api/iot.js +7 -0
  315. package/src/services/api/manage.js +12 -0
  316. package/src/services/api/restTools.js +23 -0
  317. package/src/services/api/service.js +12 -0
  318. package/src/services/api.js +11 -0
  319. package/src/services/dataSource.js +12 -0
  320. package/src/services/index.js +7 -0
  321. package/src/services/user.js +34 -0
  322. package/src/store/index.js +5 -0
  323. package/src/store/modules/account.js +103 -0
  324. package/src/store/modules/index.js +4 -0
  325. package/src/store/modules/setting.js +114 -0
  326. package/src/store/mutation-types.js +1 -0
  327. package/src/theme/antd/ant-menu.less +3 -0
  328. package/src/theme/antd/ant-message.less +3 -0
  329. package/src/theme/antd/ant-table.less +22 -0
  330. package/src/theme/antd/ant-time-picker.less +3 -0
  331. package/src/theme/antd/index.less +4 -0
  332. package/src/theme/default/color.less +43 -0
  333. package/src/theme/default/index.less +3 -0
  334. package/src/theme/default/nprogress.less +76 -0
  335. package/src/theme/default/style.less +33 -0
  336. package/src/theme/global.less +130 -0
  337. package/src/theme/index.less +5 -0
  338. package/src/theme/reportTable.less +58 -0
  339. package/src/theme/theme.less +1 -0
  340. package/src/utils/Objects.js +25 -0
  341. package/src/utils/authority-utils.js +85 -0
  342. package/src/utils/axios-interceptors.js +82 -0
  343. package/src/utils/colors.js +103 -0
  344. package/src/utils/excel/Blob.js +181 -0
  345. package/src/utils/excel/Export2Excel.js +142 -0
  346. package/src/utils/filter.js +21 -0
  347. package/src/utils/formatter.js +68 -0
  348. package/src/utils/i18n.js +80 -0
  349. package/src/utils/indexedDB.js +146 -0
  350. package/src/utils/request.js +197 -0
  351. package/src/utils/routerUtil.js +353 -0
  352. package/src/utils/theme-color-replacer-extend.js +92 -0
  353. package/src/utils/themeUtil.js +102 -0
  354. package/src/utils/util.js +134 -0
  355. package/tests/unit/ReportTable.spec.js +15 -0
  356. package/vue.config.js +152 -0
  357. package/webpack.config.js +12 -0
  358. package/src/api/business.js +0 -30
  359. package/src/api/common.js +0 -6
  360. package/src/assets/logo.png +0 -0
  361. package/src/components/Criteria/Criteria.vue +0 -191
  362. package/src/components/Criteria/CriteriaPaged.vue +0 -50
  363. package/src/components/Criteria/index.js +0 -7
  364. package/src/components/Criteria/index.md +0 -120
  365. package/src/components/DataGrid/DataGrid.vue +0 -206
  366. package/src/components/DataGrid/index.js +0 -3
  367. package/src/components/DataGrid/index.md +0 -195
  368. package/src/components/ExportExcel/ExportExcel.vue +0 -246
  369. package/src/components/ExportExcel/index.js +0 -3
  370. package/src/components/ExportExcel/index.md +0 -76
  371. package/src/components/FormItem/index.js +0 -3
  372. package/src/components/InstructDetailsView/InstructDetailsView.vue +0 -518
  373. package/src/components/InstructDetailsView/index.md +0 -40
  374. package/src/components/MetaAnalysis/MetaAnalysis.vue +0 -183
  375. package/src/components/MetaAnalysis/demo/A.vue +0 -31
  376. package/src/components/MetaAnalysis/demo/B.vue +0 -31
  377. package/src/components/MetaAnalysis/demo/C.vue +0 -31
  378. package/src/components/MetaAnalysis/demo/MetaTest.vue +0 -44
  379. package/src/components/MetaAnalysis/index.js +0 -3
  380. package/src/components/MetaAnalysis/index.md +0 -255
  381. package/src/components/MeterDetailsView/MeterDetailsView.vue +0 -317
  382. package/src/components/MeterDetailsView/index.md +0 -40
  383. package/src/components/MeterDetailsView/part/index.js +0 -9
  384. package/src/components/ModalView/Modal.vue +0 -100
  385. package/src/components/ModalView/index.js +0 -3
  386. package/src/components/WCriteria/WCriteria.vue +0 -191
  387. package/src/components/WCriteria/WCriteriaPaged.vue +0 -95
  388. package/src/components/WCriteria/index.js +0 -7
  389. package/src/components/WCriteria/index.md +0 -120
  390. package/src/components/WTable/WTable.vue +0 -216
  391. package/src/components/WTable/index.js +0 -3
  392. package/src/components/WTable/index.md +0 -195
  393. package/src/plugins/AppData.js +0 -39
  394. package/src/plugins/GetLoginInfoService.js +0 -475
  395. package/src/plugins/MessageBox.js +0 -15
@@ -0,0 +1,102 @@
1
+ const client = require('webpack-theme-color-replacer/client')
2
+ const { theme } = require('../config')
3
+ const { getMenuColors, getAntdColors, getThemeToggleColors, getFunctionalColors } = require('../utils/colors')
4
+ const { ANTD } = require('../config/default')
5
+
6
+ function getThemeColors (color, $theme) {
7
+ const _color = color || theme.color
8
+ const mode = $theme || theme.mode
9
+ const replaceColors = getThemeToggleColors(_color, mode)
10
+ const themeColors = [
11
+ ...replaceColors.mainColors,
12
+ ...replaceColors.subColors,
13
+ ...replaceColors.menuColors,
14
+ ...replaceColors.contentColors,
15
+ ...replaceColors.rgbColors,
16
+ ...replaceColors.functionalColors.success,
17
+ ...replaceColors.functionalColors.warning,
18
+ ...replaceColors.functionalColors.error
19
+ ]
20
+ return themeColors
21
+ }
22
+
23
+ function changeThemeColor (newColor, $theme) {
24
+ const promise = client.changer.changeColor({ newColors: getThemeColors(newColor, $theme) })
25
+ return promise
26
+ }
27
+
28
+ function modifyVars (color) {
29
+ const _color = color || theme.color
30
+ const palettes = getAntdColors(_color, theme.mode)
31
+ const menuColors = getMenuColors(_color, theme.mode)
32
+ const { success, warning, error } = getFunctionalColors(theme.mode)
33
+ const primary = palettes[5]
34
+ return {
35
+ 'primary-color': primary,
36
+ 'primary-1': palettes[0],
37
+ 'primary-2': palettes[1],
38
+ 'primary-3': palettes[2],
39
+ 'primary-4': palettes[3],
40
+ 'primary-5': palettes[4],
41
+ 'primary-6': palettes[5],
42
+ 'primary-7': palettes[6],
43
+ 'primary-8': palettes[7],
44
+ 'primary-9': palettes[8],
45
+ 'primary-10': palettes[9],
46
+ 'info-color': primary,
47
+ 'success-color': success[5],
48
+ 'warning-color': warning[5],
49
+ 'error-color': error[5],
50
+ 'alert-info-bg-color': palettes[0],
51
+ 'alert-info-border-color': palettes[2],
52
+ 'alert-success-bg-color': success[0],
53
+ 'alert-success-border-color': success[2],
54
+ 'alert-warning-bg-color': warning[0],
55
+ 'alert-warning-border-color': warning[2],
56
+ 'alert-error-bg-color': error[0],
57
+ 'alert-error-border-color': error[2],
58
+ 'processing-color': primary,
59
+ 'menu-dark-submenu-bg': menuColors[0],
60
+ 'layout-header-background': menuColors[1],
61
+ 'layout-trigger-background': menuColors[2],
62
+ 'btn-danger-bg': error[4],
63
+ 'btn-danger-border': error[4],
64
+ ...ANTD.theme[theme.mode]
65
+ }
66
+ }
67
+
68
+ function loadLocalTheme (localSetting) {
69
+ if (localSetting && localSetting.theme) {
70
+ let { color, mode } = localSetting.theme
71
+ color = color || theme.color
72
+ mode = mode || theme.mode
73
+ changeThemeColor(color, mode)
74
+ }
75
+ }
76
+
77
+ /**
78
+ * 获取本地保存的配置
79
+ * @param load {boolean} 是否加载配置中的主题
80
+ * @returns {Object}
81
+ */
82
+ function getLocalSetting (loadTheme) {
83
+ let localSetting = {}
84
+ try {
85
+ const localSettingStr = localStorage.getItem(process.env.VUE_APP_SETTING_KEY)
86
+ localSetting = JSON.parse(localSettingStr)
87
+ } catch (e) {
88
+ console.error(e)
89
+ }
90
+ if (loadTheme) {
91
+ loadLocalTheme(localSetting)
92
+ }
93
+ return localSetting
94
+ }
95
+
96
+ module.exports = {
97
+ getThemeColors,
98
+ changeThemeColor,
99
+ modifyVars,
100
+ loadLocalTheme,
101
+ getLocalSetting
102
+ }
@@ -0,0 +1,134 @@
1
+ import enquireJs from 'enquire.js'
2
+
3
+ export function isDef (v) {
4
+ return v !== undefined && v !== null
5
+ }
6
+
7
+ export function formatDate (dateStr, fmt) {
8
+ if (dateStr == null) {
9
+ return '--'
10
+ }
11
+ let date
12
+ if (dateStr === 'now') {
13
+ date = new Date()
14
+ } else {
15
+ date = new Date(dateStr)
16
+ }
17
+ const o = {
18
+ 'M+': date.getMonth() + 1,
19
+ 'd+': date.getDate(),
20
+ 'h+': date.getHours(),
21
+ 'm+': date.getMinutes(),
22
+ 's+': date.getSeconds(),
23
+ 'q+': Math.floor((date.getMonth() + 3) / 3),
24
+ 'S': date.getMilliseconds()
25
+ }
26
+ if (!fmt) {
27
+ fmt = 'yyyy-MM-dd hh:mm:ss'
28
+ }
29
+ if (/(y+)/.test(fmt)) {
30
+ fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
31
+ }
32
+ for (const k in o) {
33
+ if (new RegExp('(' + k + ')').test(fmt)) {
34
+ fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
35
+ }
36
+ }
37
+ return fmt
38
+ }
39
+
40
+ export function timeCompare (date1, date2) {
41
+ const date11 = new Date(date1)
42
+ const date22 = new Date(date2)
43
+ return date11.time > date22.time ? 1 : -1
44
+ }
45
+
46
+ /**
47
+ * Remove an item from an array.
48
+ */
49
+ export function remove (arr, item) {
50
+ if (arr.length) {
51
+ const index = arr.indexOf(item)
52
+ if (index > -1) {
53
+ return arr.splice(index, 1)
54
+ }
55
+ }
56
+ }
57
+
58
+ export function isRegExp (v) {
59
+ return _toString.call(v) === '[object RegExp]'
60
+ }
61
+
62
+ export function enquireScreen (call) {
63
+ const handler = {
64
+ match: function () {
65
+ call && call(true)
66
+ },
67
+ unmatch: function () {
68
+ call && call(false)
69
+ }
70
+ }
71
+ enquireJs.register('only screen and (max-width: 767.99px)', handler)
72
+ }
73
+
74
+ export function showXml (str) {
75
+ let text = str
76
+
77
+ // 去掉多余的空格
78
+ text = '\n' + text.replace(/(<\w+)(\s.*?>)/g, function ($0, name, props) {
79
+ return name + props.replace(/\s+(\w+=)/g, ' $1')
80
+ }).replace(/>\s*?</g, '>\n<')
81
+
82
+ // 把注释编码
83
+ text = text.replace(/\n/g, '\r').replace(/<!--(.+?)-->/g, function ($0, text) {
84
+ var ret = '<!--' + escape(text) + '-->'
85
+ return ret
86
+ }).replace(/\r/g, '\n')
87
+
88
+ // 调整格式
89
+ const rgx = /\n(<(([^?]).+?)(?:\s|\s*?>|\s*?(\/)>)(?:.*?(?:(?:(\/)>)|(?:<(\/)\2>)))?)/mg
90
+ const nodeStack = []
91
+ const output = text.replace(rgx, function ($0, all, name, isBegin, isCloseFull1, isCloseFull2, isFull1, isFull2) {
92
+ const isClosed = (isCloseFull1 === '/') || (isCloseFull2 === '/') || (isFull1 === '/') || (isFull2 === '/')
93
+ let prefix = ''
94
+ if (isBegin === '!') {
95
+ prefix = getPrefix(nodeStack.length)
96
+ } else {
97
+ if (isBegin !== '/') {
98
+ prefix = getPrefix(nodeStack.length)
99
+ if (!isClosed) {
100
+ nodeStack.push(name)
101
+ }
102
+ } else {
103
+ nodeStack.pop()
104
+ prefix = getPrefix(nodeStack.length)
105
+ }
106
+ }
107
+ return '\n' + prefix + all
108
+ })
109
+ let outputText = output.substring(1)
110
+
111
+ // 把注释还原并解码,调格式
112
+ outputText = outputText.replace(/\n/g, '\r').replace(/(\s*)<!--(.+?)-->/g, function ($0, prefix, text) {
113
+ if (prefix.charAt(0) === '\r') { prefix = prefix.substring(1) }
114
+ text = unescape(text).replace(/\r/g, '\n')
115
+ return '\n' + prefix + '<!--' + text.replace(/^\s*/mg, prefix) + '-->'
116
+ })
117
+ // alert(outputText);
118
+
119
+ outputText = outputText.replace(/\s+$/g, '').replace(/\r/g, '\r\n')
120
+
121
+ return outputText
122
+ }
123
+
124
+ function getPrefix (prefixIndex) {
125
+ const span = ' '
126
+ const output = []
127
+ for (let i = 0; i < prefixIndex; ++i) {
128
+ output.push(span)
129
+ }
130
+
131
+ return output.join('')
132
+ }
133
+
134
+ const _toString = Object.prototype.toString
@@ -0,0 +1,15 @@
1
+ import { mount } from '@vue/test-utils'
2
+ import ReportTable from '@/pages/report/ReportTable'
3
+ import { reportData } from '@/mock/common/reportData'
4
+
5
+ // 报表组件测试域
6
+ describe('ReportTable', () => {
7
+ it('render', () => {
8
+ const wrapper = mount(ReportTable, {
9
+ propsData: {
10
+ tableData: reportData
11
+ }
12
+ })
13
+ expect(wrapper.find('#ReportTableHome')).not.toBeNull()
14
+ })
15
+ })
package/vue.config.js ADDED
@@ -0,0 +1,152 @@
1
+ const path = require('path')
2
+ const webpack = require('webpack')
3
+ const ThemeColorReplacer = require('webpack-theme-color-replacer')
4
+ const { getThemeColors, modifyVars } = require('./src/utils/themeUtil')
5
+ const { resolveCss } = require('./src/utils/theme-color-replacer-extend')
6
+ const CompressionWebpackPlugin = require('compression-webpack-plugin')
7
+
8
+ const productionGzipExtensions = ['js', 'css']
9
+ const isProd = process.env.NODE_ENV === 'production'
10
+
11
+ const assetsCDN = {
12
+ // webpack build externals
13
+ externals: {
14
+ vue: 'Vue',
15
+ 'vue-router': 'VueRouter',
16
+ vuex: 'Vuex',
17
+ axios: 'axios',
18
+ nprogress: 'NProgress',
19
+ clipboard: 'ClipboardJS',
20
+ '@antv/data-set': 'DataSet',
21
+ 'js-cookie': 'Cookies'
22
+ },
23
+ css: [
24
+ ],
25
+ js: [
26
+ '//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js',
27
+ '//cdn.jsdelivr.net/npm/vue-router@3.3.4/dist/vue-router.min.js',
28
+ '//cdn.jsdelivr.net/npm/vuex@3.4.0/dist/vuex.min.js',
29
+ '//cdn.jsdelivr.net/npm/axios@0.19.2/dist/axios.min.js',
30
+ '//cdn.jsdelivr.net/npm/nprogress@0.2.0/nprogress.min.js',
31
+ '//cdn.jsdelivr.net/npm/clipboard@2.0.6/dist/clipboard.min.js',
32
+ '//cdn.jsdelivr.net/npm/@antv/data-set@0.11.4/build/data-set.min.js',
33
+ '//cdn.jsdelivr.net/npm/js-cookie@2.2.1/src/js.cookie.min.js'
34
+ ]
35
+ }
36
+
37
+ const server = 'http://121.36.106.17:8400'
38
+ // const local = 'http://localhost:8445/webmeter'
39
+ const local = 'http://123.60.214.109:8405/webmeter'
40
+
41
+ module.exports = {
42
+ devServer: {
43
+ // development server port 8000
44
+ port: 8001,
45
+ // If you want to turn on the proxy, please remove the mockjs /src/main.jsL11
46
+ proxy: {
47
+ '/rs': {
48
+ target: server,
49
+ ws: false,
50
+ changeOrigin: true
51
+ },
52
+ '/image': {
53
+ target: server,
54
+ ws: false,
55
+ changeOrigin: true
56
+ },
57
+ '/webapps': {
58
+ target: server,
59
+ ws: false,
60
+ changeOrigin: true
61
+ },
62
+ 'iot/webmeterapi': {
63
+ pathRewrite: { '^/iot/webmeterapi': '/rs/logic' },
64
+ target: local,
65
+ changeOrigin: true
66
+ },
67
+ '/webmeterapi': {
68
+ pathRewrite: { '^/webmeterapi': '/rs/logic' },
69
+ target: local,
70
+ changeOrigin: true
71
+ },
72
+ '/webmeteruploadapi': {
73
+ pathRewrite: { '^/webmeteruploadapi': '/rs/file' },
74
+ target: local,
75
+ changeOrigin: true
76
+ },
77
+ '/webmetersql': {
78
+ pathRewrite: { '^/webmetersql': '/rs/sql' },
79
+ target: local,
80
+ changeOrigin: true
81
+ }
82
+ }
83
+ },
84
+ pluginOptions: {
85
+ 'style-resources-loader': {
86
+ preProcessor: 'less',
87
+ patterns: [path.resolve(__dirname, './src/theme/theme.less')]
88
+ }
89
+ },
90
+ configureWebpack: config => {
91
+ config.entry.app = ['babel-polyfill', 'whatwg-fetch', './src/main.js']
92
+ config.performance = {
93
+ hints: false
94
+ }
95
+ config.plugins.push(
96
+ new ThemeColorReplacer({
97
+ fileName: 'css/theme-colors-[contenthash:8].css',
98
+ matchColors: getThemeColors(),
99
+ injectCss: true,
100
+ resolveCss
101
+ })
102
+ )
103
+ // Ignore all locale files of moment.js
104
+ config.plugins.push(new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/))
105
+ // 生产环境下将资源压缩成gzip格式
106
+ if (isProd) {
107
+ // add `CompressionWebpack` plugin to webpack plugins
108
+ config.plugins.push(new CompressionWebpackPlugin({
109
+ algorithm: 'gzip',
110
+ test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
111
+ threshold: 10240,
112
+ minRatio: 0.8
113
+ }))
114
+ }
115
+ // if prod, add externals
116
+ if (isProd) {
117
+ config.externals = assetsCDN.externals
118
+ }
119
+ },
120
+ chainWebpack: config => {
121
+ // 生产环境下关闭css压缩的 colormin 项,因为此项优化与主题色替换功能冲突
122
+ if (isProd) {
123
+ config.plugin('optimize-css')
124
+ .tap(args => {
125
+ args[0].cssnanoOptions.preset[1].colormin = false
126
+ return args
127
+ })
128
+ }
129
+ // 生产环境下使用CDN
130
+ if (isProd) {
131
+ config.plugin('html')
132
+ .tap(args => {
133
+ args[0].cdn = assetsCDN
134
+ return args
135
+ })
136
+ }
137
+ },
138
+ css: {
139
+ loaderOptions: {
140
+ less: {
141
+ lessOptions: {
142
+ modifyVars: modifyVars(),
143
+ javascriptEnabled: true
144
+ }
145
+ }
146
+ }
147
+ },
148
+ publicPath: process.env.VUE_APP_PUBLIC_PATH,
149
+ outputDir: 'dist',
150
+ assetsDir: 'static',
151
+ productionSourceMap: false
152
+ }
@@ -0,0 +1,12 @@
1
+ 'use strict'
2
+ const path = require('path')
3
+
4
+ module.exports = {
5
+ context: path.resolve(__dirname, './'),
6
+ resolve: {
7
+ extensions: ['.js', '.vue', '.json'],
8
+ alias: {
9
+ '@': path.resolve('src')
10
+ }
11
+ }
12
+ }
@@ -1,30 +0,0 @@
1
- const businessApi = {
2
- /** 指令详情页 **/
3
- // 获取指令详情
4
- getInstructDetails: '/webmeter/meterManageInstructDetails',
5
- // 取消发送指令
6
- cancelSendInstruct: '/webmeter/meterManageCancelSendInstruct',
7
- // 重新发送指令
8
- againSendInstruct: '/webmeter/meterManageAgainSendInstruct',
9
- /** 档案详情页 **/
10
- // 查询档案详情信息
11
- meterManageDetail: '/webmeter/meterManageDetail',
12
- // 查询业务操作记录
13
- meterManageDetailWorkFlow: '/webmeter/meterManageDetailWorkFlow',
14
- // 保存开关阀指令
15
- saveValveControl: '/webmeter/meterManageSaveValveControl',
16
- // 查询用气记录
17
- getSimpleHandList: '/webmeter/meterManageSimpleHandList',
18
- // 查询抄表记录
19
- getSimpleMetereadList: '/webmeter/meterManageSimpleMetereadList',
20
- // 查询充值记录
21
- getSimpleSellGasList: '/webmeter/meterManageSimpleSellGasList',
22
- // 查询异常记录
23
- getSimpleExceptionList: '/webmeter/meterManageSimpleExceptionList',
24
- // 查询指令记录
25
- getSimpleInstructList: '/webmeter/meterManageSimpleInstructList',
26
- // 查询统计信息
27
- meterManageCount: '/webmeter/meterManageCount'
28
- }
29
-
30
- export { businessApi }
package/src/api/common.js DELETED
@@ -1,6 +0,0 @@
1
- const commonApi = {
2
- // 获取表格列配置
3
- getColumnsJson: '/webmeterapi/getColumns'
4
- }
5
-
6
- export { commonApi }
Binary file
@@ -1,191 +0,0 @@
1
- <template>
2
- <div id="Criteria" class="table-page-search-wrapper">
3
- <div v-show="criteriaShow" ref="drawerContainer"></div>
4
- <a-form-model :model="model" layout="inline">
5
- <a-row :gutter="24">
6
- <a-col :sm="24" :md="12" :xl="6">
7
- <slot name="condition1" :model="model"></slot>
8
- </a-col>
9
- <a-col :sm="24" :md="12" :xl="6">
10
- <slot name="condition2" :model="model"></slot>
11
- </a-col>
12
- <a-col :md="24" :xl="12">
13
- <span class="table-page-search-submitButtons">
14
- <a-drawer
15
- title="详细筛选"
16
- placement="top"
17
- :visible="criteriaShow"
18
- :get-container="() => {return $refs.drawerContainer}"
19
- :wrap-style="{ position: 'absolute' }"
20
- :header-style="{textAlign: 'center'}"
21
- @close="closeDrawer()">
22
- <a-form-model :model="model" layout="inline">
23
- <a-row :gutter="24">
24
- <slot name="conditionMore" :model="model"></slot>
25
- </a-row>
26
- </a-form-model>
27
- </a-drawer>
28
- <a-space>
29
- <a-button type="dashed" class="detailed-condition" v-if="showDetailed" @click="showDrawer()" @click.once="initialLoadCondition()">详细筛选</a-button>
30
- <a-button type="primary" :icon="searchIcon" @click="search()">查询</a-button>
31
- <a-button :icon="redoIcon" @click="clear()">重置</a-button>
32
- <slot name="button"></slot>
33
- </a-space>
34
- </span>
35
- </a-col>
36
- </a-row>
37
- </a-form-model>
38
- </div>
39
- </template>
40
-
41
- <script>
42
- export default {
43
- props: {
44
- // 控制是否显示详细查询
45
- showDetailed: {
46
- type: Boolean,
47
- default: true
48
- },
49
- // 搜索图标 如需加图标 直接穿字符串值就行 如 <criteria search-icon="search">
50
- searchIcon: {
51
- type: String,
52
- default: 'search'
53
- },
54
- // 重置图标 如需加图标 直接穿字符串值就行 如 <criteria redo-icon="redo">
55
- redoIcon: {
56
- type: String,
57
- default: 'redo'
58
- }
59
- },
60
- mounted () {
61
- this.initialLoadCondition()
62
- },
63
- data () {
64
- return {
65
- // 保存用户输入的数据
66
- model: {},
67
- // 配置的条件内容
68
- conditions: {},
69
- // 最终产生的查询条件
70
- condition: '',
71
- // 用于验证的字符数组
72
- character: ['and', 'exec', 'insert', 'select', 'delete', 'update', 'count', 'chr', 'mid', 'master', 'truncate', 'char', 'declare'],
73
- // 控制多余查询条件显示与否
74
- criteriaShow: false
75
- }
76
- },
77
- methods: {
78
- // 初始化组件条件, 从标签取查询条件
79
- initialLoadCondition () {
80
- const elements = this.$el.querySelectorAll('[variable]')
81
- console.log(elements)
82
- for (let i = 0; i < elements.length; i++) {
83
- const el = elements[i]
84
- const name = el.getAttribute('variable')
85
- this.$set(this.model, name, '')
86
-
87
- const condition = el.getAttribute('condition')
88
- if (condition) {
89
- // this.conditions放的是查询条件
90
- this.conditions[name] = condition
91
- }
92
- }
93
- },
94
- search () {
95
- try {
96
- // 拼接前台条件
97
- this.condition = this.buildFrontCondition()
98
- const args = { condition: this.condition, model: this.model }
99
- this.$emit('condition-changed', args)
100
- return args
101
- } catch (e) {
102
- // 如果是查询条件非法,警告
103
- if (e === '查询条件包含非法字符,请重输') {
104
- alert('查询条件包含非法字符,请重输')
105
- } else {
106
- throw e
107
- }
108
- }
109
- },
110
- // 拼接前台条件
111
- buildFrontCondition () {
112
- let condition = ' 1=1 '
113
- for (const name in this.conditions) {
114
- if (typeof this.model[name] == 'string') {
115
- this.model[name] = String(this.model[name]).trim()
116
- }
117
- const value = this.model[name]
118
- // 检查是否包含敏感的SQL字符
119
- if (this.checkValue(value)) {
120
- /*eslint-disable */
121
- throw '查询条件包含非法字符,请重输'
122
- }
123
- if (this.conditions[name].includes('$parent') && value && (value + '').length > 0) {
124
- const sqlStr = this.getSql(value, this.conditions[name])
125
- if (sqlStr) {
126
- condition += ' and ' + sqlStr.split('{}').join(this.packCondition(sqlStr, this.model[name]) + '')
127
- }
128
- } else if (value && (value + '').length > 0) {
129
- // 查看条件中包含几个{}插入符
130
- let len = this.conditions[name].match(/{}/g).length
131
- if (len == 1) {
132
- condition += ' and ' + this.conditions[name].split('{}').join(this.packCondition(this.conditions[name], this.model[name]) + '')
133
- } else if (len > 1) {
134
- let conditionsStr = this.conditions[name]
135
- for (let i = 0; i < len; i++) {
136
- conditionsStr = conditionsStr.replace('{}', this.packCondition(this.conditions[name], this.model[name][i]))
137
- }
138
- condition += ' and ' + conditionsStr
139
- }
140
- }
141
- }
142
- // 通知外部查询条件变化了
143
- return condition
144
- },
145
- // val: 调取函数时,需要的参数。exp:掉去函数的字符串
146
- getSql (val, exp) {
147
- return eval('this.' + exp)
148
- },
149
- packCondition (str, param) {
150
- // console.log('查询条件: ', str, param)
151
- if (param instanceof Array) {
152
- return param.length > 1 ? this.recombine(param) : (str.indexOf(' in ') > 0 ? this.recombine(param) : param)
153
- } else {
154
- return param
155
- }
156
- },
157
- recombine (param) {
158
- // 条件拼接数据,多用于in ()。将数组转成字符串时加上单引号处理
159
- let str = ''
160
- if (param && param.length > 0) {
161
- param.forEach((p) => {
162
- str += `'${p}',`
163
- })
164
- }
165
- return `(${str.substring(0, str.length - 1)})`
166
- },
167
- checkValue (val) {
168
- // 只有字符串才校验
169
- if (!val || typeof (val) !== 'string') {
170
- return false
171
- }
172
- for (let i = 0; i < this.character.length; i++) {
173
- if (val.toLowerCase().indexOf(this.character[i]) !== -1) {
174
- return true
175
- }
176
- }
177
- return false
178
- },
179
- showDrawer() {
180
- this.criteriaShow = true
181
- },
182
- closeDrawer() {
183
- this.criteriaShow = false
184
- },
185
- // 清空查询条件
186
- clear () {
187
- this.model = {}
188
- }
189
- }
190
- }
191
- </script>