vue2-client 1.17.44 → 1.17.46

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 (351) hide show
  1. package/.claude/settings.local.json +20 -20
  2. package/.cursorrules +19 -19
  3. package/.env.apply +19 -19
  4. package/.env.gaslink +19 -19
  5. package/.env.his +19 -19
  6. package/.env.liuli +20 -20
  7. package/.env.scada +19 -19
  8. package/.eslintrc.js +90 -90
  9. package/.serena/memories/code_style_conventions.md +217 -217
  10. package/.serena/memories/project_overview.md +54 -54
  11. package/.serena/memories/project_structure.md +329 -329
  12. package/.serena/memories/suggested_commands.md +127 -127
  13. package/.serena/memories/task_completion_checklist.md +183 -183
  14. package/.serena/memories/tech_stack.md +94 -94
  15. package/CHANGELOG.md +830 -830
  16. package/CLAUDE.md +97 -97
  17. package/Components.md +60 -60
  18. package/docs/LowCode/lowcode.md +155 -155
  19. package/docs/LowCode/lowcodeForDeveloper.md +230 -230
  20. package/docs/index.md +30 -30
  21. package/index.js +31 -31
  22. package/jest-transform-stub.js +8 -8
  23. package/jest.setup.js +7 -7
  24. package/jsconfig.json +19 -19
  25. package/package.json +1 -1
  26. package/public/his/editor/editor.html +51 -51
  27. package/public/his/editor/mock/bind_data.html +779 -779
  28. package/public/his/editor/mock/data_table.html +40 -40
  29. package/public/his/editor/mock/sign.html +75 -75
  30. package/public/his/editor/vender/JsBarcode.all.js +3669 -3669
  31. package/public/his/editor/vender/date97/My97DatePicker.htm +65 -65
  32. package/public/his/editor/vender/date97/WdatePicker.js +677 -677
  33. package/public/his/editor/vender/date97/calendar.js +4 -4
  34. package/public/his/editor/vender/date97/lang/en.js +13 -13
  35. package/public/his/editor/vender/date97/lang/zh-cn.js +13 -13
  36. package/public/his/editor/vender/date97/lang/zh-tw.js +13 -13
  37. package/public/his/editor/vender/date97/skin/WdatePicker.css +10 -10
  38. package/public/his/editor/vender/date97/skin/default/datepicker.css +328 -328
  39. package/public/his/editor/vender/date97/skin/ext/datepicker.css +308 -308
  40. package/public/his/editor/vender/date97/skin/whyGreen/datepicker.css +255 -255
  41. package/public/his/editor/vender/diff.js +1627 -1627
  42. package/public/his/editor/vender/editor.js +1 -1
  43. package/public/his/editor/vender/fabric.js +31187 -31187
  44. package/public/his/editor/vender/jquery/jquery.base64.js +190 -190
  45. package/public/his/editor/vender/jquery/jquery.js +10872 -10872
  46. package/public/his/editor/vender/jquery/jquery.print.js +255 -255
  47. package/public/his/editor/vender/jquery/zTreeStyle/zTreeStyle.css +96 -96
  48. package/public/his/editor/vender/mui/mui.min.css +4 -4
  49. package/public/his/editor/vender/mui/mui.min.js +5 -5
  50. package/public/his/editor/vender/mui/mui.picker.min.css +6 -6
  51. package/public/his/editor/vender/mui/mui.picker.min.js +6 -6
  52. package/public/his/editor/vender/qrcode.js +7 -7
  53. package/public/his/editor/vender/requirejs/require.js +2145 -2145
  54. package/public/his/editor/vender/signature/jSignature.CompressorSVG.js +518 -518
  55. package/public/his/editor/vender/signature/jSignature.UndoButton.js +164 -164
  56. package/public/his/editor/vender/signature/jSignature.js +1486 -1486
  57. package/public/his/editor/vender/validator.js +5094 -5094
  58. package/public/his/editor/vender/weui/weui.css +5659 -5659
  59. package/public/his/editor/vender/weui/weui.min.css +4 -4
  60. package/public/his/editor/vender/weui/weui.min.js +11 -11
  61. package/src/assets/img/paymentMethod/package.info +1 -1
  62. package/src/assets/img/querySlotDemo.svg +15 -15
  63. package/src/assets/svg/badtwo.svg +1 -1
  64. package/src/assets/svg/female.svg +1 -1
  65. package/src/assets/svg/goodtwo.svg +1 -1
  66. package/src/assets/svg/male.svg +1 -1
  67. package/src/base-client/components/AI/AskAiBtn.vue +136 -136
  68. package/src/base-client/components/AI/demo.vue +31 -31
  69. package/src/base-client/components/common/AddressSearchCombobox/IcMapIcon.vue +16 -16
  70. package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
  71. package/src/base-client/components/common/AddressSearchCombobox/ic_map.svg +6 -6
  72. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  73. package/src/base-client/components/common/CitySelect/index.js +3 -3
  74. package/src/base-client/components/common/CitySelect/index.md +109 -109
  75. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  76. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
  77. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  78. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  79. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
  80. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
  81. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  82. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  83. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  84. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  85. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  86. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  87. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  88. package/src/base-client/components/common/HIS/HButtons/HButtons.vue +491 -491
  89. package/src/base-client/components/common/HIS/HFormGroup/index.js +3 -3
  90. package/src/base-client/components/common/HIS/HTab/HTab.vue +443 -443
  91. package/src/base-client/components/common/HIS/demo.vue +61 -61
  92. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  93. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorModal.vue +108 -108
  94. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -413
  95. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
  96. package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -728
  97. package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
  98. package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -219
  99. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeAddPageModal.vue +117 -117
  100. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeCustomJSModal.vue +80 -80
  101. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeEventEditorModal.vue +398 -398
  102. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLifeCycleModal.vue +65 -65
  103. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicCallbackModal.vue +64 -64
  104. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicParamModal.vue +73 -73
  105. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeRunFunctionParamModal.vue +76 -76
  106. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  107. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  108. package/src/base-client/components/common/Recording/Recording.vue +243 -243
  109. package/src/base-client/components/common/Recording/index.js +3 -3
  110. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  111. package/src/base-client/components/common/Tree/index.js +2 -2
  112. package/src/base-client/components/common/Upload/index.js +3 -3
  113. package/src/base-client/components/common/XAddForm/XAddForm.vue +113 -113
  114. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  115. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +304 -304
  116. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  117. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  118. package/src/base-client/components/common/XAddReport/index.js +3 -3
  119. package/src/base-client/components/common/XAddReport/index.md +56 -56
  120. package/src/base-client/components/common/XBadge/XBadge.vue +94 -94
  121. package/src/base-client/components/common/XButtons/XButtonDemo.vue +28 -28
  122. package/src/base-client/components/common/XButtons/index.js +3 -3
  123. package/src/base-client/components/common/XButtons/index.md +61 -61
  124. package/src/base-client/components/common/XCalendar/XCalendar.vue +4 -4
  125. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  126. package/src/base-client/components/common/XCheckList/XCheckList.vue +106 -106
  127. package/src/base-client/components/common/XCheckList/XCheckListDemo.vue +41 -41
  128. package/src/base-client/components/common/XCollapse/XCollapse.vue +830 -830
  129. package/src/base-client/components/common/XDataCard/index.js +3 -3
  130. package/src/base-client/components/common/XDataCard/index.md +1 -1
  131. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  132. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  133. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  134. package/src/base-client/components/common/XDatePicker/demo.vue +153 -153
  135. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  136. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  137. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +238 -238
  138. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  139. package/src/base-client/components/common/XForm/XStatusButton.vue +54 -54
  140. package/src/base-client/components/common/XForm/index.md +178 -178
  141. package/src/base-client/components/common/XForm/itemComponent/XClickChangeBtn/index.vue +49 -49
  142. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  143. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  144. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  145. package/src/base-client/components/common/XFormTable/XFormTable.vue +1093 -1093
  146. package/src/base-client/components/common/XFormTable/demo.vue +113 -113
  147. package/src/base-client/components/common/XFormTable/index.md +92 -92
  148. package/src/base-client/components/common/XLabelSelect/XLabelSelect.vue +110 -110
  149. package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
  150. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  151. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  152. package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
  153. package/src/base-client/components/common/XPrint/PrintHtml.js +98 -98
  154. package/src/base-client/components/common/XPrint/css/hiPrintCss.js +359 -359
  155. package/src/base-client/components/common/XPrint/css/lodopCss.js +26 -26
  156. package/src/base-client/components/common/XPrint/css/print-lock.css +351 -351
  157. package/src/base-client/components/common/XPrint/index.vue +97 -97
  158. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  159. package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
  160. package/src/base-client/components/common/XReport/index.js +3 -3
  161. package/src/base-client/components/common/XReport/print.js +186 -186
  162. package/src/base-client/components/common/XReportDrawer/index.js +3 -3
  163. package/src/base-client/components/common/XReportGrid/XReportTrGroup.vue +6 -3
  164. package/src/base-client/components/common/XReportGrid/index.js +3 -3
  165. package/src/base-client/components/common/XReportGrid/index.md +44 -44
  166. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  167. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  168. package/src/base-client/components/common/XReportSlot/index.md +48 -48
  169. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
  170. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
  171. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
  172. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  173. package/src/base-client/components/common/XStepView/index.js +3 -3
  174. package/src/base-client/components/common/XStepView/index.md +31 -31
  175. package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
  176. package/src/base-client/components/common/XTab/index.js +3 -3
  177. package/src/base-client/components/common/XTable/CustomFuncCel.vue +51 -51
  178. package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
  179. package/src/base-client/components/common/XTable/XTableWrapper.vue +732 -732
  180. package/src/base-client/components/common/XTable/index.md +255 -255
  181. package/src/base-client/components/common/XTagGroup/index.vue +52 -52
  182. package/src/base-client/components/common/XTimeline/XTimeline.vue +477 -477
  183. package/src/base-client/components/common/XTree/XTree.vue +424 -424
  184. package/src/base-client/components/common/XTree/index.js +3 -3
  185. package/src/base-client/components/common/XTree/index.md +36 -36
  186. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
  187. package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
  188. package/src/base-client/components/common/richTextModal/index.vue +56 -56
  189. package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
  190. package/src/base-client/components/his/XCharge/XChargeDemo.vue +145 -145
  191. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +705 -705
  192. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  193. package/src/base-client/components/his/XList/XList.vue +938 -938
  194. package/src/base-client/components/his/XSidebar/XSidebar.vue +1 -1
  195. package/src/base-client/components/his/XTimeSelect/XTimeSelect.vue +354 -354
  196. package/src/base-client/components/his/XTitle/XTitle.vue +314 -314
  197. package/src/base-client/components/his/XTreeRows/XTreeRows.vue +341 -341
  198. package/src/base-client/components/his/threeTestOrders/editor.vue +113 -113
  199. package/src/base-client/components/index.js +51 -51
  200. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  201. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  202. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  203. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  204. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  205. package/src/base-client/plugins/Config.js +19 -19
  206. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  207. package/src/base-client/plugins/Recording.js +258 -258
  208. package/src/base-client/plugins/index.js +23 -23
  209. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  210. package/src/components/Charts/Bar.vue +62 -62
  211. package/src/components/Charts/ChartCard.vue +134 -134
  212. package/src/components/Charts/Liquid.vue +67 -67
  213. package/src/components/Charts/MiniArea.vue +39 -39
  214. package/src/components/Charts/MiniBar.vue +39 -39
  215. package/src/components/Charts/MiniProgress.vue +75 -75
  216. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  217. package/src/components/Charts/Radar.vue +68 -68
  218. package/src/components/Charts/RankList.vue +77 -77
  219. package/src/components/Charts/TagCloud.vue +113 -113
  220. package/src/components/Charts/TransferBar.vue +64 -64
  221. package/src/components/Charts/Trend.vue +82 -82
  222. package/src/components/Charts/chart.less +12 -12
  223. package/src/components/Charts/smooth.area.less +13 -13
  224. package/src/components/CodeMirror/inedx.vue +118 -118
  225. package/src/components/CodeMirror/setting.js +40 -40
  226. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  227. package/src/components/NumberInfo/index.js +3 -3
  228. package/src/components/NumberInfo/index.less +54 -54
  229. package/src/components/NumberInfo/index.md +43 -43
  230. package/src/components/card/ChartCard.vue +79 -79
  231. package/src/components/chart/Bar.vue +60 -60
  232. package/src/components/chart/MiniArea.vue +67 -67
  233. package/src/components/chart/MiniBar.vue +59 -59
  234. package/src/components/chart/MiniProgress.vue +57 -57
  235. package/src/components/chart/Radar.vue +80 -80
  236. package/src/components/chart/RankingList.vue +60 -60
  237. package/src/components/chart/Trend.vue +79 -79
  238. package/src/components/chart/index.less +9 -9
  239. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  240. package/src/components/checkbox/ImgCheckbox.vue +117 -117
  241. package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
  242. package/src/components/checkbox/index.js +9 -9
  243. package/src/components/exception/ExceptionPage.vue +70 -70
  244. package/src/components/g2Charts/constants.js +202 -202
  245. package/src/components/g2Charts/demo.vue +808 -808
  246. package/src/components/g2Charts/designer.vue +228 -228
  247. package/src/components/g2Charts/designerBaseConfig.vue +61 -61
  248. package/src/components/g2Charts/designerDataConfig.vue +259 -259
  249. package/src/components/g2Charts/designerStyleConfig.vue +16 -16
  250. package/src/components/g2Charts/index.vue +397 -397
  251. package/src/components/index.js +36 -36
  252. package/src/components/input/IInput.vue +66 -66
  253. package/src/components/menu/SideMenu.vue +75 -75
  254. package/src/components/menu/menu.js +273 -273
  255. package/src/components/setting/Setting.vue +234 -234
  256. package/src/components/tool/AStepItem.vue +60 -60
  257. package/src/config/CreateQueryConfig.js +325 -325
  258. package/src/config/default/antd.config.js +89 -89
  259. package/src/config/default/setting.config.js +55 -55
  260. package/src/font-style/font.css +60 -60
  261. package/src/layouts/CommonLayout.vue +56 -56
  262. package/src/layouts/PageLayout.vue +151 -151
  263. package/src/layouts/SinglePageView.vue +136 -136
  264. package/src/layouts/header/AdminHeader.vue +132 -132
  265. package/src/layouts/header/HeaderNotice.vue +177 -177
  266. package/src/layouts/header/InstitutionDetail.vue +181 -181
  267. package/src/layouts/tabs/TabsHead.vue +189 -189
  268. package/src/lib.js +1 -1
  269. package/src/mock/extend/index.js +84 -84
  270. package/src/mock/goods/index.js +108 -108
  271. package/src/pages/DefaultExample/index.vue +77 -77
  272. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  273. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  274. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  275. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  276. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  277. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  278. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  279. package/src/pages/DynamicStatistics/index.vue +282 -282
  280. package/src/pages/Example/childIndex.vue +15 -15
  281. package/src/pages/Example/index.vue +30 -30
  282. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  283. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  284. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  285. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  286. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  287. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  288. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  289. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  290. package/src/pages/Recording/index.vue +77 -77
  291. package/src/pages/ServiceReview/index.vue +284 -284
  292. package/src/pages/SubExample/index.vue +26 -26
  293. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  294. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandle.vue +1815 -1815
  295. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowTimeline.vue +1014 -1014
  296. package/src/pages/XReportView/index.vue +64 -64
  297. package/src/pages/XTreeOneProExample/index.vue +67 -67
  298. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  299. package/src/pages/login/Login.vue +379 -379
  300. package/src/pages/login/LoginV3.vue +389 -389
  301. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  302. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  303. package/src/pages/report/ReportTable.js +124 -124
  304. package/src/pages/resourceManage/orgListManage.vue +98 -98
  305. package/src/pages/system/dictionary/index.vue +44 -44
  306. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  307. package/src/pages/system/monitor/operLog/index.vue +37 -37
  308. package/src/pages/system/settings/modifyPassword.vue +117 -117
  309. package/src/pages/system/ticket/index.vue +480 -480
  310. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  311. package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
  312. package/src/pages/userInfoDetailManage/ExceptionRecordQuery/index.vue +45 -45
  313. package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
  314. package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
  315. package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
  316. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
  317. package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
  318. package/src/plugins/EventLogPlugin.js +33 -33
  319. package/src/plugins/FindParentsData.js +17 -17
  320. package/src/services/DataModel.js +30 -30
  321. package/src/services/LodopFuncs.js +137 -137
  322. package/src/services/api/TicketDetailsViewApi.js +46 -46
  323. package/src/services/api/cas.js +79 -79
  324. package/src/services/api/entity.js +18 -18
  325. package/src/services/api/index.js +17 -17
  326. package/src/store/modules/account.js +121 -121
  327. package/src/store/modules/index.js +5 -5
  328. package/src/store/modules/lowCode.js +33 -33
  329. package/src/store/modules/setting.js +119 -119
  330. package/src/theme/default/style.less +58 -58
  331. package/src/theme/global.less +313 -313
  332. package/src/utils/authority-utils.js +85 -85
  333. package/src/utils/errorCode.js +6 -6
  334. package/src/utils/formatter.js +74 -74
  335. package/src/utils/htmlToPDF.js +108 -108
  336. package/src/utils/htmlToPDFApi.js +5 -5
  337. package/src/utils/login.js +188 -188
  338. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  339. package/src/utils/lowcode/lowcodeLog.js +29 -29
  340. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  341. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  342. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  343. package/src/utils/map-utils.js +47 -47
  344. package/src/utils/reg.js +95 -95
  345. package/src/utils/runEvalFunction.js +14 -14
  346. package/src/utils/theme-color-replacer-extend.js +92 -92
  347. package/src/utils/util.js +329 -329
  348. package/src/utils/waterMark.js +31 -31
  349. package/src-base-client/components/common/HIS/HForm/HForm.vue +347 -0
  350. package/src-base-client/components/common/XCollapse/XCollapse.vue +0 -0
  351. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
@@ -1 +1 @@
1
- export {}
1
+ export {}
@@ -1,11 +1,11 @@
1
- import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable.vue'
2
- import XTreeOne from '@vue2-client/base-client/components/common/XTreeOne/XTreeOne.vue'
3
- import XAddNativeForm from '@vue2-client/base-client/components/common/XAddNativeForm/XAddNativeForm.vue'
4
- import XDescriptions from '@vue2-client/base-client/components/common/XDescriptions/XDescriptions.vue'
5
-
6
- export {
7
- XFormTable,
8
- XTreeOne,
9
- XAddNativeForm,
10
- XDescriptions
11
- }
1
+ import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable.vue'
2
+ import XTreeOne from '@vue2-client/base-client/components/common/XTreeOne/XTreeOne.vue'
3
+ import XAddNativeForm from '@vue2-client/base-client/components/common/XAddNativeForm/XAddNativeForm.vue'
4
+ import XDescriptions from '@vue2-client/base-client/components/common/XDescriptions/XDescriptions.vue'
5
+
6
+ export {
7
+ XFormTable,
8
+ XTreeOne,
9
+ XAddNativeForm,
10
+ XDescriptions
11
+ }
@@ -1,47 +1,47 @@
1
- import AMapLoader from '@amap/amap-jsapi-loader'
2
- let Amap
3
- async function GetGDMap (secretKey, key) {
4
- if (!Amap) {
5
- window._AMapSecurityConfig = {
6
- securityJsCode: secretKey
7
- }
8
- // 解决高德地图加载报错 ---> 禁止多种API加载方式混用
9
- AMapLoader.reset()
10
- Amap = await AMapLoader.load({
11
- key: key, // 申请好的Web端开发者Key,首次调用 load 时必填
12
- version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
13
- plugins: ['AMap.IndexCluster', 'AMP.MarkerCluster', 'AMap.InfoWindow', 'AMap.HeatMap', 'AMap.HawkEye', 'AMap.DistrictSearch',
14
- 'AMap.ToolBar', 'AMap.Geolocation', 'AMap.MouseTool',
15
- 'AMap.Geocoder', 'AMap.MarkerClusterer', 'AMap.AutoComplete', 'AMap.Scale'], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
16
- AMapUI: {
17
- version: '1.1', // AMapUI 缺省 1.1
18
- plugins: ['misc/PositionPicker'] // 需要加载的 AMapUI ui插件
19
- }
20
- })
21
- }
22
- return Amap
23
- }
24
-
25
- async function getGDMap (address) {
26
- new (await GetGDMap()).Geocoder({
27
- radius: 500 // 范围,默认:500
28
- }).getLocation(address, function (status, result) {
29
- if (status === 'complete' && result.geocodes.length) {
30
- return ({ lng: result.geocodes[0].location.lng, lat: result.geocodes[0].location.lat })
31
- } else {
32
- // eslint-disable-next-line prefer-promise-reject-errors
33
- throw new Error('根据经纬度查询地址失败')
34
- }
35
- })
36
- }
37
-
38
- async function GetLocation (address) {
39
- return new Promise((resolve, reject) => {
40
- try {
41
- resolve(getGDMap(address))
42
- } catch (e) {
43
- reject(e)
44
- }
45
- })
46
- }
47
- export { GetGDMap, GetLocation }
1
+ import AMapLoader from '@amap/amap-jsapi-loader'
2
+ let Amap
3
+ async function GetGDMap (secretKey, key) {
4
+ if (!Amap) {
5
+ window._AMapSecurityConfig = {
6
+ securityJsCode: secretKey
7
+ }
8
+ // 解决高德地图加载报错 ---> 禁止多种API加载方式混用
9
+ AMapLoader.reset()
10
+ Amap = await AMapLoader.load({
11
+ key: key, // 申请好的Web端开发者Key,首次调用 load 时必填
12
+ version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
13
+ plugins: ['AMap.IndexCluster', 'AMP.MarkerCluster', 'AMap.InfoWindow', 'AMap.HeatMap', 'AMap.HawkEye', 'AMap.DistrictSearch',
14
+ 'AMap.ToolBar', 'AMap.Geolocation', 'AMap.MouseTool',
15
+ 'AMap.Geocoder', 'AMap.MarkerClusterer', 'AMap.AutoComplete', 'AMap.Scale'], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
16
+ AMapUI: {
17
+ version: '1.1', // AMapUI 缺省 1.1
18
+ plugins: ['misc/PositionPicker'] // 需要加载的 AMapUI ui插件
19
+ }
20
+ })
21
+ }
22
+ return Amap
23
+ }
24
+
25
+ async function getGDMap (address) {
26
+ new (await GetGDMap()).Geocoder({
27
+ radius: 500 // 范围,默认:500
28
+ }).getLocation(address, function (status, result) {
29
+ if (status === 'complete' && result.geocodes.length) {
30
+ return ({ lng: result.geocodes[0].location.lng, lat: result.geocodes[0].location.lat })
31
+ } else {
32
+ // eslint-disable-next-line prefer-promise-reject-errors
33
+ throw new Error('根据经纬度查询地址失败')
34
+ }
35
+ })
36
+ }
37
+
38
+ async function GetLocation (address) {
39
+ return new Promise((resolve, reject) => {
40
+ try {
41
+ resolve(getGDMap(address))
42
+ } catch (e) {
43
+ reject(e)
44
+ }
45
+ })
46
+ }
47
+ export { GetGDMap, GetLocation }
package/src/utils/reg.js CHANGED
@@ -1,95 +1,95 @@
1
- /** 手机号 */
2
- export const REG_PHONE =
3
- /^[1](([3][0-9])|([4][01456789])|([5][012356789])|([6][2567])|([7][0-8])|([8][0-9])|([9][012356789]))[0-9]{8}$/
4
-
5
- /** 邮箱 */
6
- export const REG_EMAIL = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
7
-
8
- /** url */
9
- export const REG_URL =
10
- /(((^https?:(?:\/\/)?)(?:[-;:&=+$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[+~%/.\w-_]*)?\??(?:[-+=&;%@.\w_]*)#?(?:[\w]*))?)$/
11
-
12
- /** 身份证号校验 */
13
- export function checkIdNumber (value) {
14
- const psidno = String(value)
15
- // 1.校验身份证号格式和长度
16
- const regPsidno = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[X])$)$/
17
- if (!regPsidno.test(psidno)) {
18
- return false
19
- }
20
- // 2.校验前两位的省份编码是否正确
21
- const province = { 11: '北京', 12: '天津', 13: '河北', 14: '山西', 15: '内蒙古', 21: '辽宁', 22: '吉林', 23: '黑龙江 ', 31: '上海', 32: '江苏', 33: '浙江', 34: '安徽', 35: '福建', 36: '江西', 37: '山东', 41: '河南', 42: '湖北 ', 43: '湖南', 44: '广东', 45: '广西', 46: '海南', 50: '重庆', 51: '四川', 52: '贵州', 53: '云南', 54: '西藏 ', 61: '陕西', 62: '甘肃', 63: '青海', 64: '宁夏', 65: '新疆', 71: '台湾', 81: '香港', 82: '澳门', 91: '国外' }
22
- if (!province[Number(psidno.slice(0, 2))]) {
23
- return false
24
- }
25
- // 3.校验出生日期
26
- if (psidno.length === 15) {
27
- // 15位号码 省(2位)市(2位)县(2位)年(2位)月(2位)日(2位)校验码(3位)
28
- const reg = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/
29
- const arrSplit = psidno.match(reg)
30
- // 15位号码在年份前补 19 或 20
31
- const year = Number(arrSplit[2].charAt(0)) > 0 ? '19' + arrSplit[2] : '20' + arrSplit[2]
32
- const month = arrSplit[3]
33
- const day = arrSplit[4]
34
- if (!validateBirthday(year, month, day)) {
35
- return false
36
- }
37
- } else if (psidno.length === 18) {
38
- // 18位号码 省(2位)市(2位)县(2位)年(4位)月(2位)日(2位)校验码(4位)
39
- const reg = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/
40
- const arrSplit = psidno.match(reg)
41
- const year = arrSplit[2]
42
- const month = arrSplit[3]
43
- const day = arrSplit[4]
44
- if (!validateBirthday(year, month, day)) {
45
- return false
46
- }
47
- } else {
48
- return false
49
- }
50
- // 校验出生日期是否合理
51
- function validateBirthday (year, month, day) {
52
- year = Number(year) // 年
53
- month = Number(month) // 月
54
- day = Number(day) // 日
55
- const nowTime = new Date().getTime() // 当前时间戳
56
- const birthTime = new Date(`${year}-${month}-${day}`).getTime() // 获取出生日期的时间戳
57
- // 不能是明天出生的吧
58
- if (birthTime > nowTime) {
59
- return false
60
- }
61
- // 一般人活不到150岁吧
62
- const nowYear = new Date().getFullYear()
63
- if ((nowYear - year) > 150) {
64
- return false
65
- }
66
- // 不能是13月出生的吧
67
- if (month < 1 || month > 12) {
68
- return false
69
- }
70
- // 不能是2月30号、4月31号、5月32号出生的吧
71
- const date = new Date(year, month, 0) // 获取当月的最后一天
72
- if (day < 1 || day > date.getDate()) {
73
- return false
74
- }
75
- return true
76
- }
77
- // 4.18位号码校验生成的校验码
78
- if (psidno.length === 18) {
79
- const Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] // 加权因子
80
- const parity = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'] // 校验码
81
- let sum = 0
82
- for (let i = 0; i < 17; i++) {
83
- sum += Number(psidno.charAt(i)) * Wi[i]
84
- }
85
- if (parity[sum % 11] !== psidno[17]) {
86
- return false
87
- }
88
- }
89
- return true
90
- }
91
- /** 座机号 */
92
- export const REG_LANDLINE = /\d{3}-\d{8}|\d{4}-\d{7}/
93
-
94
- /** 营业执照 */
95
- export const REG_BUSINESS_LICENSE = /^[0-9a-zA-Z]{15}$/
1
+ /** 手机号 */
2
+ export const REG_PHONE =
3
+ /^[1](([3][0-9])|([4][01456789])|([5][012356789])|([6][2567])|([7][0-8])|([8][0-9])|([9][012356789]))[0-9]{8}$/
4
+
5
+ /** 邮箱 */
6
+ export const REG_EMAIL = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
7
+
8
+ /** url */
9
+ export const REG_URL =
10
+ /(((^https?:(?:\/\/)?)(?:[-;:&=+$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[+~%/.\w-_]*)?\??(?:[-+=&;%@.\w_]*)#?(?:[\w]*))?)$/
11
+
12
+ /** 身份证号校验 */
13
+ export function checkIdNumber (value) {
14
+ const psidno = String(value)
15
+ // 1.校验身份证号格式和长度
16
+ const regPsidno = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[X])$)$/
17
+ if (!regPsidno.test(psidno)) {
18
+ return false
19
+ }
20
+ // 2.校验前两位的省份编码是否正确
21
+ const province = { 11: '北京', 12: '天津', 13: '河北', 14: '山西', 15: '内蒙古', 21: '辽宁', 22: '吉林', 23: '黑龙江 ', 31: '上海', 32: '江苏', 33: '浙江', 34: '安徽', 35: '福建', 36: '江西', 37: '山东', 41: '河南', 42: '湖北 ', 43: '湖南', 44: '广东', 45: '广西', 46: '海南', 50: '重庆', 51: '四川', 52: '贵州', 53: '云南', 54: '西藏 ', 61: '陕西', 62: '甘肃', 63: '青海', 64: '宁夏', 65: '新疆', 71: '台湾', 81: '香港', 82: '澳门', 91: '国外' }
22
+ if (!province[Number(psidno.slice(0, 2))]) {
23
+ return false
24
+ }
25
+ // 3.校验出生日期
26
+ if (psidno.length === 15) {
27
+ // 15位号码 省(2位)市(2位)县(2位)年(2位)月(2位)日(2位)校验码(3位)
28
+ const reg = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/
29
+ const arrSplit = psidno.match(reg)
30
+ // 15位号码在年份前补 19 或 20
31
+ const year = Number(arrSplit[2].charAt(0)) > 0 ? '19' + arrSplit[2] : '20' + arrSplit[2]
32
+ const month = arrSplit[3]
33
+ const day = arrSplit[4]
34
+ if (!validateBirthday(year, month, day)) {
35
+ return false
36
+ }
37
+ } else if (psidno.length === 18) {
38
+ // 18位号码 省(2位)市(2位)县(2位)年(4位)月(2位)日(2位)校验码(4位)
39
+ const reg = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/
40
+ const arrSplit = psidno.match(reg)
41
+ const year = arrSplit[2]
42
+ const month = arrSplit[3]
43
+ const day = arrSplit[4]
44
+ if (!validateBirthday(year, month, day)) {
45
+ return false
46
+ }
47
+ } else {
48
+ return false
49
+ }
50
+ // 校验出生日期是否合理
51
+ function validateBirthday (year, month, day) {
52
+ year = Number(year) // 年
53
+ month = Number(month) // 月
54
+ day = Number(day) // 日
55
+ const nowTime = new Date().getTime() // 当前时间戳
56
+ const birthTime = new Date(`${year}-${month}-${day}`).getTime() // 获取出生日期的时间戳
57
+ // 不能是明天出生的吧
58
+ if (birthTime > nowTime) {
59
+ return false
60
+ }
61
+ // 一般人活不到150岁吧
62
+ const nowYear = new Date().getFullYear()
63
+ if ((nowYear - year) > 150) {
64
+ return false
65
+ }
66
+ // 不能是13月出生的吧
67
+ if (month < 1 || month > 12) {
68
+ return false
69
+ }
70
+ // 不能是2月30号、4月31号、5月32号出生的吧
71
+ const date = new Date(year, month, 0) // 获取当月的最后一天
72
+ if (day < 1 || day > date.getDate()) {
73
+ return false
74
+ }
75
+ return true
76
+ }
77
+ // 4.18位号码校验生成的校验码
78
+ if (psidno.length === 18) {
79
+ const Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] // 加权因子
80
+ const parity = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'] // 校验码
81
+ let sum = 0
82
+ for (let i = 0; i < 17; i++) {
83
+ sum += Number(psidno.charAt(i)) * Wi[i]
84
+ }
85
+ if (parity[sum % 11] !== psidno[17]) {
86
+ return false
87
+ }
88
+ }
89
+ return true
90
+ }
91
+ /** 座机号 */
92
+ export const REG_LANDLINE = /\d{3}-\d{8}|\d{4}-\d{7}/
93
+
94
+ /** 营业执照 */
95
+ export const REG_BUSINESS_LICENSE = /^[0-9a-zA-Z]{15}$/
@@ -1,14 +1,14 @@
1
- export function executeStrFunction (funcString, args) {
2
- // 使用 eval 执行传入的函数字符串
3
- // eslint-disable-next-line no-eval
4
- return eval(`(${funcString})`)(...args)
5
- }
6
-
7
- export function executeStrFunctionByContext (context, fnStr, args) {
8
- // 使用 new Function 创建函数,并绑定 context 作为 this
9
- // eslint-disable-next-line no-eval,no-new-func
10
- const fn = new Function(`return (${fnStr});`)()
11
-
12
- // 使用 bind 绑定 context,并立即调用
13
- return fn.bind(context)(...args)
14
- }
1
+ export function executeStrFunction (funcString, args) {
2
+ // 使用 eval 执行传入的函数字符串
3
+ // eslint-disable-next-line no-eval
4
+ return eval(`(${funcString})`)(...args)
5
+ }
6
+
7
+ export function executeStrFunctionByContext (context, fnStr, args) {
8
+ // 使用 new Function 创建函数,并绑定 context 作为 this
9
+ // eslint-disable-next-line no-eval,no-new-func
10
+ const fn = new Function(`return (${fnStr});`)()
11
+
12
+ // 使用 bind 绑定 context,并立即调用
13
+ return fn.bind(context)(...args)
14
+ }
@@ -1,92 +1,92 @@
1
- const { cssResolve } = require('../config/replacer')
2
- // 修正 webpack-theme-color-replacer 插件提取的 css 结果
3
- function resolveCss (output, srcArr) {
4
- const regExps = []
5
- // 提取 resolve 配置中所有的正则配置
6
- Object.keys(cssResolve).forEach(key => {
7
- let isRegExp
8
- let reg = {}
9
- try {
10
- // eslint-disable-next-line no-eval
11
- reg = eval(key)
12
- isRegExp = reg instanceof RegExp
13
- } catch (e) {
14
- isRegExp = false
15
- }
16
- if (isRegExp) {
17
- regExps.push([reg, cssResolve[key]])
18
- }
19
- })
20
-
21
- // 去重
22
- srcArr = dropDuplicate(srcArr)
23
-
24
- // 处理 css
25
- const outArr = []
26
- srcArr.forEach(text => {
27
- // 转换为 css 对象
28
- const cssObj = parseCssObj(text)
29
- // 根据selector匹配配置,匹配成功,则按配置处理 css
30
- if (cssResolve[cssObj.selector] !== undefined) {
31
- const cfg = cssResolve[cssObj.selector]
32
- if (cfg) {
33
- outArr.push(cfg.resolve(text, cssObj))
34
- }
35
- } else {
36
- let cssText = ''
37
- // 匹配不成功,则测试是否有匹配的正则配置,有则按正则对应的配置处理
38
- for (const regExp of regExps) {
39
- if (regExp[0].test(cssObj.selector)) {
40
- const cssCfg = regExp[1]
41
- cssText = cssCfg ? cssCfg.resolve(text, cssObj) : ''
42
- break
43
- }
44
- // 未匹配到正则,则设置 cssText 为默认的 css(即不处理)
45
- cssText = text
46
- }
47
- if (cssText !== '') {
48
- outArr.push(cssText)
49
- }
50
- }
51
- })
52
- output = outArr.join('\n')
53
- return output
54
- }
55
-
56
- // 数组去重
57
- function dropDuplicate (arr) {
58
- const map = {}
59
- const r = []
60
- for (const s of arr) {
61
- if (!map[s]) {
62
- r.push(s)
63
- map[s] = 1
64
- }
65
- }
66
- return r
67
- }
68
-
69
- /**
70
- * 从字符串解析 css 对象
71
- * @param cssText
72
- * @returns {{
73
- * name: String,
74
- * rules: Array[String],
75
- * toText: function
76
- * }}
77
- */
78
- function parseCssObj (cssText) {
79
- const css = {}
80
- const ruleIndex = cssText.indexOf('{')
81
- css.selector = cssText.substring(0, ruleIndex)
82
- const ruleBody = cssText.substring(ruleIndex + 1, cssText.length - 1)
83
- css.rules = ruleBody.split(';')
84
- css.toText = function () {
85
- let body = ''
86
- this.rules.forEach(item => { body += item + ';' })
87
- return `${this.selector}{${body}}`
88
- }
89
- return css
90
- }
91
-
92
- module.exports = { resolveCss }
1
+ const { cssResolve } = require('../config/replacer')
2
+ // 修正 webpack-theme-color-replacer 插件提取的 css 结果
3
+ function resolveCss (output, srcArr) {
4
+ const regExps = []
5
+ // 提取 resolve 配置中所有的正则配置
6
+ Object.keys(cssResolve).forEach(key => {
7
+ let isRegExp
8
+ let reg = {}
9
+ try {
10
+ // eslint-disable-next-line no-eval
11
+ reg = eval(key)
12
+ isRegExp = reg instanceof RegExp
13
+ } catch (e) {
14
+ isRegExp = false
15
+ }
16
+ if (isRegExp) {
17
+ regExps.push([reg, cssResolve[key]])
18
+ }
19
+ })
20
+
21
+ // 去重
22
+ srcArr = dropDuplicate(srcArr)
23
+
24
+ // 处理 css
25
+ const outArr = []
26
+ srcArr.forEach(text => {
27
+ // 转换为 css 对象
28
+ const cssObj = parseCssObj(text)
29
+ // 根据selector匹配配置,匹配成功,则按配置处理 css
30
+ if (cssResolve[cssObj.selector] !== undefined) {
31
+ const cfg = cssResolve[cssObj.selector]
32
+ if (cfg) {
33
+ outArr.push(cfg.resolve(text, cssObj))
34
+ }
35
+ } else {
36
+ let cssText = ''
37
+ // 匹配不成功,则测试是否有匹配的正则配置,有则按正则对应的配置处理
38
+ for (const regExp of regExps) {
39
+ if (regExp[0].test(cssObj.selector)) {
40
+ const cssCfg = regExp[1]
41
+ cssText = cssCfg ? cssCfg.resolve(text, cssObj) : ''
42
+ break
43
+ }
44
+ // 未匹配到正则,则设置 cssText 为默认的 css(即不处理)
45
+ cssText = text
46
+ }
47
+ if (cssText !== '') {
48
+ outArr.push(cssText)
49
+ }
50
+ }
51
+ })
52
+ output = outArr.join('\n')
53
+ return output
54
+ }
55
+
56
+ // 数组去重
57
+ function dropDuplicate (arr) {
58
+ const map = {}
59
+ const r = []
60
+ for (const s of arr) {
61
+ if (!map[s]) {
62
+ r.push(s)
63
+ map[s] = 1
64
+ }
65
+ }
66
+ return r
67
+ }
68
+
69
+ /**
70
+ * 从字符串解析 css 对象
71
+ * @param cssText
72
+ * @returns {{
73
+ * name: String,
74
+ * rules: Array[String],
75
+ * toText: function
76
+ * }}
77
+ */
78
+ function parseCssObj (cssText) {
79
+ const css = {}
80
+ const ruleIndex = cssText.indexOf('{')
81
+ css.selector = cssText.substring(0, ruleIndex)
82
+ const ruleBody = cssText.substring(ruleIndex + 1, cssText.length - 1)
83
+ css.rules = ruleBody.split(';')
84
+ css.toText = function () {
85
+ let body = ''
86
+ this.rules.forEach(item => { body += item + ';' })
87
+ return `${this.selector}{${body}}`
88
+ }
89
+ return css
90
+ }
91
+
92
+ module.exports = { resolveCss }