vue2-client 1.15.84 → 1.15.86

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 (377) hide show
  1. package/.claude/settings.local.json +12 -0
  2. package/.editorconfig +9 -9
  3. package/.env +20 -20
  4. package/.env.development +1 -1
  5. package/.env.iot +19 -19
  6. package/.env.message +19 -19
  7. package/.env.revenue +19 -19
  8. package/.env.runtime +19 -19
  9. package/.eslintrc.json +5 -5
  10. package/CLAUDE.md +89 -89
  11. package/README.md +65 -65
  12. package/babel.config.js +21 -21
  13. package/docs/Logic/345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +46 -46
  14. package/docs/notice.md +22 -22
  15. package/docs//345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +179 -179
  16. package/jest.config.js +22 -22
  17. package/package.json +111 -111
  18. package/src/App.vue +196 -196
  19. package/src/ReportView.js +13 -13
  20. package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +532 -532
  21. package/src/base-client/components/common/AddressSearchCombobox/index.js +3 -3
  22. package/src/base-client/components/common/AmapMarker/index.js +3 -3
  23. package/src/base-client/components/common/CitySelect/CitySelect.vue +376 -376
  24. package/src/base-client/components/common/CitySelect/demo.vue +43 -43
  25. package/src/base-client/components/common/ColorPickerCombobox/ColorPickerCombobox.vue +99 -99
  26. package/src/base-client/components/common/ColorPickerCombobox/demo.vue +34 -34
  27. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +146 -146
  28. package/src/base-client/components/common/JSONToTree/index.js +3 -3
  29. package/src/base-client/components/common/Upload/Upload.vue +323 -323
  30. package/src/base-client/components/common/XAddForm/index.js +3 -3
  31. package/src/base-client/components/common/XAddForm/index.md +61 -61
  32. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +1169 -1169
  33. package/src/base-client/components/common/XAddNativeForm/demo.vue +54 -40
  34. package/src/base-client/components/common/XAddNativeForm/index.js +3 -3
  35. package/src/base-client/components/common/XAddReport/XAddReport.vue +212 -212
  36. package/src/base-client/components/common/XBadge/index.js +3 -3
  37. package/src/base-client/components/common/XBadge/index.md +39 -39
  38. package/src/base-client/components/common/XButtons/XButtons.vue +284 -284
  39. package/src/base-client/components/common/XCalendar/XCalendar.vue +369 -369
  40. package/src/base-client/components/common/XCalendar/index.md +284 -284
  41. package/src/base-client/components/common/XCard/index.js +3 -3
  42. package/src/base-client/components/common/XCard/index.md +43 -43
  43. package/src/base-client/components/common/XCardSet/XCardSet.vue +300 -300
  44. package/src/base-client/components/common/XCollapse/XCollapse.vue +354 -354
  45. package/src/base-client/components/common/XConversation/XConversation.vue +576 -576
  46. package/src/base-client/components/common/XConversation/XConversationDemo.vue +28 -28
  47. package/src/base-client/components/common/XDataCard/XDataCard.vue +629 -629
  48. package/src/base-client/components/common/XDatePicker/index.vue +276 -276
  49. package/src/base-client/components/common/XDescriptions/XDescriptions.vue +174 -174
  50. package/src/base-client/components/common/XDescriptions/XDescriptionsGroup.vue +314 -314
  51. package/src/base-client/components/common/XDescriptions/demo.vue +51 -51
  52. package/src/base-client/components/common/XForm/XForm.vue +420 -420
  53. package/src/base-client/components/common/XForm/XFormItem.vue +1474 -1390
  54. package/src/base-client/components/common/XForm/XTreeSelect.vue +276 -276
  55. package/src/base-client/components/common/XForm/demo.vue +105 -105
  56. package/src/base-client/components/common/XForm/index.js +3 -3
  57. package/src/base-client/components/common/XFormCol/XFormCol.vue +157 -157
  58. package/src/base-client/components/common/XFormCol/index.js +3 -3
  59. package/src/base-client/components/common/XFormCol/index.md +35 -35
  60. package/src/base-client/components/common/XFormGroup/XFormGroup.vue +301 -301
  61. package/src/base-client/components/common/XFormGroup/demo.vue +41 -41
  62. package/src/base-client/components/common/XFormTable/XFormTable.vue +938 -938
  63. package/src/base-client/components/common/XFormTable/demo.vue +87 -87
  64. package/src/base-client/components/common/XFormTable/index.js +3 -3
  65. package/src/base-client/components/common/XImportExcel/XImportExcel.vue +174 -174
  66. package/src/base-client/components/common/XImportExcel/index.js +3 -3
  67. package/src/base-client/components/common/XImportExcel/index.md +38 -38
  68. package/src/base-client/components/common/XInput/XInput.vue +128 -128
  69. package/src/base-client/components/common/XInput/index.js +3 -3
  70. package/src/base-client/components/common/XInput/index.md +97 -97
  71. package/src/base-client/components/common/XIntervalPicker/XIntervalPicker.vue +121 -121
  72. package/src/base-client/components/common/XLicensePlate/index.js +3 -3
  73. package/src/base-client/components/common/XLicensePlate/index.md +38 -38
  74. package/src/base-client/components/common/XPrint/Demo.vue +41 -41
  75. package/src/base-client/components/common/XPrint/PrintBill.vue +308 -308
  76. package/src/base-client/components/common/XRate/demo.vue +102 -102
  77. package/src/base-client/components/common/XRate/index.vue +149 -149
  78. package/src/base-client/components/common/XReport/XReport.vue +963 -963
  79. package/src/base-client/components/common/XReport/XReportDemo.vue +70 -70
  80. package/src/base-client/components/common/XReport/XReportTrGroup.vue +1005 -1005
  81. package/src/base-client/components/common/XReport/index.md +103 -103
  82. package/src/base-client/components/common/XReportDrawer/XReportDrawer.vue +201 -201
  83. package/src/base-client/components/common/XReportGrid/XReport.vue +1075 -1075
  84. package/src/base-client/components/common/XReportGrid/XReportDemo.vue +44 -44
  85. package/src/base-client/components/common/XReportGrid/XReportDesign.vue +620 -620
  86. package/src/base-client/components/common/XReportGrid/XReportTrGroup.vue +723 -723
  87. package/src/base-client/components/common/XReportGrid/print.js +184 -184
  88. package/src/base-client/components/common/XTab/XTab.vue +299 -299
  89. package/src/base-client/components/common/XTable/ExportExcel.vue +283 -283
  90. package/src/base-client/components/common/XTable/XTable.vue +1599 -1599
  91. package/src/base-client/components/common/XTable/XTableWrapper.vue +597 -597
  92. package/src/base-client/components/common/XTable/index.js +3 -3
  93. package/src/base-client/components/common/XTimeline/XTimeline.vue +358 -358
  94. package/src/base-client/components/common/XTimeline/index.md +191 -191
  95. package/src/base-client/components/common/XTree/XTreePro.vue +452 -452
  96. package/src/base-client/components/common/XTreeOne/index.js +3 -3
  97. package/src/base-client/components/common/XUploadFilesView/index.vue +485 -485
  98. package/src/base-client/components/his/XCharge/XCharge.vue +238 -238
  99. package/src/base-client/components/his/XCheckbox/XCheckbox.vue +105 -105
  100. package/src/base-client/components/his/XCheckbox/index.md +253 -253
  101. package/src/base-client/components/his/XHDescriptions/XHDescriptions.vue +430 -430
  102. package/src/base-client/components/his/XHDescriptions/index.md +217 -217
  103. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +629 -629
  104. package/src/base-client/components/his/XHisEditor/diagnosisAutocomplete.js +263 -263
  105. package/src/base-client/components/his/XList/XList.vue +495 -495
  106. package/src/base-client/components/his/XQuestionnaire/XQuestionnaire.json +3 -3
  107. package/src/base-client/components/his/XQuestionnaire/XQuestionnaire.vue +106 -106
  108. package/src/base-client/components/his/XQuestionnaire/XQuestionnaireDemo.vue +51 -51
  109. package/src/base-client/components/his/XQuestionnaire/XQuestionnaireItem.vue +269 -269
  110. package/src/base-client/components/his/XRadio/XRadio.vue +125 -125
  111. package/src/base-client/components/his/XRadio/index.md +234 -234
  112. package/src/base-client/components/his/XSelect/XSelect.vue +72 -72
  113. package/src/base-client/components/his/XShiftSchedule/XShiftSchedule.vue +234 -234
  114. package/src/base-client/components/his/XShiftSchedule/dome.vue +29 -29
  115. package/src/base-client/components/his/XSidebar/XSidebar.vue +240 -240
  116. package/src/base-client/components/his/XTextCard/XTextCard.vue +207 -207
  117. package/src/base-client/components/his/XTimeSelect/XTimeSelect.vue +162 -162
  118. package/src/base-client/components/his/XTimeSelect/XTimeSelectDemo.vue +23 -23
  119. package/src/base-client/components/his/XTitle/README.md +113 -113
  120. package/src/base-client/components/his/XTitle/XTitle.vue +123 -123
  121. package/src/base-client/components/his/XTreeRows/TreeNode.vue +107 -107
  122. package/src/base-client/components/his/XTreeRows/XTreeRows.vue +307 -307
  123. package/src/base-client/components/his/threeTestOrders/dome.vue +68 -68
  124. package/src/base-client/components/his/threeTestOrders/editor.vue +111 -111
  125. package/src/base-client/components/his/threeTestOrders/textBox.vue +457 -457
  126. package/src/base-client/components/his/threeTestOrders/threeTestOrders.vue +475 -475
  127. package/src/base-client/components/layout/XPageView/RenderRow.vue +88 -88
  128. package/src/base-client/components/layout/XPageView/XErrorView.vue +22 -22
  129. package/src/base-client/components/layout/XPageView/XPageRowTemplate.vue +37 -37
  130. package/src/base-client/components/layout/XPageView/XPageView.vue +223 -223
  131. package/src/base-client/components/layout/XPageView/XTab/XTab.vue +96 -96
  132. package/src/base-client/components/layout/XPageView/XTab/index.js +3 -3
  133. package/src/base-client/components/layout/XPageView/componentTypes.js +22 -22
  134. package/src/base-client/components/layout/XPageView/index.js +2 -2
  135. package/src/base-client/components/layout/XPageView/index.md +96 -96
  136. package/src/base-client/components/system/DictionaryDetailsView/index.js +3 -3
  137. package/src/base-client/components/system/DictionaryDetailsView/index.md +41 -41
  138. package/src/base-client/components/system/LogDetailsView/LogDetailsView.vue +376 -376
  139. package/src/base-client/components/system/LogDetailsView/index.js +3 -3
  140. package/src/base-client/components/system/LogDetailsView/index.md +41 -41
  141. package/src/base-client/components/system/QueryParamsDetailsView/index.js +3 -3
  142. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +807 -807
  143. package/src/base-client/components/ticket/TicketDetailsView/index.js +3 -3
  144. package/src/base-client/components/ticket/TicketDetailsView/index.md +29 -29
  145. package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +260 -260
  146. package/src/base-client/components/ticket/TicketDetailsView/part/index.js +3 -3
  147. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
  148. package/src/base-client/components/ticket/TicketSubmitSuccessView/index.js +3 -3
  149. package/src/base-client/components/ticket/TicketSubmitSuccessView/index.md +29 -29
  150. package/src/base-client/plugins/AppData.js +126 -126
  151. package/src/base-client/plugins/PagedList.js +177 -177
  152. package/src/base-client/plugins/__tests__/selectValueTypeHelper.test.js +154 -0
  153. package/src/base-client/plugins/authority-plugin.js +167 -167
  154. package/src/base-client/plugins/compatible/LoginServiceOA.js +20 -20
  155. package/src/base-client/plugins/i18n-extend.js +32 -32
  156. package/src/base-client/plugins/moment.js +8 -8
  157. package/src/base-client/plugins/selectValueTypeHelper.js +281 -0
  158. package/src/bootstrap.js +51 -51
  159. package/src/components/Ellipsis/Ellipsis.vue +65 -65
  160. package/src/components/Ellipsis/index.js +3 -3
  161. package/src/components/Ellipsis/index.md +38 -38
  162. package/src/components/FileImageItem/FileItem.vue +320 -320
  163. package/src/components/FileImageItem/FileItemGroup.vue +197 -197
  164. package/src/components/FileImageItem/ImageItem.vue +107 -107
  165. package/src/components/FileImageItem/index.js +4 -4
  166. package/src/components/FilePreview/FilePreview.vue +181 -181
  167. package/src/components/FilePreview/FilePreviewDemo.vue +30 -30
  168. package/src/components/FilePreview/index.js +3 -3
  169. package/src/components/HeightScanner/index.vue +615 -615
  170. package/src/components/STable/README.md +341 -341
  171. package/src/components/STable/index.js +558 -558
  172. package/src/components/TableSetting/TableSetting.vue +143 -143
  173. package/src/components/TableSetting/index.js +3 -3
  174. package/src/components/Trend/Trend.vue +41 -41
  175. package/src/components/Trend/index.js +3 -3
  176. package/src/components/Trend/index.less +41 -41
  177. package/src/components/Trend/index.md +45 -45
  178. package/src/components/_util/util.js +46 -46
  179. package/src/components/cache/AKeepAlive.js +179 -179
  180. package/src/components/exception/typeConfig.js +19 -19
  181. package/src/components/form/FormRow.vue +52 -52
  182. package/src/components/index.less +5 -5
  183. package/src/components/menu/Contextmenu.vue +84 -84
  184. package/src/components/menu/index.less +38 -38
  185. package/src/components/page/header/PageHeader.vue +64 -64
  186. package/src/components/page/header/index.less +40 -40
  187. package/src/components/result/Result.vue +77 -77
  188. package/src/components/setting/SettingItem.vue +26 -26
  189. package/src/components/setting/i18n.js +117 -117
  190. package/src/components/table/StandardTable.vue +141 -141
  191. package/src/components/table/advance/ActionColumns.vue +158 -158
  192. package/src/components/table/advance/ActionSize.vue +45 -45
  193. package/src/components/table/advance/AdvanceTable.vue +275 -275
  194. package/src/components/table/advance/SearchArea.vue +355 -355
  195. package/src/components/table/advance/index.js +2 -2
  196. package/src/components/table/api/ApiTable.vue +50 -50
  197. package/src/components/task/TaskGroup.vue +80 -80
  198. package/src/components/task/TaskItem.vue +26 -26
  199. package/src/components/tool/AvatarList.vue +68 -68
  200. package/src/components/tool/DetailList.vue +157 -157
  201. package/src/components/tool/Drawer.vue +142 -142
  202. package/src/components/tool/FooterToolBar.vue +30 -30
  203. package/src/components/tool/HeadInfo.vue +35 -35
  204. package/src/components/tool/TagSelect.vue +83 -83
  205. package/src/components/tool/TagSelectOption.vue +33 -33
  206. package/src/components/transition/PageToggleTransition.vue +97 -97
  207. package/src/config/default/admin.config.js +18 -18
  208. package/src/config/default/animate.config.js +21 -21
  209. package/src/config/default/index.js +6 -6
  210. package/src/config/index.js +3 -3
  211. package/src/config/replacer/index.js +10 -10
  212. package/src/config/replacer/resolve.config.js +67 -67
  213. package/src/expression/ExpressionRunner.js +26 -26
  214. package/src/expression/TestExpression.js +509 -509
  215. package/src/expression/core/Delegate.js +115 -115
  216. package/src/expression/core/Expression.js +1358 -1358
  217. package/src/expression/core/Program.js +932 -932
  218. package/src/expression/core/Token.js +27 -27
  219. package/src/expression/enums/ExpressionType.js +81 -81
  220. package/src/expression/enums/TokenType.js +11 -11
  221. package/src/expression/exception/BreakWayException.js +2 -2
  222. package/src/expression/exception/ContinueWayException.js +2 -2
  223. package/src/expression/exception/ExpressionException.js +28 -28
  224. package/src/expression/exception/ReturnWayException.js +14 -14
  225. package/src/expression/exception/ServiceException.js +22 -22
  226. package/src/expression/instances/LogicConsole.js +44 -44
  227. package/src/expression/ts/ExpressionRunner.ts +28 -28
  228. package/src/expression/ts/TestExpression.ts +509 -509
  229. package/src/expression/ts/core/Delegate.ts +114 -114
  230. package/src/expression/ts/core/Expression.ts +1309 -1309
  231. package/src/expression/ts/core/Program.ts +950 -950
  232. package/src/expression/ts/core/Token.ts +29 -29
  233. package/src/expression/ts/enums/ExpressionType.ts +81 -81
  234. package/src/expression/ts/enums/TokenType.ts +13 -13
  235. package/src/expression/ts/exception/BreakWayException.ts +2 -2
  236. package/src/expression/ts/exception/ContinueWayException.ts +2 -2
  237. package/src/expression/ts/exception/ExpressionException.ts +28 -28
  238. package/src/expression/ts/exception/ReturnWayException.ts +14 -14
  239. package/src/expression/ts/exception/ServiceException.ts +22 -22
  240. package/src/expression/ts/instances/JSONArray.ts +48 -48
  241. package/src/expression/ts/instances/JSONObject.ts +109 -109
  242. package/src/expression/ts/instances/LogicConsole.ts +32 -32
  243. package/src/layouts/AdminLayout.vue +176 -176
  244. package/src/layouts/BlankView.vue +79 -79
  245. package/src/layouts/ComponentLayoutOne.vue +47 -47
  246. package/src/layouts/GridView.vue +43 -43
  247. package/src/layouts/PageView.vue +55 -55
  248. package/src/layouts/footer/PageFooter.vue +49 -49
  249. package/src/layouts/header/HeaderAvatar.vue +64 -64
  250. package/src/layouts/header/HeaderSearch.vue +67 -67
  251. package/src/layouts/header/index.less +92 -92
  252. package/src/layouts/tabs/TabsView.vue +383 -383
  253. package/src/layouts/tabs/i18n.js +25 -25
  254. package/src/layouts/tabs/index.js +2 -2
  255. package/src/logic/LogicRunner.js +62 -62
  256. package/src/logic/TestLogic.js +13 -13
  257. package/src/logic/plugins/common/DateTools.js +35 -35
  258. package/src/logic/plugins/common/VueTools.js +30 -30
  259. package/src/logic/plugins/index.js +7 -7
  260. package/src/logic/ts/LogicRunner.ts +67 -67
  261. package/src/logic/ts/TestLogic.ts +13 -13
  262. package/src/main.js +33 -33
  263. package/src/mixins/formValidationMixin.js +46 -46
  264. package/src/mock/common/activityData.js +32 -32
  265. package/src/mock/common/index.js +89 -89
  266. package/src/mock/common/reportData.js +20 -20
  267. package/src/mock/common/tableData.js +118 -118
  268. package/src/mock/index.js +12 -12
  269. package/src/mock/project/index.js +17 -17
  270. package/src/mock/user/current.js +13 -13
  271. package/src/mock/user/login.js +39 -39
  272. package/src/mock/user/routes.js +61 -61
  273. package/src/mock/workplace/index.js +15 -15
  274. package/src/pages/LogicCallExample/index.vue +46 -46
  275. package/src/pages/ReportGrid/index.vue +76 -76
  276. package/src/pages/ReportView.vue +50 -50
  277. package/src/pages/WorkflowDetail/WorkFlowDemo.vue +47 -47
  278. package/src/pages/WorkflowDetail/WorkFlowDemo2.vue +204 -204
  279. package/src/pages/WorkflowDetail/WorkFlowDemo3.vue +203 -203
  280. package/src/pages/WorkflowDetail/WorkflowDetail.vue +391 -391
  281. package/src/pages/WorkflowDetail/WorkflowPageDetail/LeaveMessage.vue +388 -388
  282. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformation.vue +415 -415
  283. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandle.vue +1766 -1765
  284. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandleReso.vue +975 -975
  285. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowPreview.vue +109 -109
  286. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowTimeline.vue +929 -929
  287. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkOrderParentDetails.vue +222 -222
  288. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowDetailResso.vue +243 -243
  289. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowLog.vue +188 -188
  290. package/src/pages/WorkflowDetail/WorkflowPageDetail/components/WorkflowPersonSelector.vue +109 -109
  291. package/src/pages/WorkflowDetail/WorkflowPageDetail/worklog.vue +97 -97
  292. package/src/pages/XPageViewExample/index.vue +149 -149
  293. package/src/pages/addressSelect/addressDemo.vue +24 -24
  294. package/src/pages/addressSelect/index.vue +270 -270
  295. package/src/pages/dashboard/workplace/i18n.js +40 -40
  296. package/src/pages/dashboard/workplace/index.js +2 -2
  297. package/src/pages/dashboard/workplace/index.less +59 -59
  298. package/src/pages/exception/403.vue +21 -21
  299. package/src/pages/exception/404.vue +24 -24
  300. package/src/pages/exception/500.vue +21 -21
  301. package/src/pages/login/index.js +2 -2
  302. package/src/pages/report/ReportTableHome.vue +28 -28
  303. package/src/pages/resourceManage/depListManage.vue +23 -23
  304. package/src/pages/resourceManage/funListManage.vue +23 -23
  305. package/src/pages/resourceManage/index.js +15 -15
  306. package/src/pages/resourceManage/resourceManageMain.vue +57 -57
  307. package/src/pages/resourceManage/roleListManage.vue +23 -23
  308. package/src/pages/resourceManage/staffListManage.vue +23 -23
  309. package/src/pages/system/file/Info.vue +56 -56
  310. package/src/pages/system/file/index.vue +317 -317
  311. package/src/pages/system/settings/index.vue +126 -126
  312. package/src/pages/userInfoDetailManage/FillCardRecordQuery/index.vue +77 -77
  313. package/src/pages/userInfoDetailManage/FillGasRecordQuery/index.vue +75 -75
  314. package/src/pages/userInfoDetailManage/InsuranceDetailQuery/index.vue +64 -64
  315. package/src/pages/userInfoDetailManage/MachineRecordQuery/index.vue +75 -75
  316. package/src/pages/userInfoDetailManage/OtherChargeRecordQuery/index.vue +75 -75
  317. package/src/pages/userInfoDetailManage/PriceAdjustments/index.vue +64 -64
  318. package/src/pages/userInfoDetailManage/UserChargeRecordQuery/index.vue +94 -94
  319. package/src/pages/userInfoDetailManage/UserException/index.vue +64 -64
  320. package/src/pages/userInfoDetailManage/UserHandRecordQuery/index.vue +87 -87
  321. package/src/pages/userInfoDetailManage/UserRecordQuery/index.vue +74 -74
  322. package/src/pages/userInfoDetailManage/index.vue +290 -290
  323. package/src/pages/userInfoDetailManage/uploadFilesHistory/ImagePreview.vue +101 -101
  324. package/src/pages/userInfoDetailManage/uploadFilesHistory/index.vue +129 -129
  325. package/src/pages/userInfoDetailManage/userInfoDetailQueryTabs.vue +144 -144
  326. package/src/plugins/HiPrintPlugin.js +164 -164
  327. package/src/router/async/router.map.js +126 -126
  328. package/src/router/guards.js +262 -262
  329. package/src/router/i18n.js +57 -57
  330. package/src/router.js +17 -17
  331. package/src/services/api/DictionaryDetailsViewApi.js +6 -6
  332. package/src/services/api/LogDetailsViewApi.js +10 -10
  333. package/src/services/api/QueryParamsDetailsViewApi.js +6 -6
  334. package/src/services/api/logininfor/index.js +6 -6
  335. package/src/services/api/manage.js +8 -8
  336. package/src/services/api/restTools.js +215 -215
  337. package/src/services/api/workFlow.js +57 -57
  338. package/src/services/apiService.js +16 -16
  339. package/src/services/dataSource.js +12 -12
  340. package/src/services/index.js +7 -7
  341. package/src/services/user.js +92 -92
  342. package/src/services/v3Api.js +116 -116
  343. package/src/store/index.js +5 -5
  344. package/src/store/mutation-types.js +4 -4
  345. package/src/theme/antd/ant-menu.less +2 -2
  346. package/src/theme/antd/ant-message.less +3 -3
  347. package/src/theme/antd/ant-table.less +22 -22
  348. package/src/theme/antd/ant-time-picker.less +3 -3
  349. package/src/theme/antd/index.less +3 -3
  350. package/src/theme/default/color.less +43 -43
  351. package/src/theme/default/index.less +3 -3
  352. package/src/theme/default/nprogress.less +76 -76
  353. package/src/theme/global.less +279 -279
  354. package/src/theme/index.less +5 -5
  355. package/src/theme/reportTable.less +58 -58
  356. package/src/theme/theme.less +1 -1
  357. package/src/utils/EncryptUtil.js +162 -162
  358. package/src/utils/Objects.js +25 -25
  359. package/src/utils/axios-interceptors.js +100 -100
  360. package/src/utils/colors.js +107 -107
  361. package/src/utils/common.js +10 -10
  362. package/src/utils/excel/Blob.js +180 -180
  363. package/src/utils/excel/Export2Excel.js +141 -141
  364. package/src/utils/filter.js +21 -21
  365. package/src/utils/i18n.js +80 -80
  366. package/src/utils/indexedDB.js +549 -549
  367. package/src/utils/microAppUtils.js +49 -49
  368. package/src/utils/request.js +395 -395
  369. package/src/utils/routerUtil.js +553 -553
  370. package/src/utils/themeUtil.js +100 -100
  371. package/test/Tree.spec.js +168 -168
  372. package/test/myDialog.spec.js +47 -47
  373. package/test/request.test.js +17 -17
  374. package/test/util.test.js +53 -53
  375. package/test/v3Api.test.js +1984 -1984
  376. package/tests/unit/ReportTable.spec.js +16 -16
  377. package/vue.config.js +222 -222
@@ -0,0 +1,154 @@
1
+ /**
2
+ * selectValueTypeHelper 工具函数测试
3
+ */
4
+ import {
5
+ processOptionsForValueType,
6
+ findLabelByValue,
7
+ processBothModeData,
8
+ processLabelModeData,
9
+ getOriginValue
10
+ } from '../selectValueTypeHelper'
11
+
12
+ describe('selectValueTypeHelper', () => {
13
+ const mockOptions = [
14
+ { value: '1', label: '选项1' },
15
+ { value: '2', label: '选项2' },
16
+ { key: 'key1', title: '标题1' },
17
+ { value: 'val1', text: '文本1' }
18
+ ]
19
+
20
+ const mockTreeOptions = [
21
+ {
22
+ value: 'parent1',
23
+ label: '父级1',
24
+ children: [
25
+ { value: 'child1', label: '子级1' },
26
+ { value: 'child2', label: '子级2' }
27
+ ]
28
+ }
29
+ ]
30
+
31
+ describe('processOptionsForValueType', () => {
32
+ test('value模式应该返回原始数据', () => {
33
+ const result = processOptionsForValueType(mockOptions, 'value')
34
+ expect(result).toEqual(mockOptions)
35
+ })
36
+
37
+ test('label模式应该交换value和label', () => {
38
+ const result = processOptionsForValueType(mockOptions, 'label')
39
+ expect(result[0]).toEqual({
40
+ value: '选项1',
41
+ label: '选项1',
42
+ originValue: '1'
43
+ })
44
+ })
45
+
46
+ test('both模式应该返回原始数据', () => {
47
+ const result = processOptionsForValueType(mockOptions, 'both')
48
+ expect(result).toEqual(mockOptions)
49
+ })
50
+
51
+ test('应该处理树形结构', () => {
52
+ const result = processOptionsForValueType(mockTreeOptions, 'label')
53
+ expect(result[0].children[0]).toEqual({
54
+ value: '子级1',
55
+ label: '子级1',
56
+ originValue: 'child1'
57
+ })
58
+ })
59
+ })
60
+
61
+ describe('findLabelByValue', () => {
62
+ test('应该找到对应的label', () => {
63
+ const result = findLabelByValue('1', mockOptions)
64
+ expect(result).toBe('选项1')
65
+ })
66
+
67
+ test('应该处理数组值(多选)', () => {
68
+ const result = findLabelByValue(['1', '2'], mockOptions)
69
+ expect(result).toEqual(['选项1', '选项2'])
70
+ })
71
+
72
+ test('找不到时应该返回原值', () => {
73
+ const result = findLabelByValue('notfound', mockOptions)
74
+ expect(result).toBe('notfound')
75
+ })
76
+
77
+ test('应该处理null和undefined', () => {
78
+ expect(findLabelByValue(null, mockOptions)).toBeNull()
79
+ expect(findLabelByValue(undefined, mockOptions)).toBeNull()
80
+ })
81
+ })
82
+
83
+ describe('processBothModeData', () => {
84
+ test('应该在labelData中创建label字段', () => {
85
+ const form = { status: '1' }
86
+ const mockSetField = jest.fn()
87
+
88
+ processBothModeData(form, 'status', '1', mockOptions, mockSetField)
89
+
90
+ expect(mockSetField).toHaveBeenCalledWith(form, 'labelData', {})
91
+ expect(mockSetField).toHaveBeenCalledWith(form.labelData, 'status', '选项1')
92
+ })
93
+
94
+ test('当labelData已存在时不应该重复创建', () => {
95
+ const form = { status: '1', labelData: {} }
96
+ const mockSetField = jest.fn()
97
+
98
+ processBothModeData(form, 'status', '1', mockOptions, mockSetField)
99
+
100
+ expect(mockSetField).toHaveBeenCalledWith(form.labelData, 'status', '选项1')
101
+ expect(mockSetField).toHaveBeenCalledTimes(1)
102
+ })
103
+ })
104
+
105
+ describe('processLabelModeData', () => {
106
+ test('应该在originData中创建原始值字段', () => {
107
+ const labelModeOptions = [
108
+ { value: '选项1', originValue: '1', label: '选项1' }
109
+ ]
110
+ const form = { status: '选项1' }
111
+ const mockSetField = jest.fn()
112
+
113
+ processLabelModeData(form, 'status', '选项1', labelModeOptions, mockSetField)
114
+
115
+ expect(mockSetField).toHaveBeenCalledWith(form, 'originData', {})
116
+ expect(mockSetField).toHaveBeenCalledWith(form.originData, 'status', '1')
117
+ })
118
+
119
+ test('当originData已存在时不应该重复创建', () => {
120
+ const labelModeOptions = [
121
+ { value: '选项1', originValue: '1', label: '选项1' }
122
+ ]
123
+ const form = { status: '选项1', originData: {} }
124
+ const mockSetField = jest.fn()
125
+
126
+ processLabelModeData(form, 'status', '选项1', labelModeOptions, mockSetField)
127
+
128
+ expect(mockSetField).toHaveBeenCalledWith(form.originData, 'status', '1')
129
+ expect(mockSetField).toHaveBeenCalledTimes(1)
130
+ })
131
+ })
132
+
133
+ describe('getOriginValue', () => {
134
+ const labelModeOptions = [
135
+ { value: '选项1', originValue: '1', label: '选项1' },
136
+ { value: '选项2', originValue: '2', label: '选项2' }
137
+ ]
138
+
139
+ test('应该获取原始值', () => {
140
+ const result = getOriginValue('选项1', labelModeOptions)
141
+ expect(result).toBe('1')
142
+ })
143
+
144
+ test('应该处理数组值', () => {
145
+ const result = getOriginValue(['选项1', '选项2'], labelModeOptions)
146
+ expect(result).toEqual(['1', '2'])
147
+ })
148
+
149
+ test('没有originValue时应该返回原值', () => {
150
+ const result = getOriginValue('test', mockOptions)
151
+ expect(result).toBe('test')
152
+ })
153
+ })
154
+ })
@@ -1,167 +1,167 @@
1
- /**
2
- * 获取路由需要的权限
3
- * @param permissions
4
- * @param route
5
- * @returns {Permission}
6
- */
7
- const getRoutePermission = (permissions, route) => permissions.find(item => item.id === route.meta.authority.permission)
8
- /**
9
- * 获取路由需要的角色
10
- * @param roles
11
- * @param route
12
- * @returns {Array[Role]}
13
- */
14
- const getRouteRole = (roles, route) => {
15
- const requiredRoles = route.meta.authority.role
16
- return requiredRoles ? roles.filter(item => requiredRoles.findIndex(required => required === item.id) !== -1) : []
17
- }
18
- /**
19
- * 判断是否已为方法注入权限认证
20
- * @param method
21
- * @returns {boolean}
22
- */
23
- const hasInjected = (method) => method.toString().indexOf('//--auth-inject') !== -1
24
-
25
- /**
26
- * 操作权限校验
27
- * @param authConfig
28
- * @param permission
29
- * @param role
30
- * @param permissions
31
- * @param roles
32
- * @returns {boolean}
33
- */
34
- const auth = function (authConfig, permission, role, permissions, roles) {
35
- const { check, type } = authConfig
36
- if (check && typeof check === 'function') {
37
- return check.apply(this, [permission, role, permissions, roles])
38
- }
39
- if (type === 'permission') {
40
- return checkFromPermission(check, permission)
41
- } else if (type === 'role') {
42
- return checkFromRoles(check, role)
43
- } else {
44
- return checkFromPermission(check, permission) || checkFromRoles(check, role)
45
- }
46
- }
47
-
48
- /**
49
- * 检查权限是否有操作权限
50
- * @param check 需要检查的操作权限
51
- * @param permission 权限
52
- * @returns {boolean}
53
- */
54
- const checkFromPermission = function (check, permission) {
55
- return permission && permission.operation && permission.operation.indexOf(check) !== -1
56
- }
57
-
58
- /**
59
- * 检查 roles 是否有操作权限
60
- * @param check 需要检查的操作权限
61
- * @param roles 角色数组
62
- * @returns {boolean}
63
- */
64
- const checkFromRoles = function (check, roles) {
65
- if (!roles) {
66
- return false
67
- }
68
- for (const role of roles) {
69
- const { operation } = role
70
- if (operation && operation.indexOf(check) !== -1) {
71
- return true
72
- }
73
- }
74
- return false
75
- }
76
-
77
- const checkInject = function (el, binding, vnode) {
78
- const type = binding.arg
79
- const check = binding.value
80
- const instance = vnode.context
81
- const $auth = instance.$auth
82
- if (!$auth || !$auth(check, type)) {
83
- addDisabled(el)
84
- } else {
85
- removeDisabled(el)
86
- }
87
- }
88
-
89
- const addDisabled = function (el) {
90
- if (el.tagName === 'BUTTON') {
91
- el.disabled = true
92
- } else {
93
- el.classList.add('disabled')
94
- }
95
- el.setAttribute('title', '无此权限')
96
- }
97
-
98
- const removeDisabled = function (el) {
99
- el.disabled = false
100
- el.classList.remove('disabled')
101
- el.removeAttribute('title')
102
- }
103
-
104
- const AuthorityPlugin = {
105
- install (Vue) {
106
- Vue.directive('auth', {
107
- bind (el, binding, vnode) {
108
- setTimeout(() => checkInject(el, binding, vnode), 10)
109
- },
110
- componentUpdated (el, binding, vnode) {
111
- setTimeout(() => checkInject(el, binding, vnode), 10)
112
- },
113
- unbind (el) {
114
- removeDisabled(el)
115
- }
116
- })
117
- Vue.mixin({
118
- beforeCreate () {
119
- if (this.$options.authorize) {
120
- const authorize = this.$options.authorize
121
- Object.keys(authorize).forEach(key => {
122
- if (this.$options.methods[key]) {
123
- const method = this.$options.methods[key]
124
- if (!hasInjected(method)) {
125
- let authConfig = authorize[key]
126
- authConfig = (typeof authConfig === 'string') ? { check: authConfig } : authConfig
127
- const { check, type, onFailure } = authConfig
128
- this.$options.methods[key] = function () {
129
- // --auth-inject
130
- if (this.$auth(check, type)) {
131
- return method.apply(this, arguments)
132
- } else {
133
- if (onFailure && typeof onFailure === 'function') {
134
- this[`$${check}Failure`] = onFailure
135
- return this[`$${check}Failure`](check)
136
- } else {
137
- this.$message.error(`对不起,您没有操作权限:${check}`)
138
- }
139
- return 0
140
- }
141
- }
142
- }
143
- }
144
- })
145
- }
146
- },
147
- methods: {
148
- /**
149
- * 操作权限校验
150
- * @param check 需要校验的操作名
151
- * @param type 校验类型,通过 permission 校验,还是通过 role 校验。
152
- * 如未设置,则自动识别,如匹配到当前路由 permission 则 type = permission,否则 type = role
153
- * @returns {boolean} 是否校验通过
154
- */
155
- $auth (check, type) {
156
- const permissions = this.$store.getters['account/permissions']
157
- const roles = this.$store.getters['account/roles']
158
- const permission = getRoutePermission(permissions, this.$route)
159
- const role = getRouteRole(roles, this.$route)
160
- return auth.apply(this, [{ check, type }, permission, role, permissions, roles])
161
- }
162
- }
163
- })
164
- }
165
- }
166
-
167
- export default AuthorityPlugin
1
+ /**
2
+ * 获取路由需要的权限
3
+ * @param permissions
4
+ * @param route
5
+ * @returns {Permission}
6
+ */
7
+ const getRoutePermission = (permissions, route) => permissions.find(item => item.id === route.meta.authority.permission)
8
+ /**
9
+ * 获取路由需要的角色
10
+ * @param roles
11
+ * @param route
12
+ * @returns {Array[Role]}
13
+ */
14
+ const getRouteRole = (roles, route) => {
15
+ const requiredRoles = route.meta.authority.role
16
+ return requiredRoles ? roles.filter(item => requiredRoles.findIndex(required => required === item.id) !== -1) : []
17
+ }
18
+ /**
19
+ * 判断是否已为方法注入权限认证
20
+ * @param method
21
+ * @returns {boolean}
22
+ */
23
+ const hasInjected = (method) => method.toString().indexOf('//--auth-inject') !== -1
24
+
25
+ /**
26
+ * 操作权限校验
27
+ * @param authConfig
28
+ * @param permission
29
+ * @param role
30
+ * @param permissions
31
+ * @param roles
32
+ * @returns {boolean}
33
+ */
34
+ const auth = function (authConfig, permission, role, permissions, roles) {
35
+ const { check, type } = authConfig
36
+ if (check && typeof check === 'function') {
37
+ return check.apply(this, [permission, role, permissions, roles])
38
+ }
39
+ if (type === 'permission') {
40
+ return checkFromPermission(check, permission)
41
+ } else if (type === 'role') {
42
+ return checkFromRoles(check, role)
43
+ } else {
44
+ return checkFromPermission(check, permission) || checkFromRoles(check, role)
45
+ }
46
+ }
47
+
48
+ /**
49
+ * 检查权限是否有操作权限
50
+ * @param check 需要检查的操作权限
51
+ * @param permission 权限
52
+ * @returns {boolean}
53
+ */
54
+ const checkFromPermission = function (check, permission) {
55
+ return permission && permission.operation && permission.operation.indexOf(check) !== -1
56
+ }
57
+
58
+ /**
59
+ * 检查 roles 是否有操作权限
60
+ * @param check 需要检查的操作权限
61
+ * @param roles 角色数组
62
+ * @returns {boolean}
63
+ */
64
+ const checkFromRoles = function (check, roles) {
65
+ if (!roles) {
66
+ return false
67
+ }
68
+ for (const role of roles) {
69
+ const { operation } = role
70
+ if (operation && operation.indexOf(check) !== -1) {
71
+ return true
72
+ }
73
+ }
74
+ return false
75
+ }
76
+
77
+ const checkInject = function (el, binding, vnode) {
78
+ const type = binding.arg
79
+ const check = binding.value
80
+ const instance = vnode.context
81
+ const $auth = instance.$auth
82
+ if (!$auth || !$auth(check, type)) {
83
+ addDisabled(el)
84
+ } else {
85
+ removeDisabled(el)
86
+ }
87
+ }
88
+
89
+ const addDisabled = function (el) {
90
+ if (el.tagName === 'BUTTON') {
91
+ el.disabled = true
92
+ } else {
93
+ el.classList.add('disabled')
94
+ }
95
+ el.setAttribute('title', '无此权限')
96
+ }
97
+
98
+ const removeDisabled = function (el) {
99
+ el.disabled = false
100
+ el.classList.remove('disabled')
101
+ el.removeAttribute('title')
102
+ }
103
+
104
+ const AuthorityPlugin = {
105
+ install (Vue) {
106
+ Vue.directive('auth', {
107
+ bind (el, binding, vnode) {
108
+ setTimeout(() => checkInject(el, binding, vnode), 10)
109
+ },
110
+ componentUpdated (el, binding, vnode) {
111
+ setTimeout(() => checkInject(el, binding, vnode), 10)
112
+ },
113
+ unbind (el) {
114
+ removeDisabled(el)
115
+ }
116
+ })
117
+ Vue.mixin({
118
+ beforeCreate () {
119
+ if (this.$options.authorize) {
120
+ const authorize = this.$options.authorize
121
+ Object.keys(authorize).forEach(key => {
122
+ if (this.$options.methods[key]) {
123
+ const method = this.$options.methods[key]
124
+ if (!hasInjected(method)) {
125
+ let authConfig = authorize[key]
126
+ authConfig = (typeof authConfig === 'string') ? { check: authConfig } : authConfig
127
+ const { check, type, onFailure } = authConfig
128
+ this.$options.methods[key] = function () {
129
+ // --auth-inject
130
+ if (this.$auth(check, type)) {
131
+ return method.apply(this, arguments)
132
+ } else {
133
+ if (onFailure && typeof onFailure === 'function') {
134
+ this[`$${check}Failure`] = onFailure
135
+ return this[`$${check}Failure`](check)
136
+ } else {
137
+ this.$message.error(`对不起,您没有操作权限:${check}`)
138
+ }
139
+ return 0
140
+ }
141
+ }
142
+ }
143
+ }
144
+ })
145
+ }
146
+ },
147
+ methods: {
148
+ /**
149
+ * 操作权限校验
150
+ * @param check 需要校验的操作名
151
+ * @param type 校验类型,通过 permission 校验,还是通过 role 校验。
152
+ * 如未设置,则自动识别,如匹配到当前路由 permission 则 type = permission,否则 type = role
153
+ * @returns {boolean} 是否校验通过
154
+ */
155
+ $auth (check, type) {
156
+ const permissions = this.$store.getters['account/permissions']
157
+ const roles = this.$store.getters['account/roles']
158
+ const permission = getRoutePermission(permissions, this.$route)
159
+ const role = getRouteRole(roles, this.$route)
160
+ return auth.apply(this, [{ check, type }, permission, role, permissions, roles])
161
+ }
162
+ }
163
+ })
164
+ }
165
+ }
166
+
167
+ export default AuthorityPlugin
@@ -1,20 +1,20 @@
1
- import { get } from '@vue2-client/services/api'
2
- import Vue from 'vue'
3
-
4
- async function loginStart (name, password) {
5
- const resource = await get(`/rs/user/${name}/${password}/智慧OA`, {})
6
- console.log('登陆获取', resource)
7
- Vue.$login.f = resource
8
- await Promise.all([Vue.$appdata.load()])
9
- const login = {
10
- f: Vue.$login.f,
11
- jwt: Vue.$login.f.id,
12
- r: Vue.$login.r
13
- }
14
- Vue.$store.commit('account/setLogin', login)
15
- return resource
16
- }
17
-
18
- export {
19
- loginStart
20
- }
1
+ import { get } from '@vue2-client/services/api'
2
+ import Vue from 'vue'
3
+
4
+ async function loginStart (name, password) {
5
+ const resource = await get(`/rs/user/${name}/${password}/智慧OA`, {})
6
+ console.log('登陆获取', resource)
7
+ Vue.$login.f = resource
8
+ await Promise.all([Vue.$appdata.load()])
9
+ const login = {
10
+ f: Vue.$login.f,
11
+ jwt: Vue.$login.f.id,
12
+ r: Vue.$login.r
13
+ }
14
+ Vue.$store.commit('account/setLogin', login)
15
+ return resource
16
+ }
17
+
18
+ export {
19
+ loginStart
20
+ }
@@ -1,32 +1,32 @@
1
- // 语句模式
2
- const MODE = {
3
- STATEMENTS: 's', // 语句模式
4
- PHRASAL: 'p' // 词组模式
5
- }
6
-
7
- const VueI18nPlugin = {
8
- install: function (Vue) {
9
- Vue.mixin({
10
- methods: {
11
- $ta (syntaxKey, mode) {
12
- const _mode = mode || MODE.STATEMENTS
13
- const keys = syntaxKey.split('|')
14
- const _this = this
15
- const locale = this.$i18n.locale
16
- let message = ''
17
- const splitter = locale === 'US' ? ' ' : ''
18
- // 拼接 message
19
- keys.forEach(key => {
20
- message += _this.$t(key) + splitter
21
- })
22
- // 英文环境语句模式下,转换单词大小写
23
- if (keys.length > 0 && _mode === MODE.STATEMENTS && locale === 'US') {
24
- message = message.charAt(0).toUpperCase() + message.toLowerCase().substring(1)
25
- }
26
- return message
27
- }
28
- }
29
- })
30
- }
31
- }
32
- export default VueI18nPlugin
1
+ // 语句模式
2
+ const MODE = {
3
+ STATEMENTS: 's', // 语句模式
4
+ PHRASAL: 'p' // 词组模式
5
+ }
6
+
7
+ const VueI18nPlugin = {
8
+ install: function (Vue) {
9
+ Vue.mixin({
10
+ methods: {
11
+ $ta (syntaxKey, mode) {
12
+ const _mode = mode || MODE.STATEMENTS
13
+ const keys = syntaxKey.split('|')
14
+ const _this = this
15
+ const locale = this.$i18n.locale
16
+ let message = ''
17
+ const splitter = locale === 'US' ? ' ' : ''
18
+ // 拼接 message
19
+ keys.forEach(key => {
20
+ message += _this.$t(key) + splitter
21
+ })
22
+ // 英文环境语句模式下,转换单词大小写
23
+ if (keys.length > 0 && _mode === MODE.STATEMENTS && locale === 'US') {
24
+ message = message.charAt(0).toUpperCase() + message.toLowerCase().substring(1)
25
+ }
26
+ return message
27
+ }
28
+ }
29
+ })
30
+ }
31
+ }
32
+ export default VueI18nPlugin
@@ -1,8 +1,8 @@
1
- import moment from 'moment'
2
-
3
- const momentPluging = {
4
- install (Vue) {
5
- Vue.moment = Vue.prototype.$moment = moment
6
- }
7
- }
8
- export default momentPluging
1
+ import moment from 'moment'
2
+
3
+ const momentPluging = {
4
+ install (Vue) {
5
+ Vue.moment = Vue.prototype.$moment = moment
6
+ }
7
+ }
8
+ export default momentPluging