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.
- package/.env +2 -2
- package/.env.development +70 -70
- package/.env.pre +60 -60
- package/.env.production +48 -48
- package/.env.test +48 -48
- package/.eslintignore +4 -4
- package/.eslintrc.js +302 -302
- package/README.md +66 -66
- package/babel.config.js +5 -5
- package/commitlint.config.js +30 -30
- package/config/dev.env.js +7 -7
- package/config/index.js +82 -82
- package/config/prod.env.js +4 -4
- package/debug.log +4 -4
- package/index.js +6 -6
- package/jsconfig.json +9 -9
- package/lib/qgb-process.common.js +7666 -5069
- package/lib/qgb-process.umd.js +7666 -5069
- package/lib/qgb-process.umd.min.js +108 -108
- package/package.json +148 -148
- package/packages/index.js +26 -26
- package/public/index.html +47 -47
- package/public/js/qykf.js +21 -21
- package/src/App.vue +37 -37
- package/src/api/ApiExAndapp.js +24 -24
- package/src/api/EnterpriseAssociation.js +8 -8
- package/src/api/Notice.js +31 -31
- package/src/api/apiAcceptance/apiAcceptance.js +37 -37
- package/src/api/apiAddress.js +9 -9
- package/src/api/apiApprovalConfig.js +13 -13
- package/src/api/apiApprove.js +18 -18
- package/src/api/apiArrears/apiArrears.js +41 -41
- package/src/api/apiArrears/apiProjectArrears.js +16 -16
- package/src/api/apiArrears/index.js +15 -15
- package/src/api/apiAssets.js +19 -19
- package/src/api/apiAssociate.js +42 -42
- package/src/api/apiAudit/apiAudit.js +32 -32
- package/src/api/apiAuth.js +25 -25
- package/src/api/apiAuthentication.js +35 -35
- package/src/api/apiBankAccount/index.js +12 -12
- package/src/api/apiBudget/apiBudget.js +30 -30
- package/src/api/apiBudget/apiBudgets.js +105 -105
- package/src/api/apiCarRecord.js +48 -48
- package/src/api/apiCart.js +202 -202
- package/src/api/apiChangeTel.js +13 -13
- package/src/api/apiCheckingIn.js +95 -95
- package/src/api/apiCollection/index.js +13 -13
- package/src/api/apiContract/apiContract.js +21 -21
- package/src/api/apiContract/index.js +3 -3
- package/src/api/apiContract/quill-config.js +122 -122
- package/src/api/apiContractManage/apiContractManage.js +57 -57
- package/src/api/apiContractManage/index.js +2 -2
- package/src/api/apiContractManage/quill-config.js +121 -121
- package/src/api/apiCoping.js +22 -22
- package/src/api/apiCost/index.js +31 -31
- package/src/api/apiCreditManagement.js +16 -16
- package/src/api/apiCustomer/apiCustomer.js +12 -12
- package/src/api/apiDivisional.js +9 -9
- package/src/api/apiDivisionalManagementList.js +17 -17
- package/src/api/apiEmployeeRegularization.js +73 -73
- package/src/api/apiEquipmentRental.js +50 -50
- package/src/api/apiFormBuilder/menu.js +65 -65
- package/src/api/apiFormBuilder/reissueRule.js +15 -15
- package/src/api/apiFund/index.js +16 -16
- package/src/api/apiHelp.js +43 -43
- package/src/api/apiHome.js +24 -24
- package/src/api/apiIminfo.js +39 -39
- package/src/api/apiInventory.js +52 -52
- package/src/api/apiInventorySetting.js +9 -9
- package/src/api/apiInvoice.js +29 -29
- package/src/api/apiJobManage.js +15 -15
- package/src/api/apiLease/apiLease.js +12 -12
- package/src/api/apiLogisticsTransportation/apiLogisticsTransportation.js +34 -34
- package/src/api/apiLostPassword.js +9 -9
- package/src/api/apiMachine/api.js +3 -3
- package/src/api/apiMachine/apiCategory.js +18 -18
- package/src/api/apiMachine/apiHire.js +19 -19
- package/src/api/apiMachine/apiLease.js +27 -27
- package/src/api/apiMachine/apiLocation.js +4 -4
- package/src/api/apiMachine/apiRentInfo.js +107 -107
- package/src/api/apiMachine/apiRentPublish.js +14 -14
- package/src/api/apiMachine/apiStore.js +15 -15
- package/src/api/apiMachine/index.js +3 -3
- package/src/api/apiManagementStore/api.js +3 -3
- package/src/api/apiManagementStore/apiManagementStore.js +25 -25
- package/src/api/apiMaterCheckAndAccept/apiMaterCheckAndAccept.js +47 -47
- package/src/api/apiMaterCheckAndAccept/apiMechanicalSourcing.js +16 -16
- package/src/api/apiMaterCheckAndAccept/index.js +3 -3
- package/src/api/apiMaterials/aaaaaaaaaaaaaa.js +9 -9
- package/src/api/apiMaterials/api.js +3 -3
- package/src/api/apiMaterials/apiAddress.js +116 -116
- package/src/api/apiMaterials/apiBalanceData.js +188 -188
- package/src/api/apiMaterials/apiCommercialConcrete.js +36 -36
- package/src/api/apiMaterials/apiCommodity.js +70 -70
- package/src/api/apiMaterials/apiDownload.js +26 -26
- package/src/api/apiMaterials/apiHome.js +44 -44
- package/src/api/apiMaterials/apiItemBrand.js +9 -9
- package/src/api/apiMaterials/apiLogistics.js +72 -72
- package/src/api/apiMaterials/apiLogisticsReceipt.js +94 -94
- package/src/api/apiMaterials/apiMaterials.js +8 -8
- package/src/api/apiMaterials/apiMySalesOrder.js +21 -21
- package/src/api/apiMaterials/apiOfflineOrder.js +18 -18
- package/src/api/apiMaterials/apiOrder.js +183 -183
- package/src/api/apiMaterials/apiReceipt.js +45 -45
- package/src/api/apiMaterials/quill-config.js +122 -122
- package/src/api/apiMemberSelection.js +39 -39
- package/src/api/apiMessage.js +10 -10
- package/src/api/apiMock/mockOrder.js +98 -98
- package/src/api/apiMonthPlan/apiMonthPlan.js +47 -47
- package/src/api/apiMyBidding.js +8 -8
- package/src/api/apiMyMember/apiComInfo.js +17 -17
- package/src/api/apiMyMember/apiInviteJoin.js +24 -24
- package/src/api/apiMyMember/apiMember.js +24 -24
- package/src/api/apiMyMember/apiMemberApply.js +36 -36
- package/src/api/apiMyMember/apiMemberChance.js +40 -40
- package/src/api/apiOffer.js +40 -40
- package/src/api/apiOffice.js +19 -19
- package/src/api/apiPact.js +26 -26
- package/src/api/apiPassword.js +7 -7
- package/src/api/apiPay/apiPay.js +25 -25
- package/src/api/apiPaying.js +21 -21
- package/src/api/apiPayment/apiPayment.js +13 -13
- package/src/api/apiPayment/apiProjectPayment.js +13 -13
- package/src/api/apiPrint.js +23 -0
- package/src/api/apiProcess.js +65 -65
- package/src/api/apiProject/apiBaseList.js +29 -29
- package/src/api/apiProject/apiGoodsOffer.js +11 -11
- package/src/api/apiProject/apiInventory.js +116 -116
- package/src/api/apiProject/apiOfferOrder.js +12 -12
- package/src/api/apiProject/apiOfferQuery.js +18 -18
- package/src/api/apiProject/apiPlan.js +21 -21
- package/src/api/apiProject/apiProject.js +158 -158
- package/src/api/apiProjectProcurement/apiProjectProcurement.js +88 -88
- package/src/api/apiPurchase/apiPurchase.js +67 -67
- package/src/api/apiPurchaseApply.js +15 -15
- package/src/api/apiPurchasePay.js +16 -16
- package/src/api/apiRankManagement.js +24 -24
- package/src/api/apiRecruit.js +37 -37
- package/src/api/apiReimbursement/apiReimbursement.js +15 -15
- package/src/api/apiRisk/index.js +11 -11
- package/src/api/apiRoleManagement.js +15 -15
- package/src/api/apiRules/apiRules.js +11 -11
- package/src/api/apiSchedule/apiSchedule.js +17 -17
- package/src/api/apiSealRecord.js +52 -52
- package/src/api/apiSign.js +8 -8
- package/src/api/apiSolution/apiSolution.js +9 -9
- package/src/api/apiSubcontract.js +35 -35
- package/src/api/apiSystem/index.js +40 -40
- package/src/api/apiTask.js +76 -76
- package/src/api/apiTeam/api.js +3 -3
- package/src/api/apiTeam/apiUtils.js +11 -11
- package/src/api/apiTender.js +127 -127
- package/src/api/apiUser.js +24 -24
- package/src/api/apiUserEnterprise/api.js +3 -3
- package/src/api/apiUserEnterprise/apiUserEn.js +15 -15
- package/src/api/apiVolunteerTeam.js +11 -11
- package/src/api/apiWorkarea.js +33 -33
- package/src/api/apiXzqh.js +8 -8
- package/src/api/common/api.js +3 -3
- package/src/api/common/apiUtils.js +9 -9
- package/src/api/customer.js +21 -21
- package/src/api/evection.js +19 -19
- package/src/api/guide.js +9 -9
- package/src/api/sociaManageApi.js +30 -30
- package/src/assets/Area.json +1773 -1773
- package/src/assets/css/quill.bubble.css +952 -952
- package/src/assets/css/quill.core.css +397 -397
- package/src/assets/css/quill.snow.css +945 -945
- package/src/assets/data.js +284 -284
- package/src/assets/fonts/Read Me.txt +7 -7
- package/src/assets/fonts/demo-files/demo.css +155 -155
- package/src/assets/fonts/demo-files/demo.js +30 -30
- package/src/assets/fonts/demo.html +951 -951
- package/src/assets/fonts/fonts/icomoon.svg +130 -130
- package/src/assets/fonts/style.css +563 -563
- package/src/assets/icons/checkbox.svg +12 -12
- package/src/assets/icons/columns-3.svg +12 -12
- package/src/assets/icons/columns.svg +12 -12
- package/src/assets/icons/custom-table.svg +12 -12
- package/src/assets/icons/date.svg +19 -19
- package/src/assets/icons/daterange.svg +12 -12
- package/src/assets/icons/fuzhi.svg +11 -11
- package/src/assets/icons/fuzhi_03.svg +5 -5
- package/src/assets/icons/gaojizujian.svg +12 -12
- package/src/assets/icons/groupSummary.svg +12 -12
- package/src/assets/icons/groupTitle.svg +12 -12
- package/src/assets/icons/image-uploader.svg +12 -12
- package/src/assets/icons/input-number.svg +12 -12
- package/src/assets/icons/input.svg +12 -12
- package/src/assets/icons/quill-editor.svg +12 -12
- package/src/assets/icons/radio.svg +12 -12
- package/src/assets/icons/select.svg +12 -12
- package/src/assets/icons/switch.svg +12 -12
- package/src/assets/icons/textarea.svg +12 -12
- package/src/assets/icons/upload-file.svg +12 -12
- package/src/assets/marketplace.js +289 -289
- package/src/components/ComAduitNew.vue +477 -477
- package/src/components/CommonAduit.vue +512 -512
- package/src/components/CommonAduitNew.vue +906 -906
- package/src/components/CommonAduitNews.vue +753 -753
- package/src/components/CommonUEditer.vue +63 -63
- package/src/components/PersonCenter/Mess.vue +59 -59
- package/src/components/PersonCenter/Title.vue +80 -80
- package/src/components/SvgIcon.vue +57 -57
- package/src/components/XmCommonAduit.vue +761 -761
- package/src/components/feiyCommon.vue +713 -713
- package/src/components/form/card.js +5 -5
- package/src/components/form/chinese.js +6 -6
- package/src/components/form/chinessstring.js +5 -5
- package/src/components/form/hunhe.js +8 -8
- package/src/components/form/hunhecq.js +8 -8
- package/src/components/form/hunheh.js +8 -8
- package/src/components/form/num.js +12 -12
- package/src/components/form/numstring.js +5 -5
- package/src/components/form/user.js +7 -7
- package/src/components/form/validate.js +42 -42
- package/src/components/form/validcredit.js +5 -5
- package/src/components/fundCommonAduit.vue +661 -661
- package/src/components/public/BaseCustomTable.vue +71 -71
- package/src/components/public/BaseDialog.vue +144 -144
- package/src/components/public/BaseEmptyData.vue +73 -73
- package/src/components/public/BaseFormTitle.vue +39 -39
- package/src/components/public/BasePagination.vue +55 -55
- package/src/components/public/BaseRouter.vue +14 -14
- package/src/components/public/BaseUpload.vue +185 -185
- package/src/components/public/Bottom.vue +62 -62
- package/src/components/public/Footer.vue +412 -412
- package/src/components/public/Header.vue +30 -30
- package/src/components/public/LeftMenu.vue +170 -170
- package/src/components/public/MemberSelection coby.vue +444 -444
- package/src/components/public/MemberSelection.vue +487 -487
- package/src/components/public/NewLeftMenu.vue +418 -418
- package/src/components/public/PicturesPreview.vue +62 -62
- package/src/components/public/Popout.vue +147 -147
- package/src/components/public/TagLine.vue +353 -353
- package/src/components/public/components/BaseImageUploadDrag.vue +320 -320
- package/src/components/public/components/HeadBar.vue +315 -315
- package/src/components/public/components/MenuList.vue +110 -110
- package/src/components/public/components/NewHeadBar.vue +936 -936
- package/src/components/public/components/QuickGoods.vue +273 -273
- package/src/components/public/components/Search.vue +164 -164
- package/src/components/public/components/Userinfo.vue +383 -383
- package/src/components/utils/pdf.js +254 -254
- package/src/components/xmfyCommonAduit.vue +752 -752
- package/src/filters/index.js +619 -619
- package/src/fnc/arr.js +102 -102
- package/src/fnc/quill-config.js +121 -121
- package/src/fnc/unit.js +102 -102
- package/src/fnc/verify.js +187 -187
- package/src/fnc/verifyStatus.js +24 -24
- package/src/formBuilder/apiBusiness.js +67 -67
- package/src/formBuilder/business.js +1039 -1039
- package/src/formBuilder/component/components/data.js +719 -719
- package/src/formBuilder/component/components/purchaseIndex.vue +1109 -1109
- package/src/formBuilder/component/purchase.vue +35 -35
- package/src/formBuilder/components/app-main/components/components/GroupSummary.vue +33 -33
- package/src/formBuilder/components/app-main/components/components/GroupTitle.vue +33 -33
- package/src/formBuilder/components/app-main/components/components/bank.vue +226 -226
- package/src/formBuilder/components/app-main/components/components/bankFormHeard.vue +298 -298
- package/src/formBuilder/components/app-main/components/components/builder.vue +718 -718
- package/src/formBuilder/components/app-main/components/components/columns.vue +393 -393
- package/src/formBuilder/components/app-main/components/components/customTable.vue +1758 -1758
- package/src/formBuilder/components/app-main/components/components/formDep.vue +105 -105
- package/src/formBuilder/components/app-main/components/components/handleCode.vue +39 -39
- package/src/formBuilder/components/app-main/components/components/itemOption.vue +116 -116
- package/src/formBuilder/components/app-main/components/components/linkForm.vue +116 -116
- package/src/formBuilder/components/app-main/components/components/listDesign.vue +772 -772
- package/src/formBuilder/components/app-main/components/components/optionSolt.js +78 -78
- package/src/formBuilder/components/app-main/components/components/person.vue +104 -104
- package/src/formBuilder/components/app-main/components/components/postman.vue +40 -40
- package/src/formBuilder/components/app-main/components/components/previewDialog.vue +391 -391
- package/src/formBuilder/components/app-main/components/components/tableIndex.vue +51 -51
- package/src/formBuilder/components/app-main/components/components/tableList.vue +561 -561
- package/src/formBuilder/components/app-main/components/components/twoColumns.vue +52 -52
- package/src/formBuilder/components/app-main/components/main-center.vue +187 -187
- package/src/formBuilder/components/app-main/components/main-header.vue +351 -351
- package/src/formBuilder/components/app-main/components/main-left.vue +179 -179
- package/src/formBuilder/components/app-main/components/main-right/components/components/calculateDialog.vue +914 -914
- package/src/formBuilder/components/app-main/components/main-right/components/components/curTextArea.vue +338 -338
- package/src/formBuilder/components/app-main/components/main-right/components/components/form-item-rules.vue +190 -190
- package/src/formBuilder/components/app-main/components/main-right/components/components/linkageDialog.vue +25 -25
- package/src/formBuilder/components/app-main/components/main-right/components/components/searchMixin.js +26 -26
- package/src/formBuilder/components/app-main/components/main-right/components/form-config.vue +284 -284
- package/src/formBuilder/components/app-main/components/main-right/components/form-item-attrs.vue +407 -407
- package/src/formBuilder/components/app-main/components/main-right/components/form-item-config.vue +478 -478
- package/src/formBuilder/components/app-main/components/main-right/index.vue +203 -203
- package/src/formBuilder/components/app-main/index.vue +329 -329
- package/src/formBuilder/comps.js +283 -283
- package/src/formBuilder/config/button.js +63 -63
- package/src/formBuilder/config/cascader-panel.js +224 -224
- package/src/formBuilder/config/cascader.js +306 -306
- package/src/formBuilder/config/checkbox.js +67 -67
- package/src/formBuilder/config/color.js +42 -42
- package/src/formBuilder/config/columns.js +30 -30
- package/src/formBuilder/config/custom-table.js +49 -49
- package/src/formBuilder/config/date.js +107 -107
- package/src/formBuilder/config/daterange.js +47 -47
- package/src/formBuilder/config/datetime.js +78 -78
- package/src/formBuilder/config/datetimerange.js +111 -111
- package/src/formBuilder/config/formDep.js +37 -37
- package/src/formBuilder/config/groupSummary.js +23 -23
- package/src/formBuilder/config/groupTitle.js +23 -23
- package/src/formBuilder/config/handleCode.js +23 -23
- package/src/formBuilder/config/image-uploader.js +113 -113
- package/src/formBuilder/config/input.js +162 -162
- package/src/formBuilder/config/json-editor.js +31 -31
- package/src/formBuilder/config/linkForm.js +69 -69
- package/src/formBuilder/config/number.js +49 -49
- package/src/formBuilder/config/password.js +82 -82
- package/src/formBuilder/config/person.js +37 -37
- package/src/formBuilder/config/postman.js +23 -23
- package/src/formBuilder/config/purchase.js +19 -19
- package/src/formBuilder/config/quill-editor.js +66 -66
- package/src/formBuilder/config/radio-button.js +44 -44
- package/src/formBuilder/config/radio.js +69 -69
- package/src/formBuilder/config/rate.js +93 -93
- package/src/formBuilder/config/select.js +105 -105
- package/src/formBuilder/config/slider.js +92 -92
- package/src/formBuilder/config/switch.js +35 -35
- package/src/formBuilder/config/tag.js +79 -79
- package/src/formBuilder/config/text.js +18 -18
- package/src/formBuilder/config/textarea.js +129 -129
- package/src/formBuilder/config/time.js +60 -60
- package/src/formBuilder/config/timerange.js +94 -94
- package/src/formBuilder/config/tree-select.js +100 -100
- package/src/formBuilder/config/upload-file.js +100 -100
- package/src/formBuilder/config/yesno.js +39 -39
- package/src/formBuilder/config.js +16 -16
- package/src/formBuilder/extend/index.js +20 -20
- package/src/formBuilder/index.js +39 -39
- package/src/formBuilder/menuConfig.js +36 -36
- package/src/formBuilder/mixins/index.js +215 -215
- package/src/formBuilder/tool.js +101 -101
- package/src/function/base.js +13 -13
- package/src/function/findCompanyTree.js +94 -94
- package/src/function/formulaAnalysis.js +44 -44
- package/src/function/verify.js +23 -23
- package/src/http/index.js +219 -219
- package/src/http/type.js +82 -82
- package/src/library/AddType/Index.js +17 -17
- package/src/library/AddType/Index.vue +201 -201
- package/src/library/AreaChange/regionCascader/regionCascader.vue +155 -155
- package/src/library/BigImg/BigImage1/Index.js +17 -17
- package/src/library/BigImg/BigImage1/Index.vue +125 -125
- package/src/library/Button/Button1/Index.js +17 -17
- package/src/library/Button/Button1/Index.vue +60 -60
- package/src/library/Button/Button2/Index.js +17 -17
- package/src/library/Button/Button2/Index.vue +52 -52
- package/src/library/Button/Button3/Index.js +17 -17
- package/src/library/Button/Button3/Index.vue +56 -56
- package/src/library/Button/Button4/Index.js +17 -17
- package/src/library/Button/Button4/Index.vue +56 -56
- package/src/library/Button/Button5/Index.js +17 -17
- package/src/library/Button/Button5/Index.vue +55 -55
- package/src/library/Button/Button6/Index.js +17 -17
- package/src/library/Button/Button6/Index.vue +74 -74
- package/src/library/Button/Button7/Index.js +17 -17
- package/src/library/Button/Button7/Index.vue +56 -56
- package/src/library/ConfirmPlaugin/ConfirmPlaugin1/Index.js +17 -17
- package/src/library/ConfirmPlaugin/ConfirmPlaugin1/Index.vue +147 -147
- package/src/library/ConfirmPlaugin/ConfirmPlaugin2/Index.js +17 -17
- package/src/library/ConfirmPlaugin/ConfirmPlaugin2/Index.vue +137 -137
- package/src/library/ConfirmPlaugin/ConfirmPlaugin3/Index.vue +142 -142
- package/src/library/ConfirmPlaugin/ConfirmPlaugin4/Index.vue +141 -141
- package/src/library/ConfirmPlaugin/ConfirmPlaugin5/Index.vue +121 -121
- package/src/library/ConfirmPlaugin/ConfirmPlaugin6/Index.vue +142 -142
- package/src/library/Input/Input1/Index.js +17 -17
- package/src/library/Input/Input1/Index.vue +66 -66
- package/src/library/NoMessage/NoMessage0/Index.js +17 -17
- package/src/library/NoMessage/NoMessage0/Index.vue +60 -60
- package/src/library/NoMessage/NoMessage1/Index.js +17 -17
- package/src/library/NoMessage/NoMessage1/Index.vue +66 -66
- package/src/library/NoMessage/NoMessage2/Index.js +17 -17
- package/src/library/NoMessage/NoMessage2/Index.vue +66 -66
- package/src/library/Tab/Tab1/TabBox1/Index.vue +36 -36
- package/src/library/Tab/Tab1/TabInner1/Index.vue +70 -70
- package/src/library/Tab/Tab2/TabBox2/Index.vue +36 -36
- package/src/library/Tab/Tab2/TabInner2/Index.vue +66 -66
- package/src/library/Table/Table1/Td1/Index.js +17 -17
- package/src/library/Table/Table1/Td1/Index.vue +110 -110
- package/src/library/Table/Table1/Tr1/Index.js +17 -17
- package/src/library/Table/Table1/Tr1/Index.vue +53 -53
- package/src/library/Table/Table2/Td2/Index.js +17 -17
- package/src/library/Table/Table2/Td2/Index.vue +90 -90
- package/src/library/Table/Table2/Tr2/Index.js +17 -17
- package/src/library/Table/Table2/Tr2/Index.vue +66 -66
- package/src/library/Table/Table3/Td3/Index.js +17 -17
- package/src/library/Table/Table3/Td3/Index.vue +109 -109
- package/src/library/Table/Table3/Tr3/Index.js +17 -17
- package/src/library/Table/Table3/Tr3/Index.vue +128 -128
- package/src/library/Table/Table4/Td4/Index.js +17 -17
- package/src/library/Table/Table4/Td4/Index.vue +114 -114
- package/src/library/Table/Table4/Tr4/Index.js +17 -17
- package/src/library/Table/Table4/Tr4/Index.vue +53 -53
- package/src/library/Title/Title1/Index.js +17 -17
- package/src/library/Title/Title1/Index.vue +80 -80
- package/src/library/toast/Index.js +17 -17
- package/src/library/toast/Index.vue +86 -86
- package/src/main.js +161 -161
- package/src/mixins/Export2Excel.js +207 -207
- package/src/mixins/chartOption.js +110 -110
- package/src/mixins/companyMixins.js +84 -84
- package/src/mixins/quillOptions.js +15 -15
- package/src/mixins/validate/deviceManage.js +211 -211
- package/src/mixins/validate/systemConfig.js +117 -117
- package/src/mixins/validate/validate.js +25 -25
- package/src/public/apiUser/apiUser.js +10 -10
- package/src/public/areaFunction.js +26 -26
- package/src/public/link.js +91 -91
- package/src/public/stageData.js +495 -495
- package/src/public/topmenu.js +68 -68
- package/src/router/index.js +225 -225
- package/src/router/setting/BaseRoutes.js +1639 -1639
- package/src/router/setting/MenuDevMock.js +1570 -1570
- package/src/router/setting/modules/login.js +45 -45
- package/src/router/setting/noAuthRouter.js +109 -109
- package/src/router/setting/routes.js +55 -55
- package/src/static/css/flex.css +75 -75
- package/src/static/css/switch.scss +31 -31
- package/src/storage/cookies.js +37 -37
- package/src/storage/localStorage.js +36 -36
- package/src/storage/sessionStorage.js +25 -25
- package/src/store/formBuilder/formAttrDefault.js +28 -28
- package/src/store/formBuilder/index.js +40 -40
- package/src/store/index.js +553 -553
- package/src/styles/color.scss +24 -24
- package/src/styles/offer.scss +39 -39
- package/src/styles/s-reset.scss +52 -52
- package/src/styles/static-style.scss +797 -797
- package/src/styles/talent.scss +26 -26
- package/src/styles/variable.scss +69 -69
- package/src/styles/workflow/workflow.css +1308 -1308
- package/src/utils/TableFormTypeList.js +26 -26
- package/src/utils/allRouter.js +5579 -5579
- package/src/utils/auditUtil.js +535 -535
- package/src/utils/commonComponents.js +34 -34
- package/src/utils/commonFunc.js +213 -213
- package/src/utils/deepCopyArray.js +9 -9
- package/src/utils/dict.js +49 -49
- package/src/utils/directive.js +26 -26
- package/src/utils/emoji.js +16 -16
- package/src/utils/flator.js +18 -18
- package/src/utils/imMeeting.js +1180 -1180
- package/src/utils/index.js +105 -105
- package/src/utils/initRouter.js +94 -94
- package/src/utils/map.js +23 -23
- package/src/utils/passwordStrength.js +177 -177
- package/src/utils/style.js +30 -30
- package/src/utils/validate.js +30 -30
- package/src/views/404.vue +53 -53
- package/src/views/Login/Login.vue +50 -50
- package/src/views/Login/Passfind.vue +347 -347
- package/src/views/Login/Passfindnext.vue +146 -146
- package/src/views/Login/Sign.vue +55 -55
- package/src/views/Login/SignSuccessfully.vue +132 -132
- package/src/views/Login/appDownload.vue +224 -224
- package/src/views/Login/clientDownload.vue +201 -201
- package/src/views/Login/components/Background.vue +153 -153
- package/src/views/Login/components/FormLogin.vue +1001 -1001
- package/src/views/Login/components/FormPassFind.vue +395 -395
- package/src/views/Login/components/FormSign.vue +493 -493
- package/src/views/Login/components/Title.vue +301 -301
- package/src/views/Login/components/agreeMent.vue +111 -111
- package/src/views/Login/components/companysign.vue +1296 -1296
- package/src/views/Login/components/guideLogin.vue +984 -984
- package/src/views/formBuilder/components/addNode.vue +119 -119
- package/src/views/formBuilder/components/approverSelector.vue +493 -493
- package/src/views/formBuilder/components/baseRoute.vue +315 -315
- package/src/views/formBuilder/components/builderHeader.vue +106 -106
- package/src/views/formBuilder/components/conditionConfig.js +588 -588
- package/src/views/formBuilder/components/conditionNode.vue +191 -191
- package/src/views/formBuilder/components/dataDefault.js +147 -147
- package/src/views/formBuilder/components/depFormNode.vue +583 -583
- package/src/views/formBuilder/components/linkForm.vue +566 -566
- package/src/views/formBuilder/components/linkFormList.vue +821 -821
- package/src/views/formBuilder/components/menuConfig.vue +1752 -1752
- package/src/views/formBuilder/components/newNodeForm.vue +426 -426
- package/src/views/formBuilder/components/newsection.vue +424 -424
- package/src/views/formBuilder/components/nodeConditionConfig cody.vue +376 -376
- package/src/views/formBuilder/components/nodeConditionConfig.vue +603 -603
- package/src/views/formBuilder/components/nodeForm.vue +355 -355
- package/src/views/formBuilder/components/nodeMenu.vue +147 -147
- package/src/views/formBuilder/components/personNode.vue +566 -566
- package/src/views/formBuilder/components/planNode.vue +269 -269
- package/src/views/formBuilder/designListPage.vue +457 -457
- package/src/views/formBuilder/formDataDetail.vue +565 -565
- package/src/views/formBuilder/formGeneration.vue +904 -904
- package/src/views/formBuilder/index.vue +242 -242
- package/src/views/formBuilder/process-1.vue +976 -976
- package/src/views/formBuilder/process-2.vue +1323 -1323
- package/src/views/formBuilder/process.vue +662 -431
- package/src/views/formBuilder/processList.vue +877 -877
- package/src/views/formBuilder/service/ProcessBuilder.js +136 -136
- package/src/views/formBuilder/service/RsxzFieldCollection.js +199 -0
- package/src/views/formBuilder/workflow/addNode.vue +95 -95
- package/src/views/formBuilder/workflow/initData.js +205 -205
- package/src/views/formBuilder/workflow/nodeWrap.vue +731 -731
- package/src/views/guide.vue +227 -227
- package/src/views/guideIndex.vue +284 -284
- package/tests/unit/.eslintrc.js +5 -5
- package/tests/unit/example.spec.js +13 -13
- package/vue.config.js +287 -287
|
@@ -1,1296 +1,1296 @@
|
|
|
1
|
-
<!-- /**
|
|
2
|
-
* 作用于认证管理
|
|
3
|
-
* 采购商认证表单
|
|
4
|
-
* @authors zzt
|
|
5
|
-
* @date 2019-02-19
|
|
6
|
-
* @version 1.0.0
|
|
7
|
-
*/ -->
|
|
8
|
-
<template>
|
|
9
|
-
<div>
|
|
10
|
-
<template v-if="!hasSubmit">
|
|
11
|
-
<div class="buyer-form-box">
|
|
12
|
-
<div class="tc-50"></div>
|
|
13
|
-
<div class="tc-50"></div>
|
|
14
|
-
<!-- <Title2 title="基本信息"></Title2> -->
|
|
15
|
-
<el-form ref="form" label-width="145px" :model="form" :rules="rules">
|
|
16
|
-
<el-form-item label="营业执照图片 :" prop="license">
|
|
17
|
-
<!-- <Uolpad @setMess="setMess" :imgUrl="imgUrl" :showImg="showImg"></Uolpad> -->
|
|
18
|
-
</el-form-item>
|
|
19
|
-
|
|
20
|
-
<el-form-item label="企业名称 :" prop="name">
|
|
21
|
-
<el-input
|
|
22
|
-
placeholder="请填写50个字以内的企业名称"
|
|
23
|
-
@input="oninput('name',50)"
|
|
24
|
-
v-model="form.name"
|
|
25
|
-
:disabled="disabled || mainDisabled"
|
|
26
|
-
></el-input>
|
|
27
|
-
</el-form-item>
|
|
28
|
-
|
|
29
|
-
<el-form-item label="统一社会信用代码 :" prop="creditCode">
|
|
30
|
-
<el-input
|
|
31
|
-
placeholder="请填写18位或15位信用代码"
|
|
32
|
-
@input="oninput('creditCode',18)"
|
|
33
|
-
maxlength="18"
|
|
34
|
-
v-model="form.creditCode"
|
|
35
|
-
:disabled="disabled || mainDisabled"
|
|
36
|
-
></el-input>
|
|
37
|
-
</el-form-item>
|
|
38
|
-
|
|
39
|
-
<el-form-item label="企业类型 :" prop="companyType">
|
|
40
|
-
<el-select
|
|
41
|
-
v-model="form.companyType"
|
|
42
|
-
:disabled="disabled || mainDisabled"
|
|
43
|
-
placeholder="请选择企业类型"
|
|
44
|
-
>
|
|
45
|
-
<el-option
|
|
46
|
-
v-for="(item,index) in companyOptions"
|
|
47
|
-
:key="index"
|
|
48
|
-
:label="item.label"
|
|
49
|
-
:value="item.value"
|
|
50
|
-
></el-option>
|
|
51
|
-
</el-select>
|
|
52
|
-
</el-form-item>
|
|
53
|
-
|
|
54
|
-
<el-form-item label="法定代表人 :" prop="legalRepresentative">
|
|
55
|
-
<el-input
|
|
56
|
-
placeholder="请填写15个字以内的法定代表人姓名"
|
|
57
|
-
@input="oninput('legalRepresentative',15)"
|
|
58
|
-
v-model="form.legalRepresentative"
|
|
59
|
-
:disabled="disabled || mainDisabled"
|
|
60
|
-
></el-input>
|
|
61
|
-
</el-form-item>
|
|
62
|
-
<el-form-item label="企业经营类型 :" prop="serviceType">
|
|
63
|
-
<el-select
|
|
64
|
-
v-model="form.serviceType"
|
|
65
|
-
multiple
|
|
66
|
-
@change="changeTypeService(form.serviceType)"
|
|
67
|
-
placeholder="请选企业经营类型"
|
|
68
|
-
>
|
|
69
|
-
<el-option
|
|
70
|
-
v-for="(item,index) in serviceType"
|
|
71
|
-
:key="index"
|
|
72
|
-
:label="item.name"
|
|
73
|
-
:value="item.code"
|
|
74
|
-
></el-option>
|
|
75
|
-
</el-select>
|
|
76
|
-
</el-form-item>
|
|
77
|
-
<el-form-item label="成立时间 :" prop="establishmentDate">
|
|
78
|
-
<el-date-picker
|
|
79
|
-
@change="changeTime"
|
|
80
|
-
v-model="form.establishmentDate"
|
|
81
|
-
type="date"
|
|
82
|
-
placeholder="请选择企业成立日期"
|
|
83
|
-
></el-date-picker>
|
|
84
|
-
</el-form-item>
|
|
85
|
-
<el-form-item label="营业执照有效期 :" prop="businessTerm">
|
|
86
|
-
<el-date-picker
|
|
87
|
-
@change="changeBusinessTerm"
|
|
88
|
-
v-model="form.businessTerm"
|
|
89
|
-
type="date"
|
|
90
|
-
placeholder="请选择营业执照有效期"
|
|
91
|
-
></el-date-picker>
|
|
92
|
-
<el-checkbox v-model="isLongDate" @change="changeChecked" style="margin-left: 15px">长期</el-checkbox>
|
|
93
|
-
</el-form-item>
|
|
94
|
-
<el-form-item label="注册资本 :" prop="registeredCapital">
|
|
95
|
-
<el-input
|
|
96
|
-
placeholder="请填写企业注册资本"
|
|
97
|
-
oninput="if(value.length>40)value=value.slice(0,40)"
|
|
98
|
-
class="inputWidth300"
|
|
99
|
-
v-model="form.registeredCapital"
|
|
100
|
-
></el-input>
|
|
101
|
-
</el-form-item>
|
|
102
|
-
|
|
103
|
-
<el-form-item label="企业注册地址 :" prop="address">
|
|
104
|
-
<div class="address-select">
|
|
105
|
-
<div>
|
|
106
|
-
<el-select
|
|
107
|
-
:disabled="disabled || mainDisabled"
|
|
108
|
-
v-model="form.provinceNo"
|
|
109
|
-
placeholder="省份"
|
|
110
|
-
@change="changeProvinceNo"
|
|
111
|
-
>
|
|
112
|
-
<el-option
|
|
113
|
-
v-for="item in provinceNoOptions"
|
|
114
|
-
:key="item.value"
|
|
115
|
-
:label="item.label"
|
|
116
|
-
:value="item.value"
|
|
117
|
-
></el-option>
|
|
118
|
-
</el-select>
|
|
119
|
-
</div>
|
|
120
|
-
<div>
|
|
121
|
-
<el-select
|
|
122
|
-
:disabled="disabled || mainDisabled"
|
|
123
|
-
v-model="form.cityNo"
|
|
124
|
-
placeholder="地级市"
|
|
125
|
-
@change="changeCityNo"
|
|
126
|
-
>
|
|
127
|
-
<el-option
|
|
128
|
-
v-for="item in cityNoOptions"
|
|
129
|
-
:key="item.value"
|
|
130
|
-
:label="item.label"
|
|
131
|
-
:value="item.value"
|
|
132
|
-
></el-option>
|
|
133
|
-
</el-select>
|
|
134
|
-
</div>
|
|
135
|
-
<div>
|
|
136
|
-
<el-select
|
|
137
|
-
:disabled="disabled || mainDisabled"
|
|
138
|
-
v-model="form.districtNo"
|
|
139
|
-
placeholder="区/县"
|
|
140
|
-
>
|
|
141
|
-
<el-option
|
|
142
|
-
v-for="item in districtNoOptions"
|
|
143
|
-
:key="item.value"
|
|
144
|
-
:label="item.label"
|
|
145
|
-
:value="item.value"
|
|
146
|
-
></el-option>
|
|
147
|
-
</el-select>
|
|
148
|
-
</div>
|
|
149
|
-
</div>
|
|
150
|
-
<div class="tc-10"></div>
|
|
151
|
-
<div class="tc-5"></div>
|
|
152
|
-
<el-input
|
|
153
|
-
placeholder="请填写企业所在地详细地址"
|
|
154
|
-
@input="oninput('address',100)"
|
|
155
|
-
v-model="form.address"
|
|
156
|
-
:disabled="disabled || mainDisabled"
|
|
157
|
-
></el-input>
|
|
158
|
-
</el-form-item>
|
|
159
|
-
</el-form>
|
|
160
|
-
<div class="set-admin">设置管理员</div>
|
|
161
|
-
<el-form ref="adminForms" label-width="145px" :model="adminForm" :rules="adminFormRules">
|
|
162
|
-
<el-form-item label="手机号码 :" prop="tel">
|
|
163
|
-
<el-input
|
|
164
|
-
autocomplete="off"
|
|
165
|
-
:maxlength="11"
|
|
166
|
-
v-model.trim="adminForm.tel"
|
|
167
|
-
:disabled="!isSign"
|
|
168
|
-
placeholder="请输入11位手机号"
|
|
169
|
-
@input="verifyTel(adminForm.tel)"
|
|
170
|
-
></el-input>
|
|
171
|
-
</el-form-item>
|
|
172
|
-
|
|
173
|
-
<!-- <template v-if="telCanSign"> -->
|
|
174
|
-
<el-form-item v-if="adminFormConfig.showCode" label="验证码 :" prop="code">
|
|
175
|
-
<div class="sign-inner-code login-input">
|
|
176
|
-
<div class="inner-code-text">
|
|
177
|
-
<el-input
|
|
178
|
-
autocomplete="off"
|
|
179
|
-
v-model="adminForm.code"
|
|
180
|
-
placeholder="请输入短信验证码"
|
|
181
|
-
oninput="if(value.length>6)value=value.slice(0,6)"
|
|
182
|
-
></el-input>
|
|
183
|
-
</div>
|
|
184
|
-
<div class="inner-code-button inner-code-button-border" v-if="!this.loading">
|
|
185
|
-
<el-button v-if="isClickButton" @click="getCode" :disabled="buttonDisabled">获取短信验证码</el-button>
|
|
186
|
-
<el-button v-else :disabled="buttonDisabled">获取短信验证码</el-button>
|
|
187
|
-
</div>
|
|
188
|
-
<div class="inner-code-button" v-else>
|
|
189
|
-
<el-button type="primary" :loading="loading" v-show="this.loading">{{time}}s</el-button>
|
|
190
|
-
</div>
|
|
191
|
-
</div>
|
|
192
|
-
</el-form-item>
|
|
193
|
-
<el-form-item v-if="adminFormConfig.showName" label="姓名 :" prop="realName">
|
|
194
|
-
<el-input
|
|
195
|
-
:disabled="!isSign && $store.state.user.personalAuth == 1"
|
|
196
|
-
placeholder="请填写真实姓名"
|
|
197
|
-
@input="oninputs('realName',15)"
|
|
198
|
-
v-model="adminForm.realName"
|
|
199
|
-
></el-input>
|
|
200
|
-
</el-form-item>
|
|
201
|
-
<el-form-item v-if="adminFormConfig.showIdCard" label="身份证号码 :" prop="identityCard">
|
|
202
|
-
<el-input
|
|
203
|
-
:disabled="!isSign && $store.state.user.personalAuth == 1"
|
|
204
|
-
@input="oninputs('identityCard',18)"
|
|
205
|
-
placeholder="请填写18位身份证号码"
|
|
206
|
-
maxlength="18"
|
|
207
|
-
v-model="adminForm.identityCard"
|
|
208
|
-
></el-input>
|
|
209
|
-
</el-form-item>
|
|
210
|
-
<el-form-item v-if="adminFormConfig.showPassWord" label="登录密码 :" prop="password">
|
|
211
|
-
<div class="sign-password">
|
|
212
|
-
<el-input
|
|
213
|
-
v-if="showEye"
|
|
214
|
-
autocomplete="new-password"
|
|
215
|
-
:type="typePassword"
|
|
216
|
-
@focus="onfocus"
|
|
217
|
-
onpaste="return false"
|
|
218
|
-
oncontextmenu="return false"
|
|
219
|
-
oncopy="return false"
|
|
220
|
-
oncut="return false"
|
|
221
|
-
v-model="adminForm.password"
|
|
222
|
-
placeholder="请输入6-18位由数字加字母的密码"
|
|
223
|
-
oninput="if(value.length>18)value=value.slice(0,18)"
|
|
224
|
-
></el-input>
|
|
225
|
-
|
|
226
|
-
<el-input
|
|
227
|
-
v-if="!showEye"
|
|
228
|
-
autocomplete="off"
|
|
229
|
-
type="text"
|
|
230
|
-
onpaste="return false"
|
|
231
|
-
oncontextmenu="return false"
|
|
232
|
-
oncopy="return false"
|
|
233
|
-
oncut="return false"
|
|
234
|
-
v-model="adminForm.password"
|
|
235
|
-
placeholder="请输入6-18位由数字加字母的密码"
|
|
236
|
-
oninput="if(value.length>18)value=value.slice(0,18)"
|
|
237
|
-
></el-input>
|
|
238
|
-
<!-- <el-input placeholder="请输入6-18位由数字加字母的密码" maxlength="18" v-model="adminForm.name"></el-input> -->
|
|
239
|
-
<div class="bg-eye" @click="showEye = !showEye">
|
|
240
|
-
<img v-if="showEye" src="@/assets/login/close-eye.png" alt />
|
|
241
|
-
<img v-if="!showEye" src="@/assets/login/eye.png" alt />
|
|
242
|
-
</div>
|
|
243
|
-
</div>
|
|
244
|
-
</el-form-item>
|
|
245
|
-
<!-- </template> -->
|
|
246
|
-
</el-form>
|
|
247
|
-
<!-- <div class="tc-50"></div> -->
|
|
248
|
-
<div class="protocolbox">
|
|
249
|
-
<el-checkbox v-model="checked">
|
|
250
|
-
<span>
|
|
251
|
-
您确认阅读并接受
|
|
252
|
-
<!-- <a @click="readProtocol">《施工邦企业认证协议》</a> -->
|
|
253
|
-
<a @click="readProtocol">《企管帮企业认证协议》</a>
|
|
254
|
-
</span>
|
|
255
|
-
</el-checkbox>
|
|
256
|
-
</div>
|
|
257
|
-
<div v-if="isSign" class="sign-form-button">
|
|
258
|
-
<el-button :loading="btnLoading" type="primary" :disabled="disabled" @click="comsign">注册</el-button>
|
|
259
|
-
</div>
|
|
260
|
-
<div v-else class="buyer-form-button">
|
|
261
|
-
<el-button :disabled="disabled" @click="reset">取消认证</el-button>
|
|
262
|
-
<el-button
|
|
263
|
-
type="primary"
|
|
264
|
-
:loading="btnLoading"
|
|
265
|
-
:disabled="disabled"
|
|
266
|
-
@click="comsign"
|
|
267
|
-
>{{submitType}}</el-button>
|
|
268
|
-
</div>
|
|
269
|
-
<div class="tc-100"></div>
|
|
270
|
-
<el-dialog title="施工邦供应商认证协议" :visible.sync="dialogVisible" width="50%">
|
|
271
|
-
<div style="text-index:2em; height:500px; overflow-y: scroll;">
|
|
272
|
-
<br />本协议是您与施工邦网站(简称"本站",网址:http://www.shigongbang.com)所有者中钧科技有限公司(以下简称为"施工邦")之间就施工邦网站服务等相关事宜所订立的契约,请您仔细阅读本协议,您点击"同意"按钮后,本协议即构成对双方有约束力的法律文件。
|
|
273
|
-
<br />
|
|
274
|
-
<strong>第一条 本站服务条款的确认和接纳</strong>
|
|
275
|
-
<br />1.1当您使用施工邦提供的会员服务时,您知晓并且同意此《施工邦供应商认证协议》。此协议所述服务仅在施工邦网站内有效。施工邦网站是指http://www.shigongbang.com及其所属网页。此协议在必要时将进行更新,每次改动都会在施工邦上即刻发布,并立即生效。
|
|
276
|
-
<br />1.2如果您拒绝接受修订后的协议,您将无法继续使用施工邦提供的供应商会员服务;若您继续使用施工邦提供的供应商会员服务,则表明您接受新的协议。
|
|
277
|
-
<br />
|
|
278
|
-
<strong>第二条 服务权限</strong>
|
|
279
|
-
|
|
280
|
-
<br />2.1施工邦有权判定您的行为是否符合《施工邦供应商认证协议》的要求,如果您违背了《施工邦供应商认证协议》的规定,施工邦有权决定取消您的会员资格与服务或者采取其他施工邦认为合适的执行措施。
|
|
281
|
-
<br />
|
|
282
|
-
<strong>第三条 用户认证</strong>
|
|
283
|
-
<br />3.1您必须配合完成施工邦的认证服务,认证服务为文件审核。施工邦有权根据您及网站自身运营需要确定对您的资质进行审核。
|
|
284
|
-
<br />3.2审核项目包括公司基本信息、贸易、供货、生产能力和质量管理、行业信息、产品设计开发能力、体系和产品认证、财务信用等内容。
|
|
285
|
-
<br />3.3通过认证服务后您可获得网站产品的购买和发布的权限。
|
|
286
|
-
<br />3.4通过施工邦认证服务且同时符合以下标准的会员,即为施工邦认证供应商:
|
|
287
|
-
<br />3.4.1中国大陆及香港注册的实体企业;
|
|
288
|
-
<br />3.4.2符合生产能力及贸易经验的要求(不同行业及类型有针对性要求);
|
|
289
|
-
<br />3.4.3符合施工邦诚信经营要求。
|
|
290
|
-
<br />
|
|
291
|
-
<strong>第四条 质量要求</strong>
|
|
292
|
-
|
|
293
|
-
<br />4.1双方本着真诚合作、共同发展的目的,为了保证供货商向施工邦提供高质量的产品和服务,满足施工邦的质量要求,避免因产品质量或服务问题造成损失,确保产品原材料及外协加工产品质量达到国家要求标准,保障施工邦平台运营的顺利进行,供应商需要承担的责任如下:
|
|
294
|
-
<br />4.1.1供应商应对自己原材料进行严格的进货检验,并提供产品质量检验报告,以确保提供给施工邦稳定、合格的产品。
|
|
295
|
-
<br />4.1.2供货商应按照双方共用确认的品质要求交货,若因供应方责任导致品质异常而使施工邦遭到会员索赔的,供应商应全额赔偿损失。
|
|
296
|
-
<br />4.1.3供货方按照施工邦需求,提供给施工邦所要求的品牌、等级、规格的产品,供应商不得以其他品牌、等级、规格的产品冒充甲方所需要的材料,出现此类情况,施工邦有权解除合作协议。
|
|
297
|
-
<br />4.1.4施工邦在商品检验中,发现不合格产品,需对供货商开具《供应商质量问题通报》,供货商需在两日内对《供应商质量问题通报》中质量问题的形成原因、纠正预防措施、措施实施时间等内容,以书面形式进行回复。对于施工邦退货批次,供货商还需向施工邦提供退货批次的处理方式和相关质量记录。
|
|
298
|
-
<br />
|
|
299
|
-
<strong>第五条 会员的权利和义务</strong>
|
|
300
|
-
|
|
301
|
-
<br />5.1您在使用施工邦提供的相应服务时必须遵守中国有关法律法规的规定,不得利用施工邦进行任何非法活动;遵守所有与使用施工邦有关的协议、规定、程序和惯例。
|
|
302
|
-
<br />5.2您保证提供的公司名称、联系方式、相关资质文件均是真实有效的。
|
|
303
|
-
<br />5.3通过本账号在施工邦平台上实施的相关行为(如信息修改,下单,投标),均视为您公司的行为,并由您公司承担相关责任义务。
|
|
304
|
-
<br />5.4您如因违反此协议规定的条款给施工邦造成损失,须承担相应的赔偿。
|
|
305
|
-
<br />5.5如您初次加入会员,您应在会员服务开通前完成认证服务。
|
|
306
|
-
<br />5.6认证服务是以您提供的材料为基础而进行的。您须保证提供的文件、材料、信息或样品的真实、完整、有效,不存在任何虚假或误导信息、行为。否则,施工邦有权立即中止认证服务直至终止所有会员服务,由此造成您其他相关服务中断的,施工邦不承担任何责任。
|
|
307
|
-
<br />5.7您不得对认证协议进行任何内容上的篡改,若因您的原因给认证协议造成的任何影响,须免除施工邦的一切责任,并对施工邦造成的损失(包括但不限于律师费)承担赔偿责任。
|
|
308
|
-
<br />
|
|
309
|
-
<strong>第六条 施工邦的权利和义务</strong>
|
|
310
|
-
|
|
311
|
-
<br />6.1对于因不可抗力因素造成的服务中断或其他缺陷(包括自然灾害、社会事件以及因网站所具有的特殊性质而产生的黑客攻击、电信部门技术调整导致的影响、政府管制而造成的暂时性关闭在内的任何影响网络正常运营的因素),施工邦不承担任何责任,但将尽力减少对您造成的损失和影响。
|
|
312
|
-
<br />6.2如因施工邦原因,造成您服务的不正常中断,您有权向施工邦申请会员服务。但施工邦不承担由此致使您蒙受的其他方面的连带损失。
|
|
313
|
-
<br />6.3施工邦有权决定删除您发布的任何违反中国法律、法规、《施工邦供应商认证协议》的内容,或其他施工邦认为不可接受的内容。情节严重者,施工邦有权取消其会员资格。
|
|
314
|
-
<br />
|
|
315
|
-
<strong>第七条 服务中止与终止</strong>
|
|
316
|
-
|
|
317
|
-
<br />7.1施工邦有权在下列情况下,中止或终止您的部分或全部服务:
|
|
318
|
-
<br />7.1.1您违反《施工邦供应商认证协议》及本协议的任何条款;
|
|
319
|
-
<br />7.1.2您提出书面申请,要求中止或终止部分或全部服务;
|
|
320
|
-
<br />7.1.3可能造成服务中止或终止的其他情形。
|
|
321
|
-
<br />
|
|
322
|
-
<strong>第八条 责任声明</strong>
|
|
323
|
-
|
|
324
|
-
<br />8.1施工邦对其网站上提供的信息之有效性、真实性、准确性、稳定性、完整性和及时性等均不作承诺和保证。您理解并接受任何信息资料的传输取决于您自己并由您承担系统受损或资料丢失的所有风险和责任。
|
|
325
|
-
<br />
|
|
326
|
-
<strong>第九条 争议的解决</strong>
|
|
327
|
-
|
|
328
|
-
<br />本协议的订立、执行和解释及争议的解决均应适用在中华人民共和国大陆地区适用之有效法律(但不包括其冲突法规则)。 如发生本协议与适用之法律相抵触时,则这些条款将完全按法律规定重新解释,而其它有效条款继续有效。 如缔约方就本协议内容或其执行发生任何争议,双方应尽力友好协商解决;协商不成时,任何一方均可向有管辖权的中华人民共和国大陆地区法院提起诉讼。
|
|
329
|
-
<br />
|
|
330
|
-
<strong>第十条 版权声明</strong>
|
|
331
|
-
|
|
332
|
-
<br />10.1施工邦的所有内容版权属中钧科技有限公司所有。
|
|
333
|
-
<br />10.2严禁以未经中钧科技有限公司书面许可的任何形式的部分或全部拷贝。
|
|
334
|
-
</div>
|
|
335
|
-
<!-- <span slot="footer" class="dialog-footer">
|
|
336
|
-
<el-button @click="dialogVisible = false">取 消</el-button>
|
|
337
|
-
<el-button type="primary" @click="dialogVisible = false">确 定</el-button>
|
|
338
|
-
</span>-->
|
|
339
|
-
</el-dialog>
|
|
340
|
-
</div>
|
|
341
|
-
</template>
|
|
342
|
-
<template v-else>
|
|
343
|
-
<div class="buyer-form-box">
|
|
344
|
-
<div class="tc-50"></div>
|
|
345
|
-
<div class="tc-50"></div>
|
|
346
|
-
<div class="confirm-text">
|
|
347
|
-
<div>
|
|
348
|
-
<img src="@/assets/login/login-pass.png" alt />
|
|
349
|
-
</div>
|
|
350
|
-
<div>认证提交成功!</div>
|
|
351
|
-
<div>您的认证申请已提交成功,平台将在一个工作日内完成审核,请耐心等待!</div>
|
|
352
|
-
<div>
|
|
353
|
-
<el-button @click="$removeTag('/userenticationManagement')" type="primary">知道了</el-button>
|
|
354
|
-
</div>
|
|
355
|
-
</div>
|
|
356
|
-
</div>
|
|
357
|
-
</template>
|
|
358
|
-
</div>
|
|
359
|
-
</template>
|
|
360
|
-
|
|
361
|
-
<script>
|
|
362
|
-
import verify from "@/fnc/verify.js";
|
|
363
|
-
import apiAuthentication from "@/api/apiAuthentication.js";
|
|
364
|
-
import moment from "moment";
|
|
365
|
-
|
|
366
|
-
import apiAddress from "@/api/apiAddress.js";
|
|
367
|
-
import { isvalidIdCard, isvalidPhone } from "@/components/form/validate";
|
|
368
|
-
import apiChangeTel from "@/api/apiChangeTel";
|
|
369
|
-
import { getCode, sign } from "@/api/apiSign.js";
|
|
370
|
-
import localStorage from "@/storage/localStorage";
|
|
371
|
-
import { Num } from "@/components/form/num.js";
|
|
372
|
-
import { validatePasswordStrength } from "@/utils/passwordStrength";
|
|
373
|
-
import link from "@/public/link";
|
|
374
|
-
|
|
375
|
-
export default {
|
|
376
|
-
name: "BuyerForm",
|
|
377
|
-
mixins: [],
|
|
378
|
-
extends: {},
|
|
379
|
-
props: {
|
|
380
|
-
dataObject: {
|
|
381
|
-
type: Object
|
|
382
|
-
},
|
|
383
|
-
isSign: {
|
|
384
|
-
// 当前是否为注册模块
|
|
385
|
-
default: false,
|
|
386
|
-
type: Boolean
|
|
387
|
-
}
|
|
388
|
-
},
|
|
389
|
-
data() {
|
|
390
|
-
var checkBusinessTerm = (rule, value, callback) => {
|
|
391
|
-
if (this.isLongDate) {
|
|
392
|
-
callback();
|
|
393
|
-
} else {
|
|
394
|
-
if (!value) {
|
|
395
|
-
callback(new Error("请选择有效期"));
|
|
396
|
-
} else {
|
|
397
|
-
const startTime = moment(this.form.establishmentDate).valueOf();
|
|
398
|
-
const endTime = moment(new Date(moment(value).format())).valueOf();
|
|
399
|
-
if (endTime <= startTime) {
|
|
400
|
-
callback(new Error("有效期不能小于或等于成立时间"));
|
|
401
|
-
} else {
|
|
402
|
-
callback();
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
};
|
|
407
|
-
var checkEstablishmentDate = (rule, value, callback) => {
|
|
408
|
-
if (!value) {
|
|
409
|
-
callback(new Error("请选择成立时间"));
|
|
410
|
-
} else {
|
|
411
|
-
const startTime = moment(value).valueOf();
|
|
412
|
-
const endTime = moment(
|
|
413
|
-
new Date(moment(this.form.businessTerm).format())
|
|
414
|
-
).valueOf();
|
|
415
|
-
if (endTime <= startTime) {
|
|
416
|
-
callback(new Error("成立时间不能大于或等于有效期"));
|
|
417
|
-
} else {
|
|
418
|
-
callback();
|
|
419
|
-
}
|
|
420
|
-
}
|
|
421
|
-
};
|
|
422
|
-
var validIdCard = (rule, value, callback) => {
|
|
423
|
-
// 身份证
|
|
424
|
-
if (!value) {
|
|
425
|
-
callback(new Error("请输入身份证号码"));
|
|
426
|
-
} else if (value.length < 18) {
|
|
427
|
-
callback(new Error("身份证号码长度应为18个数字"));
|
|
428
|
-
} else if (!isvalidIdCard(value)) {
|
|
429
|
-
callback(new Error("请输入真实有效的身份证证件号"));
|
|
430
|
-
} else {
|
|
431
|
-
callback();
|
|
432
|
-
}
|
|
433
|
-
};
|
|
434
|
-
var validPhone = (rule, value, callback) => {
|
|
435
|
-
if (!value) {
|
|
436
|
-
callback(new Error("请输入电话号码"));
|
|
437
|
-
} else if (!isvalidPhone(value)) {
|
|
438
|
-
callback(new Error("请输入正确的手机号"));
|
|
439
|
-
} else {
|
|
440
|
-
callback();
|
|
441
|
-
}
|
|
442
|
-
};
|
|
443
|
-
var validCode = (rule, value, callback) => {
|
|
444
|
-
// 验证码
|
|
445
|
-
if (!value) {
|
|
446
|
-
callback(new Error("请输入验证码"));
|
|
447
|
-
} else if (!Num(value)) {
|
|
448
|
-
callback(new Error("验证码输入有误"));
|
|
449
|
-
} else if (!(value.length === 6)) {
|
|
450
|
-
callback(new Error("验证码输入有误"));
|
|
451
|
-
} else {
|
|
452
|
-
callback();
|
|
453
|
-
}
|
|
454
|
-
};
|
|
455
|
-
// 密码验证
|
|
456
|
-
var validPassword = (rule, value, callback) => {
|
|
457
|
-
const Pass = /^(?!\d+$)(?![a-zA-Z]+$)[\da-zA-Z]+$/;
|
|
458
|
-
// /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/
|
|
459
|
-
if (value === "") {
|
|
460
|
-
callback(new Error("密码不能为空"));
|
|
461
|
-
} else if (value.length < 6 || value.length > 18) {
|
|
462
|
-
callback(new Error("密码须由6-18位字母和数字组成"));
|
|
463
|
-
} else if (!Pass.test(value)) {
|
|
464
|
-
callback(new Error("密码只能由数字与字母组成且必须包含数字和字母"));
|
|
465
|
-
} else {
|
|
466
|
-
callback();
|
|
467
|
-
}
|
|
468
|
-
};
|
|
469
|
-
return {
|
|
470
|
-
num: 0,
|
|
471
|
-
dialogVisible: false,
|
|
472
|
-
isLongDate: false,
|
|
473
|
-
serviceType: [],
|
|
474
|
-
submitType: "重新提交",
|
|
475
|
-
checked: true,
|
|
476
|
-
// submitType: '提交认证',
|
|
477
|
-
// 地区选择使用
|
|
478
|
-
provinceNoOptions: [], // 省
|
|
479
|
-
cityNoOptions: [], // 市
|
|
480
|
-
districtNoOptions: [], // 区
|
|
481
|
-
companyOptions: [],
|
|
482
|
-
mainDisabled: false,
|
|
483
|
-
disabled: false,
|
|
484
|
-
showImg: true,
|
|
485
|
-
imgUrl: "",
|
|
486
|
-
loading: false,
|
|
487
|
-
isClickButton: true,
|
|
488
|
-
btnDisabled: false,
|
|
489
|
-
buttonDisabled: true,
|
|
490
|
-
showEye: true,
|
|
491
|
-
time: 60,
|
|
492
|
-
typePassword: "text",
|
|
493
|
-
rules: {
|
|
494
|
-
license: { required: true, message: "请上传营业执照" },
|
|
495
|
-
name: { required: true, trigger: "blur", validator: verify.validName }, // 企业名称
|
|
496
|
-
creditCode: {
|
|
497
|
-
required: true,
|
|
498
|
-
trigger: "blur",
|
|
499
|
-
validator: verify.validCredit
|
|
500
|
-
}, // 统一社会信用代码
|
|
501
|
-
companyType: {
|
|
502
|
-
required: true,
|
|
503
|
-
trigger: "change",
|
|
504
|
-
// validator: verify.companyTypeFun,
|
|
505
|
-
message: "请选择企业类型"
|
|
506
|
-
}, // 企业类
|
|
507
|
-
address: {
|
|
508
|
-
required: true,
|
|
509
|
-
trigger: "blur",
|
|
510
|
-
validator: this.validAttr3
|
|
511
|
-
}, // 企业地址
|
|
512
|
-
legalRepresentative: {
|
|
513
|
-
required: true,
|
|
514
|
-
validator: verify.validAccountname,
|
|
515
|
-
trigger: "blur"
|
|
516
|
-
}, // 法定代表人
|
|
517
|
-
serviceType: [
|
|
518
|
-
{ required: true, message: "请选择企业经营类型", trigger: "change" }
|
|
519
|
-
],
|
|
520
|
-
establishmentDate: [
|
|
521
|
-
{
|
|
522
|
-
required: true,
|
|
523
|
-
validator: checkEstablishmentDate,
|
|
524
|
-
trigger: "change"
|
|
525
|
-
}
|
|
526
|
-
],
|
|
527
|
-
businessTerm: [
|
|
528
|
-
{ required: true, validator: checkBusinessTerm, trigger: "change" }
|
|
529
|
-
]
|
|
530
|
-
// registeredCapital: [{ required: true, trigger: 'blur', validator: this.validRegisteredCapital }]
|
|
531
|
-
},
|
|
532
|
-
form: {
|
|
533
|
-
license: "", // 营业执照
|
|
534
|
-
name: "",
|
|
535
|
-
creditCode: "",
|
|
536
|
-
companyType: "",
|
|
537
|
-
legalRepresentative: "",
|
|
538
|
-
establishmentDate: null,
|
|
539
|
-
businessTerm: "",
|
|
540
|
-
registeredCapital: "",
|
|
541
|
-
serviceType: [],
|
|
542
|
-
address: "",
|
|
543
|
-
// 省市区
|
|
544
|
-
provinceNo: "",
|
|
545
|
-
cityNo: "",
|
|
546
|
-
districtNo: ""
|
|
547
|
-
//
|
|
548
|
-
// taxRate 税率
|
|
549
|
-
},
|
|
550
|
-
adminForm: {
|
|
551
|
-
realName: "",
|
|
552
|
-
identityCard: "",
|
|
553
|
-
tel: "",
|
|
554
|
-
code: "",
|
|
555
|
-
password: ""
|
|
556
|
-
},
|
|
557
|
-
adminFormRules: {
|
|
558
|
-
realName: {
|
|
559
|
-
required: true,
|
|
560
|
-
validator: verify.validAccountname,
|
|
561
|
-
trigger: "blur"
|
|
562
|
-
}, // 姓名
|
|
563
|
-
identityCard: [
|
|
564
|
-
{ required: true, validator: validIdCard, trigger: "blur" }
|
|
565
|
-
], // 身份证
|
|
566
|
-
tel: { required: true, validator: validPhone, trigger: "change" }, // 手机号码
|
|
567
|
-
code: { required: false, validator: validCode, trigger: "blur" }, // 验证码
|
|
568
|
-
password: [
|
|
569
|
-
{ required: true, validator: validPassword, trigger: "blur" }
|
|
570
|
-
]
|
|
571
|
-
},
|
|
572
|
-
identity: {},
|
|
573
|
-
telCanSign: true,
|
|
574
|
-
adminFormConfig: {
|
|
575
|
-
showCode: true,
|
|
576
|
-
showName: true,
|
|
577
|
-
showIdCard: true,
|
|
578
|
-
showPassWord: true
|
|
579
|
-
},
|
|
580
|
-
userNo: "",
|
|
581
|
-
btnLoading: false,
|
|
582
|
-
hasSubmit: false
|
|
583
|
-
};
|
|
584
|
-
},
|
|
585
|
-
computed: {},
|
|
586
|
-
components: {
|
|
587
|
-
// Uolpad: () =>
|
|
588
|
-
// import("@/views/AccountManagement/Authentication/components/Uolpad")
|
|
589
|
-
},
|
|
590
|
-
filter: {},
|
|
591
|
-
watch: {},
|
|
592
|
-
methods: {
|
|
593
|
-
handleClose(done) {},
|
|
594
|
-
// 手机号码验证 获取当前手机号码用户身份
|
|
595
|
-
verifyTel(value) {
|
|
596
|
-
// this.telCanSign = true;
|
|
597
|
-
this.disabledBut();
|
|
598
|
-
for (const item in this.adminFormConfig) {
|
|
599
|
-
// 重置form配置
|
|
600
|
-
this.$set(this.adminFormConfig, item, true);
|
|
601
|
-
}
|
|
602
|
-
for (const item in this.adminForm) {
|
|
603
|
-
// 重置form表单
|
|
604
|
-
if (item === "tel") continue;
|
|
605
|
-
this.$set(this.adminForm, item, "");
|
|
606
|
-
}
|
|
607
|
-
this.$refs["adminForms"].validateField("tel", async errMsg => {
|
|
608
|
-
try {
|
|
609
|
-
if (!errMsg) {
|
|
610
|
-
const res = await apiAuthentication.queryUserAuthByPhone(
|
|
611
|
-
this.adminForm.tel
|
|
612
|
-
);
|
|
613
|
-
const data = res.data.data;
|
|
614
|
-
if (res.data.code === 200) {
|
|
615
|
-
const { type, no } = data;
|
|
616
|
-
this.userNo = no;
|
|
617
|
-
if (this.isSign) {
|
|
618
|
-
if (Number(type) === 1) {
|
|
619
|
-
this.telCanSign = true;
|
|
620
|
-
} else {
|
|
621
|
-
this.telCanSign = false;
|
|
622
|
-
// this.$alert("该手机号码已注册,无法再次注册");
|
|
623
|
-
}
|
|
624
|
-
} else {
|
|
625
|
-
for (const item in this.adminFormConfig) {
|
|
626
|
-
// 重置form配置
|
|
627
|
-
this.$set(this.adminFormConfig, item, false);
|
|
628
|
-
}
|
|
629
|
-
this.$set(this.adminFormConfig, "showName", true);
|
|
630
|
-
this.$set(this.adminFormConfig, "showIdCard", true);
|
|
631
|
-
if (this.$store.state.user.personalAuth == 1) {
|
|
632
|
-
// 已经实名认证过
|
|
633
|
-
this.telCanSign = true;
|
|
634
|
-
// for (let item in this.adminFormConfig) {
|
|
635
|
-
// // 重置form配置
|
|
636
|
-
// this.$set(this.adminFormConfig, item, false);
|
|
637
|
-
// }
|
|
638
|
-
// this.$set(this.adminFormConfig, "showName", true);
|
|
639
|
-
// this.$set(this.adminFormConfig, "showIdCard", true);
|
|
640
|
-
|
|
641
|
-
this.$set(this.adminForm, "realName", data.realName);
|
|
642
|
-
this.$set(this.adminForm, "identityCard", data.identityCard);
|
|
643
|
-
} else {
|
|
644
|
-
this.telCanSign = true;
|
|
645
|
-
// this.$set(this.adminFormConfig, "showName", true);
|
|
646
|
-
// this.$set(this.adminFormConfig, "showIdCard", true);
|
|
647
|
-
}
|
|
648
|
-
}
|
|
649
|
-
|
|
650
|
-
// switch (Number(type)) {
|
|
651
|
-
// case 0:
|
|
652
|
-
// this.$alert("该手机号码已经进行过企业认证,无法再次认证");
|
|
653
|
-
// break;
|
|
654
|
-
// case 1:
|
|
655
|
-
// this.telCanSign = true;
|
|
656
|
-
// break;
|
|
657
|
-
// case 2:
|
|
658
|
-
// this.$alert("该手机号码已经进行过司机认证,无法再次认证");
|
|
659
|
-
// break;
|
|
660
|
-
// case 3: // 未实名认证
|
|
661
|
-
// this.telCanSign = true;
|
|
662
|
-
// this.$set(this.adminFormConfig, "showCode", false);
|
|
663
|
-
// this.$set(this.adminFormConfig, "showPassWord", false);
|
|
664
|
-
// break;
|
|
665
|
-
// case 4:
|
|
666
|
-
// this.telCanSign = true;
|
|
667
|
-
// for (let item in this.adminFormConfig) {
|
|
668
|
-
// // 重置form配置
|
|
669
|
-
// this.$set(this.adminFormConfig, item, false);
|
|
670
|
-
// }
|
|
671
|
-
// this.$set(this.adminFormConfig, "showName", true);
|
|
672
|
-
// this.$set(this.adminForm, "realName", data.realName);
|
|
673
|
-
|
|
674
|
-
// break;
|
|
675
|
-
// default:
|
|
676
|
-
// break;
|
|
677
|
-
// }
|
|
678
|
-
}
|
|
679
|
-
} else {
|
|
680
|
-
}
|
|
681
|
-
} catch (error) {}
|
|
682
|
-
});
|
|
683
|
-
// if (value.length > 11) value = value.slice(0, 11);
|
|
684
|
-
// return value
|
|
685
|
-
},
|
|
686
|
-
onfocus() {
|
|
687
|
-
this.typePassword = "password";
|
|
688
|
-
},
|
|
689
|
-
async getCode() {
|
|
690
|
-
this.isClickButton = false;
|
|
691
|
-
// this.sendSucc()
|
|
692
|
-
|
|
693
|
-
const res = await getCode({ telPhone: this.adminForm.tel });
|
|
694
|
-
|
|
695
|
-
if (res.data.success === "true" || res.data.success === true) {
|
|
696
|
-
this.sendSucc();
|
|
697
|
-
} else {
|
|
698
|
-
this.agree = false;
|
|
699
|
-
this.$message({
|
|
700
|
-
message: res.data.msg,
|
|
701
|
-
type: "warning",
|
|
702
|
-
duration: 3000
|
|
703
|
-
});
|
|
704
|
-
}
|
|
705
|
-
this.isClickButton = true;
|
|
706
|
-
},
|
|
707
|
-
sendSucc() {
|
|
708
|
-
const that = this;
|
|
709
|
-
that.loading = true;
|
|
710
|
-
const time = new Date();
|
|
711
|
-
localStorage.set("sendAdminPhone" + this.adminForm.tel, Number(time));
|
|
712
|
-
localStorage.set("sendAdminPhone", Number(time));
|
|
713
|
-
// this.isSend = true
|
|
714
|
-
that.$_toast({ msg: "验证码已发送到您的手机,请查收!" });
|
|
715
|
-
|
|
716
|
-
var timeOut = setInterval(() => {
|
|
717
|
-
that.time = that.time - 1;
|
|
718
|
-
if (that.time === 0) {
|
|
719
|
-
clearInterval(timeOut);
|
|
720
|
-
that.loading = false;
|
|
721
|
-
that.time = 60;
|
|
722
|
-
}
|
|
723
|
-
}, 1000);
|
|
724
|
-
},
|
|
725
|
-
setPushTime() {
|
|
726
|
-
const time = localStorage.read("sendAdminPhone");
|
|
727
|
-
|
|
728
|
-
const timeInitialize = 60;
|
|
729
|
-
const timeDifference = (Number(new Date()) - time) / 1000;
|
|
730
|
-
|
|
731
|
-
const leadTime = timeInitialize - timeDifference.toFixed(0);
|
|
732
|
-
|
|
733
|
-
if (leadTime > 0) {
|
|
734
|
-
this.loading = true;
|
|
735
|
-
const that = this;
|
|
736
|
-
that.time = leadTime;
|
|
737
|
-
var timeOut = setInterval(() => {
|
|
738
|
-
that.time = that.time - 1;
|
|
739
|
-
if (that.time === 0) {
|
|
740
|
-
clearInterval(timeOut);
|
|
741
|
-
that.loading = false;
|
|
742
|
-
that.time = 60;
|
|
743
|
-
}
|
|
744
|
-
}, 1000);
|
|
745
|
-
return;
|
|
746
|
-
}
|
|
747
|
-
localStorage.clear("sendAdminPhone");
|
|
748
|
-
},
|
|
749
|
-
disabledBut() {
|
|
750
|
-
this.buttonDisabled = !isvalidPhone(this.adminForm.tel);
|
|
751
|
-
},
|
|
752
|
-
// 有效期选择处理
|
|
753
|
-
changeBusinessTerm(val) {
|
|
754
|
-
console.log(val);
|
|
755
|
-
this.form.businessTerm = val;
|
|
756
|
-
this.isLongDate = false;
|
|
757
|
-
},
|
|
758
|
-
changeChecked(val) {
|
|
759
|
-
if (val) {
|
|
760
|
-
this.isLongDate = val;
|
|
761
|
-
this.form.businessTerm = "";
|
|
762
|
-
}
|
|
763
|
-
},
|
|
764
|
-
reset() {
|
|
765
|
-
this.$removeTag("/authenticationManagement");
|
|
766
|
-
},
|
|
767
|
-
changeTypeService(item) {},
|
|
768
|
-
changeTime() {},
|
|
769
|
-
validRegisteredCapital(rule, value, callback) {
|
|
770
|
-
const num = Number(value);
|
|
771
|
-
if (value === "") {
|
|
772
|
-
callback(new Error("请填写注册资本"));
|
|
773
|
-
} else if (value == 0 || value[0] == 0) {
|
|
774
|
-
callback(new Error("请填写纯数字注册资本。"));
|
|
775
|
-
} else if (isNaN(num)) {
|
|
776
|
-
callback(new Error("请填写纯数字注册资本。"));
|
|
777
|
-
} else {
|
|
778
|
-
callback();
|
|
779
|
-
}
|
|
780
|
-
},
|
|
781
|
-
async getServiceTypeList() {
|
|
782
|
-
const list = await apiAuthentication.getServiceTypeList();
|
|
783
|
-
this.serviceType = list.data.data;
|
|
784
|
-
},
|
|
785
|
-
|
|
786
|
-
readProtocol() {
|
|
787
|
-
this.checked = true;
|
|
788
|
-
this.dialogVisible = true;
|
|
789
|
-
// this.$alert(
|
|
790
|
-
// '<div><p class="protocolText">本协议是您与施工邦网站(简称"本站",网址:http://www.shigongbang.com)所有者中钧科技有限公司(以下简称为"施工邦")之间就施工邦网站服务等相关事宜所订立的契约,请您仔细阅读本协议,您点击"同意"按钮后,本协议即构成对双方有约束力的法律文件。</p><p class="protocolSmallTitle">第一条本站服务条款的确认和接纳</p><p class="protocolText">1.1当您使用施工邦提供的会员服务时,您知晓并且同意此《施工邦供应商认证协议》。此协议所述服务仅在施工邦网站内有效。施工邦网站是指http://www.shigongbang.com及其所属网页。此协议在必要时将进行更新,每次改动都会在施工邦上即刻发布,并立即生效。</p><p class="protocolText">1.2如果您拒绝接受修订后的协议,您将无法继续使用施工邦提供的供应商会员服务;若您继续使用施工邦提供的供应商会员服务,则表明您接受新的协议。</p><p class="protocolSmallTitle">第二条服务权限</p><p class="protocolText">2.1施工邦有权判定您的行为是否符合《施工邦供应商认证协议》的要求,如果您违背了《施工邦供应商认证协议》的规定,施工邦有权决定取消您的会员资格与服务或者采取其他施工邦认为合适的执行措施。</p><p class="protocolSmallTitle">第三条用户认证</p><p class="protocolText">3.1您必须配合完成施工邦的认证服务,认证服务为文件审核。施工邦有权根据您及网站自身运营需要确定对您的资质进行审核。3.2审核项目包括公司基本信息、贸易、供货、生产能力和质量管理、行业信息、产品设计开发能力、体系和产品认证、财务信用等内容。3.3通过认证服务后您可获得网站产品的购买和发布的权限。3.4通过施工邦认证服务且同时符合以下标准的会员,即为施工邦认证供应商:3.4.1中国大陆及香港注册的实体企业;3.4.2符合生产能力及贸易经验的要求(不同行业及类型有针对性要求);3.4.3符合施工邦诚信经营要求。</p><p class="protocolSmallTitle">第四条质量要求</p><p class="protocolText">4.1.1供应商应对自己原材料进行严格的进货检验,并提供产品质量检验报告,以确保提供给施工邦稳定、合格的产品。4.1.2供货商应按照双方共用确认的品质要求交货,若因供应方责任导致品质异常而使施工邦遭到客户索赔的,供应商应全额赔偿损失。4.1.3供货方按照施工邦需求,提供给施工邦所要求的品牌、等级、规格的产品,供应商不得以其他品牌、等级、规格的产品冒充甲方所需要的材料,出现此类情况,施工邦有权解除合作协议。4.1.4施工邦在商品检验中,发现不合格产品,需对供货商开具《供应商质量问题通报》,供货商需在两日内对《供应商质量问题通报》中质量问题的形成原因、纠正预防措施、措施实施时间等内容,以书面形式进行回复。对于施工邦退货批次,供货商还需向施工邦提供退货批次的处理方式和相关质量记录。</p><p class="protocolSmallTitle">第五条会员的权利和义务</p><p class="protocolText">5.1您在使用施工邦提供的相应服务时必须遵守中国有关法律法规的规定,不得利用施工邦进行任何非法活动;遵守所有与使用施工邦有关的协议、规定、程序和惯例。5.2您保证提供的公司名称、联系方式、相关资质文件均是真实有效的。5.3通过本账号在施工邦平台上实施的相关行为(如信息修改,下单,投标),均视为您公司的行为,并由您公司承担相关责任义务。5.4您如因违反此协议规定的条款给施工邦造成损失,须承担相应的赔偿。5.5如您初次加入会员,您应在会员服务开通前完成认证服务。5.6认证服务是以您提供的材料为基础而进行的。您须保证提供的文件、材料、信息或样品的真实、完整、有效,不存在任何虚假或误导信息、行为。否则,施工邦有权立即中止认证服务直至终止所有会员服务,由此造成您其他相关服务中断的,施工邦不承担任何责任。5.7您不得对认证协议进行任何内容上的篡改,若因您的原因给认证协议造成的任何影响,须免除施工邦的一切责任,并对施工邦造成的损失(包括但不限于律师费)承担赔偿责任。</p><p class="protocolSmallTitle">第六条施工邦的权利和义务</p><p class="protocolText">6.1对于因不可抗力因素造成的服务中断或其他缺陷(包括自然灾害、社会事件以及因网站所具有的特殊性质而产生的黑客攻击、电信部门技术调整导致的影响、政府管制而造成的暂时性关闭在内的任何影响网络正常运营的因素),施工邦不承担任何责任,但将尽力减少对您造成的损失和影响。6.2如因施工邦原因,造成您服务的不正常中断,您有权向施工邦申请会员服务。但施工邦不承担由此致使您蒙受的其他方面的连带损失。6.3施工邦有权决定删除您发布的任何违反中国法律、法规、《施工邦供应商认证协议》的内容,或其他施工邦认为不可接受的内容。情节严重者,施工邦有权取消其会员资格。</p><p class="protocolSmallTitle">第七条服务中止与终止</p><p class="protocolText">7.1施工邦有权在下列情况下,中止或终止您的部分或全部服务:7.1.1您违反《施工邦供应商认证协议》及本协议的任何条款;7.1.2您提出书面申请,要求中止或终止部分或全部服务;7.1.3可能造成服务中止或终止的其他情形。</p><p class="protocolSmallTitle">第八条责任声明</p><p class="protocolText">8.1施工邦对其网站上提供的信息之有效性、真实性、准确性、稳定性、完整性和及时性等均不作承诺和保证。您理解并接受任何信息资料的传输取决于您自己并由您承担系统受损或资料丢失的所有风险和责任。</p><p class="protocolSmallTitle">第九条争议的解决</p><p class="protocolText">本协议的订立、执行和解释及争议的解决均应适用在中华人民共和国大陆地区适用之有效法律(但不包括其冲突法规则)。如发生本协议与适用之法律相抵触时,则这些条款将完全按法律规定重新解释,而其它有效条款继续有效。如缔约方就本协议内容或其执行发生任何争议,双方应尽力友好协商解决;协商不成时,任何一方均可向有管辖权的中华人民共和国大陆地区法院提起诉讼。</p><p class="protocolSmallTitle">第十条版权声明</p><p class="protocolText">10.1施工邦的所有内容版权属中钧科技有限公司所有。10.2严禁以未经中钧科技有限公司书面许可的任何形式的部分或全部拷贝。</p></div>',
|
|
791
|
-
// "施工邦供应商认证协议",
|
|
792
|
-
// {
|
|
793
|
-
// dangerouslyUseHTMLString: true,
|
|
794
|
-
// customClass: "lookOver",
|
|
795
|
-
// confirmButtonText: "同意协议"
|
|
796
|
-
// }
|
|
797
|
-
// ).then(() => {
|
|
798
|
-
// this.checked = true;
|
|
799
|
-
// });
|
|
800
|
-
},
|
|
801
|
-
changeProvinceNo() {
|
|
802
|
-
this.setCityNoOptions();
|
|
803
|
-
this.form.cityNo = "";
|
|
804
|
-
this.form.districtNo = "";
|
|
805
|
-
},
|
|
806
|
-
changeCityNo() {
|
|
807
|
-
this.setDistrictNoOptions();
|
|
808
|
-
this.form.districtNo = "";
|
|
809
|
-
},
|
|
810
|
-
validAttr3(rule, value, callback) {
|
|
811
|
-
// 详细注册地址
|
|
812
|
-
if (value.length === 0) {
|
|
813
|
-
callback(new Error("请填写100字以内的企业所在地详情地址"));
|
|
814
|
-
} else if (value.length > 100) {
|
|
815
|
-
callback(new Error("请填写100字以内的企业所在地详情地址"));
|
|
816
|
-
} else if (this.form.provinceNo === "") {
|
|
817
|
-
callback(new Error("请选择省"));
|
|
818
|
-
} else if (this.form.cityNo === "") {
|
|
819
|
-
callback(new Error("请选择地级市"));
|
|
820
|
-
} else if (this.form.districtNo === "") {
|
|
821
|
-
callback(new Error("请选择区/县"));
|
|
822
|
-
} else {
|
|
823
|
-
callback();
|
|
824
|
-
}
|
|
825
|
-
},
|
|
826
|
-
oninput(name, slice) {
|
|
827
|
-
if (this.form[name].length > slice) {
|
|
828
|
-
this.form[name] = this.form[name].slice(0, slice);
|
|
829
|
-
}
|
|
830
|
-
},
|
|
831
|
-
oninputs(name, slice) {
|
|
832
|
-
if (this.adminForm[name].length > slice) {
|
|
833
|
-
this.adminForm[name] = this.adminForm[name].slice(0, slice);
|
|
834
|
-
}
|
|
835
|
-
},
|
|
836
|
-
setPhoto(data, imgurl) {
|
|
837
|
-
this.form.authorization = imgurl;
|
|
838
|
-
// imgurl 为照片路径
|
|
839
|
-
},
|
|
840
|
-
async submit() {
|
|
841
|
-
await this.validateForm();
|
|
842
|
-
if (this.checked) {
|
|
843
|
-
this.$refs["form"].validate(valid => {
|
|
844
|
-
// let num = Number(this.form.registeredCapital)
|
|
845
|
-
// if (isNaN(num)) {
|
|
846
|
-
// this.$_toast({ msg: '请填写纯数字注册资本。', type: 'error' })
|
|
847
|
-
// return
|
|
848
|
-
// }
|
|
849
|
-
|
|
850
|
-
// if (this.form.registeredCapital.length > 0) {
|
|
851
|
-
// if (this.form.registeredCapital === '') {
|
|
852
|
-
// this.$_toast({ msg: '请填写注册资本', type: 'error' })
|
|
853
|
-
// return
|
|
854
|
-
// } else if (this.form.registeredCapital == 0 || this.form.registeredCapital[0] == 0) {
|
|
855
|
-
// this.$_toast({ msg: '请填写纯数字注册资本。', type: 'error' })
|
|
856
|
-
// return
|
|
857
|
-
// }
|
|
858
|
-
// }
|
|
859
|
-
if (!valid) {
|
|
860
|
-
return false;
|
|
861
|
-
}
|
|
862
|
-
// this.setBuyer();
|
|
863
|
-
});
|
|
864
|
-
} else {
|
|
865
|
-
this.$message({
|
|
866
|
-
message: "请确认已阅读《施工邦企业认证协议》",
|
|
867
|
-
type: "warning"
|
|
868
|
-
});
|
|
869
|
-
}
|
|
870
|
-
},
|
|
871
|
-
validateForm() {
|
|
872
|
-
// 验证表单结果
|
|
873
|
-
return new Promise((resolve, reject) => {
|
|
874
|
-
try {
|
|
875
|
-
Promise.all(
|
|
876
|
-
["form", "adminForms"].map(item => {
|
|
877
|
-
return this.$refs[item].validate();
|
|
878
|
-
})
|
|
879
|
-
)
|
|
880
|
-
.then(res => {
|
|
881
|
-
resolve(true);
|
|
882
|
-
})
|
|
883
|
-
.catch(e => {});
|
|
884
|
-
} catch (error) {
|
|
885
|
-
console.log("捕获异常");
|
|
886
|
-
}
|
|
887
|
-
});
|
|
888
|
-
},
|
|
889
|
-
async comsign() {
|
|
890
|
-
const { score: passwordStrengthScore } = validatePasswordStrength(
|
|
891
|
-
this.adminForm.password
|
|
892
|
-
);
|
|
893
|
-
const obj = {
|
|
894
|
-
accountname: this.adminForm.tel,
|
|
895
|
-
telPhone: this.adminForm.tel,
|
|
896
|
-
username: this.adminForm.tel,
|
|
897
|
-
userNo: this.userNo,
|
|
898
|
-
passwordStrengthScore
|
|
899
|
-
};
|
|
900
|
-
await this.validateForm(); // 表单验证
|
|
901
|
-
if (!this.checked) {
|
|
902
|
-
this.$message({
|
|
903
|
-
message: "请确认已阅读《施工邦企业认证协议》",
|
|
904
|
-
type: "warning"
|
|
905
|
-
});
|
|
906
|
-
return false;
|
|
907
|
-
}
|
|
908
|
-
if (!this.telCanSign && this.isSign) {
|
|
909
|
-
this.$message({
|
|
910
|
-
message: "当前手机号码不可再次注册",
|
|
911
|
-
type: "error"
|
|
912
|
-
});
|
|
913
|
-
return false;
|
|
914
|
-
}
|
|
915
|
-
const params = Object.assign(this.form, {
|
|
916
|
-
userDTO: Object.assign(this.adminForm, obj)
|
|
917
|
-
});
|
|
918
|
-
|
|
919
|
-
if (this.isLongDate) {
|
|
920
|
-
params.businessTerm =
|
|
921
|
-
moment(this.form.establishmentDate).format("YYYY年MM月DD日") +
|
|
922
|
-
"至长期";
|
|
923
|
-
} else {
|
|
924
|
-
params.businessTerm =
|
|
925
|
-
moment(this.form.establishmentDate).format("YYYY年MM月DD日") +
|
|
926
|
-
"至" +
|
|
927
|
-
moment(this.form.businessTerm).format("YYYY年MM月DD日");
|
|
928
|
-
}
|
|
929
|
-
params.establishmentDate = moment(params.establishmentDate).valueOf();
|
|
930
|
-
console.log(params);
|
|
931
|
-
// return false
|
|
932
|
-
this.btnLoading = true;
|
|
933
|
-
const res = await apiAuthentication.companyAuthV1(params);
|
|
934
|
-
if (res.data.code === 200) {
|
|
935
|
-
this.btnLoading = false;
|
|
936
|
-
if (this.isSign) {
|
|
937
|
-
// this.$message({
|
|
938
|
-
// message: res.data.data,
|
|
939
|
-
// type: "success"
|
|
940
|
-
// });
|
|
941
|
-
link.blank_index(); // 注册完成之后跳转至大首页
|
|
942
|
-
} else {
|
|
943
|
-
this.hasSubmit = true;
|
|
944
|
-
}
|
|
945
|
-
} else {
|
|
946
|
-
this.$message.error(res.data.msg);
|
|
947
|
-
this.btnLoading = false;
|
|
948
|
-
}
|
|
949
|
-
|
|
950
|
-
},
|
|
951
|
-
async setBuyer() {
|
|
952
|
-
this.showImg = false;
|
|
953
|
-
this.disabled = true;
|
|
954
|
-
const params = {
|
|
955
|
-
id: this.form.id,
|
|
956
|
-
address: this.form.address,
|
|
957
|
-
|
|
958
|
-
companyType: this.form.companyType,
|
|
959
|
-
creditCode: this.form.creditCode,
|
|
960
|
-
|
|
961
|
-
legalRepresentative: this.form.legalRepresentative,
|
|
962
|
-
license: this.form.license,
|
|
963
|
-
name: this.form.name,
|
|
964
|
-
// registeredCapital: this.form.registeredCapital,
|
|
965
|
-
|
|
966
|
-
provinceNo: this.form.provinceNo,
|
|
967
|
-
cityNo: this.form.cityNo,
|
|
968
|
-
districtNo: this.form.districtNo,
|
|
969
|
-
establishmentDate: this.form.establishmentDate,
|
|
970
|
-
registeredCapital: this.form.registeredCapital,
|
|
971
|
-
serviceType: this.form.serviceType.join(",")
|
|
972
|
-
};
|
|
973
|
-
|
|
974
|
-
if (this.isLongDate) {
|
|
975
|
-
params.businessTerm =
|
|
976
|
-
moment(this.form.establishmentDate).format("YYYY年MM月DD日") +
|
|
977
|
-
"至长期";
|
|
978
|
-
} else {
|
|
979
|
-
params.businessTerm =
|
|
980
|
-
moment(this.form.establishmentDate).format("YYYY年MM月DD日") +
|
|
981
|
-
"至" +
|
|
982
|
-
moment(this.form.businessTerm).format("YYYY年MM月DD日");
|
|
983
|
-
}
|
|
984
|
-
params.establishmentDate = moment(params.establishmentDate).valueOf();
|
|
985
|
-
|
|
986
|
-
// let res = await apiAuthentication.companyAuth(params);
|
|
987
|
-
const res = await apiAuthentication.companyAuthV1(params);
|
|
988
|
-
if (res.data.code === 200) {
|
|
989
|
-
// this.$_toast({ msg: res.data.msg })
|
|
990
|
-
// this.$router.push({ path: '/authenticationCompanySuccess' })
|
|
991
|
-
this.$removeTag("/authenticationCompanySuccess");
|
|
992
|
-
// this.$router.go(0)
|
|
993
|
-
} else {
|
|
994
|
-
this.$message({
|
|
995
|
-
message: res.data.msg,
|
|
996
|
-
type: "warning"
|
|
997
|
-
});
|
|
998
|
-
// this.$_toast({ type: 'error', msg: res.data.msg })
|
|
999
|
-
this.disabled = false;
|
|
1000
|
-
this.showImg = true;
|
|
1001
|
-
}
|
|
1002
|
-
},
|
|
1003
|
-
setMess(data, imgurl) {
|
|
1004
|
-
// businessTerm
|
|
1005
|
-
this.form.license = imgurl;
|
|
1006
|
-
this.form.name = data.name;
|
|
1007
|
-
this.form.creditCode = data.reg_num;
|
|
1008
|
-
let str1, str2;
|
|
1009
|
-
if (data.establish_date) {
|
|
1010
|
-
str1 = data.establish_date.replace("年", "-");
|
|
1011
|
-
str1 = str1.replace("月", "-");
|
|
1012
|
-
str1 = str1.replace("日", "");
|
|
1013
|
-
}
|
|
1014
|
-
// 企业类型
|
|
1015
|
-
this.form.legalRepresentative = data.person;
|
|
1016
|
-
this.form.establishmentDate = str1;
|
|
1017
|
-
if (data.valid_period === "长期") {
|
|
1018
|
-
this.isLongDate = true;
|
|
1019
|
-
this.form.businessTerm = "";
|
|
1020
|
-
} else {
|
|
1021
|
-
console.log("营业照日期", str2);
|
|
1022
|
-
str2 = data.valid_period.replace("年", "-");
|
|
1023
|
-
str2 = str2.replace("月", "-");
|
|
1024
|
-
str2 = str2.replace("日", "");
|
|
1025
|
-
this.form.businessTerm = str2 || "";
|
|
1026
|
-
this.isLongDate = true;
|
|
1027
|
-
}
|
|
1028
|
-
// this.$refs["form"].validate([])
|
|
1029
|
-
this.$refs["form"].validateField([
|
|
1030
|
-
"license",
|
|
1031
|
-
"name",
|
|
1032
|
-
"creditCode",
|
|
1033
|
-
"legalRepresentative",
|
|
1034
|
-
"establishmentDate"
|
|
1035
|
-
]);
|
|
1036
|
-
// establish_date
|
|
1037
|
-
// valid_period 有效期
|
|
1038
|
-
// this.form.registeredCapital = data.capital
|
|
1039
|
-
|
|
1040
|
-
// 有限责任公司(自然人投资或控股)
|
|
1041
|
-
},
|
|
1042
|
-
|
|
1043
|
-
getOption(data) {
|
|
1044
|
-
// 数据格式化 增加 label 和 value字段
|
|
1045
|
-
const arr = data;
|
|
1046
|
-
for (let i = 0; i < arr.length; i++) {
|
|
1047
|
-
arr[i].label = arr[i].name;
|
|
1048
|
-
arr[i].value = arr[i].no;
|
|
1049
|
-
}
|
|
1050
|
-
return arr;
|
|
1051
|
-
},
|
|
1052
|
-
async getAddress(level, parentNo) {
|
|
1053
|
-
// 1 650000
|
|
1054
|
-
const res = await apiAddress.getAddress(level, { parentNo: parentNo });
|
|
1055
|
-
return res.data.data;
|
|
1056
|
-
},
|
|
1057
|
-
async setProvinceNoOptions() {
|
|
1058
|
-
// 获取省 select 列表
|
|
1059
|
-
const list = await this.getAddress(1);
|
|
1060
|
-
const provinceNoOptions = this.getOption(list);
|
|
1061
|
-
this.provinceNoOptions = provinceNoOptions;
|
|
1062
|
-
},
|
|
1063
|
-
async setCityNoOptions() {
|
|
1064
|
-
// 获取市 select 列表
|
|
1065
|
-
const list = await this.getAddress(1, this.form.provinceNo);
|
|
1066
|
-
const cityNoOptions = this.getOption(list);
|
|
1067
|
-
this.cityNoOptions = cityNoOptions;
|
|
1068
|
-
},
|
|
1069
|
-
async setDistrictNoOptions() {
|
|
1070
|
-
// 获取区 select 列表
|
|
1071
|
-
const list = await this.getAddress(1, this.form.cityNo);
|
|
1072
|
-
const districtNoOptions = this.getOption(list);
|
|
1073
|
-
this.districtNoOptions = districtNoOptions;
|
|
1074
|
-
},
|
|
1075
|
-
setBusinessTerm(str) { // 设置营业执照有效期回显数据
|
|
1076
|
-
if (str && str.length) {
|
|
1077
|
-
const len = str.length;
|
|
1078
|
-
const flagstr = str.substring(str.indexOf("至") + 1, len);
|
|
1079
|
-
if (flagstr === "长期") {
|
|
1080
|
-
this.isLongDate = true;
|
|
1081
|
-
this.form.businessTerm = "";
|
|
1082
|
-
} else {
|
|
1083
|
-
this.isLongDate = false;
|
|
1084
|
-
this.form.businessTerm = flagstr
|
|
1085
|
-
.replace(/[年月]/g, "-")
|
|
1086
|
-
.replace(/[日]/, "");
|
|
1087
|
-
}
|
|
1088
|
-
} else {
|
|
1089
|
-
this.form.businessTerm = "";
|
|
1090
|
-
}
|
|
1091
|
-
},
|
|
1092
|
-
async getMess() {
|
|
1093
|
-
// 认证失败数据回显
|
|
1094
|
-
const arr = ["provinceNo", "districtNo", "cityNo"];
|
|
1095
|
-
for (const item in this.form) {
|
|
1096
|
-
if (arr.indexOf(item) >= 0) {
|
|
1097
|
-
continue;
|
|
1098
|
-
}
|
|
1099
|
-
this.form[item] = this.dataObject[item];
|
|
1100
|
-
}
|
|
1101
|
-
console.log(this.dataObject);
|
|
1102
|
-
const time = Number(this.dataObject["establishmentDate"]);
|
|
1103
|
-
if (this.form.establishmentDate == 0) {
|
|
1104
|
-
|
|
1105
|
-
} else {
|
|
1106
|
-
this.form.establishmentDate = new Date(time);
|
|
1107
|
-
}
|
|
1108
|
-
// this.form.businessTerm = "";
|
|
1109
|
-
this.setBusinessTerm(this.dataObject.businessTerm);
|
|
1110
|
-
this.form.id = this.dataObject.id;
|
|
1111
|
-
this.imgUrl = this.dataObject.license;
|
|
1112
|
-
// this.imgPhoto = this.dataObject.authorization
|
|
1113
|
-
this.showImg = true;
|
|
1114
|
-
// this.showPhoto = true
|
|
1115
|
-
this.form.businessId = Number(this.form.businessId);
|
|
1116
|
-
this.form.serviceType = this.dataObject.serviceType.split(",");
|
|
1117
|
-
this.form.provinceNo = this.dataObject.provinceNo;
|
|
1118
|
-
await this.setCityNoOptions();
|
|
1119
|
-
this.form.cityNo = this.dataObject.cityNo;
|
|
1120
|
-
await this.setDistrictNoOptions();
|
|
1121
|
-
this.form.districtNo = this.dataObject.districtNo;
|
|
1122
|
-
},
|
|
1123
|
-
// 数据初始化
|
|
1124
|
-
async init() {
|
|
1125
|
-
this.userRole = this.$store.state.user.userRole;
|
|
1126
|
-
const tel = this.$store.state.user.telPhone;
|
|
1127
|
-
this.$set(this.adminForm, "tel", tel);
|
|
1128
|
-
this.$nextTick(() => {
|
|
1129
|
-
this.verifyTel(tel);
|
|
1130
|
-
});
|
|
1131
|
-
this.setCompanyList();
|
|
1132
|
-
if (this.dataObject.id) {
|
|
1133
|
-
this.getMess();
|
|
1134
|
-
|
|
1135
|
-
this.submitType = "重新提交";
|
|
1136
|
-
return;
|
|
1137
|
-
}
|
|
1138
|
-
this.submitType = "提交";
|
|
1139
|
-
},
|
|
1140
|
-
async setCompanyList() {
|
|
1141
|
-
const res = await apiAuthentication.dict();
|
|
1142
|
-
const list = res.data;
|
|
1143
|
-
for (let i = 0; i < list.length; i++) {
|
|
1144
|
-
list[i].value = list[i].label;
|
|
1145
|
-
}
|
|
1146
|
-
this.companyOptions = list;
|
|
1147
|
-
},
|
|
1148
|
-
async publicMethods() {
|
|
1149
|
-
// 公共方法调用集合 页面数据初始化
|
|
1150
|
-
await this.setProvinceNoOptions();
|
|
1151
|
-
this.setCompanyList();
|
|
1152
|
-
this.getServiceTypeList();
|
|
1153
|
-
this.setPushTime();
|
|
1154
|
-
}
|
|
1155
|
-
},
|
|
1156
|
-
|
|
1157
|
-
async created() {
|
|
1158
|
-
this.publicMethods();
|
|
1159
|
-
if (!this.isSign) {
|
|
1160
|
-
this.init();
|
|
1161
|
-
}
|
|
1162
|
-
},
|
|
1163
|
-
mounted() {}
|
|
1164
|
-
};
|
|
1165
|
-
</script>
|
|
1166
|
-
|
|
1167
|
-
<style lang="scss" rel="stylesheet/scss" scoped>
|
|
1168
|
-
// @media screen and (min-width:1218px){}
|
|
1169
|
-
// @media screen and (max-width:1217px){}
|
|
1170
|
-
// @media screen and (max-width:992px){}
|
|
1171
|
-
|
|
1172
|
-
.buyer-form-box {
|
|
1173
|
-
width: 540px;
|
|
1174
|
-
margin: 0 auto;
|
|
1175
|
-
// .buyer-form-button{
|
|
1176
|
-
// width: 330px;
|
|
1177
|
-
// margin: 0 auto;
|
|
1178
|
-
// button{
|
|
1179
|
-
// width: 120px;
|
|
1180
|
-
// height: 40px;
|
|
1181
|
-
// }
|
|
1182
|
-
// }
|
|
1183
|
-
.inputWidth300 {
|
|
1184
|
-
width: 300px;
|
|
1185
|
-
}
|
|
1186
|
-
.inputWidth280 {
|
|
1187
|
-
width: 280px;
|
|
1188
|
-
}
|
|
1189
|
-
|
|
1190
|
-
.buyer-form-button {
|
|
1191
|
-
/*width: 330px;*/
|
|
1192
|
-
margin: 0 auto;
|
|
1193
|
-
text-align: center;
|
|
1194
|
-
button {
|
|
1195
|
-
width: 120px;
|
|
1196
|
-
height: 40px;
|
|
1197
|
-
}
|
|
1198
|
-
}
|
|
1199
|
-
|
|
1200
|
-
.sign-form-button {
|
|
1201
|
-
margin: 0 auto;
|
|
1202
|
-
padding-left: 145px;
|
|
1203
|
-
button {
|
|
1204
|
-
width: 400px;
|
|
1205
|
-
}
|
|
1206
|
-
}
|
|
1207
|
-
|
|
1208
|
-
.invoice {
|
|
1209
|
-
font-size: 12px;
|
|
1210
|
-
color: #909399;
|
|
1211
|
-
}
|
|
1212
|
-
|
|
1213
|
-
.address-select {
|
|
1214
|
-
width: 100%;
|
|
1215
|
-
height: 45px;
|
|
1216
|
-
|
|
1217
|
-
> div {
|
|
1218
|
-
width: 120px;
|
|
1219
|
-
float: left;
|
|
1220
|
-
// margin-right:10px;
|
|
1221
|
-
&:last-child {
|
|
1222
|
-
margin-right: 0;
|
|
1223
|
-
}
|
|
1224
|
-
}
|
|
1225
|
-
}
|
|
1226
|
-
|
|
1227
|
-
.marginLift20 {
|
|
1228
|
-
margin-left: 20px;
|
|
1229
|
-
}
|
|
1230
|
-
}
|
|
1231
|
-
|
|
1232
|
-
.protocolbox {
|
|
1233
|
-
text-align: center;
|
|
1234
|
-
margin-bottom: 20px;
|
|
1235
|
-
|
|
1236
|
-
span a {
|
|
1237
|
-
color: #0286df;
|
|
1238
|
-
}
|
|
1239
|
-
}
|
|
1240
|
-
.set-admin {
|
|
1241
|
-
font-weight: 700;
|
|
1242
|
-
}
|
|
1243
|
-
.sign-inner-code {
|
|
1244
|
-
width: 100%;
|
|
1245
|
-
.inner-code-text {
|
|
1246
|
-
width: 240px;
|
|
1247
|
-
float: left;
|
|
1248
|
-
}
|
|
1249
|
-
.inner-code-button-border {
|
|
1250
|
-
height: 40px;
|
|
1251
|
-
> button {
|
|
1252
|
-
border: 1px solid rgba(2, 134, 223, 1);
|
|
1253
|
-
border-radius: 4px;
|
|
1254
|
-
color: #0286df;
|
|
1255
|
-
}
|
|
1256
|
-
}
|
|
1257
|
-
.inner-code-button {
|
|
1258
|
-
width: 145px;
|
|
1259
|
-
float: right;
|
|
1260
|
-
button {
|
|
1261
|
-
width: 100%;
|
|
1262
|
-
height: 38px;
|
|
1263
|
-
font-size: 14px;
|
|
1264
|
-
}
|
|
1265
|
-
}
|
|
1266
|
-
}
|
|
1267
|
-
.login-input {
|
|
1268
|
-
.login-input-bg-font {
|
|
1269
|
-
z-index: 5;
|
|
1270
|
-
color: #333333;
|
|
1271
|
-
position: absolute;
|
|
1272
|
-
left: 16px;
|
|
1273
|
-
top: 0;
|
|
1274
|
-
font-size: 14px;
|
|
1275
|
-
}
|
|
1276
|
-
}
|
|
1277
|
-
.sign-password {
|
|
1278
|
-
display: flex;
|
|
1279
|
-
.bg-eye {
|
|
1280
|
-
padding: 0 10px;
|
|
1281
|
-
border: 1px solid #0286df;
|
|
1282
|
-
border-radius: 6px;
|
|
1283
|
-
margin-left: 20px;
|
|
1284
|
-
}
|
|
1285
|
-
}
|
|
1286
|
-
.confirm-text {
|
|
1287
|
-
display: flex;
|
|
1288
|
-
flex-direction: column;
|
|
1289
|
-
align-items: center;
|
|
1290
|
-
justify-content: center;
|
|
1291
|
-
background: #ffffff;
|
|
1292
|
-
> div {
|
|
1293
|
-
padding: 10px 0;
|
|
1294
|
-
}
|
|
1295
|
-
}
|
|
1296
|
-
</style>
|
|
1
|
+
<!-- /**
|
|
2
|
+
* 作用于认证管理
|
|
3
|
+
* 采购商认证表单
|
|
4
|
+
* @authors zzt
|
|
5
|
+
* @date 2019-02-19
|
|
6
|
+
* @version 1.0.0
|
|
7
|
+
*/ -->
|
|
8
|
+
<template>
|
|
9
|
+
<div>
|
|
10
|
+
<template v-if="!hasSubmit">
|
|
11
|
+
<div class="buyer-form-box">
|
|
12
|
+
<div class="tc-50"></div>
|
|
13
|
+
<div class="tc-50"></div>
|
|
14
|
+
<!-- <Title2 title="基本信息"></Title2> -->
|
|
15
|
+
<el-form ref="form" label-width="145px" :model="form" :rules="rules">
|
|
16
|
+
<el-form-item label="营业执照图片 :" prop="license">
|
|
17
|
+
<!-- <Uolpad @setMess="setMess" :imgUrl="imgUrl" :showImg="showImg"></Uolpad> -->
|
|
18
|
+
</el-form-item>
|
|
19
|
+
|
|
20
|
+
<el-form-item label="企业名称 :" prop="name">
|
|
21
|
+
<el-input
|
|
22
|
+
placeholder="请填写50个字以内的企业名称"
|
|
23
|
+
@input="oninput('name',50)"
|
|
24
|
+
v-model="form.name"
|
|
25
|
+
:disabled="disabled || mainDisabled"
|
|
26
|
+
></el-input>
|
|
27
|
+
</el-form-item>
|
|
28
|
+
|
|
29
|
+
<el-form-item label="统一社会信用代码 :" prop="creditCode">
|
|
30
|
+
<el-input
|
|
31
|
+
placeholder="请填写18位或15位信用代码"
|
|
32
|
+
@input="oninput('creditCode',18)"
|
|
33
|
+
maxlength="18"
|
|
34
|
+
v-model="form.creditCode"
|
|
35
|
+
:disabled="disabled || mainDisabled"
|
|
36
|
+
></el-input>
|
|
37
|
+
</el-form-item>
|
|
38
|
+
|
|
39
|
+
<el-form-item label="企业类型 :" prop="companyType">
|
|
40
|
+
<el-select
|
|
41
|
+
v-model="form.companyType"
|
|
42
|
+
:disabled="disabled || mainDisabled"
|
|
43
|
+
placeholder="请选择企业类型"
|
|
44
|
+
>
|
|
45
|
+
<el-option
|
|
46
|
+
v-for="(item,index) in companyOptions"
|
|
47
|
+
:key="index"
|
|
48
|
+
:label="item.label"
|
|
49
|
+
:value="item.value"
|
|
50
|
+
></el-option>
|
|
51
|
+
</el-select>
|
|
52
|
+
</el-form-item>
|
|
53
|
+
|
|
54
|
+
<el-form-item label="法定代表人 :" prop="legalRepresentative">
|
|
55
|
+
<el-input
|
|
56
|
+
placeholder="请填写15个字以内的法定代表人姓名"
|
|
57
|
+
@input="oninput('legalRepresentative',15)"
|
|
58
|
+
v-model="form.legalRepresentative"
|
|
59
|
+
:disabled="disabled || mainDisabled"
|
|
60
|
+
></el-input>
|
|
61
|
+
</el-form-item>
|
|
62
|
+
<el-form-item label="企业经营类型 :" prop="serviceType">
|
|
63
|
+
<el-select
|
|
64
|
+
v-model="form.serviceType"
|
|
65
|
+
multiple
|
|
66
|
+
@change="changeTypeService(form.serviceType)"
|
|
67
|
+
placeholder="请选企业经营类型"
|
|
68
|
+
>
|
|
69
|
+
<el-option
|
|
70
|
+
v-for="(item,index) in serviceType"
|
|
71
|
+
:key="index"
|
|
72
|
+
:label="item.name"
|
|
73
|
+
:value="item.code"
|
|
74
|
+
></el-option>
|
|
75
|
+
</el-select>
|
|
76
|
+
</el-form-item>
|
|
77
|
+
<el-form-item label="成立时间 :" prop="establishmentDate">
|
|
78
|
+
<el-date-picker
|
|
79
|
+
@change="changeTime"
|
|
80
|
+
v-model="form.establishmentDate"
|
|
81
|
+
type="date"
|
|
82
|
+
placeholder="请选择企业成立日期"
|
|
83
|
+
></el-date-picker>
|
|
84
|
+
</el-form-item>
|
|
85
|
+
<el-form-item label="营业执照有效期 :" prop="businessTerm">
|
|
86
|
+
<el-date-picker
|
|
87
|
+
@change="changeBusinessTerm"
|
|
88
|
+
v-model="form.businessTerm"
|
|
89
|
+
type="date"
|
|
90
|
+
placeholder="请选择营业执照有效期"
|
|
91
|
+
></el-date-picker>
|
|
92
|
+
<el-checkbox v-model="isLongDate" @change="changeChecked" style="margin-left: 15px">长期</el-checkbox>
|
|
93
|
+
</el-form-item>
|
|
94
|
+
<el-form-item label="注册资本 :" prop="registeredCapital">
|
|
95
|
+
<el-input
|
|
96
|
+
placeholder="请填写企业注册资本"
|
|
97
|
+
oninput="if(value.length>40)value=value.slice(0,40)"
|
|
98
|
+
class="inputWidth300"
|
|
99
|
+
v-model="form.registeredCapital"
|
|
100
|
+
></el-input>
|
|
101
|
+
</el-form-item>
|
|
102
|
+
|
|
103
|
+
<el-form-item label="企业注册地址 :" prop="address">
|
|
104
|
+
<div class="address-select">
|
|
105
|
+
<div>
|
|
106
|
+
<el-select
|
|
107
|
+
:disabled="disabled || mainDisabled"
|
|
108
|
+
v-model="form.provinceNo"
|
|
109
|
+
placeholder="省份"
|
|
110
|
+
@change="changeProvinceNo"
|
|
111
|
+
>
|
|
112
|
+
<el-option
|
|
113
|
+
v-for="item in provinceNoOptions"
|
|
114
|
+
:key="item.value"
|
|
115
|
+
:label="item.label"
|
|
116
|
+
:value="item.value"
|
|
117
|
+
></el-option>
|
|
118
|
+
</el-select>
|
|
119
|
+
</div>
|
|
120
|
+
<div>
|
|
121
|
+
<el-select
|
|
122
|
+
:disabled="disabled || mainDisabled"
|
|
123
|
+
v-model="form.cityNo"
|
|
124
|
+
placeholder="地级市"
|
|
125
|
+
@change="changeCityNo"
|
|
126
|
+
>
|
|
127
|
+
<el-option
|
|
128
|
+
v-for="item in cityNoOptions"
|
|
129
|
+
:key="item.value"
|
|
130
|
+
:label="item.label"
|
|
131
|
+
:value="item.value"
|
|
132
|
+
></el-option>
|
|
133
|
+
</el-select>
|
|
134
|
+
</div>
|
|
135
|
+
<div>
|
|
136
|
+
<el-select
|
|
137
|
+
:disabled="disabled || mainDisabled"
|
|
138
|
+
v-model="form.districtNo"
|
|
139
|
+
placeholder="区/县"
|
|
140
|
+
>
|
|
141
|
+
<el-option
|
|
142
|
+
v-for="item in districtNoOptions"
|
|
143
|
+
:key="item.value"
|
|
144
|
+
:label="item.label"
|
|
145
|
+
:value="item.value"
|
|
146
|
+
></el-option>
|
|
147
|
+
</el-select>
|
|
148
|
+
</div>
|
|
149
|
+
</div>
|
|
150
|
+
<div class="tc-10"></div>
|
|
151
|
+
<div class="tc-5"></div>
|
|
152
|
+
<el-input
|
|
153
|
+
placeholder="请填写企业所在地详细地址"
|
|
154
|
+
@input="oninput('address',100)"
|
|
155
|
+
v-model="form.address"
|
|
156
|
+
:disabled="disabled || mainDisabled"
|
|
157
|
+
></el-input>
|
|
158
|
+
</el-form-item>
|
|
159
|
+
</el-form>
|
|
160
|
+
<div class="set-admin">设置管理员</div>
|
|
161
|
+
<el-form ref="adminForms" label-width="145px" :model="adminForm" :rules="adminFormRules">
|
|
162
|
+
<el-form-item label="手机号码 :" prop="tel">
|
|
163
|
+
<el-input
|
|
164
|
+
autocomplete="off"
|
|
165
|
+
:maxlength="11"
|
|
166
|
+
v-model.trim="adminForm.tel"
|
|
167
|
+
:disabled="!isSign"
|
|
168
|
+
placeholder="请输入11位手机号"
|
|
169
|
+
@input="verifyTel(adminForm.tel)"
|
|
170
|
+
></el-input>
|
|
171
|
+
</el-form-item>
|
|
172
|
+
|
|
173
|
+
<!-- <template v-if="telCanSign"> -->
|
|
174
|
+
<el-form-item v-if="adminFormConfig.showCode" label="验证码 :" prop="code">
|
|
175
|
+
<div class="sign-inner-code login-input">
|
|
176
|
+
<div class="inner-code-text">
|
|
177
|
+
<el-input
|
|
178
|
+
autocomplete="off"
|
|
179
|
+
v-model="adminForm.code"
|
|
180
|
+
placeholder="请输入短信验证码"
|
|
181
|
+
oninput="if(value.length>6)value=value.slice(0,6)"
|
|
182
|
+
></el-input>
|
|
183
|
+
</div>
|
|
184
|
+
<div class="inner-code-button inner-code-button-border" v-if="!this.loading">
|
|
185
|
+
<el-button v-if="isClickButton" @click="getCode" :disabled="buttonDisabled">获取短信验证码</el-button>
|
|
186
|
+
<el-button v-else :disabled="buttonDisabled">获取短信验证码</el-button>
|
|
187
|
+
</div>
|
|
188
|
+
<div class="inner-code-button" v-else>
|
|
189
|
+
<el-button type="primary" :loading="loading" v-show="this.loading">{{time}}s</el-button>
|
|
190
|
+
</div>
|
|
191
|
+
</div>
|
|
192
|
+
</el-form-item>
|
|
193
|
+
<el-form-item v-if="adminFormConfig.showName" label="姓名 :" prop="realName">
|
|
194
|
+
<el-input
|
|
195
|
+
:disabled="!isSign && $store.state.user.personalAuth == 1"
|
|
196
|
+
placeholder="请填写真实姓名"
|
|
197
|
+
@input="oninputs('realName',15)"
|
|
198
|
+
v-model="adminForm.realName"
|
|
199
|
+
></el-input>
|
|
200
|
+
</el-form-item>
|
|
201
|
+
<el-form-item v-if="adminFormConfig.showIdCard" label="身份证号码 :" prop="identityCard">
|
|
202
|
+
<el-input
|
|
203
|
+
:disabled="!isSign && $store.state.user.personalAuth == 1"
|
|
204
|
+
@input="oninputs('identityCard',18)"
|
|
205
|
+
placeholder="请填写18位身份证号码"
|
|
206
|
+
maxlength="18"
|
|
207
|
+
v-model="adminForm.identityCard"
|
|
208
|
+
></el-input>
|
|
209
|
+
</el-form-item>
|
|
210
|
+
<el-form-item v-if="adminFormConfig.showPassWord" label="登录密码 :" prop="password">
|
|
211
|
+
<div class="sign-password">
|
|
212
|
+
<el-input
|
|
213
|
+
v-if="showEye"
|
|
214
|
+
autocomplete="new-password"
|
|
215
|
+
:type="typePassword"
|
|
216
|
+
@focus="onfocus"
|
|
217
|
+
onpaste="return false"
|
|
218
|
+
oncontextmenu="return false"
|
|
219
|
+
oncopy="return false"
|
|
220
|
+
oncut="return false"
|
|
221
|
+
v-model="adminForm.password"
|
|
222
|
+
placeholder="请输入6-18位由数字加字母的密码"
|
|
223
|
+
oninput="if(value.length>18)value=value.slice(0,18)"
|
|
224
|
+
></el-input>
|
|
225
|
+
|
|
226
|
+
<el-input
|
|
227
|
+
v-if="!showEye"
|
|
228
|
+
autocomplete="off"
|
|
229
|
+
type="text"
|
|
230
|
+
onpaste="return false"
|
|
231
|
+
oncontextmenu="return false"
|
|
232
|
+
oncopy="return false"
|
|
233
|
+
oncut="return false"
|
|
234
|
+
v-model="adminForm.password"
|
|
235
|
+
placeholder="请输入6-18位由数字加字母的密码"
|
|
236
|
+
oninput="if(value.length>18)value=value.slice(0,18)"
|
|
237
|
+
></el-input>
|
|
238
|
+
<!-- <el-input placeholder="请输入6-18位由数字加字母的密码" maxlength="18" v-model="adminForm.name"></el-input> -->
|
|
239
|
+
<div class="bg-eye" @click="showEye = !showEye">
|
|
240
|
+
<img v-if="showEye" src="@/assets/login/close-eye.png" alt />
|
|
241
|
+
<img v-if="!showEye" src="@/assets/login/eye.png" alt />
|
|
242
|
+
</div>
|
|
243
|
+
</div>
|
|
244
|
+
</el-form-item>
|
|
245
|
+
<!-- </template> -->
|
|
246
|
+
</el-form>
|
|
247
|
+
<!-- <div class="tc-50"></div> -->
|
|
248
|
+
<div class="protocolbox">
|
|
249
|
+
<el-checkbox v-model="checked">
|
|
250
|
+
<span>
|
|
251
|
+
您确认阅读并接受
|
|
252
|
+
<!-- <a @click="readProtocol">《施工邦企业认证协议》</a> -->
|
|
253
|
+
<a @click="readProtocol">《企管帮企业认证协议》</a>
|
|
254
|
+
</span>
|
|
255
|
+
</el-checkbox>
|
|
256
|
+
</div>
|
|
257
|
+
<div v-if="isSign" class="sign-form-button">
|
|
258
|
+
<el-button :loading="btnLoading" type="primary" :disabled="disabled" @click="comsign">注册</el-button>
|
|
259
|
+
</div>
|
|
260
|
+
<div v-else class="buyer-form-button">
|
|
261
|
+
<el-button :disabled="disabled" @click="reset">取消认证</el-button>
|
|
262
|
+
<el-button
|
|
263
|
+
type="primary"
|
|
264
|
+
:loading="btnLoading"
|
|
265
|
+
:disabled="disabled"
|
|
266
|
+
@click="comsign"
|
|
267
|
+
>{{submitType}}</el-button>
|
|
268
|
+
</div>
|
|
269
|
+
<div class="tc-100"></div>
|
|
270
|
+
<el-dialog title="施工邦供应商认证协议" :visible.sync="dialogVisible" width="50%">
|
|
271
|
+
<div style="text-index:2em; height:500px; overflow-y: scroll;">
|
|
272
|
+
<br />本协议是您与施工邦网站(简称"本站",网址:http://www.shigongbang.com)所有者中钧科技有限公司(以下简称为"施工邦")之间就施工邦网站服务等相关事宜所订立的契约,请您仔细阅读本协议,您点击"同意"按钮后,本协议即构成对双方有约束力的法律文件。
|
|
273
|
+
<br />
|
|
274
|
+
<strong>第一条 本站服务条款的确认和接纳</strong>
|
|
275
|
+
<br />1.1当您使用施工邦提供的会员服务时,您知晓并且同意此《施工邦供应商认证协议》。此协议所述服务仅在施工邦网站内有效。施工邦网站是指http://www.shigongbang.com及其所属网页。此协议在必要时将进行更新,每次改动都会在施工邦上即刻发布,并立即生效。
|
|
276
|
+
<br />1.2如果您拒绝接受修订后的协议,您将无法继续使用施工邦提供的供应商会员服务;若您继续使用施工邦提供的供应商会员服务,则表明您接受新的协议。
|
|
277
|
+
<br />
|
|
278
|
+
<strong>第二条 服务权限</strong>
|
|
279
|
+
|
|
280
|
+
<br />2.1施工邦有权判定您的行为是否符合《施工邦供应商认证协议》的要求,如果您违背了《施工邦供应商认证协议》的规定,施工邦有权决定取消您的会员资格与服务或者采取其他施工邦认为合适的执行措施。
|
|
281
|
+
<br />
|
|
282
|
+
<strong>第三条 用户认证</strong>
|
|
283
|
+
<br />3.1您必须配合完成施工邦的认证服务,认证服务为文件审核。施工邦有权根据您及网站自身运营需要确定对您的资质进行审核。
|
|
284
|
+
<br />3.2审核项目包括公司基本信息、贸易、供货、生产能力和质量管理、行业信息、产品设计开发能力、体系和产品认证、财务信用等内容。
|
|
285
|
+
<br />3.3通过认证服务后您可获得网站产品的购买和发布的权限。
|
|
286
|
+
<br />3.4通过施工邦认证服务且同时符合以下标准的会员,即为施工邦认证供应商:
|
|
287
|
+
<br />3.4.1中国大陆及香港注册的实体企业;
|
|
288
|
+
<br />3.4.2符合生产能力及贸易经验的要求(不同行业及类型有针对性要求);
|
|
289
|
+
<br />3.4.3符合施工邦诚信经营要求。
|
|
290
|
+
<br />
|
|
291
|
+
<strong>第四条 质量要求</strong>
|
|
292
|
+
|
|
293
|
+
<br />4.1双方本着真诚合作、共同发展的目的,为了保证供货商向施工邦提供高质量的产品和服务,满足施工邦的质量要求,避免因产品质量或服务问题造成损失,确保产品原材料及外协加工产品质量达到国家要求标准,保障施工邦平台运营的顺利进行,供应商需要承担的责任如下:
|
|
294
|
+
<br />4.1.1供应商应对自己原材料进行严格的进货检验,并提供产品质量检验报告,以确保提供给施工邦稳定、合格的产品。
|
|
295
|
+
<br />4.1.2供货商应按照双方共用确认的品质要求交货,若因供应方责任导致品质异常而使施工邦遭到会员索赔的,供应商应全额赔偿损失。
|
|
296
|
+
<br />4.1.3供货方按照施工邦需求,提供给施工邦所要求的品牌、等级、规格的产品,供应商不得以其他品牌、等级、规格的产品冒充甲方所需要的材料,出现此类情况,施工邦有权解除合作协议。
|
|
297
|
+
<br />4.1.4施工邦在商品检验中,发现不合格产品,需对供货商开具《供应商质量问题通报》,供货商需在两日内对《供应商质量问题通报》中质量问题的形成原因、纠正预防措施、措施实施时间等内容,以书面形式进行回复。对于施工邦退货批次,供货商还需向施工邦提供退货批次的处理方式和相关质量记录。
|
|
298
|
+
<br />
|
|
299
|
+
<strong>第五条 会员的权利和义务</strong>
|
|
300
|
+
|
|
301
|
+
<br />5.1您在使用施工邦提供的相应服务时必须遵守中国有关法律法规的规定,不得利用施工邦进行任何非法活动;遵守所有与使用施工邦有关的协议、规定、程序和惯例。
|
|
302
|
+
<br />5.2您保证提供的公司名称、联系方式、相关资质文件均是真实有效的。
|
|
303
|
+
<br />5.3通过本账号在施工邦平台上实施的相关行为(如信息修改,下单,投标),均视为您公司的行为,并由您公司承担相关责任义务。
|
|
304
|
+
<br />5.4您如因违反此协议规定的条款给施工邦造成损失,须承担相应的赔偿。
|
|
305
|
+
<br />5.5如您初次加入会员,您应在会员服务开通前完成认证服务。
|
|
306
|
+
<br />5.6认证服务是以您提供的材料为基础而进行的。您须保证提供的文件、材料、信息或样品的真实、完整、有效,不存在任何虚假或误导信息、行为。否则,施工邦有权立即中止认证服务直至终止所有会员服务,由此造成您其他相关服务中断的,施工邦不承担任何责任。
|
|
307
|
+
<br />5.7您不得对认证协议进行任何内容上的篡改,若因您的原因给认证协议造成的任何影响,须免除施工邦的一切责任,并对施工邦造成的损失(包括但不限于律师费)承担赔偿责任。
|
|
308
|
+
<br />
|
|
309
|
+
<strong>第六条 施工邦的权利和义务</strong>
|
|
310
|
+
|
|
311
|
+
<br />6.1对于因不可抗力因素造成的服务中断或其他缺陷(包括自然灾害、社会事件以及因网站所具有的特殊性质而产生的黑客攻击、电信部门技术调整导致的影响、政府管制而造成的暂时性关闭在内的任何影响网络正常运营的因素),施工邦不承担任何责任,但将尽力减少对您造成的损失和影响。
|
|
312
|
+
<br />6.2如因施工邦原因,造成您服务的不正常中断,您有权向施工邦申请会员服务。但施工邦不承担由此致使您蒙受的其他方面的连带损失。
|
|
313
|
+
<br />6.3施工邦有权决定删除您发布的任何违反中国法律、法规、《施工邦供应商认证协议》的内容,或其他施工邦认为不可接受的内容。情节严重者,施工邦有权取消其会员资格。
|
|
314
|
+
<br />
|
|
315
|
+
<strong>第七条 服务中止与终止</strong>
|
|
316
|
+
|
|
317
|
+
<br />7.1施工邦有权在下列情况下,中止或终止您的部分或全部服务:
|
|
318
|
+
<br />7.1.1您违反《施工邦供应商认证协议》及本协议的任何条款;
|
|
319
|
+
<br />7.1.2您提出书面申请,要求中止或终止部分或全部服务;
|
|
320
|
+
<br />7.1.3可能造成服务中止或终止的其他情形。
|
|
321
|
+
<br />
|
|
322
|
+
<strong>第八条 责任声明</strong>
|
|
323
|
+
|
|
324
|
+
<br />8.1施工邦对其网站上提供的信息之有效性、真实性、准确性、稳定性、完整性和及时性等均不作承诺和保证。您理解并接受任何信息资料的传输取决于您自己并由您承担系统受损或资料丢失的所有风险和责任。
|
|
325
|
+
<br />
|
|
326
|
+
<strong>第九条 争议的解决</strong>
|
|
327
|
+
|
|
328
|
+
<br />本协议的订立、执行和解释及争议的解决均应适用在中华人民共和国大陆地区适用之有效法律(但不包括其冲突法规则)。 如发生本协议与适用之法律相抵触时,则这些条款将完全按法律规定重新解释,而其它有效条款继续有效。 如缔约方就本协议内容或其执行发生任何争议,双方应尽力友好协商解决;协商不成时,任何一方均可向有管辖权的中华人民共和国大陆地区法院提起诉讼。
|
|
329
|
+
<br />
|
|
330
|
+
<strong>第十条 版权声明</strong>
|
|
331
|
+
|
|
332
|
+
<br />10.1施工邦的所有内容版权属中钧科技有限公司所有。
|
|
333
|
+
<br />10.2严禁以未经中钧科技有限公司书面许可的任何形式的部分或全部拷贝。
|
|
334
|
+
</div>
|
|
335
|
+
<!-- <span slot="footer" class="dialog-footer">
|
|
336
|
+
<el-button @click="dialogVisible = false">取 消</el-button>
|
|
337
|
+
<el-button type="primary" @click="dialogVisible = false">确 定</el-button>
|
|
338
|
+
</span>-->
|
|
339
|
+
</el-dialog>
|
|
340
|
+
</div>
|
|
341
|
+
</template>
|
|
342
|
+
<template v-else>
|
|
343
|
+
<div class="buyer-form-box">
|
|
344
|
+
<div class="tc-50"></div>
|
|
345
|
+
<div class="tc-50"></div>
|
|
346
|
+
<div class="confirm-text">
|
|
347
|
+
<div>
|
|
348
|
+
<img src="@/assets/login/login-pass.png" alt />
|
|
349
|
+
</div>
|
|
350
|
+
<div>认证提交成功!</div>
|
|
351
|
+
<div>您的认证申请已提交成功,平台将在一个工作日内完成审核,请耐心等待!</div>
|
|
352
|
+
<div>
|
|
353
|
+
<el-button @click="$removeTag('/userenticationManagement')" type="primary">知道了</el-button>
|
|
354
|
+
</div>
|
|
355
|
+
</div>
|
|
356
|
+
</div>
|
|
357
|
+
</template>
|
|
358
|
+
</div>
|
|
359
|
+
</template>
|
|
360
|
+
|
|
361
|
+
<script>
|
|
362
|
+
import verify from "@/fnc/verify.js";
|
|
363
|
+
import apiAuthentication from "@/api/apiAuthentication.js";
|
|
364
|
+
import moment from "moment";
|
|
365
|
+
|
|
366
|
+
import apiAddress from "@/api/apiAddress.js";
|
|
367
|
+
import { isvalidIdCard, isvalidPhone } from "@/components/form/validate";
|
|
368
|
+
import apiChangeTel from "@/api/apiChangeTel";
|
|
369
|
+
import { getCode, sign } from "@/api/apiSign.js";
|
|
370
|
+
import localStorage from "@/storage/localStorage";
|
|
371
|
+
import { Num } from "@/components/form/num.js";
|
|
372
|
+
import { validatePasswordStrength } from "@/utils/passwordStrength";
|
|
373
|
+
import link from "@/public/link";
|
|
374
|
+
|
|
375
|
+
export default {
|
|
376
|
+
name: "BuyerForm",
|
|
377
|
+
mixins: [],
|
|
378
|
+
extends: {},
|
|
379
|
+
props: {
|
|
380
|
+
dataObject: {
|
|
381
|
+
type: Object
|
|
382
|
+
},
|
|
383
|
+
isSign: {
|
|
384
|
+
// 当前是否为注册模块
|
|
385
|
+
default: false,
|
|
386
|
+
type: Boolean
|
|
387
|
+
}
|
|
388
|
+
},
|
|
389
|
+
data() {
|
|
390
|
+
var checkBusinessTerm = (rule, value, callback) => {
|
|
391
|
+
if (this.isLongDate) {
|
|
392
|
+
callback();
|
|
393
|
+
} else {
|
|
394
|
+
if (!value) {
|
|
395
|
+
callback(new Error("请选择有效期"));
|
|
396
|
+
} else {
|
|
397
|
+
const startTime = moment(this.form.establishmentDate).valueOf();
|
|
398
|
+
const endTime = moment(new Date(moment(value).format())).valueOf();
|
|
399
|
+
if (endTime <= startTime) {
|
|
400
|
+
callback(new Error("有效期不能小于或等于成立时间"));
|
|
401
|
+
} else {
|
|
402
|
+
callback();
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
};
|
|
407
|
+
var checkEstablishmentDate = (rule, value, callback) => {
|
|
408
|
+
if (!value) {
|
|
409
|
+
callback(new Error("请选择成立时间"));
|
|
410
|
+
} else {
|
|
411
|
+
const startTime = moment(value).valueOf();
|
|
412
|
+
const endTime = moment(
|
|
413
|
+
new Date(moment(this.form.businessTerm).format())
|
|
414
|
+
).valueOf();
|
|
415
|
+
if (endTime <= startTime) {
|
|
416
|
+
callback(new Error("成立时间不能大于或等于有效期"));
|
|
417
|
+
} else {
|
|
418
|
+
callback();
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
};
|
|
422
|
+
var validIdCard = (rule, value, callback) => {
|
|
423
|
+
// 身份证
|
|
424
|
+
if (!value) {
|
|
425
|
+
callback(new Error("请输入身份证号码"));
|
|
426
|
+
} else if (value.length < 18) {
|
|
427
|
+
callback(new Error("身份证号码长度应为18个数字"));
|
|
428
|
+
} else if (!isvalidIdCard(value)) {
|
|
429
|
+
callback(new Error("请输入真实有效的身份证证件号"));
|
|
430
|
+
} else {
|
|
431
|
+
callback();
|
|
432
|
+
}
|
|
433
|
+
};
|
|
434
|
+
var validPhone = (rule, value, callback) => {
|
|
435
|
+
if (!value) {
|
|
436
|
+
callback(new Error("请输入电话号码"));
|
|
437
|
+
} else if (!isvalidPhone(value)) {
|
|
438
|
+
callback(new Error("请输入正确的手机号"));
|
|
439
|
+
} else {
|
|
440
|
+
callback();
|
|
441
|
+
}
|
|
442
|
+
};
|
|
443
|
+
var validCode = (rule, value, callback) => {
|
|
444
|
+
// 验证码
|
|
445
|
+
if (!value) {
|
|
446
|
+
callback(new Error("请输入验证码"));
|
|
447
|
+
} else if (!Num(value)) {
|
|
448
|
+
callback(new Error("验证码输入有误"));
|
|
449
|
+
} else if (!(value.length === 6)) {
|
|
450
|
+
callback(new Error("验证码输入有误"));
|
|
451
|
+
} else {
|
|
452
|
+
callback();
|
|
453
|
+
}
|
|
454
|
+
};
|
|
455
|
+
// 密码验证
|
|
456
|
+
var validPassword = (rule, value, callback) => {
|
|
457
|
+
const Pass = /^(?!\d+$)(?![a-zA-Z]+$)[\da-zA-Z]+$/;
|
|
458
|
+
// /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/
|
|
459
|
+
if (value === "") {
|
|
460
|
+
callback(new Error("密码不能为空"));
|
|
461
|
+
} else if (value.length < 6 || value.length > 18) {
|
|
462
|
+
callback(new Error("密码须由6-18位字母和数字组成"));
|
|
463
|
+
} else if (!Pass.test(value)) {
|
|
464
|
+
callback(new Error("密码只能由数字与字母组成且必须包含数字和字母"));
|
|
465
|
+
} else {
|
|
466
|
+
callback();
|
|
467
|
+
}
|
|
468
|
+
};
|
|
469
|
+
return {
|
|
470
|
+
num: 0,
|
|
471
|
+
dialogVisible: false,
|
|
472
|
+
isLongDate: false,
|
|
473
|
+
serviceType: [],
|
|
474
|
+
submitType: "重新提交",
|
|
475
|
+
checked: true,
|
|
476
|
+
// submitType: '提交认证',
|
|
477
|
+
// 地区选择使用
|
|
478
|
+
provinceNoOptions: [], // 省
|
|
479
|
+
cityNoOptions: [], // 市
|
|
480
|
+
districtNoOptions: [], // 区
|
|
481
|
+
companyOptions: [],
|
|
482
|
+
mainDisabled: false,
|
|
483
|
+
disabled: false,
|
|
484
|
+
showImg: true,
|
|
485
|
+
imgUrl: "",
|
|
486
|
+
loading: false,
|
|
487
|
+
isClickButton: true,
|
|
488
|
+
btnDisabled: false,
|
|
489
|
+
buttonDisabled: true,
|
|
490
|
+
showEye: true,
|
|
491
|
+
time: 60,
|
|
492
|
+
typePassword: "text",
|
|
493
|
+
rules: {
|
|
494
|
+
license: { required: true, message: "请上传营业执照" },
|
|
495
|
+
name: { required: true, trigger: "blur", validator: verify.validName }, // 企业名称
|
|
496
|
+
creditCode: {
|
|
497
|
+
required: true,
|
|
498
|
+
trigger: "blur",
|
|
499
|
+
validator: verify.validCredit
|
|
500
|
+
}, // 统一社会信用代码
|
|
501
|
+
companyType: {
|
|
502
|
+
required: true,
|
|
503
|
+
trigger: "change",
|
|
504
|
+
// validator: verify.companyTypeFun,
|
|
505
|
+
message: "请选择企业类型"
|
|
506
|
+
}, // 企业类
|
|
507
|
+
address: {
|
|
508
|
+
required: true,
|
|
509
|
+
trigger: "blur",
|
|
510
|
+
validator: this.validAttr3
|
|
511
|
+
}, // 企业地址
|
|
512
|
+
legalRepresentative: {
|
|
513
|
+
required: true,
|
|
514
|
+
validator: verify.validAccountname,
|
|
515
|
+
trigger: "blur"
|
|
516
|
+
}, // 法定代表人
|
|
517
|
+
serviceType: [
|
|
518
|
+
{ required: true, message: "请选择企业经营类型", trigger: "change" }
|
|
519
|
+
],
|
|
520
|
+
establishmentDate: [
|
|
521
|
+
{
|
|
522
|
+
required: true,
|
|
523
|
+
validator: checkEstablishmentDate,
|
|
524
|
+
trigger: "change"
|
|
525
|
+
}
|
|
526
|
+
],
|
|
527
|
+
businessTerm: [
|
|
528
|
+
{ required: true, validator: checkBusinessTerm, trigger: "change" }
|
|
529
|
+
]
|
|
530
|
+
// registeredCapital: [{ required: true, trigger: 'blur', validator: this.validRegisteredCapital }]
|
|
531
|
+
},
|
|
532
|
+
form: {
|
|
533
|
+
license: "", // 营业执照
|
|
534
|
+
name: "",
|
|
535
|
+
creditCode: "",
|
|
536
|
+
companyType: "",
|
|
537
|
+
legalRepresentative: "",
|
|
538
|
+
establishmentDate: null,
|
|
539
|
+
businessTerm: "",
|
|
540
|
+
registeredCapital: "",
|
|
541
|
+
serviceType: [],
|
|
542
|
+
address: "",
|
|
543
|
+
// 省市区
|
|
544
|
+
provinceNo: "",
|
|
545
|
+
cityNo: "",
|
|
546
|
+
districtNo: ""
|
|
547
|
+
//
|
|
548
|
+
// taxRate 税率
|
|
549
|
+
},
|
|
550
|
+
adminForm: {
|
|
551
|
+
realName: "",
|
|
552
|
+
identityCard: "",
|
|
553
|
+
tel: "",
|
|
554
|
+
code: "",
|
|
555
|
+
password: ""
|
|
556
|
+
},
|
|
557
|
+
adminFormRules: {
|
|
558
|
+
realName: {
|
|
559
|
+
required: true,
|
|
560
|
+
validator: verify.validAccountname,
|
|
561
|
+
trigger: "blur"
|
|
562
|
+
}, // 姓名
|
|
563
|
+
identityCard: [
|
|
564
|
+
{ required: true, validator: validIdCard, trigger: "blur" }
|
|
565
|
+
], // 身份证
|
|
566
|
+
tel: { required: true, validator: validPhone, trigger: "change" }, // 手机号码
|
|
567
|
+
code: { required: false, validator: validCode, trigger: "blur" }, // 验证码
|
|
568
|
+
password: [
|
|
569
|
+
{ required: true, validator: validPassword, trigger: "blur" }
|
|
570
|
+
]
|
|
571
|
+
},
|
|
572
|
+
identity: {},
|
|
573
|
+
telCanSign: true,
|
|
574
|
+
adminFormConfig: {
|
|
575
|
+
showCode: true,
|
|
576
|
+
showName: true,
|
|
577
|
+
showIdCard: true,
|
|
578
|
+
showPassWord: true
|
|
579
|
+
},
|
|
580
|
+
userNo: "",
|
|
581
|
+
btnLoading: false,
|
|
582
|
+
hasSubmit: false
|
|
583
|
+
};
|
|
584
|
+
},
|
|
585
|
+
computed: {},
|
|
586
|
+
components: {
|
|
587
|
+
// Uolpad: () =>
|
|
588
|
+
// import("@/views/AccountManagement/Authentication/components/Uolpad")
|
|
589
|
+
},
|
|
590
|
+
filter: {},
|
|
591
|
+
watch: {},
|
|
592
|
+
methods: {
|
|
593
|
+
handleClose(done) {},
|
|
594
|
+
// 手机号码验证 获取当前手机号码用户身份
|
|
595
|
+
verifyTel(value) {
|
|
596
|
+
// this.telCanSign = true;
|
|
597
|
+
this.disabledBut();
|
|
598
|
+
for (const item in this.adminFormConfig) {
|
|
599
|
+
// 重置form配置
|
|
600
|
+
this.$set(this.adminFormConfig, item, true);
|
|
601
|
+
}
|
|
602
|
+
for (const item in this.adminForm) {
|
|
603
|
+
// 重置form表单
|
|
604
|
+
if (item === "tel") continue;
|
|
605
|
+
this.$set(this.adminForm, item, "");
|
|
606
|
+
}
|
|
607
|
+
this.$refs["adminForms"].validateField("tel", async errMsg => {
|
|
608
|
+
try {
|
|
609
|
+
if (!errMsg) {
|
|
610
|
+
const res = await apiAuthentication.queryUserAuthByPhone(
|
|
611
|
+
this.adminForm.tel
|
|
612
|
+
);
|
|
613
|
+
const data = res.data.data;
|
|
614
|
+
if (res.data.code === 200) {
|
|
615
|
+
const { type, no } = data;
|
|
616
|
+
this.userNo = no;
|
|
617
|
+
if (this.isSign) {
|
|
618
|
+
if (Number(type) === 1) {
|
|
619
|
+
this.telCanSign = true;
|
|
620
|
+
} else {
|
|
621
|
+
this.telCanSign = false;
|
|
622
|
+
// this.$alert("该手机号码已注册,无法再次注册");
|
|
623
|
+
}
|
|
624
|
+
} else {
|
|
625
|
+
for (const item in this.adminFormConfig) {
|
|
626
|
+
// 重置form配置
|
|
627
|
+
this.$set(this.adminFormConfig, item, false);
|
|
628
|
+
}
|
|
629
|
+
this.$set(this.adminFormConfig, "showName", true);
|
|
630
|
+
this.$set(this.adminFormConfig, "showIdCard", true);
|
|
631
|
+
if (this.$store.state.user.personalAuth == 1) {
|
|
632
|
+
// 已经实名认证过
|
|
633
|
+
this.telCanSign = true;
|
|
634
|
+
// for (let item in this.adminFormConfig) {
|
|
635
|
+
// // 重置form配置
|
|
636
|
+
// this.$set(this.adminFormConfig, item, false);
|
|
637
|
+
// }
|
|
638
|
+
// this.$set(this.adminFormConfig, "showName", true);
|
|
639
|
+
// this.$set(this.adminFormConfig, "showIdCard", true);
|
|
640
|
+
|
|
641
|
+
this.$set(this.adminForm, "realName", data.realName);
|
|
642
|
+
this.$set(this.adminForm, "identityCard", data.identityCard);
|
|
643
|
+
} else {
|
|
644
|
+
this.telCanSign = true;
|
|
645
|
+
// this.$set(this.adminFormConfig, "showName", true);
|
|
646
|
+
// this.$set(this.adminFormConfig, "showIdCard", true);
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
// switch (Number(type)) {
|
|
651
|
+
// case 0:
|
|
652
|
+
// this.$alert("该手机号码已经进行过企业认证,无法再次认证");
|
|
653
|
+
// break;
|
|
654
|
+
// case 1:
|
|
655
|
+
// this.telCanSign = true;
|
|
656
|
+
// break;
|
|
657
|
+
// case 2:
|
|
658
|
+
// this.$alert("该手机号码已经进行过司机认证,无法再次认证");
|
|
659
|
+
// break;
|
|
660
|
+
// case 3: // 未实名认证
|
|
661
|
+
// this.telCanSign = true;
|
|
662
|
+
// this.$set(this.adminFormConfig, "showCode", false);
|
|
663
|
+
// this.$set(this.adminFormConfig, "showPassWord", false);
|
|
664
|
+
// break;
|
|
665
|
+
// case 4:
|
|
666
|
+
// this.telCanSign = true;
|
|
667
|
+
// for (let item in this.adminFormConfig) {
|
|
668
|
+
// // 重置form配置
|
|
669
|
+
// this.$set(this.adminFormConfig, item, false);
|
|
670
|
+
// }
|
|
671
|
+
// this.$set(this.adminFormConfig, "showName", true);
|
|
672
|
+
// this.$set(this.adminForm, "realName", data.realName);
|
|
673
|
+
|
|
674
|
+
// break;
|
|
675
|
+
// default:
|
|
676
|
+
// break;
|
|
677
|
+
// }
|
|
678
|
+
}
|
|
679
|
+
} else {
|
|
680
|
+
}
|
|
681
|
+
} catch (error) {}
|
|
682
|
+
});
|
|
683
|
+
// if (value.length > 11) value = value.slice(0, 11);
|
|
684
|
+
// return value
|
|
685
|
+
},
|
|
686
|
+
onfocus() {
|
|
687
|
+
this.typePassword = "password";
|
|
688
|
+
},
|
|
689
|
+
async getCode() {
|
|
690
|
+
this.isClickButton = false;
|
|
691
|
+
// this.sendSucc()
|
|
692
|
+
|
|
693
|
+
const res = await getCode({ telPhone: this.adminForm.tel });
|
|
694
|
+
|
|
695
|
+
if (res.data.success === "true" || res.data.success === true) {
|
|
696
|
+
this.sendSucc();
|
|
697
|
+
} else {
|
|
698
|
+
this.agree = false;
|
|
699
|
+
this.$message({
|
|
700
|
+
message: res.data.msg,
|
|
701
|
+
type: "warning",
|
|
702
|
+
duration: 3000
|
|
703
|
+
});
|
|
704
|
+
}
|
|
705
|
+
this.isClickButton = true;
|
|
706
|
+
},
|
|
707
|
+
sendSucc() {
|
|
708
|
+
const that = this;
|
|
709
|
+
that.loading = true;
|
|
710
|
+
const time = new Date();
|
|
711
|
+
localStorage.set("sendAdminPhone" + this.adminForm.tel, Number(time));
|
|
712
|
+
localStorage.set("sendAdminPhone", Number(time));
|
|
713
|
+
// this.isSend = true
|
|
714
|
+
that.$_toast({ msg: "验证码已发送到您的手机,请查收!" });
|
|
715
|
+
|
|
716
|
+
var timeOut = setInterval(() => {
|
|
717
|
+
that.time = that.time - 1;
|
|
718
|
+
if (that.time === 0) {
|
|
719
|
+
clearInterval(timeOut);
|
|
720
|
+
that.loading = false;
|
|
721
|
+
that.time = 60;
|
|
722
|
+
}
|
|
723
|
+
}, 1000);
|
|
724
|
+
},
|
|
725
|
+
setPushTime() {
|
|
726
|
+
const time = localStorage.read("sendAdminPhone");
|
|
727
|
+
|
|
728
|
+
const timeInitialize = 60;
|
|
729
|
+
const timeDifference = (Number(new Date()) - time) / 1000;
|
|
730
|
+
|
|
731
|
+
const leadTime = timeInitialize - timeDifference.toFixed(0);
|
|
732
|
+
|
|
733
|
+
if (leadTime > 0) {
|
|
734
|
+
this.loading = true;
|
|
735
|
+
const that = this;
|
|
736
|
+
that.time = leadTime;
|
|
737
|
+
var timeOut = setInterval(() => {
|
|
738
|
+
that.time = that.time - 1;
|
|
739
|
+
if (that.time === 0) {
|
|
740
|
+
clearInterval(timeOut);
|
|
741
|
+
that.loading = false;
|
|
742
|
+
that.time = 60;
|
|
743
|
+
}
|
|
744
|
+
}, 1000);
|
|
745
|
+
return;
|
|
746
|
+
}
|
|
747
|
+
localStorage.clear("sendAdminPhone");
|
|
748
|
+
},
|
|
749
|
+
disabledBut() {
|
|
750
|
+
this.buttonDisabled = !isvalidPhone(this.adminForm.tel);
|
|
751
|
+
},
|
|
752
|
+
// 有效期选择处理
|
|
753
|
+
changeBusinessTerm(val) {
|
|
754
|
+
console.log(val);
|
|
755
|
+
this.form.businessTerm = val;
|
|
756
|
+
this.isLongDate = false;
|
|
757
|
+
},
|
|
758
|
+
changeChecked(val) {
|
|
759
|
+
if (val) {
|
|
760
|
+
this.isLongDate = val;
|
|
761
|
+
this.form.businessTerm = "";
|
|
762
|
+
}
|
|
763
|
+
},
|
|
764
|
+
reset() {
|
|
765
|
+
this.$removeTag("/authenticationManagement");
|
|
766
|
+
},
|
|
767
|
+
changeTypeService(item) {},
|
|
768
|
+
changeTime() {},
|
|
769
|
+
validRegisteredCapital(rule, value, callback) {
|
|
770
|
+
const num = Number(value);
|
|
771
|
+
if (value === "") {
|
|
772
|
+
callback(new Error("请填写注册资本"));
|
|
773
|
+
} else if (value == 0 || value[0] == 0) {
|
|
774
|
+
callback(new Error("请填写纯数字注册资本。"));
|
|
775
|
+
} else if (isNaN(num)) {
|
|
776
|
+
callback(new Error("请填写纯数字注册资本。"));
|
|
777
|
+
} else {
|
|
778
|
+
callback();
|
|
779
|
+
}
|
|
780
|
+
},
|
|
781
|
+
async getServiceTypeList() {
|
|
782
|
+
const list = await apiAuthentication.getServiceTypeList();
|
|
783
|
+
this.serviceType = list.data.data;
|
|
784
|
+
},
|
|
785
|
+
|
|
786
|
+
readProtocol() {
|
|
787
|
+
this.checked = true;
|
|
788
|
+
this.dialogVisible = true;
|
|
789
|
+
// this.$alert(
|
|
790
|
+
// '<div><p class="protocolText">本协议是您与施工邦网站(简称"本站",网址:http://www.shigongbang.com)所有者中钧科技有限公司(以下简称为"施工邦")之间就施工邦网站服务等相关事宜所订立的契约,请您仔细阅读本协议,您点击"同意"按钮后,本协议即构成对双方有约束力的法律文件。</p><p class="protocolSmallTitle">第一条本站服务条款的确认和接纳</p><p class="protocolText">1.1当您使用施工邦提供的会员服务时,您知晓并且同意此《施工邦供应商认证协议》。此协议所述服务仅在施工邦网站内有效。施工邦网站是指http://www.shigongbang.com及其所属网页。此协议在必要时将进行更新,每次改动都会在施工邦上即刻发布,并立即生效。</p><p class="protocolText">1.2如果您拒绝接受修订后的协议,您将无法继续使用施工邦提供的供应商会员服务;若您继续使用施工邦提供的供应商会员服务,则表明您接受新的协议。</p><p class="protocolSmallTitle">第二条服务权限</p><p class="protocolText">2.1施工邦有权判定您的行为是否符合《施工邦供应商认证协议》的要求,如果您违背了《施工邦供应商认证协议》的规定,施工邦有权决定取消您的会员资格与服务或者采取其他施工邦认为合适的执行措施。</p><p class="protocolSmallTitle">第三条用户认证</p><p class="protocolText">3.1您必须配合完成施工邦的认证服务,认证服务为文件审核。施工邦有权根据您及网站自身运营需要确定对您的资质进行审核。3.2审核项目包括公司基本信息、贸易、供货、生产能力和质量管理、行业信息、产品设计开发能力、体系和产品认证、财务信用等内容。3.3通过认证服务后您可获得网站产品的购买和发布的权限。3.4通过施工邦认证服务且同时符合以下标准的会员,即为施工邦认证供应商:3.4.1中国大陆及香港注册的实体企业;3.4.2符合生产能力及贸易经验的要求(不同行业及类型有针对性要求);3.4.3符合施工邦诚信经营要求。</p><p class="protocolSmallTitle">第四条质量要求</p><p class="protocolText">4.1.1供应商应对自己原材料进行严格的进货检验,并提供产品质量检验报告,以确保提供给施工邦稳定、合格的产品。4.1.2供货商应按照双方共用确认的品质要求交货,若因供应方责任导致品质异常而使施工邦遭到客户索赔的,供应商应全额赔偿损失。4.1.3供货方按照施工邦需求,提供给施工邦所要求的品牌、等级、规格的产品,供应商不得以其他品牌、等级、规格的产品冒充甲方所需要的材料,出现此类情况,施工邦有权解除合作协议。4.1.4施工邦在商品检验中,发现不合格产品,需对供货商开具《供应商质量问题通报》,供货商需在两日内对《供应商质量问题通报》中质量问题的形成原因、纠正预防措施、措施实施时间等内容,以书面形式进行回复。对于施工邦退货批次,供货商还需向施工邦提供退货批次的处理方式和相关质量记录。</p><p class="protocolSmallTitle">第五条会员的权利和义务</p><p class="protocolText">5.1您在使用施工邦提供的相应服务时必须遵守中国有关法律法规的规定,不得利用施工邦进行任何非法活动;遵守所有与使用施工邦有关的协议、规定、程序和惯例。5.2您保证提供的公司名称、联系方式、相关资质文件均是真实有效的。5.3通过本账号在施工邦平台上实施的相关行为(如信息修改,下单,投标),均视为您公司的行为,并由您公司承担相关责任义务。5.4您如因违反此协议规定的条款给施工邦造成损失,须承担相应的赔偿。5.5如您初次加入会员,您应在会员服务开通前完成认证服务。5.6认证服务是以您提供的材料为基础而进行的。您须保证提供的文件、材料、信息或样品的真实、完整、有效,不存在任何虚假或误导信息、行为。否则,施工邦有权立即中止认证服务直至终止所有会员服务,由此造成您其他相关服务中断的,施工邦不承担任何责任。5.7您不得对认证协议进行任何内容上的篡改,若因您的原因给认证协议造成的任何影响,须免除施工邦的一切责任,并对施工邦造成的损失(包括但不限于律师费)承担赔偿责任。</p><p class="protocolSmallTitle">第六条施工邦的权利和义务</p><p class="protocolText">6.1对于因不可抗力因素造成的服务中断或其他缺陷(包括自然灾害、社会事件以及因网站所具有的特殊性质而产生的黑客攻击、电信部门技术调整导致的影响、政府管制而造成的暂时性关闭在内的任何影响网络正常运营的因素),施工邦不承担任何责任,但将尽力减少对您造成的损失和影响。6.2如因施工邦原因,造成您服务的不正常中断,您有权向施工邦申请会员服务。但施工邦不承担由此致使您蒙受的其他方面的连带损失。6.3施工邦有权决定删除您发布的任何违反中国法律、法规、《施工邦供应商认证协议》的内容,或其他施工邦认为不可接受的内容。情节严重者,施工邦有权取消其会员资格。</p><p class="protocolSmallTitle">第七条服务中止与终止</p><p class="protocolText">7.1施工邦有权在下列情况下,中止或终止您的部分或全部服务:7.1.1您违反《施工邦供应商认证协议》及本协议的任何条款;7.1.2您提出书面申请,要求中止或终止部分或全部服务;7.1.3可能造成服务中止或终止的其他情形。</p><p class="protocolSmallTitle">第八条责任声明</p><p class="protocolText">8.1施工邦对其网站上提供的信息之有效性、真实性、准确性、稳定性、完整性和及时性等均不作承诺和保证。您理解并接受任何信息资料的传输取决于您自己并由您承担系统受损或资料丢失的所有风险和责任。</p><p class="protocolSmallTitle">第九条争议的解决</p><p class="protocolText">本协议的订立、执行和解释及争议的解决均应适用在中华人民共和国大陆地区适用之有效法律(但不包括其冲突法规则)。如发生本协议与适用之法律相抵触时,则这些条款将完全按法律规定重新解释,而其它有效条款继续有效。如缔约方就本协议内容或其执行发生任何争议,双方应尽力友好协商解决;协商不成时,任何一方均可向有管辖权的中华人民共和国大陆地区法院提起诉讼。</p><p class="protocolSmallTitle">第十条版权声明</p><p class="protocolText">10.1施工邦的所有内容版权属中钧科技有限公司所有。10.2严禁以未经中钧科技有限公司书面许可的任何形式的部分或全部拷贝。</p></div>',
|
|
791
|
+
// "施工邦供应商认证协议",
|
|
792
|
+
// {
|
|
793
|
+
// dangerouslyUseHTMLString: true,
|
|
794
|
+
// customClass: "lookOver",
|
|
795
|
+
// confirmButtonText: "同意协议"
|
|
796
|
+
// }
|
|
797
|
+
// ).then(() => {
|
|
798
|
+
// this.checked = true;
|
|
799
|
+
// });
|
|
800
|
+
},
|
|
801
|
+
changeProvinceNo() {
|
|
802
|
+
this.setCityNoOptions();
|
|
803
|
+
this.form.cityNo = "";
|
|
804
|
+
this.form.districtNo = "";
|
|
805
|
+
},
|
|
806
|
+
changeCityNo() {
|
|
807
|
+
this.setDistrictNoOptions();
|
|
808
|
+
this.form.districtNo = "";
|
|
809
|
+
},
|
|
810
|
+
validAttr3(rule, value, callback) {
|
|
811
|
+
// 详细注册地址
|
|
812
|
+
if (value.length === 0) {
|
|
813
|
+
callback(new Error("请填写100字以内的企业所在地详情地址"));
|
|
814
|
+
} else if (value.length > 100) {
|
|
815
|
+
callback(new Error("请填写100字以内的企业所在地详情地址"));
|
|
816
|
+
} else if (this.form.provinceNo === "") {
|
|
817
|
+
callback(new Error("请选择省"));
|
|
818
|
+
} else if (this.form.cityNo === "") {
|
|
819
|
+
callback(new Error("请选择地级市"));
|
|
820
|
+
} else if (this.form.districtNo === "") {
|
|
821
|
+
callback(new Error("请选择区/县"));
|
|
822
|
+
} else {
|
|
823
|
+
callback();
|
|
824
|
+
}
|
|
825
|
+
},
|
|
826
|
+
oninput(name, slice) {
|
|
827
|
+
if (this.form[name].length > slice) {
|
|
828
|
+
this.form[name] = this.form[name].slice(0, slice);
|
|
829
|
+
}
|
|
830
|
+
},
|
|
831
|
+
oninputs(name, slice) {
|
|
832
|
+
if (this.adminForm[name].length > slice) {
|
|
833
|
+
this.adminForm[name] = this.adminForm[name].slice(0, slice);
|
|
834
|
+
}
|
|
835
|
+
},
|
|
836
|
+
setPhoto(data, imgurl) {
|
|
837
|
+
this.form.authorization = imgurl;
|
|
838
|
+
// imgurl 为照片路径
|
|
839
|
+
},
|
|
840
|
+
async submit() {
|
|
841
|
+
await this.validateForm();
|
|
842
|
+
if (this.checked) {
|
|
843
|
+
this.$refs["form"].validate(valid => {
|
|
844
|
+
// let num = Number(this.form.registeredCapital)
|
|
845
|
+
// if (isNaN(num)) {
|
|
846
|
+
// this.$_toast({ msg: '请填写纯数字注册资本。', type: 'error' })
|
|
847
|
+
// return
|
|
848
|
+
// }
|
|
849
|
+
|
|
850
|
+
// if (this.form.registeredCapital.length > 0) {
|
|
851
|
+
// if (this.form.registeredCapital === '') {
|
|
852
|
+
// this.$_toast({ msg: '请填写注册资本', type: 'error' })
|
|
853
|
+
// return
|
|
854
|
+
// } else if (this.form.registeredCapital == 0 || this.form.registeredCapital[0] == 0) {
|
|
855
|
+
// this.$_toast({ msg: '请填写纯数字注册资本。', type: 'error' })
|
|
856
|
+
// return
|
|
857
|
+
// }
|
|
858
|
+
// }
|
|
859
|
+
if (!valid) {
|
|
860
|
+
return false;
|
|
861
|
+
}
|
|
862
|
+
// this.setBuyer();
|
|
863
|
+
});
|
|
864
|
+
} else {
|
|
865
|
+
this.$message({
|
|
866
|
+
message: "请确认已阅读《施工邦企业认证协议》",
|
|
867
|
+
type: "warning"
|
|
868
|
+
});
|
|
869
|
+
}
|
|
870
|
+
},
|
|
871
|
+
validateForm() {
|
|
872
|
+
// 验证表单结果
|
|
873
|
+
return new Promise((resolve, reject) => {
|
|
874
|
+
try {
|
|
875
|
+
Promise.all(
|
|
876
|
+
["form", "adminForms"].map(item => {
|
|
877
|
+
return this.$refs[item].validate();
|
|
878
|
+
})
|
|
879
|
+
)
|
|
880
|
+
.then(res => {
|
|
881
|
+
resolve(true);
|
|
882
|
+
})
|
|
883
|
+
.catch(e => {});
|
|
884
|
+
} catch (error) {
|
|
885
|
+
console.log("捕获异常");
|
|
886
|
+
}
|
|
887
|
+
});
|
|
888
|
+
},
|
|
889
|
+
async comsign() {
|
|
890
|
+
const { score: passwordStrengthScore } = validatePasswordStrength(
|
|
891
|
+
this.adminForm.password
|
|
892
|
+
);
|
|
893
|
+
const obj = {
|
|
894
|
+
accountname: this.adminForm.tel,
|
|
895
|
+
telPhone: this.adminForm.tel,
|
|
896
|
+
username: this.adminForm.tel,
|
|
897
|
+
userNo: this.userNo,
|
|
898
|
+
passwordStrengthScore
|
|
899
|
+
};
|
|
900
|
+
await this.validateForm(); // 表单验证
|
|
901
|
+
if (!this.checked) {
|
|
902
|
+
this.$message({
|
|
903
|
+
message: "请确认已阅读《施工邦企业认证协议》",
|
|
904
|
+
type: "warning"
|
|
905
|
+
});
|
|
906
|
+
return false;
|
|
907
|
+
}
|
|
908
|
+
if (!this.telCanSign && this.isSign) {
|
|
909
|
+
this.$message({
|
|
910
|
+
message: "当前手机号码不可再次注册",
|
|
911
|
+
type: "error"
|
|
912
|
+
});
|
|
913
|
+
return false;
|
|
914
|
+
}
|
|
915
|
+
const params = Object.assign(this.form, {
|
|
916
|
+
userDTO: Object.assign(this.adminForm, obj)
|
|
917
|
+
});
|
|
918
|
+
|
|
919
|
+
if (this.isLongDate) {
|
|
920
|
+
params.businessTerm =
|
|
921
|
+
moment(this.form.establishmentDate).format("YYYY年MM月DD日") +
|
|
922
|
+
"至长期";
|
|
923
|
+
} else {
|
|
924
|
+
params.businessTerm =
|
|
925
|
+
moment(this.form.establishmentDate).format("YYYY年MM月DD日") +
|
|
926
|
+
"至" +
|
|
927
|
+
moment(this.form.businessTerm).format("YYYY年MM月DD日");
|
|
928
|
+
}
|
|
929
|
+
params.establishmentDate = moment(params.establishmentDate).valueOf();
|
|
930
|
+
console.log(params);
|
|
931
|
+
// return false
|
|
932
|
+
this.btnLoading = true;
|
|
933
|
+
const res = await apiAuthentication.companyAuthV1(params);
|
|
934
|
+
if (res.data.code === 200) {
|
|
935
|
+
this.btnLoading = false;
|
|
936
|
+
if (this.isSign) {
|
|
937
|
+
// this.$message({
|
|
938
|
+
// message: res.data.data,
|
|
939
|
+
// type: "success"
|
|
940
|
+
// });
|
|
941
|
+
link.blank_index(); // 注册完成之后跳转至大首页
|
|
942
|
+
} else {
|
|
943
|
+
this.hasSubmit = true;
|
|
944
|
+
}
|
|
945
|
+
} else {
|
|
946
|
+
this.$message.error(res.data.msg);
|
|
947
|
+
this.btnLoading = false;
|
|
948
|
+
}
|
|
949
|
+
|
|
950
|
+
},
|
|
951
|
+
async setBuyer() {
|
|
952
|
+
this.showImg = false;
|
|
953
|
+
this.disabled = true;
|
|
954
|
+
const params = {
|
|
955
|
+
id: this.form.id,
|
|
956
|
+
address: this.form.address,
|
|
957
|
+
|
|
958
|
+
companyType: this.form.companyType,
|
|
959
|
+
creditCode: this.form.creditCode,
|
|
960
|
+
|
|
961
|
+
legalRepresentative: this.form.legalRepresentative,
|
|
962
|
+
license: this.form.license,
|
|
963
|
+
name: this.form.name,
|
|
964
|
+
// registeredCapital: this.form.registeredCapital,
|
|
965
|
+
|
|
966
|
+
provinceNo: this.form.provinceNo,
|
|
967
|
+
cityNo: this.form.cityNo,
|
|
968
|
+
districtNo: this.form.districtNo,
|
|
969
|
+
establishmentDate: this.form.establishmentDate,
|
|
970
|
+
registeredCapital: this.form.registeredCapital,
|
|
971
|
+
serviceType: this.form.serviceType.join(",")
|
|
972
|
+
};
|
|
973
|
+
|
|
974
|
+
if (this.isLongDate) {
|
|
975
|
+
params.businessTerm =
|
|
976
|
+
moment(this.form.establishmentDate).format("YYYY年MM月DD日") +
|
|
977
|
+
"至长期";
|
|
978
|
+
} else {
|
|
979
|
+
params.businessTerm =
|
|
980
|
+
moment(this.form.establishmentDate).format("YYYY年MM月DD日") +
|
|
981
|
+
"至" +
|
|
982
|
+
moment(this.form.businessTerm).format("YYYY年MM月DD日");
|
|
983
|
+
}
|
|
984
|
+
params.establishmentDate = moment(params.establishmentDate).valueOf();
|
|
985
|
+
|
|
986
|
+
// let res = await apiAuthentication.companyAuth(params);
|
|
987
|
+
const res = await apiAuthentication.companyAuthV1(params);
|
|
988
|
+
if (res.data.code === 200) {
|
|
989
|
+
// this.$_toast({ msg: res.data.msg })
|
|
990
|
+
// this.$router.push({ path: '/authenticationCompanySuccess' })
|
|
991
|
+
this.$removeTag("/authenticationCompanySuccess");
|
|
992
|
+
// this.$router.go(0)
|
|
993
|
+
} else {
|
|
994
|
+
this.$message({
|
|
995
|
+
message: res.data.msg,
|
|
996
|
+
type: "warning"
|
|
997
|
+
});
|
|
998
|
+
// this.$_toast({ type: 'error', msg: res.data.msg })
|
|
999
|
+
this.disabled = false;
|
|
1000
|
+
this.showImg = true;
|
|
1001
|
+
}
|
|
1002
|
+
},
|
|
1003
|
+
setMess(data, imgurl) {
|
|
1004
|
+
// businessTerm
|
|
1005
|
+
this.form.license = imgurl;
|
|
1006
|
+
this.form.name = data.name;
|
|
1007
|
+
this.form.creditCode = data.reg_num;
|
|
1008
|
+
let str1, str2;
|
|
1009
|
+
if (data.establish_date) {
|
|
1010
|
+
str1 = data.establish_date.replace("年", "-");
|
|
1011
|
+
str1 = str1.replace("月", "-");
|
|
1012
|
+
str1 = str1.replace("日", "");
|
|
1013
|
+
}
|
|
1014
|
+
// 企业类型
|
|
1015
|
+
this.form.legalRepresentative = data.person;
|
|
1016
|
+
this.form.establishmentDate = str1;
|
|
1017
|
+
if (data.valid_period === "长期") {
|
|
1018
|
+
this.isLongDate = true;
|
|
1019
|
+
this.form.businessTerm = "";
|
|
1020
|
+
} else {
|
|
1021
|
+
console.log("营业照日期", str2);
|
|
1022
|
+
str2 = data.valid_period.replace("年", "-");
|
|
1023
|
+
str2 = str2.replace("月", "-");
|
|
1024
|
+
str2 = str2.replace("日", "");
|
|
1025
|
+
this.form.businessTerm = str2 || "";
|
|
1026
|
+
this.isLongDate = true;
|
|
1027
|
+
}
|
|
1028
|
+
// this.$refs["form"].validate([])
|
|
1029
|
+
this.$refs["form"].validateField([
|
|
1030
|
+
"license",
|
|
1031
|
+
"name",
|
|
1032
|
+
"creditCode",
|
|
1033
|
+
"legalRepresentative",
|
|
1034
|
+
"establishmentDate"
|
|
1035
|
+
]);
|
|
1036
|
+
// establish_date
|
|
1037
|
+
// valid_period 有效期
|
|
1038
|
+
// this.form.registeredCapital = data.capital
|
|
1039
|
+
|
|
1040
|
+
// 有限责任公司(自然人投资或控股)
|
|
1041
|
+
},
|
|
1042
|
+
|
|
1043
|
+
getOption(data) {
|
|
1044
|
+
// 数据格式化 增加 label 和 value字段
|
|
1045
|
+
const arr = data;
|
|
1046
|
+
for (let i = 0; i < arr.length; i++) {
|
|
1047
|
+
arr[i].label = arr[i].name;
|
|
1048
|
+
arr[i].value = arr[i].no;
|
|
1049
|
+
}
|
|
1050
|
+
return arr;
|
|
1051
|
+
},
|
|
1052
|
+
async getAddress(level, parentNo) {
|
|
1053
|
+
// 1 650000
|
|
1054
|
+
const res = await apiAddress.getAddress(level, { parentNo: parentNo });
|
|
1055
|
+
return res.data.data;
|
|
1056
|
+
},
|
|
1057
|
+
async setProvinceNoOptions() {
|
|
1058
|
+
// 获取省 select 列表
|
|
1059
|
+
const list = await this.getAddress(1);
|
|
1060
|
+
const provinceNoOptions = this.getOption(list);
|
|
1061
|
+
this.provinceNoOptions = provinceNoOptions;
|
|
1062
|
+
},
|
|
1063
|
+
async setCityNoOptions() {
|
|
1064
|
+
// 获取市 select 列表
|
|
1065
|
+
const list = await this.getAddress(1, this.form.provinceNo);
|
|
1066
|
+
const cityNoOptions = this.getOption(list);
|
|
1067
|
+
this.cityNoOptions = cityNoOptions;
|
|
1068
|
+
},
|
|
1069
|
+
async setDistrictNoOptions() {
|
|
1070
|
+
// 获取区 select 列表
|
|
1071
|
+
const list = await this.getAddress(1, this.form.cityNo);
|
|
1072
|
+
const districtNoOptions = this.getOption(list);
|
|
1073
|
+
this.districtNoOptions = districtNoOptions;
|
|
1074
|
+
},
|
|
1075
|
+
setBusinessTerm(str) { // 设置营业执照有效期回显数据
|
|
1076
|
+
if (str && str.length) {
|
|
1077
|
+
const len = str.length;
|
|
1078
|
+
const flagstr = str.substring(str.indexOf("至") + 1, len);
|
|
1079
|
+
if (flagstr === "长期") {
|
|
1080
|
+
this.isLongDate = true;
|
|
1081
|
+
this.form.businessTerm = "";
|
|
1082
|
+
} else {
|
|
1083
|
+
this.isLongDate = false;
|
|
1084
|
+
this.form.businessTerm = flagstr
|
|
1085
|
+
.replace(/[年月]/g, "-")
|
|
1086
|
+
.replace(/[日]/, "");
|
|
1087
|
+
}
|
|
1088
|
+
} else {
|
|
1089
|
+
this.form.businessTerm = "";
|
|
1090
|
+
}
|
|
1091
|
+
},
|
|
1092
|
+
async getMess() {
|
|
1093
|
+
// 认证失败数据回显
|
|
1094
|
+
const arr = ["provinceNo", "districtNo", "cityNo"];
|
|
1095
|
+
for (const item in this.form) {
|
|
1096
|
+
if (arr.indexOf(item) >= 0) {
|
|
1097
|
+
continue;
|
|
1098
|
+
}
|
|
1099
|
+
this.form[item] = this.dataObject[item];
|
|
1100
|
+
}
|
|
1101
|
+
console.log(this.dataObject);
|
|
1102
|
+
const time = Number(this.dataObject["establishmentDate"]);
|
|
1103
|
+
if (this.form.establishmentDate == 0) {
|
|
1104
|
+
|
|
1105
|
+
} else {
|
|
1106
|
+
this.form.establishmentDate = new Date(time);
|
|
1107
|
+
}
|
|
1108
|
+
// this.form.businessTerm = "";
|
|
1109
|
+
this.setBusinessTerm(this.dataObject.businessTerm);
|
|
1110
|
+
this.form.id = this.dataObject.id;
|
|
1111
|
+
this.imgUrl = this.dataObject.license;
|
|
1112
|
+
// this.imgPhoto = this.dataObject.authorization
|
|
1113
|
+
this.showImg = true;
|
|
1114
|
+
// this.showPhoto = true
|
|
1115
|
+
this.form.businessId = Number(this.form.businessId);
|
|
1116
|
+
this.form.serviceType = this.dataObject.serviceType.split(",");
|
|
1117
|
+
this.form.provinceNo = this.dataObject.provinceNo;
|
|
1118
|
+
await this.setCityNoOptions();
|
|
1119
|
+
this.form.cityNo = this.dataObject.cityNo;
|
|
1120
|
+
await this.setDistrictNoOptions();
|
|
1121
|
+
this.form.districtNo = this.dataObject.districtNo;
|
|
1122
|
+
},
|
|
1123
|
+
// 数据初始化
|
|
1124
|
+
async init() {
|
|
1125
|
+
this.userRole = this.$store.state.user.userRole;
|
|
1126
|
+
const tel = this.$store.state.user.telPhone;
|
|
1127
|
+
this.$set(this.adminForm, "tel", tel);
|
|
1128
|
+
this.$nextTick(() => {
|
|
1129
|
+
this.verifyTel(tel);
|
|
1130
|
+
});
|
|
1131
|
+
this.setCompanyList();
|
|
1132
|
+
if (this.dataObject.id) {
|
|
1133
|
+
this.getMess();
|
|
1134
|
+
|
|
1135
|
+
this.submitType = "重新提交";
|
|
1136
|
+
return;
|
|
1137
|
+
}
|
|
1138
|
+
this.submitType = "提交";
|
|
1139
|
+
},
|
|
1140
|
+
async setCompanyList() {
|
|
1141
|
+
const res = await apiAuthentication.dict();
|
|
1142
|
+
const list = res.data;
|
|
1143
|
+
for (let i = 0; i < list.length; i++) {
|
|
1144
|
+
list[i].value = list[i].label;
|
|
1145
|
+
}
|
|
1146
|
+
this.companyOptions = list;
|
|
1147
|
+
},
|
|
1148
|
+
async publicMethods() {
|
|
1149
|
+
// 公共方法调用集合 页面数据初始化
|
|
1150
|
+
await this.setProvinceNoOptions();
|
|
1151
|
+
this.setCompanyList();
|
|
1152
|
+
this.getServiceTypeList();
|
|
1153
|
+
this.setPushTime();
|
|
1154
|
+
}
|
|
1155
|
+
},
|
|
1156
|
+
|
|
1157
|
+
async created() {
|
|
1158
|
+
this.publicMethods();
|
|
1159
|
+
if (!this.isSign) {
|
|
1160
|
+
this.init();
|
|
1161
|
+
}
|
|
1162
|
+
},
|
|
1163
|
+
mounted() {}
|
|
1164
|
+
};
|
|
1165
|
+
</script>
|
|
1166
|
+
|
|
1167
|
+
<style lang="scss" rel="stylesheet/scss" scoped>
|
|
1168
|
+
// @media screen and (min-width:1218px){}
|
|
1169
|
+
// @media screen and (max-width:1217px){}
|
|
1170
|
+
// @media screen and (max-width:992px){}
|
|
1171
|
+
|
|
1172
|
+
.buyer-form-box {
|
|
1173
|
+
width: 540px;
|
|
1174
|
+
margin: 0 auto;
|
|
1175
|
+
// .buyer-form-button{
|
|
1176
|
+
// width: 330px;
|
|
1177
|
+
// margin: 0 auto;
|
|
1178
|
+
// button{
|
|
1179
|
+
// width: 120px;
|
|
1180
|
+
// height: 40px;
|
|
1181
|
+
// }
|
|
1182
|
+
// }
|
|
1183
|
+
.inputWidth300 {
|
|
1184
|
+
width: 300px;
|
|
1185
|
+
}
|
|
1186
|
+
.inputWidth280 {
|
|
1187
|
+
width: 280px;
|
|
1188
|
+
}
|
|
1189
|
+
|
|
1190
|
+
.buyer-form-button {
|
|
1191
|
+
/*width: 330px;*/
|
|
1192
|
+
margin: 0 auto;
|
|
1193
|
+
text-align: center;
|
|
1194
|
+
button {
|
|
1195
|
+
width: 120px;
|
|
1196
|
+
height: 40px;
|
|
1197
|
+
}
|
|
1198
|
+
}
|
|
1199
|
+
|
|
1200
|
+
.sign-form-button {
|
|
1201
|
+
margin: 0 auto;
|
|
1202
|
+
padding-left: 145px;
|
|
1203
|
+
button {
|
|
1204
|
+
width: 400px;
|
|
1205
|
+
}
|
|
1206
|
+
}
|
|
1207
|
+
|
|
1208
|
+
.invoice {
|
|
1209
|
+
font-size: 12px;
|
|
1210
|
+
color: #909399;
|
|
1211
|
+
}
|
|
1212
|
+
|
|
1213
|
+
.address-select {
|
|
1214
|
+
width: 100%;
|
|
1215
|
+
height: 45px;
|
|
1216
|
+
|
|
1217
|
+
> div {
|
|
1218
|
+
width: 120px;
|
|
1219
|
+
float: left;
|
|
1220
|
+
// margin-right:10px;
|
|
1221
|
+
&:last-child {
|
|
1222
|
+
margin-right: 0;
|
|
1223
|
+
}
|
|
1224
|
+
}
|
|
1225
|
+
}
|
|
1226
|
+
|
|
1227
|
+
.marginLift20 {
|
|
1228
|
+
margin-left: 20px;
|
|
1229
|
+
}
|
|
1230
|
+
}
|
|
1231
|
+
|
|
1232
|
+
.protocolbox {
|
|
1233
|
+
text-align: center;
|
|
1234
|
+
margin-bottom: 20px;
|
|
1235
|
+
|
|
1236
|
+
span a {
|
|
1237
|
+
color: #0286df;
|
|
1238
|
+
}
|
|
1239
|
+
}
|
|
1240
|
+
.set-admin {
|
|
1241
|
+
font-weight: 700;
|
|
1242
|
+
}
|
|
1243
|
+
.sign-inner-code {
|
|
1244
|
+
width: 100%;
|
|
1245
|
+
.inner-code-text {
|
|
1246
|
+
width: 240px;
|
|
1247
|
+
float: left;
|
|
1248
|
+
}
|
|
1249
|
+
.inner-code-button-border {
|
|
1250
|
+
height: 40px;
|
|
1251
|
+
> button {
|
|
1252
|
+
border: 1px solid rgba(2, 134, 223, 1);
|
|
1253
|
+
border-radius: 4px;
|
|
1254
|
+
color: #0286df;
|
|
1255
|
+
}
|
|
1256
|
+
}
|
|
1257
|
+
.inner-code-button {
|
|
1258
|
+
width: 145px;
|
|
1259
|
+
float: right;
|
|
1260
|
+
button {
|
|
1261
|
+
width: 100%;
|
|
1262
|
+
height: 38px;
|
|
1263
|
+
font-size: 14px;
|
|
1264
|
+
}
|
|
1265
|
+
}
|
|
1266
|
+
}
|
|
1267
|
+
.login-input {
|
|
1268
|
+
.login-input-bg-font {
|
|
1269
|
+
z-index: 5;
|
|
1270
|
+
color: #333333;
|
|
1271
|
+
position: absolute;
|
|
1272
|
+
left: 16px;
|
|
1273
|
+
top: 0;
|
|
1274
|
+
font-size: 14px;
|
|
1275
|
+
}
|
|
1276
|
+
}
|
|
1277
|
+
.sign-password {
|
|
1278
|
+
display: flex;
|
|
1279
|
+
.bg-eye {
|
|
1280
|
+
padding: 0 10px;
|
|
1281
|
+
border: 1px solid #0286df;
|
|
1282
|
+
border-radius: 6px;
|
|
1283
|
+
margin-left: 20px;
|
|
1284
|
+
}
|
|
1285
|
+
}
|
|
1286
|
+
.confirm-text {
|
|
1287
|
+
display: flex;
|
|
1288
|
+
flex-direction: column;
|
|
1289
|
+
align-items: center;
|
|
1290
|
+
justify-content: center;
|
|
1291
|
+
background: #ffffff;
|
|
1292
|
+
> div {
|
|
1293
|
+
padding: 10px 0;
|
|
1294
|
+
}
|
|
1295
|
+
}
|
|
1296
|
+
</style>
|