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,603 +1,603 @@
1
-
2
- <template>
3
- <el-drawer
4
- :visible="nodeConditionModal"
5
- direction="rtl"
6
- :wrapperClosable="false"
7
- :show-close="false"
8
- :close-on-press-escape="false"
9
- destroy-on-close
10
- :append-to-body="true"
11
- class="nodeConditionModal"
12
- >
13
- <div class="wrapper" @click.stop="">
14
-
15
- <!-- 标题 -->
16
- <div class="title">
17
- <div v-if="isEdit">
18
- <span>{{ title }}</span>
19
- <!-- <i class="el-icon-edit" @click.stop="isEdit = false"></i> -->
20
- </div>
21
- <!-- <div v-else>
22
- <el-input v-model="conName" autofocus placeholder="请输入内容" @blur="changeName"></el-input>
23
- </div> -->
24
- </div>
25
-
26
- <div class="content">
27
- <!-- 表单 -->
28
- <el-form class="form-box" ref="form" :model="form" label-width="80px">
29
- <div v-for="(item, index) in formConfig" :key="index">
30
- <template v-if="item.ele == 'checkbox'">
31
- <el-form-item :label="item.name + ': '">
32
- <el-checkbox-group v-if="item.variable == 'applyCompany'" v-model="form[item.variable].value" @change="(val) => handlerChange(val, item)">
33
- <el-checkbox :label="items.id" v-for="(items, indexs) in item.data" :key="indexs">{{ items.name }}</el-checkbox>
34
- </el-checkbox-group>
35
- <el-checkbox-group v-else v-model="form[item.variable].value" @change="(val) => handlerChange(val, item)">
36
- <el-checkbox :label="items.no+''" v-for="(items, indexs) in item.data" :key="indexs">{{ items.name }}</el-checkbox>
37
- </el-checkbox-group>
38
- </el-form-item>
39
- </template>
40
-
41
- <template v-if="item.ele == 'input'">
42
- <el-form-item :label="item.name + ': '" :rules="{ validator: validatePass, trigger: 'change', message: '不能小于0' }" :prop="item.variable">
43
- <el-row :gutter="4">
44
- <el-col :span="11">
45
- <el-select v-model="form[item.variable].opt" placeholder="请选择">
46
- <el-option v-for="item in optOption" :key="item.value" :label="item.labal" :value="item.value"/>
47
- </el-select>
48
- </el-col>
49
- <el-col :span="11">
50
- <el-input v-model="form[item.variable].value"></el-input>
51
- </el-col>
52
- </el-row>
53
- </el-form-item>
54
- </template>
55
-
56
- <template v-if="item.ele == 'sponsor'">
57
- <el-form-item :label="item.name + ': '">
58
- <div>
59
- <template v-if="form[item.variable].sponsors && form[item.variable].sponsors.length > 0">
60
- <div class="selector" @click="showSelector = true">
61
- <el-tag v-for="tag in form[item.variable].sponsors" :key="tag.userId" @close="removeTag(item.variable, tag)" closable>
62
- {{ tag.userName }}
63
- </el-tag>
64
- </div>
65
- </template>
66
- <template v-else>
67
- <el-input placeholder="请选择具体人员" @focus="showSelector = true"></el-input>
68
- </template>
69
- </div>
70
- </el-form-item>
71
- </template>
72
-
73
- <template v-if="item.ele == 'spoSxy'">
74
- <el-form-item :label="item.name + ': '">
75
- <div>
76
- <template v-if=" form[item.variable].sponsors && form[item.variable].sponsors.length > 0">
77
- <div class="selector" @click="showSxyL(item.variable)">
78
- <el-tag v-for="tag in form[item.variable].sponsors" :key="tag[item.variable]" @close="removeTag(item.variable, tag)" closable>
79
- {{ tag.userName }}
80
- </el-tag>
81
- </div>
82
- </template>
83
- <template v-else>
84
- <el-input placeholder="请选择人员" @focus="showSxyL(item.variable)"></el-input>
85
- </template>
86
- </div>
87
- </el-form-item>
88
- </template>
89
-
90
- <template v-if="item.ele == 'radio'">
91
- <el-form-item :label="item.name + ': '">
92
- <div>
93
- <el-radio-group v-model="form[item.variable].value">
94
- <template v-for="(rad, ind) in item.data">
95
- <el-radio :label="rad.value" :key="ind">{{rad.name}}</el-radio>
96
- </template>
97
- </el-radio-group>
98
- </div>
99
- </el-form-item>
100
- </template>
101
-
102
- </div>
103
- </el-form>
104
-
105
- <!-- 添加条件 -->
106
- <el-form class="userHandle">
107
- <el-form-item>
108
- <el-button type="primary" @click.stop="addCondition" size="medium">添加条件</el-button>
109
- <span class="mar_l20">还有 {{ able }} 个可用条件</span>
110
- </el-form-item>
111
- </el-form>
112
- </div>
113
-
114
- <!-- 操作按钮 -->
115
- <div class="btn-group">
116
- <el-button @click.stop="nodeConditionHandler">取消</el-button>
117
- <el-button type="primary" @click.stop="save">保存</el-button>
118
- </div>
119
-
120
- <!-- 弹出选择条件 -->
121
- <el-dialog title="选择条件" :visible.sync="isShow" width="30%" :modal="false" :before-close="handleClose" class="conditionSelect">
122
- <span>请选择用来区分审批流程的条件字段</span>
123
- <el-checkbox-group v-model="condition" class="mar_t20">
124
- <el-checkbox :label="items.variable" v-for="(items, indexs) in configList" :key="indexs">{{ items.name }}</el-checkbox>
125
- </el-checkbox-group>
126
- <span slot="footer" class="dialog-footer">
127
- <el-button @click.stop="cancel">取 消</el-button>
128
- <el-button type="primary" @click.stop="determine">确 定</el-button>
129
- </span>
130
- </el-dialog>
131
-
132
- <MemberSelection
133
- v-if="showSelector"
134
- title="选择发起人"
135
- :directClose="false"
136
- @close="showSelector = false"
137
- :formData="selectData"
138
- :memberNo="memberNo"
139
- @save="checkMenber"
140
- />
141
-
142
- <MemberSelection
143
- v-if="showSxytor"
144
- title="选择申请人"
145
- :directClose="false"
146
- @close="showSxytor = false"
147
- :formData="selSxytData"
148
- :memberNo="memSxyrNo"
149
- @save="checkSxyber"
150
- />
151
-
152
- </div>
153
- </el-drawer>
154
- </template>
155
-
156
- <script>
157
- import * as config from "./conditionConfig";
158
- import MemberSelection from "../../../components/public/MemberSelection.vue";
159
- import _ from "lodash-es";
160
- export default {
161
- name: "",
162
- mixins: [],
163
- extends: {},
164
- components: {
165
- MemberSelection
166
- },
167
- props: {
168
- formData: {
169
- type: Object,
170
- default: () => {
171
- return {};
172
- }
173
- },
174
- title: {
175
- type: String,
176
- default: ""
177
- },
178
- queryInfo: {
179
- type: Object,
180
- default: () => {
181
- return JSON.parse(localStorage.getItem("queryInfo"))
182
- }
183
- }
184
- },
185
- data() {
186
- return {
187
- SxyData: "",
188
- form: {},
189
- optOption: [
190
- { labal: "大于等于", value: ">=" },
191
- { labal: "大于", value: ">" },
192
- { labal: "小于等于", value: "<=" },
193
- { labal: "小于", value: "<" }
194
- ],
195
- formConfig: [],
196
- isShow: false,
197
- configList: [],
198
- condition: [],
199
- oldCOndition: [],
200
- isEdit: true,
201
- conName: "",
202
- applyType: "",
203
- showSelector: false,
204
- showSxytor: false,
205
- selectData: {
206
- roleList: [],
207
- userList: []
208
- },
209
- selSxytData: {
210
- roleList: [],
211
- userList: []
212
- },
213
- memberNo: [],
214
- memSxyrNo: [],
215
-
216
- nodeConditionModal: false // 抽屉窗口是否展示
217
- };
218
- },
219
- watch: {
220
- showSelector: {
221
- deep: true,
222
- handler: function(val) {
223
- }
224
- },
225
- formData: {
226
- immediate: true,
227
- deep: true,
228
- handler: function(newVal, oldVal) {
229
- const keys = Object.keys(newVal);
230
- if (keys.length > 0) {
231
- const arr = [];
232
- const conArr = [];
233
- this.configList.forEach((item, index) => {
234
- if (keys.indexOf(item.variable) > -1) {
235
- arr.push(item);
236
- conArr.push(item.variable);
237
- }
238
- });
239
- if (keys.indexOf("userId") > -1) {
240
- this.selectData.userList = newVal.userId.sponsors;
241
- this.memberNo = newVal.userId.sponsors.map(i => i.userId);
242
- } else {
243
- this.selectData.userList = [];
244
- this.memberNo = [];
245
- }
246
-
247
- if (keys.indexOf("proposer") > -1) {
248
- this.selSxytData.userList = newVal.proposer.sponsors;
249
- this.memSxyrNo = newVal.proposer.sponsors.map(i => i.userId);
250
- } else {
251
- this.selSxytData.userList = [];
252
- this.memSxyrNo = [];
253
- }
254
- this.formConfig = arr;
255
- this.form = newVal;
256
-
257
- if (keys[0] == "documentType") {
258
- newVal.documentType.value.map((value, index) => {
259
- newVal.documentType.value[index] = Number(newVal.documentType.value[index])
260
- })
261
- }
262
- this.condition = conArr;
263
- } else {
264
- this.formConfig = [];
265
- this.form = {};
266
- this.condition = [];
267
- this.selectData.userList = [];
268
- this.selSxytData.userList = [];
269
- this.memberNo = [];
270
- this.memSxyrNo = [];
271
- }
272
- }
273
- },
274
- title: {
275
- immediate: true,
276
- handler: function(newVal, oldVal) {
277
- this.conName = newVal;
278
- }
279
- }
280
- },
281
- computed: {
282
- able() {
283
- return this.configList.length - this.condition.length;
284
- }
285
- },
286
- methods: {
287
- showSxyL(data) {
288
- this.SxyData = data;
289
- this.showSxytor = true;
290
- },
291
- // 弹出抽屉控制
292
- nodeConditionHandler() {
293
- this.nodeConditionModal = !this.nodeConditionModal
294
- },
295
- removeTag(key, item) {
296
- this.form[key].sponsors = this.form[key].sponsors.filter(i => i.userName != item.userName && i.userId != item.userId);
297
- this.memberNo = this.form[key].sponsors.map(i => i.userId);
298
- this.selectData.userList = this.form[key].value;
299
- },
300
- validatePass(rule, value, callback) {
301
- if (parseFloat(value.value) != "" && parseFloat(value.value) >= 0) {
302
- callback();
303
- } else {
304
- callback("不能小于0");
305
- }
306
- },
307
- save() {
308
- this.$refs.form.validate(valid => {
309
- if (valid) {
310
- const desc = [];
311
- for (const name in this.form) {
312
- const flg = this.form[name].value == "" || this.form[name].value == [] || this.form[name].opt == "";
313
- if (flg && name != "userId" && this.form[name].ele != "spoSxy") {
314
- this.$message.error("条件数据不能为空");
315
- return;
316
- }
317
- if ((this.form[name].ele == "spoSxy" || name == "userId") && this.form[name].sponsors.length < 1) {
318
- this.$message.error("条件数据不能为空");
319
- return;
320
- }
321
- if (this.form[name].ele == "radio" || this.form[name].ele == "checkbox") {
322
- const data = this.configList.filter(i => i.variable == name)[0].data;
323
- let descArr;
324
- if (data && Array.isArray(this.form[name].value)) {
325
- if (this.form[name].name == "申请单位") {
326
- descArr = [];
327
- this.form[name].value.forEach(item => {
328
- data.forEach(j => {
329
- if (item == j.id) {
330
- descArr.push(j.name)
331
- }
332
- })
333
- })
334
- } else {
335
- descArr = this.form[name].value.map(item => data.filter(j => j.no == item)[0].name)
336
- }
337
- } else if (data && !Array.isArray(this.form[name].value)) {
338
- const satff = data.filter(j => j.value == this.form[name].value)[0].name;
339
- descArr = [satff];
340
- }
341
- desc.push(this.form[name].name + "属于:" + descArr.join("或"));
342
- } else if (this.form[name].ele == "spoSxy" || name == "userId") {
343
- const descArr = this.form[name].sponsors.map(item => item.userName);
344
- desc.push(this.form[name].name + "属于:" + descArr.join("或"));
345
- } else {
346
- desc.push(`${this.form[name].name} ${this.form[name].opt} ${this.form[name].value}`);
347
- }
348
- }
349
- // 保存数据
350
- this.$parent.submitCondition({ form: this.form, desc: desc, SxyData: this.SxyData })
351
- }
352
- });
353
- },
354
- changeName() {
355
- if (this.conName) {
356
- this.$emit("edit", this.conName);
357
- } else {
358
- this.conName = this.title;
359
- }
360
- this.isEdit = true;
361
- },
362
- handleClose() {
363
- this.isShow = false;
364
- },
365
- addCondition() {
366
- this.oldCondition = this.condition;
367
- this.isShow = true;
368
- },
369
- cancel() {
370
- this.condition = this.oldCondition;
371
- this.isShow = false;
372
- },
373
-
374
- // 添加条件确认按钮
375
- determine() {
376
- const arr = [];
377
- const _this = this;
378
- const formData = _.cloneDeep(_this.form);
379
- _this.configList.forEach((item, index) => {
380
- if (_this.condition.indexOf(item.variable) > -1) {
381
- arr.push(item);
382
- if (formData[item.variable] == undefined) {
383
- const opt = item.ele == "input" ? "" : "=";
384
- let value = item.ele == "input" ? "" : [];
385
- if (item.ele == "radio") {
386
- value = item.data && item.data.length > 0 ? item.data[0].value : "0";
387
- }
388
- formData[item.variable] = {
389
- opt: opt,
390
- value: value,
391
- dateType: "String",
392
- name: item.name,
393
- sponsors: [],
394
- ele: item.ele
395
- };
396
- }
397
- } else {
398
- if (formData[item.variable] !== undefined) {
399
- delete formData[item.variable];
400
- }
401
- }
402
- if (item.ele == "radio" && (!item.data || item.data.length == 0)) {
403
- _this.$set(item, "data", [
404
- { value: "1", name: "是" },
405
- { value: "0", name: "否" }
406
- ]);
407
- }
408
- });
409
- this.form = formData;
410
- this.formConfig = arr;
411
- this.isShow = false;
412
- },
413
-
414
- // 设置条件
415
- async setConfig() {
416
- this.applyType = this.queryInfo.type;
417
- var configDefault = {
418
- ele: "sponsor",
419
- name: "发起人",
420
- variable: "userId"
421
- };
422
-
423
- this.configList = config[this.applyType] ? await config[this.applyType](this) : [];
424
-
425
- if (this.queryInfo.type == "sealApproval" || this.queryInfo.name == "用章申请" || this.queryInfo.name == "用车申请" || this.queryInfo.type == "carApproval") {
426
- configDefault = {};
427
- } else {
428
- this.configList.unshift(configDefault);
429
- }
430
- },
431
- handlerChange(val, item) {
432
- if (item.changeFuc != undefined) {
433
- item.changeFuc(val, this);
434
- }
435
- },
436
- checkMenber(data) {
437
- const sponsor = [];
438
- const memberNo = [];
439
- data.userList.forEach((item, index) => {
440
- sponsor.push({
441
- userId: item.memberNo,
442
- companyId: item.comNo,
443
- userName: item.name,
444
- roleName: item.roleName
445
- });
446
- memberNo.push(item.memberNo);
447
- });
448
- this.memberNo = memberNo;
449
-
450
- this.form.userId.sponsors = sponsor;
451
- this.form = Object.assign({}, this.form);
452
- this.$set(this.selectData, "userList", data.userList);
453
- this.showSelector = false;
454
- },
455
- checkSxyber(data) {
456
- const sponsor = [];
457
- const memberNo = [];
458
- data.userList.forEach((item, index) => {
459
- sponsor.push({
460
- userId: item.memberNo,
461
- companyId: item.comNo,
462
- userName: item.name,
463
- roleName: item.roleName
464
- });
465
- memberNo.push(item.memberNo);
466
- });
467
- this.memSxyrNo = memberNo;
468
- this.form[this.SxyData].sponsors = sponsor;
469
- this.form = Object.assign({}, this.form);
470
- this.showSxytor = false;
471
- }
472
- },
473
- created() {
474
- this.setConfig();
475
- },
476
- mounted() {}
477
- };
478
- </script>
479
- <style lang="scss" scoped>
480
- .nodeConditionModal /deep/.content {
481
- overflow-y: scroll;
482
- overflow-x: initial;
483
- }
484
- /deep/ .el-drawer__header{
485
- display: none;
486
- }
487
- /deep/ .el-radio-group{
488
- display: flex;
489
- flex-direction: column;
490
- }
491
-
492
- /deep/ .el-radio-group .el-radio{
493
- margin-bottom: 15px;
494
- }
495
-
496
- /deep/ .el-radio-group .el-radio:last-child{
497
- margin-bottom: 0;
498
- }
499
-
500
- /deep/ :focus {
501
- outline: 0;
502
- }
503
- /deep/ .el-drawer {
504
- width: 25% !important;
505
- }
506
-
507
- /deep/ .el-form-item{
508
- margin-bottom: 10px;
509
- }
510
- /deep/ .is-error{
511
- margin-bottom: 20px;
512
- }
513
- /deep/ .el-form-item__label{
514
- text-align: left;
515
- }
516
-
517
- .content{
518
- height: calc(80vh);
519
- overflow-y: scroll;
520
- }
521
-
522
- .conditionSelect /deep/ .el-dialog__header{
523
- padding: 15px 20px;
524
- border-bottom: 1px solid #eaeaea;
525
-
526
- }
527
-
528
- .conditionSelect /deep/ .el-dialog__header .el-dialog__title{
529
- font-size: 16px;
530
- }
531
-
532
- .conditionSelect /deep/ .el-dialog__footer{
533
- padding: 15px 20px;
534
- border-top: 1px solid #eaeaea;
535
- }
536
-
537
- .userHandle{
538
- padding: 0 25px;
539
- }
540
-
541
- .wrapper-mask {
542
- background-color: rgba(0, 0, 0, 0.4);
543
- cursor: pointer;
544
- z-index: 1999;
545
- }
546
-
547
- .wrapper {
548
- width: 100%;
549
- .title {
550
- padding-left: 25px;
551
- height: 60px;
552
- border-bottom: 1px solid #dfe4ea;
553
- display: flex;
554
- align-items: center;
555
- margin-bottom: 20px;
556
- font-size: 16px;
557
- .el-icon-edit {
558
- cursor: pointer;
559
- margin-left: 10px;
560
- }
561
- }
562
- .form-box {
563
- padding: 0 25px 0 25px;
564
- // width: 100%;
565
- }
566
- .btn-group {
567
- position: absolute;
568
- bottom: 0;
569
- left: 0;
570
- right: 0;
571
- text-align: left;
572
- border-top: 1px solid #eaeaea;
573
- padding: 15px 0 15px 25px;
574
- background-color: #fff;
575
- z-index: 10000;
576
- }
577
- }
578
- .mar_t20 {
579
- margin-top: 20px;
580
- }
581
- .mar_l20 {
582
- margin-left: 20px;
583
- }
584
- .selector {
585
- padding: 0 4px;
586
- border: 1px solid #d9d9d9;
587
- line-height: 30px;
588
- border-radius: 4px;
589
- &:hover {
590
- border: 1px solid #1890ff;
591
- }
592
- }
593
- /deep/ .selector .el-tag {
594
- height: 22px;
595
- line-height: 20px;
596
- padding: 0 0 0 8px;
597
- font-size: 14px;
598
- margin-right: 4px;
599
- }
600
- /deep/ .selector .el-tag .el-icon-close {
601
- right: 2px;
602
- }
603
- </style>
1
+
2
+ <template>
3
+ <el-drawer
4
+ :visible="nodeConditionModal"
5
+ direction="rtl"
6
+ :wrapperClosable="false"
7
+ :show-close="false"
8
+ :close-on-press-escape="false"
9
+ destroy-on-close
10
+ :append-to-body="true"
11
+ class="nodeConditionModal"
12
+ >
13
+ <div class="wrapper" @click.stop="">
14
+
15
+ <!-- 标题 -->
16
+ <div class="title">
17
+ <div v-if="isEdit">
18
+ <span>{{ title }}</span>
19
+ <!-- <i class="el-icon-edit" @click.stop="isEdit = false"></i> -->
20
+ </div>
21
+ <!-- <div v-else>
22
+ <el-input v-model="conName" autofocus placeholder="请输入内容" @blur="changeName"></el-input>
23
+ </div> -->
24
+ </div>
25
+
26
+ <div class="content">
27
+ <!-- 表单 -->
28
+ <el-form class="form-box" ref="form" :model="form" label-width="80px">
29
+ <div v-for="(item, index) in formConfig" :key="index">
30
+ <template v-if="item.ele == 'checkbox'">
31
+ <el-form-item :label="item.name + ': '">
32
+ <el-checkbox-group v-if="item.variable == 'applyCompany'" v-model="form[item.variable].value" @change="(val) => handlerChange(val, item)">
33
+ <el-checkbox :label="items.id" v-for="(items, indexs) in item.data" :key="indexs">{{ items.name }}</el-checkbox>
34
+ </el-checkbox-group>
35
+ <el-checkbox-group v-else v-model="form[item.variable].value" @change="(val) => handlerChange(val, item)">
36
+ <el-checkbox :label="items.no+''" v-for="(items, indexs) in item.data" :key="indexs">{{ items.name }}</el-checkbox>
37
+ </el-checkbox-group>
38
+ </el-form-item>
39
+ </template>
40
+
41
+ <template v-if="item.ele == 'input'">
42
+ <el-form-item :label="item.name + ': '" :rules="{ validator: validatePass, trigger: 'change', message: '不能小于0' }" :prop="item.variable">
43
+ <el-row :gutter="4">
44
+ <el-col :span="11">
45
+ <el-select v-model="form[item.variable].opt" placeholder="请选择">
46
+ <el-option v-for="item in optOption" :key="item.value" :label="item.labal" :value="item.value"/>
47
+ </el-select>
48
+ </el-col>
49
+ <el-col :span="11">
50
+ <el-input v-model="form[item.variable].value"></el-input>
51
+ </el-col>
52
+ </el-row>
53
+ </el-form-item>
54
+ </template>
55
+
56
+ <template v-if="item.ele == 'sponsor'">
57
+ <el-form-item :label="item.name + ': '">
58
+ <div>
59
+ <template v-if="form[item.variable].sponsors && form[item.variable].sponsors.length > 0">
60
+ <div class="selector" @click="showSelector = true">
61
+ <el-tag v-for="tag in form[item.variable].sponsors" :key="tag.userId" @close="removeTag(item.variable, tag)" closable>
62
+ {{ tag.userName }}
63
+ </el-tag>
64
+ </div>
65
+ </template>
66
+ <template v-else>
67
+ <el-input placeholder="请选择具体人员" @focus="showSelector = true"></el-input>
68
+ </template>
69
+ </div>
70
+ </el-form-item>
71
+ </template>
72
+
73
+ <template v-if="item.ele == 'spoSxy'">
74
+ <el-form-item :label="item.name + ': '">
75
+ <div>
76
+ <template v-if=" form[item.variable].sponsors && form[item.variable].sponsors.length > 0">
77
+ <div class="selector" @click="showSxyL(item.variable)">
78
+ <el-tag v-for="tag in form[item.variable].sponsors" :key="tag[item.variable]" @close="removeTag(item.variable, tag)" closable>
79
+ {{ tag.userName }}
80
+ </el-tag>
81
+ </div>
82
+ </template>
83
+ <template v-else>
84
+ <el-input placeholder="请选择人员" @focus="showSxyL(item.variable)"></el-input>
85
+ </template>
86
+ </div>
87
+ </el-form-item>
88
+ </template>
89
+
90
+ <template v-if="item.ele == 'radio'">
91
+ <el-form-item :label="item.name + ': '">
92
+ <div>
93
+ <el-radio-group v-model="form[item.variable].value">
94
+ <template v-for="(rad, ind) in item.data">
95
+ <el-radio :label="rad.value" :key="ind">{{rad.name}}</el-radio>
96
+ </template>
97
+ </el-radio-group>
98
+ </div>
99
+ </el-form-item>
100
+ </template>
101
+
102
+ </div>
103
+ </el-form>
104
+
105
+ <!-- 添加条件 -->
106
+ <el-form class="userHandle">
107
+ <el-form-item>
108
+ <el-button type="primary" @click.stop="addCondition" size="medium">添加条件</el-button>
109
+ <span class="mar_l20">还有 {{ able }} 个可用条件</span>
110
+ </el-form-item>
111
+ </el-form>
112
+ </div>
113
+
114
+ <!-- 操作按钮 -->
115
+ <div class="btn-group">
116
+ <el-button @click.stop="nodeConditionHandler">取消</el-button>
117
+ <el-button type="primary" @click.stop="save">保存</el-button>
118
+ </div>
119
+
120
+ <!-- 弹出选择条件 -->
121
+ <el-dialog title="选择条件" :visible.sync="isShow" width="30%" :modal="false" :before-close="handleClose" class="conditionSelect">
122
+ <span>请选择用来区分审批流程的条件字段</span>
123
+ <el-checkbox-group v-model="condition" class="mar_t20">
124
+ <el-checkbox :label="items.variable" v-for="(items, indexs) in configList" :key="indexs">{{ items.name }}</el-checkbox>
125
+ </el-checkbox-group>
126
+ <span slot="footer" class="dialog-footer">
127
+ <el-button @click.stop="cancel">取 消</el-button>
128
+ <el-button type="primary" @click.stop="determine">确 定</el-button>
129
+ </span>
130
+ </el-dialog>
131
+
132
+ <MemberSelection
133
+ v-if="showSelector"
134
+ title="选择发起人"
135
+ :directClose="false"
136
+ @close="showSelector = false"
137
+ :formData="selectData"
138
+ :memberNo="memberNo"
139
+ @save="checkMenber"
140
+ />
141
+
142
+ <MemberSelection
143
+ v-if="showSxytor"
144
+ title="选择申请人"
145
+ :directClose="false"
146
+ @close="showSxytor = false"
147
+ :formData="selSxytData"
148
+ :memberNo="memSxyrNo"
149
+ @save="checkSxyber"
150
+ />
151
+
152
+ </div>
153
+ </el-drawer>
154
+ </template>
155
+
156
+ <script>
157
+ import * as config from "./conditionConfig";
158
+ import MemberSelection from "../../../components/public/MemberSelection.vue";
159
+ import _ from "lodash-es";
160
+ export default {
161
+ name: "",
162
+ mixins: [],
163
+ extends: {},
164
+ components: {
165
+ MemberSelection
166
+ },
167
+ props: {
168
+ formData: {
169
+ type: Object,
170
+ default: () => {
171
+ return {};
172
+ }
173
+ },
174
+ title: {
175
+ type: String,
176
+ default: ""
177
+ },
178
+ queryInfo: {
179
+ type: Object,
180
+ default: () => {
181
+ return JSON.parse(localStorage.getItem("queryInfo"))
182
+ }
183
+ }
184
+ },
185
+ data() {
186
+ return {
187
+ SxyData: "",
188
+ form: {},
189
+ optOption: [
190
+ { labal: "大于等于", value: ">=" },
191
+ { labal: "大于", value: ">" },
192
+ { labal: "小于等于", value: "<=" },
193
+ { labal: "小于", value: "<" }
194
+ ],
195
+ formConfig: [],
196
+ isShow: false,
197
+ configList: [],
198
+ condition: [],
199
+ oldCOndition: [],
200
+ isEdit: true,
201
+ conName: "",
202
+ applyType: "",
203
+ showSelector: false,
204
+ showSxytor: false,
205
+ selectData: {
206
+ roleList: [],
207
+ userList: []
208
+ },
209
+ selSxytData: {
210
+ roleList: [],
211
+ userList: []
212
+ },
213
+ memberNo: [],
214
+ memSxyrNo: [],
215
+
216
+ nodeConditionModal: false // 抽屉窗口是否展示
217
+ };
218
+ },
219
+ watch: {
220
+ showSelector: {
221
+ deep: true,
222
+ handler: function(val) {
223
+ }
224
+ },
225
+ formData: {
226
+ immediate: true,
227
+ deep: true,
228
+ handler: function(newVal, oldVal) {
229
+ const keys = Object.keys(newVal);
230
+ if (keys.length > 0) {
231
+ const arr = [];
232
+ const conArr = [];
233
+ this.configList.forEach((item, index) => {
234
+ if (keys.indexOf(item.variable) > -1) {
235
+ arr.push(item);
236
+ conArr.push(item.variable);
237
+ }
238
+ });
239
+ if (keys.indexOf("userId") > -1) {
240
+ this.selectData.userList = newVal.userId.sponsors;
241
+ this.memberNo = newVal.userId.sponsors.map(i => i.userId);
242
+ } else {
243
+ this.selectData.userList = [];
244
+ this.memberNo = [];
245
+ }
246
+
247
+ if (keys.indexOf("proposer") > -1) {
248
+ this.selSxytData.userList = newVal.proposer.sponsors;
249
+ this.memSxyrNo = newVal.proposer.sponsors.map(i => i.userId);
250
+ } else {
251
+ this.selSxytData.userList = [];
252
+ this.memSxyrNo = [];
253
+ }
254
+ this.formConfig = arr;
255
+ this.form = newVal;
256
+
257
+ if (keys[0] == "documentType") {
258
+ newVal.documentType.value.map((value, index) => {
259
+ newVal.documentType.value[index] = Number(newVal.documentType.value[index])
260
+ })
261
+ }
262
+ this.condition = conArr;
263
+ } else {
264
+ this.formConfig = [];
265
+ this.form = {};
266
+ this.condition = [];
267
+ this.selectData.userList = [];
268
+ this.selSxytData.userList = [];
269
+ this.memberNo = [];
270
+ this.memSxyrNo = [];
271
+ }
272
+ }
273
+ },
274
+ title: {
275
+ immediate: true,
276
+ handler: function(newVal, oldVal) {
277
+ this.conName = newVal;
278
+ }
279
+ }
280
+ },
281
+ computed: {
282
+ able() {
283
+ return this.configList.length - this.condition.length;
284
+ }
285
+ },
286
+ methods: {
287
+ showSxyL(data) {
288
+ this.SxyData = data;
289
+ this.showSxytor = true;
290
+ },
291
+ // 弹出抽屉控制
292
+ nodeConditionHandler() {
293
+ this.nodeConditionModal = !this.nodeConditionModal
294
+ },
295
+ removeTag(key, item) {
296
+ this.form[key].sponsors = this.form[key].sponsors.filter(i => i.userName != item.userName && i.userId != item.userId);
297
+ this.memberNo = this.form[key].sponsors.map(i => i.userId);
298
+ this.selectData.userList = this.form[key].value;
299
+ },
300
+ validatePass(rule, value, callback) {
301
+ if (parseFloat(value.value) != "" && parseFloat(value.value) >= 0) {
302
+ callback();
303
+ } else {
304
+ callback("不能小于0");
305
+ }
306
+ },
307
+ save() {
308
+ this.$refs.form.validate(valid => {
309
+ if (valid) {
310
+ const desc = [];
311
+ for (const name in this.form) {
312
+ const flg = this.form[name].value == "" || this.form[name].value == [] || this.form[name].opt == "";
313
+ if (flg && name != "userId" && this.form[name].ele != "spoSxy") {
314
+ this.$message.error("条件数据不能为空");
315
+ return;
316
+ }
317
+ if ((this.form[name].ele == "spoSxy" || name == "userId") && this.form[name].sponsors.length < 1) {
318
+ this.$message.error("条件数据不能为空");
319
+ return;
320
+ }
321
+ if (this.form[name].ele == "radio" || this.form[name].ele == "checkbox") {
322
+ const data = this.configList.filter(i => i.variable == name)[0].data;
323
+ let descArr;
324
+ if (data && Array.isArray(this.form[name].value)) {
325
+ if (this.form[name].name == "申请单位") {
326
+ descArr = [];
327
+ this.form[name].value.forEach(item => {
328
+ data.forEach(j => {
329
+ if (item == j.id) {
330
+ descArr.push(j.name)
331
+ }
332
+ })
333
+ })
334
+ } else {
335
+ descArr = this.form[name].value.map(item => data.filter(j => j.no == item)[0].name)
336
+ }
337
+ } else if (data && !Array.isArray(this.form[name].value)) {
338
+ const satff = data.filter(j => j.value == this.form[name].value)[0].name;
339
+ descArr = [satff];
340
+ }
341
+ desc.push(this.form[name].name + "属于:" + descArr.join("或"));
342
+ } else if (this.form[name].ele == "spoSxy" || name == "userId") {
343
+ const descArr = this.form[name].sponsors.map(item => item.userName);
344
+ desc.push(this.form[name].name + "属于:" + descArr.join("或"));
345
+ } else {
346
+ desc.push(`${this.form[name].name} ${this.form[name].opt} ${this.form[name].value}`);
347
+ }
348
+ }
349
+ // 保存数据
350
+ this.$parent.submitCondition({ form: this.form, desc: desc, SxyData: this.SxyData })
351
+ }
352
+ });
353
+ },
354
+ changeName() {
355
+ if (this.conName) {
356
+ this.$emit("edit", this.conName);
357
+ } else {
358
+ this.conName = this.title;
359
+ }
360
+ this.isEdit = true;
361
+ },
362
+ handleClose() {
363
+ this.isShow = false;
364
+ },
365
+ addCondition() {
366
+ this.oldCondition = this.condition;
367
+ this.isShow = true;
368
+ },
369
+ cancel() {
370
+ this.condition = this.oldCondition;
371
+ this.isShow = false;
372
+ },
373
+
374
+ // 添加条件确认按钮
375
+ determine() {
376
+ const arr = [];
377
+ const _this = this;
378
+ const formData = _.cloneDeep(_this.form);
379
+ _this.configList.forEach((item, index) => {
380
+ if (_this.condition.indexOf(item.variable) > -1) {
381
+ arr.push(item);
382
+ if (formData[item.variable] == undefined) {
383
+ const opt = item.ele == "input" ? "" : "=";
384
+ let value = item.ele == "input" ? "" : [];
385
+ if (item.ele == "radio") {
386
+ value = item.data && item.data.length > 0 ? item.data[0].value : "0";
387
+ }
388
+ formData[item.variable] = {
389
+ opt: opt,
390
+ value: value,
391
+ dateType: "String",
392
+ name: item.name,
393
+ sponsors: [],
394
+ ele: item.ele
395
+ };
396
+ }
397
+ } else {
398
+ if (formData[item.variable] !== undefined) {
399
+ delete formData[item.variable];
400
+ }
401
+ }
402
+ if (item.ele == "radio" && (!item.data || item.data.length == 0)) {
403
+ _this.$set(item, "data", [
404
+ { value: "1", name: "是" },
405
+ { value: "0", name: "否" }
406
+ ]);
407
+ }
408
+ });
409
+ this.form = formData;
410
+ this.formConfig = arr;
411
+ this.isShow = false;
412
+ },
413
+
414
+ // 设置条件
415
+ async setConfig() {
416
+ this.applyType = this.queryInfo.type;
417
+ var configDefault = {
418
+ ele: "sponsor",
419
+ name: "发起人",
420
+ variable: "userId"
421
+ };
422
+
423
+ this.configList = config[this.applyType] ? await config[this.applyType](this) : [];
424
+
425
+ if (this.queryInfo.type == "sealApproval" || this.queryInfo.name == "用章申请" || this.queryInfo.name == "用车申请" || this.queryInfo.type == "carApproval") {
426
+ configDefault = {};
427
+ } else {
428
+ this.configList.unshift(configDefault);
429
+ }
430
+ },
431
+ handlerChange(val, item) {
432
+ if (item.changeFuc != undefined) {
433
+ item.changeFuc(val, this);
434
+ }
435
+ },
436
+ checkMenber(data) {
437
+ const sponsor = [];
438
+ const memberNo = [];
439
+ data.userList.forEach((item, index) => {
440
+ sponsor.push({
441
+ userId: item.memberNo,
442
+ companyId: item.comNo,
443
+ userName: item.name,
444
+ roleName: item.roleName
445
+ });
446
+ memberNo.push(item.memberNo);
447
+ });
448
+ this.memberNo = memberNo;
449
+
450
+ this.form.userId.sponsors = sponsor;
451
+ this.form = Object.assign({}, this.form);
452
+ this.$set(this.selectData, "userList", data.userList);
453
+ this.showSelector = false;
454
+ },
455
+ checkSxyber(data) {
456
+ const sponsor = [];
457
+ const memberNo = [];
458
+ data.userList.forEach((item, index) => {
459
+ sponsor.push({
460
+ userId: item.memberNo,
461
+ companyId: item.comNo,
462
+ userName: item.name,
463
+ roleName: item.roleName
464
+ });
465
+ memberNo.push(item.memberNo);
466
+ });
467
+ this.memSxyrNo = memberNo;
468
+ this.form[this.SxyData].sponsors = sponsor;
469
+ this.form = Object.assign({}, this.form);
470
+ this.showSxytor = false;
471
+ }
472
+ },
473
+ created() {
474
+ this.setConfig();
475
+ },
476
+ mounted() {}
477
+ };
478
+ </script>
479
+ <style lang="scss" scoped>
480
+ .nodeConditionModal /deep/.content {
481
+ overflow-y: scroll;
482
+ overflow-x: initial;
483
+ }
484
+ /deep/ .el-drawer__header{
485
+ display: none;
486
+ }
487
+ /deep/ .el-radio-group{
488
+ display: flex;
489
+ flex-direction: column;
490
+ }
491
+
492
+ /deep/ .el-radio-group .el-radio{
493
+ margin-bottom: 15px;
494
+ }
495
+
496
+ /deep/ .el-radio-group .el-radio:last-child{
497
+ margin-bottom: 0;
498
+ }
499
+
500
+ /deep/ :focus {
501
+ outline: 0;
502
+ }
503
+ /deep/ .el-drawer {
504
+ width: 25% !important;
505
+ }
506
+
507
+ /deep/ .el-form-item{
508
+ margin-bottom: 10px;
509
+ }
510
+ /deep/ .is-error{
511
+ margin-bottom: 20px;
512
+ }
513
+ /deep/ .el-form-item__label{
514
+ text-align: left;
515
+ }
516
+
517
+ .content{
518
+ height: calc(80vh);
519
+ overflow-y: scroll;
520
+ }
521
+
522
+ .conditionSelect /deep/ .el-dialog__header{
523
+ padding: 15px 20px;
524
+ border-bottom: 1px solid #eaeaea;
525
+
526
+ }
527
+
528
+ .conditionSelect /deep/ .el-dialog__header .el-dialog__title{
529
+ font-size: 16px;
530
+ }
531
+
532
+ .conditionSelect /deep/ .el-dialog__footer{
533
+ padding: 15px 20px;
534
+ border-top: 1px solid #eaeaea;
535
+ }
536
+
537
+ .userHandle{
538
+ padding: 0 25px;
539
+ }
540
+
541
+ .wrapper-mask {
542
+ background-color: rgba(0, 0, 0, 0.4);
543
+ cursor: pointer;
544
+ z-index: 1999;
545
+ }
546
+
547
+ .wrapper {
548
+ width: 100%;
549
+ .title {
550
+ padding-left: 25px;
551
+ height: 60px;
552
+ border-bottom: 1px solid #dfe4ea;
553
+ display: flex;
554
+ align-items: center;
555
+ margin-bottom: 20px;
556
+ font-size: 16px;
557
+ .el-icon-edit {
558
+ cursor: pointer;
559
+ margin-left: 10px;
560
+ }
561
+ }
562
+ .form-box {
563
+ padding: 0 25px 0 25px;
564
+ // width: 100%;
565
+ }
566
+ .btn-group {
567
+ position: absolute;
568
+ bottom: 0;
569
+ left: 0;
570
+ right: 0;
571
+ text-align: left;
572
+ border-top: 1px solid #eaeaea;
573
+ padding: 15px 0 15px 25px;
574
+ background-color: #fff;
575
+ z-index: 10000;
576
+ }
577
+ }
578
+ .mar_t20 {
579
+ margin-top: 20px;
580
+ }
581
+ .mar_l20 {
582
+ margin-left: 20px;
583
+ }
584
+ .selector {
585
+ padding: 0 4px;
586
+ border: 1px solid #d9d9d9;
587
+ line-height: 30px;
588
+ border-radius: 4px;
589
+ &:hover {
590
+ border: 1px solid #1890ff;
591
+ }
592
+ }
593
+ /deep/ .selector .el-tag {
594
+ height: 22px;
595
+ line-height: 20px;
596
+ padding: 0 0 0 8px;
597
+ font-size: 14px;
598
+ margin-right: 4px;
599
+ }
600
+ /deep/ .selector .el-tag .el-icon-close {
601
+ right: 2px;
602
+ }
603
+ </style>