vue2-client 1.15.85 → 1.15.87

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 (698) hide show
  1. package/.claude/settings.local.json +12 -0
  2. package/.cursorrules +19 -19
  3. package/.editorconfig +9 -9
  4. package/.env +20 -20
  5. package/.env.apply +19 -19
  6. package/.env.development +1 -1
  7. package/.env.gaslink +19 -19
  8. package/.env.his +19 -19
  9. package/.env.iot +19 -19
  10. package/.env.liuli +20 -20
  11. package/.env.message +19 -19
  12. package/.env.revenue +19 -19
  13. package/.env.runtime +19 -19
  14. package/.env.scada +19 -19
  15. package/.eslintrc.js +90 -90
  16. package/.eslintrc.json +5 -5
  17. package/CHANGELOG.md +824 -824
  18. package/CLAUDE.md +89 -89
  19. package/Components.md +60 -60
  20. package/README.md +65 -65
  21. package/babel.config.js +21 -21
  22. package/docs/Logic/345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +46 -46
  23. package/docs/LowCode/lowcode.md +155 -155
  24. package/docs/LowCode/lowcodeForDeveloper.md +230 -230
  25. package/docs/index.md +30 -30
  26. package/docs/notice.md +22 -22
  27. package/docs//345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +179 -179
  28. package/index.js +31 -31
  29. package/jest-transform-stub.js +8 -8
  30. package/jest.config.js +22 -22
  31. package/jest.setup.js +7 -7
  32. package/jsconfig.json +19 -19
  33. package/package.json +111 -111
  34. package/public/his/editor/editor.html +51 -51
  35. package/public/his/editor/mock/bind_data.html +779 -779
  36. package/public/his/editor/mock/data_table.html +40 -40
  37. package/public/his/editor/mock/sign.html +75 -75
  38. package/public/his/editor/vender/JsBarcode.all.js +3669 -3669
  39. package/public/his/editor/vender/date97/My97DatePicker.htm +65 -65
  40. package/public/his/editor/vender/date97/WdatePicker.js +677 -677
  41. package/public/his/editor/vender/date97/calendar.js +4 -4
  42. package/public/his/editor/vender/date97/lang/en.js +13 -13
  43. package/public/his/editor/vender/date97/lang/zh-cn.js +13 -13
  44. package/public/his/editor/vender/date97/lang/zh-tw.js +13 -13
  45. package/public/his/editor/vender/date97/skin/WdatePicker.css +10 -10
  46. package/public/his/editor/vender/date97/skin/default/datepicker.css +328 -328
  47. package/public/his/editor/vender/date97/skin/ext/datepicker.css +308 -308
  48. package/public/his/editor/vender/date97/skin/whyGreen/datepicker.css +255 -255
  49. package/public/his/editor/vender/diff.js +1627 -1627
  50. package/public/his/editor/vender/editor.js +1 -1
  51. package/public/his/editor/vender/fabric.js +31187 -31187
  52. package/public/his/editor/vender/jquery/jquery.base64.js +190 -190
  53. package/public/his/editor/vender/jquery/jquery.js +10872 -10872
  54. package/public/his/editor/vender/jquery/jquery.print.js +255 -255
  55. package/public/his/editor/vender/jquery/zTreeStyle/zTreeStyle.css +96 -96
  56. package/public/his/editor/vender/mui/mui.min.css +4 -4
  57. package/public/his/editor/vender/mui/mui.min.js +5 -5
  58. package/public/his/editor/vender/mui/mui.picker.min.css +6 -6
  59. package/public/his/editor/vender/mui/mui.picker.min.js +6 -6
  60. package/public/his/editor/vender/qrcode.js +7 -7
  61. package/public/his/editor/vender/requirejs/require.js +2145 -2145
  62. package/public/his/editor/vender/signature/jSignature.CompressorSVG.js +518 -518
  63. package/public/his/editor/vender/signature/jSignature.UndoButton.js +164 -164
  64. package/public/his/editor/vender/signature/jSignature.js +1486 -1486
  65. package/public/his/editor/vender/validator.js +5094 -5094
  66. package/public/his/editor/vender/weui/weui.css +5659 -5659
  67. package/public/his/editor/vender/weui/weui.min.css +4 -4
  68. package/public/his/editor/vender/weui/weui.min.js +11 -11
  69. package/public/index.html +27 -27
  70. package/src/App.vue +196 -196
  71. package/src/ReportView.js +13 -13
  72. package/src/assets/img/querySlotDemo.svg +15 -15
  73. package/src/assets/svg/badtwo.svg +1 -1
  74. package/src/assets/svg/goodtwo.svg +1 -1
  75. package/src/base-client/components/AI/AskAiBtn.vue +136 -136
  76. package/src/base-client/components/AI/demo.vue +31 -31
  77. package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +532 -532
  78. package/src/base-client/components/common/AddressSearchCombobox/IcMapIcon.vue +16 -16
  79. package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
  80. package/src/base-client/components/common/AddressSearchCombobox/ic_map.svg +6 -6
  81. package/src/base-client/components/common/AddressSearchCombobox/index.js +3 -3
  82. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  83. package/src/base-client/components/common/AmapMarker/index.js +3 -3
  84. package/src/base-client/components/common/CitySelect/CitySelect.vue +376 -376
  85. package/src/base-client/components/common/CitySelect/demo.vue +43 -43
  86. package/src/base-client/components/common/CitySelect/index.js +3 -3
  87. package/src/base-client/components/common/CitySelect/index.md +109 -109
  88. package/src/base-client/components/common/ColorPickerCombobox/ColorPickerCombobox.vue +99 -99
  89. package/src/base-client/components/common/ColorPickerCombobox/demo.vue +34 -34
  90. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  91. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
  92. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  93. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  94. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
  95. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
  96. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  97. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  98. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +146 -146
  99. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  100. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  101. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  102. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  103. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  104. package/src/base-client/components/common/JSONToTree/index.js +3 -3
  105. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  106. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorModal.vue +108 -108
  107. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -413
  108. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
  109. package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -728
  110. package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
  111. package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -219
  112. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeAddPageModal.vue +117 -117
  113. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeCustomJSModal.vue +80 -80
  114. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeEventEditorModal.vue +398 -398
  115. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLifeCycleModal.vue +65 -65
  116. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicCallbackModal.vue +64 -64
  117. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicParamModal.vue +73 -73
  118. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeRunFunctionParamModal.vue +76 -76
  119. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  120. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  121. package/src/base-client/components/common/Recording/Recording.vue +243 -243
  122. package/src/base-client/components/common/Recording/index.js +3 -3
  123. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  124. package/src/base-client/components/common/Tree/index.js +2 -2
  125. package/src/base-client/components/common/Upload/Upload.vue +323 -323
  126. package/src/base-client/components/common/Upload/index.js +3 -3
  127. package/src/base-client/components/common/XAddForm/XAddForm.vue +113 -113
  128. package/src/base-client/components/common/XAddForm/index.js +3 -3
  129. package/src/base-client/components/common/XAddForm/index.md +61 -61
  130. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +1169 -1169
  131. package/src/base-client/components/common/XAddNativeForm/demo.vue +54 -40
  132. package/src/base-client/components/common/XAddNativeForm/index.js +3 -3
  133. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  134. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +303 -303
  135. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  136. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  137. package/src/base-client/components/common/XAddReport/XAddReport.vue +212 -212
  138. package/src/base-client/components/common/XAddReport/index.js +3 -3
  139. package/src/base-client/components/common/XAddReport/index.md +56 -56
  140. package/src/base-client/components/common/XBadge/XBadge.vue +94 -94
  141. package/src/base-client/components/common/XBadge/index.js +3 -3
  142. package/src/base-client/components/common/XBadge/index.md +39 -39
  143. package/src/base-client/components/common/XButtons/XButtonDemo.vue +28 -28
  144. package/src/base-client/components/common/XButtons/XButtons.vue +284 -284
  145. package/src/base-client/components/common/XButtons/index.js +3 -3
  146. package/src/base-client/components/common/XButtons/index.md +61 -61
  147. package/src/base-client/components/common/XCalendar/XCalendar.vue +369 -369
  148. package/src/base-client/components/common/XCalendar/index.md +284 -284
  149. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  150. package/src/base-client/components/common/XCard/index.js +3 -3
  151. package/src/base-client/components/common/XCard/index.md +43 -43
  152. package/src/base-client/components/common/XCardSet/XCardSet.vue +300 -300
  153. package/src/base-client/components/common/XCheckList/XCheckList.vue +106 -106
  154. package/src/base-client/components/common/XCheckList/XCheckListDemo.vue +41 -41
  155. package/src/base-client/components/common/XCollapse/XCollapse.vue +354 -354
  156. package/src/base-client/components/common/XConversation/XConversation.vue +576 -576
  157. package/src/base-client/components/common/XConversation/XConversationDemo.vue +28 -28
  158. package/src/base-client/components/common/XDataCard/XDataCard.vue +629 -629
  159. package/src/base-client/components/common/XDataCard/index.js +3 -3
  160. package/src/base-client/components/common/XDataCard/index.md +1 -1
  161. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  162. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  163. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  164. package/src/base-client/components/common/XDatePicker/demo.vue +153 -153
  165. package/src/base-client/components/common/XDatePicker/index.vue +276 -276
  166. package/src/base-client/components/common/XDescriptions/XDescriptions.vue +174 -174
  167. package/src/base-client/components/common/XDescriptions/XDescriptionsGroup.vue +314 -314
  168. package/src/base-client/components/common/XDescriptions/demo.vue +51 -51
  169. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  170. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  171. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +238 -238
  172. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  173. package/src/base-client/components/common/XForm/XForm.vue +420 -420
  174. package/src/base-client/components/common/XForm/XFormItem.vue +1474 -1390
  175. package/src/base-client/components/common/XForm/XStatusButton.vue +54 -54
  176. package/src/base-client/components/common/XForm/XTreeSelect.vue +276 -276
  177. package/src/base-client/components/common/XForm/demo.vue +105 -105
  178. package/src/base-client/components/common/XForm/index.js +3 -3
  179. package/src/base-client/components/common/XForm/index.md +178 -178
  180. package/src/base-client/components/common/XForm/itemComponent/XClickChangeBtn/index.vue +49 -49
  181. package/src/base-client/components/common/XFormCol/XFormCol.vue +157 -157
  182. package/src/base-client/components/common/XFormCol/index.js +3 -3
  183. package/src/base-client/components/common/XFormCol/index.md +35 -35
  184. package/src/base-client/components/common/XFormGroup/XFormGroup.vue +301 -301
  185. package/src/base-client/components/common/XFormGroup/demo.vue +41 -41
  186. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  187. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  188. package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +72 -72
  189. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  190. package/src/base-client/components/common/XFormTable/XFormTable.vue +938 -938
  191. package/src/base-client/components/common/XFormTable/demo.vue +87 -87
  192. package/src/base-client/components/common/XFormTable/index.js +3 -3
  193. package/src/base-client/components/common/XFormTable/index.md +92 -92
  194. package/src/base-client/components/common/XImportExcel/XImportExcel.vue +174 -174
  195. package/src/base-client/components/common/XImportExcel/index.js +3 -3
  196. package/src/base-client/components/common/XImportExcel/index.md +38 -38
  197. package/src/base-client/components/common/XInput/XInput.vue +128 -128
  198. package/src/base-client/components/common/XInput/index.js +3 -3
  199. package/src/base-client/components/common/XInput/index.md +97 -97
  200. package/src/base-client/components/common/XIntervalPicker/XIntervalPicker.vue +121 -121
  201. package/src/base-client/components/common/XLabelSelect/XLabelSelect.vue +110 -110
  202. package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
  203. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  204. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  205. package/src/base-client/components/common/XLicensePlate/index.js +3 -3
  206. package/src/base-client/components/common/XLicensePlate/index.md +38 -38
  207. package/src/base-client/components/common/XPrint/Demo.vue +41 -41
  208. package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
  209. package/src/base-client/components/common/XPrint/PrintBill.vue +308 -308
  210. package/src/base-client/components/common/XPrint/PrintHtml.js +98 -98
  211. package/src/base-client/components/common/XPrint/css/hiPrintCss.js +359 -359
  212. package/src/base-client/components/common/XPrint/css/lodopCss.js +26 -26
  213. package/src/base-client/components/common/XPrint/css/print-lock.css +351 -351
  214. package/src/base-client/components/common/XPrint/index.vue +97 -97
  215. package/src/base-client/components/common/XRate/demo.vue +102 -102
  216. package/src/base-client/components/common/XRate/index.vue +149 -149
  217. package/src/base-client/components/common/XReport/XReport.vue +963 -963
  218. package/src/base-client/components/common/XReport/XReportDemo.vue +70 -70
  219. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  220. package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
  221. package/src/base-client/components/common/XReport/XReportTrGroup.vue +1005 -1005
  222. package/src/base-client/components/common/XReport/index.js +3 -3
  223. package/src/base-client/components/common/XReport/index.md +103 -103
  224. package/src/base-client/components/common/XReport/print.js +186 -186
  225. package/src/base-client/components/common/XReportDrawer/XReportDrawer.vue +201 -201
  226. package/src/base-client/components/common/XReportDrawer/index.js +3 -3
  227. package/src/base-client/components/common/XReportGrid/XReport.vue +1075 -1075
  228. package/src/base-client/components/common/XReportGrid/XReportDemo.vue +44 -44
  229. package/src/base-client/components/common/XReportGrid/XReportDesign.vue +620 -620
  230. package/src/base-client/components/common/XReportGrid/XReportTrGroup.vue +723 -723
  231. package/src/base-client/components/common/XReportGrid/index.js +3 -3
  232. package/src/base-client/components/common/XReportGrid/index.md +44 -44
  233. package/src/base-client/components/common/XReportGrid/print.js +184 -184
  234. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  235. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  236. package/src/base-client/components/common/XReportSlot/index.md +48 -48
  237. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
  238. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
  239. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
  240. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  241. package/src/base-client/components/common/XStepView/index.js +3 -3
  242. package/src/base-client/components/common/XStepView/index.md +31 -31
  243. package/src/base-client/components/common/XTab/XTab.vue +299 -299
  244. package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
  245. package/src/base-client/components/common/XTab/index.js +3 -3
  246. package/src/base-client/components/common/XTable/CustomFuncCel.vue +51 -51
  247. package/src/base-client/components/common/XTable/ExportExcel.vue +283 -283
  248. package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
  249. package/src/base-client/components/common/XTable/XTable.vue +1599 -1599
  250. package/src/base-client/components/common/XTable/XTableWrapper.vue +597 -597
  251. package/src/base-client/components/common/XTable/index.js +3 -3
  252. package/src/base-client/components/common/XTable/index.md +255 -255
  253. package/src/base-client/components/common/XTagGroup/index.vue +52 -52
  254. package/src/base-client/components/common/XTimeline/XTimeline.vue +358 -358
  255. package/src/base-client/components/common/XTimeline/index.md +191 -191
  256. package/src/base-client/components/common/XTree/XTree.vue +424 -424
  257. package/src/base-client/components/common/XTree/XTreePro.vue +450 -452
  258. package/src/base-client/components/common/XTree/index.js +3 -3
  259. package/src/base-client/components/common/XTree/index.md +36 -36
  260. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
  261. package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
  262. package/src/base-client/components/common/XTreeOne/index.js +3 -3
  263. package/src/base-client/components/common/XUploadFilesView/index.vue +485 -485
  264. package/src/base-client/components/common/richTextModal/index.vue +56 -56
  265. package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
  266. package/src/base-client/components/his/XCharge/XCharge.vue +238 -238
  267. package/src/base-client/components/his/XCheckbox/XCheckbox.vue +105 -105
  268. package/src/base-client/components/his/XCheckbox/index.md +253 -253
  269. package/src/base-client/components/his/XHDescriptions/XHDescriptions.vue +430 -430
  270. package/src/base-client/components/his/XHDescriptions/index.md +217 -217
  271. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +629 -629
  272. package/src/base-client/components/his/XHisEditor/diagnosisAutocomplete.js +263 -263
  273. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  274. package/src/base-client/components/his/XList/XList.vue +495 -495
  275. package/src/base-client/components/his/XQuestionnaire/XQuestionnaire.json +3 -3
  276. package/src/base-client/components/his/XQuestionnaire/XQuestionnaire.vue +106 -106
  277. package/src/base-client/components/his/XQuestionnaire/XQuestionnaireDemo.vue +51 -51
  278. package/src/base-client/components/his/XQuestionnaire/XQuestionnaireItem.vue +269 -269
  279. package/src/base-client/components/his/XRadio/XRadio.vue +125 -125
  280. package/src/base-client/components/his/XRadio/index.md +234 -234
  281. package/src/base-client/components/his/XSelect/XSelect.vue +72 -72
  282. package/src/base-client/components/his/XShiftSchedule/XShiftSchedule.vue +234 -234
  283. package/src/base-client/components/his/XShiftSchedule/dome.vue +29 -29
  284. package/src/base-client/components/his/XSidebar/XSidebar.vue +240 -240
  285. package/src/base-client/components/his/XTextCard/XTextCard.vue +207 -207
  286. package/src/base-client/components/his/XTimeSelect/XTimeSelect.vue +162 -162
  287. package/src/base-client/components/his/XTimeSelect/XTimeSelectDemo.vue +23 -23
  288. package/src/base-client/components/his/XTitle/README.md +113 -113
  289. package/src/base-client/components/his/XTitle/XTitle.vue +123 -123
  290. package/src/base-client/components/his/XTreeRows/TreeNode.vue +107 -107
  291. package/src/base-client/components/his/XTreeRows/XTreeRows.vue +307 -307
  292. package/src/base-client/components/his/threeTestOrders/dome.vue +68 -68
  293. package/src/base-client/components/his/threeTestOrders/editor.vue +111 -111
  294. package/src/base-client/components/his/threeTestOrders/textBox.vue +457 -457
  295. package/src/base-client/components/his/threeTestOrders/threeTestOrders.vue +475 -475
  296. package/src/base-client/components/index.js +51 -51
  297. package/src/base-client/components/layout/XPageView/RenderRow.vue +88 -88
  298. package/src/base-client/components/layout/XPageView/XErrorView.vue +22 -22
  299. package/src/base-client/components/layout/XPageView/XPageRowTemplate.vue +37 -37
  300. package/src/base-client/components/layout/XPageView/XPageView.vue +223 -223
  301. package/src/base-client/components/layout/XPageView/XTab/XTab.vue +96 -96
  302. package/src/base-client/components/layout/XPageView/XTab/index.js +3 -3
  303. package/src/base-client/components/layout/XPageView/componentTypes.js +22 -22
  304. package/src/base-client/components/layout/XPageView/index.js +2 -2
  305. package/src/base-client/components/layout/XPageView/index.md +96 -96
  306. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  307. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  308. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  309. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  310. package/src/base-client/components/system/DictionaryDetailsView/index.js +3 -3
  311. package/src/base-client/components/system/DictionaryDetailsView/index.md +41 -41
  312. package/src/base-client/components/system/LogDetailsView/LogDetailsView.vue +376 -376
  313. package/src/base-client/components/system/LogDetailsView/index.js +3 -3
  314. package/src/base-client/components/system/LogDetailsView/index.md +41 -41
  315. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  316. package/src/base-client/components/system/QueryParamsDetailsView/index.js +3 -3
  317. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +807 -807
  318. package/src/base-client/components/ticket/TicketDetailsView/index.js +3 -3
  319. package/src/base-client/components/ticket/TicketDetailsView/index.md +29 -29
  320. package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +260 -260
  321. package/src/base-client/components/ticket/TicketDetailsView/part/index.js +3 -3
  322. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
  323. package/src/base-client/components/ticket/TicketSubmitSuccessView/index.js +3 -3
  324. package/src/base-client/components/ticket/TicketSubmitSuccessView/index.md +29 -29
  325. package/src/base-client/plugins/AppData.js +126 -126
  326. package/src/base-client/plugins/Config.js +19 -19
  327. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  328. package/src/base-client/plugins/PagedList.js +177 -177
  329. package/src/base-client/plugins/Recording.js +258 -258
  330. package/src/base-client/plugins/__tests__/selectValueTypeHelper.test.js +154 -0
  331. package/src/base-client/plugins/authority-plugin.js +167 -167
  332. package/src/base-client/plugins/compatible/LoginServiceOA.js +20 -20
  333. package/src/base-client/plugins/i18n-extend.js +32 -32
  334. package/src/base-client/plugins/index.js +23 -23
  335. package/src/base-client/plugins/moment.js +8 -8
  336. package/src/base-client/plugins/selectValueTypeHelper.js +281 -0
  337. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  338. package/src/bootstrap.js +51 -51
  339. package/src/components/Charts/Bar.vue +62 -62
  340. package/src/components/Charts/ChartCard.vue +134 -134
  341. package/src/components/Charts/Liquid.vue +67 -67
  342. package/src/components/Charts/MiniArea.vue +39 -39
  343. package/src/components/Charts/MiniBar.vue +39 -39
  344. package/src/components/Charts/MiniProgress.vue +75 -75
  345. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  346. package/src/components/Charts/Radar.vue +68 -68
  347. package/src/components/Charts/RankList.vue +77 -77
  348. package/src/components/Charts/TagCloud.vue +113 -113
  349. package/src/components/Charts/TransferBar.vue +64 -64
  350. package/src/components/Charts/Trend.vue +82 -82
  351. package/src/components/Charts/chart.less +12 -12
  352. package/src/components/Charts/smooth.area.less +13 -13
  353. package/src/components/CodeMirror/inedx.vue +118 -118
  354. package/src/components/CodeMirror/setting.js +40 -40
  355. package/src/components/Ellipsis/Ellipsis.vue +65 -65
  356. package/src/components/Ellipsis/index.js +3 -3
  357. package/src/components/Ellipsis/index.md +38 -38
  358. package/src/components/FileImageItem/FileItem.vue +320 -320
  359. package/src/components/FileImageItem/FileItemGroup.vue +197 -197
  360. package/src/components/FileImageItem/ImageItem.vue +107 -107
  361. package/src/components/FileImageItem/index.js +4 -4
  362. package/src/components/FilePreview/FilePreview.vue +181 -181
  363. package/src/components/FilePreview/FilePreviewDemo.vue +30 -30
  364. package/src/components/FilePreview/index.js +3 -3
  365. package/src/components/HeightScanner/index.vue +615 -615
  366. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  367. package/src/components/NumberInfo/index.js +3 -3
  368. package/src/components/NumberInfo/index.less +54 -54
  369. package/src/components/NumberInfo/index.md +43 -43
  370. package/src/components/STable/README.md +341 -341
  371. package/src/components/STable/index.js +558 -558
  372. package/src/components/TableSetting/TableSetting.vue +143 -143
  373. package/src/components/TableSetting/index.js +3 -3
  374. package/src/components/Trend/Trend.vue +41 -41
  375. package/src/components/Trend/index.js +3 -3
  376. package/src/components/Trend/index.less +41 -41
  377. package/src/components/Trend/index.md +45 -45
  378. package/src/components/_util/util.js +46 -46
  379. package/src/components/cache/AKeepAlive.js +179 -179
  380. package/src/components/card/ChartCard.vue +79 -79
  381. package/src/components/chart/Bar.vue +60 -60
  382. package/src/components/chart/MiniArea.vue +67 -67
  383. package/src/components/chart/MiniBar.vue +59 -59
  384. package/src/components/chart/MiniProgress.vue +57 -57
  385. package/src/components/chart/Radar.vue +80 -80
  386. package/src/components/chart/RankingList.vue +60 -60
  387. package/src/components/chart/Trend.vue +79 -79
  388. package/src/components/chart/index.less +9 -9
  389. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  390. package/src/components/checkbox/ImgCheckbox.vue +117 -117
  391. package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
  392. package/src/components/checkbox/index.js +9 -9
  393. package/src/components/exception/ExceptionPage.vue +70 -70
  394. package/src/components/exception/typeConfig.js +19 -19
  395. package/src/components/form/FormRow.vue +52 -52
  396. package/src/components/g2Charts/constants.js +202 -202
  397. package/src/components/g2Charts/demo.vue +808 -808
  398. package/src/components/g2Charts/designer.vue +228 -228
  399. package/src/components/g2Charts/designerBaseConfig.vue +61 -61
  400. package/src/components/g2Charts/designerDataConfig.vue +259 -259
  401. package/src/components/g2Charts/designerStyleConfig.vue +16 -16
  402. package/src/components/g2Charts/index.vue +397 -397
  403. package/src/components/index.js +36 -36
  404. package/src/components/index.less +5 -5
  405. package/src/components/input/IInput.vue +66 -66
  406. package/src/components/menu/Contextmenu.vue +84 -84
  407. package/src/components/menu/SideMenu.vue +75 -75
  408. package/src/components/menu/index.less +38 -38
  409. package/src/components/menu/menu.js +273 -273
  410. package/src/components/page/header/PageHeader.vue +64 -64
  411. package/src/components/page/header/index.less +40 -40
  412. package/src/components/result/Result.vue +77 -77
  413. package/src/components/setting/Setting.vue +234 -234
  414. package/src/components/setting/SettingItem.vue +26 -26
  415. package/src/components/setting/i18n.js +117 -117
  416. package/src/components/table/StandardTable.vue +141 -141
  417. package/src/components/table/advance/ActionColumns.vue +158 -158
  418. package/src/components/table/advance/ActionSize.vue +45 -45
  419. package/src/components/table/advance/AdvanceTable.vue +275 -275
  420. package/src/components/table/advance/SearchArea.vue +355 -355
  421. package/src/components/table/advance/index.js +2 -2
  422. package/src/components/table/api/ApiTable.vue +50 -50
  423. package/src/components/task/TaskGroup.vue +80 -80
  424. package/src/components/task/TaskItem.vue +26 -26
  425. package/src/components/tool/AStepItem.vue +60 -60
  426. package/src/components/tool/AvatarList.vue +68 -68
  427. package/src/components/tool/DetailList.vue +157 -157
  428. package/src/components/tool/Drawer.vue +142 -142
  429. package/src/components/tool/FooterToolBar.vue +30 -30
  430. package/src/components/tool/HeadInfo.vue +35 -35
  431. package/src/components/tool/TagSelect.vue +83 -83
  432. package/src/components/tool/TagSelectOption.vue +33 -33
  433. package/src/components/transition/PageToggleTransition.vue +97 -97
  434. package/src/config/CreateQueryConfig.js +325 -325
  435. package/src/config/default/admin.config.js +18 -18
  436. package/src/config/default/animate.config.js +21 -21
  437. package/src/config/default/antd.config.js +89 -89
  438. package/src/config/default/index.js +6 -6
  439. package/src/config/default/setting.config.js +55 -55
  440. package/src/config/index.js +3 -3
  441. package/src/config/replacer/index.js +10 -10
  442. package/src/config/replacer/resolve.config.js +67 -67
  443. package/src/expression/ExpressionRunner.js +26 -26
  444. package/src/expression/TestExpression.js +509 -509
  445. package/src/expression/core/Delegate.js +115 -115
  446. package/src/expression/core/Expression.js +1358 -1358
  447. package/src/expression/core/Program.js +932 -932
  448. package/src/expression/core/Token.js +27 -27
  449. package/src/expression/enums/ExpressionType.js +81 -81
  450. package/src/expression/enums/TokenType.js +11 -11
  451. package/src/expression/exception/BreakWayException.js +2 -2
  452. package/src/expression/exception/ContinueWayException.js +2 -2
  453. package/src/expression/exception/ExpressionException.js +28 -28
  454. package/src/expression/exception/ReturnWayException.js +14 -14
  455. package/src/expression/exception/ServiceException.js +22 -22
  456. package/src/expression/instances/LogicConsole.js +44 -44
  457. package/src/expression/ts/ExpressionRunner.ts +28 -28
  458. package/src/expression/ts/TestExpression.ts +509 -509
  459. package/src/expression/ts/core/Delegate.ts +114 -114
  460. package/src/expression/ts/core/Expression.ts +1309 -1309
  461. package/src/expression/ts/core/Program.ts +950 -950
  462. package/src/expression/ts/core/Token.ts +29 -29
  463. package/src/expression/ts/enums/ExpressionType.ts +81 -81
  464. package/src/expression/ts/enums/TokenType.ts +13 -13
  465. package/src/expression/ts/exception/BreakWayException.ts +2 -2
  466. package/src/expression/ts/exception/ContinueWayException.ts +2 -2
  467. package/src/expression/ts/exception/ExpressionException.ts +28 -28
  468. package/src/expression/ts/exception/ReturnWayException.ts +14 -14
  469. package/src/expression/ts/exception/ServiceException.ts +22 -22
  470. package/src/expression/ts/instances/JSONArray.ts +48 -48
  471. package/src/expression/ts/instances/JSONObject.ts +109 -109
  472. package/src/expression/ts/instances/LogicConsole.ts +32 -32
  473. package/src/font-style/font.css +4 -4
  474. package/src/layouts/AdminLayout.vue +176 -176
  475. package/src/layouts/BlankView.vue +79 -79
  476. package/src/layouts/CommonLayout.vue +56 -56
  477. package/src/layouts/ComponentLayoutOne.vue +47 -47
  478. package/src/layouts/GridView.vue +43 -43
  479. package/src/layouts/PageLayout.vue +151 -151
  480. package/src/layouts/PageView.vue +55 -55
  481. package/src/layouts/SinglePageView.vue +136 -136
  482. package/src/layouts/footer/PageFooter.vue +49 -49
  483. package/src/layouts/header/AdminHeader.vue +132 -132
  484. package/src/layouts/header/HeaderAvatar.vue +64 -64
  485. package/src/layouts/header/HeaderNotice.vue +177 -177
  486. package/src/layouts/header/HeaderSearch.vue +67 -67
  487. package/src/layouts/header/InstitutionDetail.vue +181 -181
  488. package/src/layouts/header/index.less +92 -92
  489. package/src/layouts/tabs/TabsHead.vue +189 -189
  490. package/src/layouts/tabs/TabsView.vue +383 -383
  491. package/src/layouts/tabs/i18n.js +25 -25
  492. package/src/layouts/tabs/index.js +2 -2
  493. package/src/lib.js +1 -1
  494. package/src/logic/LogicRunner.js +62 -62
  495. package/src/logic/TestLogic.js +13 -13
  496. package/src/logic/plugins/common/DateTools.js +35 -35
  497. package/src/logic/plugins/common/VueTools.js +30 -30
  498. package/src/logic/plugins/index.js +7 -7
  499. package/src/logic/ts/LogicRunner.ts +67 -67
  500. package/src/logic/ts/TestLogic.ts +13 -13
  501. package/src/main.js +33 -33
  502. package/src/mixins/formValidationMixin.js +46 -46
  503. package/src/mock/common/activityData.js +32 -32
  504. package/src/mock/common/index.js +89 -89
  505. package/src/mock/common/reportData.js +20 -20
  506. package/src/mock/common/tableData.js +118 -118
  507. package/src/mock/extend/index.js +84 -84
  508. package/src/mock/goods/index.js +108 -108
  509. package/src/mock/index.js +12 -12
  510. package/src/mock/project/index.js +17 -17
  511. package/src/mock/user/current.js +13 -13
  512. package/src/mock/user/login.js +39 -39
  513. package/src/mock/user/routes.js +61 -61
  514. package/src/mock/workplace/index.js +15 -15
  515. package/src/pages/DefaultExample/index.vue +77 -77
  516. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  517. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  518. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  519. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  520. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  521. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  522. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  523. package/src/pages/DynamicStatistics/index.vue +282 -282
  524. package/src/pages/Example/childIndex.vue +15 -15
  525. package/src/pages/Example/index.vue +30 -30
  526. package/src/pages/LogicCallExample/index.vue +46 -46
  527. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  528. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  529. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  530. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  531. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  532. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  533. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  534. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  535. package/src/pages/Recording/index.vue +77 -77
  536. package/src/pages/ReportGrid/index.vue +76 -76
  537. package/src/pages/ReportView.vue +50 -50
  538. package/src/pages/ServiceReview/index.vue +284 -284
  539. package/src/pages/SubExample/index.vue +26 -26
  540. package/src/pages/WorkflowDetail/WorkFlowDemo.vue +47 -47
  541. package/src/pages/WorkflowDetail/WorkFlowDemo2.vue +204 -204
  542. package/src/pages/WorkflowDetail/WorkFlowDemo3.vue +203 -225
  543. package/src/pages/WorkflowDetail/WorkflowDetail.vue +391 -391
  544. package/src/pages/WorkflowDetail/WorkflowPageDetail/LeaveMessage.vue +388 -388
  545. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  546. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformation.vue +415 -415
  547. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformationDetails.vue +276 -276
  548. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandle.vue +1766 -1766
  549. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandleReso.vue +975 -975
  550. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowPreview.vue +109 -109
  551. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowTimeline.vue +929 -929
  552. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkOrderParentDetails.vue +222 -222
  553. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowDetailResso.vue +243 -243
  554. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowListResolution.vue +248 -248
  555. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowLog.vue +188 -188
  556. package/src/pages/WorkflowDetail/WorkflowPageDetail/components/WorkflowPersonSelector.vue +109 -109
  557. package/src/pages/WorkflowDetail/WorkflowPageDetail/worklog.vue +97 -97
  558. package/src/pages/XPageViewExample/index.vue +149 -149
  559. package/src/pages/XReportView/index.vue +64 -64
  560. package/src/pages/XTreeOneProExample/index.vue +67 -67
  561. package/src/pages/addressSelect/addressDemo.vue +24 -24
  562. package/src/pages/addressSelect/index.vue +270 -270
  563. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  564. package/src/pages/dashboard/workplace/i18n.js +40 -40
  565. package/src/pages/dashboard/workplace/index.js +2 -2
  566. package/src/pages/dashboard/workplace/index.less +59 -59
  567. package/src/pages/exception/403.vue +21 -21
  568. package/src/pages/exception/404.vue +24 -24
  569. package/src/pages/exception/500.vue +21 -21
  570. package/src/pages/login/Login.vue +380 -380
  571. package/src/pages/login/LoginV3.vue +389 -389
  572. package/src/pages/login/index.js +2 -2
  573. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  574. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  575. package/src/pages/report/ReportTable.js +124 -124
  576. package/src/pages/report/ReportTableHome.vue +28 -28
  577. package/src/pages/resourceManage/depListManage.vue +23 -23
  578. package/src/pages/resourceManage/funListManage.vue +23 -23
  579. package/src/pages/resourceManage/index.js +15 -15
  580. package/src/pages/resourceManage/orgListManage.vue +98 -98
  581. package/src/pages/resourceManage/resourceManageMain.vue +57 -57
  582. package/src/pages/resourceManage/roleListManage.vue +23 -23
  583. package/src/pages/resourceManage/staffListManage.vue +23 -23
  584. package/src/pages/system/dictionary/index.vue +44 -44
  585. package/src/pages/system/file/Info.vue +56 -56
  586. package/src/pages/system/file/index.vue +317 -317
  587. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  588. package/src/pages/system/monitor/operLog/index.vue +37 -37
  589. package/src/pages/system/settings/index.vue +126 -126
  590. package/src/pages/system/settings/modifyPassword.vue +117 -117
  591. package/src/pages/system/ticket/index.vue +480 -480
  592. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  593. package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
  594. package/src/pages/userInfoDetailManage/FillCardRecordQuery/index.vue +77 -77
  595. package/src/pages/userInfoDetailManage/FillGasRecordQuery/index.vue +75 -75
  596. package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
  597. package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
  598. package/src/pages/userInfoDetailManage/InsuranceDetailQuery/index.vue +64 -64
  599. package/src/pages/userInfoDetailManage/MachineRecordQuery/index.vue +75 -75
  600. package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
  601. package/src/pages/userInfoDetailManage/OtherChargeRecordQuery/index.vue +75 -75
  602. package/src/pages/userInfoDetailManage/PriceAdjustments/index.vue +64 -64
  603. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
  604. package/src/pages/userInfoDetailManage/UserChargeRecordQuery/index.vue +94 -94
  605. package/src/pages/userInfoDetailManage/UserException/index.vue +64 -64
  606. package/src/pages/userInfoDetailManage/UserHandRecordQuery/index.vue +87 -87
  607. package/src/pages/userInfoDetailManage/UserRecordQuery/index.vue +74 -74
  608. package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
  609. package/src/pages/userInfoDetailManage/index.vue +290 -290
  610. package/src/pages/userInfoDetailManage/uploadFilesHistory/ImagePreview.vue +101 -101
  611. package/src/pages/userInfoDetailManage/uploadFilesHistory/index.vue +129 -129
  612. package/src/pages/userInfoDetailManage/userInfoDetailQueryTabs.vue +144 -144
  613. package/src/plugins/EventLogPlugin.js +33 -33
  614. package/src/plugins/FindParentsData.js +17 -17
  615. package/src/plugins/HiPrintPlugin.js +164 -164
  616. package/src/router/async/config.async.js +35 -35
  617. package/src/router/async/router.map.js +126 -130
  618. package/src/router/guards.js +262 -262
  619. package/src/router/i18n.js +57 -57
  620. package/src/router/index.js +27 -27
  621. package/src/router.js +17 -17
  622. package/src/services/DataModel.js +30 -30
  623. package/src/services/LodopFuncs.js +137 -137
  624. package/src/services/api/DictionaryDetailsViewApi.js +6 -6
  625. package/src/services/api/LogDetailsViewApi.js +10 -10
  626. package/src/services/api/QueryParamsDetailsViewApi.js +6 -6
  627. package/src/services/api/TicketDetailsViewApi.js +46 -46
  628. package/src/services/api/cas.js +79 -79
  629. package/src/services/api/common.js +346 -346
  630. package/src/services/api/entity.js +18 -18
  631. package/src/services/api/index.js +17 -17
  632. package/src/services/api/logininfor/index.js +6 -6
  633. package/src/services/api/manage.js +8 -8
  634. package/src/services/api/restTools.js +215 -215
  635. package/src/services/api/workFlow.js +57 -57
  636. package/src/services/apiService.js +16 -16
  637. package/src/services/dataSource.js +12 -12
  638. package/src/services/index.js +7 -7
  639. package/src/services/user.js +92 -92
  640. package/src/services/v3Api.js +116 -116
  641. package/src/store/index.js +5 -5
  642. package/src/store/modules/account.js +115 -115
  643. package/src/store/modules/index.js +5 -5
  644. package/src/store/modules/lowCode.js +33 -33
  645. package/src/store/modules/setting.js +119 -119
  646. package/src/store/mutation-types.js +4 -4
  647. package/src/theme/antd/ant-menu.less +2 -2
  648. package/src/theme/antd/ant-message.less +3 -3
  649. package/src/theme/antd/ant-table.less +22 -22
  650. package/src/theme/antd/ant-time-picker.less +3 -3
  651. package/src/theme/antd/index.less +3 -3
  652. package/src/theme/default/color.less +43 -43
  653. package/src/theme/default/index.less +3 -3
  654. package/src/theme/default/nprogress.less +76 -76
  655. package/src/theme/default/style.less +58 -58
  656. package/src/theme/global.less +279 -279
  657. package/src/theme/index.less +5 -5
  658. package/src/theme/reportTable.less +58 -58
  659. package/src/theme/theme.less +1 -1
  660. package/src/utils/EncryptUtil.js +162 -162
  661. package/src/utils/Objects.js +25 -25
  662. package/src/utils/authority-utils.js +85 -85
  663. package/src/utils/axios-interceptors.js +100 -100
  664. package/src/utils/colors.js +107 -107
  665. package/src/utils/common.js +10 -10
  666. package/src/utils/errorCode.js +6 -6
  667. package/src/utils/excel/Blob.js +180 -180
  668. package/src/utils/excel/Export2Excel.js +141 -141
  669. package/src/utils/filter.js +21 -21
  670. package/src/utils/formatter.js +74 -74
  671. package/src/utils/htmlToPDF.js +108 -108
  672. package/src/utils/htmlToPDFApi.js +5 -5
  673. package/src/utils/i18n.js +80 -80
  674. package/src/utils/indexedDB.js +549 -549
  675. package/src/utils/login.js +188 -188
  676. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  677. package/src/utils/lowcode/lowcodeLog.js +29 -29
  678. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  679. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  680. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  681. package/src/utils/map-utils.js +47 -47
  682. package/src/utils/microAppUtils.js +49 -49
  683. package/src/utils/reg.js +95 -95
  684. package/src/utils/request.js +395 -395
  685. package/src/utils/routerUtil.js +553 -553
  686. package/src/utils/runEvalFunction.js +14 -14
  687. package/src/utils/theme-color-replacer-extend.js +92 -92
  688. package/src/utils/themeUtil.js +100 -100
  689. package/src/utils/util.js +329 -329
  690. package/src/utils/waterMark.js +31 -31
  691. package/test/Tree.spec.js +168 -168
  692. package/test/myDialog.spec.js +47 -47
  693. package/test/request.test.js +17 -17
  694. package/test/util.test.js +53 -53
  695. package/test/v3Api.test.js +1984 -1984
  696. package/tests/unit/ReportTable.spec.js +16 -16
  697. package/vue.config.js +222 -222
  698. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
@@ -1,629 +1,629 @@
1
- <template>
2
- <div>
3
- <div v-show="ready">
4
- <a-row v-if="this.readonly" class="editor-action-container" type="flex" justify="space-between">
5
- <a-col class="editor-tools">
6
- <a-space>
7
- <template v-if="resList.length > 0">
8
- <a-select
9
- style="width: 200px"
10
- v-model="toggleResId"
11
- placeholder="请选择文档"
12
- show-search
13
- @change="changeRes"
14
- >
15
- <a-select-option v-for="item of resListCp" :key="item.value" :value="item.value">{{ item.label }}</a-select-option>
16
- </a-select>
17
- <!-- <template v-if="this.modeType !== 'readonly' && this.resId !== -1">-->
18
- <!-- <a-button icon="plus" @click="addRes"/>-->
19
- <!-- </template>-->
20
- </template>
21
- <a-radio-group
22
- v-show="showModeChoose"
23
- button-style="solid"
24
- @change="changeMode"
25
- v-model="modeType">
26
- <a-radio-button v-for="item of modeList" :key="item.value" :value="item.value">
27
- {{ item.label }}
28
- </a-radio-button>
29
- </a-radio-group>
30
- </a-space>
31
- </a-col>
32
- <a-col class="editor-action">
33
- <a-space>
34
- <template v-if="this.modeType !== 'readonly'">
35
- <!-- <a-button-->
36
- <!-- type="primary"-->
37
- <!-- v-if = "userTemplateVisible"-->
38
- <!-- @click="useTemplateData"-->
39
- <!-- >-->
40
- <!-- 使用-->
41
- <!-- </a-button>-->
42
-
43
- <a-button type="primary" @click="openRenameModal" v-if="this.resId !== -1">
44
- 重命名
45
- </a-button>
46
- <!-- 组合按钮容器 -->
47
- <div class="save-btn-main">
48
- <!-- 保存按钮 (左侧) -->
49
- <a-button
50
- type="primary"
51
- class="save-btn-main"
52
- @click="showSaveModal('normal')"
53
- >
54
- 保存
55
- </a-button>
56
-
57
- <!-- 下拉部分 (右侧) -->
58
- <!-- 下拉触发部分 -->
59
- <template v-if="modeType !== 'design'">
60
- <a-dropdown
61
- :trigger="['click']"
62
- placement="bottomRight">
63
- <a-button
64
- type="primary"
65
- class="dropdown-trigger-btn">
66
- <a-icon type="down" />
67
- </a-button>
68
- <a-menu slot="overlay">
69
- <a-menu-item @click="showSaveModal('template')">
70
- 保存并作为模板
71
- </a-menu-item>
72
- </a-menu>
73
- </a-dropdown>
74
- </template>
75
- </div>
76
- <a-modal
77
- title="保存"
78
- :visible="saveVisible"
79
- confirm-loading = false
80
- @ok="handleSaveConfirm"
81
- @cancel="saveVisible = false"
82
- >
83
- <a-form-item label="文件名" :label-col="{ span: 4 }" :wrapper-col="{ span: 20 }">
84
- <a-input
85
- v-model="fileName"
86
- placeholder="请输入文件名"
87
- @pressEnter="handleSaveConfirm"
88
- />
89
- </a-form-item>
90
- </a-modal>
91
- </template>
92
- <a-button type="primary" @click="print">
93
- 打印
94
- </a-button>
95
- <a-button @click="refresh">
96
- 刷新
97
- </a-button>
98
- </a-space>
99
- <a-dropdown>
100
- <a-menu slot="overlay" @click="handleExportMenuClick">
101
- <a-menu-item key="exportPdf">导出为Pdf</a-menu-item>
102
- <a-menu-item key="exportWord">导出为Word</a-menu-item>
103
- <a-menu-item key="exportHtmlWithStyle">导出为Html</a-menu-item>
104
- </a-menu>
105
- <a-button style="margin-left: 8px"> 导出 <a-icon type="down" /> </a-button>
106
- </a-dropdown>
107
- </a-col>
108
- </a-row>
109
- <a-divider/>
110
- <a-spin tip="加载中,马上好" :spinning="loading">
111
- <iframe
112
- id="x-editor"
113
- src="/his/editor/editor.html"
114
- v-bind="objectOfAttrs"
115
- @load="onload"
116
- style="height: calc(-200px - 3rem + 100vh);">
117
- </iframe>
118
- </a-spin>
119
- </div>
120
- <div v-show="!ready">
121
- <a-empty description="请选择文书" />
122
- </div>
123
- <a-modal
124
- :destroyOnClose="true"
125
- :title="this.resDataModalMode === 'modify' ? '修改文档' : '新建文档'"
126
- :visible="resDataModalVisible"
127
- okText="提交"
128
- @cancel="resDataModalVisible = false"
129
- @ok="onSubmit">
130
- <a-form-model ref="resModifyForm" :model="modifyResModel" :rules="resRules">
131
- <a-form-model-item prop="f_file_name" label="文档名">
132
- <a-input v-model="modifyResModel.f_file_name" placeholder="请输入文档名"/>
133
- </a-form-model-item>
134
- </a-form-model>
135
- </a-modal></div>
136
- </template>
137
-
138
- <script>
139
-
140
- import { runLogic } from '@vue2-client/services/api/common'
141
- import { initDiagnosisDropdown } from './diagnosisAutocomplete'
142
-
143
- export default {
144
- name: 'XHisEditor',
145
- computed: {
146
- resListCp () {
147
- const list = this.resList
148
- if (this.resId === -1) {
149
- list.push({
150
- label: '未保存文档*', value: -1
151
- })
152
- }
153
- return list
154
- }
155
- },
156
- data () {
157
- return {
158
- readonly: false,
159
- ready: false,
160
- loading: false,
161
- resDataModalMode: 'modify',
162
- resDataModalVisible: false,
163
- saveVisible: false,
164
- // 使用按钮显隐控制
165
- // userTemplateVisible: false,
166
- objectOfAttrs: {
167
- width: '100%',
168
- height: '650vh',
169
- frameborder: 0
170
- },
171
- // 数据模式
172
- modeType: 'form',
173
- // 是否显示模式切换功能
174
- showModeChoose: true,
175
- // 是否作为模板 1 是,0 否
176
- isTemplate: 0,
177
- // 模板id
178
- templateId: undefined,
179
- admissionId: undefined,
180
- // 保存类型
181
- saveType: 'normal',
182
- fileName: '',
183
- // 数据模式列表
184
- modeList: [
185
- {
186
- label: '预览',
187
- value: 'readonly'
188
- },
189
- {
190
- label: '表单',
191
- value: 'form'
192
- },
193
- {
194
- label: '设计',
195
- value: 'design'
196
- }
197
- ],
198
- // 编辑器实例
199
- editorRef: null,
200
- // 文档资源列表
201
- resList: [],
202
- // 文档资源ID
203
- resId: undefined,
204
- // 文档链接
205
- fileUrl: undefined,
206
- // 文档绑定数据
207
- bindObject: undefined,
208
- // 合并模板数据后文档数据
209
- assignBindObject: undefined,
210
- // 数据模式 template:模板编辑;data:数据编辑
211
- dataMode: undefined,
212
- // 保存数据调用的Logic名称
213
- saveDataLogicName: undefined,
214
- // 保存数据调用Logic传入的额外参数
215
- logicExtraParams: undefined,
216
- // 服务名
217
- serviceName: undefined,
218
- // 当前文档信息
219
- currResData: {},
220
- // 切换的文档id
221
- toggleResId: undefined,
222
- // 待提交的修改信息
223
- modifyResModel: {},
224
- codeData: {},
225
- resRules: {
226
- f_file_name: [{ required: true, message: '请输入文档名', trigger: 'blur' }],
227
- }
228
- }
229
- },
230
- // 初始化 保存后 加载文件后 诊断选择
231
- emits: ['init', 'saveafter', 'afterLoadFile', 'selected'],
232
- methods: {
233
- runLogic,
234
- /* eslint-disable */
235
- async initDiagnosisAutocomplete (dropDownBoxParams) {
236
- console.log('dropDownBoxParams',dropDownBoxParams)
237
- if (!this.editorRef || !this.editorRef.document) {
238
- return
239
- }
240
-
241
- // 添加参数检查
242
- if (!dropDownBoxParams || !Array.isArray(dropDownBoxParams) || dropDownBoxParams.length === 0) {
243
- return
244
- }
245
-
246
- // 创建一个简单的自定义事件系统
247
- // 1. 创建一个隐藏的DOM元素作为事件通道
248
- const eventChannel = this.editorRef.document.createElement('div');
249
- eventChannel.id = 'diagnosis-event-channel';
250
- eventChannel.style.display = 'none';
251
- this.editorRef.document.body.appendChild(eventChannel);
252
- // 2. 在iframe文档中监听自定义事件
253
- const that = this;
254
- this.editorRef.document.addEventListener('diagnosis-selected', function(e) {
255
- if (e && e.detail) {
256
- that.$emit('selected', { item: e.detail, editor: that.editorRef });
257
- that.codeData = { ...that.codeData, ...{[e.detail.codeKey]: e.detail.code} }
258
- }
259
- });
260
-
261
- for (const param of dropDownBoxParams) {
262
- if (param.identificationCode && param.dataLogic) {
263
- try {
264
- let preliDiagnoData = null
265
- // 保留获取后端数据的逻辑
266
- await runLogic(param.dataLogic,
267
- {}, 'af-his').then(res => {
268
- preliDiagnoData = res
269
- })
270
-
271
- // 创建脚本元素
272
- const scriptElement = this.editorRef.document.createElement('script')
273
-
274
- // 注入自定义事件触发函数和初始化代码
275
- scriptElement.textContent = `
276
- // 定义一个函数来触发自定义事件
277
- function triggerDiagnosisSelected(data) {
278
- const event = new CustomEvent('diagnosis-selected', {
279
- detail: data,
280
- bubbles: true
281
- });
282
- document.dispatchEvent(event);
283
- }
284
-
285
- // 初始化诊断下拉菜单,使用自定义事件触发函数
286
- (${initDiagnosisDropdown.toString()})(
287
- editor,
288
- ${JSON.stringify(preliDiagnoData)},
289
- '${param.identificationCode}',
290
- triggerDiagnosisSelected
291
- );
292
- `;
293
-
294
- this.editorRef.document.body.appendChild(scriptElement);
295
- } catch (error) {
296
- console.error('初始化诊断自动完成失败:', error);
297
- }
298
- }
299
- }
300
- },
301
- showSaveModal (type) {
302
- this.saveType = type // 记录当前保存类型
303
- if (type === 'template') {
304
- this.saveVisible = true
305
- }else {
306
- if (this.resId !== -1 || this.resId !== undefined) {
307
- this.save()
308
- } else {
309
- this.openAddResModal()
310
- }
311
- }
312
-
313
- },
314
- handleSaveConfirm () {
315
- if (!this.fileName.trim()) {
316
- this.$message.error('文件名不能为空')
317
- return
318
- }
319
- this.saveAsTemplate()
320
- },
321
- /* eslint-disable */
322
- // 初始化文档
323
- onload (e) {
324
- if (e && e.target && e.target.contentWindow) {
325
- this.editorRef = e.target.contentWindow.editor
326
- // 等待文档加载完成
327
- this.$emit('init', {})
328
- }
329
- },
330
- init (params) {
331
- const {
332
- fileUrl,
333
- resId,
334
- currResData = {},
335
- bindObject,
336
- saveDataLogicName,
337
- logicExtraParams,
338
- dropDownBoxParams,
339
- serviceName,
340
- showModeChoose = true,
341
- modeType = 'form'
342
- } = params
343
- this.resId = resId
344
- if (bindObject) {
345
- this.dataMode = 'data'
346
- this.bindObject = bindObject
347
- } else {
348
- this.dataMode = 'template'
349
- }
350
- if (logicExtraParams?.admissionId !== undefined && logicExtraParams?.templateId !== undefined) {
351
- this.admissionId = logicExtraParams.admissionId
352
- this.templateId = logicExtraParams.templateId
353
- } else {
354
- console.warn('病例id:admissionId不存在或模板id:templateId不存在')
355
- }
356
- this.saveDataLogicName = saveDataLogicName
357
- this.logicExtraParams = logicExtraParams
358
- this.serviceName = serviceName
359
- this.showModeChoose = showModeChoose
360
- this.modeType = (modeType === "readonly!" ? "readonly" :modeType)
361
- this.readonly = (modeType !== "readonly!")
362
- this.ready = true
363
- // 先加载文件
364
- this.loadFile(fileUrl, bindObject, currResData).then(async () => {
365
- // 文件加载完成后再初始化自动完成
366
- await this.initDiagnosisAutocomplete(dropDownBoxParams)
367
- })
368
- this.loadResList()
369
- },
370
- // 加载文档
371
- loadFile (fileUrl, bindObject, currResData) {
372
- this.loading = true
373
- return new Promise((resolve) => {
374
- this.editorRef.loadUrl(fileUrl).then(() => {
375
- if (bindObject) {
376
- this.editorRef.setBindObject(bindObject)
377
- if (bindObject.template) {
378
- for (const key of Object.keys(bindObject.template)) {
379
- this.editorRef.bindDataList(key, bindObject.template[key])
380
- }
381
- }
382
- }
383
- // 拿取多于模板中的数据
384
- const diff = this.bindObject? Object.fromEntries(
385
- Object.entries(this.bindObject)
386
- .filter(([key]) => !(key in this.editorRef.getBindObject()))
387
- ) : {}
388
- this.codeData = {...this.codeData,...diff}
389
- this.changeMode()
390
- this.fileUrl = fileUrl
391
- if (!currResData.f_file_name) {
392
- currResData.f_file_name = '未命名'
393
- }
394
- this.currResData = currResData
395
- this.loading = false
396
- this.$emit('afterLoadFile', {})
397
- resolve()
398
- })
399
- })
400
- },
401
- // 保存并作为模板
402
- saveAsTemplate () {
403
- this.isTemplate = 1
404
- this.save()
405
- },
406
- // 加载文档列表
407
- loadResList () {
408
- runLogic('getTemplateListLogic', this.logicExtraParams, this.serviceName).then(res => {
409
- this.resList = res
410
- this.toggleResId = this.resId
411
- })
412
- },
413
- // 修改模式
414
- changeMode (e) {
415
- this.editorRef.execCommand(this.modeType)
416
- },
417
- // 打开文档信息修改面板
418
- openRenameModal () {
419
- this.resDataModalMode = 'modify'
420
- this.modifyResModel = {
421
- f_file_name: this.currResData.f_file_name
422
- }
423
- this.resDataModalVisible = true
424
- },
425
- // 提交文档信息修改
426
- onSubmit () {
427
- this.$refs.resModifyForm.validate(valid => {
428
- if (valid) {
429
- if (this.resDataModalMode === 'modify' && this.modifyResModel.f_file_name === this.currResData.f_file_name) {
430
- this.$message.warn('新文档名不能与原文档名一致!')
431
- return false
432
- }
433
- this.save()
434
- return true
435
- } else {
436
- return false
437
- }
438
- })
439
- },
440
- // 打开文档新建面板
441
- openAddResModal () {
442
- this.resDataModalMode = 'add'
443
- this.modifyResModel = {
444
- f_file_name: undefined
445
- }
446
- this.resDataModalVisible = true
447
- },
448
- // 新建文档
449
- addRes () {
450
- this.$emit('add', {})
451
- // const params = Object.assign({
452
- // isAddForce: true
453
- // }, this.logicExtraParams)
454
- // this.reload(params)
455
- },
456
- // 重新加载
457
- reload (params) {
458
- runLogic('getFileInformation', params, this.serviceName).then(res => {
459
- this.resDataModalVisible = false
460
- this.assignBindObject = this.assignTemplates(this.bindObject, res.bindObject)
461
- this.useTemplateData()
462
- // this.init({
463
- // modeType: this.modeType,
464
- // fileUrl: res.url,
465
- // resId: res.id,
466
- // currResData: res.currResData,
467
- // bindObject: res.bindObject,
468
- // saveDataLogicName: this.saveDataLogicName,
469
- // serviceName: this.serviceName,
470
- // logicExtraParams: this.logicExtraParams,
471
- // dropDownBoxParams: this.dropDownBoxParams
472
- // })
473
- })
474
- },
475
- // 合并模板数据
476
- assignTemplates (newBindObject, templateData) {
477
- // 检查templates数组是否存在
478
- if (!templateData.templates || !Array.isArray(templateData.templates)) {
479
- console.warn('templateData.templates不存在或不是数组')
480
- return newBindObject
481
- }
482
- // 遍历templates数组中的每个属性名
483
- templateData.templates.forEach(propName => {
484
- // 检查templateData是否有该属性
485
- if (propName in templateData) {
486
- // 无论newBindObject是否有该属性,都进行赋值/添加
487
- newBindObject[propName] = templateData[propName]
488
- } else {
489
- console.warn(`templateData中不存在属性: ${propName}`)
490
- }
491
- })
492
- return newBindObject
493
- },
494
- useTemplateData () {
495
- // 确认是否有合并后的模板数据
496
- if (!this.assignBindObject) {
497
- this.$message.warning('没有可用的模板数据');
498
- return;
499
- }
500
- this.editorRef.setBindObject(this.assignBindObject)
501
- // console.log('resId', this.resId)
502
- },
503
- // 切换文档
504
- changeRes (value) {
505
- console.log('value', value)
506
- let params = {
507
- resId: value
508
- }
509
- if (value === -1) {
510
- params = {
511
- ...params,
512
- admissionId: this.admissionId,
513
- f_template_id: this.templateId
514
- }
515
- const that = this
516
- this.$confirm({
517
- title: '确认切换文档吗?',
518
- content: '您有尚未保存的文档,切换文档将丢失所有的修改',
519
- onOk () {
520
- that.reload(params)
521
- // that.userTemplateVisible = true
522
- },
523
- onCancel () {
524
- that.toggleResId = that.resId
525
- },
526
- })
527
- } else {
528
- this.reload(params)
529
- }
530
- },
531
- // 保存文档
532
- save () {
533
- // 验证必须输入项
534
- if (this.editorRef.validate()) {
535
- // 获取HTML文档和结构化数据(JSON)
536
- console.log('save',this.editorRef.getBindObject())
537
- const data = {
538
- doc: this.editorRef.getHtml(),
539
- dataObject: {
540
- ...this.editorRef.getBindObject(),
541
- ...this.codeData // 合并 codeData 数据
542
- },
543
- dataMode: this.dataMode,
544
- resId: this.resId,
545
- modifyResModel: this.modifyResModel,
546
- logicExtraParams: this.logicExtraParams,
547
- is_template: this.isTemplate,
548
- f_file_name: this.fileName
549
- }
550
- // 保存HTML文档和结构化数据到后端服务
551
- runLogic(this.saveDataLogicName, data, this.serviceName).then(res => {
552
- this.$message.success('保存成功')
553
- this.changeRes(res.currResData.id)
554
- this.$emit('saveafter', data.dataObject)
555
- }).finally(() => {
556
- this.resDataModalVisible = false
557
- this.saveVisible = false
558
- })
559
- } else {
560
- this.$message.error('请检查未填写的项目')
561
- }
562
- },
563
- // 打印文档
564
- print () {
565
- this.editorRef.execCommand('print')
566
- },
567
- // 关闭编辑器
568
- close () {
569
- this.ready = false
570
- },
571
- // 刷新文档
572
- refresh () {
573
- this.loadFile(this.fileUrl, this.bindObject, this.currResData)
574
- },
575
- // 导出下拉菜单
576
- handleExportMenuClick (e) {
577
- const key = e.key
578
- this.editorRef.execCommand(key)
579
- }
580
- }
581
- }
582
- </script>
583
- <style scoped lang="less">
584
- .editor-action-container {
585
- height: 40px;
586
- }
587
- :deep(.ant-divider-horizontal) {
588
- margin: 4px 0;
589
- }
590
- /* 组合按钮容器 - 关键修正 */
591
- .combined-save-btn {
592
- display: inline-flex;
593
- height: 32px;
594
- }
595
-
596
- /* 主保存按钮 - 保持原有样式 */
597
- .save-btn-main {
598
- border-top-right-radius: 0 !important;
599
- border-bottom-right-radius: 0 !important;
600
- border-right: none !important;
601
- height: 32px;
602
- padding: 0 15px;
603
- display: inline-flex;
604
- align-items: center;
605
- justify-content: center;
606
- margin-right: -1px; /* 关键:负边距消除间距 */
607
- }
608
-
609
- /* 下拉按钮 - 仅调整间距 */
610
- .dropdown-trigger-btn {
611
- height: 32px !important;
612
- width: 24px !important;
613
- min-width: 24px !important;
614
- padding: 0 !important;
615
- border-top-left-radius: 0 !important;
616
- border-bottom-left-radius: 0 !important;
617
- border-left: 1px solid rgba(255, 255, 255, 0.3) !important;
618
- display: inline-flex;
619
- align-items: center;
620
- justify-content: center;
621
- margin-left: 0px;
622
- }
623
-
624
- /* 下拉图标保持原样 */
625
- .dropdown-trigger-btn .anticon {
626
- font-size: 12px;
627
- margin: 0 !important;
628
- }
629
- </style>
1
+ <template>
2
+ <div>
3
+ <div v-show="ready">
4
+ <a-row v-if="this.readonly" class="editor-action-container" type="flex" justify="space-between">
5
+ <a-col class="editor-tools">
6
+ <a-space>
7
+ <template v-if="resList.length > 0">
8
+ <a-select
9
+ style="width: 200px"
10
+ v-model="toggleResId"
11
+ placeholder="请选择文档"
12
+ show-search
13
+ @change="changeRes"
14
+ >
15
+ <a-select-option v-for="item of resListCp" :key="item.value" :value="item.value">{{ item.label }}</a-select-option>
16
+ </a-select>
17
+ <!-- <template v-if="this.modeType !== 'readonly' && this.resId !== -1">-->
18
+ <!-- <a-button icon="plus" @click="addRes"/>-->
19
+ <!-- </template>-->
20
+ </template>
21
+ <a-radio-group
22
+ v-show="showModeChoose"
23
+ button-style="solid"
24
+ @change="changeMode"
25
+ v-model="modeType">
26
+ <a-radio-button v-for="item of modeList" :key="item.value" :value="item.value">
27
+ {{ item.label }}
28
+ </a-radio-button>
29
+ </a-radio-group>
30
+ </a-space>
31
+ </a-col>
32
+ <a-col class="editor-action">
33
+ <a-space>
34
+ <template v-if="this.modeType !== 'readonly'">
35
+ <!-- <a-button-->
36
+ <!-- type="primary"-->
37
+ <!-- v-if = "userTemplateVisible"-->
38
+ <!-- @click="useTemplateData"-->
39
+ <!-- >-->
40
+ <!-- 使用-->
41
+ <!-- </a-button>-->
42
+
43
+ <a-button type="primary" @click="openRenameModal" v-if="this.resId !== -1">
44
+ 重命名
45
+ </a-button>
46
+ <!-- 组合按钮容器 -->
47
+ <div class="save-btn-main">
48
+ <!-- 保存按钮 (左侧) -->
49
+ <a-button
50
+ type="primary"
51
+ class="save-btn-main"
52
+ @click="showSaveModal('normal')"
53
+ >
54
+ 保存
55
+ </a-button>
56
+
57
+ <!-- 下拉部分 (右侧) -->
58
+ <!-- 下拉触发部分 -->
59
+ <template v-if="modeType !== 'design'">
60
+ <a-dropdown
61
+ :trigger="['click']"
62
+ placement="bottomRight">
63
+ <a-button
64
+ type="primary"
65
+ class="dropdown-trigger-btn">
66
+ <a-icon type="down" />
67
+ </a-button>
68
+ <a-menu slot="overlay">
69
+ <a-menu-item @click="showSaveModal('template')">
70
+ 保存并作为模板
71
+ </a-menu-item>
72
+ </a-menu>
73
+ </a-dropdown>
74
+ </template>
75
+ </div>
76
+ <a-modal
77
+ title="保存"
78
+ :visible="saveVisible"
79
+ confirm-loading = false
80
+ @ok="handleSaveConfirm"
81
+ @cancel="saveVisible = false"
82
+ >
83
+ <a-form-item label="文件名" :label-col="{ span: 4 }" :wrapper-col="{ span: 20 }">
84
+ <a-input
85
+ v-model="fileName"
86
+ placeholder="请输入文件名"
87
+ @pressEnter="handleSaveConfirm"
88
+ />
89
+ </a-form-item>
90
+ </a-modal>
91
+ </template>
92
+ <a-button type="primary" @click="print">
93
+ 打印
94
+ </a-button>
95
+ <a-button @click="refresh">
96
+ 刷新
97
+ </a-button>
98
+ </a-space>
99
+ <a-dropdown>
100
+ <a-menu slot="overlay" @click="handleExportMenuClick">
101
+ <a-menu-item key="exportPdf">导出为Pdf</a-menu-item>
102
+ <a-menu-item key="exportWord">导出为Word</a-menu-item>
103
+ <a-menu-item key="exportHtmlWithStyle">导出为Html</a-menu-item>
104
+ </a-menu>
105
+ <a-button style="margin-left: 8px"> 导出 <a-icon type="down" /> </a-button>
106
+ </a-dropdown>
107
+ </a-col>
108
+ </a-row>
109
+ <a-divider/>
110
+ <a-spin tip="加载中,马上好" :spinning="loading">
111
+ <iframe
112
+ id="x-editor"
113
+ src="/his/editor/editor.html"
114
+ v-bind="objectOfAttrs"
115
+ @load="onload"
116
+ style="height: calc(-200px - 3rem + 100vh);">
117
+ </iframe>
118
+ </a-spin>
119
+ </div>
120
+ <div v-show="!ready">
121
+ <a-empty description="请选择文书" />
122
+ </div>
123
+ <a-modal
124
+ :destroyOnClose="true"
125
+ :title="this.resDataModalMode === 'modify' ? '修改文档' : '新建文档'"
126
+ :visible="resDataModalVisible"
127
+ okText="提交"
128
+ @cancel="resDataModalVisible = false"
129
+ @ok="onSubmit">
130
+ <a-form-model ref="resModifyForm" :model="modifyResModel" :rules="resRules">
131
+ <a-form-model-item prop="f_file_name" label="文档名">
132
+ <a-input v-model="modifyResModel.f_file_name" placeholder="请输入文档名"/>
133
+ </a-form-model-item>
134
+ </a-form-model>
135
+ </a-modal></div>
136
+ </template>
137
+
138
+ <script>
139
+
140
+ import { runLogic } from '@vue2-client/services/api/common'
141
+ import { initDiagnosisDropdown } from './diagnosisAutocomplete'
142
+
143
+ export default {
144
+ name: 'XHisEditor',
145
+ computed: {
146
+ resListCp () {
147
+ const list = this.resList
148
+ if (this.resId === -1) {
149
+ list.push({
150
+ label: '未保存文档*', value: -1
151
+ })
152
+ }
153
+ return list
154
+ }
155
+ },
156
+ data () {
157
+ return {
158
+ readonly: false,
159
+ ready: false,
160
+ loading: false,
161
+ resDataModalMode: 'modify',
162
+ resDataModalVisible: false,
163
+ saveVisible: false,
164
+ // 使用按钮显隐控制
165
+ // userTemplateVisible: false,
166
+ objectOfAttrs: {
167
+ width: '100%',
168
+ height: '650vh',
169
+ frameborder: 0
170
+ },
171
+ // 数据模式
172
+ modeType: 'form',
173
+ // 是否显示模式切换功能
174
+ showModeChoose: true,
175
+ // 是否作为模板 1 是,0 否
176
+ isTemplate: 0,
177
+ // 模板id
178
+ templateId: undefined,
179
+ admissionId: undefined,
180
+ // 保存类型
181
+ saveType: 'normal',
182
+ fileName: '',
183
+ // 数据模式列表
184
+ modeList: [
185
+ {
186
+ label: '预览',
187
+ value: 'readonly'
188
+ },
189
+ {
190
+ label: '表单',
191
+ value: 'form'
192
+ },
193
+ {
194
+ label: '设计',
195
+ value: 'design'
196
+ }
197
+ ],
198
+ // 编辑器实例
199
+ editorRef: null,
200
+ // 文档资源列表
201
+ resList: [],
202
+ // 文档资源ID
203
+ resId: undefined,
204
+ // 文档链接
205
+ fileUrl: undefined,
206
+ // 文档绑定数据
207
+ bindObject: undefined,
208
+ // 合并模板数据后文档数据
209
+ assignBindObject: undefined,
210
+ // 数据模式 template:模板编辑;data:数据编辑
211
+ dataMode: undefined,
212
+ // 保存数据调用的Logic名称
213
+ saveDataLogicName: undefined,
214
+ // 保存数据调用Logic传入的额外参数
215
+ logicExtraParams: undefined,
216
+ // 服务名
217
+ serviceName: undefined,
218
+ // 当前文档信息
219
+ currResData: {},
220
+ // 切换的文档id
221
+ toggleResId: undefined,
222
+ // 待提交的修改信息
223
+ modifyResModel: {},
224
+ codeData: {},
225
+ resRules: {
226
+ f_file_name: [{ required: true, message: '请输入文档名', trigger: 'blur' }],
227
+ }
228
+ }
229
+ },
230
+ // 初始化 保存后 加载文件后 诊断选择
231
+ emits: ['init', 'saveafter', 'afterLoadFile', 'selected'],
232
+ methods: {
233
+ runLogic,
234
+ /* eslint-disable */
235
+ async initDiagnosisAutocomplete (dropDownBoxParams) {
236
+ console.log('dropDownBoxParams',dropDownBoxParams)
237
+ if (!this.editorRef || !this.editorRef.document) {
238
+ return
239
+ }
240
+
241
+ // 添加参数检查
242
+ if (!dropDownBoxParams || !Array.isArray(dropDownBoxParams) || dropDownBoxParams.length === 0) {
243
+ return
244
+ }
245
+
246
+ // 创建一个简单的自定义事件系统
247
+ // 1. 创建一个隐藏的DOM元素作为事件通道
248
+ const eventChannel = this.editorRef.document.createElement('div');
249
+ eventChannel.id = 'diagnosis-event-channel';
250
+ eventChannel.style.display = 'none';
251
+ this.editorRef.document.body.appendChild(eventChannel);
252
+ // 2. 在iframe文档中监听自定义事件
253
+ const that = this;
254
+ this.editorRef.document.addEventListener('diagnosis-selected', function(e) {
255
+ if (e && e.detail) {
256
+ that.$emit('selected', { item: e.detail, editor: that.editorRef });
257
+ that.codeData = { ...that.codeData, ...{[e.detail.codeKey]: e.detail.code} }
258
+ }
259
+ });
260
+
261
+ for (const param of dropDownBoxParams) {
262
+ if (param.identificationCode && param.dataLogic) {
263
+ try {
264
+ let preliDiagnoData = null
265
+ // 保留获取后端数据的逻辑
266
+ await runLogic(param.dataLogic,
267
+ {}, 'af-his').then(res => {
268
+ preliDiagnoData = res
269
+ })
270
+
271
+ // 创建脚本元素
272
+ const scriptElement = this.editorRef.document.createElement('script')
273
+
274
+ // 注入自定义事件触发函数和初始化代码
275
+ scriptElement.textContent = `
276
+ // 定义一个函数来触发自定义事件
277
+ function triggerDiagnosisSelected(data) {
278
+ const event = new CustomEvent('diagnosis-selected', {
279
+ detail: data,
280
+ bubbles: true
281
+ });
282
+ document.dispatchEvent(event);
283
+ }
284
+
285
+ // 初始化诊断下拉菜单,使用自定义事件触发函数
286
+ (${initDiagnosisDropdown.toString()})(
287
+ editor,
288
+ ${JSON.stringify(preliDiagnoData)},
289
+ '${param.identificationCode}',
290
+ triggerDiagnosisSelected
291
+ );
292
+ `;
293
+
294
+ this.editorRef.document.body.appendChild(scriptElement);
295
+ } catch (error) {
296
+ console.error('初始化诊断自动完成失败:', error);
297
+ }
298
+ }
299
+ }
300
+ },
301
+ showSaveModal (type) {
302
+ this.saveType = type // 记录当前保存类型
303
+ if (type === 'template') {
304
+ this.saveVisible = true
305
+ }else {
306
+ if (this.resId !== -1 || this.resId !== undefined) {
307
+ this.save()
308
+ } else {
309
+ this.openAddResModal()
310
+ }
311
+ }
312
+
313
+ },
314
+ handleSaveConfirm () {
315
+ if (!this.fileName.trim()) {
316
+ this.$message.error('文件名不能为空')
317
+ return
318
+ }
319
+ this.saveAsTemplate()
320
+ },
321
+ /* eslint-disable */
322
+ // 初始化文档
323
+ onload (e) {
324
+ if (e && e.target && e.target.contentWindow) {
325
+ this.editorRef = e.target.contentWindow.editor
326
+ // 等待文档加载完成
327
+ this.$emit('init', {})
328
+ }
329
+ },
330
+ init (params) {
331
+ const {
332
+ fileUrl,
333
+ resId,
334
+ currResData = {},
335
+ bindObject,
336
+ saveDataLogicName,
337
+ logicExtraParams,
338
+ dropDownBoxParams,
339
+ serviceName,
340
+ showModeChoose = true,
341
+ modeType = 'form'
342
+ } = params
343
+ this.resId = resId
344
+ if (bindObject) {
345
+ this.dataMode = 'data'
346
+ this.bindObject = bindObject
347
+ } else {
348
+ this.dataMode = 'template'
349
+ }
350
+ if (logicExtraParams?.admissionId !== undefined && logicExtraParams?.templateId !== undefined) {
351
+ this.admissionId = logicExtraParams.admissionId
352
+ this.templateId = logicExtraParams.templateId
353
+ } else {
354
+ console.warn('病例id:admissionId不存在或模板id:templateId不存在')
355
+ }
356
+ this.saveDataLogicName = saveDataLogicName
357
+ this.logicExtraParams = logicExtraParams
358
+ this.serviceName = serviceName
359
+ this.showModeChoose = showModeChoose
360
+ this.modeType = (modeType === "readonly!" ? "readonly" :modeType)
361
+ this.readonly = (modeType !== "readonly!")
362
+ this.ready = true
363
+ // 先加载文件
364
+ this.loadFile(fileUrl, bindObject, currResData).then(async () => {
365
+ // 文件加载完成后再初始化自动完成
366
+ await this.initDiagnosisAutocomplete(dropDownBoxParams)
367
+ })
368
+ this.loadResList()
369
+ },
370
+ // 加载文档
371
+ loadFile (fileUrl, bindObject, currResData) {
372
+ this.loading = true
373
+ return new Promise((resolve) => {
374
+ this.editorRef.loadUrl(fileUrl).then(() => {
375
+ if (bindObject) {
376
+ this.editorRef.setBindObject(bindObject)
377
+ if (bindObject.template) {
378
+ for (const key of Object.keys(bindObject.template)) {
379
+ this.editorRef.bindDataList(key, bindObject.template[key])
380
+ }
381
+ }
382
+ }
383
+ // 拿取多于模板中的数据
384
+ const diff = this.bindObject? Object.fromEntries(
385
+ Object.entries(this.bindObject)
386
+ .filter(([key]) => !(key in this.editorRef.getBindObject()))
387
+ ) : {}
388
+ this.codeData = {...this.codeData,...diff}
389
+ this.changeMode()
390
+ this.fileUrl = fileUrl
391
+ if (!currResData.f_file_name) {
392
+ currResData.f_file_name = '未命名'
393
+ }
394
+ this.currResData = currResData
395
+ this.loading = false
396
+ this.$emit('afterLoadFile', {})
397
+ resolve()
398
+ })
399
+ })
400
+ },
401
+ // 保存并作为模板
402
+ saveAsTemplate () {
403
+ this.isTemplate = 1
404
+ this.save()
405
+ },
406
+ // 加载文档列表
407
+ loadResList () {
408
+ runLogic('getTemplateListLogic', this.logicExtraParams, this.serviceName).then(res => {
409
+ this.resList = res
410
+ this.toggleResId = this.resId
411
+ })
412
+ },
413
+ // 修改模式
414
+ changeMode (e) {
415
+ this.editorRef.execCommand(this.modeType)
416
+ },
417
+ // 打开文档信息修改面板
418
+ openRenameModal () {
419
+ this.resDataModalMode = 'modify'
420
+ this.modifyResModel = {
421
+ f_file_name: this.currResData.f_file_name
422
+ }
423
+ this.resDataModalVisible = true
424
+ },
425
+ // 提交文档信息修改
426
+ onSubmit () {
427
+ this.$refs.resModifyForm.validate(valid => {
428
+ if (valid) {
429
+ if (this.resDataModalMode === 'modify' && this.modifyResModel.f_file_name === this.currResData.f_file_name) {
430
+ this.$message.warn('新文档名不能与原文档名一致!')
431
+ return false
432
+ }
433
+ this.save()
434
+ return true
435
+ } else {
436
+ return false
437
+ }
438
+ })
439
+ },
440
+ // 打开文档新建面板
441
+ openAddResModal () {
442
+ this.resDataModalMode = 'add'
443
+ this.modifyResModel = {
444
+ f_file_name: undefined
445
+ }
446
+ this.resDataModalVisible = true
447
+ },
448
+ // 新建文档
449
+ addRes () {
450
+ this.$emit('add', {})
451
+ // const params = Object.assign({
452
+ // isAddForce: true
453
+ // }, this.logicExtraParams)
454
+ // this.reload(params)
455
+ },
456
+ // 重新加载
457
+ reload (params) {
458
+ runLogic('getFileInformation', params, this.serviceName).then(res => {
459
+ this.resDataModalVisible = false
460
+ this.assignBindObject = this.assignTemplates(this.bindObject, res.bindObject)
461
+ this.useTemplateData()
462
+ // this.init({
463
+ // modeType: this.modeType,
464
+ // fileUrl: res.url,
465
+ // resId: res.id,
466
+ // currResData: res.currResData,
467
+ // bindObject: res.bindObject,
468
+ // saveDataLogicName: this.saveDataLogicName,
469
+ // serviceName: this.serviceName,
470
+ // logicExtraParams: this.logicExtraParams,
471
+ // dropDownBoxParams: this.dropDownBoxParams
472
+ // })
473
+ })
474
+ },
475
+ // 合并模板数据
476
+ assignTemplates (newBindObject, templateData) {
477
+ // 检查templates数组是否存在
478
+ if (!templateData.templates || !Array.isArray(templateData.templates)) {
479
+ console.warn('templateData.templates不存在或不是数组')
480
+ return newBindObject
481
+ }
482
+ // 遍历templates数组中的每个属性名
483
+ templateData.templates.forEach(propName => {
484
+ // 检查templateData是否有该属性
485
+ if (propName in templateData) {
486
+ // 无论newBindObject是否有该属性,都进行赋值/添加
487
+ newBindObject[propName] = templateData[propName]
488
+ } else {
489
+ console.warn(`templateData中不存在属性: ${propName}`)
490
+ }
491
+ })
492
+ return newBindObject
493
+ },
494
+ useTemplateData () {
495
+ // 确认是否有合并后的模板数据
496
+ if (!this.assignBindObject) {
497
+ this.$message.warning('没有可用的模板数据');
498
+ return;
499
+ }
500
+ this.editorRef.setBindObject(this.assignBindObject)
501
+ // console.log('resId', this.resId)
502
+ },
503
+ // 切换文档
504
+ changeRes (value) {
505
+ console.log('value', value)
506
+ let params = {
507
+ resId: value
508
+ }
509
+ if (value === -1) {
510
+ params = {
511
+ ...params,
512
+ admissionId: this.admissionId,
513
+ f_template_id: this.templateId
514
+ }
515
+ const that = this
516
+ this.$confirm({
517
+ title: '确认切换文档吗?',
518
+ content: '您有尚未保存的文档,切换文档将丢失所有的修改',
519
+ onOk () {
520
+ that.reload(params)
521
+ // that.userTemplateVisible = true
522
+ },
523
+ onCancel () {
524
+ that.toggleResId = that.resId
525
+ },
526
+ })
527
+ } else {
528
+ this.reload(params)
529
+ }
530
+ },
531
+ // 保存文档
532
+ save () {
533
+ // 验证必须输入项
534
+ if (this.editorRef.validate()) {
535
+ // 获取HTML文档和结构化数据(JSON)
536
+ console.log('save',this.editorRef.getBindObject())
537
+ const data = {
538
+ doc: this.editorRef.getHtml(),
539
+ dataObject: {
540
+ ...this.editorRef.getBindObject(),
541
+ ...this.codeData // 合并 codeData 数据
542
+ },
543
+ dataMode: this.dataMode,
544
+ resId: this.resId,
545
+ modifyResModel: this.modifyResModel,
546
+ logicExtraParams: this.logicExtraParams,
547
+ is_template: this.isTemplate,
548
+ f_file_name: this.fileName
549
+ }
550
+ // 保存HTML文档和结构化数据到后端服务
551
+ runLogic(this.saveDataLogicName, data, this.serviceName).then(res => {
552
+ this.$message.success('保存成功')
553
+ this.changeRes(res.currResData.id)
554
+ this.$emit('saveafter', data.dataObject)
555
+ }).finally(() => {
556
+ this.resDataModalVisible = false
557
+ this.saveVisible = false
558
+ })
559
+ } else {
560
+ this.$message.error('请检查未填写的项目')
561
+ }
562
+ },
563
+ // 打印文档
564
+ print () {
565
+ this.editorRef.execCommand('print')
566
+ },
567
+ // 关闭编辑器
568
+ close () {
569
+ this.ready = false
570
+ },
571
+ // 刷新文档
572
+ refresh () {
573
+ this.loadFile(this.fileUrl, this.bindObject, this.currResData)
574
+ },
575
+ // 导出下拉菜单
576
+ handleExportMenuClick (e) {
577
+ const key = e.key
578
+ this.editorRef.execCommand(key)
579
+ }
580
+ }
581
+ }
582
+ </script>
583
+ <style scoped lang="less">
584
+ .editor-action-container {
585
+ height: 40px;
586
+ }
587
+ :deep(.ant-divider-horizontal) {
588
+ margin: 4px 0;
589
+ }
590
+ /* 组合按钮容器 - 关键修正 */
591
+ .combined-save-btn {
592
+ display: inline-flex;
593
+ height: 32px;
594
+ }
595
+
596
+ /* 主保存按钮 - 保持原有样式 */
597
+ .save-btn-main {
598
+ border-top-right-radius: 0 !important;
599
+ border-bottom-right-radius: 0 !important;
600
+ border-right: none !important;
601
+ height: 32px;
602
+ padding: 0 15px;
603
+ display: inline-flex;
604
+ align-items: center;
605
+ justify-content: center;
606
+ margin-right: -1px; /* 关键:负边距消除间距 */
607
+ }
608
+
609
+ /* 下拉按钮 - 仅调整间距 */
610
+ .dropdown-trigger-btn {
611
+ height: 32px !important;
612
+ width: 24px !important;
613
+ min-width: 24px !important;
614
+ padding: 0 !important;
615
+ border-top-left-radius: 0 !important;
616
+ border-bottom-left-radius: 0 !important;
617
+ border-left: 1px solid rgba(255, 255, 255, 0.3) !important;
618
+ display: inline-flex;
619
+ align-items: center;
620
+ justify-content: center;
621
+ margin-left: 0px;
622
+ }
623
+
624
+ /* 下拉图标保持原样 */
625
+ .dropdown-trigger-btn .anticon {
626
+ font-size: 12px;
627
+ margin: 0 !important;
628
+ }
629
+ </style>