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,1001 +1,1001 @@
1
- <!--
2
- * @Descripttion: 未描述
3
- * @version: 1.0.0
4
- * @Author: Chendajiang
5
- * @Date: 2019-08-09 11:22:34
6
- * @LastEditors: Yxj
7
- * @LastEditTime: 2020-10-09 19:36:39
8
- -->
9
-
10
- <template>
11
- <div class="login-box-right" v-loading="loginloading">
12
- <div class="QRcodeTab">
13
- <img
14
- v-if="logType==1"
15
- @click="logTab(1)"
16
- style="width:58px;height:58px;"
17
- src="./image/qrcode.png"
18
- alt
19
- />
20
- <img
21
- v-if="logType==2"
22
- @click="logTab(2)"
23
- style="width:58px;height:58px;"
24
- src="./image/diannao.png"
25
- alt
26
- />
27
- </div>
28
- <div class="toast" v-if="logType==1">
29
- <section>
30
- <img src="./image/anquan.png" alt />
31
- <span>扫码登录更安全</span>
32
- </section>
33
- </div>
34
- <div class="qrLog" v-show="logType==2">
35
- <div class="tc-20"></div>
36
- <div class="tc-15"></div>
37
- <div class="titleText">
38
- <span>手机扫码</span>
39
- <span>安全登录</span>
40
- </div>
41
- <div class="tc-20"></div>
42
- <div class="tc-11"></div>
43
- <div class="QRCodeBox">
44
- <canvas id="QRCode"></canvas>
45
- <div v-show="shade" class="QRCodechenge">
46
- <p>请重新刷新二维码</p>
47
- <el-button type="primary" @click="getQRCode()">点击刷新</el-button>
48
- </div>
49
- <div v-show="successShade" class="QRCodechenge successShade">
50
- <img src="./image/icon_success.png" alt />
51
- <p>登录成功</p>
52
- </div>
53
- </div>
54
- <div class="textBox">
55
- <div class="left">
56
- <img src="./image/sys.png" />
57
- </div>
58
- <div class="right">
59
- <p>
60
- 打开
61
- <span>企管帮APP</span>
62
- </p>
63
- <p>扫一扫</p>
64
- </div>
65
- </div>
66
- <footer class="footer">
67
- <div @click="logTab(2)">密码登录</div>
68
- <div @click="$router.push({path:'/sign'})">用户注册</div>
69
- </footer>
70
- </div>
71
- <div class="pasLog" v-show="logType==1">
72
- <div class="tc-20"></div>
73
- <div class="tc-20"></div>
74
- <div class="login-box-right-tab">
75
- <div :class="{'login-box-right-tab-click':tabClick == 1}" @click="clickTabClick(1)">账号登录</div>
76
- <div :class="{'login-box-right-tab-click':tabClick == 2}" @click="clickTabClick(2)">短信登录</div>
77
- </div>
78
- <div class="tc-40"></div>
79
- <div v-show="tabClick == 1">
80
- <el-form ref="form1" :model="form1" :rules="rules1">
81
- <el-form-item prop="username">
82
- <div class="login-tel login-input">
83
- <div class="bg-img"></div>
84
- <div class="bg-line"></div>
85
- <el-input
86
- autocomplete="off"
87
- v-model="form1.username"
88
- placeholder="请输入手机号码"
89
- @input="changeTel(1)"
90
- ></el-input>
91
- </div>
92
- </el-form-item>
93
- <el-form-item prop="password">
94
- <div class="login-password login-input">
95
- <div class="bg-img"></div>
96
- <div class="bg-line"></div>
97
- <div class="bg-eye" @click="showEye = !showEye">
98
- <img v-if="showEye" src="@/assets/login/close-eye.png" alt />
99
- <img v-if="!showEye" src="@/assets/login/eye.png" alt />
100
- </div>
101
- <input type="text" style="display: none;" />
102
- <el-input
103
- autocomplete="new-password"
104
- ref="password"
105
- v-if="showEye"
106
- :type="type"
107
- @focus="onFocus"
108
- onpaste="return false"
109
- oncontextmenu="return false"
110
- oncopy="return false"
111
- oncut="return false"
112
- oninput="if(value.length>20)value=value.slice(0,20)"
113
- v-model="form1.password"
114
- placeholder="请输入密码"
115
- ></el-input>
116
- <el-input
117
- v-if="!showEye"
118
- autocomplete="new-password"
119
- type="text"
120
- onpaste="return false"
121
- oncontextmenu="return false"
122
- oncopy="return false"
123
- oncut="return false"
124
- oninput="if(value.length>20)value=value.slice(0,20)"
125
- v-model="form1.password"
126
- placeholder="请输入密码"
127
- ></el-input>
128
- </div>
129
- </el-form-item>
130
- </el-form>
131
- </div>
132
- <div v-show="tabClick == 2">
133
- <el-form ref="form2" :model="form2" :rules="rules2">
134
- <el-form-item prop="username">
135
- <div class="login-tel login-input">
136
- <div class="bg-img"></div>
137
- <div class="bg-line"></div>
138
- <el-input
139
- autocomplete="off"
140
- v-model="form2.username"
141
- placeholder="请输入手机号码"
142
- @input="changeTel(2)"
143
- ></el-input>
144
- </div>
145
- </el-form-item>
146
- <el-form-item prop="short">
147
- <div class="login-short-box">
148
- <div class="login-password login-input">
149
- <div class="bg-img"></div>
150
- <div class="bg-line"></div>
151
- <el-input
152
- type="text"
153
- oninput="if(value.length>4)value=value.slice(0,4)"
154
- v-model="form2.short"
155
- placeholder="请输入验证码"
156
- ></el-input>
157
- </div>
158
- <div>
159
- <Button6 v-if="ifGetCode && codeFont == '获取验证码'" @click="getSMSLoginCode">获取验证码</Button6>
160
- <Button6 v-if="!(ifGetCode && codeFont == '获取验证码')" :disabled="true">{{codeFont}}</Button6>
161
- </div>
162
- </div>
163
- </el-form-item>
164
- </el-form>
165
- </div>
166
- <div class="tc-40"></div>
167
- <div class="login-button">
168
- <!-- <el-button type="primary" @click="login">登录</el-button> -->
169
- <Button6 @click="login">登录</Button6>
170
- </div>
171
- <div class="tc-10"></div>
172
- <div class="login-font font14">
173
- <div @click="$router.push({path:'/sign'})">用户注册</div>
174
- <div @click="$router.push({path:'/passfind'})">忘记密码?</div>
175
- </div>
176
- <div class="tc-20"></div>
177
- <div class="tc-30"></div>
178
- <div class="tc-10"></div>
179
- </div>
180
- </div>
181
- </template>
182
- <script>
183
- import apiUser from "@/api/apiUser";
184
- import apiAuth from "@/api/apiAuth";
185
- import { isvalidPhone } from "@/components/form/validate";
186
- import apiMaterials from "@/api/apiMaterials/apiMaterials";
187
- import axios from "axios";
188
- import sessionStorage from "@/storage/sessionStorage.js";
189
- import cookie from "@/storage/cookies";
190
- import localStorage from "@/storage/localStorage";
191
- import { apiHome } from "@/api/apiHome";
192
- import qs from "qs";
193
- import QRCode from "qrcode";
194
-
195
- export default {
196
- name: "FormLogin",
197
- mixins: [],
198
- extends: {},
199
- props: {},
200
- data() {
201
- return {
202
- successShade: false,
203
- timeId: null,
204
- time: 0,
205
- shade: false,
206
- QRCodeMsg: "生成二维码信息",
207
- logType: 1,
208
- loginloading: false,
209
- codeFont: "获取验证码",
210
- codeNum: 60,
211
- ifGetCode: false,
212
- tabClick: 1,
213
- type: "text",
214
- showEye: true,
215
- showCode: false,
216
- form1: {
217
- username: "", // 17609321099
218
- password: "", // 000qwer
219
- code: "0000",
220
- grant_type: "password",
221
- randomStr: "",
222
- remember_me: false,
223
- short: ""
224
- },
225
- form2: {
226
- username: "",
227
- short: ""
228
- },
229
- img: `${process.env.VUE_APP_APIUSER}/code/`,
230
- rules1: {
231
- username: {
232
- required: true,
233
- validator: this.validPhone,
234
- trigger: "blur"
235
- },
236
- password: [{ required: true, message: "密码不能为空", trigger: "blur" }]
237
- },
238
- rules2: {
239
- username: {
240
- required: true,
241
- validator: this.validPhone,
242
- trigger: "blur"
243
- },
244
- short: [{ required: true, validator: this.validShort, trigger: "blur" }]
245
- }
246
- };
247
- },
248
- computed: {},
249
- components: {},
250
- filter: {},
251
- watch: {
252
- QRCodeMsg(val) {
253
- // 获取页面的canvas
254
- const msg = document.getElementById("QRCode");
255
- // 将获取到的数据(val)画到msg(canvas)上
256
- QRCode.toCanvas(msg, val, { width: 225, height: 225 }, function(error) {
257
- console.log(error);
258
- });
259
- },
260
- tabClick(newVal, oldVal) {
261
- if (newVal == 1) {
262
- // this.$refs.form2.resetFields()
263
- this.form1.username = this.form2.username;
264
- // if (this.form2.username.length == 11) {
265
- // if (!isvalidPhone(this.form2.username)) {
266
- // this.ifGetCode = false
267
- // } else {
268
- // this.ifGetCode = true
269
- // }
270
- // }
271
- } else {
272
- // this.$refs.form1.resetFields()
273
- this.form2.username = this.form1.username;
274
- if (this.form2.username.length == 11) {
275
- if (!isvalidPhone(this.form2.username)) {
276
- this.ifGetCode = false;
277
- } else {
278
- this.ifGetCode = true;
279
- }
280
- }
281
- }
282
- }
283
- },
284
- methods: {
285
- async generateUUID() {
286
- const res = await apiUser.createQrCode();
287
- if (res.data.code == 200) {
288
- this.uuid = res.data.data.key;
289
- this.QRCodeMsg = res.data.data.content;
290
- }
291
- },
292
- async isLogin(uuid) {
293
- const res = await apiUser.queryQRCode({ uuid });
294
- if (res.data.code == 200) {
295
- if (res.data.data.resourceToken != "") {
296
- this.successShade = true;
297
- window.clearTimeout(this.timeId);
298
- cookie.cookieSet("token", res.data.data.resourceToken);
299
- this.$router.push({ path: "/" });
300
- }
301
- }
302
- },
303
- getQRCode() {
304
- const that = this;
305
- that.shade = false;
306
- that.time = 0;
307
- that.generateUUID();
308
- if (that.logType == 1) return;
309
- that.timeId = setInterval(() => {
310
- that.time++;
311
- that.isLogin(that.uuid);
312
- if (that.time == 60) {
313
- that.shade = true;
314
- window.clearTimeout(that.timeId);
315
- }
316
- }, 1000);
317
- },
318
- logTab(type) {
319
- const that = this;
320
- if (type == 1) {
321
- that.logType = 2;
322
- this.getQRCode();
323
- } else {
324
- window.clearTimeout(that.timeId);
325
- this.logType = 1;
326
- }
327
- },
328
- clickTabClick(num) {
329
- this.tabClick = num;
330
- // // console.log(num)
331
- // if (num == 2) {
332
- // this.changeTel(2)
333
- // }
334
- },
335
- setTime() {
336
- this.codeFont = --this.codeNum + "s";
337
- const setInter = setInterval(
338
- function() {
339
- this.codeFont = --this.codeNum + "s";
340
- if (this.codeNum == 0) {
341
- this.codeFont = "获取验证码";
342
- this.codeNum = 60;
343
- clearInterval(setInter);
344
- }
345
- }.bind(this),
346
- 1000
347
- );
348
- },
349
- changeTel(type) {
350
- // console.log(this.form2.username)
351
- // ifGetCode 是否可以点击获取验证码
352
- // console.log(type)
353
- if (type == 1) {
354
- if (this.form1.username.length > 11) {
355
- this.form1.username = this.form1.username.slice(0, 11);
356
- }
357
- // this.form2.username = this.form1.username
358
-
359
- return;
360
- }
361
-
362
- if (this.form2.username.length > 11) {
363
- this.form2.username = this.form2.username.slice(0, 11);
364
- }
365
- // this.form1.username = this.form2.username
366
-
367
- if (this.form2.username.length == 11) {
368
- if (!isvalidPhone(this.form2.username)) {
369
- this.ifGetCode = false;
370
- // callback(new Error('请输入正确的手机号'))
371
- } else {
372
- this.ifGetCode = true;
373
- // callback()
374
- }
375
- // this.ifGetCode = true
376
- return;
377
- }
378
- this.ifGetCode = false;
379
- },
380
-
381
- async getSMSLoginCode() {
382
- this.setTime();
383
- const data = {
384
- uname: this.form2.username,
385
- type: 2,
386
- channel: 2
387
- };
388
- const res = await apiAuth.getSMSLoginCode(data);
389
-
390
- if (res.data.code == 0) {
391
- this.$_toast({ msg: "发送成功" });
392
- return;
393
- }
394
- if (res.data.code == 500) {
395
- this.$_toast({ msg: res.data.msg, type: "error" });
396
- return;
397
- }
398
- this.$_toast({ msg: res.data.msg, type: "error" });
399
- // this.$_toast
400
- // let res = await apiHome.getSMSLoginCode(data)
401
- // console.log(res.data.data)
402
- // /authentication/mobile?mobile=18699155392&smsCode=7825
403
- },
404
- async shortLogin() {
405
- const that = this;
406
- this.$refs["form2"].validate(async valid => {
407
- if (valid) {
408
- this.clickEnter(false);
409
- this.loginloading = true;
410
- const form = qs.stringify({
411
- username: this.form2.username,
412
- password: this.form2.short,
413
- grant_type: "sms"
414
- });
415
- axios
416
- .request({
417
- method: "post",
418
- data: form,
419
- headers: {
420
- Authorization:
421
- "Basic MTE3NTI3Njk0NDMyNjAwNDczNjo2M2NkMzYwM2Q5YTc0ZTNiYmI4ZDhiOGE5NmQ3MWVlZA=="
422
- },
423
- url: `${process.env.VUE_APP_API}${process.env.VUE_APP_AUTHURLTYPE}/oauth/token`
424
- })
425
- .then(async res => {
426
- const data = res;
427
- if (!data.data.code || data.data.code !== 1) {
428
- const token = data.data.access_token;
429
- cookie.cookieSet("token", token);
430
- // await that.getUser();
431
- // that.$router.push({ path: '/home' })
432
- if (process.env.NODE_ENV !== "development") {
433
- that.jump();
434
- } else {
435
- // that.$router.push({ path: "/home" });
436
- that.$router.push({ path: "/" });
437
- }
438
- } else {
439
- that.loginloading = false;
440
- that.clickEnter(true);
441
- // that.errType(data.data);
442
- that.$_toast({ type: "error", msg: data.data.msg, time: 3000 });
443
- }
444
- })
445
- .catch(err => {
446
- // console.log('error')
447
- that.loginloading = false;
448
- that.clickEnter(true);
449
- that.$_toast({ type: "error", msg: err.msg, time: 3000 });
450
- });
451
- } else {
452
- this.loginloading = false;
453
- return false;
454
- }
455
- });
456
-
457
- // /authentication/mobile?mobile=18699155392&smsCode=7825
458
- // http://192.168.100.213:9090/authentication/mobile?mobile=18609942548&smsCode=2420
459
- },
460
- onFocus() {
461
- this.type = "password";
462
- // console.log(this.$refs.password)
463
- },
464
- clickEnter(bol) {
465
- const that = this;
466
- document.onkeydown = function(e) {
467
- const key = window.event.keyCode;
468
- if (key === 13) {
469
- if (bol) {
470
- that.login();
471
- }
472
- }
473
- };
474
- },
475
- login() {
476
- if (this.tabClick == 2) {
477
- this.shortLogin();
478
- return;
479
- }
480
- this.$refs["form1"].validate(async valid => {
481
- if (valid) {
482
- this.clickEnter(false);
483
- this.submit();
484
- } else {
485
- this.loginloading = false;
486
- return false;
487
- }
488
- });
489
- },
490
- submit() {
491
- this.loginloading = true;
492
- const that = this;
493
- const form = qs.stringify({
494
- username: this.form1.username,
495
- password: this.form1.password,
496
- code: this.form1.code,
497
- grant_type: this.form1.grant_type,
498
- randomStr: this.form1.randomStr,
499
- remember_me: false
500
- });
501
- //
502
- axios
503
- .request({
504
- method: "post",
505
- data: form,
506
- headers: {
507
- Authorization:
508
- "Basic MTE3NTI3Njk0NDMyNjAwNDczNjo2M2NkMzYwM2Q5YTc0ZTNiYmI4ZDhiOGE5NmQ3MWVlZA=="
509
- },
510
- url: `${process.env.VUE_APP_API}${process.env.VUE_APP_AUTHURLTYPE}/oauth/token`
511
- })
512
- .then(async res => {
513
- const data = res;
514
- if (!data.data.code || data.data.code !== 1) {
515
- const token = data.data.access_token;
516
- cookie.cookieSet("token", token);
517
- // await that.getUser();
518
- // that.$router.push({ path: '/home' })
519
- if (process.env.NODE_ENV !== "development") {
520
- that.jump();
521
- } else {
522
- // that.$router.push({ path: "/home" });
523
- that.$router.push({ path: "/index" });
524
- }
525
- } else {
526
- that.clickEnter(true);
527
- that.loginloading = false;
528
- // that.errType(data.data);
529
- that.$_toast({ type: "error", msg: data.data.msg, time: 3000 });
530
- }
531
- })
532
- .catch(err => {
533
- that.clickEnter(true);
534
- // console.log('err,lkkkk')
535
- that.loginloading = false;
536
- // if (err.response) {
537
- // that.errType(err.response.data);
538
- // } else {
539
- // that.errType(err);
540
- // }
541
- });
542
- },
543
- async jump() {
544
- const referrer = document.referrer;
545
- const host = document.location.host;
546
- const fromPath = sessionStorage.read("fromPath");
547
- // console.log(fromPath, 'fromPath')
548
- if (referrer && referrer.indexOf(host) === -1) {
549
- if (fromPath == "/") {
550
- window.history.go(-1);
551
- // window.history.back()
552
- } else {
553
- this.$router.push({ path: "/" });
554
- }
555
- } else {
556
- // await this.getUser()
557
- this.$router.push({ path: "/" });
558
- }
559
- },
560
- async shopHasFinish() {
561
- const res = await apiMaterials.shopHasFinish();
562
- switch (res.data.code) {
563
- case 0:
564
- this.$store.commit("SET_STORE_TYPE", true);
565
- break;
566
- case 1:
567
- this.$store.commit("SET_STORE_TYPE", false);
568
- break;
569
- default:
570
- break;
571
- }
572
- // console.log(res.data.code, 'shopHasFinish') // 1 未完善 0 已完善
573
- },
574
- async getUser() {
575
- // 获取用户信息
576
- const res = await apiUser.getUserInfo();
577
- const user = res.data.data;
578
- // let { data } = await apiUser.getCompanyAuthInfo()
579
- // console.log(data.data)
580
- // user['cno'] = data.data.no
581
- this.$store.commit("SET_USER", user);
582
- this.getAuth();
583
- if (user.userRole !== 0) {
584
- // this.shopHasFinish()
585
- }
586
- },
587
- async getAuth() {
588
- const { data } = await apiAuth.getAuthList();
589
- if (data.code === 0) {
590
- this.$store.commit("SET_AUTH_USER", data.result);
591
- localStorage.set("menu", JSON.stringify(data.result.routes));
592
- } else {
593
- this.$message.error(data.msg);
594
- }
595
- },
596
- errType(response) {
597
- console.log(response);
598
- switch (response.code) {
599
- case 1001: // 验证码为空
600
- this.rules.code = {
601
- required: false,
602
- validator: this.validCode,
603
- trigger: "blur"
604
- };
605
- if (!this.showCode) {
606
- // this.$_toast({ type: "error", msg: "请输入验证码" });
607
- //
608
- }
609
- this.showCode = true;
610
- break;
611
- case 1002: // 验证码错误
612
- this.$_toast({ type: "error", msg: "验证码输入有误" });
613
- break;
614
- case 1003: // 验证码已过期,请重新获取
615
- this.$_toast({ type: "error", msg: "验证码已过期,请重新获取" });
616
- break;
617
- case 2001: // 用户不存在
618
- this.$_toast({ type: "error", msg: "该手机号未注册" });
619
- break;
620
- case 2002: // 用户或密码错误
621
- this.$_toast({ type: "error", msg: "手机号或密码有误,请重新输入" });
622
- this.form1.password = "";
623
- break;
624
- case 2003: // 用户被禁用
625
- this.$_toast({ type: "error", msg: "用户被禁用" });
626
- this.form1.password = "";
627
- break;
628
- }
629
- this.clickEnter(true);
630
- },
631
- setRandomStr() {
632
- let time = new Date().getTime();
633
- time = "" + time + parseInt(Math.random() * 1000);
634
- this.form1.randomStr = time;
635
- },
636
- validPhone(rule, value, callback) {
637
- if (!value) {
638
- // this.ifGetCode = false
639
- callback(new Error("请输入电话号码"));
640
- } else if (!isvalidPhone(value)) {
641
- // this.ifGetCode = false
642
- callback(new Error("请输入正确的手机号"));
643
- } else {
644
- // this.ifGetCode = true
645
- callback();
646
- }
647
- },
648
- validShort(rule, value, callback) {
649
- if (!value) {
650
- callback(new Error("请输入验证码"));
651
- } else if (value.length != 4) {
652
- callback(new Error("请输入正确的四位验证码"));
653
- } else {
654
- callback();
655
- }
656
- },
657
- validCode(rule, value, callback) {
658
- if (!value) {
659
- callback(new Error("验证码不能为空"));
660
- } else if (value.length !== 4) {
661
- callback(new Error("验证码输入有误"));
662
- } else {
663
- callback();
664
- }
665
- }
666
- },
667
- created() {
668
- this.setRandomStr();
669
- this.clickEnter(true);
670
- },
671
- mounted() {}
672
- };
673
- </script>
674
-
675
- <style lang="scss" rel="stylesheet/scss" scoped>
676
- .login-box-right {
677
- width: 420px;
678
- height: 400px;
679
- background: #fff;
680
- overflow: hidden;
681
- position: absolute;
682
- top: 60px;
683
- right: 0;
684
- .pasLog {
685
- .login-box-right-tab {
686
- width: 420px;
687
- height: 47px;
688
- line-height: 47px;
689
- position: relative;
690
- left: -40px !important;
691
- .login-box-right-tab-click {
692
- font-weight: bold;
693
- color: rgba(2, 134, 223, 1);
694
- border-bottom: 2px solid rgba(2, 134, 223, 1);
695
- }
696
- > div {
697
- width: 70px;
698
- height: 47px;
699
- color: #333333;
700
- font-size: 16px;
701
- font-weight: 400;
702
- cursor: pointer;
703
- position: absolute;
704
- text-align: center;
705
- border-bottom: 2px solid #fff;
706
- &:nth-child(1) {
707
- left: 110px;
708
- top: 0;
709
- }
710
- &:nth-child(2) {
711
- right: 110px;
712
- top: 0;
713
- }
714
- }
715
- }
716
- }
717
-
718
- > div {
719
- width: 340px;
720
- margin: 0 auto;
721
- }
722
- .login-type {
723
- height: 40px;
724
- top: 55px;
725
- > div {
726
- cursor: pointer;
727
- display: inline-block;
728
- vertical-align: middle;
729
- &:nth-child(3) {
730
- text-align: right;
731
- }
732
- }
733
- .type-line {
734
- background: rgba(223, 228, 234, 1);
735
- width: 1px;
736
- height: 28px;
737
- }
738
- .type-click {
739
- font-size: 30px;
740
- color: $default;
741
- width: 218px;
742
- }
743
- .type-noclick {
744
- font-size: 24px;
745
- color: #000;
746
- width: 178px;
747
- }
748
- }
749
- .login-tel {
750
- .bg-img {
751
- background: url("../../../assets/login/login-tel.png") 16px 8px no-repeat;
752
- background-size: 18px 26px;
753
- }
754
- }
755
- .login-user {
756
- .bg-img {
757
- background: url("../../../assets/login/login-user.png") 16px 11px
758
- no-repeat;
759
- background-size: 18px 18px;
760
- }
761
- }
762
- .login-password {
763
- .bg-img {
764
- background: url("../../../assets/login/login-password.png") 16px 11px
765
- no-repeat;
766
- background-size: 17px 19px;
767
- }
768
- }
769
-
770
- .login-font {
771
- cursor: pointer;
772
-
773
- > div {
774
- color: #0286df;
775
- font-weight: 400;
776
- display: inline-block;
777
- &:nth-child(1) {
778
- float: left;
779
- }
780
- &:nth-child(2) {
781
- float: right;
782
- }
783
- }
784
- }
785
- }
786
- .QRcodeTab {
787
- width: 58px !important;
788
- position: absolute;
789
- right: 10px;
790
- top: 10px;
791
- z-index: 999;
792
- cursor: pointer;
793
- }
794
- .toast {
795
- width: 143px !important;
796
- height: 28px;
797
- background: rgba(2, 134, 223, 0.1);
798
- position: absolute;
799
- right: 68px;
800
- top: 20px;
801
- border: 1px solid #0286df;
802
- section {
803
- width: 100%;
804
- height: 100%;
805
- display: flex;
806
- align-items: center;
807
- position: relative;
808
- img {
809
- margin-left: 16px;
810
- width: 12px;
811
- height: 14px;
812
- }
813
- span {
814
- margin-left: 9px;
815
- font-size: 12px;
816
- color: #0286df;
817
- }
818
- }
819
- section:before {
820
- content: "";
821
- position: absolute;
822
- width: 0;
823
- height: 0;
824
- border-top: 7px solid transparent;
825
- border-left: 7px solid #0082df;
826
- border-bottom: 7px solid transparent;
827
- font-size: 0;
828
- line-height: 0;
829
- right: -7px;
830
- }
831
- section:after {
832
- content: "";
833
- position: absolute;
834
- width: 0;
835
- height: 0;
836
- border-top: 6px solid transparent;
837
- border-left: 6px solid #e5f3fc;
838
- border-bottom: 6px solid transparent;
839
- font-size: 0;
840
- line-height: 0;
841
- right: -6px;
842
- }
843
- }
844
- .qrLog {
845
- width: 420px !important;
846
- .QRCodeBox {
847
- width: 100%;
848
- box-sizing: border-box;
849
- padding: 0 99px;
850
- position: relative;
851
- .QRCodechenge,
852
- .successShade {
853
- width: 100%;
854
- height: 100%;
855
- box-sizing: border-box;
856
- padding: 0 99px;
857
- position: absolute;
858
- left: 0;
859
- top: 0;
860
- background: rgba(255, 255, 255, 0.9);
861
- display: flex;
862
- flex-direction: column;
863
- align-items: center;
864
- justify-content: center;
865
- & > p {
866
- margin: 0;
867
- padding: 0;
868
- margin-bottom: 20px;
869
- font-size: 12px;
870
- color: #333333;
871
- }
872
- }
873
- .successShade {
874
- background: rgba(255, 255, 255, 0.9);
875
- & > p {
876
- font-size: 16px;
877
- font-weight: bold;
878
- margin-top: 10px;
879
- margin-bottom: 0;
880
- }
881
- }
882
- }
883
-
884
- .titleText {
885
- display: flex;
886
- justify-content: space-between;
887
- padding: 0 118px;
888
- span {
889
- color: #0286df;
890
- font-weight: bold;
891
- font-size: 20px;
892
- }
893
- }
894
-
895
- .textBox {
896
- width: 100%;
897
- height: 40px;
898
- display: flex;
899
- align-items: center;
900
- box-sizing: border-box;
901
- padding: 0 126px;
902
- .left {
903
- img {
904
- width: 32px;
905
- height: 32px;
906
- }
907
- }
908
- .right {
909
- margin-left: 16px;
910
- & > p {
911
- margin: 0;
912
- padding: 0;
913
- color: #969696;
914
- font-size: 16px;
915
- span {
916
- color: #0286df;
917
- }
918
- }
919
- }
920
- }
921
- .footer {
922
- margin-top: 15px;
923
- display: flex;
924
- color: #666666;
925
- font-size: 14px;
926
- box-sizing: border-box;
927
- padding-right: 20px;
928
- float: right;
929
- div {
930
- cursor: pointer;
931
- }
932
- & > div:last-child {
933
- margin-left: 25px;
934
- }
935
- }
936
- }
937
- </style>
938
- <style lang="scss" rel="stylesheet/scss">
939
- .login-box-right {
940
- .el-input__inner {
941
- border-radius: 0px;
942
- }
943
- .login-short-box {
944
- width: 100%;
945
- height: 100%;
946
- > div {
947
- height: 100%;
948
- &:nth-child(1) {
949
- width: 200px;
950
- float: left;
951
- }
952
- &:nth-child(2) {
953
- width: 120px;
954
- float: right;
955
- > button {
956
- float: right;
957
- border-radius: 0;
958
- }
959
- }
960
- }
961
- }
962
- .login-input {
963
- // background: #fff;
964
- [type="text"],
965
- [type="password"] {
966
- text-indent: 50px;
967
- }
968
- }
969
- .bg-line {
970
- background: #dfe4ea;
971
- width: 1px;
972
- height: 38px;
973
- position: absolute;
974
- left: 50px;
975
- top: 1px;
976
- z-index: 1;
977
- }
978
-
979
- .el-input__inner {
980
- height: 40px;
981
- line-height: 40px;
982
- font-size: 14px;
983
- border: 1px solid #dfe4ea;
984
- }
985
- .bg-img {
986
- z-index: 1;
987
- position: absolute;
988
- left: 0px;
989
- top: 0px;
990
- width: 49px;
991
- height: 36px;
992
- line-height: 20px;
993
- }
994
- .bg-eye {
995
- top: 0px;
996
- right: 16px;
997
- z-index: 1;
998
- position: absolute;
999
- }
1000
- }
1001
- </style>
1
+ <!--
2
+ * @Descripttion: 未描述
3
+ * @version: 1.0.0
4
+ * @Author: Chendajiang
5
+ * @Date: 2019-08-09 11:22:34
6
+ * @LastEditors: Yxj
7
+ * @LastEditTime: 2020-10-09 19:36:39
8
+ -->
9
+
10
+ <template>
11
+ <div class="login-box-right" v-loading="loginloading">
12
+ <div class="QRcodeTab">
13
+ <img
14
+ v-if="logType==1"
15
+ @click="logTab(1)"
16
+ style="width:58px;height:58px;"
17
+ src="./image/qrcode.png"
18
+ alt
19
+ />
20
+ <img
21
+ v-if="logType==2"
22
+ @click="logTab(2)"
23
+ style="width:58px;height:58px;"
24
+ src="./image/diannao.png"
25
+ alt
26
+ />
27
+ </div>
28
+ <div class="toast" v-if="logType==1">
29
+ <section>
30
+ <img src="./image/anquan.png" alt />
31
+ <span>扫码登录更安全</span>
32
+ </section>
33
+ </div>
34
+ <div class="qrLog" v-show="logType==2">
35
+ <div class="tc-20"></div>
36
+ <div class="tc-15"></div>
37
+ <div class="titleText">
38
+ <span>手机扫码</span>
39
+ <span>安全登录</span>
40
+ </div>
41
+ <div class="tc-20"></div>
42
+ <div class="tc-11"></div>
43
+ <div class="QRCodeBox">
44
+ <canvas id="QRCode"></canvas>
45
+ <div v-show="shade" class="QRCodechenge">
46
+ <p>请重新刷新二维码</p>
47
+ <el-button type="primary" @click="getQRCode()">点击刷新</el-button>
48
+ </div>
49
+ <div v-show="successShade" class="QRCodechenge successShade">
50
+ <img src="./image/icon_success.png" alt />
51
+ <p>登录成功</p>
52
+ </div>
53
+ </div>
54
+ <div class="textBox">
55
+ <div class="left">
56
+ <img src="./image/sys.png" />
57
+ </div>
58
+ <div class="right">
59
+ <p>
60
+ 打开
61
+ <span>企管帮APP</span>
62
+ </p>
63
+ <p>扫一扫</p>
64
+ </div>
65
+ </div>
66
+ <footer class="footer">
67
+ <div @click="logTab(2)">密码登录</div>
68
+ <div @click="$router.push({path:'/sign'})">用户注册</div>
69
+ </footer>
70
+ </div>
71
+ <div class="pasLog" v-show="logType==1">
72
+ <div class="tc-20"></div>
73
+ <div class="tc-20"></div>
74
+ <div class="login-box-right-tab">
75
+ <div :class="{'login-box-right-tab-click':tabClick == 1}" @click="clickTabClick(1)">账号登录</div>
76
+ <div :class="{'login-box-right-tab-click':tabClick == 2}" @click="clickTabClick(2)">短信登录</div>
77
+ </div>
78
+ <div class="tc-40"></div>
79
+ <div v-show="tabClick == 1">
80
+ <el-form ref="form1" :model="form1" :rules="rules1">
81
+ <el-form-item prop="username">
82
+ <div class="login-tel login-input">
83
+ <div class="bg-img"></div>
84
+ <div class="bg-line"></div>
85
+ <el-input
86
+ autocomplete="off"
87
+ v-model="form1.username"
88
+ placeholder="请输入手机号码"
89
+ @input="changeTel(1)"
90
+ ></el-input>
91
+ </div>
92
+ </el-form-item>
93
+ <el-form-item prop="password">
94
+ <div class="login-password login-input">
95
+ <div class="bg-img"></div>
96
+ <div class="bg-line"></div>
97
+ <div class="bg-eye" @click="showEye = !showEye">
98
+ <img v-if="showEye" src="@/assets/login/close-eye.png" alt />
99
+ <img v-if="!showEye" src="@/assets/login/eye.png" alt />
100
+ </div>
101
+ <input type="text" style="display: none;" />
102
+ <el-input
103
+ autocomplete="new-password"
104
+ ref="password"
105
+ v-if="showEye"
106
+ :type="type"
107
+ @focus="onFocus"
108
+ onpaste="return false"
109
+ oncontextmenu="return false"
110
+ oncopy="return false"
111
+ oncut="return false"
112
+ oninput="if(value.length>20)value=value.slice(0,20)"
113
+ v-model="form1.password"
114
+ placeholder="请输入密码"
115
+ ></el-input>
116
+ <el-input
117
+ v-if="!showEye"
118
+ autocomplete="new-password"
119
+ type="text"
120
+ onpaste="return false"
121
+ oncontextmenu="return false"
122
+ oncopy="return false"
123
+ oncut="return false"
124
+ oninput="if(value.length>20)value=value.slice(0,20)"
125
+ v-model="form1.password"
126
+ placeholder="请输入密码"
127
+ ></el-input>
128
+ </div>
129
+ </el-form-item>
130
+ </el-form>
131
+ </div>
132
+ <div v-show="tabClick == 2">
133
+ <el-form ref="form2" :model="form2" :rules="rules2">
134
+ <el-form-item prop="username">
135
+ <div class="login-tel login-input">
136
+ <div class="bg-img"></div>
137
+ <div class="bg-line"></div>
138
+ <el-input
139
+ autocomplete="off"
140
+ v-model="form2.username"
141
+ placeholder="请输入手机号码"
142
+ @input="changeTel(2)"
143
+ ></el-input>
144
+ </div>
145
+ </el-form-item>
146
+ <el-form-item prop="short">
147
+ <div class="login-short-box">
148
+ <div class="login-password login-input">
149
+ <div class="bg-img"></div>
150
+ <div class="bg-line"></div>
151
+ <el-input
152
+ type="text"
153
+ oninput="if(value.length>4)value=value.slice(0,4)"
154
+ v-model="form2.short"
155
+ placeholder="请输入验证码"
156
+ ></el-input>
157
+ </div>
158
+ <div>
159
+ <Button6 v-if="ifGetCode && codeFont == '获取验证码'" @click="getSMSLoginCode">获取验证码</Button6>
160
+ <Button6 v-if="!(ifGetCode && codeFont == '获取验证码')" :disabled="true">{{codeFont}}</Button6>
161
+ </div>
162
+ </div>
163
+ </el-form-item>
164
+ </el-form>
165
+ </div>
166
+ <div class="tc-40"></div>
167
+ <div class="login-button">
168
+ <!-- <el-button type="primary" @click="login">登录</el-button> -->
169
+ <Button6 @click="login">登录</Button6>
170
+ </div>
171
+ <div class="tc-10"></div>
172
+ <div class="login-font font14">
173
+ <div @click="$router.push({path:'/sign'})">用户注册</div>
174
+ <div @click="$router.push({path:'/passfind'})">忘记密码?</div>
175
+ </div>
176
+ <div class="tc-20"></div>
177
+ <div class="tc-30"></div>
178
+ <div class="tc-10"></div>
179
+ </div>
180
+ </div>
181
+ </template>
182
+ <script>
183
+ import apiUser from "@/api/apiUser";
184
+ import apiAuth from "@/api/apiAuth";
185
+ import { isvalidPhone } from "@/components/form/validate";
186
+ import apiMaterials from "@/api/apiMaterials/apiMaterials";
187
+ import axios from "axios";
188
+ import sessionStorage from "@/storage/sessionStorage.js";
189
+ import cookie from "@/storage/cookies";
190
+ import localStorage from "@/storage/localStorage";
191
+ import { apiHome } from "@/api/apiHome";
192
+ import qs from "qs";
193
+ import QRCode from "qrcode";
194
+
195
+ export default {
196
+ name: "FormLogin",
197
+ mixins: [],
198
+ extends: {},
199
+ props: {},
200
+ data() {
201
+ return {
202
+ successShade: false,
203
+ timeId: null,
204
+ time: 0,
205
+ shade: false,
206
+ QRCodeMsg: "生成二维码信息",
207
+ logType: 1,
208
+ loginloading: false,
209
+ codeFont: "获取验证码",
210
+ codeNum: 60,
211
+ ifGetCode: false,
212
+ tabClick: 1,
213
+ type: "text",
214
+ showEye: true,
215
+ showCode: false,
216
+ form1: {
217
+ username: "", // 17609321099
218
+ password: "", // 000qwer
219
+ code: "0000",
220
+ grant_type: "password",
221
+ randomStr: "",
222
+ remember_me: false,
223
+ short: ""
224
+ },
225
+ form2: {
226
+ username: "",
227
+ short: ""
228
+ },
229
+ img: `${process.env.VUE_APP_APIUSER}/code/`,
230
+ rules1: {
231
+ username: {
232
+ required: true,
233
+ validator: this.validPhone,
234
+ trigger: "blur"
235
+ },
236
+ password: [{ required: true, message: "密码不能为空", trigger: "blur" }]
237
+ },
238
+ rules2: {
239
+ username: {
240
+ required: true,
241
+ validator: this.validPhone,
242
+ trigger: "blur"
243
+ },
244
+ short: [{ required: true, validator: this.validShort, trigger: "blur" }]
245
+ }
246
+ };
247
+ },
248
+ computed: {},
249
+ components: {},
250
+ filter: {},
251
+ watch: {
252
+ QRCodeMsg(val) {
253
+ // 获取页面的canvas
254
+ const msg = document.getElementById("QRCode");
255
+ // 将获取到的数据(val)画到msg(canvas)上
256
+ QRCode.toCanvas(msg, val, { width: 225, height: 225 }, function(error) {
257
+ console.log(error);
258
+ });
259
+ },
260
+ tabClick(newVal, oldVal) {
261
+ if (newVal == 1) {
262
+ // this.$refs.form2.resetFields()
263
+ this.form1.username = this.form2.username;
264
+ // if (this.form2.username.length == 11) {
265
+ // if (!isvalidPhone(this.form2.username)) {
266
+ // this.ifGetCode = false
267
+ // } else {
268
+ // this.ifGetCode = true
269
+ // }
270
+ // }
271
+ } else {
272
+ // this.$refs.form1.resetFields()
273
+ this.form2.username = this.form1.username;
274
+ if (this.form2.username.length == 11) {
275
+ if (!isvalidPhone(this.form2.username)) {
276
+ this.ifGetCode = false;
277
+ } else {
278
+ this.ifGetCode = true;
279
+ }
280
+ }
281
+ }
282
+ }
283
+ },
284
+ methods: {
285
+ async generateUUID() {
286
+ const res = await apiUser.createQrCode();
287
+ if (res.data.code == 200) {
288
+ this.uuid = res.data.data.key;
289
+ this.QRCodeMsg = res.data.data.content;
290
+ }
291
+ },
292
+ async isLogin(uuid) {
293
+ const res = await apiUser.queryQRCode({ uuid });
294
+ if (res.data.code == 200) {
295
+ if (res.data.data.resourceToken != "") {
296
+ this.successShade = true;
297
+ window.clearTimeout(this.timeId);
298
+ cookie.cookieSet("token", res.data.data.resourceToken);
299
+ this.$router.push({ path: "/" });
300
+ }
301
+ }
302
+ },
303
+ getQRCode() {
304
+ const that = this;
305
+ that.shade = false;
306
+ that.time = 0;
307
+ that.generateUUID();
308
+ if (that.logType == 1) return;
309
+ that.timeId = setInterval(() => {
310
+ that.time++;
311
+ that.isLogin(that.uuid);
312
+ if (that.time == 60) {
313
+ that.shade = true;
314
+ window.clearTimeout(that.timeId);
315
+ }
316
+ }, 1000);
317
+ },
318
+ logTab(type) {
319
+ const that = this;
320
+ if (type == 1) {
321
+ that.logType = 2;
322
+ this.getQRCode();
323
+ } else {
324
+ window.clearTimeout(that.timeId);
325
+ this.logType = 1;
326
+ }
327
+ },
328
+ clickTabClick(num) {
329
+ this.tabClick = num;
330
+ // // console.log(num)
331
+ // if (num == 2) {
332
+ // this.changeTel(2)
333
+ // }
334
+ },
335
+ setTime() {
336
+ this.codeFont = --this.codeNum + "s";
337
+ const setInter = setInterval(
338
+ function() {
339
+ this.codeFont = --this.codeNum + "s";
340
+ if (this.codeNum == 0) {
341
+ this.codeFont = "获取验证码";
342
+ this.codeNum = 60;
343
+ clearInterval(setInter);
344
+ }
345
+ }.bind(this),
346
+ 1000
347
+ );
348
+ },
349
+ changeTel(type) {
350
+ // console.log(this.form2.username)
351
+ // ifGetCode 是否可以点击获取验证码
352
+ // console.log(type)
353
+ if (type == 1) {
354
+ if (this.form1.username.length > 11) {
355
+ this.form1.username = this.form1.username.slice(0, 11);
356
+ }
357
+ // this.form2.username = this.form1.username
358
+
359
+ return;
360
+ }
361
+
362
+ if (this.form2.username.length > 11) {
363
+ this.form2.username = this.form2.username.slice(0, 11);
364
+ }
365
+ // this.form1.username = this.form2.username
366
+
367
+ if (this.form2.username.length == 11) {
368
+ if (!isvalidPhone(this.form2.username)) {
369
+ this.ifGetCode = false;
370
+ // callback(new Error('请输入正确的手机号'))
371
+ } else {
372
+ this.ifGetCode = true;
373
+ // callback()
374
+ }
375
+ // this.ifGetCode = true
376
+ return;
377
+ }
378
+ this.ifGetCode = false;
379
+ },
380
+
381
+ async getSMSLoginCode() {
382
+ this.setTime();
383
+ const data = {
384
+ uname: this.form2.username,
385
+ type: 2,
386
+ channel: 2
387
+ };
388
+ const res = await apiAuth.getSMSLoginCode(data);
389
+
390
+ if (res.data.code == 0) {
391
+ this.$_toast({ msg: "发送成功" });
392
+ return;
393
+ }
394
+ if (res.data.code == 500) {
395
+ this.$_toast({ msg: res.data.msg, type: "error" });
396
+ return;
397
+ }
398
+ this.$_toast({ msg: res.data.msg, type: "error" });
399
+ // this.$_toast
400
+ // let res = await apiHome.getSMSLoginCode(data)
401
+ // console.log(res.data.data)
402
+ // /authentication/mobile?mobile=18699155392&smsCode=7825
403
+ },
404
+ async shortLogin() {
405
+ const that = this;
406
+ this.$refs["form2"].validate(async valid => {
407
+ if (valid) {
408
+ this.clickEnter(false);
409
+ this.loginloading = true;
410
+ const form = qs.stringify({
411
+ username: this.form2.username,
412
+ password: this.form2.short,
413
+ grant_type: "sms"
414
+ });
415
+ axios
416
+ .request({
417
+ method: "post",
418
+ data: form,
419
+ headers: {
420
+ Authorization:
421
+ "Basic MTE3NTI3Njk0NDMyNjAwNDczNjo2M2NkMzYwM2Q5YTc0ZTNiYmI4ZDhiOGE5NmQ3MWVlZA=="
422
+ },
423
+ url: `${process.env.VUE_APP_API}${process.env.VUE_APP_AUTHURLTYPE}/oauth/token`
424
+ })
425
+ .then(async res => {
426
+ const data = res;
427
+ if (!data.data.code || data.data.code !== 1) {
428
+ const token = data.data.access_token;
429
+ cookie.cookieSet("token", token);
430
+ // await that.getUser();
431
+ // that.$router.push({ path: '/home' })
432
+ if (process.env.NODE_ENV !== "development") {
433
+ that.jump();
434
+ } else {
435
+ // that.$router.push({ path: "/home" });
436
+ that.$router.push({ path: "/" });
437
+ }
438
+ } else {
439
+ that.loginloading = false;
440
+ that.clickEnter(true);
441
+ // that.errType(data.data);
442
+ that.$_toast({ type: "error", msg: data.data.msg, time: 3000 });
443
+ }
444
+ })
445
+ .catch(err => {
446
+ // console.log('error')
447
+ that.loginloading = false;
448
+ that.clickEnter(true);
449
+ that.$_toast({ type: "error", msg: err.msg, time: 3000 });
450
+ });
451
+ } else {
452
+ this.loginloading = false;
453
+ return false;
454
+ }
455
+ });
456
+
457
+ // /authentication/mobile?mobile=18699155392&smsCode=7825
458
+ // http://192.168.100.213:9090/authentication/mobile?mobile=18609942548&smsCode=2420
459
+ },
460
+ onFocus() {
461
+ this.type = "password";
462
+ // console.log(this.$refs.password)
463
+ },
464
+ clickEnter(bol) {
465
+ const that = this;
466
+ document.onkeydown = function(e) {
467
+ const key = window.event.keyCode;
468
+ if (key === 13) {
469
+ if (bol) {
470
+ that.login();
471
+ }
472
+ }
473
+ };
474
+ },
475
+ login() {
476
+ if (this.tabClick == 2) {
477
+ this.shortLogin();
478
+ return;
479
+ }
480
+ this.$refs["form1"].validate(async valid => {
481
+ if (valid) {
482
+ this.clickEnter(false);
483
+ this.submit();
484
+ } else {
485
+ this.loginloading = false;
486
+ return false;
487
+ }
488
+ });
489
+ },
490
+ submit() {
491
+ this.loginloading = true;
492
+ const that = this;
493
+ const form = qs.stringify({
494
+ username: this.form1.username,
495
+ password: this.form1.password,
496
+ code: this.form1.code,
497
+ grant_type: this.form1.grant_type,
498
+ randomStr: this.form1.randomStr,
499
+ remember_me: false
500
+ });
501
+ //
502
+ axios
503
+ .request({
504
+ method: "post",
505
+ data: form,
506
+ headers: {
507
+ Authorization:
508
+ "Basic MTE3NTI3Njk0NDMyNjAwNDczNjo2M2NkMzYwM2Q5YTc0ZTNiYmI4ZDhiOGE5NmQ3MWVlZA=="
509
+ },
510
+ url: `${process.env.VUE_APP_API}${process.env.VUE_APP_AUTHURLTYPE}/oauth/token`
511
+ })
512
+ .then(async res => {
513
+ const data = res;
514
+ if (!data.data.code || data.data.code !== 1) {
515
+ const token = data.data.access_token;
516
+ cookie.cookieSet("token", token);
517
+ // await that.getUser();
518
+ // that.$router.push({ path: '/home' })
519
+ if (process.env.NODE_ENV !== "development") {
520
+ that.jump();
521
+ } else {
522
+ // that.$router.push({ path: "/home" });
523
+ that.$router.push({ path: "/index" });
524
+ }
525
+ } else {
526
+ that.clickEnter(true);
527
+ that.loginloading = false;
528
+ // that.errType(data.data);
529
+ that.$_toast({ type: "error", msg: data.data.msg, time: 3000 });
530
+ }
531
+ })
532
+ .catch(err => {
533
+ that.clickEnter(true);
534
+ // console.log('err,lkkkk')
535
+ that.loginloading = false;
536
+ // if (err.response) {
537
+ // that.errType(err.response.data);
538
+ // } else {
539
+ // that.errType(err);
540
+ // }
541
+ });
542
+ },
543
+ async jump() {
544
+ const referrer = document.referrer;
545
+ const host = document.location.host;
546
+ const fromPath = sessionStorage.read("fromPath");
547
+ // console.log(fromPath, 'fromPath')
548
+ if (referrer && referrer.indexOf(host) === -1) {
549
+ if (fromPath == "/") {
550
+ window.history.go(-1);
551
+ // window.history.back()
552
+ } else {
553
+ this.$router.push({ path: "/" });
554
+ }
555
+ } else {
556
+ // await this.getUser()
557
+ this.$router.push({ path: "/" });
558
+ }
559
+ },
560
+ async shopHasFinish() {
561
+ const res = await apiMaterials.shopHasFinish();
562
+ switch (res.data.code) {
563
+ case 0:
564
+ this.$store.commit("SET_STORE_TYPE", true);
565
+ break;
566
+ case 1:
567
+ this.$store.commit("SET_STORE_TYPE", false);
568
+ break;
569
+ default:
570
+ break;
571
+ }
572
+ // console.log(res.data.code, 'shopHasFinish') // 1 未完善 0 已完善
573
+ },
574
+ async getUser() {
575
+ // 获取用户信息
576
+ const res = await apiUser.getUserInfo();
577
+ const user = res.data.data;
578
+ // let { data } = await apiUser.getCompanyAuthInfo()
579
+ // console.log(data.data)
580
+ // user['cno'] = data.data.no
581
+ this.$store.commit("SET_USER", user);
582
+ this.getAuth();
583
+ if (user.userRole !== 0) {
584
+ // this.shopHasFinish()
585
+ }
586
+ },
587
+ async getAuth() {
588
+ const { data } = await apiAuth.getAuthList();
589
+ if (data.code === 0) {
590
+ this.$store.commit("SET_AUTH_USER", data.result);
591
+ localStorage.set("menu", JSON.stringify(data.result.routes));
592
+ } else {
593
+ this.$message.error(data.msg);
594
+ }
595
+ },
596
+ errType(response) {
597
+ console.log(response);
598
+ switch (response.code) {
599
+ case 1001: // 验证码为空
600
+ this.rules.code = {
601
+ required: false,
602
+ validator: this.validCode,
603
+ trigger: "blur"
604
+ };
605
+ if (!this.showCode) {
606
+ // this.$_toast({ type: "error", msg: "请输入验证码" });
607
+ //
608
+ }
609
+ this.showCode = true;
610
+ break;
611
+ case 1002: // 验证码错误
612
+ this.$_toast({ type: "error", msg: "验证码输入有误" });
613
+ break;
614
+ case 1003: // 验证码已过期,请重新获取
615
+ this.$_toast({ type: "error", msg: "验证码已过期,请重新获取" });
616
+ break;
617
+ case 2001: // 用户不存在
618
+ this.$_toast({ type: "error", msg: "该手机号未注册" });
619
+ break;
620
+ case 2002: // 用户或密码错误
621
+ this.$_toast({ type: "error", msg: "手机号或密码有误,请重新输入" });
622
+ this.form1.password = "";
623
+ break;
624
+ case 2003: // 用户被禁用
625
+ this.$_toast({ type: "error", msg: "用户被禁用" });
626
+ this.form1.password = "";
627
+ break;
628
+ }
629
+ this.clickEnter(true);
630
+ },
631
+ setRandomStr() {
632
+ let time = new Date().getTime();
633
+ time = "" + time + parseInt(Math.random() * 1000);
634
+ this.form1.randomStr = time;
635
+ },
636
+ validPhone(rule, value, callback) {
637
+ if (!value) {
638
+ // this.ifGetCode = false
639
+ callback(new Error("请输入电话号码"));
640
+ } else if (!isvalidPhone(value)) {
641
+ // this.ifGetCode = false
642
+ callback(new Error("请输入正确的手机号"));
643
+ } else {
644
+ // this.ifGetCode = true
645
+ callback();
646
+ }
647
+ },
648
+ validShort(rule, value, callback) {
649
+ if (!value) {
650
+ callback(new Error("请输入验证码"));
651
+ } else if (value.length != 4) {
652
+ callback(new Error("请输入正确的四位验证码"));
653
+ } else {
654
+ callback();
655
+ }
656
+ },
657
+ validCode(rule, value, callback) {
658
+ if (!value) {
659
+ callback(new Error("验证码不能为空"));
660
+ } else if (value.length !== 4) {
661
+ callback(new Error("验证码输入有误"));
662
+ } else {
663
+ callback();
664
+ }
665
+ }
666
+ },
667
+ created() {
668
+ this.setRandomStr();
669
+ this.clickEnter(true);
670
+ },
671
+ mounted() {}
672
+ };
673
+ </script>
674
+
675
+ <style lang="scss" rel="stylesheet/scss" scoped>
676
+ .login-box-right {
677
+ width: 420px;
678
+ height: 400px;
679
+ background: #fff;
680
+ overflow: hidden;
681
+ position: absolute;
682
+ top: 60px;
683
+ right: 0;
684
+ .pasLog {
685
+ .login-box-right-tab {
686
+ width: 420px;
687
+ height: 47px;
688
+ line-height: 47px;
689
+ position: relative;
690
+ left: -40px !important;
691
+ .login-box-right-tab-click {
692
+ font-weight: bold;
693
+ color: rgba(2, 134, 223, 1);
694
+ border-bottom: 2px solid rgba(2, 134, 223, 1);
695
+ }
696
+ > div {
697
+ width: 70px;
698
+ height: 47px;
699
+ color: #333333;
700
+ font-size: 16px;
701
+ font-weight: 400;
702
+ cursor: pointer;
703
+ position: absolute;
704
+ text-align: center;
705
+ border-bottom: 2px solid #fff;
706
+ &:nth-child(1) {
707
+ left: 110px;
708
+ top: 0;
709
+ }
710
+ &:nth-child(2) {
711
+ right: 110px;
712
+ top: 0;
713
+ }
714
+ }
715
+ }
716
+ }
717
+
718
+ > div {
719
+ width: 340px;
720
+ margin: 0 auto;
721
+ }
722
+ .login-type {
723
+ height: 40px;
724
+ top: 55px;
725
+ > div {
726
+ cursor: pointer;
727
+ display: inline-block;
728
+ vertical-align: middle;
729
+ &:nth-child(3) {
730
+ text-align: right;
731
+ }
732
+ }
733
+ .type-line {
734
+ background: rgba(223, 228, 234, 1);
735
+ width: 1px;
736
+ height: 28px;
737
+ }
738
+ .type-click {
739
+ font-size: 30px;
740
+ color: $default;
741
+ width: 218px;
742
+ }
743
+ .type-noclick {
744
+ font-size: 24px;
745
+ color: #000;
746
+ width: 178px;
747
+ }
748
+ }
749
+ .login-tel {
750
+ .bg-img {
751
+ background: url("../../../assets/login/login-tel.png") 16px 8px no-repeat;
752
+ background-size: 18px 26px;
753
+ }
754
+ }
755
+ .login-user {
756
+ .bg-img {
757
+ background: url("../../../assets/login/login-user.png") 16px 11px
758
+ no-repeat;
759
+ background-size: 18px 18px;
760
+ }
761
+ }
762
+ .login-password {
763
+ .bg-img {
764
+ background: url("../../../assets/login/login-password.png") 16px 11px
765
+ no-repeat;
766
+ background-size: 17px 19px;
767
+ }
768
+ }
769
+
770
+ .login-font {
771
+ cursor: pointer;
772
+
773
+ > div {
774
+ color: #0286df;
775
+ font-weight: 400;
776
+ display: inline-block;
777
+ &:nth-child(1) {
778
+ float: left;
779
+ }
780
+ &:nth-child(2) {
781
+ float: right;
782
+ }
783
+ }
784
+ }
785
+ }
786
+ .QRcodeTab {
787
+ width: 58px !important;
788
+ position: absolute;
789
+ right: 10px;
790
+ top: 10px;
791
+ z-index: 999;
792
+ cursor: pointer;
793
+ }
794
+ .toast {
795
+ width: 143px !important;
796
+ height: 28px;
797
+ background: rgba(2, 134, 223, 0.1);
798
+ position: absolute;
799
+ right: 68px;
800
+ top: 20px;
801
+ border: 1px solid #0286df;
802
+ section {
803
+ width: 100%;
804
+ height: 100%;
805
+ display: flex;
806
+ align-items: center;
807
+ position: relative;
808
+ img {
809
+ margin-left: 16px;
810
+ width: 12px;
811
+ height: 14px;
812
+ }
813
+ span {
814
+ margin-left: 9px;
815
+ font-size: 12px;
816
+ color: #0286df;
817
+ }
818
+ }
819
+ section:before {
820
+ content: "";
821
+ position: absolute;
822
+ width: 0;
823
+ height: 0;
824
+ border-top: 7px solid transparent;
825
+ border-left: 7px solid #0082df;
826
+ border-bottom: 7px solid transparent;
827
+ font-size: 0;
828
+ line-height: 0;
829
+ right: -7px;
830
+ }
831
+ section:after {
832
+ content: "";
833
+ position: absolute;
834
+ width: 0;
835
+ height: 0;
836
+ border-top: 6px solid transparent;
837
+ border-left: 6px solid #e5f3fc;
838
+ border-bottom: 6px solid transparent;
839
+ font-size: 0;
840
+ line-height: 0;
841
+ right: -6px;
842
+ }
843
+ }
844
+ .qrLog {
845
+ width: 420px !important;
846
+ .QRCodeBox {
847
+ width: 100%;
848
+ box-sizing: border-box;
849
+ padding: 0 99px;
850
+ position: relative;
851
+ .QRCodechenge,
852
+ .successShade {
853
+ width: 100%;
854
+ height: 100%;
855
+ box-sizing: border-box;
856
+ padding: 0 99px;
857
+ position: absolute;
858
+ left: 0;
859
+ top: 0;
860
+ background: rgba(255, 255, 255, 0.9);
861
+ display: flex;
862
+ flex-direction: column;
863
+ align-items: center;
864
+ justify-content: center;
865
+ & > p {
866
+ margin: 0;
867
+ padding: 0;
868
+ margin-bottom: 20px;
869
+ font-size: 12px;
870
+ color: #333333;
871
+ }
872
+ }
873
+ .successShade {
874
+ background: rgba(255, 255, 255, 0.9);
875
+ & > p {
876
+ font-size: 16px;
877
+ font-weight: bold;
878
+ margin-top: 10px;
879
+ margin-bottom: 0;
880
+ }
881
+ }
882
+ }
883
+
884
+ .titleText {
885
+ display: flex;
886
+ justify-content: space-between;
887
+ padding: 0 118px;
888
+ span {
889
+ color: #0286df;
890
+ font-weight: bold;
891
+ font-size: 20px;
892
+ }
893
+ }
894
+
895
+ .textBox {
896
+ width: 100%;
897
+ height: 40px;
898
+ display: flex;
899
+ align-items: center;
900
+ box-sizing: border-box;
901
+ padding: 0 126px;
902
+ .left {
903
+ img {
904
+ width: 32px;
905
+ height: 32px;
906
+ }
907
+ }
908
+ .right {
909
+ margin-left: 16px;
910
+ & > p {
911
+ margin: 0;
912
+ padding: 0;
913
+ color: #969696;
914
+ font-size: 16px;
915
+ span {
916
+ color: #0286df;
917
+ }
918
+ }
919
+ }
920
+ }
921
+ .footer {
922
+ margin-top: 15px;
923
+ display: flex;
924
+ color: #666666;
925
+ font-size: 14px;
926
+ box-sizing: border-box;
927
+ padding-right: 20px;
928
+ float: right;
929
+ div {
930
+ cursor: pointer;
931
+ }
932
+ & > div:last-child {
933
+ margin-left: 25px;
934
+ }
935
+ }
936
+ }
937
+ </style>
938
+ <style lang="scss" rel="stylesheet/scss">
939
+ .login-box-right {
940
+ .el-input__inner {
941
+ border-radius: 0px;
942
+ }
943
+ .login-short-box {
944
+ width: 100%;
945
+ height: 100%;
946
+ > div {
947
+ height: 100%;
948
+ &:nth-child(1) {
949
+ width: 200px;
950
+ float: left;
951
+ }
952
+ &:nth-child(2) {
953
+ width: 120px;
954
+ float: right;
955
+ > button {
956
+ float: right;
957
+ border-radius: 0;
958
+ }
959
+ }
960
+ }
961
+ }
962
+ .login-input {
963
+ // background: #fff;
964
+ [type="text"],
965
+ [type="password"] {
966
+ text-indent: 50px;
967
+ }
968
+ }
969
+ .bg-line {
970
+ background: #dfe4ea;
971
+ width: 1px;
972
+ height: 38px;
973
+ position: absolute;
974
+ left: 50px;
975
+ top: 1px;
976
+ z-index: 1;
977
+ }
978
+
979
+ .el-input__inner {
980
+ height: 40px;
981
+ line-height: 40px;
982
+ font-size: 14px;
983
+ border: 1px solid #dfe4ea;
984
+ }
985
+ .bg-img {
986
+ z-index: 1;
987
+ position: absolute;
988
+ left: 0px;
989
+ top: 0px;
990
+ width: 49px;
991
+ height: 36px;
992
+ line-height: 20px;
993
+ }
994
+ .bg-eye {
995
+ top: 0px;
996
+ right: 16px;
997
+ z-index: 1;
998
+ position: absolute;
999
+ }
1000
+ }
1001
+ </style>