vue2-client 1.12.56 → 1.12.58

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 (385) hide show
  1. package/.cursorrules +19 -19
  2. package/.env.gaslink +19 -19
  3. package/.env.his +19 -19
  4. package/.env.iot +19 -19
  5. package/.env.liuli +19 -19
  6. package/.env.revenue +19 -19
  7. package/.env.scada +19 -19
  8. package/.eslintrc.js +90 -90
  9. package/CHANGELOG.md +824 -824
  10. package/Components.md +60 -60
  11. package/docs/Logic/345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +45 -45
  12. package/docs/LowCode/lowcode.md +155 -155
  13. package/docs/LowCode/lowcodeForDeveloper.md +230 -230
  14. package/docs/index.md +30 -30
  15. package/index.js +31 -31
  16. package/jest-transform-stub.js +8 -8
  17. package/jest.setup.js +7 -7
  18. package/jsconfig.json +19 -19
  19. package/package.json +108 -108
  20. package/public/his/editor/editor.html +51 -51
  21. package/public/his/editor/mock/bind_data.html +779 -779
  22. package/public/his/editor/mock/data_table.html +40 -40
  23. package/public/his/editor/mock/sign.html +75 -75
  24. package/public/his/editor/vender/JsBarcode.all.js +3669 -3669
  25. package/public/his/editor/vender/date97/My97DatePicker.htm +65 -65
  26. package/public/his/editor/vender/date97/WdatePicker.js +677 -677
  27. package/public/his/editor/vender/date97/calendar.js +4 -4
  28. package/public/his/editor/vender/date97/lang/en.js +13 -13
  29. package/public/his/editor/vender/date97/lang/zh-cn.js +13 -13
  30. package/public/his/editor/vender/date97/lang/zh-tw.js +13 -13
  31. package/public/his/editor/vender/date97/skin/WdatePicker.css +10 -10
  32. package/public/his/editor/vender/date97/skin/default/datepicker.css +328 -328
  33. package/public/his/editor/vender/date97/skin/ext/datepicker.css +308 -308
  34. package/public/his/editor/vender/date97/skin/whyGreen/datepicker.css +255 -255
  35. package/public/his/editor/vender/diff.js +1627 -1627
  36. package/public/his/editor/vender/editor.js +1 -1
  37. package/public/his/editor/vender/fabric.js +31187 -31187
  38. package/public/his/editor/vender/jquery/jquery.base64.js +190 -190
  39. package/public/his/editor/vender/jquery/jquery.js +10872 -10872
  40. package/public/his/editor/vender/jquery/jquery.print.js +255 -255
  41. package/public/his/editor/vender/jquery/zTreeStyle/zTreeStyle.css +96 -96
  42. package/public/his/editor/vender/mui/mui.min.css +4 -4
  43. package/public/his/editor/vender/mui/mui.min.js +5 -5
  44. package/public/his/editor/vender/mui/mui.picker.min.css +6 -6
  45. package/public/his/editor/vender/mui/mui.picker.min.js +6 -6
  46. package/public/his/editor/vender/qrcode.js +7 -7
  47. package/public/his/editor/vender/requirejs/require.js +2145 -2145
  48. package/public/his/editor/vender/signature/jSignature.CompressorSVG.js +518 -518
  49. package/public/his/editor/vender/signature/jSignature.UndoButton.js +164 -164
  50. package/public/his/editor/vender/signature/jSignature.js +1486 -1486
  51. package/public/his/editor/vender/validator.js +5094 -5094
  52. package/public/his/editor/vender/weui/weui.css +5659 -5659
  53. package/public/his/editor/vender/weui/weui.min.css +4 -4
  54. package/public/his/editor/vender/weui/weui.min.js +11 -11
  55. package/public/index.html +27 -27
  56. package/src/ReportView.js +19 -19
  57. package/src/assets/img/querySlotDemo.svg +15 -15
  58. package/src/assets/svg/badtwo.svg +1 -1
  59. package/src/assets/svg/goodtwo.svg +1 -1
  60. package/src/base-client/components/AI/AskAiBtn.vue +136 -136
  61. package/src/base-client/components/AI/demo.vue +31 -31
  62. package/src/base-client/components/common/AMisRender/index.js +3 -3
  63. package/src/base-client/components/common/AMisRender/index.vue +263 -263
  64. package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +470 -470
  65. package/src/base-client/components/common/AddressSearchCombobox/IcMapIcon.vue +16 -16
  66. package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
  67. package/src/base-client/components/common/AddressSearchCombobox/ic_map.svg +6 -6
  68. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  69. package/src/base-client/components/common/CitySelect/index.js +3 -3
  70. package/src/base-client/components/common/CitySelect/index.md +109 -109
  71. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  72. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
  73. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  74. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  75. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
  76. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
  77. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  78. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  79. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +149 -149
  80. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  81. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  82. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  83. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  84. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  85. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  86. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorModal.vue +108 -108
  87. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -413
  88. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
  89. package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -728
  90. package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
  91. package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -219
  92. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeAddPageModal.vue +117 -117
  93. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeCustomJSModal.vue +80 -80
  94. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeEventEditorModal.vue +398 -398
  95. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLifeCycleModal.vue +65 -65
  96. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicCallbackModal.vue +64 -64
  97. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicParamModal.vue +73 -73
  98. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeRunFunctionParamModal.vue +76 -76
  99. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  100. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  101. package/src/base-client/components/common/Recording/Recording.vue +243 -243
  102. package/src/base-client/components/common/Recording/index.js +3 -3
  103. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  104. package/src/base-client/components/common/Tree/index.js +2 -2
  105. package/src/base-client/components/common/Upload/index.js +3 -3
  106. package/src/base-client/components/common/XAddForm/XAddForm.vue +113 -113
  107. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +1156 -1156
  108. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  109. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +303 -303
  110. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  111. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  112. package/src/base-client/components/common/XAddReport/index.js +3 -3
  113. package/src/base-client/components/common/XAddReport/index.md +56 -56
  114. package/src/base-client/components/common/XBadge/XBadge.vue +94 -94
  115. package/src/base-client/components/common/XButtons/XButtonDemo.vue +28 -28
  116. package/src/base-client/components/common/XButtons/XButtons.vue +71 -71
  117. package/src/base-client/components/common/XButtons/index.js +3 -3
  118. package/src/base-client/components/common/XButtons/index.md +61 -61
  119. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  120. package/src/base-client/components/common/XCheckList/XCheckList.vue +106 -106
  121. package/src/base-client/components/common/XCheckList/XCheckListDemo.vue +41 -41
  122. package/src/base-client/components/common/XCollapse/XCollapse.vue +154 -154
  123. package/src/base-client/components/common/XDataCard/index.js +3 -3
  124. package/src/base-client/components/common/XDataCard/index.md +1 -1
  125. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  126. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  127. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  128. package/src/base-client/components/common/XDatePicker/demo.vue +153 -153
  129. package/src/base-client/components/common/XDatePicker/index.vue +269 -269
  130. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  131. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  132. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +238 -238
  133. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  134. package/src/base-client/components/common/XForm/XForm.vue +404 -404
  135. package/src/base-client/components/common/XForm/XFormItem.vue +1310 -1310
  136. package/src/base-client/components/common/XForm/XStatusButton.vue +54 -54
  137. package/src/base-client/components/common/XForm/XTreeSelect.vue +270 -263
  138. package/src/base-client/components/common/XForm/index.md +178 -178
  139. package/src/base-client/components/common/XForm/itemComponent/XClickChangeBtn/index.vue +49 -49
  140. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  141. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  142. package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +72 -72
  143. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  144. package/src/base-client/components/common/XFormTable/demo.vue +1 -1
  145. package/src/base-client/components/common/XFormTable/index.md +92 -92
  146. package/src/base-client/components/common/XImportExcel/XImportExcel.vue +167 -167
  147. package/src/base-client/components/common/XLabelSelect/XLabelSelect.vue +110 -110
  148. package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
  149. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  150. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  151. package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
  152. package/src/base-client/components/common/XPrint/PrintBill.vue +302 -302
  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/XReport.vue +892 -892
  159. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  160. package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
  161. package/src/base-client/components/common/XReport/index.js +3 -3
  162. package/src/base-client/components/common/XReport/index.md +44 -44
  163. package/src/base-client/components/common/XReport/print.js +186 -186
  164. package/src/base-client/components/common/XReportDrawer/index.js +3 -3
  165. package/src/base-client/components/common/XReportGrid/index.js +3 -3
  166. package/src/base-client/components/common/XReportGrid/index.md +44 -44
  167. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  168. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  169. package/src/base-client/components/common/XReportSlot/index.md +48 -48
  170. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
  171. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
  172. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
  173. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  174. package/src/base-client/components/common/XStepView/index.js +3 -3
  175. package/src/base-client/components/common/XStepView/index.md +31 -31
  176. package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
  177. package/src/base-client/components/common/XTab/index.js +3 -3
  178. package/src/base-client/components/common/XTable/CustomFuncCel.vue +51 -51
  179. package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
  180. package/src/base-client/components/common/XTable/XTable.vue +8 -1
  181. package/src/base-client/components/common/XTable/index.md +255 -255
  182. package/src/base-client/components/common/XTagGroup/index.vue +52 -52
  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/XHisEditor/index.js +3 -3
  191. package/src/base-client/components/index.js +51 -51
  192. package/src/base-client/components/layout/XPageView/XErrorView.vue +11 -11
  193. package/src/base-client/components/layout/XPageView/XPageView.vue +155 -155
  194. package/src/base-client/components/layout/XPageView/index.js +3 -3
  195. package/src/base-client/components/layout/XPageView/index.md +38 -38
  196. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  197. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  198. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  199. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  200. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  201. package/src/base-client/plugins/Config.js +19 -19
  202. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  203. package/src/base-client/plugins/Recording.js +258 -258
  204. package/src/base-client/plugins/index.js +23 -23
  205. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  206. package/src/components/Charts/Bar.vue +62 -62
  207. package/src/components/Charts/ChartCard.vue +134 -134
  208. package/src/components/Charts/Liquid.vue +67 -67
  209. package/src/components/Charts/MiniArea.vue +39 -39
  210. package/src/components/Charts/MiniBar.vue +39 -39
  211. package/src/components/Charts/MiniProgress.vue +75 -75
  212. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  213. package/src/components/Charts/Radar.vue +68 -68
  214. package/src/components/Charts/RankList.vue +77 -77
  215. package/src/components/Charts/TagCloud.vue +113 -113
  216. package/src/components/Charts/TransferBar.vue +64 -64
  217. package/src/components/Charts/Trend.vue +82 -82
  218. package/src/components/Charts/chart.less +12 -12
  219. package/src/components/Charts/smooth.area.less +13 -13
  220. package/src/components/CodeMirror/inedx.vue +118 -118
  221. package/src/components/CodeMirror/setting.js +40 -40
  222. package/src/components/FilePreview/FilePreview.vue +186 -186
  223. package/src/components/FilePreview/FilePreviewDemo.vue +30 -30
  224. package/src/components/HeightScanner/index.vue +571 -571
  225. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  226. package/src/components/NumberInfo/index.js +3 -3
  227. package/src/components/NumberInfo/index.less +54 -54
  228. package/src/components/NumberInfo/index.md +43 -43
  229. package/src/components/STable/index.js +434 -435
  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 +4 -4
  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/layouts/tabs/TabsView.vue +389 -389
  269. package/src/lib.js +1 -1
  270. package/src/main.js +34 -34
  271. package/src/mixins/formValidationMixin.js +46 -46
  272. package/src/mock/extend/index.js +84 -84
  273. package/src/mock/goods/index.js +108 -108
  274. package/src/pages/AMisDemo/AMisDemo.vue +325 -325
  275. package/src/pages/AMisDemo/AMisDemo2.vue +74 -74
  276. package/src/pages/DefaultExample/index.vue +77 -77
  277. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  278. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  279. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  280. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  281. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  282. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  283. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  284. package/src/pages/DynamicStatistics/index.vue +282 -282
  285. package/src/pages/Example/childIndex.vue +15 -15
  286. package/src/pages/Example/index.vue +30 -30
  287. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  288. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  289. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  290. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  291. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  292. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  293. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  294. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  295. package/src/pages/Recording/index.vue +77 -77
  296. package/src/pages/ServiceReview/index.vue +284 -284
  297. package/src/pages/SubExample/index.vue +26 -26
  298. package/src/pages/WorkflowDetail/WorkflowDetail.vue +235 -235
  299. package/src/pages/WorkflowDetail/WorkflowPageDetail/LeaveMessage.vue +131 -131
  300. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  301. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformation.vue +302 -302
  302. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformationDetails.vue +276 -276
  303. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandleReso.vue +997 -997
  304. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowTimeline.vue +222 -222
  305. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkOrderParentDetails.vue +233 -233
  306. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowDetailResso.vue +261 -261
  307. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowListResolution.vue +248 -248
  308. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowLog.vue +73 -73
  309. package/src/pages/XPageViewExample/index.vue +38 -38
  310. package/src/pages/XReportView/index.vue +64 -64
  311. package/src/pages/XTreeOneProExample/index.vue +67 -67
  312. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  313. package/src/pages/login/Login.vue +378 -378
  314. package/src/pages/login/LoginV3.vue +389 -389
  315. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  316. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  317. package/src/pages/report/ReportTable.js +124 -124
  318. package/src/pages/resourceManage/orgListManage.vue +98 -98
  319. package/src/pages/system/dictionary/index.vue +44 -44
  320. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  321. package/src/pages/system/monitor/operLog/index.vue +37 -37
  322. package/src/pages/system/settings/modifyPassword.vue +117 -117
  323. package/src/pages/system/ticket/index.vue +480 -480
  324. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  325. package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
  326. package/src/pages/userInfoDetailManage/FillCardRecordQuery/index.vue +76 -76
  327. package/src/pages/userInfoDetailManage/FillGasRecordQuery/index.vue +74 -74
  328. package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
  329. package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
  330. package/src/pages/userInfoDetailManage/MachineRecordQuery/index.vue +74 -74
  331. package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
  332. package/src/pages/userInfoDetailManage/OtherChargeRecordQuery/index.vue +74 -74
  333. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
  334. package/src/pages/userInfoDetailManage/UserChargeRecordQuery/index.vue +92 -92
  335. package/src/pages/userInfoDetailManage/UserHandRecordQuery/index.vue +86 -86
  336. package/src/pages/userInfoDetailManage/UserRecordQuery/index.vue +73 -73
  337. package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
  338. package/src/pages/userInfoDetailManage/userInfoDetailQueryTabs.vue +132 -132
  339. package/src/plugins/EventLogPlugin.js +33 -33
  340. package/src/plugins/FindParentsData.js +17 -17
  341. package/src/router/async/config.async.js +35 -35
  342. package/src/router/async/router.map.js +119 -118
  343. package/src/router/index.js +27 -27
  344. package/src/router.js +19 -19
  345. package/src/services/DataModel.js +30 -30
  346. package/src/services/LodopFuncs.js +137 -137
  347. package/src/services/api/TicketDetailsViewApi.js +46 -46
  348. package/src/services/api/cas.js +79 -79
  349. package/src/services/api/common.js +346 -346
  350. package/src/services/api/entity.js +18 -18
  351. package/src/services/api/index.js +17 -17
  352. package/src/services/api/restTools.js +145 -145
  353. package/src/services/api/workFlow.js +63 -63
  354. package/src/services/apiService.js +16 -16
  355. package/src/store/modules/account.js +115 -115
  356. package/src/store/modules/index.js +5 -5
  357. package/src/store/modules/lowCode.js +33 -33
  358. package/src/store/modules/setting.js +119 -119
  359. package/src/theme/default/style.less +58 -58
  360. package/src/theme/global.less +159 -159
  361. package/src/utils/authority-utils.js +85 -85
  362. package/src/utils/errorCode.js +6 -6
  363. package/src/utils/formatter.js +74 -74
  364. package/src/utils/htmlToPDF.js +108 -108
  365. package/src/utils/htmlToPDFApi.js +5 -5
  366. package/src/utils/login.js +188 -188
  367. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  368. package/src/utils/lowcode/lowcodeLog.js +29 -29
  369. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  370. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  371. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  372. package/src/utils/map-utils.js +47 -47
  373. package/src/utils/reg.js +95 -95
  374. package/src/utils/runEvalFunction.js +14 -14
  375. package/src/utils/theme-color-replacer-extend.js +92 -92
  376. package/src/utils/util.js +329 -329
  377. package/src/utils/waterMark.js +31 -31
  378. package/test/Amis.spec.js +164 -164
  379. package/test/Tree.spec.js +168 -168
  380. package/test/myDialog.spec.js +47 -47
  381. package/test/util.test.js +53 -53
  382. package/test/v3Api.test.js +1984 -1984
  383. package/vue.config.js +1 -1
  384. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
  385. package/src/base-client/components/common/XCollapse/XCollapseDemo.vue +0 -15
@@ -1,146 +1,146 @@
1
- # XAddNativeForm
2
-
3
- 动态新增/修改表单控件,根据JSON配置生成一个完整的可供新增/修改数据的动态表单
4
-
5
-
6
- ## 何时使用
7
-
8
- 当需要一个可供新增/修改数据的动态生成的表单时
9
-
10
-
11
- 引用方式:
12
-
13
- ```javascript
14
- import XAddNativeForm from '@vue2-client/base-client/components/XAddNativeForm/XAddNativeForm'
15
-
16
- export default {
17
- components: {
18
- XAddNativeForm
19
- }
20
- }
21
- ```
22
-
23
-
24
-
25
- ## 代码演示
26
-
27
- ```html
28
- <x-add-native-form
29
- ref="nativeForm"
30
- @onSubmit="submit"/>
31
- ```
32
-
33
- ## 构造参数,通过init方法构造
34
-
35
- | 参数 | 说明 | 类型 | 默认值 |
36
- |-----------------|----------------------|-------|--------|
37
- | formItems | 表单项集合 | array | [] |
38
- | viewMode | 是否为预览模式 | bool | false |
39
- | isHandleFormKey | 是否对提交表单的key进行处理 | bool | true |
40
- | serviceName | 所属服务模块名 | string | system |
41
- | businessType | 业务类型(新增/修改) | string | - |
42
- | title | 业务标题 | string | - |
43
- | getDataParams | 调用logic获取下拉框数据源的追加参数 | {} | - |
44
- | simpleFormJsonData | 动态简易表单集合 | {} | - |
45
-
46
- ## 事件
47
- | 事件 | 说明 | 类型 | 默认值 |
48
- |-----------|----------------------|-------|-----------|
49
- | @onSubmit | 表单的提交事件 | event | - |
50
-
51
- ## 例子1
52
- ----
53
- ```vue
54
- <template>
55
- <x-add-native-form
56
- ref="nativeForm"
57
- @onSubmit="submit"/>
58
- </template>
59
- <script>
60
- import { getConfigUrl } from '@vue2-client/services/api/common'
61
- export default {
62
- created () {
63
- this.initComponents()
64
- },
65
- methods: {
66
- initComponents() {
67
- // 获取请求配置中心的地址
68
- const url = getConfigUrl('yourConfigModuleName')
69
- post(url, { configName: 'yourConfigName' }).then(res => {
70
- if (this.$refs.nativeForm) {
71
- this.$refs.nativeForm.init({
72
- formItems: res,
73
- serviceName: 'af-iot',
74
- businessType: '新增',
75
- title: '新增告警记录'
76
- })
77
- }
78
- })
79
- },
80
- submit (res) {
81
- post(api.addData, res.realForm).then(data => {
82
- this.$message.success(res.businessType + '成功!')
83
- }).catch(e => {
84
- this.$message.error(res.businessType + '失败:' + e)
85
- })
86
- }
87
- }
88
- }
89
- </script>
90
- ```
91
-
92
- ## JSON配置示例
93
- ----
94
- `这是一个表单配置示例,通过以下配置,你会得到一个有选项的单选框,一个带校验的输入框,以及一个文本域`
95
- ```json
96
- [
97
- {
98
- "name": "是否通气",
99
- "model": "is_ventilate",
100
- "keys": [
101
- { "label": "是", "value": "1" },
102
- { "label": "否", "value": "0" }
103
- ],
104
- "type": "radio",
105
- "addOrEdit": "all",
106
- },
107
- {
108
- "name": "处理人",
109
- "model": "f_processor",
110
- "rule": {
111
- "required": true
112
- },
113
- "type": "input",
114
- "addOrEdit": "all",
115
- },
116
- {
117
- "name": "处理内容",
118
- "model": "f_handle_content",
119
- "type": "textarea",
120
- "addOrEdit": "all",
121
- }
122
- ]
123
- ```
124
-
125
- ## JSON配置规范
126
- ----
127
- | 参数 | 说明 | 类型 | 默认值 |
128
- |-----------------|----------------------|-------|-----------|
129
- | name | 表单项名称 | string | '' |
130
- | model | 表单项key | string | '' |
131
- | rule | 表单校验 | json | {} |
132
- | -> required | 是否必填 | bool | false |
133
- | type | 表单类型 | string | input |
134
- | keys | 当表单类型是select,radio时的选项值 | Array | [] |
135
- | -> label | 选项的字面值 | string | '' |
136
- | -> value | 选项的实际值 | string | '' |
137
- | addOrEdit | 新增/修改场景 | string | all |
138
- | -> add | 仅新增 | string | - |
139
- | -> edit | 仅修改 | string | - |
140
- | -> all | 全部支持 | string | - |
141
-
142
-
143
- 注意事项
144
- ----
145
-
146
- > 本组件已经实现了自适应布局,在不同分辨率下的设备均可得到基本理想的展示效果
1
+ # XAddNativeForm
2
+
3
+ 动态新增/修改表单控件,根据JSON配置生成一个完整的可供新增/修改数据的动态表单
4
+
5
+
6
+ ## 何时使用
7
+
8
+ 当需要一个可供新增/修改数据的动态生成的表单时
9
+
10
+
11
+ 引用方式:
12
+
13
+ ```javascript
14
+ import XAddNativeForm from '@vue2-client/base-client/components/XAddNativeForm/XAddNativeForm'
15
+
16
+ export default {
17
+ components: {
18
+ XAddNativeForm
19
+ }
20
+ }
21
+ ```
22
+
23
+
24
+
25
+ ## 代码演示
26
+
27
+ ```html
28
+ <x-add-native-form
29
+ ref="nativeForm"
30
+ @onSubmit="submit"/>
31
+ ```
32
+
33
+ ## 构造参数,通过init方法构造
34
+
35
+ | 参数 | 说明 | 类型 | 默认值 |
36
+ |-----------------|----------------------|-------|--------|
37
+ | formItems | 表单项集合 | array | [] |
38
+ | viewMode | 是否为预览模式 | bool | false |
39
+ | isHandleFormKey | 是否对提交表单的key进行处理 | bool | true |
40
+ | serviceName | 所属服务模块名 | string | system |
41
+ | businessType | 业务类型(新增/修改) | string | - |
42
+ | title | 业务标题 | string | - |
43
+ | getDataParams | 调用logic获取下拉框数据源的追加参数 | {} | - |
44
+ | simpleFormJsonData | 动态简易表单集合 | {} | - |
45
+
46
+ ## 事件
47
+ | 事件 | 说明 | 类型 | 默认值 |
48
+ |-----------|----------------------|-------|-----------|
49
+ | @onSubmit | 表单的提交事件 | event | - |
50
+
51
+ ## 例子1
52
+ ----
53
+ ```vue
54
+ <template>
55
+ <x-add-native-form
56
+ ref="nativeForm"
57
+ @onSubmit="submit"/>
58
+ </template>
59
+ <script>
60
+ import { getConfigUrl } from '@vue2-client/services/api/common'
61
+ export default {
62
+ created () {
63
+ this.initComponents()
64
+ },
65
+ methods: {
66
+ initComponents() {
67
+ // 获取请求配置中心的地址
68
+ const url = getConfigUrl('yourConfigModuleName')
69
+ post(url, { configName: 'yourConfigName' }).then(res => {
70
+ if (this.$refs.nativeForm) {
71
+ this.$refs.nativeForm.init({
72
+ formItems: res,
73
+ serviceName: 'af-iot',
74
+ businessType: '新增',
75
+ title: '新增告警记录'
76
+ })
77
+ }
78
+ })
79
+ },
80
+ submit (res) {
81
+ post(api.addData, res.realForm).then(data => {
82
+ this.$message.success(res.businessType + '成功!')
83
+ }).catch(e => {
84
+ this.$message.error(res.businessType + '失败:' + e)
85
+ })
86
+ }
87
+ }
88
+ }
89
+ </script>
90
+ ```
91
+
92
+ ## JSON配置示例
93
+ ----
94
+ `这是一个表单配置示例,通过以下配置,你会得到一个有选项的单选框,一个带校验的输入框,以及一个文本域`
95
+ ```json
96
+ [
97
+ {
98
+ "name": "是否通气",
99
+ "model": "is_ventilate",
100
+ "keys": [
101
+ { "label": "是", "value": "1" },
102
+ { "label": "否", "value": "0" }
103
+ ],
104
+ "type": "radio",
105
+ "addOrEdit": "all",
106
+ },
107
+ {
108
+ "name": "处理人",
109
+ "model": "f_processor",
110
+ "rule": {
111
+ "required": true
112
+ },
113
+ "type": "input",
114
+ "addOrEdit": "all",
115
+ },
116
+ {
117
+ "name": "处理内容",
118
+ "model": "f_handle_content",
119
+ "type": "textarea",
120
+ "addOrEdit": "all",
121
+ }
122
+ ]
123
+ ```
124
+
125
+ ## JSON配置规范
126
+ ----
127
+ | 参数 | 说明 | 类型 | 默认值 |
128
+ |-----------------|----------------------|-------|-----------|
129
+ | name | 表单项名称 | string | '' |
130
+ | model | 表单项key | string | '' |
131
+ | rule | 表单校验 | json | {} |
132
+ | -> required | 是否必填 | bool | false |
133
+ | type | 表单类型 | string | input |
134
+ | keys | 当表单类型是select,radio时的选项值 | Array | [] |
135
+ | -> label | 选项的字面值 | string | '' |
136
+ | -> value | 选项的实际值 | string | '' |
137
+ | addOrEdit | 新增/修改场景 | string | all |
138
+ | -> add | 仅新增 | string | - |
139
+ | -> edit | 仅修改 | string | - |
140
+ | -> all | 全部支持 | string | - |
141
+
142
+
143
+ 注意事项
144
+ ----
145
+
146
+ > 本组件已经实现了自适应布局,在不同分辨率下的设备均可得到基本理想的展示效果
@@ -1,3 +1,3 @@
1
- import XAddReport from './XAddReport'
2
-
3
- export default XAddReport
1
+ import XAddReport from './XAddReport'
2
+
3
+ export default XAddReport
@@ -1,56 +1,56 @@
1
- # XAddForm
2
-
3
- 动态新增/修改表单控件,根据JSON配置生成一个完整的可供新增/修改数据的动态表单
4
-
5
-
6
- ## 何时使用
7
-
8
- 当需要一个可供新增/修改数据的动态生成的表单时
9
-
10
-
11
- 引用方式:
12
-
13
- ```javascript
14
- import XAddReport from '@vue2-client/base-client/components/XAddReport/XAddReport'
15
-
16
- export default {
17
- components: {
18
- XAddReport
19
- }
20
- }
21
- ```
22
-
23
-
24
-
25
- ## 代码演示
26
-
27
- ```html
28
- <x-add-report
29
-
30
- >
31
- </x-add-report>
32
- ```
33
-
34
- ## API
35
-
36
- | 参数 | 说明 | 类型 | 默认值 |
37
- |-----------------|--------------------------|---------|-------|
38
- | businessTitle | 业务标题 | String | '' |
39
- | businessType | 业务类型 | String | '' |
40
- | visible | 是否显示模态框 | Boolean | false |
41
- | jsonData | JSON配置,根据[工具>查询配置生成]功能生成 | Object | {} |
42
- | modifyModelData | 修改操作前查询出的业务数据 | Object | {} |
43
- | loading | 新增或修改业务是否执行中 | Boolean | false |
44
- | fixedAddForm | 固定新增表单,会和新增表单合并 | Object | {} |
45
- | getDataParams | 调用logic获取数据源的追加参数 | Object | - |
46
- | @onSubmit | 表单的提交事件 | event | - |
47
-
48
- ## 例子1
49
- ----
50
- 参考XFormTable组件
51
- ```
52
-
53
- 注意事项
54
- ----
55
-
56
- > 本组件已经实现了自适应布局,在不同分辨率下的设备均可得到基本理想的展示效果
1
+ # XAddForm
2
+
3
+ 动态新增/修改表单控件,根据JSON配置生成一个完整的可供新增/修改数据的动态表单
4
+
5
+
6
+ ## 何时使用
7
+
8
+ 当需要一个可供新增/修改数据的动态生成的表单时
9
+
10
+
11
+ 引用方式:
12
+
13
+ ```javascript
14
+ import XAddReport from '@vue2-client/base-client/components/XAddReport/XAddReport'
15
+
16
+ export default {
17
+ components: {
18
+ XAddReport
19
+ }
20
+ }
21
+ ```
22
+
23
+
24
+
25
+ ## 代码演示
26
+
27
+ ```html
28
+ <x-add-report
29
+
30
+ >
31
+ </x-add-report>
32
+ ```
33
+
34
+ ## API
35
+
36
+ | 参数 | 说明 | 类型 | 默认值 |
37
+ |-----------------|--------------------------|---------|-------|
38
+ | businessTitle | 业务标题 | String | '' |
39
+ | businessType | 业务类型 | String | '' |
40
+ | visible | 是否显示模态框 | Boolean | false |
41
+ | jsonData | JSON配置,根据[工具>查询配置生成]功能生成 | Object | {} |
42
+ | modifyModelData | 修改操作前查询出的业务数据 | Object | {} |
43
+ | loading | 新增或修改业务是否执行中 | Boolean | false |
44
+ | fixedAddForm | 固定新增表单,会和新增表单合并 | Object | {} |
45
+ | getDataParams | 调用logic获取数据源的追加参数 | Object | - |
46
+ | @onSubmit | 表单的提交事件 | event | - |
47
+
48
+ ## 例子1
49
+ ----
50
+ 参考XFormTable组件
51
+ ```
52
+
53
+ 注意事项
54
+ ----
55
+
56
+ > 本组件已经实现了自适应布局,在不同分辨率下的设备均可得到基本理想的展示效果
@@ -1,94 +1,94 @@
1
- <template>
2
- <div v-if="dictionary && dictionary.status !== 'none'">
3
- <!-- 徽标存在时 -->
4
- <a-badge
5
- v-if="dictionary.status !== 'gary'"
6
- :color="dictionary.status"
7
- :text="!isExternalText ? dictionary.text: null"/>
8
- <a-badge v-else color="#D9D9D9" :text="!isExternalText ? dictionary.text: null"/>
9
- <span v-if="isExternalText">{{ dictionary.text }}</span>
10
- </div>
11
- <div v-else-if="dictionary" :class="{data_card: dataCard}">
12
- <!-- 徽标为none时 -->
13
- {{ dictionary.text }}
14
- </div>
15
- <div v-else>
16
- <!-- 其他情况直接显示替代文本或者原值 -->
17
- {{ replaceText ? replaceText : value }}
18
- </div>
19
- </template>
20
-
21
- <script>
22
-
23
- export default {
24
- name: 'XBadge',
25
- props: {
26
- badgeKey: {
27
- type: String,
28
- required: true,
29
- },
30
- value: {
31
- type: [Number, String],
32
- required: true,
33
- },
34
- replaceText: {
35
- type: String,
36
- default: ''
37
- },
38
- serviceName: {
39
- type: String,
40
- default: process.env.VUE_APP_SYSTEM_NAME
41
- },
42
- env: {
43
- type: String,
44
- default: 'prod'
45
- },
46
- isExternalText: {
47
- type: Boolean,
48
- required: false
49
- },
50
- // 是否在看板模式下显示
51
- dataCard: {
52
- type: Boolean,
53
- default: false
54
- }
55
- },
56
- computed: {},
57
- watch: {
58
- badgeKey (newVal, oldVal) {
59
- this.updateDictionary()
60
- },
61
- value (newVal, oldVal) {
62
- this.updateDictionary()
63
- }
64
- },
65
- data () {
66
- return {
67
- dictionary: undefined
68
- }
69
- },
70
- created () {
71
- this.updateDictionary()
72
- },
73
- methods: {
74
- // todo 修改方式 想办法不使用回调方式
75
- async updateDictionary () {
76
- const result = this.$appdata.getParam(this.badgeKey, this.value)
77
- if (result) {
78
- this.dictionary = result
79
- return
80
- }
81
- this.dictionary = await this.$appdata.getDictValue(this.badgeKey, this.value, undefined, this.env === 'dev', this.serviceName)
82
- },
83
- badgeFilter (key, value) {
84
- return this.$appdata.getParam(key, value)
85
- }
86
- }
87
- }
88
- </script>
89
-
90
- <style lang="less" scoped>
91
- .data_card {
92
- display: inline;
93
- }
94
- </style>
1
+ <template>
2
+ <div v-if="dictionary && dictionary.status !== 'none'">
3
+ <!-- 徽标存在时 -->
4
+ <a-badge
5
+ v-if="dictionary.status !== 'gary'"
6
+ :color="dictionary.status"
7
+ :text="!isExternalText ? dictionary.text: null"/>
8
+ <a-badge v-else color="#D9D9D9" :text="!isExternalText ? dictionary.text: null"/>
9
+ <span v-if="isExternalText">{{ dictionary.text }}</span>
10
+ </div>
11
+ <div v-else-if="dictionary" :class="{data_card: dataCard}">
12
+ <!-- 徽标为none时 -->
13
+ {{ dictionary.text }}
14
+ </div>
15
+ <div v-else>
16
+ <!-- 其他情况直接显示替代文本或者原值 -->
17
+ {{ replaceText ? replaceText : value }}
18
+ </div>
19
+ </template>
20
+
21
+ <script>
22
+
23
+ export default {
24
+ name: 'XBadge',
25
+ props: {
26
+ badgeKey: {
27
+ type: String,
28
+ required: true,
29
+ },
30
+ value: {
31
+ type: [Number, String],
32
+ required: true,
33
+ },
34
+ replaceText: {
35
+ type: String,
36
+ default: ''
37
+ },
38
+ serviceName: {
39
+ type: String,
40
+ default: process.env.VUE_APP_SYSTEM_NAME
41
+ },
42
+ env: {
43
+ type: String,
44
+ default: 'prod'
45
+ },
46
+ isExternalText: {
47
+ type: Boolean,
48
+ required: false
49
+ },
50
+ // 是否在看板模式下显示
51
+ dataCard: {
52
+ type: Boolean,
53
+ default: false
54
+ }
55
+ },
56
+ computed: {},
57
+ watch: {
58
+ badgeKey (newVal, oldVal) {
59
+ this.updateDictionary()
60
+ },
61
+ value (newVal, oldVal) {
62
+ this.updateDictionary()
63
+ }
64
+ },
65
+ data () {
66
+ return {
67
+ dictionary: undefined
68
+ }
69
+ },
70
+ created () {
71
+ this.updateDictionary()
72
+ },
73
+ methods: {
74
+ // todo 修改方式 想办法不使用回调方式
75
+ async updateDictionary () {
76
+ const result = this.$appdata.getParam(this.badgeKey, this.value)
77
+ if (result) {
78
+ this.dictionary = result
79
+ return
80
+ }
81
+ this.dictionary = await this.$appdata.getDictValue(this.badgeKey, this.value, undefined, this.env === 'dev', this.serviceName)
82
+ },
83
+ badgeFilter (key, value) {
84
+ return this.$appdata.getParam(key, value)
85
+ }
86
+ }
87
+ }
88
+ </script>
89
+
90
+ <style lang="less" scoped>
91
+ .data_card {
92
+ display: inline;
93
+ }
94
+ </style>
@@ -1,28 +1,28 @@
1
- <template>
2
- <div>
3
- <x-buttons ref="xButtons"></x-buttons>
4
- </div>
5
- </template>
6
-
7
- <script>
8
- import XButtons from './XButtons.vue'
9
- import { getConfigByName } from '@vue2-client/services/api/common'
10
-
11
- export default {
12
- name: 'XButtonDemo',
13
- components: {
14
- XButtons
15
- },
16
- data () {
17
- return {}
18
- },
19
- mounted () {
20
- getConfigByName('testButtonGroup', 'af-his', res => {
21
- this.$refs.xButtons.init({
22
- value: res.value
23
- })
24
- }, true)
25
- },
26
- methods: {},
27
- }
28
- </script>
1
+ <template>
2
+ <div>
3
+ <x-buttons ref="xButtons"></x-buttons>
4
+ </div>
5
+ </template>
6
+
7
+ <script>
8
+ import XButtons from './XButtons.vue'
9
+ import { getConfigByName } from '@vue2-client/services/api/common'
10
+
11
+ export default {
12
+ name: 'XButtonDemo',
13
+ components: {
14
+ XButtons
15
+ },
16
+ data () {
17
+ return {}
18
+ },
19
+ mounted () {
20
+ getConfigByName('testButtonGroup', 'af-his', res => {
21
+ this.$refs.xButtons.init({
22
+ value: res.value
23
+ })
24
+ }, true)
25
+ },
26
+ methods: {},
27
+ }
28
+ </script>