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,583 +1,583 @@
1
- <template>
2
- <!-- 组件说明:主要处理同人在不同部门的情况 -->
3
- <!-- 1.选中其中一个部门的A,不选中其他部门的A -->
4
- <!-- 2.已选去重:先选中部门1的A,选择2的A,右侧已选只显示一个A -->
5
- <!-- 3.右侧已选取消某一员工,则取消左侧全部该员工的勾选 -->
6
- <div>
7
- <el-dialog
8
- :title="title"
9
- :visible.sync="orgVisible"
10
- width="600px"
11
- append-to-body
12
- @opened='opened'
13
- :before-close="cancel"
14
- :close-on-click-modal="false"
15
- destroy-on-close
16
- >
17
- <div class="main-wrapper">
18
- <!-- 左侧 -->
19
- <div class="main-block">
20
- <div class="block-title">选择:</div>
21
- <div
22
- class="block-card"
23
- v-loading="loading"
24
- >
25
- <!-- 搜索 -->
26
- <el-input
27
- type="text"
28
- clearable
29
- placeholder="搜索"
30
- v-model="searchValue"
31
- style="margin-bottom: 10px"
32
- size="small"
33
- >
34
- <i
35
- slot="prefix"
36
- class="el-input__icon el-icon-search"
37
- ></i>
38
- </el-input>
39
-
40
- <!-- 选择框 -->
41
- <div>
42
- <el-tree
43
- :data="orgData"
44
- class="filter-tree"
45
- :props="defaultProps"
46
- default-expand-all
47
- show-checkbox
48
- node-key="uniqueProp"
49
- :default-checked-keys="defaultArr1"
50
- :filter-node-method="filterNode"
51
- @check="handleCheckChange"
52
- @check-change='((node, checked, boolCheck)=>{handleCheckChange1(node, checked, boolCheck,"handle")})'
53
- ref="tree"
54
- ></el-tree>
55
- </div>
56
- </div>
57
- </div>
58
-
59
- <!-- 右侧 -->
60
- <div class="main-block">
61
- <div class="block-title">已选:</div>
62
- <div class="block-card block-card-right">
63
- <ul
64
- class="opt-wrap"
65
- id="opt-wrap"
66
- >
67
- <li
68
- v-for="(item, index) in selectedList"
69
- :key="index"
70
- class="opt"
71
- >
72
-
73
- <span class="opt-name">{{ item.name }}</span>
74
- <i
75
- class="el-icon-circle-close"
76
- @click="deleteOpt(item, index)"
77
- ></i>
78
- </li>
79
- </ul>
80
- </div>
81
- </div>
82
- </div>
83
- <span
84
- slot="footer"
85
- class="dialog-footer"
86
- >
87
- <el-button @click="cancel">取 消</el-button>
88
- <el-button
89
- type="primary"
90
- @click="confirm"
91
- >确 认</el-button>
92
- </span>
93
- </el-dialog>
94
- </div>
95
- </template>
96
-
97
- <script>
98
- import api from "@/api/apiMemberSelection";
99
- export default {
100
- name: "DepForm",
101
- components: {},
102
- props: {
103
- type: {
104
- type: Number,
105
- default: 0
106
- },
107
- orgVisible: {
108
- type: Boolean,
109
- default: false
110
- },
111
- isMultipleC: {
112
- type: Boolean,
113
- default: false
114
- },
115
- value: {
116
- type: Array,
117
- default: () => {
118
- return [];
119
- }
120
- },
121
- defaultArr1: {
122
- type: Array,
123
- default: () => {
124
- return [];
125
- }
126
- }
127
- },
128
- data() {
129
- return {
130
- keys: [],
131
- isSearching: false,
132
- currentSelectedAll: false,
133
- searchValue: null,
134
- loading: false,
135
- orgData: null,
136
- orgDataT: null,
137
- selectedList: [],
138
- defaultCheck: [],
139
- defaultProps: {
140
- children: "children",
141
- label: "name"
142
- }
143
- };
144
- },
145
- computed: {
146
- depHandle() {
147
- const { orgData, type } = this;
148
- return { orgData, type };
149
- },
150
- title() {
151
- if (this.type === 0) {
152
- return "请选择审批人";
153
- } else if (this.type === 3) {
154
- return "请选择部门";
155
- } else {
156
- return "请选择抄送人";
157
- }
158
- // return this.type === 0 ? "请选择审批人" : "请选择抄送人";
159
- }
160
- },
161
- watch: {
162
- currentLevelList: {
163
- handler(val) {
164
- this.generateSelectedList();
165
- },
166
- deep: true
167
- },
168
-
169
- // depHandle: {
170
- // handler(nv, ov) {
171
- // if (nv.type == 3) {
172
- // debugger;
173
- // this.handleDepData(nv.orgData);
174
- // }
175
- // }
176
- // },
177
- searchValue: {
178
- handler(val) {
179
- this.$refs.tree.filter(val);
180
- }
181
- }
182
- },
183
- async created() {
184
- this.getOrgData();
185
- },
186
- methods: {
187
- opened() {
188
- const vm = this;
189
- if (vm.defaultArr1.length > 0) {
190
- const _tempList = vm.$refs.tree
191
- .getCheckedNodes()
192
- .filter(item => item.type && item.type !== 0);
193
- vm.selectedList = vm.selectedList.concat(
194
- _tempList
195
- // vm.uniqueList(_tempList)
196
- );
197
- }
198
- vm.selectedList.forEach((e, i) => {
199
- vm.$refs.tree.setChecked(e.uniqueProp, true);
200
- });
201
- },
202
- handleDepData(data, c) {
203
- const vm = this;
204
- for (let i = 0; i < data.length; i++) {
205
- const e = data[i];
206
- if (e.children) {
207
- const arr = _.filter(e.children, (e, i) => {
208
- return e.type;
209
- });
210
- e.children = arr;
211
- vm.handleDepData(e.children, data);
212
- } else {
213
- return;
214
- }
215
- }
216
-
217
- // const data2 = _.cloneDeep(data);
218
- },
219
- // 根据初始化数据匹配已选中列表
220
- init(data) {
221
- const vm = this;
222
- vm.selectedList = _.cloneDeep(data);
223
- const nos = data.map(item => {
224
- return item.memberNo;
225
- });
226
- const iterator = data => {
227
- data.forEach(item => {
228
- if (item.holidayType === 2 && nos.includes(item.memberNo)) {
229
- this.$refs.tree.setChecked(item.uniqueProp, true);
230
- } else if (item.holidayType !== 2 && item.children.length) {
231
- iterator(item.children);
232
- }
233
- });
234
- };
235
- iterator(this.orgData);
236
- },
237
-
238
- // 节点过滤
239
- filterNode(value, data) {
240
- if (!value) return true;
241
- return data.name.indexOf(value) !== -1;
242
- },
243
- // 获取组织架构数据
244
- async getOrgData() {
245
- const vm = this;
246
- vm.loading = true;
247
- const res = await api.getOrgsData();
248
- if (res.data.code === 200) {
249
- res.data.data.checked = false;
250
- vm.orgData = vm.dataFormatter([res.data.data]);
251
- vm.currentLevelList = vm.orgData;
252
- if (vm.type === 3) {
253
- const res2 = vm.handleDepData(vm.orgData);
254
- }
255
- vm.loading = false;
256
- }
257
- },
258
- // 数据格式化,合并contacts和children
259
- dataFormatter(source) {
260
- const itemMap = {};
261
- const iterator = source => {
262
- source.forEach(item => {
263
- if (item.holidayType !== 2) {
264
- item.children = item.children.concat(item.contacts);
265
- item.uniqueProp = item.id;
266
- if (item.children.length) {
267
- iterator(item.children);
268
- }
269
- } else {
270
- // 为每个叶节点加上唯一属性,uniqueProp
271
- if (itemMap[item.memberNo]) {
272
- itemMap[item.memberNo] = itemMap[item.memberNo] + 1;
273
- } else {
274
- itemMap[item.memberNo] = 1;
275
- }
276
- item.uniqueProp = item.memberNo + "-" + itemMap[item.memberNo];
277
- }
278
- });
279
- };
280
- iterator(source);
281
- return source;
282
- },
283
- // 节点状态改变
284
- handleCheckChange(node, checked, boolCheck) {
285
- // 判断是选中还是取消选中
286
- const vm = this;
287
- let existArr = [];
288
- vm.orgDataT = checked ? checked.checkedKeys : "";
289
-
290
- let isChecked;
291
- if (boolCheck === undefined) {
292
- const tempNodeUniqueProp = node.uniqueProp;
293
- isChecked = checked.checkedKeys.includes(tempNodeUniqueProp);
294
- } else {
295
- isChecked = boolCheck;
296
- }
297
- if (isChecked) {
298
- const _selectedNos = vm.selectedList.map(item => item.memberNo);
299
- const _tempList = vm.$refs.tree
300
- .getCheckedNodes()
301
- .filter(item => item.type && item.type !== 0);
302
- vm.selectedList = vm.selectedList.concat(
303
- _tempList
304
- // this.uniqueList(_tempList)
305
- );
306
- setTimeout(() => {
307
- vm.keys = vm.$refs.tree.getCheckedKeys();
308
- vm.keys.forEach(e => {
309
- const index3 = _.findIndex(vm.selectedList, function(o) {
310
- return o.uniqueProp == e;
311
- });
312
- existArr.push(vm.selectedList[index3]);
313
- });
314
- existArr = _.compact(existArr);
315
- vm.$set(vm, "selectedList", existArr);
316
- }, 100);
317
- const newSelectedList = _.uniqBy(vm.selectedList, function(r) {
318
- return r.uniqueProp;
319
- });
320
-
321
- vm.$set(vm, "selectedList", newSelectedList);
322
- } else {
323
- const memberNo = node.uniqueProp;
324
- let existArr = [];
325
- if (memberNo) {
326
- const alsoExist = checked.checkedKeys.some(
327
- item => item.split("-")[0] === memberNo
328
- );
329
- if (!alsoExist) {
330
- const index = vm.selectedList.indexOf(node);
331
- vm.selectedList.splice(index, 1);
332
-
333
- if (node?.children?.length > 0) {
334
- const iterator = data => {
335
- data.forEach(item => {
336
- const index2 = vm.selectedList.indexOf(item);
337
- vm.selectedList.splice(index2, 1);
338
-
339
- if (item.children) {
340
- iterator(item.children);
341
- }
342
- });
343
- };
344
- iterator(node.children);
345
- }
346
- setTimeout(() => {
347
- checked.checkedKeys.forEach(e => {
348
- const index3 = _.findIndex(vm.selectedList, function(o) {
349
- return o.uniqueProp == e;
350
- });
351
- existArr.push(vm.selectedList[index3]);
352
- });
353
- existArr = _.compact(existArr);
354
- vm.$set(vm, "selectedList", existArr);
355
- }, 100);
356
- }
357
- } else {
358
- for (let i = 0; i < node.children.length; i++) {
359
- this.handleCheckChange(node.children[i], checked, false);
360
- }
361
- }
362
- }
363
- },
364
- //
365
- handleCheckChange1(node, checked, boolCheck, flag) {
366
- const vm = this;
367
- const index2 = vm.selectedList.indexOf(node);
368
-
369
- // vm.selectedList.splice(index2, 1);
370
- },
371
- // 对象数组去重(判断memberNo是否相同)
372
- uniqueList(data) {
373
- const result = [];
374
- const _map = {};
375
- for (let i = 0; i < data.length; i++) {
376
- if (!_map[data[i].memberNo]) {
377
- _map[data[i].memberNo] = true;
378
- result.push(data[i]);
379
- }
380
- }
381
- return result;
382
- },
383
- // 生成已选列表,每次节点/全选框状态改变时调用
384
- generateSelectedList() {
385
- const result = [];
386
- const vm = this;
387
- const iterator = source => {
388
- source.forEach(item => {
389
- item.checked && result.push(item);
390
- if (item.children) {
391
- iterator(item.children);
392
- }
393
- });
394
- };
395
- iterator(this.orgData);
396
- this.selectedList = result;
397
- },
398
- // 递归取消所有该员工
399
- deleteOpt(opt, index) {
400
- const vm = this;
401
- const existArr = [];
402
- vm.selectedList.splice(index, 1);
403
- const iterator = data => {
404
- data.forEach(item => {
405
- if (item.id === opt.id) {
406
- // if (item.children && item.parentId != 1) {
407
- // vm.$refs.tree.setChecked(item.parentId, false);
408
- // }
409
- vm.$refs.tree.setChecked(item.uniqueProp, false);
410
- } else if (item?.children?.length) {
411
- iterator(item.children);
412
- }
413
- });
414
- };
415
- iterator(vm.orgData);
416
- if (opt.children) {
417
- opt.children.forEach(e => {
418
- vm.$refs.tree.setChecked(e.uniqueProp, false);
419
- const index2 = vm.selectedList.indexOf(e);
420
- vm.selectedList.splice(index2, 1);
421
- });
422
- }
423
-
424
- setTimeout(() => {
425
- vm.keys = vm.$refs.tree.getCheckedKeys();
426
- vm.keys.forEach(e => {
427
- const index3 = _.findIndex(vm.selectedList, function(o) {
428
- return o.uniqueProp == e;
429
- });
430
- existArr.push(vm.selectedList[index3]);
431
- });
432
- vm.$set(vm, "selectedList", existArr);
433
- }, 100);
434
- },
435
- // 取消
436
- cancel() {
437
- this.$emit("close");
438
- },
439
- // 确认
440
- confirm() {
441
- // if (this.selectedList.length === 0) {
442
- // this.$message.warning(this.title);
443
- // return false;
444
- // }
445
- const vm = this;
446
- if (!vm.isMultipleC && vm.selectedList.length > 1) {
447
- vm.$message({
448
- message: "该组件已配置为单选,请勾选单条数据",
449
- type: "warning"
450
- });
451
- return;
452
- }
453
- if (vm.selectedList.length > 25) {
454
- const tip = "部门最多选择25个";
455
- vm.$message.warning(tip);
456
- return false;
457
- }
458
- const resultParams = {
459
- list: vm.selectedList,
460
- type: vm.type
461
- };
462
- vm.$emit("close");
463
- vm.$emit("confirm", JSON.stringify(resultParams));
464
- }
465
- }
466
- };
467
- </script>
468
- <style lang="scss" scoped>
469
- /deep/ .el-tree {
470
- margin-top: 8px;
471
- height: 280px;
472
- overflow-y: auto;
473
- }
474
- ul,
475
- li {
476
- padding: 0;
477
- margin: 0;
478
- }
479
- .main-wrapper {
480
- display: flex;
481
- justify-content: space-between;
482
- }
483
- .main-block {
484
- width: 270px;
485
- }
486
- .block-card {
487
- border-radius: 5px;
488
- padding: 10px;
489
- box-sizing: border-box;
490
- border: 1px solid #dcdfe6;
491
- margin-top: 10px;
492
- height: 352px;
493
- }
494
- .block-card-right {
495
- overflow: auto;
496
- }
497
- #bread_wrap {
498
- display: flex;
499
- padding: 0;
500
- font-size: 14px;
501
- margin: 0;
502
- align-items: center;
503
- padding-bottom: 12px;
504
- //flex-wrap: wrap;
505
- }
506
- .bread-wrapper-inner {
507
- display: flex;
508
- align-items: center;
509
- }
510
- .bread-item {
511
- margin-right: 5px;
512
- white-space: nowrap;
513
- height: 30px;
514
- display: flex;
515
- align-items: center;
516
- justify-content: center;
517
- }
518
- .bread-item span {
519
- cursor: pointer;
520
- }
521
- .bread-item:hover span {
522
- color: #0286df;
523
- }
524
- .bread-item i {
525
- margin-left: 5px;
526
- }
527
- .bread-item:last-child i {
528
- display: none;
529
- }
530
- .prev-menu-btn {
531
- margin-right: 5px;
532
- color: #606266;
533
- }
534
- .prev-menu-btn:hover {
535
- color: #0286df;
536
- }
537
-
538
- // .select-box{
539
- // padding-top: 10px;
540
- // }
541
- .select-item-wrapper {
542
- height: 220px;
543
- overflow: auto;
544
- }
545
- .select-item-wrapper.tall {
546
- height: 295px;
547
- }
548
- .opt {
549
- display: flex;
550
- align-items: center;
551
- //height: 30px;
552
- justify-content: flex-start;
553
- margin-bottom: 10px;
554
- cursor: pointer;
555
- }
556
- .opt-avatar {
557
- margin-left: 10px;
558
- flex-shrink: 0;
559
- }
560
- .avatar-inner {
561
- display: flex;
562
- align-items: center;
563
- justify-content: center;
564
- width: 40px;
565
- height: 40px;
566
- background-color: #0286df;
567
- color: #fff;
568
- border-radius: 100%;
569
- }
570
- .opt-name {
571
- width: 100%;
572
- flex-shrink: 1;
573
- padding-left: 10px;
574
- }
575
- .next-level-btn {
576
- flex-shrink: 0;
577
- margin: 0;
578
- padding: 0;
579
- }
580
- .el-icon-circle-close {
581
- cursor: pointer;
582
- }
583
- </style>
1
+ <template>
2
+ <!-- 组件说明:主要处理同人在不同部门的情况 -->
3
+ <!-- 1.选中其中一个部门的A,不选中其他部门的A -->
4
+ <!-- 2.已选去重:先选中部门1的A,选择2的A,右侧已选只显示一个A -->
5
+ <!-- 3.右侧已选取消某一员工,则取消左侧全部该员工的勾选 -->
6
+ <div>
7
+ <el-dialog
8
+ :title="title"
9
+ :visible.sync="orgVisible"
10
+ width="600px"
11
+ append-to-body
12
+ @opened='opened'
13
+ :before-close="cancel"
14
+ :close-on-click-modal="false"
15
+ destroy-on-close
16
+ >
17
+ <div class="main-wrapper">
18
+ <!-- 左侧 -->
19
+ <div class="main-block">
20
+ <div class="block-title">选择:</div>
21
+ <div
22
+ class="block-card"
23
+ v-loading="loading"
24
+ >
25
+ <!-- 搜索 -->
26
+ <el-input
27
+ type="text"
28
+ clearable
29
+ placeholder="搜索"
30
+ v-model="searchValue"
31
+ style="margin-bottom: 10px"
32
+ size="small"
33
+ >
34
+ <i
35
+ slot="prefix"
36
+ class="el-input__icon el-icon-search"
37
+ ></i>
38
+ </el-input>
39
+
40
+ <!-- 选择框 -->
41
+ <div>
42
+ <el-tree
43
+ :data="orgData"
44
+ class="filter-tree"
45
+ :props="defaultProps"
46
+ default-expand-all
47
+ show-checkbox
48
+ node-key="uniqueProp"
49
+ :default-checked-keys="defaultArr1"
50
+ :filter-node-method="filterNode"
51
+ @check="handleCheckChange"
52
+ @check-change='((node, checked, boolCheck)=>{handleCheckChange1(node, checked, boolCheck,"handle")})'
53
+ ref="tree"
54
+ ></el-tree>
55
+ </div>
56
+ </div>
57
+ </div>
58
+
59
+ <!-- 右侧 -->
60
+ <div class="main-block">
61
+ <div class="block-title">已选:</div>
62
+ <div class="block-card block-card-right">
63
+ <ul
64
+ class="opt-wrap"
65
+ id="opt-wrap"
66
+ >
67
+ <li
68
+ v-for="(item, index) in selectedList"
69
+ :key="index"
70
+ class="opt"
71
+ >
72
+
73
+ <span class="opt-name">{{ item.name }}</span>
74
+ <i
75
+ class="el-icon-circle-close"
76
+ @click="deleteOpt(item, index)"
77
+ ></i>
78
+ </li>
79
+ </ul>
80
+ </div>
81
+ </div>
82
+ </div>
83
+ <span
84
+ slot="footer"
85
+ class="dialog-footer"
86
+ >
87
+ <el-button @click="cancel">取 消</el-button>
88
+ <el-button
89
+ type="primary"
90
+ @click="confirm"
91
+ >确 认</el-button>
92
+ </span>
93
+ </el-dialog>
94
+ </div>
95
+ </template>
96
+
97
+ <script>
98
+ import api from "@/api/apiMemberSelection";
99
+ export default {
100
+ name: "DepForm",
101
+ components: {},
102
+ props: {
103
+ type: {
104
+ type: Number,
105
+ default: 0
106
+ },
107
+ orgVisible: {
108
+ type: Boolean,
109
+ default: false
110
+ },
111
+ isMultipleC: {
112
+ type: Boolean,
113
+ default: false
114
+ },
115
+ value: {
116
+ type: Array,
117
+ default: () => {
118
+ return [];
119
+ }
120
+ },
121
+ defaultArr1: {
122
+ type: Array,
123
+ default: () => {
124
+ return [];
125
+ }
126
+ }
127
+ },
128
+ data() {
129
+ return {
130
+ keys: [],
131
+ isSearching: false,
132
+ currentSelectedAll: false,
133
+ searchValue: null,
134
+ loading: false,
135
+ orgData: null,
136
+ orgDataT: null,
137
+ selectedList: [],
138
+ defaultCheck: [],
139
+ defaultProps: {
140
+ children: "children",
141
+ label: "name"
142
+ }
143
+ };
144
+ },
145
+ computed: {
146
+ depHandle() {
147
+ const { orgData, type } = this;
148
+ return { orgData, type };
149
+ },
150
+ title() {
151
+ if (this.type === 0) {
152
+ return "请选择审批人";
153
+ } else if (this.type === 3) {
154
+ return "请选择部门";
155
+ } else {
156
+ return "请选择抄送人";
157
+ }
158
+ // return this.type === 0 ? "请选择审批人" : "请选择抄送人";
159
+ }
160
+ },
161
+ watch: {
162
+ currentLevelList: {
163
+ handler(val) {
164
+ this.generateSelectedList();
165
+ },
166
+ deep: true
167
+ },
168
+
169
+ // depHandle: {
170
+ // handler(nv, ov) {
171
+ // if (nv.type == 3) {
172
+ // debugger;
173
+ // this.handleDepData(nv.orgData);
174
+ // }
175
+ // }
176
+ // },
177
+ searchValue: {
178
+ handler(val) {
179
+ this.$refs.tree.filter(val);
180
+ }
181
+ }
182
+ },
183
+ async created() {
184
+ this.getOrgData();
185
+ },
186
+ methods: {
187
+ opened() {
188
+ const vm = this;
189
+ if (vm.defaultArr1.length > 0) {
190
+ const _tempList = vm.$refs.tree
191
+ .getCheckedNodes()
192
+ .filter(item => item.type && item.type !== 0);
193
+ vm.selectedList = vm.selectedList.concat(
194
+ _tempList
195
+ // vm.uniqueList(_tempList)
196
+ );
197
+ }
198
+ vm.selectedList.forEach((e, i) => {
199
+ vm.$refs.tree.setChecked(e.uniqueProp, true);
200
+ });
201
+ },
202
+ handleDepData(data, c) {
203
+ const vm = this;
204
+ for (let i = 0; i < data.length; i++) {
205
+ const e = data[i];
206
+ if (e.children) {
207
+ const arr = _.filter(e.children, (e, i) => {
208
+ return e.type;
209
+ });
210
+ e.children = arr;
211
+ vm.handleDepData(e.children, data);
212
+ } else {
213
+ return;
214
+ }
215
+ }
216
+
217
+ // const data2 = _.cloneDeep(data);
218
+ },
219
+ // 根据初始化数据匹配已选中列表
220
+ init(data) {
221
+ const vm = this;
222
+ vm.selectedList = _.cloneDeep(data);
223
+ const nos = data.map(item => {
224
+ return item.memberNo;
225
+ });
226
+ const iterator = data => {
227
+ data.forEach(item => {
228
+ if (item.holidayType === 2 && nos.includes(item.memberNo)) {
229
+ this.$refs.tree.setChecked(item.uniqueProp, true);
230
+ } else if (item.holidayType !== 2 && item.children.length) {
231
+ iterator(item.children);
232
+ }
233
+ });
234
+ };
235
+ iterator(this.orgData);
236
+ },
237
+
238
+ // 节点过滤
239
+ filterNode(value, data) {
240
+ if (!value) return true;
241
+ return data.name.indexOf(value) !== -1;
242
+ },
243
+ // 获取组织架构数据
244
+ async getOrgData() {
245
+ const vm = this;
246
+ vm.loading = true;
247
+ const res = await api.getOrgsData();
248
+ if (res.data.code === 200) {
249
+ res.data.data.checked = false;
250
+ vm.orgData = vm.dataFormatter([res.data.data]);
251
+ vm.currentLevelList = vm.orgData;
252
+ if (vm.type === 3) {
253
+ const res2 = vm.handleDepData(vm.orgData);
254
+ }
255
+ vm.loading = false;
256
+ }
257
+ },
258
+ // 数据格式化,合并contacts和children
259
+ dataFormatter(source) {
260
+ const itemMap = {};
261
+ const iterator = source => {
262
+ source.forEach(item => {
263
+ if (item.holidayType !== 2) {
264
+ item.children = item.children.concat(item.contacts);
265
+ item.uniqueProp = item.id;
266
+ if (item.children.length) {
267
+ iterator(item.children);
268
+ }
269
+ } else {
270
+ // 为每个叶节点加上唯一属性,uniqueProp
271
+ if (itemMap[item.memberNo]) {
272
+ itemMap[item.memberNo] = itemMap[item.memberNo] + 1;
273
+ } else {
274
+ itemMap[item.memberNo] = 1;
275
+ }
276
+ item.uniqueProp = item.memberNo + "-" + itemMap[item.memberNo];
277
+ }
278
+ });
279
+ };
280
+ iterator(source);
281
+ return source;
282
+ },
283
+ // 节点状态改变
284
+ handleCheckChange(node, checked, boolCheck) {
285
+ // 判断是选中还是取消选中
286
+ const vm = this;
287
+ let existArr = [];
288
+ vm.orgDataT = checked ? checked.checkedKeys : "";
289
+
290
+ let isChecked;
291
+ if (boolCheck === undefined) {
292
+ const tempNodeUniqueProp = node.uniqueProp;
293
+ isChecked = checked.checkedKeys.includes(tempNodeUniqueProp);
294
+ } else {
295
+ isChecked = boolCheck;
296
+ }
297
+ if (isChecked) {
298
+ const _selectedNos = vm.selectedList.map(item => item.memberNo);
299
+ const _tempList = vm.$refs.tree
300
+ .getCheckedNodes()
301
+ .filter(item => item.type && item.type !== 0);
302
+ vm.selectedList = vm.selectedList.concat(
303
+ _tempList
304
+ // this.uniqueList(_tempList)
305
+ );
306
+ setTimeout(() => {
307
+ vm.keys = vm.$refs.tree.getCheckedKeys();
308
+ vm.keys.forEach(e => {
309
+ const index3 = _.findIndex(vm.selectedList, function(o) {
310
+ return o.uniqueProp == e;
311
+ });
312
+ existArr.push(vm.selectedList[index3]);
313
+ });
314
+ existArr = _.compact(existArr);
315
+ vm.$set(vm, "selectedList", existArr);
316
+ }, 100);
317
+ const newSelectedList = _.uniqBy(vm.selectedList, function(r) {
318
+ return r.uniqueProp;
319
+ });
320
+
321
+ vm.$set(vm, "selectedList", newSelectedList);
322
+ } else {
323
+ const memberNo = node.uniqueProp;
324
+ let existArr = [];
325
+ if (memberNo) {
326
+ const alsoExist = checked.checkedKeys.some(
327
+ item => item.split("-")[0] === memberNo
328
+ );
329
+ if (!alsoExist) {
330
+ const index = vm.selectedList.indexOf(node);
331
+ vm.selectedList.splice(index, 1);
332
+
333
+ if (node?.children?.length > 0) {
334
+ const iterator = data => {
335
+ data.forEach(item => {
336
+ const index2 = vm.selectedList.indexOf(item);
337
+ vm.selectedList.splice(index2, 1);
338
+
339
+ if (item.children) {
340
+ iterator(item.children);
341
+ }
342
+ });
343
+ };
344
+ iterator(node.children);
345
+ }
346
+ setTimeout(() => {
347
+ checked.checkedKeys.forEach(e => {
348
+ const index3 = _.findIndex(vm.selectedList, function(o) {
349
+ return o.uniqueProp == e;
350
+ });
351
+ existArr.push(vm.selectedList[index3]);
352
+ });
353
+ existArr = _.compact(existArr);
354
+ vm.$set(vm, "selectedList", existArr);
355
+ }, 100);
356
+ }
357
+ } else {
358
+ for (let i = 0; i < node.children.length; i++) {
359
+ this.handleCheckChange(node.children[i], checked, false);
360
+ }
361
+ }
362
+ }
363
+ },
364
+ //
365
+ handleCheckChange1(node, checked, boolCheck, flag) {
366
+ const vm = this;
367
+ const index2 = vm.selectedList.indexOf(node);
368
+
369
+ // vm.selectedList.splice(index2, 1);
370
+ },
371
+ // 对象数组去重(判断memberNo是否相同)
372
+ uniqueList(data) {
373
+ const result = [];
374
+ const _map = {};
375
+ for (let i = 0; i < data.length; i++) {
376
+ if (!_map[data[i].memberNo]) {
377
+ _map[data[i].memberNo] = true;
378
+ result.push(data[i]);
379
+ }
380
+ }
381
+ return result;
382
+ },
383
+ // 生成已选列表,每次节点/全选框状态改变时调用
384
+ generateSelectedList() {
385
+ const result = [];
386
+ const vm = this;
387
+ const iterator = source => {
388
+ source.forEach(item => {
389
+ item.checked && result.push(item);
390
+ if (item.children) {
391
+ iterator(item.children);
392
+ }
393
+ });
394
+ };
395
+ iterator(this.orgData);
396
+ this.selectedList = result;
397
+ },
398
+ // 递归取消所有该员工
399
+ deleteOpt(opt, index) {
400
+ const vm = this;
401
+ const existArr = [];
402
+ vm.selectedList.splice(index, 1);
403
+ const iterator = data => {
404
+ data.forEach(item => {
405
+ if (item.id === opt.id) {
406
+ // if (item.children && item.parentId != 1) {
407
+ // vm.$refs.tree.setChecked(item.parentId, false);
408
+ // }
409
+ vm.$refs.tree.setChecked(item.uniqueProp, false);
410
+ } else if (item?.children?.length) {
411
+ iterator(item.children);
412
+ }
413
+ });
414
+ };
415
+ iterator(vm.orgData);
416
+ if (opt.children) {
417
+ opt.children.forEach(e => {
418
+ vm.$refs.tree.setChecked(e.uniqueProp, false);
419
+ const index2 = vm.selectedList.indexOf(e);
420
+ vm.selectedList.splice(index2, 1);
421
+ });
422
+ }
423
+
424
+ setTimeout(() => {
425
+ vm.keys = vm.$refs.tree.getCheckedKeys();
426
+ vm.keys.forEach(e => {
427
+ const index3 = _.findIndex(vm.selectedList, function(o) {
428
+ return o.uniqueProp == e;
429
+ });
430
+ existArr.push(vm.selectedList[index3]);
431
+ });
432
+ vm.$set(vm, "selectedList", existArr);
433
+ }, 100);
434
+ },
435
+ // 取消
436
+ cancel() {
437
+ this.$emit("close");
438
+ },
439
+ // 确认
440
+ confirm() {
441
+ // if (this.selectedList.length === 0) {
442
+ // this.$message.warning(this.title);
443
+ // return false;
444
+ // }
445
+ const vm = this;
446
+ if (!vm.isMultipleC && vm.selectedList.length > 1) {
447
+ vm.$message({
448
+ message: "该组件已配置为单选,请勾选单条数据",
449
+ type: "warning"
450
+ });
451
+ return;
452
+ }
453
+ if (vm.selectedList.length > 25) {
454
+ const tip = "部门最多选择25个";
455
+ vm.$message.warning(tip);
456
+ return false;
457
+ }
458
+ const resultParams = {
459
+ list: vm.selectedList,
460
+ type: vm.type
461
+ };
462
+ vm.$emit("close");
463
+ vm.$emit("confirm", JSON.stringify(resultParams));
464
+ }
465
+ }
466
+ };
467
+ </script>
468
+ <style lang="scss" scoped>
469
+ /deep/ .el-tree {
470
+ margin-top: 8px;
471
+ height: 280px;
472
+ overflow-y: auto;
473
+ }
474
+ ul,
475
+ li {
476
+ padding: 0;
477
+ margin: 0;
478
+ }
479
+ .main-wrapper {
480
+ display: flex;
481
+ justify-content: space-between;
482
+ }
483
+ .main-block {
484
+ width: 270px;
485
+ }
486
+ .block-card {
487
+ border-radius: 5px;
488
+ padding: 10px;
489
+ box-sizing: border-box;
490
+ border: 1px solid #dcdfe6;
491
+ margin-top: 10px;
492
+ height: 352px;
493
+ }
494
+ .block-card-right {
495
+ overflow: auto;
496
+ }
497
+ #bread_wrap {
498
+ display: flex;
499
+ padding: 0;
500
+ font-size: 14px;
501
+ margin: 0;
502
+ align-items: center;
503
+ padding-bottom: 12px;
504
+ //flex-wrap: wrap;
505
+ }
506
+ .bread-wrapper-inner {
507
+ display: flex;
508
+ align-items: center;
509
+ }
510
+ .bread-item {
511
+ margin-right: 5px;
512
+ white-space: nowrap;
513
+ height: 30px;
514
+ display: flex;
515
+ align-items: center;
516
+ justify-content: center;
517
+ }
518
+ .bread-item span {
519
+ cursor: pointer;
520
+ }
521
+ .bread-item:hover span {
522
+ color: #0286df;
523
+ }
524
+ .bread-item i {
525
+ margin-left: 5px;
526
+ }
527
+ .bread-item:last-child i {
528
+ display: none;
529
+ }
530
+ .prev-menu-btn {
531
+ margin-right: 5px;
532
+ color: #606266;
533
+ }
534
+ .prev-menu-btn:hover {
535
+ color: #0286df;
536
+ }
537
+
538
+ // .select-box{
539
+ // padding-top: 10px;
540
+ // }
541
+ .select-item-wrapper {
542
+ height: 220px;
543
+ overflow: auto;
544
+ }
545
+ .select-item-wrapper.tall {
546
+ height: 295px;
547
+ }
548
+ .opt {
549
+ display: flex;
550
+ align-items: center;
551
+ //height: 30px;
552
+ justify-content: flex-start;
553
+ margin-bottom: 10px;
554
+ cursor: pointer;
555
+ }
556
+ .opt-avatar {
557
+ margin-left: 10px;
558
+ flex-shrink: 0;
559
+ }
560
+ .avatar-inner {
561
+ display: flex;
562
+ align-items: center;
563
+ justify-content: center;
564
+ width: 40px;
565
+ height: 40px;
566
+ background-color: #0286df;
567
+ color: #fff;
568
+ border-radius: 100%;
569
+ }
570
+ .opt-name {
571
+ width: 100%;
572
+ flex-shrink: 1;
573
+ padding-left: 10px;
574
+ }
575
+ .next-level-btn {
576
+ flex-shrink: 0;
577
+ margin: 0;
578
+ padding: 0;
579
+ }
580
+ .el-icon-circle-close {
581
+ cursor: pointer;
582
+ }
583
+ </style>