vue2-client 1.12.30 → 1.12.32

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 (383) 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/index.js +31 -31
  17. package/jest-transform-stub.js +8 -8
  18. package/jest.setup.js +7 -7
  19. package/jsconfig.json +19 -19
  20. package/package.json +108 -108
  21. package/public/his/editor/editor.html +51 -51
  22. package/public/his/editor/mock/bind_data.html +779 -779
  23. package/public/his/editor/mock/data_table.html +40 -40
  24. package/public/his/editor/mock/sign.html +75 -75
  25. package/public/his/editor/vender/JsBarcode.all.js +3669 -3669
  26. package/public/his/editor/vender/date97/My97DatePicker.htm +65 -65
  27. package/public/his/editor/vender/date97/WdatePicker.js +677 -677
  28. package/public/his/editor/vender/date97/calendar.js +4 -4
  29. package/public/his/editor/vender/date97/lang/en.js +13 -13
  30. package/public/his/editor/vender/date97/lang/zh-cn.js +13 -13
  31. package/public/his/editor/vender/date97/lang/zh-tw.js +13 -13
  32. package/public/his/editor/vender/date97/skin/WdatePicker.css +10 -10
  33. package/public/his/editor/vender/date97/skin/default/datepicker.css +328 -328
  34. package/public/his/editor/vender/date97/skin/ext/datepicker.css +308 -308
  35. package/public/his/editor/vender/date97/skin/whyGreen/datepicker.css +255 -255
  36. package/public/his/editor/vender/diff.js +1627 -1627
  37. package/public/his/editor/vender/editor.js +1 -1
  38. package/public/his/editor/vender/fabric.js +31187 -31187
  39. package/public/his/editor/vender/jquery/jquery.base64.js +190 -190
  40. package/public/his/editor/vender/jquery/jquery.js +10872 -10872
  41. package/public/his/editor/vender/jquery/jquery.print.js +255 -255
  42. package/public/his/editor/vender/jquery/zTreeStyle/zTreeStyle.css +96 -96
  43. package/public/his/editor/vender/mui/mui.min.css +4 -4
  44. package/public/his/editor/vender/mui/mui.min.js +5 -5
  45. package/public/his/editor/vender/mui/mui.picker.min.css +6 -6
  46. package/public/his/editor/vender/mui/mui.picker.min.js +6 -6
  47. package/public/his/editor/vender/qrcode.js +7 -7
  48. package/public/his/editor/vender/requirejs/require.js +2145 -2145
  49. package/public/his/editor/vender/signature/jSignature.CompressorSVG.js +518 -518
  50. package/public/his/editor/vender/signature/jSignature.UndoButton.js +164 -164
  51. package/public/his/editor/vender/signature/jSignature.js +1486 -1486
  52. package/public/his/editor/vender/validator.js +5094 -5094
  53. package/public/his/editor/vender/weui/weui.css +5659 -5659
  54. package/public/his/editor/vender/weui/weui.min.css +4 -4
  55. package/public/his/editor/vender/weui/weui.min.js +11 -11
  56. package/public/index.html +27 -27
  57. package/src/ReportView.js +19 -19
  58. package/src/assets/img/querySlotDemo.svg +15 -15
  59. package/src/assets/svg/badtwo.svg +1 -1
  60. package/src/assets/svg/goodtwo.svg +1 -1
  61. package/src/base-client/components/AI/AskAiBtn.vue +136 -136
  62. package/src/base-client/components/AI/demo.vue +31 -31
  63. package/src/base-client/components/common/AMisRender/index.js +3 -3
  64. package/src/base-client/components/common/AMisRender/index.vue +263 -263
  65. package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +470 -470
  66. package/src/base-client/components/common/AddressSearchCombobox/IcMapIcon.vue +16 -16
  67. package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
  68. package/src/base-client/components/common/AddressSearchCombobox/ic_map.svg +6 -6
  69. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  70. package/src/base-client/components/common/CitySelect/index.js +3 -3
  71. package/src/base-client/components/common/CitySelect/index.md +109 -109
  72. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  73. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
  74. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  75. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  76. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
  77. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
  78. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  79. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  80. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +149 -149
  81. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  82. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  83. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  84. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  85. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  86. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  87. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorModal.vue +108 -108
  88. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -413
  89. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
  90. package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -728
  91. package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
  92. package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -219
  93. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeAddPageModal.vue +117 -117
  94. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeCustomJSModal.vue +80 -80
  95. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeEventEditorModal.vue +398 -398
  96. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLifeCycleModal.vue +65 -65
  97. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicCallbackModal.vue +64 -64
  98. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicParamModal.vue +73 -73
  99. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeRunFunctionParamModal.vue +76 -76
  100. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  101. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  102. package/src/base-client/components/common/Recording/Recording.vue +243 -243
  103. package/src/base-client/components/common/Recording/index.js +3 -3
  104. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  105. package/src/base-client/components/common/Tree/index.js +2 -2
  106. package/src/base-client/components/common/Upload/index.js +3 -3
  107. package/src/base-client/components/common/XAddForm/XAddForm.vue +113 -113
  108. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +1146 -1146
  109. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  110. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +303 -303
  111. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  112. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  113. package/src/base-client/components/common/XAddReport/index.js +3 -3
  114. package/src/base-client/components/common/XAddReport/index.md +56 -56
  115. package/src/base-client/components/common/XBadge/XBadge.vue +94 -94
  116. package/src/base-client/components/common/XButtons/XButtonDemo.vue +28 -28
  117. package/src/base-client/components/common/XButtons/XButtons.vue +71 -71
  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/XCard/XCard.vue +64 -64
  121. package/src/base-client/components/common/XCheckList/XCheckList.vue +106 -106
  122. package/src/base-client/components/common/XCheckList/XCheckListDemo.vue +41 -41
  123. package/src/base-client/components/common/XCollapse/XCollapse.vue +154 -154
  124. package/src/base-client/components/common/XCollapse/XCollapseDemo.vue +15 -0
  125. package/src/base-client/components/common/XDataCard/XDataCard.vue +583 -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/index.md +92 -92
  147. package/src/base-client/components/common/XImportExcel/XImportExcel.vue +167 -167
  148. package/src/base-client/components/common/XLabelSelect/XLabelSelect.vue +110 -110
  149. package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
  150. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  151. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  152. package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
  153. package/src/base-client/components/common/XPrint/PrintBill.vue +302 -302
  154. package/src/base-client/components/common/XPrint/PrintHtml.js +98 -98
  155. package/src/base-client/components/common/XPrint/css/hiPrintCss.js +359 -359
  156. package/src/base-client/components/common/XPrint/css/lodopCss.js +26 -26
  157. package/src/base-client/components/common/XPrint/css/print-lock.css +351 -351
  158. package/src/base-client/components/common/XPrint/index.vue +97 -97
  159. package/src/base-client/components/common/XReport/XReport.vue +892 -892
  160. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  161. package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
  162. package/src/base-client/components/common/XReport/index.js +3 -3
  163. package/src/base-client/components/common/XReport/index.md +44 -44
  164. package/src/base-client/components/common/XReport/print.js +186 -186
  165. package/src/base-client/components/common/XReportDrawer/index.js +3 -3
  166. package/src/base-client/components/common/XReportGrid/index.js +3 -3
  167. package/src/base-client/components/common/XReportGrid/index.md +44 -44
  168. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  169. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  170. package/src/base-client/components/common/XReportSlot/index.md +48 -48
  171. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
  172. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
  173. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
  174. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  175. package/src/base-client/components/common/XStepView/index.js +3 -3
  176. package/src/base-client/components/common/XStepView/index.md +31 -31
  177. package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
  178. package/src/base-client/components/common/XTab/index.js +3 -3
  179. package/src/base-client/components/common/XTable/CustomFuncCel.vue +51 -51
  180. package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
  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/XHisEditor.vue +360 -359
  191. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  192. package/src/base-client/components/index.js +51 -51
  193. package/src/base-client/components/layout/XPageView/XErrorView.vue +11 -11
  194. package/src/base-client/components/layout/XPageView/XPageView.vue +155 -155
  195. package/src/base-client/components/layout/XPageView/index.js +3 -3
  196. package/src/base-client/components/layout/XPageView/index.md +38 -38
  197. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  198. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  199. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  200. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  201. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  202. package/src/base-client/plugins/AppData.js +121 -121
  203. package/src/base-client/plugins/Config.js +19 -19
  204. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  205. package/src/base-client/plugins/Recording.js +258 -258
  206. package/src/base-client/plugins/index.js +23 -23
  207. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  208. package/src/bootstrap.js +42 -42
  209. package/src/components/Charts/Bar.vue +62 -62
  210. package/src/components/Charts/ChartCard.vue +134 -134
  211. package/src/components/Charts/Liquid.vue +67 -67
  212. package/src/components/Charts/MiniArea.vue +39 -39
  213. package/src/components/Charts/MiniBar.vue +39 -39
  214. package/src/components/Charts/MiniProgress.vue +75 -75
  215. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  216. package/src/components/Charts/Radar.vue +68 -68
  217. package/src/components/Charts/RankList.vue +77 -77
  218. package/src/components/Charts/TagCloud.vue +113 -113
  219. package/src/components/Charts/TransferBar.vue +64 -64
  220. package/src/components/Charts/Trend.vue +82 -82
  221. package/src/components/Charts/chart.less +12 -12
  222. package/src/components/Charts/smooth.area.less +13 -13
  223. package/src/components/CodeMirror/inedx.vue +118 -118
  224. package/src/components/CodeMirror/setting.js +40 -40
  225. package/src/components/FilePreview/FilePreview.vue +166 -166
  226. package/src/components/HeightScanner/index.vue +571 -571
  227. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  228. package/src/components/NumberInfo/index.js +3 -3
  229. package/src/components/NumberInfo/index.less +54 -54
  230. package/src/components/NumberInfo/index.md +43 -43
  231. package/src/components/card/ChartCard.vue +79 -79
  232. package/src/components/chart/Bar.vue +60 -60
  233. package/src/components/chart/MiniArea.vue +67 -67
  234. package/src/components/chart/MiniBar.vue +59 -59
  235. package/src/components/chart/MiniProgress.vue +57 -57
  236. package/src/components/chart/Radar.vue +80 -80
  237. package/src/components/chart/RankingList.vue +60 -60
  238. package/src/components/chart/Trend.vue +79 -79
  239. package/src/components/chart/index.less +9 -9
  240. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  241. package/src/components/checkbox/ImgCheckbox.vue +117 -117
  242. package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
  243. package/src/components/checkbox/index.js +9 -9
  244. package/src/components/exception/ExceptionPage.vue +70 -70
  245. package/src/components/g2Charts/constants.js +202 -202
  246. package/src/components/g2Charts/demo.vue +808 -808
  247. package/src/components/g2Charts/designer.vue +228 -228
  248. package/src/components/g2Charts/designerBaseConfig.vue +61 -61
  249. package/src/components/g2Charts/designerDataConfig.vue +259 -259
  250. package/src/components/g2Charts/designerStyleConfig.vue +16 -16
  251. package/src/components/g2Charts/index.vue +397 -397
  252. package/src/components/index.js +36 -36
  253. package/src/components/input/IInput.vue +66 -66
  254. package/src/components/menu/SideMenu.vue +75 -75
  255. package/src/components/menu/menu.js +273 -273
  256. package/src/components/setting/Setting.vue +234 -234
  257. package/src/components/tool/AStepItem.vue +60 -60
  258. package/src/config/CreateQueryConfig.js +325 -325
  259. package/src/config/default/antd.config.js +89 -89
  260. package/src/config/default/setting.config.js +55 -55
  261. package/src/font-style/font.css +4 -4
  262. package/src/layouts/CommonLayout.vue +56 -56
  263. package/src/layouts/PageLayout.vue +151 -151
  264. package/src/layouts/SinglePageView.vue +136 -136
  265. package/src/layouts/header/AdminHeader.vue +132 -132
  266. package/src/layouts/header/HeaderNotice.vue +177 -177
  267. package/src/layouts/header/InstitutionDetail.vue +181 -181
  268. package/src/layouts/tabs/TabsHead.vue +189 -189
  269. package/src/layouts/tabs/TabsView.vue +389 -389
  270. package/src/lib.js +1 -1
  271. package/src/main.js +34 -34
  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 +118 -116
  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//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
@@ -1,568 +1,583 @@
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
6
+ :key="'card' + itemIndex"
7
+ class="data-card"
8
+ :class="{ 'card-clicked': card.isClicked }"
9
+ >
10
+ <div
11
+ v-if="config && card[config.ribbon]"
12
+ class="ribbon"
13
+ :style="{ backgroundColor: getRibbonColor(card[config.ribbonColor]) }">
14
+ {{ card[config.ribbon] }}
15
+ </div>
16
+ <!-- 自定义标题 -->
17
+ <template #title>
18
+ <div class="custom-title" @click="clickFooter(card, 'cardclick')">
19
+ <a-tooltip placement="top">
20
+ <template #title>{{ card[config.id] }}</template>
21
+ <div class="title-id" v-if="card[config.id]">{{ card[config.id] }}</div>
22
+ </a-tooltip>
23
+ <div class="title-basic">
24
+ <div class="title-main">
25
+ <span class="title-name">{{ card[config.title] }}</span>
26
+ <span class="title-info">{{ card[config.title2] }}</span>
27
+ <span class="title-title3">{{ card[config.title3] }}</span>
28
+ </div>
29
+ <div class="additional-info" v-if="card[config.subtitle2] || card[config.subtitle3] || card[config.subtitle4]">
30
+ <a-tooltip placement="top" v-if="card[config.subtitle2]">
31
+ <template #title>{{ card[config.subtitle2] }}</template>
32
+ <span class="subtitle2">{{ card[config.subtitle2] }}</span>
33
+ </a-tooltip>
34
+ <a-tooltip placement="top" v-if="card[config.subtitle3]">
35
+ <template #title>{{ card[config.subtitle3] }}</template>
36
+ <span class="subtitle3">{{ card[config.subtitle3] }}</span>
37
+ </a-tooltip>
38
+ <span class="subtitle4" v-if="card[config.subtitle4]">{{ card[config.subtitle4] }}</span>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ </template>
43
+ <!-- 主体 -->
44
+ <div class="body" v-if="card[config.text] || (config.content && config.content.length > 0)">
45
+ <div class="body-text" v-if="card[config.text]">
46
+ <a-tooltip :title="card[config.text]">
47
+ <span class="text-ellipsis">{{ card[config.text] }}</span>
48
+ </a-tooltip>
49
+ </div>
50
+ <template v-for="(item, bodyIndex) in config.content" v-if="bodyIndex < 6">
51
+ <div :key="'body' + bodyIndex" class="body-item">
52
+ <span class="body-item-label">{{ item.label }}:</span>
53
+ <template v-if="item.type === 'progress'">
54
+ <div class="progress">
55
+ <div class="progress-bar">
56
+ <div class="progress-done" :style="'width:' + card[item.key] * 100 + '%;backgroundColor: ' + determineRatioColor(card[item.key] * 100)"></div>
57
+ </div>
58
+ </div>
59
+ <div class="progress-num">{{ card[item.key] * 100 }}%</div>
60
+ </template>
61
+ <template v-else-if="item.type === 'custom' && tableColumns">
62
+ <!-- 根据 tableColumns 显示自定义内容 -->
63
+ <span v-for="column in tableColumns" v-if="column.dataIndex === item.key" :key="column.dataIndex">
64
+ <template v-if="column.slotType === 'badge'">
65
+ <x-badge
66
+ :service-name="serviceName"
67
+ :env="env"
68
+ :dataCard="true"
69
+ :badge-key="column.slotKeyMap"
70
+ :value="card[item.key]" />
71
+ </template>
72
+ <template v-else>
73
+ <slot :name="column.slots.customRender">{{ card[item.key] }}</slot>
74
+ </template>
75
+ </span>
76
+ </template>
77
+ <template v-else>
78
+ <span class="body-item-value">{{ card[item.key] }}</span>
79
+ </template>
80
+ </div>
81
+ <a-divider
82
+ v-if="bodyIndex !== config.content.length - 1"
83
+ dashed
84
+ :key="'body' + bodyIndex + 'after'"
85
+ class="body-split" />
86
+ </template>
87
+ </div>
88
+ <!-- 下方按钮 -->
89
+ <template #actions>
90
+ <a-row align="middle" class="custom-actions" v-if="config && config.footer && config.footer.length > 0">
91
+ <template v-for="(item, footerIndex) in config.footer">
92
+ <a-col :key="'footer_' + footerIndex" class="footer-item" :span="11" @click="clickFooter(card, item.emit)">
93
+ <span>
94
+ <a-icon :type="item.icon" class="footer-icon" />
95
+ <span>{{ item.label }}</span>
96
+ </span>
97
+ </a-col>
98
+ <a-col
99
+ v-if="footerIndex !== config.footer.length - 1"
100
+ :span="1"
101
+ :key="'footer_' + footerIndex + 'after'"
102
+ class="footer-item-split">
103
+ |
104
+ </a-col>
105
+ </template>
106
+ </a-row>
107
+ </template>
108
+ </a-card>
109
+ </template>
110
+ </div>
111
+ <div v-else>
112
+ <a-skeleton />
113
+ </div>
114
+ <div v-if="this.showPagination">
115
+ <a-divider />
116
+ <a-pagination
117
+ v-model="pageNum"
118
+ style="float: right"
119
+ :total="total"
120
+ show-less-items
121
+ :page-size="pageSize"
122
+ :page-size-options="pageSizeOptions"
123
+ show-size-changer
124
+ @change="pageNumChange"
125
+ :showTotal="paginationShowTotal"
126
+ @showSizeChange="pageSizeChange">
127
+ </a-pagination>
128
+ </div>
129
+ </div>
130
+ </template>
131
+
132
+ <script>
133
+ import XBadge from '@vue2-client/base-client/components/common/XBadge'
134
+
135
+ export default {
136
+ name: 'XDataCard',
137
+ components: {
138
+ XBadge,
139
+ },
140
+ props: {
141
+ // 卡片数据更新方法
142
+ cardData: {
143
+ type: Function,
144
+ default: undefined
145
+ },
146
+ // 卡片的配置
147
+ cardConfig: {
148
+ type: Object,
149
+ default: undefined
150
+ },
151
+ showPagination: {
152
+ type: Boolean,
153
+ default: false
154
+ },
155
+ // 临时
156
+ testData: {
157
+ type: Array,
158
+ default: undefined
159
+ },
160
+ tableColumns: {
161
+ type: Array,
162
+ default: undefined
163
+ },
164
+ // 服务名称
165
+ serviceName: undefined,
166
+ // 当前环境
167
+ env: {
168
+ type: String,
169
+ default: 'prod'
170
+ },
171
+ // pageSize参数
172
+ prePageSize: {
173
+ type: Number,
174
+ default: undefined
175
+ },
176
+ // 初始是否加载数据
177
+ createdQuery: {
178
+ type: Boolean,
179
+ default: false
180
+ }
181
+ },
182
+ inject: ['getConfigByName'],
183
+ data () {
184
+ return {
185
+ // 配置
186
+ config: {},
187
+ // 数据
188
+ data: {},
189
+ // 当前页码
190
+ pageNum: 1,
191
+ // 控制渲染
192
+ render: true,
193
+ // 分页大小
194
+ pageSize: 10,
195
+ // 分页大小选项
196
+ pageSizeOptions: ['4', '6', '8', '10'],
197
+ // 数据总数
198
+ total: 0
199
+ }
200
+ },
201
+ created () {
202
+ // 根据参数初始化数据值
203
+ if (this.prePageSize) {
204
+ this.pageSize = this.prePageSize
205
+ }
206
+ },
207
+ mounted () {
208
+ // 配置初始化
209
+ if (this.cardConfig) {
210
+ this.config = this.cardConfig
211
+ } else {
212
+ this.config = {
213
+ id: '未获取到配置',
214
+ title: 'title',
215
+ title2: 'title2',
216
+ title3: '未获取到配置',
217
+ subtitle2: '未获取到配置',
218
+ subtitle3: '未获取到配置',
219
+ subtitle4: '未获取到配置',
220
+ text: '未获取到配置',
221
+ ribbon: '未获取到配置',
222
+ ribbonColor: '未获取到配置',
223
+ content: [
224
+ {
225
+ label: '未获取到配置',
226
+ key: 'one'
227
+ },
228
+ {
229
+ label: '未获取到配置',
230
+ key: 'two'
231
+ },
232
+ {
233
+ label: '未获取到配置',
234
+ key: 'three'
235
+ },
236
+ {
237
+ label: '未获取到配置',
238
+ key: 'four'
239
+ },
240
+ {
241
+ label: '未获取到配置',
242
+ key: 'five'
243
+ },
244
+ {
245
+ label: '未获取到配置',
246
+ key: 'six',
247
+ type: 'progress'
248
+ }
249
+ ],
250
+ footer: [
251
+ {
252
+ icon: 'edit',
253
+ label: '未获取到配置',
254
+ emit: 'planEdit'
255
+ },
256
+ {
257
+ icon: 'user',
258
+ label: '未获取到配置',
259
+ emit: 'user'
260
+ }
261
+ ]
262
+ }
263
+ console.warn(this.config)
264
+ }
265
+
266
+ // 数据初始化
267
+ if (this.cardData) {
268
+ // if (this.createdQuery) {
269
+ // this.loadData()
270
+ // }
271
+ } else {
272
+ this.data = [{
273
+ one: '未获取到配置',
274
+ two: '未获取到配置',
275
+ three: '未获取到配置',
276
+ four: '未获取到配置',
277
+ five: '未获取到配置',
278
+ six: 70,
279
+ title: '大苏打撒旦',
280
+ title2: '大苏旦'
281
+ }]
282
+ }
283
+ // 测试数据初始化
284
+ if (this.testData) {
285
+ this.data = this.testData
286
+ }
287
+ },
288
+ methods: {
289
+ // 根据比例计算出颜色
290
+ determineRatioColor (ratio, isNum = false) {
291
+ let result
292
+ // 如果是数字,并且比例大于79,则将数字显示为黑色
293
+ if (isNum && ratio > 79) {
294
+ return 'rgb(0,0,0)'
295
+ }
296
+ if (ratio >= 90) {
297
+ result = 'rgb( 1,245, 38 )'
298
+ } else if (ratio >= 75) {
299
+ result = 'rgb( 139,245, 0)'
300
+ } else if (ratio >= 40) {
301
+ result = 'rgb(245,163, 0)'
302
+ } else if (ratio >= 20) {
303
+ result = 'rgb(244, 96, 0)'
304
+ } else {
305
+ result = 'rgb(255, 0, 0)'
306
+ }
307
+ return result
308
+ },
309
+ // 点击按钮
310
+ clickFooter (data, eventName) {
311
+ if (eventName === 'cardclick') {
312
+ // 设置点击状态
313
+ this.$set(data, 'isClicked', !data.isClicked)
314
+ }
315
+ this.$emit('cardEmit', data, eventName)
316
+ },
317
+ // 获取数据
318
+ loadData () {
319
+ this.render = false
320
+ const parameter = Object.assign({
321
+ querySummary: false, // 分页查询的情况不重新获取汇总数据
322
+ pageNo: this.pageNum,
323
+ pageSize: this.pageSize
324
+ }
325
+ )
326
+ this.cardData(parameter).then(res => {
327
+ this.data = res.data
328
+ this.total = res.totalCount
329
+ this.render = true
330
+ })
331
+ },
332
+ // 页码改变
333
+ pageNumChange (page, pageSize) {
334
+ this.pageNum = page
335
+ this.pageSize = pageSize
336
+ this.loadData()
337
+ },
338
+ // 分页大小改变
339
+ pageSizeChange (current, pageSize) {
340
+ this.pageSize = pageSize
341
+ this.loadData()
342
+ },
343
+ // 刷新
344
+ refresh () {
345
+ this.loadData()
346
+ },
347
+ // 分页前展示当前项和总数
348
+ paginationShowTotal () {
349
+ return `${(this.pageNum - 1) * this.pageSize + 1 } - ${ this.pageNum * this.pageSize } | 共 ${ this.total } 项`
350
+ },
351
+ getRibbonColor (color) {
352
+ switch (color) {
353
+ case 'red':
354
+ return '#ff4d4f'
355
+ case 'blue':
356
+ return '#1890ff'
357
+ case 'yellow':
358
+ return '#fadb14'
359
+ default:
360
+ return '#ff4d4f' // 默认红色
361
+ }
362
+ }
363
+ }
364
+ }
365
+ </script>
366
+
367
+ <style lang="less" scoped>
368
+ .hide-page-numbers /deep/ .ant-pagination-item,
369
+ .hide-page-numbers /deep/ .ant-pagination-jump-next {
370
+ display: none !important; /* 隐藏数字页码和多页跳转 */
371
+ }
372
+ .hide-page-numbers /deep/ .ant-pagination-prev,
373
+ .hide-page-numbers /deep/ .ant-pagination-next {
374
+ display: inline-block !important; /* 保留左右跳转按钮 */
375
+ }
376
+
377
+ .XCard {
378
+ display: flex;
379
+ flex-wrap: wrap;
380
+ justify-content: flex-start;
381
+ overflow-y: auto;
382
+ overflow-x: hidden;
383
+ max-height: 85vh;
384
+ .data-card {
385
+ width: 100%;
386
+ max-width: 300px;
387
+ border: 2px solid rgb(244,244,244);
388
+ border-radius: 5px;
389
+ margin: 2px;
390
+ overflow: hidden;
391
+
392
+ ::v-deep .ant-card-body {
393
+ padding: 15px !important; // 使用 !important 确保样式覆盖
394
+ }
395
+
396
+ .header {
397
+ width: 100%;
398
+ background-color: rgb(244,244,244);
399
+ padding: 5px 15px;
400
+
401
+ span {
402
+ font-weight: bold;
403
+ font-size: 1.1em;
404
+ }
405
+ }
406
+
407
+ .body {
408
+ .body-text{
409
+ width: 500px;
410
+ font-weight: bold;
411
+ font-size: 1.1em;
412
+ .text-ellipsis{
413
+ display: inline-block;
414
+ max-width: 260px; /* 控制文本的最大宽度 */
415
+ white-space: nowrap;
416
+ overflow: hidden;
417
+ text-overflow: ellipsis;
418
+ }
419
+ }
420
+
421
+ .body-item {
422
+ padding: 3px 5px;
423
+ }
424
+
425
+ .body-split {
426
+ margin: 1px 0;
427
+ }
428
+
429
+ .body-item-label {
430
+ color: rgba(117, 117, 117, 0.8);
431
+ font-size: 0.95em;
432
+ }
433
+
434
+ .body-item-value {
435
+ color: black;
436
+ }
437
+
438
+ .progress {
439
+ display: inline-block;
440
+ width: 60%;
441
+ height: 60%;
442
+ float: right;
443
+ padding-right: 1.5%;
444
+ margin-top: 0.5%;
445
+
446
+ .progress-bar {
447
+ width: 100%;
448
+ height: 90%;
449
+ display: inline-block;
450
+ border-radius: 10%;
451
+ background-color: rgba(212,217,218, 0.6);
452
+
453
+ .progress-done {
454
+ float: left;
455
+ display: inline-block;
456
+ height: 100%;
457
+ border-radius: 10%;
458
+ }
459
+ }
460
+ }
461
+ .progress-num {
462
+ position: relative;
463
+ top: -83%;
464
+ left: -3%;
465
+ text-align: end;
466
+ font-size: 0.9em;
467
+ color: black;
468
+ }
469
+ }
470
+
471
+ &.card-clicked {
472
+ :deep(.ant-card-head) {
473
+ background-color: #e6f7ff; // 淡蓝色背景
474
+ transition: background-color 0.3s ease;
475
+ }
476
+ }
477
+ }
478
+
479
+ .custom-title {
480
+ display: flex;
481
+ align-items: center;
482
+ gap: 12px;
483
+
484
+ &:hover {
485
+ cursor: pointer;
486
+ }
487
+
488
+ .title-id {
489
+ flex-shrink: 0;
490
+ width: 65px;
491
+ color: #1890ff;
492
+ font-size: 16px;
493
+ font-weight: bold;
494
+ padding: 4px 8px;
495
+ border: 1px solid #1890ff;
496
+ border-radius: 4px;
497
+ line-height: 1.4;
498
+ text-align: center;
499
+ white-space: nowrap;
500
+ overflow: hidden;
501
+ text-overflow: ellipsis;
502
+ }
503
+
504
+ .title-basic {
505
+ display: flex;
506
+ flex-direction: column;
507
+ flex-grow: 1;
508
+
509
+ .subtitle2, .subtitle3 {
510
+ display: inline-block;
511
+ max-width: 50px; /* 固定宽度 */
512
+ white-space: nowrap;
513
+ overflow: hidden;
514
+ text-overflow: ellipsis;
515
+ }
516
+
517
+ .title-main {
518
+ display: flex;
519
+ align-items: center;
520
+ gap: 8px;
521
+ .title-info {
522
+ margin-left: 6px;
523
+ color: #808080;
524
+ }
525
+ .title-title3 {
526
+ color: #808080;
527
+ }
528
+ }
529
+
530
+ .additional-info {
531
+ display: flex;
532
+ gap: 8px;
533
+ font-size: 13px;
534
+ color: #808080;
535
+ .subtitle4 {
536
+ color: rgba(0, 0, 255, 0.8);
537
+ }
538
+ }
539
+ }
540
+ }
541
+
542
+ .ribbon {
543
+ position: absolute;
544
+ top: 16px;
545
+ right: -6px;
546
+ background-color: #ff4d4f;
547
+ color: white;
548
+ padding: 5px 25px;
549
+ font-size: 12px;
550
+ transform: rotate(45deg) translateX(30%);
551
+ transform-origin: top right;
552
+ z-index: 1;
553
+ }
554
+
555
+ .custom-actions {
556
+ .footer-icon {
557
+ margin-right: 5px;
558
+ }
559
+
560
+ .footer-item-split {
561
+ color: rgba(220, 220, 220, 0.59);
562
+ }
563
+
564
+ .footer-item {
565
+ color: rgba(117, 117, 117, 0.8);
566
+ font-size: 1em;
567
+ }
568
+
569
+ .footer-item:hover {
570
+ color: rgb( 24,144,255 );
571
+ cursor: pointer;
572
+ }
573
+ }
574
+ }
575
+
576
+ .ellipsis {
577
+ display: inline-block;
578
+ max-width: 60px;
579
+ white-space: nowrap;
580
+ overflow: hidden;
581
+ text-overflow: ellipsis;
582
+ }
583
+ </style>