vue2-client 1.12.28 → 1.12.30

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 (391) 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 -19
  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 +1 -0
  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 +108 -108
  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/XCollapse/XCollapse.vue +154 -154
  125. package/src/base-client/components/common/XDataCard/XDataCard.vue +568 -568
  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/XStatusButton.vue +54 -54
  139. package/src/base-client/components/common/XForm/XTreeSelect.vue +264 -264
  140. package/src/base-client/components/common/XForm/index.md +178 -178
  141. package/src/base-client/components/common/XForm/itemComponent/XClickChangeBtn/index.vue +49 -49
  142. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  143. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  144. package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +72 -72
  145. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  146. package/src/base-client/components/common/XFormTable/demo.vue +9 -0
  147. package/src/base-client/components/common/XFormTable/index.md +92 -92
  148. package/src/base-client/components/common/XImportExcel/XImportExcel.vue +167 -167
  149. package/src/base-client/components/common/XLabelSelect/XLabelSelect.vue +110 -110
  150. package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
  151. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  152. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  153. package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
  154. package/src/base-client/components/common/XPrint/PrintBill.vue +302 -302
  155. package/src/base-client/components/common/XPrint/PrintHtml.js +98 -98
  156. package/src/base-client/components/common/XPrint/css/hiPrintCss.js +359 -359
  157. package/src/base-client/components/common/XPrint/css/lodopCss.js +26 -26
  158. package/src/base-client/components/common/XPrint/css/print-lock.css +351 -351
  159. package/src/base-client/components/common/XPrint/index.vue +97 -97
  160. package/src/base-client/components/common/XReport/XReport.vue +892 -892
  161. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  162. package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
  163. package/src/base-client/components/common/XReport/index.js +3 -3
  164. package/src/base-client/components/common/XReport/index.md +44 -44
  165. package/src/base-client/components/common/XReport/print.js +186 -186
  166. package/src/base-client/components/common/XReportDrawer/index.js +3 -3
  167. package/src/base-client/components/common/XReportGrid/XReport.vue +218 -163
  168. package/src/base-client/components/common/XReportGrid/XReportDesign.vue +68 -5
  169. package/src/base-client/components/common/XReportGrid/XReportTrGroup.vue +105 -126
  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/XTable.vue +3 -0
  186. package/src/base-client/components/common/XTable/XTableWrapper.vue +1 -1
  187. package/src/base-client/components/common/XTable/index.md +255 -255
  188. package/src/base-client/components/common/XTagGroup/index.vue +52 -52
  189. package/src/base-client/components/common/XTree/XTree.vue +424 -424
  190. package/src/base-client/components/common/XTree/index.js +3 -3
  191. package/src/base-client/components/common/XTree/index.md +36 -36
  192. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
  193. package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
  194. package/src/base-client/components/common/richTextModal/index.vue +56 -56
  195. package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
  196. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +359 -359
  197. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  198. package/src/base-client/components/index.js +51 -51
  199. package/src/base-client/components/layout/XPageView/XErrorView.vue +11 -11
  200. package/src/base-client/components/layout/XPageView/XPageView.vue +155 -155
  201. package/src/base-client/components/layout/XPageView/index.js +3 -3
  202. package/src/base-client/components/layout/XPageView/index.md +38 -38
  203. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  204. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  205. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  206. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  207. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  208. package/src/base-client/plugins/AppData.js +121 -121
  209. package/src/base-client/plugins/Config.js +19 -19
  210. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  211. package/src/base-client/plugins/Recording.js +258 -258
  212. package/src/base-client/plugins/index.js +23 -23
  213. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  214. package/src/bootstrap.js +42 -42
  215. package/src/components/Charts/Bar.vue +62 -62
  216. package/src/components/Charts/ChartCard.vue +134 -134
  217. package/src/components/Charts/Liquid.vue +67 -67
  218. package/src/components/Charts/MiniArea.vue +39 -39
  219. package/src/components/Charts/MiniBar.vue +39 -39
  220. package/src/components/Charts/MiniProgress.vue +75 -75
  221. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  222. package/src/components/Charts/Radar.vue +68 -68
  223. package/src/components/Charts/RankList.vue +77 -77
  224. package/src/components/Charts/TagCloud.vue +113 -113
  225. package/src/components/Charts/TransferBar.vue +64 -64
  226. package/src/components/Charts/Trend.vue +82 -82
  227. package/src/components/Charts/chart.less +12 -12
  228. package/src/components/Charts/smooth.area.less +13 -13
  229. package/src/components/CodeMirror/inedx.vue +118 -118
  230. package/src/components/CodeMirror/setting.js +40 -40
  231. package/src/components/FilePreview/FilePreview.vue +166 -166
  232. package/src/components/HeightScanner/index.vue +571 -571
  233. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  234. package/src/components/NumberInfo/index.js +3 -3
  235. package/src/components/NumberInfo/index.less +54 -54
  236. package/src/components/NumberInfo/index.md +43 -43
  237. package/src/components/card/ChartCard.vue +79 -79
  238. package/src/components/chart/Bar.vue +60 -60
  239. package/src/components/chart/MiniArea.vue +67 -67
  240. package/src/components/chart/MiniBar.vue +59 -59
  241. package/src/components/chart/MiniProgress.vue +57 -57
  242. package/src/components/chart/Radar.vue +80 -80
  243. package/src/components/chart/RankingList.vue +60 -60
  244. package/src/components/chart/Trend.vue +79 -79
  245. package/src/components/chart/index.less +9 -9
  246. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  247. package/src/components/checkbox/ImgCheckbox.vue +117 -117
  248. package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
  249. package/src/components/checkbox/index.js +9 -9
  250. package/src/components/exception/ExceptionPage.vue +70 -70
  251. package/src/components/g2Charts/constants.js +202 -202
  252. package/src/components/g2Charts/demo.vue +808 -808
  253. package/src/components/g2Charts/designer.vue +228 -228
  254. package/src/components/g2Charts/designerBaseConfig.vue +61 -61
  255. package/src/components/g2Charts/designerDataConfig.vue +259 -259
  256. package/src/components/g2Charts/designerStyleConfig.vue +16 -16
  257. package/src/components/g2Charts/index.vue +397 -397
  258. package/src/components/index.js +36 -36
  259. package/src/components/input/IInput.vue +66 -66
  260. package/src/components/menu/SideMenu.vue +75 -75
  261. package/src/components/menu/menu.js +273 -273
  262. package/src/components/setting/Setting.vue +234 -234
  263. package/src/components/tool/AStepItem.vue +60 -60
  264. package/src/config/CreateQueryConfig.js +325 -325
  265. package/src/config/default/antd.config.js +89 -89
  266. package/src/config/default/setting.config.js +55 -55
  267. package/src/font-style/font.css +4 -4
  268. package/src/layouts/CommonLayout.vue +56 -56
  269. package/src/layouts/GridView.vue +0 -2
  270. package/src/layouts/PageLayout.vue +151 -151
  271. package/src/layouts/SinglePageView.vue +136 -136
  272. package/src/layouts/header/AdminHeader.vue +132 -132
  273. package/src/layouts/header/HeaderNotice.vue +177 -177
  274. package/src/layouts/header/InstitutionDetail.vue +181 -181
  275. package/src/layouts/tabs/TabsHead.vue +189 -189
  276. package/src/layouts/tabs/TabsView.vue +389 -389
  277. package/src/lib.js +1 -1
  278. package/src/main.js +34 -34
  279. package/src/mock/extend/index.js +84 -84
  280. package/src/mock/goods/index.js +108 -108
  281. package/src/pages/AMisDemo/AMisDemo.vue +325 -325
  282. package/src/pages/AMisDemo/AMisDemo2.vue +74 -74
  283. package/src/pages/DefaultExample/index.vue +77 -77
  284. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  285. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  286. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  287. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  288. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  289. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  290. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  291. package/src/pages/DynamicStatistics/index.vue +282 -282
  292. package/src/pages/Example/childIndex.vue +15 -15
  293. package/src/pages/Example/index.vue +30 -30
  294. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  295. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  296. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  297. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  298. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  299. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  300. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  301. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  302. package/src/pages/Recording/index.vue +77 -77
  303. package/src/pages/ServiceReview/index.vue +284 -284
  304. package/src/pages/SubExample/index.vue +26 -26
  305. package/src/pages/WorkflowDetail/WorkflowDetail.vue +235 -235
  306. package/src/pages/WorkflowDetail/WorkflowPageDetail/LeaveMessage.vue +131 -131
  307. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  308. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformation.vue +302 -302
  309. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformationDetails.vue +276 -276
  310. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandleReso.vue +997 -997
  311. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowTimeline.vue +222 -222
  312. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkOrderParentDetails.vue +233 -233
  313. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowDetailResso.vue +261 -261
  314. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowListResolution.vue +248 -248
  315. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowLog.vue +73 -73
  316. package/src/pages/XPageViewExample/index.vue +38 -38
  317. package/src/pages/XReportView/index.vue +64 -64
  318. package/src/pages/XTreeOneProExample/index.vue +67 -67
  319. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  320. package/src/pages/login/Login.vue +378 -378
  321. package/src/pages/login/LoginV3.vue +389 -389
  322. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  323. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  324. package/src/pages/report/ReportTable.js +124 -124
  325. package/src/pages/resourceManage/orgListManage.vue +98 -98
  326. package/src/pages/system/dictionary/index.vue +44 -44
  327. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  328. package/src/pages/system/monitor/operLog/index.vue +37 -37
  329. package/src/pages/system/settings/modifyPassword.vue +117 -117
  330. package/src/pages/system/ticket/index.vue +480 -480
  331. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  332. package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
  333. package/src/pages/userInfoDetailManage/FillCardRecordQuery/index.vue +76 -76
  334. package/src/pages/userInfoDetailManage/FillGasRecordQuery/index.vue +74 -74
  335. package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
  336. package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
  337. package/src/pages/userInfoDetailManage/MachineRecordQuery/index.vue +74 -74
  338. package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
  339. package/src/pages/userInfoDetailManage/OtherChargeRecordQuery/index.vue +74 -74
  340. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
  341. package/src/pages/userInfoDetailManage/UserChargeRecordQuery/index.vue +92 -92
  342. package/src/pages/userInfoDetailManage/UserHandRecordQuery/index.vue +86 -86
  343. package/src/pages/userInfoDetailManage/UserRecordQuery/index.vue +73 -73
  344. package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
  345. package/src/pages/userInfoDetailManage/userInfoDetailQueryTabs.vue +132 -132
  346. package/src/plugins/EventLogPlugin.js +33 -33
  347. package/src/plugins/FindParentsData.js +17 -17
  348. package/src/router/async/config.async.js +35 -35
  349. package/src/router/async/router.map.js +116 -118
  350. package/src/router/index.js +27 -27
  351. package/src/router.js +19 -19
  352. package/src/services/DataModel.js +30 -30
  353. package/src/services/LodopFuncs.js +137 -137
  354. package/src/services/api/TicketDetailsViewApi.js +46 -46
  355. package/src/services/api/cas.js +79 -79
  356. package/src/services/api/common.js +346 -346
  357. package/src/services/api/entity.js +18 -18
  358. package/src/services/api/index.js +17 -17
  359. package/src/services/api/restTools.js +145 -145
  360. package/src/services/api/workFlow.js +63 -63
  361. package/src/services/apiService.js +16 -16
  362. package/src/store/modules/account.js +115 -115
  363. package/src/store/modules/index.js +5 -5
  364. package/src/store/modules/lowCode.js +33 -33
  365. package/src/store/modules/setting.js +119 -119
  366. package/src/theme/default/style.less +58 -58
  367. package/src/theme/global.less +159 -159
  368. package/src/utils/authority-utils.js +85 -85
  369. package/src/utils/errorCode.js +6 -6
  370. package/src/utils/formatter.js +74 -74
  371. package/src/utils/htmlToPDF.js +108 -108
  372. package/src/utils/htmlToPDFApi.js +5 -5
  373. package/src/utils/login.js +188 -188
  374. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  375. package/src/utils/lowcode/lowcodeLog.js +29 -29
  376. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  377. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  378. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  379. package/src/utils/map-utils.js +47 -47
  380. package/src/utils/reg.js +95 -95
  381. package/src/utils/runEvalFunction.js +14 -14
  382. package/src/utils/theme-color-replacer-extend.js +92 -92
  383. package/src/utils/util.js +329 -329
  384. package/src/utils/waterMark.js +31 -31
  385. package/test/Amis.spec.js +164 -164
  386. package/test/Tree.spec.js +168 -168
  387. package/test/myDialog.spec.js +47 -47
  388. package/test/util.test.js +53 -53
  389. package/test/v3Api.test.js +1984 -1984
  390. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
  391. package/src/base-client/components/common/XCollapse/XCollapseDemo.vue +0 -15
@@ -1,568 +1,568 @@
1
- <template>
2
- <div>
3
- <div v-if="render" class="XCard">
4
- <template v-for="(card, itemIndex) in data">
5
- <a-card :key="'card' + itemIndex" class="data-card">
6
- <div
7
- v-if="config && card[config.ribbon]"
8
- class="ribbon"
9
- :style="{ backgroundColor: getRibbonColor(card[config.ribbonColor]) }">
10
- {{ card[config.ribbon] }}
11
- </div>
12
- <!-- 自定义标题 -->
13
- <template #title>
14
- <div class="custom-title" @click="clickFooter(card, 'cardclick')">
15
- <a-tooltip placement="top">
16
- <template #title>{{ card[config.id] }}</template>
17
- <div class="title-id" v-if="card[config.id]">{{ card[config.id] }}</div>
18
- </a-tooltip>
19
- <div class="title-basic">
20
- <div class="title-main">
21
- <span class="title-name">{{ card[config.title] }}</span>
22
- <span class="title-info">{{ card[config.title2] }}</span>
23
- <span class="title-title3">{{ card[config.title3] }}</span>
24
- </div>
25
- <div class="additional-info" v-if="card[config.subtitle2] || card[config.subtitle3] || card[config.subtitle4]">
26
- <a-tooltip placement="top" v-if="card[config.subtitle2]">
27
- <template #title>{{ card[config.subtitle2] }}</template>
28
- <span class="subtitle2">{{ card[config.subtitle2] }}</span>
29
- </a-tooltip>
30
- <a-tooltip placement="top" v-if="card[config.subtitle3]">
31
- <template #title>{{ card[config.subtitle3] }}</template>
32
- <span class="subtitle3">{{ card[config.subtitle3] }}</span>
33
- </a-tooltip>
34
- <span class="subtitle4" v-if="card[config.subtitle4]">{{ card[config.subtitle4] }}</span>
35
- </div>
36
- </div>
37
- </div>
38
- </template>
39
- <!-- 主体 -->
40
- <div class="body">
41
- <div class="body-text" v-if="card[config.text]">
42
- <a-tooltip :title="card[config.text]">
43
- <span class="text-ellipsis">{{ card[config.text] }}</span>
44
- </a-tooltip>
45
- </div>
46
- <template v-if="config.content && config.content.length > 0">
47
- <template v-for="(item, bodyIndex) in config.content" v-if="bodyIndex < 6">
48
- <div :key="'body' + bodyIndex" class="body-item">
49
- <span class="body-item-label">{{ item.label }}:</span>
50
- <template v-if="item.type === 'progress'">
51
- <div class="progress">
52
- <div class="progress-bar">
53
- <div class="progress-done" :style="'width:' + card[item.key] * 100 + '%;backgroundColor: ' + determineRatioColor(card[item.key] * 100)"></div>
54
- </div>
55
- </div>
56
- <div class="progress-num">{{ card[item.key] * 100 }}%</div>
57
- </template>
58
- <template v-else-if="item.type === 'custom' && tableColumns">
59
- <!-- 根据 tableColumns 显示自定义内容 -->
60
- <span v-for="column in tableColumns" v-if="column.dataIndex === item.key" :key="column.dataIndex">
61
- <template v-if="column.slotType === 'badge'">
62
- <x-badge
63
- :service-name="serviceName"
64
- :env="env"
65
- :dataCard="true"
66
- :badge-key="column.slotKeyMap"
67
- :value="card[item.key]" />
68
- </template>
69
- <template v-else>
70
- <slot :name="column.slots.customRender">{{ card[item.key] }}</slot>
71
- </template>
72
- </span>
73
- </template>
74
- <template v-else>
75
- <span class="body-item-value">{{ card[item.key] }}</span>
76
- </template>
77
- </div>
78
- <a-divider
79
- v-if="bodyIndex !== config.content.length - 1"
80
- dashed
81
- :key="'body' + bodyIndex + 'after'"
82
- class="body-split" />
83
- </template>
84
- </template>
85
- </div>
86
- <!-- 下方按钮 -->
87
- <template #actions>
88
- <a-row align="middle" class="custom-actions" v-if="config && config.footer && config.footer.length > 0">
89
- <template v-for="(item, footerIndex) in config.footer">
90
- <a-col :key="'footer_' + footerIndex" class="footer-item" :span="11" @click="clickFooter(card, item.emit)">
91
- <span>
92
- <a-icon :type="item.icon" class="footer-icon" />
93
- <span>{{ item.label }}</span>
94
- </span>
95
- </a-col>
96
- <a-col
97
- v-if="footerIndex !== config.footer.length - 1"
98
- :span="1"
99
- :key="'footer_' + footerIndex + 'after'"
100
- class="footer-item-split">
101
- |
102
- </a-col>
103
- </template>
104
- </a-row>
105
- </template>
106
- </a-card>
107
- </template>
108
- </div>
109
- <div v-else>
110
- <a-skeleton />
111
- </div>
112
- <div v-if="this.showPagination">
113
- <a-divider />
114
- <a-pagination
115
- v-model="pageNum"
116
- style="float: right"
117
- :total="total"
118
- show-less-items
119
- :page-size="pageSize"
120
- :page-size-options="pageSizeOptions"
121
- show-size-changer
122
- @change="pageNumChange"
123
- :showTotal="paginationShowTotal"
124
- @showSizeChange="pageSizeChange">
125
- </a-pagination>
126
- </div>
127
- </div>
128
- </template>
129
-
130
- <script>
131
- import XBadge from '@vue2-client/base-client/components/common/XBadge'
132
-
133
- export default {
134
- name: 'XDataCard',
135
- components: {
136
- XBadge,
137
- },
138
- props: {
139
- // 卡片数据更新方法
140
- cardData: {
141
- type: Function,
142
- default: undefined
143
- },
144
- // 卡片的配置
145
- cardConfig: {
146
- type: Object,
147
- default: undefined
148
- },
149
- showPagination: {
150
- type: Boolean,
151
- default: false
152
- },
153
- // 临时
154
- testData: {
155
- type: Array,
156
- default: undefined
157
- },
158
- tableColumns: {
159
- type: Array,
160
- default: undefined
161
- },
162
- // 服务名称
163
- serviceName: undefined,
164
- // 当前环境
165
- env: {
166
- type: String,
167
- default: 'prod'
168
- },
169
- // pageSize参数
170
- prePageSize: {
171
- type: Number,
172
- default: undefined
173
- },
174
- // 初始是否加载数据
175
- createdQuery: {
176
- type: Boolean,
177
- default: false
178
- }
179
- },
180
- inject: ['getConfigByName'],
181
- data () {
182
- return {
183
- // 配置
184
- config: {},
185
- // 数据
186
- data: {},
187
- // 当前页码
188
- pageNum: 1,
189
- // 控制渲染
190
- render: true,
191
- // 分页大小
192
- pageSize: 10,
193
- // 分页大小选项
194
- pageSizeOptions: ['4', '6', '8', '10'],
195
- // 数据总数
196
- total: 0
197
- }
198
- },
199
- created () {
200
- // 根据参数初始化数据值
201
- if (this.prePageSize) {
202
- this.pageSize = this.prePageSize
203
- }
204
- },
205
- mounted () {
206
- // 配置初始化
207
- if (this.cardConfig) {
208
- this.config = this.cardConfig
209
- } else {
210
- this.config = {
211
- id: '未获取到配置',
212
- title: '未获取到配置',
213
- title2: '未获取到配置',
214
- title3: '未获取到配置',
215
- subtitle2: '未获取到配置',
216
- subtitle3: '未获取到配置',
217
- subtitle4: '未获取到配置',
218
- text: '未获取到配置',
219
- ribbon: '未获取到配置',
220
- ribbonColor: '未获取到配置',
221
- content: [
222
- {
223
- label: '未获取到配置',
224
- key: 'one'
225
- },
226
- {
227
- label: '未获取到配置',
228
- key: 'two'
229
- },
230
- {
231
- label: '未获取到配置',
232
- key: 'three'
233
- },
234
- {
235
- label: '未获取到配置',
236
- key: 'four'
237
- },
238
- {
239
- label: '未获取到配置',
240
- key: 'five'
241
- },
242
- {
243
- label: '未获取到配置',
244
- key: 'six',
245
- type: 'progress'
246
- }
247
- ],
248
- footer: [
249
- {
250
- icon: 'edit',
251
- label: '未获取到配置',
252
- emit: 'planEdit'
253
- },
254
- {
255
- icon: 'user',
256
- label: '未获取到配置',
257
- emit: 'user'
258
- }
259
- ]
260
- }
261
- console.warn(this.config)
262
- }
263
-
264
- // 数据初始化
265
- if (this.cardData) {
266
- // if (this.createdQuery) {
267
- // this.loadData()
268
- // }
269
- } else {
270
- this.data = {
271
- one: '未获取到配置',
272
- two: '未获取到配置',
273
- three: '未获取到配置',
274
- four: '未获取到配置',
275
- five: '未获取到配置',
276
- six: 70
277
- }
278
- }
279
- // 测试数据初始化
280
- if (this.testData) {
281
- this.data = this.testData
282
- }
283
- },
284
- methods: {
285
- // 根据比例计算出颜色
286
- determineRatioColor (ratio, isNum = false) {
287
- let result
288
- // 如果是数字,并且比例大于79,则将数字显示为黑色
289
- if (isNum && ratio > 79) {
290
- return 'rgb(0,0,0)'
291
- }
292
- if (ratio >= 90) {
293
- result = 'rgb( 1,245, 38 )'
294
- } else if (ratio >= 75) {
295
- result = 'rgb( 139,245, 0)'
296
- } else if (ratio >= 40) {
297
- result = 'rgb(245,163, 0)'
298
- } else if (ratio >= 20) {
299
- result = 'rgb(244, 96, 0)'
300
- } else {
301
- result = 'rgb(255, 0, 0)'
302
- }
303
- return result
304
- },
305
- // 点击按钮
306
- clickFooter (data, eventName) {
307
- this.$emit('cardEmit', data, eventName)
308
- },
309
- // 获取数据
310
- loadData () {
311
- this.render = false
312
- const parameter = Object.assign({
313
- querySummary: false, // 分页查询的情况不重新获取汇总数据
314
- pageNo: this.pageNum,
315
- pageSize: this.pageSize
316
- }
317
- )
318
- this.cardData(parameter).then(res => {
319
- this.data = res.data
320
- this.total = res.totalCount
321
- this.render = true
322
- })
323
- },
324
- // 页码改变
325
- pageNumChange (page, pageSize) {
326
- this.pageNum = page
327
- this.pageSize = pageSize
328
- this.loadData()
329
- },
330
- // 分页大小改变
331
- pageSizeChange (current, pageSize) {
332
- this.pageSize = pageSize
333
- this.loadData()
334
- },
335
- // 刷新
336
- refresh () {
337
- this.loadData()
338
- },
339
- // 分页前展示当前项和总数
340
- paginationShowTotal () {
341
- return `${(this.pageNum - 1) * this.pageSize + 1 } - ${ this.pageNum * this.pageSize } | 共 ${ this.total } 项`
342
- },
343
- getRibbonColor (color) {
344
- switch (color) {
345
- case 'red':
346
- return '#ff4d4f'
347
- case 'blue':
348
- return '#1890ff'
349
- case 'yellow':
350
- return '#fadb14'
351
- default:
352
- return '#ff4d4f' // 默认红色
353
- }
354
- }
355
- }
356
- }
357
- </script>
358
-
359
- <style lang="less" scoped>
360
- .hide-page-numbers /deep/ .ant-pagination-item,
361
- .hide-page-numbers /deep/ .ant-pagination-jump-next {
362
- display: none !important; /* 隐藏数字页码和多页跳转 */
363
- }
364
- .hide-page-numbers /deep/ .ant-pagination-prev,
365
- .hide-page-numbers /deep/ .ant-pagination-next {
366
- display: inline-block !important; /* 保留左右跳转按钮 */
367
- }
368
-
369
- .XCard {
370
- display: flex;
371
- flex-wrap: wrap;
372
- justify-content: flex-start;
373
- overflow-y: auto;
374
- overflow-x: hidden;
375
- max-height: 85vh;
376
- .data-card {
377
- width: 100%;
378
- max-width: 300px;
379
- border: 2px solid rgb(244,244,244);
380
- border-radius: 5px;
381
- margin: 2px;
382
- overflow: hidden;
383
-
384
- ::v-deep .ant-card-body {
385
- padding: 15px !important; // 使用 !important 确保样式覆盖
386
- }
387
-
388
- .header {
389
- width: 100%;
390
- background-color: rgb(244,244,244);
391
- padding: 5px 15px;
392
-
393
- span {
394
- font-weight: bold;
395
- font-size: 1.1em;
396
- }
397
- }
398
-
399
- .body {
400
- .body-text{
401
- width: 500px;
402
- font-weight: bold;
403
- font-size: 1.1em;
404
- .text-ellipsis{
405
- display: inline-block;
406
- max-width: 260px; /* 控制文本的最大宽度 */
407
- white-space: nowrap;
408
- overflow: hidden;
409
- text-overflow: ellipsis;
410
- }
411
- }
412
-
413
- .body-item {
414
- padding: 3px 5px;
415
- }
416
-
417
- .body-split {
418
- margin: 1px 0;
419
- }
420
-
421
- .body-item-label {
422
- color: rgba(117, 117, 117, 0.8);
423
- font-size: 0.95em;
424
- }
425
-
426
- .body-item-value {
427
- color: black;
428
- }
429
-
430
- .progress {
431
- display: inline-block;
432
- width: 60%;
433
- height: 60%;
434
- float: right;
435
- padding-right: 1.5%;
436
- margin-top: 0.5%;
437
-
438
- .progress-bar {
439
- width: 100%;
440
- height: 90%;
441
- display: inline-block;
442
- border-radius: 10%;
443
- background-color: rgba(212,217,218, 0.6);
444
-
445
- .progress-done {
446
- float: left;
447
- display: inline-block;
448
- height: 100%;
449
- border-radius: 10%;
450
- }
451
- }
452
- }
453
- .progress-num {
454
- position: relative;
455
- top: -83%;
456
- left: -3%;
457
- text-align: end;
458
- font-size: 0.9em;
459
- color: black;
460
- }
461
- }
462
- }
463
-
464
- .custom-title {
465
- display: flex;
466
- align-items: center;
467
- gap: 12px;
468
-
469
- &:hover {
470
- cursor: pointer;
471
- }
472
-
473
- .title-id {
474
- flex-shrink: 0;
475
- width: 65px;
476
- color: #1890ff;
477
- font-size: 16px;
478
- font-weight: bold;
479
- padding: 4px 8px;
480
- border: 1px solid #1890ff;
481
- border-radius: 4px;
482
- line-height: 1.4;
483
- text-align: center;
484
- white-space: nowrap;
485
- overflow: hidden;
486
- text-overflow: ellipsis;
487
- }
488
-
489
- .title-basic {
490
- display: flex;
491
- flex-direction: column;
492
- flex-grow: 1;
493
-
494
- .subtitle2, .subtitle3 {
495
- display: inline-block;
496
- max-width: 50px; /* 固定宽度 */
497
- white-space: nowrap;
498
- overflow: hidden;
499
- text-overflow: ellipsis;
500
- }
501
-
502
- .title-main {
503
- display: flex;
504
- align-items: center;
505
- gap: 8px;
506
- .title-info {
507
- margin-left: 6px;
508
- color: #808080;
509
- }
510
- .title-title3 {
511
- color: #808080;
512
- }
513
- }
514
-
515
- .additional-info {
516
- display: flex;
517
- gap: 8px;
518
- font-size: 13px;
519
- color: #808080;
520
- .subtitle4 {
521
- color: rgba(0, 0, 255, 0.8);
522
- }
523
- }
524
- }
525
- }
526
-
527
- .ribbon {
528
- position: absolute;
529
- top: 16px;
530
- right: -6px;
531
- background-color: #ff4d4f;
532
- color: white;
533
- padding: 5px 25px;
534
- font-size: 12px;
535
- transform: rotate(45deg) translateX(30%);
536
- transform-origin: top right;
537
- z-index: 1;
538
- }
539
-
540
- .custom-actions {
541
- .footer-icon {
542
- margin-right: 5px;
543
- }
544
-
545
- .footer-item-split {
546
- color: rgba(220, 220, 220, 0.59);
547
- }
548
-
549
- .footer-item {
550
- color: rgba(117, 117, 117, 0.8);
551
- font-size: 1em;
552
- }
553
-
554
- .footer-item:hover {
555
- color: rgb( 24,144,255 );
556
- cursor: pointer;
557
- }
558
- }
559
- }
560
-
561
- .ellipsis {
562
- display: inline-block;
563
- max-width: 60px;
564
- white-space: nowrap;
565
- overflow: hidden;
566
- text-overflow: ellipsis;
567
- }
568
- </style>
1
+ <template>
2
+ <div>
3
+ <div v-if="render" class="XCard">
4
+ <template v-for="(card, itemIndex) in data">
5
+ <a-card :key="'card' + itemIndex" class="data-card">
6
+ <div
7
+ v-if="config && card[config.ribbon]"
8
+ class="ribbon"
9
+ :style="{ backgroundColor: getRibbonColor(card[config.ribbonColor]) }">
10
+ {{ card[config.ribbon] }}
11
+ </div>
12
+ <!-- 自定义标题 -->
13
+ <template #title>
14
+ <div class="custom-title" @click="clickFooter(card, 'cardclick')">
15
+ <a-tooltip placement="top">
16
+ <template #title>{{ card[config.id] }}</template>
17
+ <div class="title-id" v-if="card[config.id]">{{ card[config.id] }}</div>
18
+ </a-tooltip>
19
+ <div class="title-basic">
20
+ <div class="title-main">
21
+ <span class="title-name">{{ card[config.title] }}</span>
22
+ <span class="title-info">{{ card[config.title2] }}</span>
23
+ <span class="title-title3">{{ card[config.title3] }}</span>
24
+ </div>
25
+ <div class="additional-info" v-if="card[config.subtitle2] || card[config.subtitle3] || card[config.subtitle4]">
26
+ <a-tooltip placement="top" v-if="card[config.subtitle2]">
27
+ <template #title>{{ card[config.subtitle2] }}</template>
28
+ <span class="subtitle2">{{ card[config.subtitle2] }}</span>
29
+ </a-tooltip>
30
+ <a-tooltip placement="top" v-if="card[config.subtitle3]">
31
+ <template #title>{{ card[config.subtitle3] }}</template>
32
+ <span class="subtitle3">{{ card[config.subtitle3] }}</span>
33
+ </a-tooltip>
34
+ <span class="subtitle4" v-if="card[config.subtitle4]">{{ card[config.subtitle4] }}</span>
35
+ </div>
36
+ </div>
37
+ </div>
38
+ </template>
39
+ <!-- 主体 -->
40
+ <div class="body">
41
+ <div class="body-text" v-if="card[config.text]">
42
+ <a-tooltip :title="card[config.text]">
43
+ <span class="text-ellipsis">{{ card[config.text] }}</span>
44
+ </a-tooltip>
45
+ </div>
46
+ <template v-if="config.content && config.content.length > 0">
47
+ <template v-for="(item, bodyIndex) in config.content" v-if="bodyIndex < 6">
48
+ <div :key="'body' + bodyIndex" class="body-item">
49
+ <span class="body-item-label">{{ item.label }}:</span>
50
+ <template v-if="item.type === 'progress'">
51
+ <div class="progress">
52
+ <div class="progress-bar">
53
+ <div class="progress-done" :style="'width:' + card[item.key] * 100 + '%;backgroundColor: ' + determineRatioColor(card[item.key] * 100)"></div>
54
+ </div>
55
+ </div>
56
+ <div class="progress-num">{{ card[item.key] * 100 }}%</div>
57
+ </template>
58
+ <template v-else-if="item.type === 'custom' && tableColumns">
59
+ <!-- 根据 tableColumns 显示自定义内容 -->
60
+ <span v-for="column in tableColumns" v-if="column.dataIndex === item.key" :key="column.dataIndex">
61
+ <template v-if="column.slotType === 'badge'">
62
+ <x-badge
63
+ :service-name="serviceName"
64
+ :env="env"
65
+ :dataCard="true"
66
+ :badge-key="column.slotKeyMap"
67
+ :value="card[item.key]" />
68
+ </template>
69
+ <template v-else>
70
+ <slot :name="column.slots.customRender">{{ card[item.key] }}</slot>
71
+ </template>
72
+ </span>
73
+ </template>
74
+ <template v-else>
75
+ <span class="body-item-value">{{ card[item.key] }}</span>
76
+ </template>
77
+ </div>
78
+ <a-divider
79
+ v-if="bodyIndex !== config.content.length - 1"
80
+ dashed
81
+ :key="'body' + bodyIndex + 'after'"
82
+ class="body-split" />
83
+ </template>
84
+ </template>
85
+ </div>
86
+ <!-- 下方按钮 -->
87
+ <template #actions>
88
+ <a-row align="middle" class="custom-actions" v-if="config && config.footer && config.footer.length > 0">
89
+ <template v-for="(item, footerIndex) in config.footer">
90
+ <a-col :key="'footer_' + footerIndex" class="footer-item" :span="11" @click="clickFooter(card, item.emit)">
91
+ <span>
92
+ <a-icon :type="item.icon" class="footer-icon" />
93
+ <span>{{ item.label }}</span>
94
+ </span>
95
+ </a-col>
96
+ <a-col
97
+ v-if="footerIndex !== config.footer.length - 1"
98
+ :span="1"
99
+ :key="'footer_' + footerIndex + 'after'"
100
+ class="footer-item-split">
101
+ |
102
+ </a-col>
103
+ </template>
104
+ </a-row>
105
+ </template>
106
+ </a-card>
107
+ </template>
108
+ </div>
109
+ <div v-else>
110
+ <a-skeleton />
111
+ </div>
112
+ <div v-if="this.showPagination">
113
+ <a-divider />
114
+ <a-pagination
115
+ v-model="pageNum"
116
+ style="float: right"
117
+ :total="total"
118
+ show-less-items
119
+ :page-size="pageSize"
120
+ :page-size-options="pageSizeOptions"
121
+ show-size-changer
122
+ @change="pageNumChange"
123
+ :showTotal="paginationShowTotal"
124
+ @showSizeChange="pageSizeChange">
125
+ </a-pagination>
126
+ </div>
127
+ </div>
128
+ </template>
129
+
130
+ <script>
131
+ import XBadge from '@vue2-client/base-client/components/common/XBadge'
132
+
133
+ export default {
134
+ name: 'XDataCard',
135
+ components: {
136
+ XBadge,
137
+ },
138
+ props: {
139
+ // 卡片数据更新方法
140
+ cardData: {
141
+ type: Function,
142
+ default: undefined
143
+ },
144
+ // 卡片的配置
145
+ cardConfig: {
146
+ type: Object,
147
+ default: undefined
148
+ },
149
+ showPagination: {
150
+ type: Boolean,
151
+ default: false
152
+ },
153
+ // 临时
154
+ testData: {
155
+ type: Array,
156
+ default: undefined
157
+ },
158
+ tableColumns: {
159
+ type: Array,
160
+ default: undefined
161
+ },
162
+ // 服务名称
163
+ serviceName: undefined,
164
+ // 当前环境
165
+ env: {
166
+ type: String,
167
+ default: 'prod'
168
+ },
169
+ // pageSize参数
170
+ prePageSize: {
171
+ type: Number,
172
+ default: undefined
173
+ },
174
+ // 初始是否加载数据
175
+ createdQuery: {
176
+ type: Boolean,
177
+ default: false
178
+ }
179
+ },
180
+ inject: ['getConfigByName'],
181
+ data () {
182
+ return {
183
+ // 配置
184
+ config: {},
185
+ // 数据
186
+ data: {},
187
+ // 当前页码
188
+ pageNum: 1,
189
+ // 控制渲染
190
+ render: true,
191
+ // 分页大小
192
+ pageSize: 10,
193
+ // 分页大小选项
194
+ pageSizeOptions: ['4', '6', '8', '10'],
195
+ // 数据总数
196
+ total: 0
197
+ }
198
+ },
199
+ created () {
200
+ // 根据参数初始化数据值
201
+ if (this.prePageSize) {
202
+ this.pageSize = this.prePageSize
203
+ }
204
+ },
205
+ mounted () {
206
+ // 配置初始化
207
+ if (this.cardConfig) {
208
+ this.config = this.cardConfig
209
+ } else {
210
+ this.config = {
211
+ id: '未获取到配置',
212
+ title: '未获取到配置',
213
+ title2: '未获取到配置',
214
+ title3: '未获取到配置',
215
+ subtitle2: '未获取到配置',
216
+ subtitle3: '未获取到配置',
217
+ subtitle4: '未获取到配置',
218
+ text: '未获取到配置',
219
+ ribbon: '未获取到配置',
220
+ ribbonColor: '未获取到配置',
221
+ content: [
222
+ {
223
+ label: '未获取到配置',
224
+ key: 'one'
225
+ },
226
+ {
227
+ label: '未获取到配置',
228
+ key: 'two'
229
+ },
230
+ {
231
+ label: '未获取到配置',
232
+ key: 'three'
233
+ },
234
+ {
235
+ label: '未获取到配置',
236
+ key: 'four'
237
+ },
238
+ {
239
+ label: '未获取到配置',
240
+ key: 'five'
241
+ },
242
+ {
243
+ label: '未获取到配置',
244
+ key: 'six',
245
+ type: 'progress'
246
+ }
247
+ ],
248
+ footer: [
249
+ {
250
+ icon: 'edit',
251
+ label: '未获取到配置',
252
+ emit: 'planEdit'
253
+ },
254
+ {
255
+ icon: 'user',
256
+ label: '未获取到配置',
257
+ emit: 'user'
258
+ }
259
+ ]
260
+ }
261
+ console.warn(this.config)
262
+ }
263
+
264
+ // 数据初始化
265
+ if (this.cardData) {
266
+ // if (this.createdQuery) {
267
+ // this.loadData()
268
+ // }
269
+ } else {
270
+ this.data = {
271
+ one: '未获取到配置',
272
+ two: '未获取到配置',
273
+ three: '未获取到配置',
274
+ four: '未获取到配置',
275
+ five: '未获取到配置',
276
+ six: 70
277
+ }
278
+ }
279
+ // 测试数据初始化
280
+ if (this.testData) {
281
+ this.data = this.testData
282
+ }
283
+ },
284
+ methods: {
285
+ // 根据比例计算出颜色
286
+ determineRatioColor (ratio, isNum = false) {
287
+ let result
288
+ // 如果是数字,并且比例大于79,则将数字显示为黑色
289
+ if (isNum && ratio > 79) {
290
+ return 'rgb(0,0,0)'
291
+ }
292
+ if (ratio >= 90) {
293
+ result = 'rgb( 1,245, 38 )'
294
+ } else if (ratio >= 75) {
295
+ result = 'rgb( 139,245, 0)'
296
+ } else if (ratio >= 40) {
297
+ result = 'rgb(245,163, 0)'
298
+ } else if (ratio >= 20) {
299
+ result = 'rgb(244, 96, 0)'
300
+ } else {
301
+ result = 'rgb(255, 0, 0)'
302
+ }
303
+ return result
304
+ },
305
+ // 点击按钮
306
+ clickFooter (data, eventName) {
307
+ this.$emit('cardEmit', data, eventName)
308
+ },
309
+ // 获取数据
310
+ loadData () {
311
+ this.render = false
312
+ const parameter = Object.assign({
313
+ querySummary: false, // 分页查询的情况不重新获取汇总数据
314
+ pageNo: this.pageNum,
315
+ pageSize: this.pageSize
316
+ }
317
+ )
318
+ this.cardData(parameter).then(res => {
319
+ this.data = res.data
320
+ this.total = res.totalCount
321
+ this.render = true
322
+ })
323
+ },
324
+ // 页码改变
325
+ pageNumChange (page, pageSize) {
326
+ this.pageNum = page
327
+ this.pageSize = pageSize
328
+ this.loadData()
329
+ },
330
+ // 分页大小改变
331
+ pageSizeChange (current, pageSize) {
332
+ this.pageSize = pageSize
333
+ this.loadData()
334
+ },
335
+ // 刷新
336
+ refresh () {
337
+ this.loadData()
338
+ },
339
+ // 分页前展示当前项和总数
340
+ paginationShowTotal () {
341
+ return `${(this.pageNum - 1) * this.pageSize + 1 } - ${ this.pageNum * this.pageSize } | 共 ${ this.total } 项`
342
+ },
343
+ getRibbonColor (color) {
344
+ switch (color) {
345
+ case 'red':
346
+ return '#ff4d4f'
347
+ case 'blue':
348
+ return '#1890ff'
349
+ case 'yellow':
350
+ return '#fadb14'
351
+ default:
352
+ return '#ff4d4f' // 默认红色
353
+ }
354
+ }
355
+ }
356
+ }
357
+ </script>
358
+
359
+ <style lang="less" scoped>
360
+ .hide-page-numbers /deep/ .ant-pagination-item,
361
+ .hide-page-numbers /deep/ .ant-pagination-jump-next {
362
+ display: none !important; /* 隐藏数字页码和多页跳转 */
363
+ }
364
+ .hide-page-numbers /deep/ .ant-pagination-prev,
365
+ .hide-page-numbers /deep/ .ant-pagination-next {
366
+ display: inline-block !important; /* 保留左右跳转按钮 */
367
+ }
368
+
369
+ .XCard {
370
+ display: flex;
371
+ flex-wrap: wrap;
372
+ justify-content: flex-start;
373
+ overflow-y: auto;
374
+ overflow-x: hidden;
375
+ max-height: 85vh;
376
+ .data-card {
377
+ width: 100%;
378
+ max-width: 300px;
379
+ border: 2px solid rgb(244,244,244);
380
+ border-radius: 5px;
381
+ margin: 2px;
382
+ overflow: hidden;
383
+
384
+ ::v-deep .ant-card-body {
385
+ padding: 15px !important; // 使用 !important 确保样式覆盖
386
+ }
387
+
388
+ .header {
389
+ width: 100%;
390
+ background-color: rgb(244,244,244);
391
+ padding: 5px 15px;
392
+
393
+ span {
394
+ font-weight: bold;
395
+ font-size: 1.1em;
396
+ }
397
+ }
398
+
399
+ .body {
400
+ .body-text{
401
+ width: 500px;
402
+ font-weight: bold;
403
+ font-size: 1.1em;
404
+ .text-ellipsis{
405
+ display: inline-block;
406
+ max-width: 260px; /* 控制文本的最大宽度 */
407
+ white-space: nowrap;
408
+ overflow: hidden;
409
+ text-overflow: ellipsis;
410
+ }
411
+ }
412
+
413
+ .body-item {
414
+ padding: 3px 5px;
415
+ }
416
+
417
+ .body-split {
418
+ margin: 1px 0;
419
+ }
420
+
421
+ .body-item-label {
422
+ color: rgba(117, 117, 117, 0.8);
423
+ font-size: 0.95em;
424
+ }
425
+
426
+ .body-item-value {
427
+ color: black;
428
+ }
429
+
430
+ .progress {
431
+ display: inline-block;
432
+ width: 60%;
433
+ height: 60%;
434
+ float: right;
435
+ padding-right: 1.5%;
436
+ margin-top: 0.5%;
437
+
438
+ .progress-bar {
439
+ width: 100%;
440
+ height: 90%;
441
+ display: inline-block;
442
+ border-radius: 10%;
443
+ background-color: rgba(212,217,218, 0.6);
444
+
445
+ .progress-done {
446
+ float: left;
447
+ display: inline-block;
448
+ height: 100%;
449
+ border-radius: 10%;
450
+ }
451
+ }
452
+ }
453
+ .progress-num {
454
+ position: relative;
455
+ top: -83%;
456
+ left: -3%;
457
+ text-align: end;
458
+ font-size: 0.9em;
459
+ color: black;
460
+ }
461
+ }
462
+ }
463
+
464
+ .custom-title {
465
+ display: flex;
466
+ align-items: center;
467
+ gap: 12px;
468
+
469
+ &:hover {
470
+ cursor: pointer;
471
+ }
472
+
473
+ .title-id {
474
+ flex-shrink: 0;
475
+ width: 65px;
476
+ color: #1890ff;
477
+ font-size: 16px;
478
+ font-weight: bold;
479
+ padding: 4px 8px;
480
+ border: 1px solid #1890ff;
481
+ border-radius: 4px;
482
+ line-height: 1.4;
483
+ text-align: center;
484
+ white-space: nowrap;
485
+ overflow: hidden;
486
+ text-overflow: ellipsis;
487
+ }
488
+
489
+ .title-basic {
490
+ display: flex;
491
+ flex-direction: column;
492
+ flex-grow: 1;
493
+
494
+ .subtitle2, .subtitle3 {
495
+ display: inline-block;
496
+ max-width: 50px; /* 固定宽度 */
497
+ white-space: nowrap;
498
+ overflow: hidden;
499
+ text-overflow: ellipsis;
500
+ }
501
+
502
+ .title-main {
503
+ display: flex;
504
+ align-items: center;
505
+ gap: 8px;
506
+ .title-info {
507
+ margin-left: 6px;
508
+ color: #808080;
509
+ }
510
+ .title-title3 {
511
+ color: #808080;
512
+ }
513
+ }
514
+
515
+ .additional-info {
516
+ display: flex;
517
+ gap: 8px;
518
+ font-size: 13px;
519
+ color: #808080;
520
+ .subtitle4 {
521
+ color: rgba(0, 0, 255, 0.8);
522
+ }
523
+ }
524
+ }
525
+ }
526
+
527
+ .ribbon {
528
+ position: absolute;
529
+ top: 16px;
530
+ right: -6px;
531
+ background-color: #ff4d4f;
532
+ color: white;
533
+ padding: 5px 25px;
534
+ font-size: 12px;
535
+ transform: rotate(45deg) translateX(30%);
536
+ transform-origin: top right;
537
+ z-index: 1;
538
+ }
539
+
540
+ .custom-actions {
541
+ .footer-icon {
542
+ margin-right: 5px;
543
+ }
544
+
545
+ .footer-item-split {
546
+ color: rgba(220, 220, 220, 0.59);
547
+ }
548
+
549
+ .footer-item {
550
+ color: rgba(117, 117, 117, 0.8);
551
+ font-size: 1em;
552
+ }
553
+
554
+ .footer-item:hover {
555
+ color: rgb( 24,144,255 );
556
+ cursor: pointer;
557
+ }
558
+ }
559
+ }
560
+
561
+ .ellipsis {
562
+ display: inline-block;
563
+ max-width: 60px;
564
+ white-space: nowrap;
565
+ overflow: hidden;
566
+ text-overflow: ellipsis;
567
+ }
568
+ </style>