qgb-process 0.2.3 → 0.2.7

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 (502) hide show
  1. package/.env +2 -2
  2. package/.env.development +70 -70
  3. package/.env.pre +60 -60
  4. package/.env.production +48 -48
  5. package/.env.test +48 -48
  6. package/.eslintignore +4 -4
  7. package/.eslintrc.js +302 -302
  8. package/README.md +66 -66
  9. package/babel.config.js +5 -5
  10. package/commitlint.config.js +30 -30
  11. package/config/dev.env.js +7 -7
  12. package/config/index.js +82 -82
  13. package/config/prod.env.js +4 -4
  14. package/debug.log +4 -4
  15. package/index.js +6 -6
  16. package/jsconfig.json +9 -9
  17. package/lib/qgb-process.common.js +7666 -5069
  18. package/lib/qgb-process.umd.js +7666 -5069
  19. package/lib/qgb-process.umd.min.js +108 -108
  20. package/package.json +148 -148
  21. package/packages/index.js +26 -26
  22. package/public/index.html +47 -47
  23. package/public/js/qykf.js +21 -21
  24. package/src/App.vue +37 -37
  25. package/src/api/ApiExAndapp.js +24 -24
  26. package/src/api/EnterpriseAssociation.js +8 -8
  27. package/src/api/Notice.js +31 -31
  28. package/src/api/apiAcceptance/apiAcceptance.js +37 -37
  29. package/src/api/apiAddress.js +9 -9
  30. package/src/api/apiApprovalConfig.js +13 -13
  31. package/src/api/apiApprove.js +18 -18
  32. package/src/api/apiArrears/apiArrears.js +41 -41
  33. package/src/api/apiArrears/apiProjectArrears.js +16 -16
  34. package/src/api/apiArrears/index.js +15 -15
  35. package/src/api/apiAssets.js +19 -19
  36. package/src/api/apiAssociate.js +42 -42
  37. package/src/api/apiAudit/apiAudit.js +32 -32
  38. package/src/api/apiAuth.js +25 -25
  39. package/src/api/apiAuthentication.js +35 -35
  40. package/src/api/apiBankAccount/index.js +12 -12
  41. package/src/api/apiBudget/apiBudget.js +30 -30
  42. package/src/api/apiBudget/apiBudgets.js +105 -105
  43. package/src/api/apiCarRecord.js +48 -48
  44. package/src/api/apiCart.js +202 -202
  45. package/src/api/apiChangeTel.js +13 -13
  46. package/src/api/apiCheckingIn.js +95 -95
  47. package/src/api/apiCollection/index.js +13 -13
  48. package/src/api/apiContract/apiContract.js +21 -21
  49. package/src/api/apiContract/index.js +3 -3
  50. package/src/api/apiContract/quill-config.js +122 -122
  51. package/src/api/apiContractManage/apiContractManage.js +57 -57
  52. package/src/api/apiContractManage/index.js +2 -2
  53. package/src/api/apiContractManage/quill-config.js +121 -121
  54. package/src/api/apiCoping.js +22 -22
  55. package/src/api/apiCost/index.js +31 -31
  56. package/src/api/apiCreditManagement.js +16 -16
  57. package/src/api/apiCustomer/apiCustomer.js +12 -12
  58. package/src/api/apiDivisional.js +9 -9
  59. package/src/api/apiDivisionalManagementList.js +17 -17
  60. package/src/api/apiEmployeeRegularization.js +73 -73
  61. package/src/api/apiEquipmentRental.js +50 -50
  62. package/src/api/apiFormBuilder/menu.js +65 -65
  63. package/src/api/apiFormBuilder/reissueRule.js +15 -15
  64. package/src/api/apiFund/index.js +16 -16
  65. package/src/api/apiHelp.js +43 -43
  66. package/src/api/apiHome.js +24 -24
  67. package/src/api/apiIminfo.js +39 -39
  68. package/src/api/apiInventory.js +52 -52
  69. package/src/api/apiInventorySetting.js +9 -9
  70. package/src/api/apiInvoice.js +29 -29
  71. package/src/api/apiJobManage.js +15 -15
  72. package/src/api/apiLease/apiLease.js +12 -12
  73. package/src/api/apiLogisticsTransportation/apiLogisticsTransportation.js +34 -34
  74. package/src/api/apiLostPassword.js +9 -9
  75. package/src/api/apiMachine/api.js +3 -3
  76. package/src/api/apiMachine/apiCategory.js +18 -18
  77. package/src/api/apiMachine/apiHire.js +19 -19
  78. package/src/api/apiMachine/apiLease.js +27 -27
  79. package/src/api/apiMachine/apiLocation.js +4 -4
  80. package/src/api/apiMachine/apiRentInfo.js +107 -107
  81. package/src/api/apiMachine/apiRentPublish.js +14 -14
  82. package/src/api/apiMachine/apiStore.js +15 -15
  83. package/src/api/apiMachine/index.js +3 -3
  84. package/src/api/apiManagementStore/api.js +3 -3
  85. package/src/api/apiManagementStore/apiManagementStore.js +25 -25
  86. package/src/api/apiMaterCheckAndAccept/apiMaterCheckAndAccept.js +47 -47
  87. package/src/api/apiMaterCheckAndAccept/apiMechanicalSourcing.js +16 -16
  88. package/src/api/apiMaterCheckAndAccept/index.js +3 -3
  89. package/src/api/apiMaterials/aaaaaaaaaaaaaa.js +9 -9
  90. package/src/api/apiMaterials/api.js +3 -3
  91. package/src/api/apiMaterials/apiAddress.js +116 -116
  92. package/src/api/apiMaterials/apiBalanceData.js +188 -188
  93. package/src/api/apiMaterials/apiCommercialConcrete.js +36 -36
  94. package/src/api/apiMaterials/apiCommodity.js +70 -70
  95. package/src/api/apiMaterials/apiDownload.js +26 -26
  96. package/src/api/apiMaterials/apiHome.js +44 -44
  97. package/src/api/apiMaterials/apiItemBrand.js +9 -9
  98. package/src/api/apiMaterials/apiLogistics.js +72 -72
  99. package/src/api/apiMaterials/apiLogisticsReceipt.js +94 -94
  100. package/src/api/apiMaterials/apiMaterials.js +8 -8
  101. package/src/api/apiMaterials/apiMySalesOrder.js +21 -21
  102. package/src/api/apiMaterials/apiOfflineOrder.js +18 -18
  103. package/src/api/apiMaterials/apiOrder.js +183 -183
  104. package/src/api/apiMaterials/apiReceipt.js +45 -45
  105. package/src/api/apiMaterials/quill-config.js +122 -122
  106. package/src/api/apiMemberSelection.js +39 -39
  107. package/src/api/apiMessage.js +10 -10
  108. package/src/api/apiMock/mockOrder.js +98 -98
  109. package/src/api/apiMonthPlan/apiMonthPlan.js +47 -47
  110. package/src/api/apiMyBidding.js +8 -8
  111. package/src/api/apiMyMember/apiComInfo.js +17 -17
  112. package/src/api/apiMyMember/apiInviteJoin.js +24 -24
  113. package/src/api/apiMyMember/apiMember.js +24 -24
  114. package/src/api/apiMyMember/apiMemberApply.js +36 -36
  115. package/src/api/apiMyMember/apiMemberChance.js +40 -40
  116. package/src/api/apiOffer.js +40 -40
  117. package/src/api/apiOffice.js +19 -19
  118. package/src/api/apiPact.js +26 -26
  119. package/src/api/apiPassword.js +7 -7
  120. package/src/api/apiPay/apiPay.js +25 -25
  121. package/src/api/apiPaying.js +21 -21
  122. package/src/api/apiPayment/apiPayment.js +13 -13
  123. package/src/api/apiPayment/apiProjectPayment.js +13 -13
  124. package/src/api/apiPrint.js +23 -0
  125. package/src/api/apiProcess.js +65 -65
  126. package/src/api/apiProject/apiBaseList.js +29 -29
  127. package/src/api/apiProject/apiGoodsOffer.js +11 -11
  128. package/src/api/apiProject/apiInventory.js +116 -116
  129. package/src/api/apiProject/apiOfferOrder.js +12 -12
  130. package/src/api/apiProject/apiOfferQuery.js +18 -18
  131. package/src/api/apiProject/apiPlan.js +21 -21
  132. package/src/api/apiProject/apiProject.js +158 -158
  133. package/src/api/apiProjectProcurement/apiProjectProcurement.js +88 -88
  134. package/src/api/apiPurchase/apiPurchase.js +67 -67
  135. package/src/api/apiPurchaseApply.js +15 -15
  136. package/src/api/apiPurchasePay.js +16 -16
  137. package/src/api/apiRankManagement.js +24 -24
  138. package/src/api/apiRecruit.js +37 -37
  139. package/src/api/apiReimbursement/apiReimbursement.js +15 -15
  140. package/src/api/apiRisk/index.js +11 -11
  141. package/src/api/apiRoleManagement.js +15 -15
  142. package/src/api/apiRules/apiRules.js +11 -11
  143. package/src/api/apiSchedule/apiSchedule.js +17 -17
  144. package/src/api/apiSealRecord.js +52 -52
  145. package/src/api/apiSign.js +8 -8
  146. package/src/api/apiSolution/apiSolution.js +9 -9
  147. package/src/api/apiSubcontract.js +35 -35
  148. package/src/api/apiSystem/index.js +40 -40
  149. package/src/api/apiTask.js +76 -76
  150. package/src/api/apiTeam/api.js +3 -3
  151. package/src/api/apiTeam/apiUtils.js +11 -11
  152. package/src/api/apiTender.js +127 -127
  153. package/src/api/apiUser.js +24 -24
  154. package/src/api/apiUserEnterprise/api.js +3 -3
  155. package/src/api/apiUserEnterprise/apiUserEn.js +15 -15
  156. package/src/api/apiVolunteerTeam.js +11 -11
  157. package/src/api/apiWorkarea.js +33 -33
  158. package/src/api/apiXzqh.js +8 -8
  159. package/src/api/common/api.js +3 -3
  160. package/src/api/common/apiUtils.js +9 -9
  161. package/src/api/customer.js +21 -21
  162. package/src/api/evection.js +19 -19
  163. package/src/api/guide.js +9 -9
  164. package/src/api/sociaManageApi.js +30 -30
  165. package/src/assets/Area.json +1773 -1773
  166. package/src/assets/css/quill.bubble.css +952 -952
  167. package/src/assets/css/quill.core.css +397 -397
  168. package/src/assets/css/quill.snow.css +945 -945
  169. package/src/assets/data.js +284 -284
  170. package/src/assets/fonts/Read Me.txt +7 -7
  171. package/src/assets/fonts/demo-files/demo.css +155 -155
  172. package/src/assets/fonts/demo-files/demo.js +30 -30
  173. package/src/assets/fonts/demo.html +951 -951
  174. package/src/assets/fonts/fonts/icomoon.svg +130 -130
  175. package/src/assets/fonts/style.css +563 -563
  176. package/src/assets/icons/checkbox.svg +12 -12
  177. package/src/assets/icons/columns-3.svg +12 -12
  178. package/src/assets/icons/columns.svg +12 -12
  179. package/src/assets/icons/custom-table.svg +12 -12
  180. package/src/assets/icons/date.svg +19 -19
  181. package/src/assets/icons/daterange.svg +12 -12
  182. package/src/assets/icons/fuzhi.svg +11 -11
  183. package/src/assets/icons/fuzhi_03.svg +5 -5
  184. package/src/assets/icons/gaojizujian.svg +12 -12
  185. package/src/assets/icons/groupSummary.svg +12 -12
  186. package/src/assets/icons/groupTitle.svg +12 -12
  187. package/src/assets/icons/image-uploader.svg +12 -12
  188. package/src/assets/icons/input-number.svg +12 -12
  189. package/src/assets/icons/input.svg +12 -12
  190. package/src/assets/icons/quill-editor.svg +12 -12
  191. package/src/assets/icons/radio.svg +12 -12
  192. package/src/assets/icons/select.svg +12 -12
  193. package/src/assets/icons/switch.svg +12 -12
  194. package/src/assets/icons/textarea.svg +12 -12
  195. package/src/assets/icons/upload-file.svg +12 -12
  196. package/src/assets/marketplace.js +289 -289
  197. package/src/components/ComAduitNew.vue +477 -477
  198. package/src/components/CommonAduit.vue +512 -512
  199. package/src/components/CommonAduitNew.vue +906 -906
  200. package/src/components/CommonAduitNews.vue +753 -753
  201. package/src/components/CommonUEditer.vue +63 -63
  202. package/src/components/PersonCenter/Mess.vue +59 -59
  203. package/src/components/PersonCenter/Title.vue +80 -80
  204. package/src/components/SvgIcon.vue +57 -57
  205. package/src/components/XmCommonAduit.vue +761 -761
  206. package/src/components/feiyCommon.vue +713 -713
  207. package/src/components/form/card.js +5 -5
  208. package/src/components/form/chinese.js +6 -6
  209. package/src/components/form/chinessstring.js +5 -5
  210. package/src/components/form/hunhe.js +8 -8
  211. package/src/components/form/hunhecq.js +8 -8
  212. package/src/components/form/hunheh.js +8 -8
  213. package/src/components/form/num.js +12 -12
  214. package/src/components/form/numstring.js +5 -5
  215. package/src/components/form/user.js +7 -7
  216. package/src/components/form/validate.js +42 -42
  217. package/src/components/form/validcredit.js +5 -5
  218. package/src/components/fundCommonAduit.vue +661 -661
  219. package/src/components/public/BaseCustomTable.vue +71 -71
  220. package/src/components/public/BaseDialog.vue +144 -144
  221. package/src/components/public/BaseEmptyData.vue +73 -73
  222. package/src/components/public/BaseFormTitle.vue +39 -39
  223. package/src/components/public/BasePagination.vue +55 -55
  224. package/src/components/public/BaseRouter.vue +14 -14
  225. package/src/components/public/BaseUpload.vue +185 -185
  226. package/src/components/public/Bottom.vue +62 -62
  227. package/src/components/public/Footer.vue +412 -412
  228. package/src/components/public/Header.vue +30 -30
  229. package/src/components/public/LeftMenu.vue +170 -170
  230. package/src/components/public/MemberSelection coby.vue +444 -444
  231. package/src/components/public/MemberSelection.vue +487 -487
  232. package/src/components/public/NewLeftMenu.vue +418 -418
  233. package/src/components/public/PicturesPreview.vue +62 -62
  234. package/src/components/public/Popout.vue +147 -147
  235. package/src/components/public/TagLine.vue +353 -353
  236. package/src/components/public/components/BaseImageUploadDrag.vue +320 -320
  237. package/src/components/public/components/HeadBar.vue +315 -315
  238. package/src/components/public/components/MenuList.vue +110 -110
  239. package/src/components/public/components/NewHeadBar.vue +936 -936
  240. package/src/components/public/components/QuickGoods.vue +273 -273
  241. package/src/components/public/components/Search.vue +164 -164
  242. package/src/components/public/components/Userinfo.vue +383 -383
  243. package/src/components/utils/pdf.js +254 -254
  244. package/src/components/xmfyCommonAduit.vue +752 -752
  245. package/src/filters/index.js +619 -619
  246. package/src/fnc/arr.js +102 -102
  247. package/src/fnc/quill-config.js +121 -121
  248. package/src/fnc/unit.js +102 -102
  249. package/src/fnc/verify.js +187 -187
  250. package/src/fnc/verifyStatus.js +24 -24
  251. package/src/formBuilder/apiBusiness.js +67 -67
  252. package/src/formBuilder/business.js +1039 -1039
  253. package/src/formBuilder/component/components/data.js +719 -719
  254. package/src/formBuilder/component/components/purchaseIndex.vue +1109 -1109
  255. package/src/formBuilder/component/purchase.vue +35 -35
  256. package/src/formBuilder/components/app-main/components/components/GroupSummary.vue +33 -33
  257. package/src/formBuilder/components/app-main/components/components/GroupTitle.vue +33 -33
  258. package/src/formBuilder/components/app-main/components/components/bank.vue +226 -226
  259. package/src/formBuilder/components/app-main/components/components/bankFormHeard.vue +298 -298
  260. package/src/formBuilder/components/app-main/components/components/builder.vue +718 -718
  261. package/src/formBuilder/components/app-main/components/components/columns.vue +393 -393
  262. package/src/formBuilder/components/app-main/components/components/customTable.vue +1758 -1758
  263. package/src/formBuilder/components/app-main/components/components/formDep.vue +105 -105
  264. package/src/formBuilder/components/app-main/components/components/handleCode.vue +39 -39
  265. package/src/formBuilder/components/app-main/components/components/itemOption.vue +116 -116
  266. package/src/formBuilder/components/app-main/components/components/linkForm.vue +116 -116
  267. package/src/formBuilder/components/app-main/components/components/listDesign.vue +772 -772
  268. package/src/formBuilder/components/app-main/components/components/optionSolt.js +78 -78
  269. package/src/formBuilder/components/app-main/components/components/person.vue +104 -104
  270. package/src/formBuilder/components/app-main/components/components/postman.vue +40 -40
  271. package/src/formBuilder/components/app-main/components/components/previewDialog.vue +391 -391
  272. package/src/formBuilder/components/app-main/components/components/tableIndex.vue +51 -51
  273. package/src/formBuilder/components/app-main/components/components/tableList.vue +561 -561
  274. package/src/formBuilder/components/app-main/components/components/twoColumns.vue +52 -52
  275. package/src/formBuilder/components/app-main/components/main-center.vue +187 -187
  276. package/src/formBuilder/components/app-main/components/main-header.vue +351 -351
  277. package/src/formBuilder/components/app-main/components/main-left.vue +179 -179
  278. package/src/formBuilder/components/app-main/components/main-right/components/components/calculateDialog.vue +914 -914
  279. package/src/formBuilder/components/app-main/components/main-right/components/components/curTextArea.vue +338 -338
  280. package/src/formBuilder/components/app-main/components/main-right/components/components/form-item-rules.vue +190 -190
  281. package/src/formBuilder/components/app-main/components/main-right/components/components/linkageDialog.vue +25 -25
  282. package/src/formBuilder/components/app-main/components/main-right/components/components/searchMixin.js +26 -26
  283. package/src/formBuilder/components/app-main/components/main-right/components/form-config.vue +284 -284
  284. package/src/formBuilder/components/app-main/components/main-right/components/form-item-attrs.vue +407 -407
  285. package/src/formBuilder/components/app-main/components/main-right/components/form-item-config.vue +478 -478
  286. package/src/formBuilder/components/app-main/components/main-right/index.vue +203 -203
  287. package/src/formBuilder/components/app-main/index.vue +329 -329
  288. package/src/formBuilder/comps.js +283 -283
  289. package/src/formBuilder/config/button.js +63 -63
  290. package/src/formBuilder/config/cascader-panel.js +224 -224
  291. package/src/formBuilder/config/cascader.js +306 -306
  292. package/src/formBuilder/config/checkbox.js +67 -67
  293. package/src/formBuilder/config/color.js +42 -42
  294. package/src/formBuilder/config/columns.js +30 -30
  295. package/src/formBuilder/config/custom-table.js +49 -49
  296. package/src/formBuilder/config/date.js +107 -107
  297. package/src/formBuilder/config/daterange.js +47 -47
  298. package/src/formBuilder/config/datetime.js +78 -78
  299. package/src/formBuilder/config/datetimerange.js +111 -111
  300. package/src/formBuilder/config/formDep.js +37 -37
  301. package/src/formBuilder/config/groupSummary.js +23 -23
  302. package/src/formBuilder/config/groupTitle.js +23 -23
  303. package/src/formBuilder/config/handleCode.js +23 -23
  304. package/src/formBuilder/config/image-uploader.js +113 -113
  305. package/src/formBuilder/config/input.js +162 -162
  306. package/src/formBuilder/config/json-editor.js +31 -31
  307. package/src/formBuilder/config/linkForm.js +69 -69
  308. package/src/formBuilder/config/number.js +49 -49
  309. package/src/formBuilder/config/password.js +82 -82
  310. package/src/formBuilder/config/person.js +37 -37
  311. package/src/formBuilder/config/postman.js +23 -23
  312. package/src/formBuilder/config/purchase.js +19 -19
  313. package/src/formBuilder/config/quill-editor.js +66 -66
  314. package/src/formBuilder/config/radio-button.js +44 -44
  315. package/src/formBuilder/config/radio.js +69 -69
  316. package/src/formBuilder/config/rate.js +93 -93
  317. package/src/formBuilder/config/select.js +105 -105
  318. package/src/formBuilder/config/slider.js +92 -92
  319. package/src/formBuilder/config/switch.js +35 -35
  320. package/src/formBuilder/config/tag.js +79 -79
  321. package/src/formBuilder/config/text.js +18 -18
  322. package/src/formBuilder/config/textarea.js +129 -129
  323. package/src/formBuilder/config/time.js +60 -60
  324. package/src/formBuilder/config/timerange.js +94 -94
  325. package/src/formBuilder/config/tree-select.js +100 -100
  326. package/src/formBuilder/config/upload-file.js +100 -100
  327. package/src/formBuilder/config/yesno.js +39 -39
  328. package/src/formBuilder/config.js +16 -16
  329. package/src/formBuilder/extend/index.js +20 -20
  330. package/src/formBuilder/index.js +39 -39
  331. package/src/formBuilder/menuConfig.js +36 -36
  332. package/src/formBuilder/mixins/index.js +215 -215
  333. package/src/formBuilder/tool.js +101 -101
  334. package/src/function/base.js +13 -13
  335. package/src/function/findCompanyTree.js +94 -94
  336. package/src/function/formulaAnalysis.js +44 -44
  337. package/src/function/verify.js +23 -23
  338. package/src/http/index.js +219 -219
  339. package/src/http/type.js +82 -82
  340. package/src/library/AddType/Index.js +17 -17
  341. package/src/library/AddType/Index.vue +201 -201
  342. package/src/library/AreaChange/regionCascader/regionCascader.vue +155 -155
  343. package/src/library/BigImg/BigImage1/Index.js +17 -17
  344. package/src/library/BigImg/BigImage1/Index.vue +125 -125
  345. package/src/library/Button/Button1/Index.js +17 -17
  346. package/src/library/Button/Button1/Index.vue +60 -60
  347. package/src/library/Button/Button2/Index.js +17 -17
  348. package/src/library/Button/Button2/Index.vue +52 -52
  349. package/src/library/Button/Button3/Index.js +17 -17
  350. package/src/library/Button/Button3/Index.vue +56 -56
  351. package/src/library/Button/Button4/Index.js +17 -17
  352. package/src/library/Button/Button4/Index.vue +56 -56
  353. package/src/library/Button/Button5/Index.js +17 -17
  354. package/src/library/Button/Button5/Index.vue +55 -55
  355. package/src/library/Button/Button6/Index.js +17 -17
  356. package/src/library/Button/Button6/Index.vue +74 -74
  357. package/src/library/Button/Button7/Index.js +17 -17
  358. package/src/library/Button/Button7/Index.vue +56 -56
  359. package/src/library/ConfirmPlaugin/ConfirmPlaugin1/Index.js +17 -17
  360. package/src/library/ConfirmPlaugin/ConfirmPlaugin1/Index.vue +147 -147
  361. package/src/library/ConfirmPlaugin/ConfirmPlaugin2/Index.js +17 -17
  362. package/src/library/ConfirmPlaugin/ConfirmPlaugin2/Index.vue +137 -137
  363. package/src/library/ConfirmPlaugin/ConfirmPlaugin3/Index.vue +142 -142
  364. package/src/library/ConfirmPlaugin/ConfirmPlaugin4/Index.vue +141 -141
  365. package/src/library/ConfirmPlaugin/ConfirmPlaugin5/Index.vue +121 -121
  366. package/src/library/ConfirmPlaugin/ConfirmPlaugin6/Index.vue +142 -142
  367. package/src/library/Input/Input1/Index.js +17 -17
  368. package/src/library/Input/Input1/Index.vue +66 -66
  369. package/src/library/NoMessage/NoMessage0/Index.js +17 -17
  370. package/src/library/NoMessage/NoMessage0/Index.vue +60 -60
  371. package/src/library/NoMessage/NoMessage1/Index.js +17 -17
  372. package/src/library/NoMessage/NoMessage1/Index.vue +66 -66
  373. package/src/library/NoMessage/NoMessage2/Index.js +17 -17
  374. package/src/library/NoMessage/NoMessage2/Index.vue +66 -66
  375. package/src/library/Tab/Tab1/TabBox1/Index.vue +36 -36
  376. package/src/library/Tab/Tab1/TabInner1/Index.vue +70 -70
  377. package/src/library/Tab/Tab2/TabBox2/Index.vue +36 -36
  378. package/src/library/Tab/Tab2/TabInner2/Index.vue +66 -66
  379. package/src/library/Table/Table1/Td1/Index.js +17 -17
  380. package/src/library/Table/Table1/Td1/Index.vue +110 -110
  381. package/src/library/Table/Table1/Tr1/Index.js +17 -17
  382. package/src/library/Table/Table1/Tr1/Index.vue +53 -53
  383. package/src/library/Table/Table2/Td2/Index.js +17 -17
  384. package/src/library/Table/Table2/Td2/Index.vue +90 -90
  385. package/src/library/Table/Table2/Tr2/Index.js +17 -17
  386. package/src/library/Table/Table2/Tr2/Index.vue +66 -66
  387. package/src/library/Table/Table3/Td3/Index.js +17 -17
  388. package/src/library/Table/Table3/Td3/Index.vue +109 -109
  389. package/src/library/Table/Table3/Tr3/Index.js +17 -17
  390. package/src/library/Table/Table3/Tr3/Index.vue +128 -128
  391. package/src/library/Table/Table4/Td4/Index.js +17 -17
  392. package/src/library/Table/Table4/Td4/Index.vue +114 -114
  393. package/src/library/Table/Table4/Tr4/Index.js +17 -17
  394. package/src/library/Table/Table4/Tr4/Index.vue +53 -53
  395. package/src/library/Title/Title1/Index.js +17 -17
  396. package/src/library/Title/Title1/Index.vue +80 -80
  397. package/src/library/toast/Index.js +17 -17
  398. package/src/library/toast/Index.vue +86 -86
  399. package/src/main.js +161 -161
  400. package/src/mixins/Export2Excel.js +207 -207
  401. package/src/mixins/chartOption.js +110 -110
  402. package/src/mixins/companyMixins.js +84 -84
  403. package/src/mixins/quillOptions.js +15 -15
  404. package/src/mixins/validate/deviceManage.js +211 -211
  405. package/src/mixins/validate/systemConfig.js +117 -117
  406. package/src/mixins/validate/validate.js +25 -25
  407. package/src/public/apiUser/apiUser.js +10 -10
  408. package/src/public/areaFunction.js +26 -26
  409. package/src/public/link.js +91 -91
  410. package/src/public/stageData.js +495 -495
  411. package/src/public/topmenu.js +68 -68
  412. package/src/router/index.js +225 -225
  413. package/src/router/setting/BaseRoutes.js +1639 -1639
  414. package/src/router/setting/MenuDevMock.js +1570 -1570
  415. package/src/router/setting/modules/login.js +45 -45
  416. package/src/router/setting/noAuthRouter.js +109 -109
  417. package/src/router/setting/routes.js +55 -55
  418. package/src/static/css/flex.css +75 -75
  419. package/src/static/css/switch.scss +31 -31
  420. package/src/storage/cookies.js +37 -37
  421. package/src/storage/localStorage.js +36 -36
  422. package/src/storage/sessionStorage.js +25 -25
  423. package/src/store/formBuilder/formAttrDefault.js +28 -28
  424. package/src/store/formBuilder/index.js +40 -40
  425. package/src/store/index.js +553 -553
  426. package/src/styles/color.scss +24 -24
  427. package/src/styles/offer.scss +39 -39
  428. package/src/styles/s-reset.scss +52 -52
  429. package/src/styles/static-style.scss +797 -797
  430. package/src/styles/talent.scss +26 -26
  431. package/src/styles/variable.scss +69 -69
  432. package/src/styles/workflow/workflow.css +1308 -1308
  433. package/src/utils/TableFormTypeList.js +26 -26
  434. package/src/utils/allRouter.js +5579 -5579
  435. package/src/utils/auditUtil.js +535 -535
  436. package/src/utils/commonComponents.js +34 -34
  437. package/src/utils/commonFunc.js +213 -213
  438. package/src/utils/deepCopyArray.js +9 -9
  439. package/src/utils/dict.js +49 -49
  440. package/src/utils/directive.js +26 -26
  441. package/src/utils/emoji.js +16 -16
  442. package/src/utils/flator.js +18 -18
  443. package/src/utils/imMeeting.js +1180 -1180
  444. package/src/utils/index.js +105 -105
  445. package/src/utils/initRouter.js +94 -94
  446. package/src/utils/map.js +23 -23
  447. package/src/utils/passwordStrength.js +177 -177
  448. package/src/utils/style.js +30 -30
  449. package/src/utils/validate.js +30 -30
  450. package/src/views/404.vue +53 -53
  451. package/src/views/Login/Login.vue +50 -50
  452. package/src/views/Login/Passfind.vue +347 -347
  453. package/src/views/Login/Passfindnext.vue +146 -146
  454. package/src/views/Login/Sign.vue +55 -55
  455. package/src/views/Login/SignSuccessfully.vue +132 -132
  456. package/src/views/Login/appDownload.vue +224 -224
  457. package/src/views/Login/clientDownload.vue +201 -201
  458. package/src/views/Login/components/Background.vue +153 -153
  459. package/src/views/Login/components/FormLogin.vue +1001 -1001
  460. package/src/views/Login/components/FormPassFind.vue +395 -395
  461. package/src/views/Login/components/FormSign.vue +493 -493
  462. package/src/views/Login/components/Title.vue +301 -301
  463. package/src/views/Login/components/agreeMent.vue +111 -111
  464. package/src/views/Login/components/companysign.vue +1296 -1296
  465. package/src/views/Login/components/guideLogin.vue +984 -984
  466. package/src/views/formBuilder/components/addNode.vue +119 -119
  467. package/src/views/formBuilder/components/approverSelector.vue +493 -493
  468. package/src/views/formBuilder/components/baseRoute.vue +315 -315
  469. package/src/views/formBuilder/components/builderHeader.vue +106 -106
  470. package/src/views/formBuilder/components/conditionConfig.js +588 -588
  471. package/src/views/formBuilder/components/conditionNode.vue +191 -191
  472. package/src/views/formBuilder/components/dataDefault.js +147 -147
  473. package/src/views/formBuilder/components/depFormNode.vue +583 -583
  474. package/src/views/formBuilder/components/linkForm.vue +566 -566
  475. package/src/views/formBuilder/components/linkFormList.vue +821 -821
  476. package/src/views/formBuilder/components/menuConfig.vue +1752 -1752
  477. package/src/views/formBuilder/components/newNodeForm.vue +426 -426
  478. package/src/views/formBuilder/components/newsection.vue +424 -424
  479. package/src/views/formBuilder/components/nodeConditionConfig cody.vue +376 -376
  480. package/src/views/formBuilder/components/nodeConditionConfig.vue +603 -603
  481. package/src/views/formBuilder/components/nodeForm.vue +355 -355
  482. package/src/views/formBuilder/components/nodeMenu.vue +147 -147
  483. package/src/views/formBuilder/components/personNode.vue +566 -566
  484. package/src/views/formBuilder/components/planNode.vue +269 -269
  485. package/src/views/formBuilder/designListPage.vue +457 -457
  486. package/src/views/formBuilder/formDataDetail.vue +565 -565
  487. package/src/views/formBuilder/formGeneration.vue +904 -904
  488. package/src/views/formBuilder/index.vue +242 -242
  489. package/src/views/formBuilder/process-1.vue +976 -976
  490. package/src/views/formBuilder/process-2.vue +1323 -1323
  491. package/src/views/formBuilder/process.vue +662 -431
  492. package/src/views/formBuilder/processList.vue +877 -877
  493. package/src/views/formBuilder/service/ProcessBuilder.js +136 -136
  494. package/src/views/formBuilder/service/RsxzFieldCollection.js +199 -0
  495. package/src/views/formBuilder/workflow/addNode.vue +95 -95
  496. package/src/views/formBuilder/workflow/initData.js +205 -205
  497. package/src/views/formBuilder/workflow/nodeWrap.vue +731 -731
  498. package/src/views/guide.vue +227 -227
  499. package/src/views/guideIndex.vue +284 -284
  500. package/tests/unit/.eslintrc.js +5 -5
  501. package/tests/unit/example.spec.js +13 -13
  502. package/vue.config.js +287 -287
@@ -1,254 +1,254 @@
1
- // // 导出页面为PDF格式
2
- // import html2Canvas from 'html2canvas'
3
- // import JsPDF from 'jspdf'
4
- // export default{
5
- // install (Vue, options) {
6
- // Vue.prototype.getPdf = function (title) {
7
- // var title = this.htmlTitle
8
- // html2Canvas(document.querySelector('#pdfDom'), {
9
- // allowTaint: true
10
- // }).then(function (canvas) {
11
- // let contentWidth = canvas.width
12
- // let contentHeight = canvas.height
13
- // let pageHeight = contentWidth / 592.28 * 841.89
14
- // let leftHeight = contentHeight
15
- // let position = 0
16
- // let imgWidth = 595.28
17
- // let imgHeight = 592.28 / contentWidth * contentHeight
18
- // let pageData = canvas.toDataURL('image/jpeg', 1.0)
19
- // let PDF = new JsPDF('', 'pt', 'a4')
20
- // if (leftHeight < pageHeight) {
21
- // PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight)
22
- // } else {
23
- // while (leftHeight > 0) {
24
- // PDF.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)
25
- // leftHeight -= pageHeight
26
- // position -= 841.89
27
- // if (leftHeight > 0) {
28
- // PDF.addPage()
29
- // }
30
- // }
31
- // }
32
- // PDF.save(title + '.pdf')
33
- // }
34
- // )
35
- // }
36
- // }
37
- // }
38
- import jsPDF from "jspdf";
39
- import html2canvas from "html2canvas";
40
-
41
- const A4_WIDTH = 592.28;
42
- const A4_HEIGHT = 841.89;
43
-
44
- jsPDF.API.output2 = function(outputType = "save", filename = "document.pdf") {
45
- let result = null;
46
- switch (outputType) {
47
- case "file":
48
- result = new File([this.output("blob")], filename, {
49
- type: "application/pdf",
50
- lastModified: Date.now()
51
- });
52
- break;
53
- case "save":
54
- result = this.save(filename);
55
- break;
56
- default:
57
- result = this.output(outputType);
58
- }
59
- return result;
60
- };
61
-
62
- jsPDF.API.addBlank = function(x, y, width, height) {
63
- this.setFillColor(255, 255, 255);
64
- this.rect(x, y, Math.ceil(width), Math.ceil(height), "F");
65
- };
66
-
67
- jsPDF.API.toCanvas = async function(element, width) {
68
- const canvas = await html2canvas(element);
69
- const canvasWidth = canvas.width;
70
- const canvasHeight = canvas.height;
71
- const height = (width / canvasWidth) * canvasHeight;
72
- const canvasData = canvas.toDataURL("image/jpeg", 1.0);
73
- return { width, height, data: canvasData };
74
- };
75
-
76
- jsPDF.API.addHeader = async function(x, width, header) {
77
- if (!(header instanceof HTMLElement)) return;
78
- let __header;
79
- if (this.__header) {
80
- __header = this.__header;
81
- } else {
82
- __header = await this.toCanvas(header, width);
83
- this.__header = __header;
84
- }
85
- const { height, data } = __header;
86
- this.addImage(data, "JPEG", x, 0, width, height);
87
- };
88
-
89
- jsPDF.API.addFooter = async function(x, width, footer) {
90
- if (!(footer instanceof HTMLElement)) return;
91
- let __footer;
92
- if (this.__footer) {
93
- __footer = this.__footer;
94
- } else {
95
- __footer = await this.toCanvas(footer, width);
96
- this.__footer = __footer;
97
- }
98
- const { height, data } = __footer;
99
- this.addImage(data, "JPEG", x, A4_HEIGHT - height, width, height);
100
- };
101
-
102
- /**
103
- * 生成pdf(处理多页pdf截断问题)
104
- * @param {Object} param
105
- * @param {HTMLElement} param.element - 需要转换的dom根节点
106
- * @param {number} [param.contentWidth=550] - 一页pdf的内容宽度,0-592.28
107
- * @param {number} [param.contentHeight=800] - 一页pdf的内容高度,0-841.89
108
- * @param {string} [param.outputType='save'] - 生成pdf的数据类型,添加了'file'类型,其他支持的类型见http://raw.githack.com/MrRio/jsPDF/master/docs/jsPDF.html#output
109
- * @param {string} [param.filename='document.pdf'] - pdf文件名
110
- * @param {number} param.x - pdf页内容距页面左边的高度,默认居中显示,为(A4宽度 - contentWidth) / 2)
111
- * @param {number} param.y - pdf页内容距页面上边的高度,默认居中显示,为(A4高度 - contentHeight) / 2)
112
- * @param {HTMLElement} param.header - 页眉dom元素
113
- * @param {HTMLElement} param.footer - 页脚dom元素
114
- * @param {boolean} [param.headerOnlyFirst=true] - 是否只在第一页添加页眉
115
- * @param {boolean} [param.footerOnlyLast=true] - 是否只在最后一页添加页脚
116
- * @param {string} [param.mode='adaptive'] - 生成pdf的模式,支持'adaptive'、'fixed','adaptive'需给dom添加标识,'fixed'需固定布局。
117
- * @param {string} [param.itemName='item'] - 给dom添加元素标识的名字,'adaptive'模式需在dom中设置
118
- * @param {string} [param.groupName='group'] - 给dom添加组标识的名字,'adaptive'模式需在dom中设置
119
- * @returns {Promise} 根据outputType返回不同的数据类型
120
- */
121
- async function outputPdf({
122
- element, contentWidth = 550, contentHeight = 800,
123
- outputType = "save", filename = "document.pdf", x, y,
124
- header, footer, headerOnlyFirst = true, footerOnlyLast = true,
125
- mode = "adaptive", itemName = "item", groupName = "group"
126
- }) {
127
- if (!(element instanceof HTMLElement)) {
128
- throw new Error("The root element must be HTMLElement.");
129
- }
130
-
131
- const pdf = new jsPDF({
132
- unit: "pt",
133
- format: "a4",
134
- orientation: "p"
135
- });
136
- const { width, height, data } = await pdf.toCanvas(element, contentWidth);
137
- const baseX = x == null ? (A4_WIDTH - contentWidth) / 2 : x;
138
- const baseY = y == null ? (A4_HEIGHT - contentHeight) / 2 : y;
139
- async function addHeader(isFirst) {
140
- if (isFirst || !headerOnlyFirst) {
141
- await pdf.addHeader(baseX, contentWidth, header);
142
- }
143
- }
144
- async function addFooter(isLast) {
145
- if (isLast || !footerOnlyLast) {
146
- await pdf.addFooter(baseX, contentWidth, footer);
147
- }
148
- }
149
- function addImage(_x, _y) {
150
- pdf.addImage(data, "JPEG", _x, _y, width, height);
151
- }
152
-
153
- const params = {
154
- element, contentWidth, contentHeight, itemName, groupName,
155
- pdf, baseX, baseY, width, height, addImage, addHeader, addFooter
156
- };
157
- switch (mode) {
158
- case "adaptive":
159
- await outputWithAdaptive(params);
160
- break;
161
- case "fixed":
162
- default:
163
- await outputWithFixedSize(params);
164
- }
165
- return pdf.output2(outputType, filename);
166
- }
167
-
168
- async function outputWithFixedSize({
169
- pdf, baseX, baseY, height, addImage, addHeader, addFooter, contentHeight
170
- }) {
171
- const pageNum = Math.ceil(height / contentHeight); // 总页数
172
- const arr = Array.from({ length: pageNum }).map((_, i) => i);
173
- for await (const i of arr) {
174
- addImage(baseX, baseY - i * contentHeight);
175
- const isFirst = i === 0;
176
- const isLast = i === arr.length - 1;
177
- if (!isFirst) {
178
- // 用空白遮挡顶部需要隐藏的部分
179
- pdf.addBlank(0, 0, A4_WIDTH, baseY);
180
- }
181
- if (!isLast) {
182
- // 用空白遮挡底部需要隐藏的部分
183
- pdf.addBlank(0, baseY + contentHeight, A4_WIDTH, A4_HEIGHT - (baseY + contentHeight));
184
- }
185
- await addHeader(isFirst);
186
- await addFooter(isLast);
187
- if (!isLast) {
188
- pdf.addPage();
189
- }
190
- }
191
- }
192
-
193
- async function outputWithAdaptive({
194
- element, contentWidth, itemName, groupName,
195
- pdf, baseX, baseY, addImage, addHeader, addFooter, contentHeight
196
- }) {
197
- // 从根节点遍历dom,计算出每页应放置的内容高度以保证不被截断
198
- const splitElement = () => {
199
- const res = [];
200
- let pos = 0;
201
- const elementWidth = element.offsetWidth;
202
- function updatePos(height) {
203
- if (pos + height <= contentHeight) {
204
- pos += height;
205
- return;
206
- }
207
- res.push(pos);
208
- pos = height;
209
- }
210
- function traversingNodes(nodes) {
211
- if (nodes.length === 0) return;
212
- nodes.forEach(one => {
213
- if (one.nodeType !== 1) return;
214
- const { [itemName]: item, [groupName]: group } = one.dataset;
215
- if (item != null) {
216
- const { offsetHeight } = one;
217
- // dom高度转换成生成pdf的实际高度
218
- // 代码不考虑dom定位、边距、边框等因素,需在dom里自行考虑,如将box-sizing设置为border-box
219
- updatePos(contentWidth / elementWidth * offsetHeight);
220
- } else if (group != null) {
221
- traversingNodes(one.childNodes);
222
- }
223
- });
224
- }
225
- traversingNodes(element.childNodes);
226
- res.push(pos);
227
- return res;
228
- };
229
-
230
- const elements = splitElement();
231
- let accumulationHeight = 0;
232
- let currentPage = 0;
233
- for await (const elementHeight of elements) {
234
- addImage(baseX, baseY - accumulationHeight);
235
- accumulationHeight += elementHeight;
236
- const isFirst = currentPage === 0;
237
- const isLast = currentPage === elements.length - 1;
238
- if (!isFirst) {
239
- pdf.addBlank(0, 0, A4_WIDTH, baseY);
240
- }
241
- if (!isLast) {
242
- pdf.addBlank(0, baseY + elementHeight, A4_WIDTH, A4_HEIGHT - (baseY + elementHeight));
243
- }
244
- await addHeader(isFirst);
245
- await addFooter(isLast);
246
- if (!isLast) {
247
- pdf.addPage();
248
- }
249
- currentPage++;
250
- }
251
- }
252
-
253
- export default outputPdf;
254
-
1
+ // // 导出页面为PDF格式
2
+ // import html2Canvas from 'html2canvas'
3
+ // import JsPDF from 'jspdf'
4
+ // export default{
5
+ // install (Vue, options) {
6
+ // Vue.prototype.getPdf = function (title) {
7
+ // var title = this.htmlTitle
8
+ // html2Canvas(document.querySelector('#pdfDom'), {
9
+ // allowTaint: true
10
+ // }).then(function (canvas) {
11
+ // let contentWidth = canvas.width
12
+ // let contentHeight = canvas.height
13
+ // let pageHeight = contentWidth / 592.28 * 841.89
14
+ // let leftHeight = contentHeight
15
+ // let position = 0
16
+ // let imgWidth = 595.28
17
+ // let imgHeight = 592.28 / contentWidth * contentHeight
18
+ // let pageData = canvas.toDataURL('image/jpeg', 1.0)
19
+ // let PDF = new JsPDF('', 'pt', 'a4')
20
+ // if (leftHeight < pageHeight) {
21
+ // PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight)
22
+ // } else {
23
+ // while (leftHeight > 0) {
24
+ // PDF.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)
25
+ // leftHeight -= pageHeight
26
+ // position -= 841.89
27
+ // if (leftHeight > 0) {
28
+ // PDF.addPage()
29
+ // }
30
+ // }
31
+ // }
32
+ // PDF.save(title + '.pdf')
33
+ // }
34
+ // )
35
+ // }
36
+ // }
37
+ // }
38
+ import jsPDF from "jspdf";
39
+ import html2canvas from "html2canvas";
40
+
41
+ const A4_WIDTH = 592.28;
42
+ const A4_HEIGHT = 841.89;
43
+
44
+ jsPDF.API.output2 = function(outputType = "save", filename = "document.pdf") {
45
+ let result = null;
46
+ switch (outputType) {
47
+ case "file":
48
+ result = new File([this.output("blob")], filename, {
49
+ type: "application/pdf",
50
+ lastModified: Date.now()
51
+ });
52
+ break;
53
+ case "save":
54
+ result = this.save(filename);
55
+ break;
56
+ default:
57
+ result = this.output(outputType);
58
+ }
59
+ return result;
60
+ };
61
+
62
+ jsPDF.API.addBlank = function(x, y, width, height) {
63
+ this.setFillColor(255, 255, 255);
64
+ this.rect(x, y, Math.ceil(width), Math.ceil(height), "F");
65
+ };
66
+
67
+ jsPDF.API.toCanvas = async function(element, width) {
68
+ const canvas = await html2canvas(element);
69
+ const canvasWidth = canvas.width;
70
+ const canvasHeight = canvas.height;
71
+ const height = (width / canvasWidth) * canvasHeight;
72
+ const canvasData = canvas.toDataURL("image/jpeg", 1.0);
73
+ return { width, height, data: canvasData };
74
+ };
75
+
76
+ jsPDF.API.addHeader = async function(x, width, header) {
77
+ if (!(header instanceof HTMLElement)) return;
78
+ let __header;
79
+ if (this.__header) {
80
+ __header = this.__header;
81
+ } else {
82
+ __header = await this.toCanvas(header, width);
83
+ this.__header = __header;
84
+ }
85
+ const { height, data } = __header;
86
+ this.addImage(data, "JPEG", x, 0, width, height);
87
+ };
88
+
89
+ jsPDF.API.addFooter = async function(x, width, footer) {
90
+ if (!(footer instanceof HTMLElement)) return;
91
+ let __footer;
92
+ if (this.__footer) {
93
+ __footer = this.__footer;
94
+ } else {
95
+ __footer = await this.toCanvas(footer, width);
96
+ this.__footer = __footer;
97
+ }
98
+ const { height, data } = __footer;
99
+ this.addImage(data, "JPEG", x, A4_HEIGHT - height, width, height);
100
+ };
101
+
102
+ /**
103
+ * 生成pdf(处理多页pdf截断问题)
104
+ * @param {Object} param
105
+ * @param {HTMLElement} param.element - 需要转换的dom根节点
106
+ * @param {number} [param.contentWidth=550] - 一页pdf的内容宽度,0-592.28
107
+ * @param {number} [param.contentHeight=800] - 一页pdf的内容高度,0-841.89
108
+ * @param {string} [param.outputType='save'] - 生成pdf的数据类型,添加了'file'类型,其他支持的类型见http://raw.githack.com/MrRio/jsPDF/master/docs/jsPDF.html#output
109
+ * @param {string} [param.filename='document.pdf'] - pdf文件名
110
+ * @param {number} param.x - pdf页内容距页面左边的高度,默认居中显示,为(A4宽度 - contentWidth) / 2)
111
+ * @param {number} param.y - pdf页内容距页面上边的高度,默认居中显示,为(A4高度 - contentHeight) / 2)
112
+ * @param {HTMLElement} param.header - 页眉dom元素
113
+ * @param {HTMLElement} param.footer - 页脚dom元素
114
+ * @param {boolean} [param.headerOnlyFirst=true] - 是否只在第一页添加页眉
115
+ * @param {boolean} [param.footerOnlyLast=true] - 是否只在最后一页添加页脚
116
+ * @param {string} [param.mode='adaptive'] - 生成pdf的模式,支持'adaptive'、'fixed','adaptive'需给dom添加标识,'fixed'需固定布局。
117
+ * @param {string} [param.itemName='item'] - 给dom添加元素标识的名字,'adaptive'模式需在dom中设置
118
+ * @param {string} [param.groupName='group'] - 给dom添加组标识的名字,'adaptive'模式需在dom中设置
119
+ * @returns {Promise} 根据outputType返回不同的数据类型
120
+ */
121
+ async function outputPdf({
122
+ element, contentWidth = 550, contentHeight = 800,
123
+ outputType = "save", filename = "document.pdf", x, y,
124
+ header, footer, headerOnlyFirst = true, footerOnlyLast = true,
125
+ mode = "adaptive", itemName = "item", groupName = "group"
126
+ }) {
127
+ if (!(element instanceof HTMLElement)) {
128
+ throw new Error("The root element must be HTMLElement.");
129
+ }
130
+
131
+ const pdf = new jsPDF({
132
+ unit: "pt",
133
+ format: "a4",
134
+ orientation: "p"
135
+ });
136
+ const { width, height, data } = await pdf.toCanvas(element, contentWidth);
137
+ const baseX = x == null ? (A4_WIDTH - contentWidth) / 2 : x;
138
+ const baseY = y == null ? (A4_HEIGHT - contentHeight) / 2 : y;
139
+ async function addHeader(isFirst) {
140
+ if (isFirst || !headerOnlyFirst) {
141
+ await pdf.addHeader(baseX, contentWidth, header);
142
+ }
143
+ }
144
+ async function addFooter(isLast) {
145
+ if (isLast || !footerOnlyLast) {
146
+ await pdf.addFooter(baseX, contentWidth, footer);
147
+ }
148
+ }
149
+ function addImage(_x, _y) {
150
+ pdf.addImage(data, "JPEG", _x, _y, width, height);
151
+ }
152
+
153
+ const params = {
154
+ element, contentWidth, contentHeight, itemName, groupName,
155
+ pdf, baseX, baseY, width, height, addImage, addHeader, addFooter
156
+ };
157
+ switch (mode) {
158
+ case "adaptive":
159
+ await outputWithAdaptive(params);
160
+ break;
161
+ case "fixed":
162
+ default:
163
+ await outputWithFixedSize(params);
164
+ }
165
+ return pdf.output2(outputType, filename);
166
+ }
167
+
168
+ async function outputWithFixedSize({
169
+ pdf, baseX, baseY, height, addImage, addHeader, addFooter, contentHeight
170
+ }) {
171
+ const pageNum = Math.ceil(height / contentHeight); // 总页数
172
+ const arr = Array.from({ length: pageNum }).map((_, i) => i);
173
+ for await (const i of arr) {
174
+ addImage(baseX, baseY - i * contentHeight);
175
+ const isFirst = i === 0;
176
+ const isLast = i === arr.length - 1;
177
+ if (!isFirst) {
178
+ // 用空白遮挡顶部需要隐藏的部分
179
+ pdf.addBlank(0, 0, A4_WIDTH, baseY);
180
+ }
181
+ if (!isLast) {
182
+ // 用空白遮挡底部需要隐藏的部分
183
+ pdf.addBlank(0, baseY + contentHeight, A4_WIDTH, A4_HEIGHT - (baseY + contentHeight));
184
+ }
185
+ await addHeader(isFirst);
186
+ await addFooter(isLast);
187
+ if (!isLast) {
188
+ pdf.addPage();
189
+ }
190
+ }
191
+ }
192
+
193
+ async function outputWithAdaptive({
194
+ element, contentWidth, itemName, groupName,
195
+ pdf, baseX, baseY, addImage, addHeader, addFooter, contentHeight
196
+ }) {
197
+ // 从根节点遍历dom,计算出每页应放置的内容高度以保证不被截断
198
+ const splitElement = () => {
199
+ const res = [];
200
+ let pos = 0;
201
+ const elementWidth = element.offsetWidth;
202
+ function updatePos(height) {
203
+ if (pos + height <= contentHeight) {
204
+ pos += height;
205
+ return;
206
+ }
207
+ res.push(pos);
208
+ pos = height;
209
+ }
210
+ function traversingNodes(nodes) {
211
+ if (nodes.length === 0) return;
212
+ nodes.forEach(one => {
213
+ if (one.nodeType !== 1) return;
214
+ const { [itemName]: item, [groupName]: group } = one.dataset;
215
+ if (item != null) {
216
+ const { offsetHeight } = one;
217
+ // dom高度转换成生成pdf的实际高度
218
+ // 代码不考虑dom定位、边距、边框等因素,需在dom里自行考虑,如将box-sizing设置为border-box
219
+ updatePos(contentWidth / elementWidth * offsetHeight);
220
+ } else if (group != null) {
221
+ traversingNodes(one.childNodes);
222
+ }
223
+ });
224
+ }
225
+ traversingNodes(element.childNodes);
226
+ res.push(pos);
227
+ return res;
228
+ };
229
+
230
+ const elements = splitElement();
231
+ let accumulationHeight = 0;
232
+ let currentPage = 0;
233
+ for await (const elementHeight of elements) {
234
+ addImage(baseX, baseY - accumulationHeight);
235
+ accumulationHeight += elementHeight;
236
+ const isFirst = currentPage === 0;
237
+ const isLast = currentPage === elements.length - 1;
238
+ if (!isFirst) {
239
+ pdf.addBlank(0, 0, A4_WIDTH, baseY);
240
+ }
241
+ if (!isLast) {
242
+ pdf.addBlank(0, baseY + elementHeight, A4_WIDTH, A4_HEIGHT - (baseY + elementHeight));
243
+ }
244
+ await addHeader(isFirst);
245
+ await addFooter(isLast);
246
+ if (!isLast) {
247
+ pdf.addPage();
248
+ }
249
+ currentPage++;
250
+ }
251
+ }
252
+
253
+ export default outputPdf;
254
+