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,493 +1,493 @@
1
- <template>
2
- <div>
3
- <el-drawer
4
- title="审批节点"
5
- :visible="visible"
6
- direction="rtl"
7
- :wrapperClosable="false"
8
- :show-close="false"
9
- :close-on-press-escape="false"
10
- destroy-on-close
11
- :append-to-body="true"
12
- >
13
- <div class="drawer-wrap">
14
- <!-- 审批人 -->
15
- <div class="approverSelectorItem" v-if="!isCCTask">
16
- <div class="multi-title">审批人</div>
17
- <div class="approverSelectorItemCon rowDirection">
18
- <el-radio-group v-model="approverMode" @change="approverModeChange">
19
- <el-radio :label="1">指定成员</el-radio>
20
- <el-radio :label="2" v-if="queryInfo.type | filterType">主管</el-radio>
21
- </el-radio-group>
22
- <!-- 指定成员 -->
23
- <div v-if="approverMode == 1" class="selector-list">
24
- <el-button type="primary" icon="el-icon-plus" class="list-item-btn" size="mini" @click="showStaffSelector(0)" v-if="approverList.length < 25"></el-button>
25
- <div class="tagList" v-if="approverList.length">
26
- <template v-for="(tag, index) in approverList">
27
- <el-tag class="list-item list-item-opt" :key="index" closable type="info" @close="removeItem('approverList', index)" size="medium">
28
- {{tag.name || tag.userName}}
29
- </el-tag>
30
- </template>
31
- <span class="clear-btn list-item" @click="clear('approverList')">清空</span>
32
- </div>
33
- </div>
34
- </div>
35
- </div>
36
-
37
- <!-- 主管 -->
38
- <div class="approverSelectorItem layoutRowItem" v-if="approverMode == 2">
39
- <div class="multi-title">发起人:</div>
40
- <div class="approverSelectorItemCon">
41
- <el-select @change="(val)=>changeEvent(val, options)" v-model="valueKey" placeholder="请选择">
42
- <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"/>
43
- </el-select>
44
- </div>
45
- </div>
46
-
47
- <!-- 多人审批时采用的审批方式 -->
48
- <div v-if="![4].includes(approverMode) && !isCCTask" class="approverSelectorItem">
49
- <div class="multi-title">多人审批时采用的审批方式</div>
50
- <div class="approverSelectorItemCon">
51
- <el-radio-group v-model="approverType" @change="examineModeChange">
52
- <el-radio label="3">依次审批</el-radio>
53
- <el-radio label="1">会签(须所有审批人同意)</el-radio>
54
- <el-radio label="2">或签(一名审批人同意或拒绝即可)</el-radio>
55
- <!-- <el-radio :label="2">主管</el-radio> -->
56
- </el-radio-group>
57
- </div>
58
- </div>
59
-
60
- <!-- 审批人为空时 -->
61
- <div v-if="approverMode == 2" class="approverSelectorItem">
62
- <div class="multi-title">审批人为空时</div>
63
- <div class="approverSelectorItemCon">
64
- <el-radio-group v-model="directorType.authType" @change="noHanderActionChange">
65
- <el-radio label="1">自动通过 </el-radio>
66
- <el-radio label="2">自动转交主管理员</el-radio>
67
- </el-radio-group>
68
- </div>
69
- </div>
70
-
71
- <!-- 抄送人 -->
72
- <div class="approverSelectorItem" v-if="isCCTask">
73
- <div class="multi-title">抄送人</div>
74
- <div class="approverSelectorItemCon rowDirection">
75
- <el-radio-group v-model="isCCTaskType">
76
- <el-radio :label="1">指定成员</el-radio>
77
- </el-radio-group>
78
- <div class="selector-list">
79
- <el-button type="primary" icon="el-icon-plus" class="list-item-btn" size="mini" @click="showStaffSelector(1)" v-if="notifierList.length < 25"></el-button>
80
- <div class="tagList" v-if="notifierList.length">
81
- <el-tag class="list-item list-item-opt" v-for="(tag, index) in notifierList" :key="index" closable type="info" @close="removeItem('notifierList', index)" size="medium">
82
- {{ tag.name || tag.userName }}
83
- </el-tag>
84
- <span class="clear-btn list-item" @click="clear('notifierList')">清空</span>
85
- </div>
86
- </div>
87
- </div>
88
- <!-- <div class="notifier-type-bar" v-if="notifierList.length > 0"><el-checkbox v-model="passCopy">审批通过后抄送</el-checkbox></div> -->
89
- </div>
90
- <!-- 底部 -->
91
- <div class="drawer-footer">
92
- <el-button @click="cancel">取消</el-button>
93
- <el-button @click="submit" type="primary">保存</el-button>
94
- </div>
95
- </div>
96
- </el-drawer>
97
-
98
- <!-- 人员选择弹出 -->
99
- <FlowNodeForm
100
- id="nodeForm"
101
- @close="nodeVisible = false"
102
- :orgVisible="nodeVisible"
103
- :type="memberSelectorType"
104
- @confirm="memberSelectorConfirm"
105
- ref="nodeForm"
106
- />
107
-
108
- </div>
109
- </template>
110
-
111
- <script>
112
- import FlowNodeForm from "./newNodeForm";
113
- import * as api from "../../../api/apiProcess";
114
- export default {
115
- components: {
116
- FlowNodeForm
117
- },
118
- props: {
119
- value: {
120
- type: Boolean,
121
- default: true
122
- },
123
- queryInfo:{
124
- type: Object,
125
- default:()=>{
126
- return {}
127
- }
128
- },
129
- },
130
- data() {
131
- return {
132
- isCCTask: false,
133
- isCCTaskType: 1,
134
-
135
- visible: false,
136
- approverType: "3",
137
- approverMode: 1,
138
- passCopy: true, // 是否审批通过后抄送
139
- nodeVisible: false,
140
- notifierList: [],
141
- // approverList: [{ directorName: "", directorId: "" }],
142
- approverList: [],
143
- directorType: { typeName: "", type: "1", authType: "1" },
144
- director: {},
145
- memberSelectorType: null,
146
- options: [],
147
- optionsList: [
148
- { value: "直接主管", key: 0 },
149
- { value: "第2级主管", key: 1 },
150
- { value: "第3级主管", key: 2 },
151
- { value: "第4级主管", key: 3 },
152
- { value: "第5级主管", key: 4 },
153
- { value: "第6级主管", key: 5 },
154
- { value: "第7级主管", key: 6 },
155
- { value: "第8级主管", key: 7 },
156
- { value: "第9级主管", key: 8 },
157
- { value: "第10级主管", key: 9 }
158
- ],
159
- valueKey: "直接主管",
160
- appList: [{ directorName: "", directorId: "" }]
161
- };
162
- },
163
- watch: {
164
- value(val) {
165
- this.visible = val;
166
- }
167
- },
168
- mounted() {
169
- this.direSxyList();
170
- },
171
- methods: {
172
- // 初始化数据
173
- // @data 填充表单数据
174
- // @type 添加用户类型: 1 为审批; 2为抄送
175
- init(item) {
176
-
177
- const { type, nodeUserList, examineMode, authType, setType, directorLevel } = item
178
- const data = {
179
- approverType: examineMode,
180
- approvers: type == 1 ? nodeUserList : [],
181
- passCopy: true,
182
- notifiers: type == 2 ? nodeUserList : [],
183
- directorType: { typeName: "", type: parseInt(setType), authType: authType }
184
- }
185
-
186
-
187
- this.isCCTask = type == 2 // 是否为抄送人
188
-
189
- this.directorType = data.directorType;
190
- this.directorType.authType = data.directorType && data.directorType.authType ? data.directorType.authType : "1";
191
- this.approverMode = data.directorType && data.directorType.type ? data.directorType.type : "1";
192
-
193
- if (this.directorType && this.directorType.type == "1") {
194
- this.approverList = data.approvers;
195
- }
196
-
197
- // 判断是否为主管
198
- if (this.directorType && this.directorType.type == "2") {
199
- this.options.map(items => {
200
- if (items.key == directorLevel) {
201
- this.valueKey = items.value
202
- }
203
- })
204
- this.approverList[0] = { directorId: directorLevel, directorName: this.valueKey }
205
- }
206
-
207
- this.approverType = data.approverType || "3";
208
- this.notifierList = data.notifiers;
209
-
210
- // this.director = data.director;
211
- this.passCopy = data.passCopy === undefined ? true : data.passCopy;
212
-
213
- // 展示弹出窗口
214
- this.visible = true
215
- },
216
- // 审批人类型设置
217
- approverModeChange(val) {
218
- this.$parent.changeType(val)
219
- },
220
- // 多人审批时采用的审批方式
221
- examineModeChange(val) {
222
- this.$parent.examineModeChange(val)
223
- },
224
- // 审批人为空时
225
- noHanderActionChange(val) {
226
- this.$parent.noHanderActionChange(val)
227
- },
228
- // 发起人为主管时主管级别
229
- changeEvent(val, key) {
230
- // 修改数据
231
- this.approverList = [{ directorName: "", directorId: "" }];
232
- for (let i = 0; i < key.length; i++) {
233
- if (key[i].value == val) {
234
- this.approverList[0].directorName = key[i].value;
235
- this.approverList[0].directorId = key[i].key;
236
- }
237
- }
238
-
239
- // 修改对应节点数据结构
240
- this.$parent.directorLevelChange(this.approverList[0].directorId)
241
- },
242
- // 获取主管等级数据
243
- async direSxyList() {
244
- const res = await api.directorLevelList();
245
- if (res.data.state == "ok") {
246
- this.options = res.data.data;
247
- } else {
248
- this.options = this.optionsList;
249
- }
250
- },
251
- // 展示弹出
252
- showApproverSelector() {
253
- this.visible = !this.visible
254
- },
255
- // 人员选择确认
256
- memberSelectorConfirm(data) {
257
- const result = JSON.parse(data);
258
- if (result.type === 0) {
259
- this.approverList = result.list;
260
- } else {
261
- this.notifierList = result.list;
262
- }
263
- },
264
- showStaffSelector(val) {
265
- this.memberSelectorType = val;
266
- this.nodeVisible = true;
267
- const params = val === 0 ? this.approverList : this.notifierList;
268
- this.$nextTick(() => {
269
- this.$refs.nodeForm.init(params);
270
- });
271
- },
272
- // 移除选项
273
- removeItem(scope, index) {
274
- this[scope].splice(index, 1);
275
- },
276
- // 清空
277
- clear(scope) {
278
- this[scope] = [];
279
- },
280
- // 取消弹出
281
- cancel() {
282
- this.visible = !this.visible
283
- },
284
- // 提交数据
285
- submit() {
286
- this.directorType.type = this.approverMode;
287
- this.directorType.typeName = this.approverMode == 1 ? "指定成员" : "主管";
288
- const ntList = [];
289
- for (let i = 0; i < this.notifierList.length; i++) {
290
- const item = this.notifierList[i];
291
- ntList.push({
292
- id: item.id,
293
- userName: item.name || item.userName,
294
- phone: item.phone,
295
- roleName: item.roleName,
296
- companyId: item.comNo || item.companyId,
297
- userId: item.memberNo
298
- });
299
- }
300
-
301
- // 判断是否为抄送人
302
- if (!this.isCCTask) {
303
- // 1为指定成员,2为主管
304
- if (this.approverMode == 1) {
305
- if (!this.approverList.length) {
306
- this.$message.warning("请配置审批人");
307
- return;
308
- }
309
- const apList = [];
310
- for (let i = 0; i < this.approverList.length; i++) {
311
- const item = this.approverList[i];
312
- if (item.id) {
313
- apList.push({
314
- id: item.id,
315
- userName: item.userName || item.name,
316
- phone: item.phone,
317
- roleName: item.roleName,
318
- companyId: item.comNo || item.companyId,
319
- userId: item.memberNo || item.userId
320
- });
321
- }
322
- }
323
- const json = { approverType: this.approverType, approvers: apList, notifiers: ntList, passCopy: this.passCopy, directorType: this.directorType };
324
- json.directorType.authType = "";
325
- this.$parent.submitApprover(json)
326
- } else {
327
-
328
- this.appList[0].directorName = this.approverList[0] ? this.approverList[0].directorName : "直接主管";
329
- this.appList[0].directorId = this.approverList[0] ? this.approverList[0].directorId : 0;
330
-
331
- const SxyData = { approverType: this.approverType, approvers: this.appList, notifiers: ntList, passCopy: this.passCopy, directorType: this.directorType };
332
- if (SxyData.approvers[0].directorId == undefined) {
333
- SxyData.approvers[0].directorId = 0;
334
- SxyData.approvers[0].directorName = "直接主管";
335
- }
336
- this.$parent.submitApprover(SxyData)
337
- }
338
- } else {
339
- // 抄送人数据
340
- var row = ntList.map(value => {
341
- value.type = "1"
342
- value.memberNo = value.userId
343
- return value
344
- })
345
- var sxyData = { approverType: this.approverType, approvers: this.appList, notifiers: row, passCopy: this.passCopy, directorType: this.directorType };
346
- this.$parent.submitCopyer(sxyData);
347
- }
348
-
349
- }
350
- },
351
- computed: {
352
- // 过滤非主管的审批模块
353
- filterType(type) {
354
- if (this.queryInfo.type == "notice") {
355
- return false
356
- } else if (this.queryInfo.type == "officialDocument") {
357
- return false
358
- } else {
359
- return true
360
- }
361
- }
362
- }
363
- };
364
- </script>
365
- <style scoped style='scss'>
366
- /deep/ .el-drawer__header{
367
- font-size: 16px;
368
- color: #000;
369
- padding-bottom: 10px;
370
- padding-top: 10px;
371
- padding-left: 25px;
372
- }
373
- /deep/ .el-radio-group{
374
- display: flex;
375
- flex-direction: column;
376
- }
377
-
378
- /deep/ .el-radio-group .el-radio{
379
- margin-bottom: 15px;
380
- }
381
-
382
- /deep/ .el-radio-group .el-radio:last-child{
383
- margin-bottom: 0;
384
- }
385
-
386
- /deep/ :focus {
387
- outline: 0;
388
- }
389
- /deep/ .el-drawer {
390
- width: 25% !important;
391
- }
392
- /deep/ .el-drawer__header {
393
- margin-bottom: 0;
394
- }
395
- .approverSelectorItem{}
396
-
397
- .rowDirection /deep/ .el-radio-group{
398
- display: flex;
399
- flex-direction: row;
400
- }
401
-
402
- .rowDirection /deep/ .el-radio-group .el-radio{
403
- margin-bottom: 10px;
404
- }
405
-
406
- .layoutRowItem{
407
- display: flex;
408
- align-items: center;
409
- border-top: 1px solid #eaeaea;
410
- padding: 20px 0 20px 0;
411
- }
412
-
413
- .multi-title {
414
- margin-bottom: 10px;
415
- font-size: 14px;
416
- padding: 15px 25px 0 25px;
417
- border-top: 1px solid #eaeaea;
418
- color: #111;
419
- }
420
-
421
- .layoutRowItem .multi-title{
422
- border: none;
423
- padding: 0 0 0 25px;
424
- margin-bottom: 0;
425
- }
426
-
427
- .layoutRowItem .approverSelectorItemCon{
428
- padding: 0px;
429
- }
430
-
431
- .approverSelectorItemCon{
432
- padding: 5px 25px 18px 25px;
433
- }
434
-
435
- /* 标签 */
436
- .tagList{
437
- display: flex;
438
- flex-direction: row;
439
- flex-wrap: wrap;
440
- margin-top: 15px;
441
- align-items: center;
442
- }
443
-
444
- .tagList /deep/ .el-tag.el-tag--info{
445
- border: #d9ecff;
446
- color: #333;
447
- }
448
-
449
- /* 底部 */
450
- .drawer-footer {
451
- padding: 20px;
452
- box-sizing: border-box;
453
- border-top: 1px solid #f4f4f8;
454
- }
455
-
456
- .drawer-wrap {
457
- overflow-y: auto;
458
- }
459
- .selector-bar {
460
- box-sizing: border-box;
461
- }
462
- .selector-bar.no-padding {
463
- padding: 0 20px 20px;
464
- box-sizing: border-box;
465
- }
466
- .selector-bar.border {
467
- border-top: 1px solid #f4f4f8;
468
- }
469
- .selector-bar__title {
470
- margin-bottom: 10px;
471
- font-size: 14px;
472
- color: #000;
473
- }
474
- .selector-list {
475
- padding: 10px 0 0 0;
476
- box-sizing: border-box;
477
- display: flex;
478
- flex-wrap: wrap;
479
- flex-direction: column;
480
- }
481
- .list-item {
482
- margin-right: 10px;
483
- margin-bottom: 10px;
484
- }
485
- .list-item-btn {
486
- width: 60px;
487
- }
488
- .clear-btn {
489
- cursor: pointer;
490
- font-size: 12px;
491
- color: #409eff;
492
- }
493
- </style>
1
+ <template>
2
+ <div>
3
+ <el-drawer
4
+ title="审批节点"
5
+ :visible="visible"
6
+ direction="rtl"
7
+ :wrapperClosable="false"
8
+ :show-close="false"
9
+ :close-on-press-escape="false"
10
+ destroy-on-close
11
+ :append-to-body="true"
12
+ >
13
+ <div class="drawer-wrap">
14
+ <!-- 审批人 -->
15
+ <div class="approverSelectorItem" v-if="!isCCTask">
16
+ <div class="multi-title">审批人</div>
17
+ <div class="approverSelectorItemCon rowDirection">
18
+ <el-radio-group v-model="approverMode" @change="approverModeChange">
19
+ <el-radio :label="1">指定成员</el-radio>
20
+ <el-radio :label="2" v-if="queryInfo.type | filterType">主管</el-radio>
21
+ </el-radio-group>
22
+ <!-- 指定成员 -->
23
+ <div v-if="approverMode == 1" class="selector-list">
24
+ <el-button type="primary" icon="el-icon-plus" class="list-item-btn" size="mini" @click="showStaffSelector(0)" v-if="approverList.length < 25"></el-button>
25
+ <div class="tagList" v-if="approverList.length">
26
+ <template v-for="(tag, index) in approverList">
27
+ <el-tag class="list-item list-item-opt" :key="index" closable type="info" @close="removeItem('approverList', index)" size="medium">
28
+ {{tag.name || tag.userName}}
29
+ </el-tag>
30
+ </template>
31
+ <span class="clear-btn list-item" @click="clear('approverList')">清空</span>
32
+ </div>
33
+ </div>
34
+ </div>
35
+ </div>
36
+
37
+ <!-- 主管 -->
38
+ <div class="approverSelectorItem layoutRowItem" v-if="approverMode == 2">
39
+ <div class="multi-title">发起人:</div>
40
+ <div class="approverSelectorItemCon">
41
+ <el-select @change="(val)=>changeEvent(val, options)" v-model="valueKey" placeholder="请选择">
42
+ <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"/>
43
+ </el-select>
44
+ </div>
45
+ </div>
46
+
47
+ <!-- 多人审批时采用的审批方式 -->
48
+ <div v-if="![4].includes(approverMode) && !isCCTask" class="approverSelectorItem">
49
+ <div class="multi-title">多人审批时采用的审批方式</div>
50
+ <div class="approverSelectorItemCon">
51
+ <el-radio-group v-model="approverType" @change="examineModeChange">
52
+ <el-radio label="3">依次审批</el-radio>
53
+ <el-radio label="1">会签(须所有审批人同意)</el-radio>
54
+ <el-radio label="2">或签(一名审批人同意或拒绝即可)</el-radio>
55
+ <!-- <el-radio :label="2">主管</el-radio> -->
56
+ </el-radio-group>
57
+ </div>
58
+ </div>
59
+
60
+ <!-- 审批人为空时 -->
61
+ <div v-if="approverMode == 2" class="approverSelectorItem">
62
+ <div class="multi-title">审批人为空时</div>
63
+ <div class="approverSelectorItemCon">
64
+ <el-radio-group v-model="directorType.authType" @change="noHanderActionChange">
65
+ <el-radio label="1">自动通过 </el-radio>
66
+ <el-radio label="2">自动转交主管理员</el-radio>
67
+ </el-radio-group>
68
+ </div>
69
+ </div>
70
+
71
+ <!-- 抄送人 -->
72
+ <div class="approverSelectorItem" v-if="isCCTask">
73
+ <div class="multi-title">抄送人</div>
74
+ <div class="approverSelectorItemCon rowDirection">
75
+ <el-radio-group v-model="isCCTaskType">
76
+ <el-radio :label="1">指定成员</el-radio>
77
+ </el-radio-group>
78
+ <div class="selector-list">
79
+ <el-button type="primary" icon="el-icon-plus" class="list-item-btn" size="mini" @click="showStaffSelector(1)" v-if="notifierList.length < 25"></el-button>
80
+ <div class="tagList" v-if="notifierList.length">
81
+ <el-tag class="list-item list-item-opt" v-for="(tag, index) in notifierList" :key="index" closable type="info" @close="removeItem('notifierList', index)" size="medium">
82
+ {{ tag.name || tag.userName }}
83
+ </el-tag>
84
+ <span class="clear-btn list-item" @click="clear('notifierList')">清空</span>
85
+ </div>
86
+ </div>
87
+ </div>
88
+ <!-- <div class="notifier-type-bar" v-if="notifierList.length > 0"><el-checkbox v-model="passCopy">审批通过后抄送</el-checkbox></div> -->
89
+ </div>
90
+ <!-- 底部 -->
91
+ <div class="drawer-footer">
92
+ <el-button @click="cancel">取消</el-button>
93
+ <el-button @click="submit" type="primary">保存</el-button>
94
+ </div>
95
+ </div>
96
+ </el-drawer>
97
+
98
+ <!-- 人员选择弹出 -->
99
+ <FlowNodeForm
100
+ id="nodeForm"
101
+ @close="nodeVisible = false"
102
+ :orgVisible="nodeVisible"
103
+ :type="memberSelectorType"
104
+ @confirm="memberSelectorConfirm"
105
+ ref="nodeForm"
106
+ />
107
+
108
+ </div>
109
+ </template>
110
+
111
+ <script>
112
+ import FlowNodeForm from "./newNodeForm";
113
+ import * as api from "../../../api/apiProcess";
114
+ export default {
115
+ components: {
116
+ FlowNodeForm
117
+ },
118
+ props: {
119
+ value: {
120
+ type: Boolean,
121
+ default: true
122
+ },
123
+ queryInfo:{
124
+ type: Object,
125
+ default:()=>{
126
+ return {}
127
+ }
128
+ },
129
+ },
130
+ data() {
131
+ return {
132
+ isCCTask: false,
133
+ isCCTaskType: 1,
134
+
135
+ visible: false,
136
+ approverType: "3",
137
+ approverMode: 1,
138
+ passCopy: true, // 是否审批通过后抄送
139
+ nodeVisible: false,
140
+ notifierList: [],
141
+ // approverList: [{ directorName: "", directorId: "" }],
142
+ approverList: [],
143
+ directorType: { typeName: "", type: "1", authType: "1" },
144
+ director: {},
145
+ memberSelectorType: null,
146
+ options: [],
147
+ optionsList: [
148
+ { value: "直接主管", key: 0 },
149
+ { value: "第2级主管", key: 1 },
150
+ { value: "第3级主管", key: 2 },
151
+ { value: "第4级主管", key: 3 },
152
+ { value: "第5级主管", key: 4 },
153
+ { value: "第6级主管", key: 5 },
154
+ { value: "第7级主管", key: 6 },
155
+ { value: "第8级主管", key: 7 },
156
+ { value: "第9级主管", key: 8 },
157
+ { value: "第10级主管", key: 9 }
158
+ ],
159
+ valueKey: "直接主管",
160
+ appList: [{ directorName: "", directorId: "" }]
161
+ };
162
+ },
163
+ watch: {
164
+ value(val) {
165
+ this.visible = val;
166
+ }
167
+ },
168
+ mounted() {
169
+ this.direSxyList();
170
+ },
171
+ methods: {
172
+ // 初始化数据
173
+ // @data 填充表单数据
174
+ // @type 添加用户类型: 1 为审批; 2为抄送
175
+ init(item) {
176
+
177
+ const { type, nodeUserList, examineMode, authType, setType, directorLevel } = item
178
+ const data = {
179
+ approverType: examineMode,
180
+ approvers: type == 1 ? nodeUserList : [],
181
+ passCopy: true,
182
+ notifiers: type == 2 ? nodeUserList : [],
183
+ directorType: { typeName: "", type: parseInt(setType), authType: authType }
184
+ }
185
+
186
+
187
+ this.isCCTask = type == 2 // 是否为抄送人
188
+
189
+ this.directorType = data.directorType;
190
+ this.directorType.authType = data.directorType && data.directorType.authType ? data.directorType.authType : "1";
191
+ this.approverMode = data.directorType && data.directorType.type ? data.directorType.type : "1";
192
+
193
+ if (this.directorType && this.directorType.type == "1") {
194
+ this.approverList = data.approvers;
195
+ }
196
+
197
+ // 判断是否为主管
198
+ if (this.directorType && this.directorType.type == "2") {
199
+ this.options.map(items => {
200
+ if (items.key == directorLevel) {
201
+ this.valueKey = items.value
202
+ }
203
+ })
204
+ this.approverList[0] = { directorId: directorLevel, directorName: this.valueKey }
205
+ }
206
+
207
+ this.approverType = data.approverType || "3";
208
+ this.notifierList = data.notifiers;
209
+
210
+ // this.director = data.director;
211
+ this.passCopy = data.passCopy === undefined ? true : data.passCopy;
212
+
213
+ // 展示弹出窗口
214
+ this.visible = true
215
+ },
216
+ // 审批人类型设置
217
+ approverModeChange(val) {
218
+ this.$parent.changeType(val)
219
+ },
220
+ // 多人审批时采用的审批方式
221
+ examineModeChange(val) {
222
+ this.$parent.examineModeChange(val)
223
+ },
224
+ // 审批人为空时
225
+ noHanderActionChange(val) {
226
+ this.$parent.noHanderActionChange(val)
227
+ },
228
+ // 发起人为主管时主管级别
229
+ changeEvent(val, key) {
230
+ // 修改数据
231
+ this.approverList = [{ directorName: "", directorId: "" }];
232
+ for (let i = 0; i < key.length; i++) {
233
+ if (key[i].value == val) {
234
+ this.approverList[0].directorName = key[i].value;
235
+ this.approverList[0].directorId = key[i].key;
236
+ }
237
+ }
238
+
239
+ // 修改对应节点数据结构
240
+ this.$parent.directorLevelChange(this.approverList[0].directorId)
241
+ },
242
+ // 获取主管等级数据
243
+ async direSxyList() {
244
+ const res = await api.directorLevelList();
245
+ if (res.data.state == "ok") {
246
+ this.options = res.data.data;
247
+ } else {
248
+ this.options = this.optionsList;
249
+ }
250
+ },
251
+ // 展示弹出
252
+ showApproverSelector() {
253
+ this.visible = !this.visible
254
+ },
255
+ // 人员选择确认
256
+ memberSelectorConfirm(data) {
257
+ const result = JSON.parse(data);
258
+ if (result.type === 0) {
259
+ this.approverList = result.list;
260
+ } else {
261
+ this.notifierList = result.list;
262
+ }
263
+ },
264
+ showStaffSelector(val) {
265
+ this.memberSelectorType = val;
266
+ this.nodeVisible = true;
267
+ const params = val === 0 ? this.approverList : this.notifierList;
268
+ this.$nextTick(() => {
269
+ this.$refs.nodeForm.init(params);
270
+ });
271
+ },
272
+ // 移除选项
273
+ removeItem(scope, index) {
274
+ this[scope].splice(index, 1);
275
+ },
276
+ // 清空
277
+ clear(scope) {
278
+ this[scope] = [];
279
+ },
280
+ // 取消弹出
281
+ cancel() {
282
+ this.visible = !this.visible
283
+ },
284
+ // 提交数据
285
+ submit() {
286
+ this.directorType.type = this.approverMode;
287
+ this.directorType.typeName = this.approverMode == 1 ? "指定成员" : "主管";
288
+ const ntList = [];
289
+ for (let i = 0; i < this.notifierList.length; i++) {
290
+ const item = this.notifierList[i];
291
+ ntList.push({
292
+ id: item.id,
293
+ userName: item.name || item.userName,
294
+ phone: item.phone,
295
+ roleName: item.roleName,
296
+ companyId: item.comNo || item.companyId,
297
+ userId: item.memberNo
298
+ });
299
+ }
300
+
301
+ // 判断是否为抄送人
302
+ if (!this.isCCTask) {
303
+ // 1为指定成员,2为主管
304
+ if (this.approverMode == 1) {
305
+ if (!this.approverList.length) {
306
+ this.$message.warning("请配置审批人");
307
+ return;
308
+ }
309
+ const apList = [];
310
+ for (let i = 0; i < this.approverList.length; i++) {
311
+ const item = this.approverList[i];
312
+ if (item.id) {
313
+ apList.push({
314
+ id: item.id,
315
+ userName: item.userName || item.name,
316
+ phone: item.phone,
317
+ roleName: item.roleName,
318
+ companyId: item.comNo || item.companyId,
319
+ userId: item.memberNo || item.userId
320
+ });
321
+ }
322
+ }
323
+ const json = { approverType: this.approverType, approvers: apList, notifiers: ntList, passCopy: this.passCopy, directorType: this.directorType };
324
+ json.directorType.authType = "";
325
+ this.$parent.submitApprover(json)
326
+ } else {
327
+
328
+ this.appList[0].directorName = this.approverList[0] ? this.approverList[0].directorName : "直接主管";
329
+ this.appList[0].directorId = this.approverList[0] ? this.approverList[0].directorId : 0;
330
+
331
+ const SxyData = { approverType: this.approverType, approvers: this.appList, notifiers: ntList, passCopy: this.passCopy, directorType: this.directorType };
332
+ if (SxyData.approvers[0].directorId == undefined) {
333
+ SxyData.approvers[0].directorId = 0;
334
+ SxyData.approvers[0].directorName = "直接主管";
335
+ }
336
+ this.$parent.submitApprover(SxyData)
337
+ }
338
+ } else {
339
+ // 抄送人数据
340
+ var row = ntList.map(value => {
341
+ value.type = "1"
342
+ value.memberNo = value.userId
343
+ return value
344
+ })
345
+ var sxyData = { approverType: this.approverType, approvers: this.appList, notifiers: row, passCopy: this.passCopy, directorType: this.directorType };
346
+ this.$parent.submitCopyer(sxyData);
347
+ }
348
+
349
+ }
350
+ },
351
+ computed: {
352
+ // 过滤非主管的审批模块
353
+ filterType(type) {
354
+ if (this.queryInfo.type == "notice") {
355
+ return false
356
+ } else if (this.queryInfo.type == "officialDocument") {
357
+ return false
358
+ } else {
359
+ return true
360
+ }
361
+ }
362
+ }
363
+ };
364
+ </script>
365
+ <style scoped style='scss'>
366
+ /deep/ .el-drawer__header{
367
+ font-size: 16px;
368
+ color: #000;
369
+ padding-bottom: 10px;
370
+ padding-top: 10px;
371
+ padding-left: 25px;
372
+ }
373
+ /deep/ .el-radio-group{
374
+ display: flex;
375
+ flex-direction: column;
376
+ }
377
+
378
+ /deep/ .el-radio-group .el-radio{
379
+ margin-bottom: 15px;
380
+ }
381
+
382
+ /deep/ .el-radio-group .el-radio:last-child{
383
+ margin-bottom: 0;
384
+ }
385
+
386
+ /deep/ :focus {
387
+ outline: 0;
388
+ }
389
+ /deep/ .el-drawer {
390
+ width: 25% !important;
391
+ }
392
+ /deep/ .el-drawer__header {
393
+ margin-bottom: 0;
394
+ }
395
+ .approverSelectorItem{}
396
+
397
+ .rowDirection /deep/ .el-radio-group{
398
+ display: flex;
399
+ flex-direction: row;
400
+ }
401
+
402
+ .rowDirection /deep/ .el-radio-group .el-radio{
403
+ margin-bottom: 10px;
404
+ }
405
+
406
+ .layoutRowItem{
407
+ display: flex;
408
+ align-items: center;
409
+ border-top: 1px solid #eaeaea;
410
+ padding: 20px 0 20px 0;
411
+ }
412
+
413
+ .multi-title {
414
+ margin-bottom: 10px;
415
+ font-size: 14px;
416
+ padding: 15px 25px 0 25px;
417
+ border-top: 1px solid #eaeaea;
418
+ color: #111;
419
+ }
420
+
421
+ .layoutRowItem .multi-title{
422
+ border: none;
423
+ padding: 0 0 0 25px;
424
+ margin-bottom: 0;
425
+ }
426
+
427
+ .layoutRowItem .approverSelectorItemCon{
428
+ padding: 0px;
429
+ }
430
+
431
+ .approverSelectorItemCon{
432
+ padding: 5px 25px 18px 25px;
433
+ }
434
+
435
+ /* 标签 */
436
+ .tagList{
437
+ display: flex;
438
+ flex-direction: row;
439
+ flex-wrap: wrap;
440
+ margin-top: 15px;
441
+ align-items: center;
442
+ }
443
+
444
+ .tagList /deep/ .el-tag.el-tag--info{
445
+ border: #d9ecff;
446
+ color: #333;
447
+ }
448
+
449
+ /* 底部 */
450
+ .drawer-footer {
451
+ padding: 20px;
452
+ box-sizing: border-box;
453
+ border-top: 1px solid #f4f4f8;
454
+ }
455
+
456
+ .drawer-wrap {
457
+ overflow-y: auto;
458
+ }
459
+ .selector-bar {
460
+ box-sizing: border-box;
461
+ }
462
+ .selector-bar.no-padding {
463
+ padding: 0 20px 20px;
464
+ box-sizing: border-box;
465
+ }
466
+ .selector-bar.border {
467
+ border-top: 1px solid #f4f4f8;
468
+ }
469
+ .selector-bar__title {
470
+ margin-bottom: 10px;
471
+ font-size: 14px;
472
+ color: #000;
473
+ }
474
+ .selector-list {
475
+ padding: 10px 0 0 0;
476
+ box-sizing: border-box;
477
+ display: flex;
478
+ flex-wrap: wrap;
479
+ flex-direction: column;
480
+ }
481
+ .list-item {
482
+ margin-right: 10px;
483
+ margin-bottom: 10px;
484
+ }
485
+ .list-item-btn {
486
+ width: 60px;
487
+ }
488
+ .clear-btn {
489
+ cursor: pointer;
490
+ font-size: 12px;
491
+ color: #409eff;
492
+ }
493
+ </style>