vue2-client 1.9.78 → 1.9.79

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 (337) hide show
  1. package/.env +19 -19
  2. package/.env.gaslink +19 -19
  3. package/.env.his +19 -19
  4. package/.env.revenue +19 -19
  5. package/.eslintrc.js +90 -90
  6. package/CHANGELOG.md +824 -824
  7. package/Components.md +60 -60
  8. package/babel.config.js +21 -21
  9. package/docs/Logic/345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +45 -45
  10. package/docs/LowCode/lowcode.md +155 -155
  11. package/docs/LowCode/lowcodeForDeveloper.md +230 -230
  12. package/docs/index.md +30 -30
  13. package/docs//345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +143 -143
  14. package/index.js +31 -31
  15. package/jest-transform-stub.js +8 -8
  16. package/jest.config.js +21 -21
  17. package/jest.setup.js +7 -7
  18. package/package.json +1 -1
  19. package/public/his/editor/editor.html +51 -51
  20. package/public/his/editor/mock/bind_data.html +779 -779
  21. package/public/his/editor/mock/data_table.html +40 -40
  22. package/public/his/editor/mock/sign.html +75 -75
  23. package/public/his/editor/vender/JsBarcode.all.js +3669 -3669
  24. package/public/his/editor/vender/date97/My97DatePicker.htm +65 -65
  25. package/public/his/editor/vender/date97/WdatePicker.js +677 -677
  26. package/public/his/editor/vender/date97/calendar.js +4 -4
  27. package/public/his/editor/vender/date97/lang/en.js +13 -13
  28. package/public/his/editor/vender/date97/lang/zh-cn.js +13 -13
  29. package/public/his/editor/vender/date97/lang/zh-tw.js +13 -13
  30. package/public/his/editor/vender/date97/skin/WdatePicker.css +10 -10
  31. package/public/his/editor/vender/date97/skin/default/datepicker.css +328 -328
  32. package/public/his/editor/vender/date97/skin/ext/datepicker.css +308 -308
  33. package/public/his/editor/vender/date97/skin/whyGreen/datepicker.css +255 -255
  34. package/public/his/editor/vender/diff.js +1627 -1627
  35. package/public/his/editor/vender/editor.js +1 -1
  36. package/public/his/editor/vender/fabric.js +31187 -31187
  37. package/public/his/editor/vender/jquery/jquery.base64.js +190 -190
  38. package/public/his/editor/vender/jquery/jquery.js +10872 -10872
  39. package/public/his/editor/vender/jquery/jquery.print.js +255 -255
  40. package/public/his/editor/vender/jquery/zTreeStyle/zTreeStyle.css +96 -96
  41. package/public/his/editor/vender/mui/mui.min.css +4 -4
  42. package/public/his/editor/vender/mui/mui.min.js +5 -5
  43. package/public/his/editor/vender/mui/mui.picker.min.css +6 -6
  44. package/public/his/editor/vender/mui/mui.picker.min.js +6 -6
  45. package/public/his/editor/vender/qrcode.js +7 -7
  46. package/public/his/editor/vender/requirejs/require.js +2145 -2145
  47. package/public/his/editor/vender/signature/jSignature.CompressorSVG.js +518 -518
  48. package/public/his/editor/vender/signature/jSignature.UndoButton.js +164 -164
  49. package/public/his/editor/vender/signature/jSignature.js +1486 -1486
  50. package/public/his/editor/vender/validator.js +5094 -5094
  51. package/public/his/editor/vender/weui/weui.css +5659 -5659
  52. package/public/his/editor/vender/weui/weui.min.css +4 -4
  53. package/public/his/editor/vender/weui/weui.min.js +11 -11
  54. package/public/index.html +27 -27
  55. package/src/App.vue +192 -192
  56. package/src/ReportView.js +19 -19
  57. package/src/assets/img/querySlotDemo.svg +15 -15
  58. package/src/assets/svg/badtwo.svg +1 -1
  59. package/src/assets/svg/goodtwo.svg +1 -1
  60. package/src/base-client/components/common/AMisRender/index.js +3 -3
  61. package/src/base-client/components/common/AMisRender/index.vue +263 -263
  62. package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +470 -470
  63. package/src/base-client/components/common/AddressSearchCombobox/IcMapIcon.vue +16 -16
  64. package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
  65. package/src/base-client/components/common/AddressSearchCombobox/ic_map.svg +6 -6
  66. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  67. package/src/base-client/components/common/CitySelect/CitySelect.vue +342 -342
  68. package/src/base-client/components/common/CitySelect/index.js +3 -3
  69. package/src/base-client/components/common/CitySelect/index.md +109 -109
  70. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  71. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
  72. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  73. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  74. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
  75. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
  76. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  77. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  78. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +149 -149
  79. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  80. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  81. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  82. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  83. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  84. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  85. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorModal.vue +108 -108
  86. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -413
  87. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
  88. package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -728
  89. package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
  90. package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -219
  91. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeAddPageModal.vue +117 -117
  92. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeCustomJSModal.vue +80 -80
  93. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeEventEditorModal.vue +398 -398
  94. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLifeCycleModal.vue +65 -65
  95. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicCallbackModal.vue +64 -64
  96. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicParamModal.vue +73 -73
  97. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeRunFunctionParamModal.vue +76 -76
  98. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  99. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  100. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  101. package/src/base-client/components/common/Tree/index.js +2 -2
  102. package/src/base-client/components/common/Upload/Upload.vue +239 -239
  103. package/src/base-client/components/common/Upload/index.js +3 -3
  104. package/src/base-client/components/common/XAddForm/XAddForm.vue +107 -107
  105. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +868 -868
  106. package/src/base-client/components/common/XAddNativeForm/demo.vue +30 -30
  107. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  108. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +303 -303
  109. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  110. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  111. package/src/base-client/components/common/XAddReport/XAddReport.vue +207 -207
  112. package/src/base-client/components/common/XBadge/XBadge.vue +94 -94
  113. package/src/base-client/components/common/XButtons/XButtonDemo.vue +28 -28
  114. package/src/base-client/components/common/XButtons/XButtons.vue +71 -71
  115. package/src/base-client/components/common/XButtons/index.js +3 -3
  116. package/src/base-client/components/common/XButtons/index.md +61 -61
  117. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  118. package/src/base-client/components/common/XConversation/XConversation.vue +140 -140
  119. package/src/base-client/components/common/XConversation/XConversationDemo.vue +28 -28
  120. package/src/base-client/components/common/XDataCard/XDataCard.vue +420 -420
  121. package/src/base-client/components/common/XDataCard/index.js +3 -3
  122. package/src/base-client/components/common/XDataCard/index.md +1 -1
  123. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  124. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  125. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  126. package/src/base-client/components/common/XDescriptions/XDescriptions.vue +169 -169
  127. package/src/base-client/components/common/XDescriptions/XDescriptionsGroup.vue +304 -304
  128. package/src/base-client/components/common/XDescriptions/demo.vue +50 -50
  129. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  130. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  131. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +238 -238
  132. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  133. package/src/base-client/components/common/XForm/XForm.vue +340 -340
  134. package/src/base-client/components/common/XForm/XFormItem.vue +4 -3
  135. package/src/base-client/components/common/XForm/XTreeSelect.vue +250 -250
  136. package/src/base-client/components/common/XForm/index.md +178 -178
  137. package/src/base-client/components/common/XFormCol/XFormCol.vue +96 -96
  138. package/src/base-client/components/common/XFormGroup/XFormGroup.vue +261 -261
  139. package/src/base-client/components/common/XFormGroup/demo.vue +45 -45
  140. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  141. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  142. package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +72 -72
  143. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  144. package/src/base-client/components/common/XFormTable/XFormTable.vue +713 -713
  145. package/src/base-client/components/common/XFormTable/demo.vue +76 -76
  146. package/src/base-client/components/common/XFormTable/index.md +92 -92
  147. package/src/base-client/components/common/XImportExcel/XImportExcel.vue +162 -162
  148. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  149. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  150. package/src/base-client/components/common/XReport/XReport.vue +892 -892
  151. package/src/base-client/components/common/XReport/XReportDemo.vue +304 -304
  152. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  153. package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
  154. package/src/base-client/components/common/XReport/XReportTrGroup.vue +808 -808
  155. package/src/base-client/components/common/XReport/index.js +3 -3
  156. package/src/base-client/components/common/XReport/index.md +44 -44
  157. package/src/base-client/components/common/XReport/print.js +186 -186
  158. package/src/base-client/components/common/XReportDrawer/XReportDrawer.vue +201 -201
  159. package/src/base-client/components/common/XReportDrawer/index.js +3 -3
  160. package/src/base-client/components/common/XReportGrid/XReport.vue +995 -959
  161. package/src/base-client/components/common/XReportGrid/XReportDemo.vue +42 -42
  162. package/src/base-client/components/common/XReportGrid/XReportDesign.vue +557 -557
  163. package/src/base-client/components/common/XReportGrid/XReportJsonRender.vue +380 -380
  164. package/src/base-client/components/common/XReportGrid/XReportTrGroup.vue +999 -999
  165. package/src/base-client/components/common/XReportGrid/index.js +3 -3
  166. package/src/base-client/components/common/XReportGrid/index.md +44 -44
  167. package/src/base-client/components/common/XReportGrid/print.js +184 -184
  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/XTab.vue +201 -201
  178. package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
  179. package/src/base-client/components/common/XTab/index.js +3 -3
  180. package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
  181. package/src/base-client/components/common/XTable/XTable.vue +1191 -1191
  182. package/src/base-client/components/common/XTable/index.md +255 -255
  183. package/src/base-client/components/common/XTree/XTree.vue +423 -423
  184. package/src/base-client/components/common/XTree/XTreePro.vue +434 -434
  185. package/src/base-client/components/common/XTree/index.js +3 -3
  186. package/src/base-client/components/common/XTree/index.md +36 -36
  187. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
  188. package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
  189. package/src/base-client/components/common/richTextModal/index.vue +56 -56
  190. package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
  191. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +203 -203
  192. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  193. package/src/base-client/components/index.js +51 -51
  194. package/src/base-client/components/layout/XPageView/RenderRow.vue +63 -63
  195. package/src/base-client/components/layout/XPageView/XErrorView.vue +11 -11
  196. package/src/base-client/components/layout/XPageView/XPageView.vue +155 -155
  197. package/src/base-client/components/layout/XPageView/index.js +3 -3
  198. package/src/base-client/components/layout/XPageView/index.md +38 -38
  199. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  200. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  201. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  202. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  203. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  204. package/src/base-client/plugins/AppData.js +121 -121
  205. package/src/base-client/plugins/Config.js +19 -19
  206. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  207. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  208. package/src/bootstrap.js +39 -39
  209. package/src/components/CodeMirror/inedx.vue +118 -118
  210. package/src/components/CodeMirror/setting.js +40 -40
  211. package/src/components/FilePreview/FilePreview.vue +166 -166
  212. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  213. package/src/components/STable/index.js +380 -380
  214. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  215. package/src/components/checkbox/ImgCheckbox.vue +163 -163
  216. package/src/components/exception/ExceptionPage.vue +70 -70
  217. package/src/components/menu/SideMenu.vue +75 -75
  218. package/src/components/menu/menu.js +273 -273
  219. package/src/components/tool/AStepItem.vue +60 -60
  220. package/src/config/default/antd.config.js +89 -89
  221. package/src/config/default/setting.config.js +55 -55
  222. package/src/font-style/font.css +4 -4
  223. package/src/layouts/CommonLayout.vue +56 -56
  224. package/src/layouts/GridView.vue +45 -45
  225. package/src/layouts/PageLayout.vue +151 -151
  226. package/src/layouts/SinglePageView.vue +136 -136
  227. package/src/layouts/header/AdminHeader.vue +132 -132
  228. package/src/layouts/header/HeaderNotice.vue +177 -177
  229. package/src/layouts/tabs/TabsHead.vue +189 -189
  230. package/src/layouts/tabs/TabsView.vue +389 -389
  231. package/src/lib.js +1 -1
  232. package/src/main.js +30 -30
  233. package/src/mock/extend/index.js +84 -84
  234. package/src/mock/goods/index.js +108 -108
  235. package/src/pages/AMisDemo/AMisDemo.vue +325 -325
  236. package/src/pages/AMisDemo/AMisDemo2.vue +74 -74
  237. package/src/pages/DefaultExample/index.vue +77 -77
  238. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  239. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  240. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  241. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  242. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  243. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  244. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  245. package/src/pages/DynamicStatistics/index.vue +282 -282
  246. package/src/pages/Example/childIndex.vue +15 -15
  247. package/src/pages/Example/index.vue +30 -30
  248. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  249. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  250. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  251. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  252. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  253. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  254. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  255. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  256. package/src/pages/Recording/index.vue +76 -0
  257. package/src/pages/ReportGrid/index.vue +76 -76
  258. package/src/pages/ServiceReview/index.vue +284 -284
  259. package/src/pages/SubExample/index.vue +26 -26
  260. package/src/pages/WorkflowDetail/WorkFlowDemo.vue +32 -32
  261. package/src/pages/WorkflowDetail/WorkflowDetail.vue +230 -230
  262. package/src/pages/WorkflowDetail/WorkflowPageDetail/LeaveMessage.vue +131 -131
  263. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  264. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformation.vue +302 -302
  265. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformationDetails.vue +276 -276
  266. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandle.vue +864 -864
  267. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandleReso.vue +997 -997
  268. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowTimeline.vue +222 -222
  269. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkOrderParentDetails.vue +233 -233
  270. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowDetailResso.vue +261 -261
  271. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowListResolution.vue +248 -248
  272. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowLog.vue +73 -73
  273. package/src/pages/XPageViewExample/index.vue +38 -38
  274. package/src/pages/XReportView/index.vue +64 -64
  275. package/src/pages/XTreeOneProExample/index.vue +67 -67
  276. package/src/pages/login/Login.vue +378 -378
  277. package/src/pages/login/LoginV3.vue +389 -389
  278. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  279. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  280. package/src/pages/resourceManage/orgListManage.vue +98 -98
  281. package/src/pages/system/dictionary/index.vue +44 -44
  282. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  283. package/src/pages/system/monitor/operLog/index.vue +37 -37
  284. package/src/pages/system/settings/modifyPassword.vue +117 -117
  285. package/src/pages/system/ticket/index.vue +480 -480
  286. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  287. package/src/plugins/EventLogPlugin.js +33 -33
  288. package/src/plugins/FindParentsData.js +17 -17
  289. package/src/router/async/config.async.js +1 -0
  290. package/src/router/async/router.map.js +183 -183
  291. package/src/router/guards.js +263 -263
  292. package/src/router/index.js +27 -27
  293. package/src/router.js +19 -19
  294. package/src/services/api/TicketDetailsViewApi.js +46 -46
  295. package/src/services/api/cas.js +79 -79
  296. package/src/services/api/common.js +329 -329
  297. package/src/services/api/entity.js +18 -18
  298. package/src/services/api/index.js +17 -17
  299. package/src/services/api/restTools.js +67 -67
  300. package/src/services/api/workFlow.js +63 -63
  301. package/src/services/apiService.js +15 -15
  302. package/src/services/user.js +90 -90
  303. package/src/services/v3Api.js +116 -116
  304. package/src/store/modules/account.js +115 -115
  305. package/src/store/modules/index.js +5 -5
  306. package/src/store/modules/lowCode.js +33 -33
  307. package/src/store/modules/setting.js +119 -119
  308. package/src/theme/default/style.less +58 -58
  309. package/src/theme/global.less +159 -159
  310. package/src/utils/authority-utils.js +85 -85
  311. package/src/utils/errorCode.js +6 -6
  312. package/src/utils/formatter.js +74 -74
  313. package/src/utils/htmlToPDF.js +108 -108
  314. package/src/utils/htmlToPDFApi.js +5 -5
  315. package/src/utils/indexedDB.js +263 -263
  316. package/src/utils/login.js +188 -188
  317. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  318. package/src/utils/lowcode/lowcodeLog.js +29 -29
  319. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  320. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  321. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  322. package/src/utils/map-utils.js +47 -47
  323. package/src/utils/microAppUtils.js +40 -40
  324. package/src/utils/reg.js +95 -95
  325. package/src/utils/request.js +362 -362
  326. package/src/utils/routerUtil.js +450 -450
  327. package/src/utils/runEvalFunction.js +14 -14
  328. package/src/utils/util.js +313 -313
  329. package/src/utils/waterMark.js +31 -31
  330. package/test/Amis.spec.js +163 -163
  331. package/test/Tree.spec.js +167 -167
  332. package/test/myDialog.spec.js +46 -46
  333. package/test/util.test.js +36 -36
  334. package/test/v3Api.test.js +1983 -1983
  335. package/vue.config.js +199 -199
  336. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
  337. /package/src/base-client/components/common/Recording/{Recoding.vue → Recording.vue} +0 -0
@@ -1,557 +1,557 @@
1
- <template>
2
- <div>
3
- <template v-if="this.activatedConfig.designMode === 'json'">
4
- <XReportJsonRender
5
- @updateImg="updateImg"
6
- @selectRow="selectRow"
7
- :img-prefix="imgPrefix"
8
- :server-name="serverName"
9
- :display-only="displayOnly"
10
- :show-title="showTitle"
11
- :no-padding="noPadding"
12
- :no-top-border="noTopBorder"
13
- :config="activatedConfig"/>
14
- </template>
15
- <template v-else>
16
- <div :class=" noPadding ? 'reportMainNoPadding' : 'reportMain'" :style="activatedConfig.width > 0 ? ('width:' + activatedConfig.width + 'px') : undefined">
17
- <!-- 大标题 -->
18
- <h2 class="reportTitle" v-if="showTitle && activatedConfig.title" v-html="activatedConfig.title"></h2>
19
- <!-- 小标题 / 介乎于标题与表格之间的内容 -->
20
- <div class="subTitle" v-if="activatedConfig.subTitle">
21
- <div class="subTitleItems" v-for="(item, itemIndex) in activatedConfig.subTitle" :key="itemIndex">
22
- <template v-if="item.type === 'column'">
23
- <span>{{ item.text }}</span>
24
- </template>
25
- <template v-else-if="item.type === 'inputs'">
26
- <div class="inputsDiv">
27
- <div class="inputsDivItem" v-for="(num, index) of calcFormatInputNum(item.format)" :key="index">
28
- <span class="inputsDivItemLabel">{{ displayFormatStartText(item.format) }}</span>
29
- <template v-if="!forDisplay">
30
- <template v-if="item.inputReadOnly === true">
31
- <a-input v-model="data[item.dataIndex][index]" :style="'width:' + (item.inputWidth ? item.inputWidth : '100') + '%'" :disabled="true"/>
32
- </template>
33
- <template v-else>
34
- <a-input v-model="data[item.dataIndex][index]" :style="'width:' + (item.inputWidth ? item.inputWidth : '100') + '%'"/>
35
- </template>
36
- </template>
37
- <template v-else>
38
- {{ activatedConfig.data[item.dataIndex][index] }}
39
- </template>
40
- <span class="inputsDivItemLabel">{{ displayFormatText(item.format, index) }}</span>
41
- </div>
42
- </div>
43
- </template>
44
- </div>
45
- </div>
46
- <!-- 主体表格 -->
47
- <table class="reportTable" v-if="render" :style="activatedConfig.style ? activatedConfig.style : undefined">
48
- <tbody class="reportTable">
49
- <template v-for="(row, rowIndex) in activatedConfig.columns">
50
- <!-- 插槽展示 -->
51
- <template v-if="row[0].type === 'slot'">
52
- <x-report-tr-group
53
- @updateImg="updateImg"
54
- @selectRow="selectRow"
55
- :show-img-in-cell="showImgInCell"
56
- :img-prefix="imgPrefix"
57
- :server-name="serverName"
58
- :env="env"
59
- :use-oss-for-img="useOssForImg"
60
- :key="rowIndex"
61
- :columns="row"
62
- :no-top-border="noTopBorder"
63
- :config-data="activatedConfig.data"
64
- :config="activatedConfig"
65
- :display="true">
66
- </x-report-tr-group>
67
- </template>
68
- <!-- 列表 list -->
69
- <template v-else-if="row[0].type === 'list'" >
70
- <template v-for="(num, listIndex) in row[0].listLength + 1">
71
- <template v-if="!forDisplay">
72
- <x-report-tr-group
73
- @updateImg="updateImg"
74
- @selectRow="selectRow"
75
- :show-img-in-cell="showImgInCell"
76
- :img-prefix="imgPrefix"
77
- :server-name="serverName"
78
- :env="env"
79
- :use-oss-for-img="useOssForImg"
80
- :config="activatedConfig"
81
- :key="rowIndex + listIndex"
82
- :columns="row"
83
- :no-top-border="noTopBorder"
84
- :config-data="activatedConfig.data"
85
- :list-index="listIndex">
86
- </x-report-tr-group>
87
- </template>
88
- <template v-else>
89
- <x-report-tr-group
90
- @updateImg="updateImg"
91
- @selectRow="selectRow"
92
- :show-img-in-cell="showImgInCell"
93
- :img-prefix="imgPrefix"
94
- :server-name="serverName"
95
- :env="env"
96
- :use-oss-for-img="useOssForImg"
97
- :config="activatedConfig"
98
- :key="rowIndex + listIndex"
99
- :columns="row"
100
- :no-top-border="noTopBorder"
101
- :config-data="activatedConfig.data"
102
- :list-index="listIndex"
103
- :display="true">
104
- </x-report-tr-group>
105
- </template>
106
- </template>
107
- </template>
108
- <!-- 动态行 inputColumns -->
109
- <template v-else-if="row[0].type === 'inputColumns'">
110
- <template v-if="forDisplay">
111
- <x-report-tr-group
112
- @updateImg="updateImg"
113
- @selectRow="selectRow"
114
- :show-img-in-cell="showImgInCell"
115
- :img-prefix="imgPrefix"
116
- :server-name="serverName"
117
- :env="env"
118
- :use-oss-for-img="useOssForImg"
119
- :config="activatedConfig"
120
- :columns="row[0].definition"
121
- :config-data="{arr: activatedConfig.data[row[0].dataIndex]}"
122
- :input-columns="true"
123
- :no-top-border="noTopBorder"
124
- v-for="(item, definitionIndex) in activatedConfig.data[row[0].dataIndex]"
125
- :input-columns-definition-index="definitionIndex"
126
- :display="true"
127
- :key="row[0].dataIndex + definitionIndex + rowIndex"></x-report-tr-group>
128
- </template>
129
- <template v-if="!forDisplay">
130
- <x-report-tr-group
131
- @updateImg="updateImg"
132
- @selectRow="selectRow"
133
- :show-img-in-cell="showImgInCell"
134
- :img-prefix="imgPrefix"
135
- :server-name="serverName"
136
- :env="env"
137
- :use-oss-for-img="useOssForImg"
138
- :config="activatedConfig"
139
- :columns="row[0].definition"
140
- :config-data="{arr: activatedConfig.data[row[0].dataIndex]}"
141
- :input-columns="true"
142
- :no-top-border="noTopBorder"
143
- v-for="(item, definitionIndex) in activatedConfig.data[row[0].dataIndex]"
144
- :input-columns-definition-index="definitionIndex"
145
- :key="row[0].dataIndex + definitionIndex + rowIndex"></x-report-tr-group>
146
- <!-- 动态行交互按钮 -->
147
- <x-report-tr-group
148
- @updateImg="updateImg"
149
- @selectRow="selectRow"
150
- :show-img-in-cell="showImgInCell"
151
- :img-prefix="imgPrefix"
152
- :server-name="serverName"
153
- :env="env"
154
- :use-oss-for-img="useOssForImg"
155
- :config="activatedConfig"
156
- :key="rowIndex"
157
- :columns="row"
158
- :no-top-border="noTopBorder"
159
- :config-data="activatedConfig.data"
160
- :input-columns-button="true"
161
- :input-columns="true">
162
- </x-report-tr-group>
163
- </template>
164
- </template>
165
- <!-- 普通行 -->
166
- <template v-else>
167
- <template v-if="!forDisplay">
168
- <x-report-tr-group
169
- @updateImg="updateImg"
170
- @selectRow="selectRow"
171
- :show-img-in-cell="showImgInCell"
172
- :img-prefix="imgPrefix"
173
- :server-name="serverName"
174
- :env="env"
175
- :use-oss-for-img="useOssForImg"
176
- :key="rowIndex"
177
- :columns="row"
178
- :no-top-border="noTopBorder"
179
- :config-data="activatedConfig.data"
180
- :config="activatedConfig">
181
- </x-report-tr-group>
182
- </template>
183
- <template v-else>
184
- <x-report-tr-group
185
- @updateImg="updateImg"
186
- @selectRow="selectRow"
187
- :show-img-in-cell="showImgInCell"
188
- :img-prefix="imgPrefix"
189
- :server-name="serverName"
190
- :env="env"
191
- :use-oss-for-img="useOssForImg"
192
- :config="activatedConfig"
193
- :key="rowIndex"
194
- :columns="row"
195
- :no-top-border="noTopBorder"
196
- :config-data="activatedConfig.data"
197
- :display="true">
198
- </x-report-tr-group>
199
- </template>
200
- </template>
201
- </template>
202
- </tbody>
203
- </table>
204
- <div v-if="showImages" style="margin-top: 5%; display: flex;margin-bottom: 5%">
205
- <p>图片:</p>
206
- <div :key="imgIndex" v-for="(img,imgIndex) in imageList" style="margin-left: 3%;width: 200px">
207
- <img :src="img.url" class="img" :alt="img.name"/>
208
- <p style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;width: 100%;">{{ img.name }}</p>
209
- </div>
210
- </div>
211
- </div>
212
- </template>
213
- </div>
214
- </template>
215
-
216
- <script>
217
- import XReportTrGroup from './XReportTrGroup.vue'
218
- import XReportJsonRender from './XReportJsonRender.vue'
219
- import { getConfigByName } from '@vue2-client/services/api/common'
220
- import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable'
221
-
222
- export default {
223
- name: 'XReportDesign',
224
- props: {
225
- // 配置
226
- config: {
227
- type: Object,
228
- require: true,
229
- default: () => {}
230
- },
231
- showImgInCell: {
232
- type: Boolean,
233
- default: false
234
- },
235
- // 是否是展示用
236
- forDisplay: {
237
- type: Boolean,
238
- default: false
239
- },
240
- // 命名空间
241
- serverName: {
242
- type: String,
243
- default: 'af-system'
244
- },
245
- // 环境
246
- env: {
247
- type: String,
248
- default: 'prod'
249
- },
250
- // 是否只能展示不可编辑
251
- displayOnly: {
252
- type: Boolean,
253
- default: false
254
- },
255
- // 插槽名
256
- slotConfigName: {
257
- type: String,
258
- default: undefined
259
- },
260
- // 将图片全部展示在表格之后,挨个罗列
261
- showImages: {
262
- type: Boolean,
263
- default: false
264
- },
265
- // 图片罗列的数组
266
- imageList: {
267
- type: Array,
268
- default: undefined
269
- },
270
- // 表格没有边距
271
- noPadding: {
272
- type: Boolean,
273
- default: false
274
- },
275
- // 表格没有上边框,与noPadding搭配可以实现连续表格
276
- noTopBorder: {
277
- type: Boolean,
278
- default: false
279
- },
280
- // 是否展示标题
281
- showTitle: {
282
- type: Boolean,
283
- default: true
284
- },
285
- // 图片是否使用OSS来保存
286
- useOssForImg: {
287
- type: Boolean,
288
- default: true
289
- },
290
- // 图片上传后添加前缀
291
- imgPrefix: {
292
- type: String,
293
- default: undefined
294
- }
295
- },
296
- components: {
297
- XFormTable,
298
- XReportTrGroup,
299
- XReportJsonRender
300
- },
301
- data () {
302
- return {
303
- // 表单的数据
304
- data: this.config.data,
305
- // 插槽配置
306
- slotConfig: undefined,
307
- // 控制是否渲染
308
- render: false,
309
- // 用于展示的配置
310
- activatedConfig: {}
311
- }
312
- },
313
- methods: {
314
- updateImg (data) {
315
- this.$emit('updateImg', data)
316
- },
317
- selectRow (selectedRowKeys, selectedRows) {
318
- this.table_selectedRowKeys = selectedRowKeys
319
- this.table_selectedRows = selectedRows
320
- console.log('XReportDesign')
321
- this.$emit('selectRow', selectedRowKeys, selectedRows)
322
- },
323
- // 根据format计算需要多少个输入框
324
- calcFormatInputNum (formatStr) {
325
- let count = 0
326
- for (let i = 0; i < formatStr.length; i++) {
327
- if (formatStr[i] == '{') {
328
- count++
329
- }
330
- }
331
- return count
332
- },
333
- // 根据format计算输入框之后的文字显示
334
- displayFormatText (formatStr, num) {
335
- let start = 0
336
- let count = 0
337
- num++
338
- for (let i = 0; i < formatStr.length; i++) {
339
- if (formatStr[i] === '}') {
340
- start = i
341
- count++
342
- }
343
- if (count === num) {
344
- for (let j = start + 1; j < formatStr.length; j++) {
345
- if (formatStr[j] === '{') {
346
- return formatStr.slice(start + 1, j)
347
- }
348
- if (j === formatStr.length - 1 && formatStr[j] !== '}') {
349
- return formatStr[j]
350
- }
351
- }
352
- }
353
- }
354
- },
355
- // 根据format计算输入框之前的文字显示
356
- displayFormatStartText (formatStr) {
357
- let count = 0
358
- for (let i = 0; i < formatStr.length; i++) {
359
- if (formatStr[i] === '{') {
360
- break
361
- } else {
362
- count++
363
- }
364
- }
365
- return formatStr.slice(0, count)
366
- },
367
- },
368
- created () {
369
- console.log('>>>> xreportdesign 渲染')
370
- if (this.slotConfigName) {
371
- getConfigByName(this.slotConfigName, undefined, res => {
372
- this.slotConfig = res
373
- res.data = { ...res.data, ...this.data }
374
- this.config.data = res.data
375
- this.activatedConfig = res
376
- this.render = true
377
- }, this.env === 'dev')
378
- } else {
379
- this.activatedConfig = this.config
380
- this.render = true
381
- }
382
- if (this.activatedConfig.designMode !== 'json') {
383
- this.activatedConfig.columns.forEach(row => {
384
- if (row[0] && row[0].type && row[0].type === 'list' && row[0].listLength === 1) {
385
- row.forEach(cell => {
386
- cell.listLength = this.activatedConfig.data[cell.dataIndex].length
387
- })
388
- }
389
- })
390
- }
391
- },
392
- mounted () {
393
- },
394
- watch: {
395
- config: {
396
- deep: true,
397
- handler (newVal) {
398
- }
399
- },
400
- activatedConfig: {
401
- handler (val) {
402
- console.log('>>>> activatedConfig: ', val)
403
- }
404
- }
405
- }
406
- }
407
- </script>
408
-
409
- <style lang="less" scoped>
410
- .img{
411
- width: 95%;
412
- height: 180px;
413
- object-fit: cover;
414
- }
415
- .reportMain {
416
- text-align: center;
417
- margin: 0 auto;
418
- font-size: 16px;
419
- color: #000;
420
- background-color: #fff;
421
- border-radius: 8px;
422
-
423
- .reportTitle {
424
- font-weight: bold;
425
- }
426
-
427
- .subTitle {
428
- display: flex;
429
- justify-content: space-between;
430
- margin-bottom: 1%;
431
-
432
- .subTitleItems {
433
- max-width: 30%;
434
- }
435
- }
436
-
437
- .inputsDiv {
438
- display: flex;
439
- justify-content: space-between;
440
- .inputsDivItem {
441
- display: flex;
442
- align-items: center;
443
- padding: 0 4px;
444
- white-space: nowrap;
445
- .inputsDivItemLabel {
446
- padding: 0 4px;
447
- }
448
- }
449
- }
450
-
451
- .reportTable {
452
- width: 100%;
453
- border-collapse: collapse;
454
- table-layout:fixed;
455
- word-break:break-all;
456
- }
457
- }
458
- .reportMainForDisplay {
459
- text-align: center;
460
- margin: 10% auto;
461
- font-size: 16px;
462
- color: #000;
463
- background-color: #fff;
464
- border-radius: 8px;
465
-
466
- .reportTitle {
467
- font-weight: bold;
468
- }
469
-
470
- .subTitle {
471
- display: flex;
472
- justify-content: space-between;
473
-
474
- .subTitleItems {
475
- max-width: 30%;
476
- }
477
- }
478
-
479
- .inputsDiv {
480
- display: flex;
481
- justify-content: space-around;
482
- .inputsDivItem {
483
- display: flex;
484
- align-items: center;
485
- padding: 0 4px;
486
- white-space: nowrap;
487
- .inputsDivItemLabel {
488
- padding: 0 4px;
489
- }
490
- }
491
- }
492
-
493
- .reportTable {
494
- width: 100%;
495
- border-collapse: collapse;
496
- table-layout:fixed;
497
- word-break:break-all;
498
- }
499
- }
500
- .reportMainNoPadding {
501
- // text-align: center;
502
- margin: 0 auto;
503
- font-size: 16px;
504
- color: #000;
505
- // background-color: #fff;
506
- border-radius: 8px;
507
- height: 85vh;
508
- overflow-y: auto;
509
- overflow-x: hidden;
510
-
511
- .reportTitle {
512
- font-weight: bold;
513
- }
514
-
515
- .subTitle {
516
- display: flex;
517
- justify-content: space-between;
518
-
519
- .subTitleItems {
520
- max-width: 30%;
521
- }
522
- }
523
-
524
- .inputsDiv {
525
- display: flex;
526
- justify-content: space-between;
527
- .inputsDivItem {
528
- display: flex;
529
- align-items: center;
530
- padding: 0 4px;
531
- white-space: nowrap;
532
- .inputsDivItemLabel {
533
- padding: 0 4px;
534
- }
535
- }
536
- }
537
-
538
- .reportTable {
539
- width: 100%;
540
- border-collapse: collapse;
541
- table-layout:fixed;
542
- word-break:break-all;
543
- }
544
- }
545
- .tools{
546
- position: fixed;
547
- right: 2%;
548
- text-align: right;
549
- width: 60%;
550
- cursor: pointer;
551
- .toolsItem{
552
- width: 15%;
553
- margin-right: 3%;
554
- display: inline-block;
555
- }
556
- }
557
- </style>
1
+ <template>
2
+ <div>
3
+ <template v-if="this.activatedConfig.designMode === 'json'">
4
+ <XReportJsonRender
5
+ @updateImg="updateImg"
6
+ @selectRow="selectRow"
7
+ :img-prefix="imgPrefix"
8
+ :server-name="serverName"
9
+ :display-only="displayOnly"
10
+ :show-title="showTitle"
11
+ :no-padding="noPadding"
12
+ :no-top-border="noTopBorder"
13
+ :config="activatedConfig"/>
14
+ </template>
15
+ <template v-else>
16
+ <div :class=" noPadding ? 'reportMainNoPadding' : 'reportMain'" :style="activatedConfig.width > 0 ? ('width:' + activatedConfig.width + 'px') : undefined">
17
+ <!-- 大标题 -->
18
+ <h2 class="reportTitle" v-if="showTitle && activatedConfig.title" v-html="activatedConfig.title"></h2>
19
+ <!-- 小标题 / 介乎于标题与表格之间的内容 -->
20
+ <div class="subTitle" v-if="activatedConfig.subTitle">
21
+ <div class="subTitleItems" v-for="(item, itemIndex) in activatedConfig.subTitle" :key="itemIndex">
22
+ <template v-if="item.type === 'column'">
23
+ <span>{{ item.text }}</span>
24
+ </template>
25
+ <template v-else-if="item.type === 'inputs'">
26
+ <div class="inputsDiv">
27
+ <div class="inputsDivItem" v-for="(num, index) of calcFormatInputNum(item.format)" :key="index">
28
+ <span class="inputsDivItemLabel">{{ displayFormatStartText(item.format) }}</span>
29
+ <template v-if="!forDisplay">
30
+ <template v-if="item.inputReadOnly === true">
31
+ <a-input v-model="data[item.dataIndex][index]" :style="'width:' + (item.inputWidth ? item.inputWidth : '100') + '%'" :disabled="true"/>
32
+ </template>
33
+ <template v-else>
34
+ <a-input v-model="data[item.dataIndex][index]" :style="'width:' + (item.inputWidth ? item.inputWidth : '100') + '%'"/>
35
+ </template>
36
+ </template>
37
+ <template v-else>
38
+ {{ activatedConfig.data[item.dataIndex][index] }}
39
+ </template>
40
+ <span class="inputsDivItemLabel">{{ displayFormatText(item.format, index) }}</span>
41
+ </div>
42
+ </div>
43
+ </template>
44
+ </div>
45
+ </div>
46
+ <!-- 主体表格 -->
47
+ <table class="reportTable" v-if="render" :style="activatedConfig.style ? activatedConfig.style : undefined">
48
+ <tbody class="reportTable">
49
+ <template v-for="(row, rowIndex) in activatedConfig.columns">
50
+ <!-- 插槽展示 -->
51
+ <template v-if="row[0].type === 'slot'">
52
+ <x-report-tr-group
53
+ @updateImg="updateImg"
54
+ @selectRow="selectRow"
55
+ :show-img-in-cell="showImgInCell"
56
+ :img-prefix="imgPrefix"
57
+ :server-name="serverName"
58
+ :env="env"
59
+ :use-oss-for-img="useOssForImg"
60
+ :key="rowIndex"
61
+ :columns="row"
62
+ :no-top-border="noTopBorder"
63
+ :config-data="activatedConfig.data"
64
+ :config="activatedConfig"
65
+ :display="true">
66
+ </x-report-tr-group>
67
+ </template>
68
+ <!-- 列表 list -->
69
+ <template v-else-if="row[0].type === 'list'" >
70
+ <template v-for="(num, listIndex) in row[0].listLength + 1">
71
+ <template v-if="!forDisplay">
72
+ <x-report-tr-group
73
+ @updateImg="updateImg"
74
+ @selectRow="selectRow"
75
+ :show-img-in-cell="showImgInCell"
76
+ :img-prefix="imgPrefix"
77
+ :server-name="serverName"
78
+ :env="env"
79
+ :use-oss-for-img="useOssForImg"
80
+ :config="activatedConfig"
81
+ :key="rowIndex + listIndex"
82
+ :columns="row"
83
+ :no-top-border="noTopBorder"
84
+ :config-data="activatedConfig.data"
85
+ :list-index="listIndex">
86
+ </x-report-tr-group>
87
+ </template>
88
+ <template v-else>
89
+ <x-report-tr-group
90
+ @updateImg="updateImg"
91
+ @selectRow="selectRow"
92
+ :show-img-in-cell="showImgInCell"
93
+ :img-prefix="imgPrefix"
94
+ :server-name="serverName"
95
+ :env="env"
96
+ :use-oss-for-img="useOssForImg"
97
+ :config="activatedConfig"
98
+ :key="rowIndex + listIndex"
99
+ :columns="row"
100
+ :no-top-border="noTopBorder"
101
+ :config-data="activatedConfig.data"
102
+ :list-index="listIndex"
103
+ :display="true">
104
+ </x-report-tr-group>
105
+ </template>
106
+ </template>
107
+ </template>
108
+ <!-- 动态行 inputColumns -->
109
+ <template v-else-if="row[0].type === 'inputColumns'">
110
+ <template v-if="forDisplay">
111
+ <x-report-tr-group
112
+ @updateImg="updateImg"
113
+ @selectRow="selectRow"
114
+ :show-img-in-cell="showImgInCell"
115
+ :img-prefix="imgPrefix"
116
+ :server-name="serverName"
117
+ :env="env"
118
+ :use-oss-for-img="useOssForImg"
119
+ :config="activatedConfig"
120
+ :columns="row[0].definition"
121
+ :config-data="{arr: activatedConfig.data[row[0].dataIndex]}"
122
+ :input-columns="true"
123
+ :no-top-border="noTopBorder"
124
+ v-for="(item, definitionIndex) in activatedConfig.data[row[0].dataIndex]"
125
+ :input-columns-definition-index="definitionIndex"
126
+ :display="true"
127
+ :key="row[0].dataIndex + definitionIndex + rowIndex"></x-report-tr-group>
128
+ </template>
129
+ <template v-if="!forDisplay">
130
+ <x-report-tr-group
131
+ @updateImg="updateImg"
132
+ @selectRow="selectRow"
133
+ :show-img-in-cell="showImgInCell"
134
+ :img-prefix="imgPrefix"
135
+ :server-name="serverName"
136
+ :env="env"
137
+ :use-oss-for-img="useOssForImg"
138
+ :config="activatedConfig"
139
+ :columns="row[0].definition"
140
+ :config-data="{arr: activatedConfig.data[row[0].dataIndex]}"
141
+ :input-columns="true"
142
+ :no-top-border="noTopBorder"
143
+ v-for="(item, definitionIndex) in activatedConfig.data[row[0].dataIndex]"
144
+ :input-columns-definition-index="definitionIndex"
145
+ :key="row[0].dataIndex + definitionIndex + rowIndex"></x-report-tr-group>
146
+ <!-- 动态行交互按钮 -->
147
+ <x-report-tr-group
148
+ @updateImg="updateImg"
149
+ @selectRow="selectRow"
150
+ :show-img-in-cell="showImgInCell"
151
+ :img-prefix="imgPrefix"
152
+ :server-name="serverName"
153
+ :env="env"
154
+ :use-oss-for-img="useOssForImg"
155
+ :config="activatedConfig"
156
+ :key="rowIndex"
157
+ :columns="row"
158
+ :no-top-border="noTopBorder"
159
+ :config-data="activatedConfig.data"
160
+ :input-columns-button="true"
161
+ :input-columns="true">
162
+ </x-report-tr-group>
163
+ </template>
164
+ </template>
165
+ <!-- 普通行 -->
166
+ <template v-else>
167
+ <template v-if="!forDisplay">
168
+ <x-report-tr-group
169
+ @updateImg="updateImg"
170
+ @selectRow="selectRow"
171
+ :show-img-in-cell="showImgInCell"
172
+ :img-prefix="imgPrefix"
173
+ :server-name="serverName"
174
+ :env="env"
175
+ :use-oss-for-img="useOssForImg"
176
+ :key="rowIndex"
177
+ :columns="row"
178
+ :no-top-border="noTopBorder"
179
+ :config-data="activatedConfig.data"
180
+ :config="activatedConfig">
181
+ </x-report-tr-group>
182
+ </template>
183
+ <template v-else>
184
+ <x-report-tr-group
185
+ @updateImg="updateImg"
186
+ @selectRow="selectRow"
187
+ :show-img-in-cell="showImgInCell"
188
+ :img-prefix="imgPrefix"
189
+ :server-name="serverName"
190
+ :env="env"
191
+ :use-oss-for-img="useOssForImg"
192
+ :config="activatedConfig"
193
+ :key="rowIndex"
194
+ :columns="row"
195
+ :no-top-border="noTopBorder"
196
+ :config-data="activatedConfig.data"
197
+ :display="true">
198
+ </x-report-tr-group>
199
+ </template>
200
+ </template>
201
+ </template>
202
+ </tbody>
203
+ </table>
204
+ <div v-if="showImages" style="margin-top: 5%; display: flex;margin-bottom: 5%">
205
+ <p>图片:</p>
206
+ <div :key="imgIndex" v-for="(img,imgIndex) in imageList" style="margin-left: 3%;width: 200px">
207
+ <img :src="img.url" class="img" :alt="img.name"/>
208
+ <p style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;width: 100%;">{{ img.name }}</p>
209
+ </div>
210
+ </div>
211
+ </div>
212
+ </template>
213
+ </div>
214
+ </template>
215
+
216
+ <script>
217
+ import XReportTrGroup from './XReportTrGroup.vue'
218
+ import XReportJsonRender from './XReportJsonRender.vue'
219
+ import { getConfigByName } from '@vue2-client/services/api/common'
220
+ import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable'
221
+
222
+ export default {
223
+ name: 'XReportDesign',
224
+ props: {
225
+ // 配置
226
+ config: {
227
+ type: Object,
228
+ require: true,
229
+ default: () => {}
230
+ },
231
+ showImgInCell: {
232
+ type: Boolean,
233
+ default: false
234
+ },
235
+ // 是否是展示用
236
+ forDisplay: {
237
+ type: Boolean,
238
+ default: false
239
+ },
240
+ // 命名空间
241
+ serverName: {
242
+ type: String,
243
+ default: 'af-system'
244
+ },
245
+ // 环境
246
+ env: {
247
+ type: String,
248
+ default: 'prod'
249
+ },
250
+ // 是否只能展示不可编辑
251
+ displayOnly: {
252
+ type: Boolean,
253
+ default: false
254
+ },
255
+ // 插槽名
256
+ slotConfigName: {
257
+ type: String,
258
+ default: undefined
259
+ },
260
+ // 将图片全部展示在表格之后,挨个罗列
261
+ showImages: {
262
+ type: Boolean,
263
+ default: false
264
+ },
265
+ // 图片罗列的数组
266
+ imageList: {
267
+ type: Array,
268
+ default: undefined
269
+ },
270
+ // 表格没有边距
271
+ noPadding: {
272
+ type: Boolean,
273
+ default: false
274
+ },
275
+ // 表格没有上边框,与noPadding搭配可以实现连续表格
276
+ noTopBorder: {
277
+ type: Boolean,
278
+ default: false
279
+ },
280
+ // 是否展示标题
281
+ showTitle: {
282
+ type: Boolean,
283
+ default: true
284
+ },
285
+ // 图片是否使用OSS来保存
286
+ useOssForImg: {
287
+ type: Boolean,
288
+ default: true
289
+ },
290
+ // 图片上传后添加前缀
291
+ imgPrefix: {
292
+ type: String,
293
+ default: undefined
294
+ }
295
+ },
296
+ components: {
297
+ XFormTable,
298
+ XReportTrGroup,
299
+ XReportJsonRender
300
+ },
301
+ data () {
302
+ return {
303
+ // 表单的数据
304
+ data: this.config.data,
305
+ // 插槽配置
306
+ slotConfig: undefined,
307
+ // 控制是否渲染
308
+ render: false,
309
+ // 用于展示的配置
310
+ activatedConfig: {}
311
+ }
312
+ },
313
+ methods: {
314
+ updateImg (data) {
315
+ this.$emit('updateImg', data)
316
+ },
317
+ selectRow (selectedRowKeys, selectedRows) {
318
+ this.table_selectedRowKeys = selectedRowKeys
319
+ this.table_selectedRows = selectedRows
320
+ console.log('XReportDesign')
321
+ this.$emit('selectRow', selectedRowKeys, selectedRows)
322
+ },
323
+ // 根据format计算需要多少个输入框
324
+ calcFormatInputNum (formatStr) {
325
+ let count = 0
326
+ for (let i = 0; i < formatStr.length; i++) {
327
+ if (formatStr[i] == '{') {
328
+ count++
329
+ }
330
+ }
331
+ return count
332
+ },
333
+ // 根据format计算输入框之后的文字显示
334
+ displayFormatText (formatStr, num) {
335
+ let start = 0
336
+ let count = 0
337
+ num++
338
+ for (let i = 0; i < formatStr.length; i++) {
339
+ if (formatStr[i] === '}') {
340
+ start = i
341
+ count++
342
+ }
343
+ if (count === num) {
344
+ for (let j = start + 1; j < formatStr.length; j++) {
345
+ if (formatStr[j] === '{') {
346
+ return formatStr.slice(start + 1, j)
347
+ }
348
+ if (j === formatStr.length - 1 && formatStr[j] !== '}') {
349
+ return formatStr[j]
350
+ }
351
+ }
352
+ }
353
+ }
354
+ },
355
+ // 根据format计算输入框之前的文字显示
356
+ displayFormatStartText (formatStr) {
357
+ let count = 0
358
+ for (let i = 0; i < formatStr.length; i++) {
359
+ if (formatStr[i] === '{') {
360
+ break
361
+ } else {
362
+ count++
363
+ }
364
+ }
365
+ return formatStr.slice(0, count)
366
+ },
367
+ },
368
+ created () {
369
+ console.log('>>>> xreportdesign 渲染')
370
+ if (this.slotConfigName) {
371
+ getConfigByName(this.slotConfigName, undefined, res => {
372
+ this.slotConfig = res
373
+ res.data = { ...res.data, ...this.data }
374
+ this.config.data = res.data
375
+ this.activatedConfig = res
376
+ this.render = true
377
+ }, this.env === 'dev')
378
+ } else {
379
+ this.activatedConfig = this.config
380
+ this.render = true
381
+ }
382
+ if (this.activatedConfig.designMode !== 'json') {
383
+ this.activatedConfig.columns.forEach(row => {
384
+ if (row[0] && row[0].type && row[0].type === 'list' && row[0].listLength === 1) {
385
+ row.forEach(cell => {
386
+ cell.listLength = this.activatedConfig.data[cell.dataIndex].length
387
+ })
388
+ }
389
+ })
390
+ }
391
+ },
392
+ mounted () {
393
+ },
394
+ watch: {
395
+ config: {
396
+ deep: true,
397
+ handler (newVal) {
398
+ }
399
+ },
400
+ activatedConfig: {
401
+ handler (val) {
402
+ console.log('>>>> activatedConfig: ', val)
403
+ }
404
+ }
405
+ }
406
+ }
407
+ </script>
408
+
409
+ <style lang="less" scoped>
410
+ .img{
411
+ width: 95%;
412
+ height: 180px;
413
+ object-fit: cover;
414
+ }
415
+ .reportMain {
416
+ text-align: center;
417
+ margin: 0 auto;
418
+ font-size: 16px;
419
+ color: #000;
420
+ background-color: #fff;
421
+ border-radius: 8px;
422
+
423
+ .reportTitle {
424
+ font-weight: bold;
425
+ }
426
+
427
+ .subTitle {
428
+ display: flex;
429
+ justify-content: space-between;
430
+ margin-bottom: 1%;
431
+
432
+ .subTitleItems {
433
+ max-width: 30%;
434
+ }
435
+ }
436
+
437
+ .inputsDiv {
438
+ display: flex;
439
+ justify-content: space-between;
440
+ .inputsDivItem {
441
+ display: flex;
442
+ align-items: center;
443
+ padding: 0 4px;
444
+ white-space: nowrap;
445
+ .inputsDivItemLabel {
446
+ padding: 0 4px;
447
+ }
448
+ }
449
+ }
450
+
451
+ .reportTable {
452
+ width: 100%;
453
+ border-collapse: collapse;
454
+ table-layout:fixed;
455
+ word-break:break-all;
456
+ }
457
+ }
458
+ .reportMainForDisplay {
459
+ text-align: center;
460
+ margin: 10% auto;
461
+ font-size: 16px;
462
+ color: #000;
463
+ background-color: #fff;
464
+ border-radius: 8px;
465
+
466
+ .reportTitle {
467
+ font-weight: bold;
468
+ }
469
+
470
+ .subTitle {
471
+ display: flex;
472
+ justify-content: space-between;
473
+
474
+ .subTitleItems {
475
+ max-width: 30%;
476
+ }
477
+ }
478
+
479
+ .inputsDiv {
480
+ display: flex;
481
+ justify-content: space-around;
482
+ .inputsDivItem {
483
+ display: flex;
484
+ align-items: center;
485
+ padding: 0 4px;
486
+ white-space: nowrap;
487
+ .inputsDivItemLabel {
488
+ padding: 0 4px;
489
+ }
490
+ }
491
+ }
492
+
493
+ .reportTable {
494
+ width: 100%;
495
+ border-collapse: collapse;
496
+ table-layout:fixed;
497
+ word-break:break-all;
498
+ }
499
+ }
500
+ .reportMainNoPadding {
501
+ // text-align: center;
502
+ margin: 0 auto;
503
+ font-size: 16px;
504
+ color: #000;
505
+ // background-color: #fff;
506
+ border-radius: 8px;
507
+ height: 85vh;
508
+ overflow-y: auto;
509
+ overflow-x: hidden;
510
+
511
+ .reportTitle {
512
+ font-weight: bold;
513
+ }
514
+
515
+ .subTitle {
516
+ display: flex;
517
+ justify-content: space-between;
518
+
519
+ .subTitleItems {
520
+ max-width: 30%;
521
+ }
522
+ }
523
+
524
+ .inputsDiv {
525
+ display: flex;
526
+ justify-content: space-between;
527
+ .inputsDivItem {
528
+ display: flex;
529
+ align-items: center;
530
+ padding: 0 4px;
531
+ white-space: nowrap;
532
+ .inputsDivItemLabel {
533
+ padding: 0 4px;
534
+ }
535
+ }
536
+ }
537
+
538
+ .reportTable {
539
+ width: 100%;
540
+ border-collapse: collapse;
541
+ table-layout:fixed;
542
+ word-break:break-all;
543
+ }
544
+ }
545
+ .tools{
546
+ position: fixed;
547
+ right: 2%;
548
+ text-align: right;
549
+ width: 60%;
550
+ cursor: pointer;
551
+ .toolsItem{
552
+ width: 15%;
553
+ margin-right: 3%;
554
+ display: inline-block;
555
+ }
556
+ }
557
+ </style>