vue2-client 1.12.22 → 1.12.24

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 (388) hide show
  1. package/.cursorrules +19 -19
  2. package/.env +19 -19
  3. package/.env.gaslink +19 -19
  4. package/.env.his +19 -19
  5. package/.env.iot +19 -0
  6. package/.env.liuli +19 -19
  7. package/.env.revenue +19 -19
  8. package/.env.scada +19 -19
  9. package/.eslintrc.js +90 -90
  10. package/CHANGELOG.md +824 -824
  11. package/Components.md +60 -60
  12. package/docs/Logic/345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +45 -45
  13. package/docs/LowCode/lowcode.md +155 -155
  14. package/docs/LowCode/lowcodeForDeveloper.md +230 -230
  15. package/docs/index.md +30 -30
  16. package/docs//345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +174 -174
  17. package/index.js +31 -31
  18. package/jest-transform-stub.js +8 -8
  19. package/jest.setup.js +7 -7
  20. package/jsconfig.json +19 -19
  21. package/package.json +2 -1
  22. package/public/his/editor/editor.html +51 -51
  23. package/public/his/editor/mock/bind_data.html +779 -779
  24. package/public/his/editor/mock/data_table.html +40 -40
  25. package/public/his/editor/mock/sign.html +75 -75
  26. package/public/his/editor/vender/JsBarcode.all.js +3669 -3669
  27. package/public/his/editor/vender/date97/My97DatePicker.htm +65 -65
  28. package/public/his/editor/vender/date97/WdatePicker.js +677 -677
  29. package/public/his/editor/vender/date97/calendar.js +4 -4
  30. package/public/his/editor/vender/date97/lang/en.js +13 -13
  31. package/public/his/editor/vender/date97/lang/zh-cn.js +13 -13
  32. package/public/his/editor/vender/date97/lang/zh-tw.js +13 -13
  33. package/public/his/editor/vender/date97/skin/WdatePicker.css +10 -10
  34. package/public/his/editor/vender/date97/skin/default/datepicker.css +328 -328
  35. package/public/his/editor/vender/date97/skin/ext/datepicker.css +308 -308
  36. package/public/his/editor/vender/date97/skin/whyGreen/datepicker.css +255 -255
  37. package/public/his/editor/vender/diff.js +1627 -1627
  38. package/public/his/editor/vender/editor.js +1 -1
  39. package/public/his/editor/vender/fabric.js +31187 -31187
  40. package/public/his/editor/vender/jquery/jquery.base64.js +190 -190
  41. package/public/his/editor/vender/jquery/jquery.js +10872 -10872
  42. package/public/his/editor/vender/jquery/jquery.print.js +255 -255
  43. package/public/his/editor/vender/jquery/zTreeStyle/zTreeStyle.css +96 -96
  44. package/public/his/editor/vender/mui/mui.min.css +4 -4
  45. package/public/his/editor/vender/mui/mui.min.js +5 -5
  46. package/public/his/editor/vender/mui/mui.picker.min.css +6 -6
  47. package/public/his/editor/vender/mui/mui.picker.min.js +6 -6
  48. package/public/his/editor/vender/qrcode.js +7 -7
  49. package/public/his/editor/vender/requirejs/require.js +2145 -2145
  50. package/public/his/editor/vender/signature/jSignature.CompressorSVG.js +518 -518
  51. package/public/his/editor/vender/signature/jSignature.UndoButton.js +164 -164
  52. package/public/his/editor/vender/signature/jSignature.js +1486 -1486
  53. package/public/his/editor/vender/validator.js +5094 -5094
  54. package/public/his/editor/vender/weui/weui.css +5659 -5659
  55. package/public/his/editor/vender/weui/weui.min.css +4 -4
  56. package/public/his/editor/vender/weui/weui.min.js +11 -11
  57. package/public/index.html +27 -27
  58. package/src/ReportView.js +19 -19
  59. package/src/assets/img/querySlotDemo.svg +15 -15
  60. package/src/assets/svg/badtwo.svg +1 -1
  61. package/src/assets/svg/goodtwo.svg +1 -1
  62. package/src/base-client/components/AI/AskAiBtn.vue +136 -136
  63. package/src/base-client/components/AI/demo.vue +31 -31
  64. package/src/base-client/components/common/AMisRender/index.js +3 -3
  65. package/src/base-client/components/common/AMisRender/index.vue +263 -263
  66. package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +470 -470
  67. package/src/base-client/components/common/AddressSearchCombobox/IcMapIcon.vue +16 -16
  68. package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
  69. package/src/base-client/components/common/AddressSearchCombobox/ic_map.svg +6 -6
  70. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  71. package/src/base-client/components/common/CitySelect/index.js +3 -3
  72. package/src/base-client/components/common/CitySelect/index.md +109 -109
  73. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  74. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
  75. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  76. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  77. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
  78. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
  79. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  80. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  81. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +149 -149
  82. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  83. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  84. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  85. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  86. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  87. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  88. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorModal.vue +108 -108
  89. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -413
  90. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
  91. package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -728
  92. package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
  93. package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -219
  94. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeAddPageModal.vue +117 -117
  95. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeCustomJSModal.vue +80 -80
  96. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeEventEditorModal.vue +398 -398
  97. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLifeCycleModal.vue +65 -65
  98. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicCallbackModal.vue +64 -64
  99. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicParamModal.vue +73 -73
  100. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeRunFunctionParamModal.vue +76 -76
  101. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  102. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  103. package/src/base-client/components/common/Recording/Recording.vue +243 -243
  104. package/src/base-client/components/common/Recording/index.js +3 -3
  105. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  106. package/src/base-client/components/common/Tree/index.js +2 -2
  107. package/src/base-client/components/common/Upload/index.js +3 -3
  108. package/src/base-client/components/common/XAddForm/XAddForm.vue +113 -113
  109. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +1146 -1146
  110. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  111. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +303 -303
  112. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  113. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  114. package/src/base-client/components/common/XAddReport/index.js +3 -3
  115. package/src/base-client/components/common/XAddReport/index.md +56 -56
  116. package/src/base-client/components/common/XBadge/XBadge.vue +94 -94
  117. package/src/base-client/components/common/XButtons/XButtonDemo.vue +28 -28
  118. package/src/base-client/components/common/XButtons/XButtons.vue +71 -71
  119. package/src/base-client/components/common/XButtons/index.js +3 -3
  120. package/src/base-client/components/common/XButtons/index.md +61 -61
  121. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  122. package/src/base-client/components/common/XCheckList/XCheckList.vue +106 -106
  123. package/src/base-client/components/common/XCheckList/XCheckListDemo.vue +41 -41
  124. package/src/base-client/components/common/XConversation/XConversation.vue +75 -3
  125. package/src/base-client/components/common/XConversation/XConversationDemo.vue +2 -3
  126. package/src/base-client/components/common/XDataCard/index.js +3 -3
  127. package/src/base-client/components/common/XDataCard/index.md +1 -1
  128. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  129. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  130. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  131. package/src/base-client/components/common/XDatePicker/demo.vue +153 -153
  132. package/src/base-client/components/common/XDatePicker/index.vue +269 -269
  133. package/src/base-client/components/common/XDescriptions/XDescriptions.vue +169 -169
  134. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  135. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  136. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +238 -238
  137. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  138. package/src/base-client/components/common/XForm/XForm.vue +1 -1
  139. package/src/base-client/components/common/XForm/XFormItem.vue +1 -1
  140. package/src/base-client/components/common/XForm/XStatusButton.vue +54 -54
  141. package/src/base-client/components/common/XForm/XTreeSelect.vue +264 -264
  142. package/src/base-client/components/common/XForm/index.md +178 -178
  143. package/src/base-client/components/common/XForm/itemComponent/XClickChangeBtn/index.vue +49 -49
  144. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  145. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  146. package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +72 -72
  147. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  148. package/src/base-client/components/common/XFormTable/demo.vue +2 -3
  149. package/src/base-client/components/common/XFormTable/index.md +92 -92
  150. package/src/base-client/components/common/XImportExcel/XImportExcel.vue +167 -167
  151. package/src/base-client/components/common/XLabelSelect/XLabelSelect.vue +110 -110
  152. package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
  153. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  154. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  155. package/src/base-client/components/common/XPrint/Demo.vue +41 -41
  156. package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
  157. package/src/base-client/components/common/XPrint/PrintBill.vue +302 -302
  158. package/src/base-client/components/common/XPrint/PrintHtml.js +98 -98
  159. package/src/base-client/components/common/XPrint/css/hiPrintCss.js +359 -359
  160. package/src/base-client/components/common/XPrint/css/lodopCss.js +26 -26
  161. package/src/base-client/components/common/XPrint/css/print-lock.css +351 -351
  162. package/src/base-client/components/common/XPrint/index.vue +97 -97
  163. package/src/base-client/components/common/XReport/XReport.vue +892 -892
  164. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  165. package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
  166. package/src/base-client/components/common/XReport/index.js +3 -3
  167. package/src/base-client/components/common/XReport/index.md +44 -44
  168. package/src/base-client/components/common/XReport/print.js +186 -186
  169. package/src/base-client/components/common/XReportDrawer/index.js +3 -3
  170. package/src/base-client/components/common/XReportGrid/index.js +3 -3
  171. package/src/base-client/components/common/XReportGrid/index.md +44 -44
  172. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  173. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  174. package/src/base-client/components/common/XReportSlot/index.md +48 -48
  175. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
  176. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
  177. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
  178. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  179. package/src/base-client/components/common/XStepView/index.js +3 -3
  180. package/src/base-client/components/common/XStepView/index.md +31 -31
  181. package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
  182. package/src/base-client/components/common/XTab/index.js +3 -3
  183. package/src/base-client/components/common/XTable/CustomFuncCel.vue +51 -51
  184. package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
  185. package/src/base-client/components/common/XTable/index.md +255 -255
  186. package/src/base-client/components/common/XTagGroup/index.vue +52 -52
  187. package/src/base-client/components/common/XTree/XTree.vue +424 -424
  188. package/src/base-client/components/common/XTree/index.js +3 -3
  189. package/src/base-client/components/common/XTree/index.md +36 -36
  190. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
  191. package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
  192. package/src/base-client/components/common/richTextModal/index.vue +56 -56
  193. package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
  194. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +359 -359
  195. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  196. package/src/base-client/components/index.js +51 -51
  197. package/src/base-client/components/layout/XPageView/XErrorView.vue +11 -11
  198. package/src/base-client/components/layout/XPageView/XPageView.vue +155 -155
  199. package/src/base-client/components/layout/XPageView/index.js +3 -3
  200. package/src/base-client/components/layout/XPageView/index.md +38 -38
  201. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  202. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  203. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  204. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  205. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  206. package/src/base-client/plugins/AppData.js +121 -121
  207. package/src/base-client/plugins/Config.js +19 -19
  208. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  209. package/src/base-client/plugins/Recording.js +258 -258
  210. package/src/base-client/plugins/index.js +23 -23
  211. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  212. package/src/bootstrap.js +42 -42
  213. package/src/components/Charts/Bar.vue +62 -62
  214. package/src/components/Charts/ChartCard.vue +134 -134
  215. package/src/components/Charts/Liquid.vue +67 -67
  216. package/src/components/Charts/MiniArea.vue +39 -39
  217. package/src/components/Charts/MiniBar.vue +39 -39
  218. package/src/components/Charts/MiniProgress.vue +75 -75
  219. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  220. package/src/components/Charts/Radar.vue +68 -68
  221. package/src/components/Charts/RankList.vue +77 -77
  222. package/src/components/Charts/TagCloud.vue +113 -113
  223. package/src/components/Charts/TransferBar.vue +64 -64
  224. package/src/components/Charts/Trend.vue +82 -82
  225. package/src/components/Charts/chart.less +12 -12
  226. package/src/components/Charts/smooth.area.less +13 -13
  227. package/src/components/CodeMirror/inedx.vue +118 -118
  228. package/src/components/CodeMirror/setting.js +40 -40
  229. package/src/components/FilePreview/FilePreview.vue +166 -166
  230. package/src/components/HeightScanner/index.vue +571 -571
  231. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  232. package/src/components/NumberInfo/index.js +3 -3
  233. package/src/components/NumberInfo/index.less +54 -54
  234. package/src/components/NumberInfo/index.md +43 -43
  235. package/src/components/card/ChartCard.vue +79 -79
  236. package/src/components/chart/Bar.vue +60 -60
  237. package/src/components/chart/MiniArea.vue +67 -67
  238. package/src/components/chart/MiniBar.vue +59 -59
  239. package/src/components/chart/MiniProgress.vue +57 -57
  240. package/src/components/chart/Radar.vue +80 -80
  241. package/src/components/chart/RankingList.vue +60 -60
  242. package/src/components/chart/Trend.vue +79 -79
  243. package/src/components/chart/index.less +9 -9
  244. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  245. package/src/components/checkbox/ImgCheckbox.vue +117 -117
  246. package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
  247. package/src/components/checkbox/index.js +9 -9
  248. package/src/components/exception/ExceptionPage.vue +70 -70
  249. package/src/components/g2Charts/constants.js +202 -202
  250. package/src/components/g2Charts/demo.vue +808 -808
  251. package/src/components/g2Charts/designer.vue +228 -228
  252. package/src/components/g2Charts/designerBaseConfig.vue +61 -61
  253. package/src/components/g2Charts/designerDataConfig.vue +259 -259
  254. package/src/components/g2Charts/designerStyleConfig.vue +16 -16
  255. package/src/components/g2Charts/index.vue +397 -397
  256. package/src/components/index.js +36 -36
  257. package/src/components/input/IInput.vue +66 -66
  258. package/src/components/menu/SideMenu.vue +75 -75
  259. package/src/components/menu/menu.js +273 -273
  260. package/src/components/setting/Setting.vue +234 -234
  261. package/src/components/tool/AStepItem.vue +60 -60
  262. package/src/config/CreateQueryConfig.js +325 -325
  263. package/src/config/default/antd.config.js +89 -89
  264. package/src/config/default/setting.config.js +55 -55
  265. package/src/font-style/font.css +4 -4
  266. package/src/layouts/CommonLayout.vue +56 -56
  267. package/src/layouts/GridView.vue +45 -45
  268. package/src/layouts/PageLayout.vue +151 -151
  269. package/src/layouts/SinglePageView.vue +136 -136
  270. package/src/layouts/header/AdminHeader.vue +132 -132
  271. package/src/layouts/header/HeaderNotice.vue +177 -177
  272. package/src/layouts/header/InstitutionDetail.vue +181 -181
  273. package/src/layouts/tabs/TabsHead.vue +189 -189
  274. package/src/layouts/tabs/TabsView.vue +389 -389
  275. package/src/lib.js +1 -1
  276. package/src/main.js +34 -34
  277. package/src/mock/extend/index.js +84 -84
  278. package/src/mock/goods/index.js +108 -108
  279. package/src/pages/AMisDemo/AMisDemo.vue +325 -325
  280. package/src/pages/AMisDemo/AMisDemo2.vue +74 -74
  281. package/src/pages/DefaultExample/index.vue +77 -77
  282. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  283. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  284. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  285. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  286. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  287. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  288. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  289. package/src/pages/DynamicStatistics/index.vue +282 -282
  290. package/src/pages/Example/childIndex.vue +15 -15
  291. package/src/pages/Example/index.vue +30 -30
  292. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  293. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  294. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  295. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  296. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  297. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  298. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  299. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  300. package/src/pages/Recording/index.vue +77 -77
  301. package/src/pages/ServiceReview/index.vue +284 -284
  302. package/src/pages/SubExample/index.vue +26 -26
  303. package/src/pages/WorkflowDetail/WorkflowDetail.vue +235 -235
  304. package/src/pages/WorkflowDetail/WorkflowPageDetail/LeaveMessage.vue +131 -131
  305. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  306. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformation.vue +302 -302
  307. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformationDetails.vue +276 -276
  308. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandleReso.vue +997 -997
  309. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowTimeline.vue +222 -222
  310. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkOrderParentDetails.vue +233 -233
  311. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowDetailResso.vue +261 -261
  312. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowListResolution.vue +248 -248
  313. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowLog.vue +73 -73
  314. package/src/pages/XPageViewExample/index.vue +38 -38
  315. package/src/pages/XReportView/index.vue +64 -64
  316. package/src/pages/XTreeOneProExample/index.vue +67 -67
  317. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  318. package/src/pages/login/Login.vue +378 -378
  319. package/src/pages/login/LoginV3.vue +389 -389
  320. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  321. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  322. package/src/pages/report/ReportTable.js +124 -124
  323. package/src/pages/resourceManage/orgListManage.vue +98 -98
  324. package/src/pages/system/dictionary/index.vue +44 -44
  325. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  326. package/src/pages/system/monitor/operLog/index.vue +37 -37
  327. package/src/pages/system/settings/modifyPassword.vue +117 -117
  328. package/src/pages/system/ticket/index.vue +480 -480
  329. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  330. package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
  331. package/src/pages/userInfoDetailManage/FillCardRecordQuery/index.vue +76 -76
  332. package/src/pages/userInfoDetailManage/FillGasRecordQuery/index.vue +74 -74
  333. package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
  334. package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
  335. package/src/pages/userInfoDetailManage/MachineRecordQuery/index.vue +74 -74
  336. package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
  337. package/src/pages/userInfoDetailManage/OtherChargeRecordQuery/index.vue +74 -74
  338. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
  339. package/src/pages/userInfoDetailManage/UserChargeRecordQuery/index.vue +92 -92
  340. package/src/pages/userInfoDetailManage/UserHandRecordQuery/index.vue +86 -86
  341. package/src/pages/userInfoDetailManage/UserRecordQuery/index.vue +73 -73
  342. package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
  343. package/src/pages/userInfoDetailManage/userInfoDetailQueryTabs.vue +132 -132
  344. package/src/plugins/EventLogPlugin.js +33 -33
  345. package/src/plugins/FindParentsData.js +17 -17
  346. package/src/router/async/config.async.js +35 -35
  347. package/src/router/async/router.map.js +2 -2
  348. package/src/router/index.js +27 -27
  349. package/src/router.js +19 -19
  350. package/src/services/DataModel.js +30 -30
  351. package/src/services/LodopFuncs.js +137 -137
  352. package/src/services/api/TicketDetailsViewApi.js +46 -46
  353. package/src/services/api/cas.js +79 -79
  354. package/src/services/api/common.js +346 -346
  355. package/src/services/api/entity.js +18 -18
  356. package/src/services/api/index.js +17 -17
  357. package/src/services/api/restTools.js +145 -145
  358. package/src/services/api/workFlow.js +63 -63
  359. package/src/services/apiService.js +16 -16
  360. package/src/store/modules/account.js +115 -115
  361. package/src/store/modules/index.js +5 -5
  362. package/src/store/modules/lowCode.js +33 -33
  363. package/src/store/modules/setting.js +119 -119
  364. package/src/theme/default/style.less +58 -58
  365. package/src/theme/global.less +159 -159
  366. package/src/utils/authority-utils.js +85 -85
  367. package/src/utils/errorCode.js +6 -6
  368. package/src/utils/formatter.js +74 -74
  369. package/src/utils/htmlToPDF.js +108 -108
  370. package/src/utils/htmlToPDFApi.js +5 -5
  371. package/src/utils/login.js +188 -188
  372. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  373. package/src/utils/lowcode/lowcodeLog.js +29 -29
  374. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  375. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  376. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  377. package/src/utils/map-utils.js +47 -47
  378. package/src/utils/reg.js +95 -95
  379. package/src/utils/runEvalFunction.js +14 -14
  380. package/src/utils/theme-color-replacer-extend.js +92 -92
  381. package/src/utils/util.js +329 -329
  382. package/src/utils/waterMark.js +31 -31
  383. package/test/Amis.spec.js +164 -164
  384. package/test/Tree.spec.js +168 -168
  385. package/test/myDialog.spec.js +47 -47
  386. package/test/util.test.js +53 -53
  387. package/test/v3Api.test.js +1984 -1984
  388. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
package/src/utils/util.js CHANGED
@@ -1,329 +1,329 @@
1
- import enquireJs from 'enquire.js'
2
- import moment from 'moment/moment'
3
-
4
- const timeList = [
5
- {
6
- CN: '早上好',
7
- HK: '早晨啊',
8
- US: 'Good morning'
9
- }, {
10
- CN: '上午好',
11
- HK: '上午好',
12
- US: 'Good morning'
13
- }, {
14
- CN: '中午好',
15
- HK: '中午好',
16
- US: 'Good afternoon'
17
- }, {
18
- CN: '下午好',
19
- HK: '下午好',
20
- US: 'Good afternoon'
21
- }, {
22
- CN: '晚上好',
23
- HK: '晚上好',
24
- US: 'Good evening'
25
- }
26
- ]
27
- /**
28
- * 数组去空值
29
- */
30
- export function arrRemoveEmpty (arr) {
31
- for (let i = 0; i < arr.length; i++) {
32
- if (arr[i] === '' || typeof (arr[i]) == 'undefined') {
33
- arr.splice(i, 1)
34
- i--
35
- }
36
- }
37
- return arr
38
- }
39
-
40
- export function isDef (v) {
41
- return v !== undefined && v !== null
42
- }
43
-
44
- export function formatDate (dateStr, fmt) {
45
- if (dateStr == null) {
46
- return '--'
47
- }
48
- let date
49
- if (dateStr === 'now') {
50
- date = new Date()
51
- } else {
52
- date = new Date(dateStr)
53
- }
54
- const o = {
55
- 'M+': date.getMonth() + 1,
56
- 'd+': date.getDate(),
57
- 'h+': date.getHours(),
58
- 'm+': date.getMinutes(),
59
- 's+': date.getSeconds(),
60
- 'q+': Math.floor((date.getMonth() + 3) / 3),
61
- S: date.getMilliseconds()
62
- }
63
- if (!fmt) {
64
- fmt = 'yyyy-MM-dd hh:mm:ss'
65
- }
66
- if (/(y+)/.test(fmt)) {
67
- fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
68
- }
69
- for (const k in o) {
70
- if (new RegExp('(' + k + ')').test(fmt)) {
71
- fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
72
- }
73
- }
74
- return fmt
75
- }
76
-
77
- export function uuid () {
78
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
79
- const r = Math.random() * 16 | 0
80
- const v = c === 'x' ? r : (r & 0x3 | 0x8)
81
- return v.toString(16)
82
- })
83
- }
84
-
85
- export function timeCompare (date1, date2) {
86
- const date11 = new Date(date1)
87
- const date22 = new Date(date2)
88
- return date11.time > date22.time ? 1 : -1
89
- }
90
-
91
- export function timeFix () {
92
- const time = new Date()
93
- const hour = time.getHours()
94
- return hour < 9
95
- ? timeList[0]
96
- : (hour <= 11 ? timeList[1] : (hour <= 13 ? timeList[2] : (hour <= 20 ? timeList[3] : timeList[4])))
97
- }
98
-
99
- /**
100
- * Remove an item from an array.
101
- */
102
- export function remove (arr, item) {
103
- if (arr.length) {
104
- const index = arr.indexOf(item)
105
- if (index > -1) {
106
- return arr.splice(index, 1)
107
- }
108
- }
109
- }
110
-
111
- export function isRegExp (v) {
112
- return _toString.call(v) === '[object RegExp]'
113
- }
114
-
115
- export function enquireScreen (call) {
116
- const handler = {
117
- match: function () {
118
- call && call(true)
119
- },
120
- unmatch: function () {
121
- call && call(false)
122
- }
123
- }
124
- enquireJs.register('only screen and (max-width: 767.99px)', handler)
125
- }
126
-
127
- export function showXml (str) {
128
- let text = str
129
-
130
- // 去掉多余的空格
131
- text = '\n' + text.replace(/(<\w+)(\s.*?>)/g, function ($0, name, props) {
132
- return name + props.replace(/\s+(\w+=)/g, ' $1')
133
- }).replace(/>\s*?</g, '>\n<')
134
-
135
- // 把注释编码
136
- text = text.replace(/\n/g, '\r').replace(/<!--(.+?)-->/g, function ($0, text) {
137
- return '<!--' + escape(text) + '-->'
138
- }).replace(/\r/g, '\n')
139
-
140
- // 调整格式
141
- const rgx = /\n(<(([^?]).+?)(?:\s|\s*?>|\s*?(\/)>)(?:.*?(?:(\/)>|<(\/)\2>))?)/mg
142
- const nodeStack = []
143
- const output = text.replace(rgx, function ($0, all, name, isBegin, isCloseFull1, isCloseFull2, isFull1, isFull2) {
144
- const isClosed = (isCloseFull1 === '/') || (isCloseFull2 === '/') || (isFull1 === '/') || (isFull2 === '/')
145
- let prefix
146
- if (isBegin === '!') {
147
- prefix = getPrefix(nodeStack.length)
148
- } else {
149
- if (isBegin !== '/') {
150
- prefix = getPrefix(nodeStack.length)
151
- if (!isClosed) {
152
- nodeStack.push(name)
153
- }
154
- } else {
155
- nodeStack.pop()
156
- prefix = getPrefix(nodeStack.length)
157
- }
158
- }
159
- return '\n' + prefix + all
160
- })
161
- let outputText = output.substring(1)
162
-
163
- // 把注释还原并解码,调格式
164
- outputText = outputText.replace(/\n/g, '\r').replace(/(\s*)<!--(.+?)-->/g, function ($0, prefix, text) {
165
- if (prefix.charAt(0) === '\r') { prefix = prefix.substring(1) }
166
- text = unescape(text).replace(/\r/g, '\n')
167
- return '\n' + prefix + '<!--' + text.replace(/^\s*/mg, prefix) + '-->'
168
- })
169
- // alert(outputText);
170
-
171
- outputText = outputText.replace(/\s+$/g, '').replace(/\r/g, '\r\n')
172
-
173
- return outputText
174
- }
175
-
176
- function getPrefix (prefixIndex) {
177
- const span = ' '
178
- const output = []
179
- for (let i = 0; i < prefixIndex; ++i) {
180
- output.push(span)
181
- }
182
-
183
- return output.join('')
184
- }
185
-
186
- /**
187
- * 构造树型结构数据
188
- * [label,value,children]
189
- */
190
- export function handleTree (data, id, parentId, children) {
191
- const config = {
192
- id: id || 'id',
193
- parentId: parentId || 'parent_id',
194
- childrenList: children || 'children'
195
- }
196
- const childrenListMap = {}
197
- const nodeIds = {}
198
- const tree = []
199
- for (const d of data) {
200
- const parentId = d[config.parentId]
201
- if (childrenListMap[parentId] == null) {
202
- childrenListMap[parentId] = []
203
- }
204
- nodeIds[d[config.id]] = d
205
- childrenListMap[parentId].push(d)
206
- }
207
- for (const d of data) {
208
- const parentId = d[config.parentId]
209
- if (nodeIds[parentId] == null) {
210
- tree.push(d)
211
- }
212
- }
213
- for (const t of tree) {
214
- adaptToChildrenList(t)
215
- }
216
-
217
- function adaptToChildrenList (o) {
218
- o.label = o.name
219
- o.value = o.name
220
- if (childrenListMap[o[config.id]] !== null) {
221
- o[config.childrenList] = childrenListMap[o[config.id]]
222
- }
223
- if (o[config.childrenList]) {
224
- for (const c of o[config.childrenList]) {
225
- adaptToChildrenList(c)
226
- }
227
- }
228
- }
229
- return tree
230
- }
231
-
232
- /**
233
- * Function to get the changed data between two sets of rows *
234
- * @param beforeData 之前的数据
235
- * @param afterData 之后的数据
236
- * @returns {*[]} 差异得数据
237
- */
238
- export function getChangedData (beforeData, afterData) {
239
- const changeData = []
240
-
241
- beforeData.forEach((item, index) => {
242
- const afterItem = afterData[index]
243
- const changeItem = compareRows(item, afterItem)
244
-
245
- if (Object.keys(changeItem).length > 0) {
246
- changeData.push(afterItem)
247
- }
248
- })
249
-
250
- return changeData
251
- }
252
-
253
- /**
254
- * Function to compare two rows and return the changed fields
255
- * @param beforeRow 之前的数据
256
- * @param afterRow 之后的数据
257
- * @returns {*[]} 差异得数据
258
- */
259
- export function compareRows (beforeRow, afterRow) {
260
- const keys = Object.keys(beforeRow)
261
- const changeItem = {}
262
-
263
- keys.forEach(key => {
264
- if (beforeRow[key] !== afterRow[key]) {
265
- changeItem[key] = afterRow[key]
266
- }
267
- })
268
-
269
- return changeItem
270
- }
271
-
272
- export function getRealKeyData (data) {
273
- return Object.keys(data).reduce((obj, key) => {
274
- // 找到第一个下划线后面的部分
275
- const realKey = key.includes('_') && key !== 'selected_id' ? key.substring(key.indexOf('_') + 1) : key
276
- obj[realKey] = data[key] // 赋值
277
- return obj
278
- }, {})
279
- }
280
-
281
- export function setDataByRealKey (form, data) {
282
- // 创建一个映射 realKey -> formKey
283
- const realFormMap = {}
284
-
285
- // 遍历 form,建立真实键名和 form 键的映射
286
- Object.keys(form).forEach(key => {
287
- // 提取第一个下划线后面的部分
288
- const realKey = key.includes('_') && key !== 'selected_id' ? key.substring(key.indexOf('_') + 1) : key
289
- realFormMap[realKey] = key // 存储映射关系
290
- })
291
-
292
- // 遍历 data,更新 form 中的值
293
- Object.keys(data).forEach(key => {
294
- // 提取第一个下划线后面的部分
295
- const realKey = key.includes('_') && key !== 'selected_id' ? key.substring(key.indexOf('_') + 1) : key
296
- if (realFormMap[realKey]) {
297
- form[realFormMap[realKey]] = data[key] // 根据映射关系赋值
298
- } else {
299
- form[key] = data[key]
300
- }
301
- })
302
-
303
- return form
304
- }
305
-
306
- const _toString = Object.prototype.toString
307
-
308
- export function _moment (...args) {
309
- return moment(...args)
310
- }
311
-
312
- export function base64ToFile (base64Data, filename = 'image.png') {
313
- // 将 base64 转换为 blob
314
- const arr = base64Data.split(',')
315
- const mime = arr[0].match(/:(.*?);/)?.[1] || 'image/png'
316
- const bstr = atob(arr[1])
317
- let n = bstr.length
318
- const u8arr = new Uint8Array(n)
319
-
320
- while (n--) {
321
- u8arr[n] = bstr.charCodeAt(n)
322
- }
323
-
324
- // 创建 Blob 对象
325
- const blob = new Blob([u8arr], { type: mime })
326
-
327
- // 创建 File 对象
328
- return new File([blob], filename, { type: mime })
329
- };
1
+ import enquireJs from 'enquire.js'
2
+ import moment from 'moment/moment'
3
+
4
+ const timeList = [
5
+ {
6
+ CN: '早上好',
7
+ HK: '早晨啊',
8
+ US: 'Good morning'
9
+ }, {
10
+ CN: '上午好',
11
+ HK: '上午好',
12
+ US: 'Good morning'
13
+ }, {
14
+ CN: '中午好',
15
+ HK: '中午好',
16
+ US: 'Good afternoon'
17
+ }, {
18
+ CN: '下午好',
19
+ HK: '下午好',
20
+ US: 'Good afternoon'
21
+ }, {
22
+ CN: '晚上好',
23
+ HK: '晚上好',
24
+ US: 'Good evening'
25
+ }
26
+ ]
27
+ /**
28
+ * 数组去空值
29
+ */
30
+ export function arrRemoveEmpty (arr) {
31
+ for (let i = 0; i < arr.length; i++) {
32
+ if (arr[i] === '' || typeof (arr[i]) == 'undefined') {
33
+ arr.splice(i, 1)
34
+ i--
35
+ }
36
+ }
37
+ return arr
38
+ }
39
+
40
+ export function isDef (v) {
41
+ return v !== undefined && v !== null
42
+ }
43
+
44
+ export function formatDate (dateStr, fmt) {
45
+ if (dateStr == null) {
46
+ return '--'
47
+ }
48
+ let date
49
+ if (dateStr === 'now') {
50
+ date = new Date()
51
+ } else {
52
+ date = new Date(dateStr)
53
+ }
54
+ const o = {
55
+ 'M+': date.getMonth() + 1,
56
+ 'd+': date.getDate(),
57
+ 'h+': date.getHours(),
58
+ 'm+': date.getMinutes(),
59
+ 's+': date.getSeconds(),
60
+ 'q+': Math.floor((date.getMonth() + 3) / 3),
61
+ S: date.getMilliseconds()
62
+ }
63
+ if (!fmt) {
64
+ fmt = 'yyyy-MM-dd hh:mm:ss'
65
+ }
66
+ if (/(y+)/.test(fmt)) {
67
+ fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
68
+ }
69
+ for (const k in o) {
70
+ if (new RegExp('(' + k + ')').test(fmt)) {
71
+ fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
72
+ }
73
+ }
74
+ return fmt
75
+ }
76
+
77
+ export function uuid () {
78
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
79
+ const r = Math.random() * 16 | 0
80
+ const v = c === 'x' ? r : (r & 0x3 | 0x8)
81
+ return v.toString(16)
82
+ })
83
+ }
84
+
85
+ export function timeCompare (date1, date2) {
86
+ const date11 = new Date(date1)
87
+ const date22 = new Date(date2)
88
+ return date11.time > date22.time ? 1 : -1
89
+ }
90
+
91
+ export function timeFix () {
92
+ const time = new Date()
93
+ const hour = time.getHours()
94
+ return hour < 9
95
+ ? timeList[0]
96
+ : (hour <= 11 ? timeList[1] : (hour <= 13 ? timeList[2] : (hour <= 20 ? timeList[3] : timeList[4])))
97
+ }
98
+
99
+ /**
100
+ * Remove an item from an array.
101
+ */
102
+ export function remove (arr, item) {
103
+ if (arr.length) {
104
+ const index = arr.indexOf(item)
105
+ if (index > -1) {
106
+ return arr.splice(index, 1)
107
+ }
108
+ }
109
+ }
110
+
111
+ export function isRegExp (v) {
112
+ return _toString.call(v) === '[object RegExp]'
113
+ }
114
+
115
+ export function enquireScreen (call) {
116
+ const handler = {
117
+ match: function () {
118
+ call && call(true)
119
+ },
120
+ unmatch: function () {
121
+ call && call(false)
122
+ }
123
+ }
124
+ enquireJs.register('only screen and (max-width: 767.99px)', handler)
125
+ }
126
+
127
+ export function showXml (str) {
128
+ let text = str
129
+
130
+ // 去掉多余的空格
131
+ text = '\n' + text.replace(/(<\w+)(\s.*?>)/g, function ($0, name, props) {
132
+ return name + props.replace(/\s+(\w+=)/g, ' $1')
133
+ }).replace(/>\s*?</g, '>\n<')
134
+
135
+ // 把注释编码
136
+ text = text.replace(/\n/g, '\r').replace(/<!--(.+?)-->/g, function ($0, text) {
137
+ return '<!--' + escape(text) + '-->'
138
+ }).replace(/\r/g, '\n')
139
+
140
+ // 调整格式
141
+ const rgx = /\n(<(([^?]).+?)(?:\s|\s*?>|\s*?(\/)>)(?:.*?(?:(\/)>|<(\/)\2>))?)/mg
142
+ const nodeStack = []
143
+ const output = text.replace(rgx, function ($0, all, name, isBegin, isCloseFull1, isCloseFull2, isFull1, isFull2) {
144
+ const isClosed = (isCloseFull1 === '/') || (isCloseFull2 === '/') || (isFull1 === '/') || (isFull2 === '/')
145
+ let prefix
146
+ if (isBegin === '!') {
147
+ prefix = getPrefix(nodeStack.length)
148
+ } else {
149
+ if (isBegin !== '/') {
150
+ prefix = getPrefix(nodeStack.length)
151
+ if (!isClosed) {
152
+ nodeStack.push(name)
153
+ }
154
+ } else {
155
+ nodeStack.pop()
156
+ prefix = getPrefix(nodeStack.length)
157
+ }
158
+ }
159
+ return '\n' + prefix + all
160
+ })
161
+ let outputText = output.substring(1)
162
+
163
+ // 把注释还原并解码,调格式
164
+ outputText = outputText.replace(/\n/g, '\r').replace(/(\s*)<!--(.+?)-->/g, function ($0, prefix, text) {
165
+ if (prefix.charAt(0) === '\r') { prefix = prefix.substring(1) }
166
+ text = unescape(text).replace(/\r/g, '\n')
167
+ return '\n' + prefix + '<!--' + text.replace(/^\s*/mg, prefix) + '-->'
168
+ })
169
+ // alert(outputText);
170
+
171
+ outputText = outputText.replace(/\s+$/g, '').replace(/\r/g, '\r\n')
172
+
173
+ return outputText
174
+ }
175
+
176
+ function getPrefix (prefixIndex) {
177
+ const span = ' '
178
+ const output = []
179
+ for (let i = 0; i < prefixIndex; ++i) {
180
+ output.push(span)
181
+ }
182
+
183
+ return output.join('')
184
+ }
185
+
186
+ /**
187
+ * 构造树型结构数据
188
+ * [label,value,children]
189
+ */
190
+ export function handleTree (data, id, parentId, children) {
191
+ const config = {
192
+ id: id || 'id',
193
+ parentId: parentId || 'parent_id',
194
+ childrenList: children || 'children'
195
+ }
196
+ const childrenListMap = {}
197
+ const nodeIds = {}
198
+ const tree = []
199
+ for (const d of data) {
200
+ const parentId = d[config.parentId]
201
+ if (childrenListMap[parentId] == null) {
202
+ childrenListMap[parentId] = []
203
+ }
204
+ nodeIds[d[config.id]] = d
205
+ childrenListMap[parentId].push(d)
206
+ }
207
+ for (const d of data) {
208
+ const parentId = d[config.parentId]
209
+ if (nodeIds[parentId] == null) {
210
+ tree.push(d)
211
+ }
212
+ }
213
+ for (const t of tree) {
214
+ adaptToChildrenList(t)
215
+ }
216
+
217
+ function adaptToChildrenList (o) {
218
+ o.label = o.name
219
+ o.value = o.name
220
+ if (childrenListMap[o[config.id]] !== null) {
221
+ o[config.childrenList] = childrenListMap[o[config.id]]
222
+ }
223
+ if (o[config.childrenList]) {
224
+ for (const c of o[config.childrenList]) {
225
+ adaptToChildrenList(c)
226
+ }
227
+ }
228
+ }
229
+ return tree
230
+ }
231
+
232
+ /**
233
+ * Function to get the changed data between two sets of rows *
234
+ * @param beforeData 之前的数据
235
+ * @param afterData 之后的数据
236
+ * @returns {*[]} 差异得数据
237
+ */
238
+ export function getChangedData (beforeData, afterData) {
239
+ const changeData = []
240
+
241
+ beforeData.forEach((item, index) => {
242
+ const afterItem = afterData[index]
243
+ const changeItem = compareRows(item, afterItem)
244
+
245
+ if (Object.keys(changeItem).length > 0) {
246
+ changeData.push(afterItem)
247
+ }
248
+ })
249
+
250
+ return changeData
251
+ }
252
+
253
+ /**
254
+ * Function to compare two rows and return the changed fields
255
+ * @param beforeRow 之前的数据
256
+ * @param afterRow 之后的数据
257
+ * @returns {*[]} 差异得数据
258
+ */
259
+ export function compareRows (beforeRow, afterRow) {
260
+ const keys = Object.keys(beforeRow)
261
+ const changeItem = {}
262
+
263
+ keys.forEach(key => {
264
+ if (beforeRow[key] !== afterRow[key]) {
265
+ changeItem[key] = afterRow[key]
266
+ }
267
+ })
268
+
269
+ return changeItem
270
+ }
271
+
272
+ export function getRealKeyData (data) {
273
+ return Object.keys(data).reduce((obj, key) => {
274
+ // 找到第一个下划线后面的部分
275
+ const realKey = key.includes('_') && key !== 'selected_id' ? key.substring(key.indexOf('_') + 1) : key
276
+ obj[realKey] = data[key] // 赋值
277
+ return obj
278
+ }, {})
279
+ }
280
+
281
+ export function setDataByRealKey (form, data) {
282
+ // 创建一个映射 realKey -> formKey
283
+ const realFormMap = {}
284
+
285
+ // 遍历 form,建立真实键名和 form 键的映射
286
+ Object.keys(form).forEach(key => {
287
+ // 提取第一个下划线后面的部分
288
+ const realKey = key.includes('_') && key !== 'selected_id' ? key.substring(key.indexOf('_') + 1) : key
289
+ realFormMap[realKey] = key // 存储映射关系
290
+ })
291
+
292
+ // 遍历 data,更新 form 中的值
293
+ Object.keys(data).forEach(key => {
294
+ // 提取第一个下划线后面的部分
295
+ const realKey = key.includes('_') && key !== 'selected_id' ? key.substring(key.indexOf('_') + 1) : key
296
+ if (realFormMap[realKey]) {
297
+ form[realFormMap[realKey]] = data[key] // 根据映射关系赋值
298
+ } else {
299
+ form[key] = data[key]
300
+ }
301
+ })
302
+
303
+ return form
304
+ }
305
+
306
+ const _toString = Object.prototype.toString
307
+
308
+ export function _moment (...args) {
309
+ return moment(...args)
310
+ }
311
+
312
+ export function base64ToFile (base64Data, filename = 'image.png') {
313
+ // 将 base64 转换为 blob
314
+ const arr = base64Data.split(',')
315
+ const mime = arr[0].match(/:(.*?);/)?.[1] || 'image/png'
316
+ const bstr = atob(arr[1])
317
+ let n = bstr.length
318
+ const u8arr = new Uint8Array(n)
319
+
320
+ while (n--) {
321
+ u8arr[n] = bstr.charCodeAt(n)
322
+ }
323
+
324
+ // 创建 Blob 对象
325
+ const blob = new Blob([u8arr], { type: mime })
326
+
327
+ // 创建 File 对象
328
+ return new File([blob], filename, { type: mime })
329
+ };