vue2-client 1.16.94 → 1.16.95

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 (341) hide show
  1. package/.claude/settings.local.json +20 -20
  2. package/.cursorrules +19 -19
  3. package/.env.apply +19 -19
  4. package/.env.gaslink +19 -19
  5. package/.env.his +19 -19
  6. package/.env.liuli +20 -20
  7. package/.env.scada +19 -19
  8. package/.eslintrc.js +90 -90
  9. package/CHANGELOG.md +830 -830
  10. package/CLAUDE.md +97 -97
  11. package/Components.md +60 -60
  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 +112 -112
  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/src/assets/img/querySlotDemo.svg +15 -15
  56. package/src/assets/svg/badtwo.svg +1 -1
  57. package/src/assets/svg/female.svg +1 -1
  58. package/src/assets/svg/goodtwo.svg +1 -1
  59. package/src/assets/svg/male.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/AddressSearchCombobox/IcMapIcon.vue +16 -16
  63. package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
  64. package/src/base-client/components/common/AddressSearchCombobox/ic_map.svg +6 -6
  65. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  66. package/src/base-client/components/common/CitySelect/index.js +3 -3
  67. package/src/base-client/components/common/CitySelect/index.md +109 -109
  68. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  69. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
  70. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  71. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  72. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
  73. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
  74. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  75. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  76. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  77. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  78. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  79. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  80. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  81. package/src/base-client/components/common/HIS/HButtons/HButtons.vue +491 -445
  82. package/src/base-client/components/common/HIS/HForm/HForm.vue +389 -361
  83. package/src/base-client/components/common/HIS/HFormGroup/index.js +3 -3
  84. package/src/base-client/components/common/HIS/HFormTable/HFormTable.vue +8 -2
  85. package/src/base-client/components/common/HIS/HTab/HTab.vue +443 -443
  86. package/src/base-client/components/common/HIS/demo.vue +61 -61
  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/Upload.vue +334 -334
  108. package/src/base-client/components/common/Upload/index.js +3 -3
  109. package/src/base-client/components/common/XAddForm/XAddForm.vue +113 -113
  110. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  111. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +304 -304
  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/index.js +3 -3
  119. package/src/base-client/components/common/XButtons/index.md +61 -61
  120. package/src/base-client/components/common/XCalendar/XCalendar.vue +4 -4
  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/XCollapse/XCollapse.vue +833 -833
  125. package/src/base-client/components/common/XDataCard/index.js +3 -3
  126. package/src/base-client/components/common/XDataCard/index.md +1 -1
  127. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  128. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  129. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  130. package/src/base-client/components/common/XDatePicker/demo.vue +153 -153
  131. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  132. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  133. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +238 -238
  134. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  135. package/src/base-client/components/common/XForm/XStatusButton.vue +54 -54
  136. package/src/base-client/components/common/XForm/index.md +178 -178
  137. package/src/base-client/components/common/XForm/itemComponent/XClickChangeBtn/index.vue +49 -49
  138. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  139. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  140. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  141. package/src/base-client/components/common/XFormTable/index.md +92 -92
  142. package/src/base-client/components/common/XLabelSelect/XLabelSelect.vue +110 -110
  143. package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
  144. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  145. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  146. package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
  147. package/src/base-client/components/common/XPrint/PrintHtml.js +98 -98
  148. package/src/base-client/components/common/XPrint/css/hiPrintCss.js +359 -359
  149. package/src/base-client/components/common/XPrint/css/lodopCss.js +26 -26
  150. package/src/base-client/components/common/XPrint/css/print-lock.css +351 -351
  151. package/src/base-client/components/common/XPrint/index.vue +97 -97
  152. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  153. package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
  154. package/src/base-client/components/common/XReport/index.js +3 -3
  155. package/src/base-client/components/common/XReport/print.js +186 -186
  156. package/src/base-client/components/common/XReportDrawer/index.js +3 -3
  157. package/src/base-client/components/common/XReportGrid/index.js +3 -3
  158. package/src/base-client/components/common/XReportGrid/index.md +44 -44
  159. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  160. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  161. package/src/base-client/components/common/XReportSlot/index.md +48 -48
  162. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
  163. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
  164. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
  165. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  166. package/src/base-client/components/common/XStepView/index.js +3 -3
  167. package/src/base-client/components/common/XStepView/index.md +31 -31
  168. package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
  169. package/src/base-client/components/common/XTab/index.js +3 -3
  170. package/src/base-client/components/common/XTable/CustomFuncCel.vue +51 -51
  171. package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
  172. package/src/base-client/components/common/XTable/index.md +255 -255
  173. package/src/base-client/components/common/XTagGroup/index.vue +52 -52
  174. package/src/base-client/components/common/XTimeline/XTimeline.vue +477 -477
  175. package/src/base-client/components/common/XTree/XTree.vue +424 -424
  176. package/src/base-client/components/common/XTree/index.js +3 -3
  177. package/src/base-client/components/common/XTree/index.md +36 -36
  178. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
  179. package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
  180. package/src/base-client/components/common/richTextModal/index.vue +56 -56
  181. package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
  182. package/src/base-client/components/his/XCharge/XChargeDemo.vue +145 -145
  183. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +705 -705
  184. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  185. package/src/base-client/components/his/XList/XList.vue +938 -829
  186. package/src/base-client/components/his/XRadio/XRadio.vue +469 -469
  187. package/src/base-client/components/his/XSimpleTable/XSimpleTable.vue +159 -159
  188. package/src/base-client/components/his/XTimeSelect/XTimeSelect.vue +354 -383
  189. package/src/base-client/components/his/XTitle/XTitle.vue +288 -274
  190. package/src/base-client/components/his/XTreeRows/XTreeRows.vue +341 -341
  191. package/src/base-client/components/his/threeTestOrders/editor.vue +113 -113
  192. package/src/base-client/components/index.js +51 -51
  193. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  194. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  195. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  196. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  197. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  198. package/src/base-client/plugins/Config.js +19 -19
  199. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  200. package/src/base-client/plugins/Recording.js +258 -258
  201. package/src/base-client/plugins/index.js +23 -23
  202. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  203. package/src/components/Charts/Bar.vue +62 -62
  204. package/src/components/Charts/ChartCard.vue +134 -134
  205. package/src/components/Charts/Liquid.vue +67 -67
  206. package/src/components/Charts/MiniArea.vue +39 -39
  207. package/src/components/Charts/MiniBar.vue +39 -39
  208. package/src/components/Charts/MiniProgress.vue +75 -75
  209. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  210. package/src/components/Charts/Radar.vue +68 -68
  211. package/src/components/Charts/RankList.vue +77 -77
  212. package/src/components/Charts/TagCloud.vue +113 -113
  213. package/src/components/Charts/TransferBar.vue +64 -64
  214. package/src/components/Charts/Trend.vue +82 -82
  215. package/src/components/Charts/chart.less +12 -12
  216. package/src/components/Charts/smooth.area.less +13 -13
  217. package/src/components/CodeMirror/inedx.vue +118 -118
  218. package/src/components/CodeMirror/setting.js +40 -40
  219. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  220. package/src/components/NumberInfo/index.js +3 -3
  221. package/src/components/NumberInfo/index.less +54 -54
  222. package/src/components/NumberInfo/index.md +43 -43
  223. package/src/components/card/ChartCard.vue +79 -79
  224. package/src/components/chart/Bar.vue +60 -60
  225. package/src/components/chart/MiniArea.vue +67 -67
  226. package/src/components/chart/MiniBar.vue +59 -59
  227. package/src/components/chart/MiniProgress.vue +57 -57
  228. package/src/components/chart/Radar.vue +80 -80
  229. package/src/components/chart/RankingList.vue +60 -60
  230. package/src/components/chart/Trend.vue +79 -79
  231. package/src/components/chart/index.less +9 -9
  232. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  233. package/src/components/checkbox/ImgCheckbox.vue +117 -117
  234. package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
  235. package/src/components/checkbox/index.js +9 -9
  236. package/src/components/exception/ExceptionPage.vue +70 -70
  237. package/src/components/g2Charts/constants.js +202 -202
  238. package/src/components/g2Charts/demo.vue +808 -808
  239. package/src/components/g2Charts/designer.vue +228 -228
  240. package/src/components/g2Charts/designerBaseConfig.vue +61 -61
  241. package/src/components/g2Charts/designerDataConfig.vue +259 -259
  242. package/src/components/g2Charts/designerStyleConfig.vue +16 -16
  243. package/src/components/g2Charts/index.vue +397 -397
  244. package/src/components/index.js +36 -36
  245. package/src/components/input/IInput.vue +66 -66
  246. package/src/components/menu/SideMenu.vue +75 -75
  247. package/src/components/menu/menu.js +273 -273
  248. package/src/components/setting/Setting.vue +234 -234
  249. package/src/components/tool/AStepItem.vue +60 -60
  250. package/src/config/CreateQueryConfig.js +325 -325
  251. package/src/config/default/antd.config.js +89 -89
  252. package/src/config/default/setting.config.js +55 -55
  253. package/src/font-style/font.css +60 -60
  254. package/src/layouts/CommonLayout.vue +56 -56
  255. package/src/layouts/PageLayout.vue +151 -151
  256. package/src/layouts/SinglePageView.vue +136 -136
  257. package/src/layouts/header/AdminHeader.vue +132 -132
  258. package/src/layouts/header/HeaderNotice.vue +177 -177
  259. package/src/layouts/header/InstitutionDetail.vue +181 -181
  260. package/src/layouts/tabs/TabsHead.vue +189 -189
  261. package/src/lib.js +1 -1
  262. package/src/mock/extend/index.js +84 -84
  263. package/src/mock/goods/index.js +108 -108
  264. package/src/pages/DefaultExample/index.vue +77 -77
  265. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  266. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  267. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  268. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  269. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  270. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  271. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  272. package/src/pages/DynamicStatistics/index.vue +282 -282
  273. package/src/pages/Example/childIndex.vue +15 -15
  274. package/src/pages/Example/index.vue +30 -30
  275. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  276. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  277. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  278. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  279. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  280. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  281. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  282. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  283. package/src/pages/Recording/index.vue +77 -77
  284. package/src/pages/ServiceReview/index.vue +284 -284
  285. package/src/pages/SubExample/index.vue +26 -26
  286. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  287. package/src/pages/XReportView/index.vue +64 -64
  288. package/src/pages/XTreeOneProExample/index.vue +67 -67
  289. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  290. package/src/pages/login/Login.vue +379 -379
  291. package/src/pages/login/LoginV3.vue +389 -389
  292. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  293. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  294. package/src/pages/report/ReportTable.js +124 -124
  295. package/src/pages/resourceManage/orgListManage.vue +98 -98
  296. package/src/pages/system/dictionary/index.vue +44 -44
  297. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  298. package/src/pages/system/monitor/operLog/index.vue +37 -37
  299. package/src/pages/system/settings/modifyPassword.vue +117 -117
  300. package/src/pages/system/ticket/index.vue +480 -480
  301. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  302. package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
  303. package/src/pages/userInfoDetailManage/ExceptionRecordQuery/index.vue +45 -45
  304. package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
  305. package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
  306. package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
  307. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
  308. package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
  309. package/src/plugins/EventLogPlugin.js +33 -33
  310. package/src/plugins/FindParentsData.js +17 -17
  311. package/src/services/DataModel.js +30 -30
  312. package/src/services/LodopFuncs.js +137 -137
  313. package/src/services/api/TicketDetailsViewApi.js +46 -46
  314. package/src/services/api/cas.js +79 -79
  315. package/src/services/api/entity.js +18 -18
  316. package/src/services/api/index.js +17 -17
  317. package/src/store/modules/account.js +115 -115
  318. package/src/store/modules/index.js +5 -5
  319. package/src/store/modules/lowCode.js +33 -33
  320. package/src/store/modules/setting.js +119 -119
  321. package/src/theme/default/style.less +58 -58
  322. package/src/utils/authority-utils.js +85 -85
  323. package/src/utils/errorCode.js +6 -6
  324. package/src/utils/formatter.js +74 -74
  325. package/src/utils/htmlToPDF.js +108 -108
  326. package/src/utils/htmlToPDFApi.js +5 -5
  327. package/src/utils/login.js +188 -188
  328. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  329. package/src/utils/lowcode/lowcodeLog.js +29 -29
  330. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  331. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  332. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  333. package/src/utils/map-utils.js +47 -47
  334. package/src/utils/reg.js +95 -95
  335. package/src/utils/runEvalFunction.js +14 -14
  336. package/src/utils/theme-color-replacer-extend.js +92 -92
  337. package/src/utils/util.js +329 -329
  338. package/src/utils/waterMark.js +31 -31
  339. package/src-base-client/components/common/HIS/HForm/HForm.vue +347 -0
  340. package/src-base-client/components/common/XCollapse/XCollapse.vue +0 -0
  341. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
package/CLAUDE.md CHANGED
@@ -1,98 +1,98 @@
1
- # CLAUDE.md
2
-
3
- This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
-
5
- ## 常用开发命令
6
-
7
- ### 开发服务器
8
- - `npm run serve` - 在端口8020启动开发服务器(Windows需要SET命令设置NODE_OPTIONS)
9
- - `npm run mac-serve` - 在macOS/Linux启动开发服务器
10
- - 支持多环境启动命令:gaslink、revenue、liuli、scada、iot、his、runtime、message、apply
11
-
12
- ### 构建命令
13
- - `npm run build` - 生产环境构建
14
- - `npm run build:preview` - 预览环境构建
15
-
16
- ### 测试
17
- - `npm test` - 运行Jest测试
18
- - `npm run test:unit` - 运行Vue CLI单元测试
19
-
20
- ### 代码质量
21
- - `npm run lint` - 运行ESLint并自动修复问题
22
- - `npm run lint:nofix` - 运行ESLint但不自动修复
23
-
24
- ## 项目架构
25
-
26
- ### Vue 2.7 + Ant Design Vue应用
27
- 这是一个使用Vue 2.7和Ant Design Vue 1.7.8作为UI框架的项目。项目采用模块化组件架构,包含自定义的base-client基础组件库。
28
-
29
- ### 核心架构组件
30
-
31
- #### 基础客户端系统 (`src/base-client/`)
32
- - **Components**: 可复用的UI组件,使用X前缀命名(XForm、XTable、XCard等)
33
- - **Plugins**: 全局Vue插件,包括认证、i18n扩展和页面管理
34
- - **全局注册**: base-client中的组件会全局注册,整个应用可用
35
-
36
- #### 组件库结构
37
- - **X组件**: 核心表单和表格组件(XForm、XTable、XFormTable),通过JSON配置动态生成UI
38
- - **布局组件**: XPageView用于复杂页面布局,支持基于行的渲染
39
- - **业务组件**: 针对工单、系统管理、HIS(医院信息系统)等特定领域的组件
40
-
41
- #### 配置驱动开发
42
- - 组件使用JSON配置动态生成表单、表格和布局
43
- - `src/config/`中的配置文件定义组件行为和系统设置
44
- - 支持多环境配置的特定部署模式
45
-
46
- #### 模块系统
47
- - **Pages**: 按功能组织的应用页面
48
- - **Services**: API层,包含数据模型和服务抽象
49
- - **Utils**: 共享工具,包括加密、格式化和低代码辅助工具
50
- - **Store**: Vuex状态管理,包含账户、设置和低代码模块
51
-
52
- #### 低代码平台集成
53
- - 内置低代码编辑器和渲染器组件
54
- - 低代码环境的自定义组件注册系统
55
- - 表达式求值的逻辑运行器系统
56
-
57
- ### 开发模式
58
-
59
- #### 组件开发
60
- - 遵循现有X组件模式保持一致性
61
- - 使用mixins共享表单验证逻辑
62
- - 使用XFormCol栅格系统实现响应式设计
63
-
64
- #### API集成
65
- - 使用`src/services/apiService.js`进行API调用
66
- - 遵循DataModel模式进行数据转换
67
- - 使用axios拦截器实现正确的错误处理
68
-
69
- #### 样式开发
70
- - 使用Less预处理器,主题变量在`src/theme/`中
71
- - Ant Design Vue主题系统,支持动态颜色替换
72
- - 组件特定样式与组件共同放置
73
-
74
- #### 测试策略
75
- - Jest进行单元测试
76
- - Vue Test Utils进行组件测试
77
- - 测试文件位于`test/`和`tests/unit/`
78
-
79
- ### 环境配置
80
- 项目通过Vue CLI模式支持多个部署环境:
81
- - gaslink、revenue、liuli、scada、iot、his、runtime、message、apply
82
- - 每个模式在vue.config.js中有特定的代理配置
83
- - 环境变量控制API端点和功能标志
84
-
85
- ### 代码风格指南(来自.cursorrules)
86
- - 使用Vue 2.7组合API和setup语法糖,避免选项API(除非修改现有代码)
87
- - 目录名使用kebab-case(如components/auth-wizard)
88
- - 组件名使用PascalCase(如AuthWizard.vue)
89
- - 可组合函数使用camelCase(如useAuthState.js)
90
- - 方法和计算属性使用箭头函数
91
- - 避免条件语句中不必要的花括号,使用简洁语法
92
- - 模块化和迭代式代码,避免重复
93
-
94
- ### 重要配置说明
95
- - **NODE_OPTIONS**: Windows环境需要设置`--openssl-legacy-provider`解决OpenSSL兼容性问题
96
- - **Webpack别名**: 引入项目需添加别名配置:`@vue2-client` → `node_modules/vue2-client/src`
97
- - **端口**: 开发服务器默认运行在8020端口
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## 常用开发命令
6
+
7
+ ### 开发服务器
8
+ - `npm run serve` - 在端口8020启动开发服务器(Windows需要SET命令设置NODE_OPTIONS)
9
+ - `npm run mac-serve` - 在macOS/Linux启动开发服务器
10
+ - 支持多环境启动命令:gaslink、revenue、liuli、scada、iot、his、runtime、message、apply
11
+
12
+ ### 构建命令
13
+ - `npm run build` - 生产环境构建
14
+ - `npm run build:preview` - 预览环境构建
15
+
16
+ ### 测试
17
+ - `npm test` - 运行Jest测试
18
+ - `npm run test:unit` - 运行Vue CLI单元测试
19
+
20
+ ### 代码质量
21
+ - `npm run lint` - 运行ESLint并自动修复问题
22
+ - `npm run lint:nofix` - 运行ESLint但不自动修复
23
+
24
+ ## 项目架构
25
+
26
+ ### Vue 2.7 + Ant Design Vue应用
27
+ 这是一个使用Vue 2.7和Ant Design Vue 1.7.8作为UI框架的项目。项目采用模块化组件架构,包含自定义的base-client基础组件库。
28
+
29
+ ### 核心架构组件
30
+
31
+ #### 基础客户端系统 (`src/base-client/`)
32
+ - **Components**: 可复用的UI组件,使用X前缀命名(XForm、XTable、XCard等)
33
+ - **Plugins**: 全局Vue插件,包括认证、i18n扩展和页面管理
34
+ - **全局注册**: base-client中的组件会全局注册,整个应用可用
35
+
36
+ #### 组件库结构
37
+ - **X组件**: 核心表单和表格组件(XForm、XTable、XFormTable),通过JSON配置动态生成UI
38
+ - **布局组件**: XPageView用于复杂页面布局,支持基于行的渲染
39
+ - **业务组件**: 针对工单、系统管理、HIS(医院信息系统)等特定领域的组件
40
+
41
+ #### 配置驱动开发
42
+ - 组件使用JSON配置动态生成表单、表格和布局
43
+ - `src/config/`中的配置文件定义组件行为和系统设置
44
+ - 支持多环境配置的特定部署模式
45
+
46
+ #### 模块系统
47
+ - **Pages**: 按功能组织的应用页面
48
+ - **Services**: API层,包含数据模型和服务抽象
49
+ - **Utils**: 共享工具,包括加密、格式化和低代码辅助工具
50
+ - **Store**: Vuex状态管理,包含账户、设置和低代码模块
51
+
52
+ #### 低代码平台集成
53
+ - 内置低代码编辑器和渲染器组件
54
+ - 低代码环境的自定义组件注册系统
55
+ - 表达式求值的逻辑运行器系统
56
+
57
+ ### 开发模式
58
+
59
+ #### 组件开发
60
+ - 遵循现有X组件模式保持一致性
61
+ - 使用mixins共享表单验证逻辑
62
+ - 使用XFormCol栅格系统实现响应式设计
63
+
64
+ #### API集成
65
+ - 使用`src/services/apiService.js`进行API调用
66
+ - 遵循DataModel模式进行数据转换
67
+ - 使用axios拦截器实现正确的错误处理
68
+
69
+ #### 样式开发
70
+ - 使用Less预处理器,主题变量在`src/theme/`中
71
+ - Ant Design Vue主题系统,支持动态颜色替换
72
+ - 组件特定样式与组件共同放置
73
+
74
+ #### 测试策略
75
+ - Jest进行单元测试
76
+ - Vue Test Utils进行组件测试
77
+ - 测试文件位于`test/`和`tests/unit/`
78
+
79
+ ### 环境配置
80
+ 项目通过Vue CLI模式支持多个部署环境:
81
+ - gaslink、revenue、liuli、scada、iot、his、runtime、message、apply
82
+ - 每个模式在vue.config.js中有特定的代理配置
83
+ - 环境变量控制API端点和功能标志
84
+
85
+ ### 代码风格指南(来自.cursorrules)
86
+ - 使用Vue 2.7组合API和setup语法糖,避免选项API(除非修改现有代码)
87
+ - 目录名使用kebab-case(如components/auth-wizard)
88
+ - 组件名使用PascalCase(如AuthWizard.vue)
89
+ - 可组合函数使用camelCase(如useAuthState.js)
90
+ - 方法和计算属性使用箭头函数
91
+ - 避免条件语句中不必要的花括号,使用简洁语法
92
+ - 模块化和迭代式代码,避免重复
93
+
94
+ ### 重要配置说明
95
+ - **NODE_OPTIONS**: Windows环境需要设置`--openssl-legacy-provider`解决OpenSSL兼容性问题
96
+ - **Webpack别名**: 引入项目需添加别名配置:`@vue2-client` → `node_modules/vue2-client/src`
97
+ - **端口**: 开发服务器默认运行在8020端口
98
98
  - **ESLint**: 开发模式默认禁用ESLint(--no-eslint),使用`npm run lint`单独执行检查
package/Components.md CHANGED
@@ -1,60 +1,60 @@
1
- # vue2基础组件库组件介绍
2
-
3
- ## XAddForm
4
-
5
- 基于XAddNativeForm二次封装的动态表单的Modal形式
6
-
7
- [使用文档](src/base-client/components/common/XAddForm/index.md)
8
-
9
- ## XAddNativeForm
10
-
11
- 通过JSON配置动态生成的数据保存表单
12
-
13
- [使用文档](src/base-client/components/common/XAddNativeForm/index.md)
14
-
15
- ## XBadge
16
-
17
- 对antdv的badge组件进行重封装
18
-
19
- [使用文档](src/base-client/components/common/XBadge/index.md)
20
-
21
- ## XCard
22
-
23
- 通用数据加载状态管理容器
24
-
25
- 提供一个可以根据数据加载状态显示不同内容的通用容器
26
- 当loadState为loading时,显示骨架屏(加载界面)
27
- 当loadState为success时,显示容器内容
28
- 当loadState为error时,显示点击重新加载数据的提示界面
29
-
30
- [使用文档](src/base-client/components/common/XCard/index.md)
31
-
32
- ## XForm
33
-
34
- 通过JSON配置动态生成的数据筛选查询表单
35
-
36
- [使用文档](src/base-client/components/common/XForm/index.md)
37
-
38
- ## XTable
39
-
40
- 通过JSON配置动态生成的数据表格
41
-
42
- [使用文档](src/base-client/components/common/XTable/index.md)
43
-
44
- ## XFormCol
45
-
46
- 适用于动态表单的可以自适应各种分辨率设备的栅格组件封装
47
-
48
- [使用文档](src/base-client/components/common/XFormCol/index.md)
49
-
50
- ## XFormTable
51
-
52
- 对XAddForm,XForm和XTable组件的二次封装,实现通过JSON配置动态生成一个完整的实体操作页面
53
-
54
- [使用文档](src/base-client/components/common/XFormTable/index.md)
55
-
56
- ## XImportExcel
57
-
58
- 通用的导入excel组件
59
-
60
- [使用文档](src/base-client/components/common/XImportExcel/index.md)
1
+ # vue2基础组件库组件介绍
2
+
3
+ ## XAddForm
4
+
5
+ 基于XAddNativeForm二次封装的动态表单的Modal形式
6
+
7
+ [使用文档](src/base-client/components/common/XAddForm/index.md)
8
+
9
+ ## XAddNativeForm
10
+
11
+ 通过JSON配置动态生成的数据保存表单
12
+
13
+ [使用文档](src/base-client/components/common/XAddNativeForm/index.md)
14
+
15
+ ## XBadge
16
+
17
+ 对antdv的badge组件进行重封装
18
+
19
+ [使用文档](src/base-client/components/common/XBadge/index.md)
20
+
21
+ ## XCard
22
+
23
+ 通用数据加载状态管理容器
24
+
25
+ 提供一个可以根据数据加载状态显示不同内容的通用容器
26
+ 当loadState为loading时,显示骨架屏(加载界面)
27
+ 当loadState为success时,显示容器内容
28
+ 当loadState为error时,显示点击重新加载数据的提示界面
29
+
30
+ [使用文档](src/base-client/components/common/XCard/index.md)
31
+
32
+ ## XForm
33
+
34
+ 通过JSON配置动态生成的数据筛选查询表单
35
+
36
+ [使用文档](src/base-client/components/common/XForm/index.md)
37
+
38
+ ## XTable
39
+
40
+ 通过JSON配置动态生成的数据表格
41
+
42
+ [使用文档](src/base-client/components/common/XTable/index.md)
43
+
44
+ ## XFormCol
45
+
46
+ 适用于动态表单的可以自适应各种分辨率设备的栅格组件封装
47
+
48
+ [使用文档](src/base-client/components/common/XFormCol/index.md)
49
+
50
+ ## XFormTable
51
+
52
+ 对XAddForm,XForm和XTable组件的二次封装,实现通过JSON配置动态生成一个完整的实体操作页面
53
+
54
+ [使用文档](src/base-client/components/common/XFormTable/index.md)
55
+
56
+ ## XImportExcel
57
+
58
+ 通用的导入excel组件
59
+
60
+ [使用文档](src/base-client/components/common/XImportExcel/index.md)
@@ -1,155 +1,155 @@
1
- # 奥枫低代码平台
2
-
3
- > 奥枫低代码平台是一个前端低代码框架,它使用JSON配置来生成页面
4
-
5
-
6
-
7
- ## 概念
8
-
9
- ### 配置与组件
10
-
11
- #### 结构
12
-
13
- > 一个配置的结构是这样的
14
- >
15
- > ```json
16
- > {
17
- > "page": [
18
- > {
19
- > "id": "page_tvV9Ci",
20
- > "type": "page",
21
- > "title": "11",
22
- > "body": [
23
- > {
24
- > "id": "page_tvV9Ci_0",
25
- > "config": {
26
- > "align": "top",
27
- > "gutter": 0,
28
- > "justify": "start"
29
- > },
30
- > "type": "row",
31
- > "body": [
32
- > {
33
- > "type": "XFormTable",
34
- > "selected": false,
35
- > "span": 24,
36
- > "id": "XFormTable_76UItw",
37
- > "props": {
38
- > "queryParamsName": "",
39
- > "serviceName": ""
40
- > },
41
- > "selfEvent": [
42
- > "action"
43
- > ]
44
- > }
45
- > ]
46
- > }
47
- > ]
48
- > }
49
- > ]
50
- > }
51
- > ```
52
- > page下的每一个对象,表示一个`页面容器`
53
- >
54
- > body中的每一个对象,表示一`行`
55
- >
56
- > 每行中body下的每个元素,表示一个`组件`
57
-
58
- > 组件的完整配置是这样的
59
- >
60
- > ```json
61
- > {
62
- > "type": "xx组件",
63
- > "span": 12,
64
- > "id": "xx组件_001",
65
- > "selected": false,
66
- > "props": {
67
- > "值1": "111",
68
- > "值2": "222",
69
- > ...
70
- > },
71
- > "selfEvent": [
72
- > "action",
73
- > ...
74
- > ],
75
- > "onEvent": {
76
- > "action": [
77
- > {
78
- > "emitType": "action",
79
- > "eventType": "changeValue",
80
- > "target": "组件_00x",
81
- > "targetKey": "data"
82
- > },
83
- > {...}
84
- > ]
85
- > }
86
- > }
87
- > ```
88
- >
89
- > `type`定义了组件的类型
90
- >
91
- > `span`定义了组件的宽度
92
- >
93
- > `selected`定义了组件当前是否被选中
94
- >
95
- > `id`表示组件的唯一标识
96
- >
97
- > `props`中定义的是组件可以被改变的值
98
- >
99
- > `selfEvent`定义了组件可以发出哪些事件交给低代码平台处理
100
- >
101
- > `onEvent`表示每一个事件的具体定义
102
- >
103
- > `onEvent`中的每一个对象的key代表了是针对哪种事件的处理
104
-
105
- > 在低代码平台中,最小的单位是`组件`,最大的单位是`页面容器`
106
-
107
-
108
-
109
- #### 页面容器
110
-
111
- > 一个`页面容器`可以是`页面`,`弹框`,`抽屉`等
112
- >
113
- > `页面容器`是所有`组件`的容器,`组件`组成了`行`,`行`组成了`页面`
114
-
115
-
116
-
117
- #### 组件
118
-
119
- > `组件`是低代码平台的最小单位
120
- >
121
- > 一个组件是某种功能的封装,比如XFormTable是为了展示CRUD表单,XTree是为了展示树型结构
122
-
123
-
124
-
125
- #### 组件的拆分
126
-
127
- > 如同栅格化布局一样,每一行套每一列
128
- >
129
- > 某个列又可被看做一个整体,在其下继续拆分为多行,每行又包含多列
130
-
131
- > 比如一个页面,左侧是导航栏,右侧是内容栏
132
- >
133
- > 这就是第一行,第一行分为两列,左侧列是导航栏,右侧列是内容栏
134
- >
135
- > 内容栏又被分为了两行
136
- >
137
- > 第一行是标题,第二行是主要内容
138
-
139
-
140
-
141
- ### 事件
142
-
143
- > 在组件中,会因为各种各样的原因,修改一些状态,比如点击搜索,切换标签
144
- >
145
- > 这些改动,要通过`事件`的形式,向外层触发,来通知其他组件进行联动。比如在树组件中切换了标签,根据不同的标签在CRUD表单中渲染不同的内容
146
- >
147
- > 这个时候我们就需要对触发改动的`组件`添加`事件`,比如在XFormTable中点击详情,我们希望打开一个抽屉,我们就需要为XFormTable添加一个点击详情的事件
148
-
149
-
150
-
151
- ### 行为
152
-
153
- > 行为是`组件`自身内部进行的一系列变动。比如其他组件触发了某个`事件`,这个`组件`需要对这个`事件`进行响应,并在自身内部进行一系列的更新。这就是一种行为
154
- >
155
- > 还是刚才的例子在XFormTable中点击详情,我们希望打开一个抽屉。那抽屉改变自身的显隐,就是响应点击详情`事件`的一种`行为`
1
+ # 奥枫低代码平台
2
+
3
+ > 奥枫低代码平台是一个前端低代码框架,它使用JSON配置来生成页面
4
+
5
+
6
+
7
+ ## 概念
8
+
9
+ ### 配置与组件
10
+
11
+ #### 结构
12
+
13
+ > 一个配置的结构是这样的
14
+ >
15
+ > ```json
16
+ > {
17
+ > "page": [
18
+ > {
19
+ > "id": "page_tvV9Ci",
20
+ > "type": "page",
21
+ > "title": "11",
22
+ > "body": [
23
+ > {
24
+ > "id": "page_tvV9Ci_0",
25
+ > "config": {
26
+ > "align": "top",
27
+ > "gutter": 0,
28
+ > "justify": "start"
29
+ > },
30
+ > "type": "row",
31
+ > "body": [
32
+ > {
33
+ > "type": "XFormTable",
34
+ > "selected": false,
35
+ > "span": 24,
36
+ > "id": "XFormTable_76UItw",
37
+ > "props": {
38
+ > "queryParamsName": "",
39
+ > "serviceName": ""
40
+ > },
41
+ > "selfEvent": [
42
+ > "action"
43
+ > ]
44
+ > }
45
+ > ]
46
+ > }
47
+ > ]
48
+ > }
49
+ > ]
50
+ > }
51
+ > ```
52
+ > page下的每一个对象,表示一个`页面容器`
53
+ >
54
+ > body中的每一个对象,表示一`行`
55
+ >
56
+ > 每行中body下的每个元素,表示一个`组件`
57
+
58
+ > 组件的完整配置是这样的
59
+ >
60
+ > ```json
61
+ > {
62
+ > "type": "xx组件",
63
+ > "span": 12,
64
+ > "id": "xx组件_001",
65
+ > "selected": false,
66
+ > "props": {
67
+ > "值1": "111",
68
+ > "值2": "222",
69
+ > ...
70
+ > },
71
+ > "selfEvent": [
72
+ > "action",
73
+ > ...
74
+ > ],
75
+ > "onEvent": {
76
+ > "action": [
77
+ > {
78
+ > "emitType": "action",
79
+ > "eventType": "changeValue",
80
+ > "target": "组件_00x",
81
+ > "targetKey": "data"
82
+ > },
83
+ > {...}
84
+ > ]
85
+ > }
86
+ > }
87
+ > ```
88
+ >
89
+ > `type`定义了组件的类型
90
+ >
91
+ > `span`定义了组件的宽度
92
+ >
93
+ > `selected`定义了组件当前是否被选中
94
+ >
95
+ > `id`表示组件的唯一标识
96
+ >
97
+ > `props`中定义的是组件可以被改变的值
98
+ >
99
+ > `selfEvent`定义了组件可以发出哪些事件交给低代码平台处理
100
+ >
101
+ > `onEvent`表示每一个事件的具体定义
102
+ >
103
+ > `onEvent`中的每一个对象的key代表了是针对哪种事件的处理
104
+
105
+ > 在低代码平台中,最小的单位是`组件`,最大的单位是`页面容器`
106
+
107
+
108
+
109
+ #### 页面容器
110
+
111
+ > 一个`页面容器`可以是`页面`,`弹框`,`抽屉`等
112
+ >
113
+ > `页面容器`是所有`组件`的容器,`组件`组成了`行`,`行`组成了`页面`
114
+
115
+
116
+
117
+ #### 组件
118
+
119
+ > `组件`是低代码平台的最小单位
120
+ >
121
+ > 一个组件是某种功能的封装,比如XFormTable是为了展示CRUD表单,XTree是为了展示树型结构
122
+
123
+
124
+
125
+ #### 组件的拆分
126
+
127
+ > 如同栅格化布局一样,每一行套每一列
128
+ >
129
+ > 某个列又可被看做一个整体,在其下继续拆分为多行,每行又包含多列
130
+
131
+ > 比如一个页面,左侧是导航栏,右侧是内容栏
132
+ >
133
+ > 这就是第一行,第一行分为两列,左侧列是导航栏,右侧列是内容栏
134
+ >
135
+ > 内容栏又被分为了两行
136
+ >
137
+ > 第一行是标题,第二行是主要内容
138
+
139
+
140
+
141
+ ### 事件
142
+
143
+ > 在组件中,会因为各种各样的原因,修改一些状态,比如点击搜索,切换标签
144
+ >
145
+ > 这些改动,要通过`事件`的形式,向外层触发,来通知其他组件进行联动。比如在树组件中切换了标签,根据不同的标签在CRUD表单中渲染不同的内容
146
+ >
147
+ > 这个时候我们就需要对触发改动的`组件`添加`事件`,比如在XFormTable中点击详情,我们希望打开一个抽屉,我们就需要为XFormTable添加一个点击详情的事件
148
+
149
+
150
+
151
+ ### 行为
152
+
153
+ > 行为是`组件`自身内部进行的一系列变动。比如其他组件触发了某个`事件`,这个`组件`需要对这个`事件`进行响应,并在自身内部进行一系列的更新。这就是一种行为
154
+ >
155
+ > 还是刚才的例子在XFormTable中点击详情,我们希望打开一个抽屉。那抽屉改变自身的显隐,就是响应点击详情`事件`的一种`行为`