vue2-client 1.15.105 → 1.15.107

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 (875) 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 -185
  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 -54
  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 +355 -355
  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 +426 -426
  174. package/src/base-client/components/common/XForm/XFormItem.vue +1479 -1497
  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 +939 -939
  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 +724 -724
  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 +452 -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 -678
  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/XImportExcelButton/XFrontImportExcel.vue +218 -218
  275. package/src/base-client/components/his/XImportExcelButton/XFrontImportExcelDemo.vue +21 -21
  276. package/src/base-client/components/his/XImportExcelButton/XImportExcelButton.vue +103 -103
  277. package/src/base-client/components/his/XList/XList.vue +495 -495
  278. package/src/base-client/components/his/XQuestionnaire/XQuestionnaire.json +3 -3
  279. package/src/base-client/components/his/XQuestionnaire/XQuestionnaire.vue +106 -106
  280. package/src/base-client/components/his/XQuestionnaire/XQuestionnaireDemo.vue +51 -51
  281. package/src/base-client/components/his/XQuestionnaire/XQuestionnaireItem.vue +269 -269
  282. package/src/base-client/components/his/XRadio/XRadio.vue +125 -125
  283. package/src/base-client/components/his/XRadio/index.md +234 -234
  284. package/src/base-client/components/his/XSelect/XSelect.vue +72 -72
  285. package/src/base-client/components/his/XShiftSchedule/XShiftSchedule.vue +339 -339
  286. package/src/base-client/components/his/XShiftSchedule/dome.vue +29 -29
  287. package/src/base-client/components/his/XSidebar/XSidebar.vue +240 -240
  288. package/src/base-client/components/his/XSimpleTable/XSimpleTable.vue +119 -88
  289. package/src/base-client/components/his/XTimeSelect/XTimeSelect.vue +162 -162
  290. package/src/base-client/components/his/XTimeSelect/XTimeSelectDemo.vue +23 -23
  291. package/src/base-client/components/his/XTitle/README.md +113 -113
  292. package/src/base-client/components/his/XTitle/XTitle.vue +123 -123
  293. package/src/base-client/components/his/XTreeRows/TreeNode.vue +107 -107
  294. package/src/base-client/components/his/XTreeRows/XTreeRows.vue +307 -307
  295. package/src/base-client/components/his/threeTestOrders/dome.vue +68 -68
  296. package/src/base-client/components/his/threeTestOrders/textBox.vue +457 -457
  297. package/src/base-client/components/his/threeTestOrders/threeTestOrders.vue +475 -475
  298. package/src/base-client/components/index.js +51 -51
  299. package/src/base-client/components/layout/XPageView/RenderRow.vue +88 -88
  300. package/src/base-client/components/layout/XPageView/XErrorView.vue +22 -22
  301. package/src/base-client/components/layout/XPageView/XPageRowTemplate.vue +37 -37
  302. package/src/base-client/components/layout/XPageView/XPageView.vue +223 -223
  303. package/src/base-client/components/layout/XPageView/XTab/XTab.vue +96 -96
  304. package/src/base-client/components/layout/XPageView/XTab/index.js +3 -3
  305. package/src/base-client/components/layout/XPageView/componentTypes.js +22 -22
  306. package/src/base-client/components/layout/XPageView/index.js +2 -2
  307. package/src/base-client/components/layout/XPageView/index.md +96 -96
  308. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  309. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  310. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  311. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  312. package/src/base-client/components/system/DictionaryDetailsView/index.js +3 -3
  313. package/src/base-client/components/system/DictionaryDetailsView/index.md +41 -41
  314. package/src/base-client/components/system/LogDetailsView/LogDetailsView.vue +376 -376
  315. package/src/base-client/components/system/LogDetailsView/index.js +3 -3
  316. package/src/base-client/components/system/LogDetailsView/index.md +41 -41
  317. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  318. package/src/base-client/components/system/QueryParamsDetailsView/index.js +3 -3
  319. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +807 -807
  320. package/src/base-client/components/ticket/TicketDetailsView/index.js +3 -3
  321. package/src/base-client/components/ticket/TicketDetailsView/index.md +29 -29
  322. package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +260 -260
  323. package/src/base-client/components/ticket/TicketDetailsView/part/index.js +3 -3
  324. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
  325. package/src/base-client/components/ticket/TicketSubmitSuccessView/index.js +3 -3
  326. package/src/base-client/components/ticket/TicketSubmitSuccessView/index.md +29 -29
  327. package/src/base-client/plugins/AppData.js +126 -126
  328. package/src/base-client/plugins/Config.js +19 -19
  329. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  330. package/src/base-client/plugins/PagedList.js +177 -177
  331. package/src/base-client/plugins/Recording.js +258 -258
  332. package/src/base-client/plugins/__tests__/selectValueTypeHelper.test.js +154 -154
  333. package/src/base-client/plugins/authority-plugin.js +167 -167
  334. package/src/base-client/plugins/compatible/LoginServiceOA.js +20 -20
  335. package/src/base-client/plugins/i18n-extend.js +32 -32
  336. package/src/base-client/plugins/index.js +23 -23
  337. package/src/base-client/plugins/moment.js +8 -8
  338. package/src/base-client/plugins/selectValueTypeHelper.js +281 -281
  339. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  340. package/src/bootstrap.js +51 -51
  341. package/src/components/Charts/Bar.vue +62 -62
  342. package/src/components/Charts/ChartCard.vue +134 -134
  343. package/src/components/Charts/Liquid.vue +67 -67
  344. package/src/components/Charts/MiniArea.vue +39 -39
  345. package/src/components/Charts/MiniBar.vue +39 -39
  346. package/src/components/Charts/MiniProgress.vue +75 -75
  347. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  348. package/src/components/Charts/Radar.vue +68 -68
  349. package/src/components/Charts/RankList.vue +77 -77
  350. package/src/components/Charts/TagCloud.vue +113 -113
  351. package/src/components/Charts/TransferBar.vue +64 -64
  352. package/src/components/Charts/Trend.vue +82 -82
  353. package/src/components/Charts/chart.less +12 -12
  354. package/src/components/Charts/smooth.area.less +13 -13
  355. package/src/components/CodeMirror/inedx.vue +118 -118
  356. package/src/components/CodeMirror/setting.js +40 -40
  357. package/src/components/Ellipsis/Ellipsis.vue +65 -65
  358. package/src/components/Ellipsis/index.js +3 -3
  359. package/src/components/Ellipsis/index.md +38 -38
  360. package/src/components/FileImageItem/FileItem.vue +320 -320
  361. package/src/components/FileImageItem/FileItemGroup.vue +197 -197
  362. package/src/components/FileImageItem/ImageItem.vue +107 -107
  363. package/src/components/FileImageItem/index.js +4 -4
  364. package/src/components/FilePreview/FilePreview.vue +181 -181
  365. package/src/components/FilePreview/FilePreviewDemo.vue +30 -30
  366. package/src/components/FilePreview/index.js +3 -3
  367. package/src/components/HeightScanner/index.vue +615 -615
  368. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  369. package/src/components/NumberInfo/index.js +3 -3
  370. package/src/components/NumberInfo/index.less +54 -54
  371. package/src/components/NumberInfo/index.md +43 -43
  372. package/src/components/STable/README.md +341 -341
  373. package/src/components/STable/index.js +558 -558
  374. package/src/components/TableSetting/TableSetting.vue +143 -143
  375. package/src/components/TableSetting/index.js +3 -3
  376. package/src/components/Trend/Trend.vue +41 -41
  377. package/src/components/Trend/index.js +3 -3
  378. package/src/components/Trend/index.less +41 -41
  379. package/src/components/Trend/index.md +45 -45
  380. package/src/components/_util/util.js +46 -46
  381. package/src/components/cache/AKeepAlive.js +179 -179
  382. package/src/components/card/ChartCard.vue +79 -79
  383. package/src/components/chart/Bar.vue +60 -60
  384. package/src/components/chart/MiniArea.vue +67 -67
  385. package/src/components/chart/MiniBar.vue +59 -59
  386. package/src/components/chart/MiniProgress.vue +57 -57
  387. package/src/components/chart/Radar.vue +80 -80
  388. package/src/components/chart/RankingList.vue +60 -60
  389. package/src/components/chart/Trend.vue +79 -79
  390. package/src/components/chart/index.less +9 -9
  391. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  392. package/src/components/checkbox/ImgCheckbox.vue +117 -117
  393. package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
  394. package/src/components/checkbox/index.js +9 -9
  395. package/src/components/exception/ExceptionPage.vue +70 -70
  396. package/src/components/exception/typeConfig.js +19 -19
  397. package/src/components/form/FormRow.vue +52 -52
  398. package/src/components/g2Charts/constants.js +202 -202
  399. package/src/components/g2Charts/demo.vue +808 -808
  400. package/src/components/g2Charts/designer.vue +228 -228
  401. package/src/components/g2Charts/designerBaseConfig.vue +61 -61
  402. package/src/components/g2Charts/designerDataConfig.vue +259 -259
  403. package/src/components/g2Charts/designerStyleConfig.vue +16 -16
  404. package/src/components/g2Charts/index.vue +397 -397
  405. package/src/components/index.js +36 -36
  406. package/src/components/index.less +5 -5
  407. package/src/components/input/IInput.vue +66 -66
  408. package/src/components/menu/Contextmenu.vue +84 -84
  409. package/src/components/menu/SideMenu.vue +75 -75
  410. package/src/components/menu/index.less +38 -38
  411. package/src/components/menu/menu.js +273 -273
  412. package/src/components/page/header/PageHeader.vue +64 -64
  413. package/src/components/page/header/index.less +40 -40
  414. package/src/components/result/Result.vue +77 -77
  415. package/src/components/setting/Setting.vue +234 -234
  416. package/src/components/setting/SettingItem.vue +26 -26
  417. package/src/components/setting/i18n.js +117 -117
  418. package/src/components/table/StandardTable.vue +141 -141
  419. package/src/components/table/advance/ActionColumns.vue +158 -158
  420. package/src/components/table/advance/ActionSize.vue +45 -45
  421. package/src/components/table/advance/AdvanceTable.vue +275 -275
  422. package/src/components/table/advance/SearchArea.vue +355 -355
  423. package/src/components/table/advance/index.js +2 -2
  424. package/src/components/table/api/ApiTable.vue +50 -50
  425. package/src/components/task/TaskGroup.vue +80 -80
  426. package/src/components/task/TaskItem.vue +26 -26
  427. package/src/components/tool/AStepItem.vue +60 -60
  428. package/src/components/tool/AvatarList.vue +68 -68
  429. package/src/components/tool/DetailList.vue +157 -157
  430. package/src/components/tool/Drawer.vue +142 -142
  431. package/src/components/tool/FooterToolBar.vue +30 -30
  432. package/src/components/tool/HeadInfo.vue +35 -35
  433. package/src/components/tool/TagSelect.vue +83 -83
  434. package/src/components/tool/TagSelectOption.vue +33 -33
  435. package/src/components/transition/PageToggleTransition.vue +97 -97
  436. package/src/config/CreateQueryConfig.js +325 -325
  437. package/src/config/default/admin.config.js +18 -18
  438. package/src/config/default/animate.config.js +21 -21
  439. package/src/config/default/antd.config.js +89 -89
  440. package/src/config/default/index.js +6 -6
  441. package/src/config/default/setting.config.js +55 -55
  442. package/src/config/index.js +3 -3
  443. package/src/config/replacer/index.js +10 -10
  444. package/src/config/replacer/resolve.config.js +67 -67
  445. package/src/expression/ExpressionRunner.js +26 -26
  446. package/src/expression/TestExpression.js +509 -509
  447. package/src/expression/core/Delegate.js +115 -115
  448. package/src/expression/core/Expression.js +1358 -1358
  449. package/src/expression/core/Program.js +932 -932
  450. package/src/expression/core/Token.js +27 -27
  451. package/src/expression/enums/ExpressionType.js +81 -81
  452. package/src/expression/enums/TokenType.js +11 -11
  453. package/src/expression/exception/BreakWayException.js +2 -2
  454. package/src/expression/exception/ContinueWayException.js +2 -2
  455. package/src/expression/exception/ExpressionException.js +28 -28
  456. package/src/expression/exception/ReturnWayException.js +14 -14
  457. package/src/expression/exception/ServiceException.js +22 -22
  458. package/src/expression/instances/LogicConsole.js +44 -44
  459. package/src/expression/ts/ExpressionRunner.ts +28 -28
  460. package/src/expression/ts/TestExpression.ts +509 -509
  461. package/src/expression/ts/core/Delegate.ts +114 -114
  462. package/src/expression/ts/core/Expression.ts +1309 -1309
  463. package/src/expression/ts/core/Program.ts +950 -950
  464. package/src/expression/ts/core/Token.ts +29 -29
  465. package/src/expression/ts/enums/ExpressionType.ts +81 -81
  466. package/src/expression/ts/enums/TokenType.ts +13 -13
  467. package/src/expression/ts/exception/BreakWayException.ts +2 -2
  468. package/src/expression/ts/exception/ContinueWayException.ts +2 -2
  469. package/src/expression/ts/exception/ExpressionException.ts +28 -28
  470. package/src/expression/ts/exception/ReturnWayException.ts +14 -14
  471. package/src/expression/ts/exception/ServiceException.ts +22 -22
  472. package/src/expression/ts/instances/JSONArray.ts +48 -48
  473. package/src/expression/ts/instances/JSONObject.ts +109 -109
  474. package/src/expression/ts/instances/LogicConsole.ts +32 -32
  475. package/src/font-style/font.css +4 -4
  476. package/src/layouts/AdminLayout.vue +176 -176
  477. package/src/layouts/BlankView.vue +81 -81
  478. package/src/layouts/CommonLayout.vue +56 -56
  479. package/src/layouts/ComponentLayoutOne.vue +47 -47
  480. package/src/layouts/GridView.vue +43 -43
  481. package/src/layouts/PageLayout.vue +151 -151
  482. package/src/layouts/PageView.vue +55 -55
  483. package/src/layouts/SinglePageView.vue +136 -136
  484. package/src/layouts/footer/PageFooter.vue +49 -49
  485. package/src/layouts/header/AdminHeader.vue +132 -132
  486. package/src/layouts/header/HeaderAvatar.vue +64 -64
  487. package/src/layouts/header/HeaderNotice.vue +177 -177
  488. package/src/layouts/header/HeaderSearch.vue +67 -67
  489. package/src/layouts/header/InstitutionDetail.vue +181 -181
  490. package/src/layouts/header/index.less +92 -92
  491. package/src/layouts/tabs/TabsHead.vue +189 -189
  492. package/src/layouts/tabs/TabsView.vue +383 -383
  493. package/src/layouts/tabs/i18n.js +25 -25
  494. package/src/layouts/tabs/index.js +2 -2
  495. package/src/lib.js +1 -1
  496. package/src/logic/LogicRunner.js +62 -62
  497. package/src/logic/TestLogic.js +13 -13
  498. package/src/logic/plugins/common/DateTools.js +35 -35
  499. package/src/logic/plugins/common/VueTools.js +30 -30
  500. package/src/logic/plugins/index.js +7 -7
  501. package/src/logic/ts/LogicRunner.ts +67 -67
  502. package/src/logic/ts/TestLogic.ts +13 -13
  503. package/src/main.js +33 -33
  504. package/src/mixins/formValidationMixin.js +46 -46
  505. package/src/mock/common/activityData.js +32 -32
  506. package/src/mock/common/index.js +89 -89
  507. package/src/mock/common/reportData.js +20 -20
  508. package/src/mock/common/tableData.js +118 -118
  509. package/src/mock/extend/index.js +84 -84
  510. package/src/mock/goods/index.js +108 -108
  511. package/src/mock/index.js +12 -12
  512. package/src/mock/project/index.js +17 -17
  513. package/src/mock/user/current.js +13 -13
  514. package/src/mock/user/login.js +39 -39
  515. package/src/mock/user/routes.js +61 -61
  516. package/src/mock/workplace/index.js +15 -15
  517. package/src/pages/DefaultExample/index.vue +77 -77
  518. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  519. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  520. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  521. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  522. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  523. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  524. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  525. package/src/pages/DynamicStatistics/index.vue +282 -282
  526. package/src/pages/Example/childIndex.vue +15 -15
  527. package/src/pages/Example/index.vue +30 -30
  528. package/src/pages/LogicCallExample/index.vue +46 -46
  529. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  530. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  531. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  532. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  533. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  534. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  535. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  536. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  537. package/src/pages/Recording/index.vue +77 -77
  538. package/src/pages/ReportGrid/index.vue +76 -76
  539. package/src/pages/ReportView.vue +50 -50
  540. package/src/pages/ServiceReview/index.vue +284 -284
  541. package/src/pages/SubExample/index.vue +26 -26
  542. package/src/pages/WorkflowDetail/WorkFlowDemo.vue +47 -47
  543. package/src/pages/WorkflowDetail/WorkFlowDemo2.vue +204 -204
  544. package/src/pages/WorkflowDetail/WorkFlowDemo3.vue +203 -203
  545. package/src/pages/WorkflowDetail/WorkflowDetail.vue +397 -397
  546. package/src/pages/WorkflowDetail/WorkflowPageDetail/LeaveMessage.vue +388 -388
  547. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  548. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformation.vue +415 -415
  549. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformationDetails.vue +276 -276
  550. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandle.vue +1766 -1766
  551. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandleReso.vue +975 -975
  552. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowPreview.vue +125 -125
  553. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowTimeline.vue +929 -929
  554. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkOrderParentDetails.vue +218 -218
  555. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowDetailResso.vue +243 -243
  556. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowListResolution.vue +248 -248
  557. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowLog.vue +188 -188
  558. package/src/pages/WorkflowDetail/WorkflowPageDetail/components/WorkflowPersonSelector.vue +109 -109
  559. package/src/pages/WorkflowDetail/WorkflowPageDetail/worklog.vue +97 -97
  560. package/src/pages/XPageViewExample/index.vue +149 -149
  561. package/src/pages/XReportView/index.vue +64 -64
  562. package/src/pages/XTreeOneProExample/index.vue +67 -67
  563. package/src/pages/addressSelect/addressDemo.vue +24 -24
  564. package/src/pages/addressSelect/index.vue +270 -270
  565. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  566. package/src/pages/dashboard/workplace/i18n.js +40 -40
  567. package/src/pages/dashboard/workplace/index.js +2 -2
  568. package/src/pages/dashboard/workplace/index.less +59 -59
  569. package/src/pages/exception/403.vue +21 -21
  570. package/src/pages/exception/404.vue +24 -24
  571. package/src/pages/exception/500.vue +21 -21
  572. package/src/pages/login/Login.vue +380 -380
  573. package/src/pages/login/LoginV3.vue +389 -389
  574. package/src/pages/login/index.js +2 -2
  575. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  576. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  577. package/src/pages/report/ReportTable.js +124 -124
  578. package/src/pages/report/ReportTableHome.vue +28 -28
  579. package/src/pages/resourceManage/depListManage.vue +23 -23
  580. package/src/pages/resourceManage/funListManage.vue +23 -23
  581. package/src/pages/resourceManage/index.js +15 -15
  582. package/src/pages/resourceManage/orgListManage.vue +98 -98
  583. package/src/pages/resourceManage/resourceManageMain.vue +57 -57
  584. package/src/pages/resourceManage/roleListManage.vue +23 -23
  585. package/src/pages/resourceManage/staffListManage.vue +23 -23
  586. package/src/pages/system/dictionary/index.vue +44 -44
  587. package/src/pages/system/file/Info.vue +56 -56
  588. package/src/pages/system/file/index.vue +317 -317
  589. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  590. package/src/pages/system/monitor/operLog/index.vue +37 -37
  591. package/src/pages/system/settings/index.vue +126 -126
  592. package/src/pages/system/settings/modifyPassword.vue +117 -117
  593. package/src/pages/system/ticket/index.vue +480 -480
  594. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  595. package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
  596. package/src/pages/userInfoDetailManage/FillCardRecordQuery/index.vue +77 -77
  597. package/src/pages/userInfoDetailManage/FillGasRecordQuery/index.vue +75 -75
  598. package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
  599. package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
  600. package/src/pages/userInfoDetailManage/InsuranceDetailQuery/index.vue +64 -64
  601. package/src/pages/userInfoDetailManage/MachineRecordQuery/index.vue +75 -75
  602. package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
  603. package/src/pages/userInfoDetailManage/OtherChargeRecordQuery/index.vue +75 -75
  604. package/src/pages/userInfoDetailManage/PriceAdjustments/index.vue +64 -64
  605. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
  606. package/src/pages/userInfoDetailManage/UserChargeRecordQuery/index.vue +94 -94
  607. package/src/pages/userInfoDetailManage/UserException/index.vue +64 -64
  608. package/src/pages/userInfoDetailManage/UserHandRecordQuery/index.vue +87 -87
  609. package/src/pages/userInfoDetailManage/UserRecordQuery/index.vue +74 -74
  610. package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
  611. package/src/pages/userInfoDetailManage/index.vue +290 -290
  612. package/src/pages/userInfoDetailManage/uploadFilesHistory/ImagePreview.vue +101 -101
  613. package/src/pages/userInfoDetailManage/uploadFilesHistory/index.vue +129 -129
  614. package/src/pages/userInfoDetailManage/userInfoDetailQueryTabs.vue +144 -144
  615. package/src/plugins/EventLogPlugin.js +33 -33
  616. package/src/plugins/FindParentsData.js +17 -17
  617. package/src/plugins/HiPrintPlugin.js +164 -164
  618. package/src/router/async/config.async.js +35 -35
  619. package/src/router/async/router.map.js +127 -127
  620. package/src/router/guards.js +262 -262
  621. package/src/router/i18n.js +57 -57
  622. package/src/router/index.js +27 -27
  623. package/src/router.js +17 -17
  624. package/src/services/DataModel.js +30 -30
  625. package/src/services/LodopFuncs.js +137 -137
  626. package/src/services/api/DictionaryDetailsViewApi.js +6 -6
  627. package/src/services/api/LogDetailsViewApi.js +10 -10
  628. package/src/services/api/QueryParamsDetailsViewApi.js +6 -6
  629. package/src/services/api/TicketDetailsViewApi.js +46 -46
  630. package/src/services/api/cas.js +79 -79
  631. package/src/services/api/common.js +346 -346
  632. package/src/services/api/entity.js +18 -18
  633. package/src/services/api/index.js +17 -17
  634. package/src/services/api/logininfor/index.js +6 -6
  635. package/src/services/api/manage.js +8 -8
  636. package/src/services/api/restTools.js +215 -215
  637. package/src/services/api/workFlow.js +57 -57
  638. package/src/services/apiService.js +16 -16
  639. package/src/services/dataSource.js +12 -12
  640. package/src/services/index.js +7 -7
  641. package/src/services/user.js +92 -92
  642. package/src/services/v3Api.js +116 -116
  643. package/src/store/index.js +5 -5
  644. package/src/store/modules/account.js +115 -115
  645. package/src/store/modules/index.js +5 -5
  646. package/src/store/modules/lowCode.js +33 -33
  647. package/src/store/modules/setting.js +119 -119
  648. package/src/store/mutation-types.js +4 -4
  649. package/src/theme/antd/ant-menu.less +2 -2
  650. package/src/theme/antd/ant-message.less +3 -3
  651. package/src/theme/antd/ant-table.less +22 -22
  652. package/src/theme/antd/ant-time-picker.less +3 -3
  653. package/src/theme/antd/index.less +3 -3
  654. package/src/theme/default/color.less +43 -43
  655. package/src/theme/default/index.less +3 -3
  656. package/src/theme/default/nprogress.less +76 -76
  657. package/src/theme/default/style.less +58 -58
  658. package/src/theme/global.less +279 -279
  659. package/src/theme/index.less +5 -5
  660. package/src/theme/reportTable.less +58 -58
  661. package/src/theme/theme.less +1 -1
  662. package/src/utils/EncryptUtil.js +162 -162
  663. package/src/utils/Objects.js +25 -25
  664. package/src/utils/authority-utils.js +85 -85
  665. package/src/utils/axios-interceptors.js +100 -100
  666. package/src/utils/colors.js +107 -107
  667. package/src/utils/common.js +10 -10
  668. package/src/utils/errorCode.js +6 -6
  669. package/src/utils/excel/Blob.js +180 -180
  670. package/src/utils/excel/Export2Excel.js +184 -184
  671. package/src/utils/filter.js +21 -21
  672. package/src/utils/formatter.js +74 -74
  673. package/src/utils/htmlToPDF.js +108 -108
  674. package/src/utils/htmlToPDFApi.js +5 -5
  675. package/src/utils/i18n.js +80 -80
  676. package/src/utils/indexedDB.js +549 -549
  677. package/src/utils/login.js +188 -188
  678. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  679. package/src/utils/lowcode/lowcodeLog.js +29 -29
  680. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  681. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  682. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  683. package/src/utils/map-utils.js +47 -47
  684. package/src/utils/microAppUtils.js +49 -49
  685. package/src/utils/reg.js +95 -95
  686. package/src/utils/request.js +395 -395
  687. package/src/utils/routerUtil.js +567 -567
  688. package/src/utils/runEvalFunction.js +14 -14
  689. package/src/utils/theme-color-replacer-extend.js +92 -92
  690. package/src/utils/themeUtil.js +100 -100
  691. package/src/utils/util.js +329 -329
  692. package/src/utils/waterMark.js +31 -31
  693. package/test/Tree.spec.js +168 -168
  694. package/test/myDialog.spec.js +47 -47
  695. package/test/request.test.js +17 -17
  696. package/test/util.test.js +53 -53
  697. package/test/v3Api.test.js +1984 -1984
  698. package/tests/unit/ReportTable.spec.js +16 -16
  699. package/vue.config.js +222 -222
  700. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
  701. package/.history/public/his/editor/editor_20250606134713.html +0 -51
  702. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527173925.vue +0 -509
  703. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174316.vue +0 -524
  704. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174419.vue +0 -524
  705. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174422.vue +0 -524
  706. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172825.vue +0 -207
  707. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172945.vue +0 -211
  708. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172949.vue +0 -212
  709. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611173010.vue +0 -212
  710. package/.history/src/base-client/components/common/XForm/XFormItem_20250508134122.vue +0 -1320
  711. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171604.vue +0 -1332
  712. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171613.vue +0 -1331
  713. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171703.vue +0 -1331
  714. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171720.vue +0 -1331
  715. package/.history/src/base-client/components/common/XForm/XFormItem_20250527174327.vue +0 -1339
  716. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612092804.vue +0 -731
  717. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612112546.vue +0 -748
  718. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612113808.vue +0 -748
  719. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115237.vue +0 -1071
  720. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115346.vue +0 -1078
  721. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115350.vue +0 -1077
  722. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115415.vue +0 -1077
  723. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115429.vue +0 -1077
  724. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611091619.vue +0 -442
  725. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092547.vue +0 -442
  726. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092552.vue +0 -442
  727. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092744.vue +0 -475
  728. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092955.vue +0 -475
  729. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092957.vue +0 -475
  730. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095652.vue +0 -477
  731. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095701.vue +0 -477
  732. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095704.vue +0 -477
  733. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100005.vue +0 -473
  734. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100011.vue +0 -473
  735. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100014.vue +0 -473
  736. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100833.vue +0 -473
  737. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100853.vue +0 -473
  738. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100940.vue +0 -473
  739. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101011.vue +0 -473
  740. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101013.vue +0 -473
  741. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101014.vue +0 -473
  742. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101159.vue +0 -473
  743. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101238.vue +0 -474
  744. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101240.vue +0 -474
  745. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101242.vue +0 -474
  746. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101404.vue +0 -472
  747. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101410.vue +0 -472
  748. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101459.vue +0 -472
  749. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101500.vue +0 -472
  750. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101502.vue +0 -472
  751. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101504.vue +0 -472
  752. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101610.vue +0 -501
  753. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101700.vue +0 -501
  754. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101702.vue +0 -501
  755. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101741.vue +0 -504
  756. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101749.vue +0 -504
  757. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101759.vue +0 -504
  758. package/.history/src/base-client/components/his/XHisEditor/dome_20250611091349.vue +0 -131
  759. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105854.vue +0 -160
  760. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105902.vue +0 -160
  761. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105924.vue +0 -160
  762. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105932.vue +0 -158
  763. package/.history/src/base-client/components/his/XList/XList_20250609135848.vue +0 -173
  764. package/.history/src/base-client/components/his/XList/XList_20250609141026.vue +0 -222
  765. package/.history/src/base-client/components/his/XList/XList_20250609141035.vue +0 -229
  766. package/.history/src/base-client/components/his/XList/XList_20250609141103.vue +0 -229
  767. package/.history/src/base-client/components/his/XList/XList_20250609141105.vue +0 -229
  768. package/.history/src/base-client/components/his/XList/XList_20250609141334.vue +0 -241
  769. package/.history/src/base-client/components/his/XList/XList_20250609141404.vue +0 -241
  770. package/.history/src/base-client/components/his/XList/XList_20250609141406.vue +0 -241
  771. package/.history/src/base-client/components/his/XList/XList_20250609141801.vue +0 -245
  772. package/.history/src/base-client/components/his/XList/XList_20250609142033.vue +0 -245
  773. package/.history/src/base-client/components/his/XList/XList_20250609142038.vue +0 -245
  774. package/.history/src/base-client/components/his/XList/XList_20250609142435.vue +0 -255
  775. package/.history/src/base-client/components/his/XList/XList_20250609142503.vue +0 -255
  776. package/.history/src/base-client/components/his/XList/XList_20250609142504.vue +0 -255
  777. package/.history/src/base-client/components/his/XList/XList_20250609143012.vue +0 -270
  778. package/.history/src/base-client/components/his/XList/XList_20250609143044.vue +0 -270
  779. package/.history/src/base-client/components/his/XList/XList_20250609143046.vue +0 -270
  780. package/.history/src/base-client/components/his/XList/XList_20250609143210.vue +0 -270
  781. package/.history/src/base-client/components/his/XList/XList_20250609144339.vue +0 -294
  782. package/.history/src/base-client/components/his/XList/XList_20250609144410.vue +0 -294
  783. package/.history/src/base-client/components/his/XList/XList_20250609144412.vue +0 -294
  784. package/.history/src/base-client/components/his/XList/XList_20250609144647.vue +0 -303
  785. package/.history/src/base-client/components/his/XList/XList_20250609144716.vue +0 -303
  786. package/.history/src/base-client/components/his/XList/XList_20250609144729.vue +0 -303
  787. package/.history/src/base-client/components/his/XList/XList_20250609151232.vue +0 -288
  788. package/.history/src/base-client/components/his/XList/XList_20250609151247.vue +0 -288
  789. package/.history/src/base-client/components/his/XList/XList_20250609151252.vue +0 -288
  790. package/.history/src/base-client/components/his/XList/XList_20250609161220.vue +0 -317
  791. package/.history/src/base-client/components/his/XList/XList_20250609161258.vue +0 -306
  792. package/.history/src/base-client/components/his/XList/XList_20250609161319.vue +0 -306
  793. package/.history/src/base-client/components/his/XList/XList_20250609161320.vue +0 -306
  794. package/.history/src/base-client/components/his/XList/XList_20250704142024.vue +0 -495
  795. package/.history/src/base-client/components/his/XList/XList_20250704142033.vue +0 -495
  796. package/.history/src/base-client/components/his/XList/XList_20250704142040.vue +0 -494
  797. package/.history/src/base-client/components/his/XList/XList_20250704142211.vue +0 -494
  798. package/.history/src/base-client/components/his/XList/XList_20250704142214.vue +0 -494
  799. package/.history/src/base-client/components/his/XList/XList_20250704143010.vue +0 -495
  800. package/.history/src/base-client/components/his/XList/XList_20250704143203.vue +0 -495
  801. package/.history/src/base-client/components/his/XList/XList_20250707095101.vue +0 -492
  802. package/.history/src/base-client/components/his/XList/XList_20250707100152.vue +0 -492
  803. package/.history/src/base-client/components/his/XList/XList_20250707100200.vue +0 -485
  804. package/.history/src/base-client/components/his/XList/XList_20250707100208.vue +0 -485
  805. package/.history/src/base-client/components/his/XList/XList_20250707100259.vue +0 -488
  806. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134604.vue +0 -263
  807. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134615.vue +0 -302
  808. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134621.vue +0 -301
  809. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134634.vue +0 -311
  810. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134644.vue +0 -330
  811. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134653.vue +0 -330
  812. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134836.vue +0 -330
  813. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135247.vue +0 -330
  814. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135303.vue +0 -354
  815. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135316.vue +0 -363
  816. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135323.vue +0 -363
  817. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135334.vue +0 -366
  818. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135342.vue +0 -364
  819. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135349.vue +0 -364
  820. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135351.vue +0 -346
  821. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135354.vue +0 -346
  822. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135401.vue +0 -346
  823. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135406.vue +0 -346
  824. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135424.vue +0 -346
  825. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807143043.vue +0 -254
  826. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155506.vue +0 -329
  827. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155535.vue +0 -330
  828. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155543.vue +0 -330
  829. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155926.vue +0 -304
  830. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155928.vue +0 -304
  831. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172548.vue +0 -298
  832. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172609.vue +0 -298
  833. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172623.vue +0 -298
  834. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172631.vue +0 -298
  835. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172701.vue +0 -298
  836. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172704.vue +0 -298
  837. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807175937.vue +0 -290
  838. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807175942.vue +0 -290
  839. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180210.vue +0 -290
  840. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180424.vue +0 -290
  841. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180448.vue +0 -290
  842. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180915.vue +0 -262
  843. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180917.vue +0 -262
  844. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101106.vue +0 -283
  845. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101112.vue +0 -289
  846. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101118.vue +0 -289
  847. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101129.vue +0 -294
  848. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101137.vue +0 -318
  849. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101145.vue +0 -320
  850. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101154.vue +0 -320
  851. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101211.vue +0 -320
  852. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101236.vue +0 -320
  853. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101239.vue +0 -320
  854. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103845.vue +0 -142
  855. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103852.vue +0 -142
  856. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103857.vue +0 -142
  857. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103859.vue +0 -142
  858. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103907.vue +0 -142
  859. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103910.vue +0 -142
  860. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103911.vue +0 -142
  861. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103913.vue +0 -142
  862. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103916.vue +0 -142
  863. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103931.vue +0 -142
  864. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145127.vue +0 -85
  865. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145136.vue +0 -81
  866. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145142.vue +0 -81
  867. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145145.vue +0 -81
  868. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145148.vue +0 -81
  869. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145151.vue +0 -81
  870. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145155.vue +0 -81
  871. package/Users/objecrt/af-vue2-client/src/base-client/components/his/XShiftSchedule/XShiftSchedule.vue +0 -213
  872. package/src/base-client/components/TreeList/TreeList.vue +0 -91
  873. package/src/base-client/components/TreeList/TreeNode.vue +0 -81
  874. package/src/base-client/components/common/XCardSet/XTiltle.vue +0 -191
  875. package/src/base-client/components/his/XHisEditor/dome.vue +0 -144
@@ -1,678 +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
- <a-button type="primary" @click="Recording" v-if="this.resId !== -1" v-model="recording">
43
- {{recording? '停止' : '录音'}}
44
- </a-button>
45
- <a-button type="primary" @click="openRenameModal" v-if="this.resId !== -1">
46
- 重命名
47
- </a-button>
48
- <!-- 组合按钮容器 -->
49
- <div class="save-btn-main">
50
- <!-- 保存按钮 (左侧) -->
51
- <a-button
52
- type="primary"
53
- class="save-btn-main"
54
- @click="showSaveModal('normal')"
55
- >
56
- 保存
57
- </a-button>
58
-
59
- <!-- 下拉部分 (右侧) -->
60
- <!-- 下拉触发部分 -->
61
- <template v-if="modeType !== 'design'">
62
- <a-dropdown
63
- :trigger="['click']"
64
- placement="bottomRight">
65
- <a-button
66
- type="primary"
67
- class="dropdown-trigger-btn">
68
- <a-icon type="down" />
69
- </a-button>
70
- <a-menu slot="overlay">
71
- <a-menu-item @click="showSaveModal('template')">
72
- 保存并作为模板
73
- </a-menu-item>
74
- </a-menu>
75
- </a-dropdown>
76
- </template>
77
- </div>
78
- <a-modal
79
- title="保存"
80
- :visible="saveVisible"
81
- :confirm-loading = "false"
82
- @ok="handleSaveConfirm"
83
- @cancel="saveVisible = false"
84
- >
85
- <a-form-item label="文件名" :label-col="{ span: 4 }" :wrapper-col="{ span: 20 }">
86
- <a-input
87
- v-model="fileName"
88
- placeholder="请输入文件名"
89
- @pressEnter="handleSaveConfirm"
90
- />
91
- </a-form-item>
92
- </a-modal>
93
- </template>
94
- <a-button type="primary" @click="print">
95
- 打印
96
- </a-button>
97
- <a-button @click="refresh">
98
- 刷新
99
- </a-button>
100
- </a-space>
101
- <a-dropdown>
102
- <a-menu slot="overlay" @click="handleExportMenuClick">
103
- <a-menu-item key="exportPdf">导出为Pdf</a-menu-item>
104
- <a-menu-item key="exportWord">导出为Word</a-menu-item>
105
- <a-menu-item key="exportHtmlWithStyle">导出为Html</a-menu-item>
106
- </a-menu>
107
- <a-button style="margin-left: 8px"> 导出 <a-icon type="down" /> </a-button>
108
- </a-dropdown>
109
- </a-col>
110
- </a-row>
111
- <a-divider/>
112
- <a-spin tip="加载中,马上好" :spinning="loading">
113
- <iframe
114
- id="x-editor"
115
- src="/his/editor/editor.html"
116
- v-bind="objectOfAttrs"
117
- @load="onload"
118
- style="height: calc(-200px - 3rem + 100vh);">
119
- </iframe>
120
- </a-spin>
121
- </div>
122
- <div v-show="!ready">
123
- <a-empty description="请选择文书" />
124
- </div>
125
- <a-modal
126
- :destroyOnClose="true"
127
- :title="this.resDataModalMode === 'modify' ? '修改文档' : '新建文档'"
128
- :visible="resDataModalVisible"
129
- okText="提交"
130
- @cancel="resDataModalVisible = false"
131
- @ok="onSubmit">
132
- <a-form-model ref="resModifyForm" :model="modifyResModel" :rules="resRules">
133
- <a-form-model-item prop="f_file_name" label="文档名">
134
- <a-input v-model="modifyResModel.f_file_name" placeholder="请输入文档名"/>
135
- </a-form-model-item>
136
- </a-form-model>
137
- </a-modal></div>
138
- </template>
139
-
140
- <script>
141
-
142
- import { runLogic } from '@vue2-client/services/api/common'
143
- import { initDiagnosisDropdown } from './diagnosisAutocomplete'
144
-
145
- export default {
146
- name: 'XHisEditor',
147
- computed: {
148
- resListCp () {
149
- const list = this.resList
150
- if (this.resId === -1) {
151
- list.push({
152
- label: '未保存文档*', value: -1
153
- })
154
- }
155
- return list
156
- }
157
- },
158
- data () {
159
- return {
160
- recording: false, // 是否正在录音
161
- readonly: false,
162
- ready: false,
163
- loading: false,
164
- resDataModalMode: 'modify',
165
- resDataModalVisible: false,
166
- saveVisible: false,
167
- // 使用按钮显隐控制
168
- // userTemplateVisible: false,
169
- objectOfAttrs: {
170
- width: '100%',
171
- height: '650vh',
172
- frameborder: 0
173
- },
174
- // 数据模式
175
- modeType: 'form',
176
- // 是否显示模式切换功能
177
- showModeChoose: true,
178
- // 是否作为模板 1 是,0 否
179
- isTemplate: 0,
180
- // 模板id
181
- templateId: undefined,
182
- admissionId: undefined,
183
- // 保存类型
184
- saveType: 'normal',
185
- fileName: '',
186
- // 数据模式列表
187
- modeList: [
188
- {
189
- label: '预览',
190
- value: 'readonly'
191
- },
192
- {
193
- label: '表单',
194
- value: 'form'
195
- },
196
- {
197
- label: '设计',
198
- value: 'design'
199
- }
200
- ],
201
- // 编辑器实例
202
- editorRef: null,
203
-
204
- // 文档资源列表
205
- resList: [],
206
- // 文档资源ID
207
- resId: undefined,
208
- // 文档链接
209
- fileUrl: undefined,
210
- // 文档绑定数据
211
- bindObject: undefined,
212
- // 合并模板数据后文档数据
213
- assignBindObject: undefined,
214
- // 数据模式 template:模板编辑;data:数据编辑
215
- dataMode: undefined,
216
- // 保存数据调用的Logic名称
217
- saveDataLogicName: undefined,
218
- // 保存数据调用Logic传入的额外参数
219
- logicExtraParams: undefined,
220
- // 服务名
221
- serviceName: undefined,
222
- // 当前文档信息
223
- currResData: {},
224
- // 切换的文档id
225
- toggleResId: undefined,
226
- // 待提交的修改信息
227
- modifyResModel: {},
228
- codeData: {},
229
- resRules: {
230
- f_file_name: [{ required: true, message: '请输入文档名', trigger: 'blur' }],
231
- }
232
- }
233
- },
234
- // 初始化 保存后 加载文件后 诊断选择
235
- emits: ['init', 'saveafter', 'afterLoadFile', 'selected'],
236
- methods: {
237
- runLogic,
238
- /* eslint-disable */
239
- async initDiagnosisAutocomplete (dropDownBoxParams) {
240
- console.log('dropDownBoxParams',dropDownBoxParams)
241
- if (!this.editorRef || !this.editorRef.document) {
242
- return
243
- }
244
-
245
- // 添加参数检查
246
- if (!dropDownBoxParams || !Array.isArray(dropDownBoxParams) || dropDownBoxParams.length === 0) {
247
- return
248
- }
249
-
250
- // 创建一个简单的自定义事件系统
251
- // 1. 创建一个隐藏的DOM元素作为事件通道
252
- const eventChannel = this.editorRef.document.createElement('div');
253
- eventChannel.id = 'diagnosis-event-channel';
254
- eventChannel.style.display = 'none';
255
- this.editorRef.document.body.appendChild(eventChannel);
256
- // 2. 在iframe文档中监听自定义事件
257
- const that = this;
258
- this.editorRef.document.addEventListener('diagnosis-selected', function(e) {
259
- if (e && e.detail) {
260
- that.$emit('selected', { item: e.detail, editor: that.editorRef });
261
- that.codeData = { ...that.codeData, ...{[e.detail.codeKey]: e.detail.code} }
262
- }
263
- });
264
-
265
- for (const param of dropDownBoxParams) {
266
- if (param.identificationCode && param.dataLogic) {
267
- try {
268
- let preliDiagnoData = null
269
- // 保留获取后端数据的逻辑
270
- await runLogic(param.dataLogic,
271
- {}, 'af-his').then(res => {
272
- preliDiagnoData = res
273
- })
274
-
275
- // 创建脚本元素
276
- const scriptElement = this.editorRef.document.createElement('script')
277
-
278
- // 注入自定义事件触发函数和初始化代码
279
- scriptElement.textContent = `
280
- // 定义一个函数来触发自定义事件
281
- function triggerDiagnosisSelected(data) {
282
- const event = new CustomEvent('diagnosis-selected', {
283
- detail: data,
284
- bubbles: true
285
- });
286
- document.dispatchEvent(event);
287
- }
288
-
289
- // 初始化诊断下拉菜单,使用自定义事件触发函数
290
- (${initDiagnosisDropdown.toString()})(
291
- editor,
292
- ${JSON.stringify(preliDiagnoData)},
293
- '${param.identificationCode}',
294
- triggerDiagnosisSelected
295
- );
296
- `;
297
-
298
- this.editorRef.document.body.appendChild(scriptElement);
299
- } catch (error) {
300
- console.error('初始化诊断自动完成失败:', error);
301
- }
302
- }
303
- }
304
- },
305
- showSaveModal (type) {
306
- this.saveType = type // 记录当前保存类型
307
- if (type === 'template') {
308
- this.saveVisible = true
309
- }else {
310
- if (this.resId !== -1 || this.resId !== undefined) {
311
- this.save()
312
- } else {
313
- this.openAddResModal()
314
- }
315
- }
316
-
317
- },
318
- handleSaveConfirm () {
319
- if (!this.fileName.trim()) {
320
- this.$message.error('文件名不能为空')
321
- return
322
- }
323
- this.saveAsTemplate()
324
- },
325
- /* eslint-disable */
326
- // 初始化文档
327
- onload (e) {
328
- if (e && e.target && e.target.contentWindow) {
329
- this.editorRef = e.target.contentWindow.editor
330
- // 等待文档加载完成
331
- this.$emit('init', {})
332
- }
333
- },
334
- init (params) {
335
- const {
336
- fileUrl,
337
- resId,
338
- currResData = {},
339
- bindObject,
340
- saveDataLogicName,
341
- logicExtraParams,
342
- dropDownBoxParams,
343
- serviceName,
344
- showModeChoose = true,
345
- modeType = 'form'
346
- } = params
347
- this.resId = resId
348
- if (bindObject) {
349
- this.dataMode = 'data'
350
- this.bindObject = bindObject
351
- } else {
352
- this.dataMode = 'template'
353
- }
354
- if (logicExtraParams?.admissionId !== undefined && logicExtraParams?.templateId !== undefined) {
355
- this.admissionId = logicExtraParams.admissionId
356
- this.templateId = logicExtraParams.templateId
357
- } else {
358
- console.warn('病例id:admissionId不存在或模板id:templateId不存在')
359
- }
360
- this.saveDataLogicName = saveDataLogicName
361
- this.logicExtraParams = logicExtraParams
362
- this.serviceName = serviceName
363
- this.showModeChoose = showModeChoose
364
- this.modeType = (modeType === "readonly!" ? "readonly" :modeType)
365
- this.readonly = (modeType !== "readonly!")
366
- this.ready = true
367
- // 先加载文件
368
- this.loadFile(fileUrl, bindObject, currResData).then(async () => {
369
- // 文件加载完成后再初始化自动完成
370
- await this.initDiagnosisAutocomplete(dropDownBoxParams)
371
- })
372
- this.loadResList()
373
- },
374
- // 加载文档
375
- loadFile (fileUrl, bindObject, currResData) {
376
- this.loading = true
377
- return new Promise((resolve) => {
378
- this.editorRef.loadUrl(fileUrl).then(() => {
379
- if (bindObject) {
380
- this.editorRef.setBindObject(bindObject)
381
- if (bindObject.template) {
382
- for (const key of Object.keys(bindObject.template)) {
383
- this.editorRef.bindDataList(key, bindObject.template[key])
384
- }
385
- }
386
- }
387
- // 拿取多于模板中的数据
388
- const diff = this.bindObject? Object.fromEntries(
389
- Object.entries(this.bindObject)
390
- .filter(([key]) => !(key in this.editorRef.getBindObject()))
391
- ) : {}
392
- this.codeData = {...this.codeData,...diff}
393
- this.changeMode()
394
- this.fileUrl = fileUrl
395
- if (!currResData.f_file_name) {
396
- currResData.f_file_name = '未命名'
397
- }
398
- this.currResData = currResData
399
- this.loading = false
400
- this.$emit('afterLoadFile', {})
401
- resolve()
402
- })
403
- })
404
- },
405
- // 保存并作为模板
406
- saveAsTemplate () {
407
- this.isTemplate = 1
408
- this.save()
409
- },
410
- // 加载文档列表
411
- loadResList () {
412
- runLogic('getTemplateListLogic', this.logicExtraParams, this.serviceName).then(res => {
413
- this.resList = res
414
- this.toggleResId = this.resId
415
- })
416
- },
417
- // 修改模式
418
- changeMode (e) {
419
- this.editorRef.execCommand(this.modeType)
420
- },
421
- // 启动录音功能
422
- async Recording () {
423
- this.recording = !this.recording
424
- if (this.recording) {
425
- const recording = await this.$recording.startRecording()
426
- this.$message.warn(recording.msg)
427
- } else {
428
- try {
429
- // 1. 获取录音和接口数据
430
- const recording = this.$recording.stopRecording()
431
- this.$message.warn(recording.msg)
432
- const data = await this.$recording.getRecordingData()
433
- const result = await this.runLogic('communacation', {record_content: data}, 'af-his')
434
- // 验证基础结构
435
- if (!result || typeof result.value !== 'string') {
436
- throw new Error('接口返回格式错误,缺少有效的value字段')
437
- }
438
- // 2. 处理外层JSON字符串(关键修复)
439
- let outerJsonStr = result.value
440
- // 修复1:处理布尔值
441
- outerJsonStr = outerJsonStr.replace(/\bTrue\b/g, 'true')
442
- // 修复2:移除所有控制字符
443
- outerJsonStr = outerJsonStr.replace(/[\x00-\x1F]/g, '')
444
- // 修复3:精准转义data字段内的双引号
445
- // 匹配 "data": "..." 结构并转义内容中的双引号
446
- outerJsonStr = outerJsonStr.replace(/"data":\s*"([^"]*)"/g, (match, content) => {
447
- // 转义内容中的双引号为\"
448
- const escapedContent = content.replace(/"/g, '\\"')
449
- return `"data": "${escapedContent}"`
450
- })
451
- // 直接在整个字符串里匹配 ```json{...}```
452
- const regex = /```json([\s\S]*?)```/
453
- const match = outerJsonStr.match(regex)
454
- let extractedJsonStr = ''
455
- if (match && match[1]) {
456
- extractedJsonStr = match[1].trim()
457
- }
458
- const outerObj = JSON.parse(extractedJsonStr)
459
- console.log("outerObj = ", outerObj)
460
- } catch (e) {
461
- console.error('总错误:', e.message)
462
- this.$message.error(`解析失败: ${e.message}`)
463
- }
464
- }
465
- },
466
- // 打开文档信息修改面板
467
- openRenameModal () {
468
- this.resDataModalMode = 'modify'
469
- this.modifyResModel = {
470
- f_file_name: this.currResData.f_file_name
471
- }
472
- this.resDataModalVisible = true
473
- },
474
- // 提交文档信息修改
475
- onSubmit () {
476
- this.$refs.resModifyForm.validate(valid => {
477
- if (valid) {
478
- if (this.resDataModalMode === 'modify' && this.modifyResModel.f_file_name === this.currResData.f_file_name) {
479
- this.$message.warn('新文档名不能与原文档名一致!')
480
- return false
481
- }
482
- this.save()
483
- return true
484
- } else {
485
- return false
486
- }
487
- })
488
- },
489
- // 打开文档新建面板
490
- openAddResModal () {
491
- this.resDataModalMode = 'add'
492
- this.modifyResModel = {
493
- f_file_name: undefined
494
- }
495
- this.resDataModalVisible = true
496
- },
497
- // 新建文档
498
- addRes () {
499
- this.$emit('add', {})
500
- // const params = Object.assign({
501
- // isAddForce: true
502
- // }, this.logicExtraParams)
503
- // this.reload(params)
504
- },
505
- // 重新加载
506
- reload (params) {
507
- runLogic('getFileInformation', params, this.serviceName).then(res => {
508
- this.resDataModalVisible = false
509
- this.assignBindObject = this.assignTemplates(this.bindObject, res.bindObject)
510
- this.useTemplateData()
511
- // this.init({
512
- // modeType: this.modeType,
513
- // fileUrl: res.url,
514
- // resId: res.id,
515
- // currResData: res.currResData,
516
- // bindObject: res.bindObject,
517
- // saveDataLogicName: this.saveDataLogicName,
518
- // serviceName: this.serviceName,
519
- // logicExtraParams: this.logicExtraParams,
520
- // dropDownBoxParams: this.dropDownBoxParams
521
- // })
522
- })
523
- },
524
- // 合并模板数据
525
- assignTemplates (newBindObject, templateData) {
526
- // 检查templates数组是否存在
527
- if (!templateData.templates || !Array.isArray(templateData.templates)) {
528
- console.warn('templateData.templates不存在或不是数组')
529
- return newBindObject
530
- }
531
- // 遍历templates数组中的每个属性名
532
- templateData.templates.forEach(propName => {
533
- // 检查templateData是否有该属性
534
- if (propName in templateData) {
535
- // 无论newBindObject是否有该属性,都进行赋值/添加
536
- newBindObject[propName] = templateData[propName]
537
- } else {
538
- console.warn(`templateData中不存在属性: ${propName}`)
539
- }
540
- })
541
- return newBindObject
542
- },
543
- useTemplateData () {
544
- // 确认是否有合并后的模板数据
545
- if (!this.assignBindObject) {
546
- this.$message.warning('没有可用的模板数据');
547
- return;
548
- }
549
- this.editorRef.setBindObject(this.assignBindObject)
550
- // console.log('resId', this.resId)
551
- },
552
- // 切换文档
553
- changeRes (value) {
554
- console.log('value', value)
555
- let params = {
556
- resId: value
557
- }
558
- if (value === -1) {
559
- params = {
560
- ...params,
561
- admissionId: this.admissionId,
562
- f_template_id: this.templateId
563
- }
564
- const that = this
565
- this.$confirm({
566
- title: '确认切换文档吗?',
567
- content: '您有尚未保存的文档,切换文档将丢失所有的修改',
568
- onOk () {
569
- that.reload(params)
570
- // that.userTemplateVisible = true
571
- },
572
- onCancel () {
573
- that.toggleResId = that.resId
574
- },
575
- })
576
- } else {
577
- this.reload(params)
578
- }
579
- },
580
- // 保存文档
581
- save () {
582
- // 验证必须输入项
583
- if (this.editorRef.validate()) {
584
- // 获取HTML文档和结构化数据(JSON)
585
- console.log('save',this.editorRef.getBindObject())
586
- const data = {
587
- doc: this.editorRef.getHtml(),
588
- dataObject: {
589
- ...this.editorRef.getBindObject(),
590
- ...this.codeData // 合并 codeData 数据
591
- },
592
- dataMode: this.dataMode,
593
- resId: this.resId,
594
- modifyResModel: this.modifyResModel,
595
- logicExtraParams: this.logicExtraParams,
596
- is_template: this.isTemplate,
597
- f_file_name: this.fileName
598
- }
599
- // 保存HTML文档和结构化数据到后端服务
600
- runLogic(this.saveDataLogicName, data, this.serviceName).then(res => {
601
- this.$message.success('保存成功')
602
- this.changeRes(res.currResData.id)
603
- this.$emit('saveafter', data.dataObject)
604
- }).finally(() => {
605
- this.resDataModalVisible = false
606
- this.saveVisible = false
607
- })
608
- } else {
609
- this.$message.error('请检查未填写的项目')
610
- }
611
- },
612
- // 打印文档
613
- print () {
614
- this.editorRef.execCommand('print')
615
- },
616
- // 关闭编辑器
617
- close () {
618
- this.ready = false
619
- },
620
- // 刷新文档
621
- refresh () {
622
- this.loadFile(this.fileUrl, this.bindObject, this.currResData)
623
- },
624
- // 导出下拉菜单
625
- handleExportMenuClick (e) {
626
- const key = e.key
627
- this.editorRef.execCommand(key)
628
- }
629
- }
630
- }
631
- </script>
632
- <style scoped lang="less">
633
- .editor-action-container {
634
- height: 40px;
635
- }
636
- :deep(.ant-divider-horizontal) {
637
- margin: 4px 0;
638
- }
639
- /* 组合按钮容器 - 关键修正 */
640
- .combined-save-btn {
641
- display: inline-flex;
642
- height: 32px;
643
- }
644
-
645
- /* 主保存按钮 - 保持原有样式 */
646
- .save-btn-main {
647
- border-top-right-radius: 0 !important;
648
- border-bottom-right-radius: 0 !important;
649
- border-right: none !important;
650
- height: 32px;
651
- padding: 0 15px;
652
- display: inline-flex;
653
- align-items: center;
654
- justify-content: center;
655
- margin-right: -1px; /* 关键:负边距消除间距 */
656
- }
657
-
658
- /* 下拉按钮 - 仅调整间距 */
659
- .dropdown-trigger-btn {
660
- height: 32px !important;
661
- width: 24px !important;
662
- min-width: 24px !important;
663
- padding: 0 !important;
664
- border-top-left-radius: 0 !important;
665
- border-bottom-left-radius: 0 !important;
666
- border-left: 1px solid rgba(255, 255, 255, 0.3) !important;
667
- display: inline-flex;
668
- align-items: center;
669
- justify-content: center;
670
- margin-left: 0px;
671
- }
672
-
673
- /* 下拉图标保持原样 */
674
- .dropdown-trigger-btn .anticon {
675
- font-size: 12px;
676
- margin: 0 !important;
677
- }
678
- </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>