vue2-client 1.15.5 → 1.15.6

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 (348) hide show
  1. package/.cursorrules +19 -19
  2. package/.env.apply +19 -0
  3. package/.env.gaslink +19 -19
  4. package/.env.his +19 -19
  5. package/.env.liuli +19 -19
  6. package/.env.scada +19 -19
  7. package/.eslintrc.js +90 -90
  8. package/CHANGELOG.md +824 -824
  9. package/Components.md +60 -60
  10. package/docs/Logic/345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +45 -45
  11. package/docs/LowCode/lowcode.md +155 -155
  12. package/docs/LowCode/lowcodeForDeveloper.md +230 -230
  13. package/docs/index.md +30 -30
  14. package/index.js +31 -31
  15. package/jest-transform-stub.js +8 -8
  16. package/jest.setup.js +7 -7
  17. package/jsconfig.json +19 -19
  18. package/package.json +2 -1
  19. package/public/his/editor/editor.html +51 -51
  20. package/public/his/editor/mock/bind_data.html +779 -779
  21. package/public/his/editor/mock/data_table.html +40 -40
  22. package/public/his/editor/mock/sign.html +75 -75
  23. package/public/his/editor/vender/JsBarcode.all.js +3669 -3669
  24. package/public/his/editor/vender/date97/My97DatePicker.htm +65 -65
  25. package/public/his/editor/vender/date97/WdatePicker.js +677 -677
  26. package/public/his/editor/vender/date97/calendar.js +4 -4
  27. package/public/his/editor/vender/date97/lang/en.js +13 -13
  28. package/public/his/editor/vender/date97/lang/zh-cn.js +13 -13
  29. package/public/his/editor/vender/date97/lang/zh-tw.js +13 -13
  30. package/public/his/editor/vender/date97/skin/WdatePicker.css +10 -10
  31. package/public/his/editor/vender/date97/skin/default/datepicker.css +328 -328
  32. package/public/his/editor/vender/date97/skin/ext/datepicker.css +308 -308
  33. package/public/his/editor/vender/date97/skin/whyGreen/datepicker.css +255 -255
  34. package/public/his/editor/vender/diff.js +1627 -1627
  35. package/public/his/editor/vender/editor.js +1 -1
  36. package/public/his/editor/vender/fabric.js +31187 -31187
  37. package/public/his/editor/vender/jquery/jquery.base64.js +190 -190
  38. package/public/his/editor/vender/jquery/jquery.js +10872 -10872
  39. package/public/his/editor/vender/jquery/jquery.print.js +255 -255
  40. package/public/his/editor/vender/jquery/zTreeStyle/zTreeStyle.css +96 -96
  41. package/public/his/editor/vender/mui/mui.min.css +4 -4
  42. package/public/his/editor/vender/mui/mui.min.js +5 -5
  43. package/public/his/editor/vender/mui/mui.picker.min.css +6 -6
  44. package/public/his/editor/vender/mui/mui.picker.min.js +6 -6
  45. package/public/his/editor/vender/qrcode.js +7 -7
  46. package/public/his/editor/vender/requirejs/require.js +2145 -2145
  47. package/public/his/editor/vender/signature/jSignature.CompressorSVG.js +518 -518
  48. package/public/his/editor/vender/signature/jSignature.UndoButton.js +164 -164
  49. package/public/his/editor/vender/signature/jSignature.js +1486 -1486
  50. package/public/his/editor/vender/validator.js +5094 -5094
  51. package/public/his/editor/vender/weui/weui.css +5659 -5659
  52. package/public/his/editor/vender/weui/weui.min.css +4 -4
  53. package/public/his/editor/vender/weui/weui.min.js +11 -11
  54. package/public/index.html +27 -27
  55. package/src/ReportView.js +19 -19
  56. package/src/assets/img/querySlotDemo.svg +15 -15
  57. package/src/assets/svg/badtwo.svg +1 -1
  58. package/src/assets/svg/goodtwo.svg +1 -1
  59. package/src/base-client/components/AI/AskAiBtn.vue +136 -136
  60. package/src/base-client/components/AI/demo.vue +31 -31
  61. package/src/base-client/components/common/AMisRender/index.js +3 -3
  62. package/src/base-client/components/common/AMisRender/index.vue +263 -263
  63. package/src/base-client/components/common/AddressSearchCombobox/IcMapIcon.vue +16 -16
  64. package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
  65. package/src/base-client/components/common/AddressSearchCombobox/ic_map.svg +6 -6
  66. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  67. package/src/base-client/components/common/CitySelect/index.js +3 -3
  68. package/src/base-client/components/common/CitySelect/index.md +109 -109
  69. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  70. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
  71. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  72. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  73. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
  74. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
  75. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  76. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  77. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  78. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  79. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  80. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  81. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  82. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  83. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorModal.vue +108 -108
  84. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -413
  85. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
  86. package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -728
  87. package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
  88. package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -219
  89. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeAddPageModal.vue +117 -117
  90. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeCustomJSModal.vue +80 -80
  91. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeEventEditorModal.vue +398 -398
  92. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLifeCycleModal.vue +65 -65
  93. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicCallbackModal.vue +64 -64
  94. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicParamModal.vue +73 -73
  95. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeRunFunctionParamModal.vue +76 -76
  96. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  97. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  98. package/src/base-client/components/common/Recording/Recording.vue +243 -243
  99. package/src/base-client/components/common/Recording/index.js +3 -3
  100. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  101. package/src/base-client/components/common/Tree/index.js +2 -2
  102. package/src/base-client/components/common/Upload/index.js +3 -3
  103. package/src/base-client/components/common/XAddForm/XAddForm.vue +113 -113
  104. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +13 -0
  105. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  106. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +303 -303
  107. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  108. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  109. package/src/base-client/components/common/XAddReport/index.js +3 -3
  110. package/src/base-client/components/common/XAddReport/index.md +56 -56
  111. package/src/base-client/components/common/XBadge/XBadge.vue +94 -94
  112. package/src/base-client/components/common/XButtons/XButtonDemo.vue +28 -28
  113. package/src/base-client/components/common/XButtons/XButtons.vue +71 -71
  114. package/src/base-client/components/common/XButtons/index.js +3 -3
  115. package/src/base-client/components/common/XButtons/index.md +61 -61
  116. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  117. package/src/base-client/components/common/XCheckList/XCheckList.vue +106 -106
  118. package/src/base-client/components/common/XCheckList/XCheckListDemo.vue +41 -41
  119. package/src/base-client/components/common/XDataCard/index.js +3 -3
  120. package/src/base-client/components/common/XDataCard/index.md +1 -1
  121. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  122. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  123. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  124. package/src/base-client/components/common/XDatePicker/demo.vue +153 -153
  125. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  126. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  127. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +238 -238
  128. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  129. package/src/base-client/components/common/XForm/XStatusButton.vue +54 -54
  130. package/src/base-client/components/common/XForm/index.md +178 -178
  131. package/src/base-client/components/common/XForm/itemComponent/XClickChangeBtn/index.vue +49 -49
  132. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  133. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  134. package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +72 -72
  135. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  136. package/src/base-client/components/common/XFormTable/index.md +92 -92
  137. package/src/base-client/components/common/XImportExcel/XImportExcel.vue +167 -167
  138. package/src/base-client/components/common/XLabelSelect/XLabelSelect.vue +110 -110
  139. package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
  140. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  141. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  142. package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
  143. package/src/base-client/components/common/XPrint/PrintBill.vue +302 -302
  144. package/src/base-client/components/common/XPrint/PrintHtml.js +98 -98
  145. package/src/base-client/components/common/XPrint/css/hiPrintCss.js +359 -359
  146. package/src/base-client/components/common/XPrint/css/lodopCss.js +26 -26
  147. package/src/base-client/components/common/XPrint/css/print-lock.css +351 -351
  148. package/src/base-client/components/common/XPrint/index.vue +97 -97
  149. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  150. package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
  151. package/src/base-client/components/common/XReport/index.js +3 -3
  152. package/src/base-client/components/common/XReport/print.js +186 -186
  153. package/src/base-client/components/common/XReportDrawer/index.js +3 -3
  154. package/src/base-client/components/common/XReportGrid/index.js +3 -3
  155. package/src/base-client/components/common/XReportGrid/index.md +44 -44
  156. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  157. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  158. package/src/base-client/components/common/XReportSlot/index.md +48 -48
  159. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
  160. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
  161. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
  162. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  163. package/src/base-client/components/common/XStepView/index.js +3 -3
  164. package/src/base-client/components/common/XStepView/index.md +31 -31
  165. package/src/base-client/components/common/XTab/XTab.vue +1 -1
  166. package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
  167. package/src/base-client/components/common/XTab/index.js +3 -3
  168. package/src/base-client/components/common/XTable/CustomFuncCel.vue +51 -51
  169. package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
  170. package/src/base-client/components/common/XTable/index.md +255 -255
  171. package/src/base-client/components/common/XTagGroup/index.vue +52 -52
  172. package/src/base-client/components/common/XTree/XTree.vue +424 -424
  173. package/src/base-client/components/common/XTree/index.js +3 -3
  174. package/src/base-client/components/common/XTree/index.md +36 -36
  175. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
  176. package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
  177. package/src/base-client/components/common/richTextModal/index.vue +56 -56
  178. package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
  179. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  180. package/src/base-client/components/index.js +51 -51
  181. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  182. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  183. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  184. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  185. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  186. package/src/base-client/plugins/Config.js +19 -19
  187. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  188. package/src/base-client/plugins/Recording.js +258 -258
  189. package/src/base-client/plugins/index.js +23 -23
  190. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  191. package/src/components/Charts/Bar.vue +62 -62
  192. package/src/components/Charts/ChartCard.vue +134 -134
  193. package/src/components/Charts/Liquid.vue +67 -67
  194. package/src/components/Charts/MiniArea.vue +39 -39
  195. package/src/components/Charts/MiniBar.vue +39 -39
  196. package/src/components/Charts/MiniProgress.vue +75 -75
  197. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  198. package/src/components/Charts/Radar.vue +68 -68
  199. package/src/components/Charts/RankList.vue +77 -77
  200. package/src/components/Charts/TagCloud.vue +113 -113
  201. package/src/components/Charts/TransferBar.vue +64 -64
  202. package/src/components/Charts/Trend.vue +82 -82
  203. package/src/components/Charts/chart.less +12 -12
  204. package/src/components/Charts/smooth.area.less +13 -13
  205. package/src/components/CodeMirror/inedx.vue +118 -118
  206. package/src/components/CodeMirror/setting.js +40 -40
  207. package/src/components/HeightScanner/index.vue +571 -571
  208. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  209. package/src/components/NumberInfo/index.js +3 -3
  210. package/src/components/NumberInfo/index.less +54 -54
  211. package/src/components/NumberInfo/index.md +43 -43
  212. package/src/components/card/ChartCard.vue +79 -79
  213. package/src/components/chart/Bar.vue +60 -60
  214. package/src/components/chart/MiniArea.vue +67 -67
  215. package/src/components/chart/MiniBar.vue +59 -59
  216. package/src/components/chart/MiniProgress.vue +57 -57
  217. package/src/components/chart/Radar.vue +80 -80
  218. package/src/components/chart/RankingList.vue +60 -60
  219. package/src/components/chart/Trend.vue +79 -79
  220. package/src/components/chart/index.less +9 -9
  221. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  222. package/src/components/checkbox/ImgCheckbox.vue +117 -117
  223. package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
  224. package/src/components/checkbox/index.js +9 -9
  225. package/src/components/exception/ExceptionPage.vue +70 -70
  226. package/src/components/g2Charts/constants.js +202 -202
  227. package/src/components/g2Charts/demo.vue +808 -808
  228. package/src/components/g2Charts/designer.vue +228 -228
  229. package/src/components/g2Charts/designerBaseConfig.vue +61 -61
  230. package/src/components/g2Charts/designerDataConfig.vue +259 -259
  231. package/src/components/g2Charts/designerStyleConfig.vue +16 -16
  232. package/src/components/g2Charts/index.vue +397 -397
  233. package/src/components/index.js +36 -36
  234. package/src/components/input/IInput.vue +66 -66
  235. package/src/components/menu/SideMenu.vue +75 -75
  236. package/src/components/menu/menu.js +273 -273
  237. package/src/components/setting/Setting.vue +234 -234
  238. package/src/components/tool/AStepItem.vue +60 -60
  239. package/src/config/CreateQueryConfig.js +325 -325
  240. package/src/config/default/antd.config.js +89 -89
  241. package/src/config/default/setting.config.js +55 -55
  242. package/src/font-style/font.css +4 -4
  243. package/src/layouts/CommonLayout.vue +56 -56
  244. package/src/layouts/PageLayout.vue +151 -151
  245. package/src/layouts/SinglePageView.vue +136 -136
  246. package/src/layouts/header/AdminHeader.vue +132 -132
  247. package/src/layouts/header/HeaderNotice.vue +177 -177
  248. package/src/layouts/header/InstitutionDetail.vue +181 -181
  249. package/src/layouts/tabs/TabsHead.vue +189 -189
  250. package/src/layouts/tabs/TabsView.vue +389 -389
  251. package/src/lib.js +1 -1
  252. package/src/mock/extend/index.js +84 -84
  253. package/src/mock/goods/index.js +108 -108
  254. package/src/pages/AMisDemo/AMisDemo.vue +325 -325
  255. package/src/pages/AMisDemo/AMisDemo2.vue +74 -74
  256. package/src/pages/DefaultExample/index.vue +77 -77
  257. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  258. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  259. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  260. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  261. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  262. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  263. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  264. package/src/pages/DynamicStatistics/index.vue +282 -282
  265. package/src/pages/Example/childIndex.vue +15 -15
  266. package/src/pages/Example/index.vue +30 -30
  267. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  268. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  269. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  270. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  271. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  272. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  273. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  274. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  275. package/src/pages/Recording/index.vue +77 -77
  276. package/src/pages/ServiceReview/index.vue +284 -284
  277. package/src/pages/SubExample/index.vue +26 -26
  278. package/src/pages/WorkflowDetail/WorkflowDetail.vue +41 -36
  279. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  280. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformationDetails.vue +276 -276
  281. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandle.vue +641 -386
  282. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandleReso.vue +6 -6
  283. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowPreview.vue +2 -3
  284. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowTimeline.vue +240 -8
  285. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkOrderParentDetails.vue +1 -12
  286. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowDetailResso.vue +1 -19
  287. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowListResolution.vue +248 -248
  288. package/src/pages/WorkflowDetail/WorkflowPageDetail/components/WorkflowPersonSelector.vue +69 -0
  289. package/src/pages/XReportView/index.vue +64 -64
  290. package/src/pages/XTreeOneProExample/index.vue +67 -67
  291. package/src/pages/addressSelect/addressDemo.vue +24 -24
  292. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  293. package/src/pages/login/Login.vue +378 -378
  294. package/src/pages/login/LoginV3.vue +389 -389
  295. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  296. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  297. package/src/pages/report/ReportTable.js +124 -124
  298. package/src/pages/resourceManage/orgListManage.vue +98 -98
  299. package/src/pages/system/dictionary/index.vue +44 -44
  300. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  301. package/src/pages/system/monitor/operLog/index.vue +37 -37
  302. package/src/pages/system/settings/modifyPassword.vue +117 -117
  303. package/src/pages/system/ticket/index.vue +480 -480
  304. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  305. package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
  306. package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
  307. package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
  308. package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
  309. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
  310. package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
  311. package/src/plugins/EventLogPlugin.js +33 -33
  312. package/src/plugins/FindParentsData.js +17 -17
  313. package/src/router/async/config.async.js +35 -35
  314. package/src/router/index.js +27 -27
  315. package/src/router.js +19 -19
  316. package/src/services/DataModel.js +30 -30
  317. package/src/services/LodopFuncs.js +137 -137
  318. package/src/services/api/TicketDetailsViewApi.js +46 -46
  319. package/src/services/api/cas.js +79 -79
  320. package/src/services/api/common.js +346 -346
  321. package/src/services/api/entity.js +18 -18
  322. package/src/services/api/index.js +17 -17
  323. package/src/services/api/workFlow.js +0 -2
  324. package/src/store/modules/account.js +115 -115
  325. package/src/store/modules/index.js +5 -5
  326. package/src/store/modules/lowCode.js +33 -33
  327. package/src/store/modules/setting.js +119 -119
  328. package/src/theme/default/style.less +58 -58
  329. package/src/theme/global.less +159 -159
  330. package/src/utils/authority-utils.js +85 -85
  331. package/src/utils/errorCode.js +6 -6
  332. package/src/utils/formatter.js +74 -74
  333. package/src/utils/htmlToPDF.js +108 -108
  334. package/src/utils/htmlToPDFApi.js +5 -5
  335. package/src/utils/login.js +188 -188
  336. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  337. package/src/utils/lowcode/lowcodeLog.js +29 -29
  338. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  339. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  340. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  341. package/src/utils/map-utils.js +47 -47
  342. package/src/utils/reg.js +95 -95
  343. package/src/utils/runEvalFunction.js +14 -14
  344. package/src/utils/theme-color-replacer-extend.js +92 -92
  345. package/src/utils/util.js +329 -329
  346. package/src/utils/waterMark.js +31 -31
  347. package/vue.config.js +5 -0
  348. 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 }