Merge branch 'feature/partner' of https://gitlab.eascs.com/tms-ui/tms-obc-web into feature/partner
This commit is contained in:
		| @ -0,0 +1,95 @@ | |||||||
|  | <page-header-wrapper [title]="'新增企业合伙人'"></page-header-wrapper> | ||||||
|  | <nz-card> | ||||||
|  |   <sf #sf1 [ui]="ui" [schema]="schema1" [button]="'none'"> | ||||||
|  |     <ng-template sf-template="_basicInfoTitle" let-me let-ui="ui" let-schema="schema"> | ||||||
|  |       <div class="form-title">企业基本信息</div> | ||||||
|  |     </ng-template> | ||||||
|  |     <ng-template sf-template="_licenseTips" let-me let-ui="ui" let-schema="schema"> | ||||||
|  |       <div class="pr"> | ||||||
|  |         请上传营业执照原件的高清照片,若上传复印件,则需加盖公司印章; | ||||||
|  |         <div>上传后系统会自动识别并填写</div> | ||||||
|  |       </div> | ||||||
|  |     </ng-template> | ||||||
|  |     <ng-template sf-template="unit" let-me let-ui="ui" let-schema="schema"> | ||||||
|  |       <div class="pr">万元</div> | ||||||
|  |     </ng-template> | ||||||
|  |  | ||||||
|  |     <ng-template sf-template="legalPersonIdentityDTO/_legalPersontitle" let-me let-ui="ui" let-schema="schema"> | ||||||
|  |       <div class="form-title" style="margin-top: 40px;margin-left: -180px;">营业执照法人信息</div> | ||||||
|  |     </ng-template> | ||||||
|  |     <ng-template sf-template="legalPersonIdentityDTO/_certificatePhototips" let-me let-ui="ui" let-schema="schema"> | ||||||
|  |       <div class="pr"> | ||||||
|  |         <div>请上传身份证原件的高清照片,若上传复印件,则需申请人签字;</div> | ||||||
|  |         <div>上传后系统会自动识别并填写</div> | ||||||
|  |       </div> | ||||||
|  |     </ng-template> | ||||||
|  |     <ng-template sf-template="legalPersonIdentityDTO/_certificatePhotoExmplateA" let-me let-ui="ui" let-schema="schema"> | ||||||
|  |       <div class="pr"> | ||||||
|  |         <dl class="tips"> | ||||||
|  |           <dt>正面照(人像面)</dt> | ||||||
|  |           <dd>示例</dd> | ||||||
|  |         </dl> | ||||||
|  |         <div class="pa"><img width="190" src="./assets/images/usercenter/certificate-demo-front.png" /></div> | ||||||
|  |       </div> | ||||||
|  |     </ng-template> | ||||||
|  |     <ng-template sf-template="legalPersonIdentityDTO/_certificatePhotoExmplateB" let-me let-ui="ui" let-schema="schema"> | ||||||
|  |       <div class="pr"> | ||||||
|  |         <dl class="tips"> | ||||||
|  |           <dt>背面照(国徽面)</dt> | ||||||
|  |           <dd>示例</dd> | ||||||
|  |         </dl> | ||||||
|  |         <div class="pa"><img width="190" src="./assets/images/usercenter/certificate-demo-back.png" /></div> | ||||||
|  |       </div> | ||||||
|  |     </ng-template> | ||||||
|  |   </sf> | ||||||
|  |  | ||||||
|  |   <sf #sf [ui]="ui" [schema]="schema" [button]="'none'"> | ||||||
|  |     <ng-template sf-template="title1" let-me let-ui="ui" let-schema="schema"> | ||||||
|  |       <div class="form-title">企业开票信息</div> | ||||||
|  |     </ng-template> | ||||||
|  |     <ng-template sf-template="title99" let-me let-ui="ui" let-schema="schema"> | ||||||
|  |       <div class="form-title">企业管理员信息</div> | ||||||
|  |     </ng-template> | ||||||
|  |  | ||||||
|  |     <ng-template sf-template="tipsD" let-me let-ui="ui" let-schema="schema"> | ||||||
|  |       <div class="pr" style="z-index: 999;"> | ||||||
|  |         <div>请上传该企业授权您成为本系统企业管理员的文件的高清照片,需加盖公司印章</div> | ||||||
|  |         <div>上传后系统会自动识别并填写</div> | ||||||
|  |         <div></div> | ||||||
|  |         <div class="pa"><img height="112px" style="margin-top: 12px;z-index: 9999;" | ||||||
|  |             (click)="service.showImg('./assets/images/usercenter/agree.png')" | ||||||
|  |             src="./assets/images/usercenter/agree.png" /></div> | ||||||
|  |       </div> | ||||||
|  |     </ng-template> | ||||||
|  |     <ng-template sf-template="tips" let-me let-ui="ui" let-schema="schema"> | ||||||
|  |       <div class="pr"> | ||||||
|  |         <div>请上传身份证原件的高清照片,若上传复印件,则需申请人签字;</div> | ||||||
|  |         <div>上传后系统会自动识别并填写</div> | ||||||
|  |       </div> | ||||||
|  |     </ng-template> | ||||||
|  |     <ng-template sf-template="tipsA" let-me let-ui="ui" let-schema="schema"> | ||||||
|  |       <div class="pr"> | ||||||
|  |         <dl class="tips"> | ||||||
|  |           <dt>正面照(人像面)</dt> | ||||||
|  |           <dd>示例</dd> | ||||||
|  |         </dl> | ||||||
|  |         <div class="pa"><img width="190" src="./assets/images/usercenter/certificate-demo-front.png" /></div> | ||||||
|  |       </div> | ||||||
|  |     </ng-template> | ||||||
|  |     <ng-template sf-template="tipsB" let-me let-ui="ui" let-schema="schema"> | ||||||
|  |       <div class="pr"> | ||||||
|  |         <dl class="tips"> | ||||||
|  |           <dt>背面照(国徽面)</dt> | ||||||
|  |           <dd>示例</dd> | ||||||
|  |         </dl> | ||||||
|  |         <div class="pa"><img width="190" src="./assets/images/usercenter/certificate-demo-back.png" /></div> | ||||||
|  |       </div> | ||||||
|  |     </ng-template> | ||||||
|  |   </sf> | ||||||
|  |  | ||||||
|  |   <div style="padding-left: 379px"> | ||||||
|  |     <button nz-button type="button" nzType="primary" (click)="submitForm()" | ||||||
|  |       [nzLoading]="service.http.loading">确认新增</button> | ||||||
|  |     <button nz-button (click)="goBack()">返回</button> | ||||||
|  |   </div> | ||||||
|  | </nz-card> | ||||||
| @ -0,0 +1,68 @@ | |||||||
|  | :host { | ||||||
|  |     ::ng-deep { | ||||||
|  |       nz-card { | ||||||
|  |    | ||||||
|  |         .pr { | ||||||
|  |           position: relative; | ||||||
|  |         } | ||||||
|  |    | ||||||
|  |         .pa { | ||||||
|  |           position: absolute; | ||||||
|  |           top     : 50px; | ||||||
|  |           left    : 150px; | ||||||
|  |         } | ||||||
|  |    | ||||||
|  |         .tips { | ||||||
|  |           display      : flex; | ||||||
|  |           margin-bottom: 0; | ||||||
|  |           color        : #333; | ||||||
|  |    | ||||||
|  |           dt { | ||||||
|  |             width: 150px; | ||||||
|  |           } | ||||||
|  |    | ||||||
|  |           dd { | ||||||
|  |             width        : 190px; | ||||||
|  |             margin-bottom: 0; | ||||||
|  |             text-align   : center; | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |    | ||||||
|  |         .form-title { | ||||||
|  |           margin-bottom: 10px; | ||||||
|  |           padding-left : 8px; | ||||||
|  |           color        : #333; | ||||||
|  |           font-weight  : 700; | ||||||
|  |           font-size    : 18px; | ||||||
|  |           line-height  : 20px; | ||||||
|  |           border-left  : solid 3px #1890ff; | ||||||
|  |         } | ||||||
|  |    | ||||||
|  |       } | ||||||
|  |    | ||||||
|  |       .ant-form-item { | ||||||
|  |         margin-left: 180px; | ||||||
|  |       } | ||||||
|  |    | ||||||
|  |       nz-date-picker, | ||||||
|  |       nz-input-number { | ||||||
|  |         width: 100% !important; | ||||||
|  |       } | ||||||
|  |    | ||||||
|  |       .input-back { | ||||||
|  |         nz-form-item { | ||||||
|  |           margin-left: 0px; | ||||||
|  |    | ||||||
|  |           .ant-form-item-label { | ||||||
|  |             flex: 0 !important; | ||||||
|  |           } | ||||||
|  |    | ||||||
|  |           .ant-form-item-control { | ||||||
|  |             max-width  : 100% !important; | ||||||
|  |             margin-left: 20px !important; | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |    | ||||||
|  |     } | ||||||
|  |   } | ||||||
| @ -0,0 +1,555 @@ | |||||||
|  | import { Component, OnInit, ViewChild } from '@angular/core'; | ||||||
|  | import { Router } from '@angular/router'; | ||||||
|  | import { apiConf } from '@conf/api.conf'; | ||||||
|  | import { | ||||||
|  |   SFUploadWidgetSchema, | ||||||
|  |   SFComponent, | ||||||
|  |   SFSchema, | ||||||
|  |   SFUISchema, | ||||||
|  |   SFCascaderWidgetSchema, | ||||||
|  |   SFTextareaWidgetSchema, | ||||||
|  |   SFDateWidgetSchema, | ||||||
|  |   SFCheckboxWidgetSchema | ||||||
|  | } from '@delon/form'; | ||||||
|  | import { NzUploadFile } from 'ng-zorro-antd/upload'; | ||||||
|  | import { of } from 'rxjs'; | ||||||
|  | import { PartnerListService } from '../../services/partner-list.service'; | ||||||
|  |  | ||||||
|  | const IMAGECONFIG = { | ||||||
|  |   previewFile: (file: NzUploadFile) => of(file.url), | ||||||
|  |   action: apiConf.waterFileUpload, | ||||||
|  |   fileType: 'image/png,image/jpeg,image/jpg,image/gif', | ||||||
|  |   fileSize: 5120, | ||||||
|  |   limit: 1, | ||||||
|  |   limitFileCount: 1, | ||||||
|  |   resReName: 'data.fullFileWatermarkPath', | ||||||
|  |   urlReName: 'data.fullFileWatermarkPath', | ||||||
|  |   widget: 'upload', | ||||||
|  |   name: 'multipartFile', | ||||||
|  |   multiple: false, | ||||||
|  |   listType: 'picture-card' | ||||||
|  | } as SFUploadWidgetSchema; | ||||||
|  |  | ||||||
|  | const DATECONFIG = { | ||||||
|  |   grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, | ||||||
|  |   widget: 'date', | ||||||
|  |   format: 'yyyy-MM-dd', | ||||||
|  |   placeholder: '请选择' | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | @Component({ | ||||||
|  |   selector: 'app-add-etp-partner', | ||||||
|  |   templateUrl: './add-etp-partner.component.html', | ||||||
|  |   styleUrls: ['./add-etp-partner.component.less'] | ||||||
|  | }) | ||||||
|  | export class AddEtpPartnerComponent implements OnInit { | ||||||
|  |   @ViewChild('sf', { static: false }) | ||||||
|  |   sf!: SFComponent; | ||||||
|  |   @ViewChild('sf1', { static: false }) | ||||||
|  |   sf1!: SFComponent; | ||||||
|  |   schema: SFSchema = this.initOthersSF(); | ||||||
|  |   schema1: SFSchema = this.initBasicInfoSF(); | ||||||
|  |   ui: SFUISchema = { | ||||||
|  |     '*': { | ||||||
|  |       spanLabelFixed: 180, | ||||||
|  |       grid: { span: 24 } | ||||||
|  |     }, | ||||||
|  |     $_basicInfoTitle: { | ||||||
|  |       spanLabelFixed: 0 | ||||||
|  |     }, | ||||||
|  |     $title99: { | ||||||
|  |       spanLabelFixed: 0 | ||||||
|  |     }, | ||||||
|  |     $_legalPersontitle: { | ||||||
|  |       spanLabelFixed: 0 | ||||||
|  |     }, | ||||||
|  |     $registrationCapital: { | ||||||
|  |       spanLabelFixed: 180, | ||||||
|  |       grid: { xxl: 13, xl: 18, lg: 22, md: 22 } | ||||||
|  |     }, | ||||||
|  |     $unit: { | ||||||
|  |       grid: { xxl: 6, xl: 6, lg: 2, md: 2 } | ||||||
|  |     }, | ||||||
|  |     $_isLoingDate: { | ||||||
|  |       spanLabelFixed: 100, | ||||||
|  |       grid: { xxl: 6, xl: 6, lg: 4, md: 6 } | ||||||
|  |     } | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   constructor(private router: Router, public service: PartnerListService) {} | ||||||
|  |   ngOnInit() { | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   submitForm() { | ||||||
|  |     if (!this.sf1.valid || !this.sf.valid) { | ||||||
|  |       this.sf.validator({ emitError: true }); | ||||||
|  |       this.sf1.validator({ emitError: true }); | ||||||
|  |       this.service.msgSrv.warning('请修改填写错误信息'); | ||||||
|  |       return; | ||||||
|  |     } | ||||||
|  |     const enterpriseRegistrationTime = new Date(this.sf1.value.enterpriseRegistrationTime); | ||||||
|  |     const operatingStartTime = new Date(this.sf1.value.operatingStartTime); | ||||||
|  |     if (enterpriseRegistrationTime.getTime() > operatingStartTime.getTime()) { | ||||||
|  |       this.service.msgSrv.warning('营业期限不能小于成立日期'); | ||||||
|  |       return; | ||||||
|  |     } | ||||||
|  |     if (this.sf1.value.operatingEndTime) { | ||||||
|  |       const operatingEndTime = new Date(this.sf1.value.operatingEndTime); | ||||||
|  |       if (operatingStartTime.getTime() > operatingEndTime.getTime()) { | ||||||
|  |         this.service.msgSrv.warning('营业期限不能小于期限开始日期'); | ||||||
|  |         return; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     const validStartTime = new Date(this.sf1.value.legalPersonIdentityDTO.validStartTime); | ||||||
|  |     if (this.sf1.value.legalPersonIdentityDTO.validEndTime) { | ||||||
|  |       const validEndTime = new Date(this.sf1.value.legalPersonIdentityDTO.validEndTime); | ||||||
|  |       if (validStartTime.getTime() > validEndTime.getTime()) { | ||||||
|  |         this.service.msgSrv.warning('法人证件有效截止日期小于开始日期'); | ||||||
|  |         return; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     const sfVlaue = this.sf.value; | ||||||
|  |     const params = {}; | ||||||
|  |     Object.assign( | ||||||
|  |       params, | ||||||
|  |       { ...this.sf1.value }, | ||||||
|  |       { ...this.sf.value }, | ||||||
|  |       { | ||||||
|  |         enterpriseAddressCode: this.sf1.value.enterpriseAddressCode[2], | ||||||
|  |         oftenUsedServices: sfVlaue.oftenUsedServices, | ||||||
|  |         registerAddress: sfVlaue.registerAddress, | ||||||
|  |         registerPhone: sfVlaue.registerPhone, | ||||||
|  |         creditPhoto: sfVlaue.creditPhoto, | ||||||
|  |         creditPhotoWatermark: sfVlaue.creditPhotoWatermark, | ||||||
|  |         promotersTelephone: sfVlaue.promotersTelephone, | ||||||
|  |         networkTransporter: sfVlaue.networkTransporter, | ||||||
|  |         adminUserInfo: { | ||||||
|  |           certificateNumber: sfVlaue.certificateNumber, | ||||||
|  |           certificatePhotoBack: sfVlaue.certificatePhotoBack, | ||||||
|  |           certificatePhotoBackWatermark: sfVlaue.certificatePhotoBackWatermark, | ||||||
|  |           certificatePhotoFront: sfVlaue.certificatePhotoFront, | ||||||
|  |           certificatePhotoFrontWatermark: sfVlaue.certificatePhotoFrontWatermark, | ||||||
|  |           name: sfVlaue.name | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     ); | ||||||
|  |     // this.service.request(this.service.$api_save_enterprise_admin, params).subscribe(res => { | ||||||
|  |     //   if (res) { | ||||||
|  |     //     this.service.msgSrv.success('企业新增成功'); | ||||||
|  |     //     this.goBack(); | ||||||
|  |     //   } | ||||||
|  |     // }); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   /* | ||||||
|  |    * 根据地区code查询地区列表 | ||||||
|  |    */ | ||||||
|  |   getRegionDetailByCode(regionCode: any) { | ||||||
|  |     return this.service.request(this.service.$api_get_region_by_code, { regionCode }); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   // 识别身份证 参数isFront:front-正面、back-背面;type:0-申请人身份证,1-法定代表人身份证 | ||||||
|  |   checkIdCard(imgurl: any, isFront: string, type: number) { | ||||||
|  |     const params = { | ||||||
|  |       idCardUrl: imgurl, | ||||||
|  |       side: isFront | ||||||
|  |     }; | ||||||
|  |     this.service.request(this.service.$api_ocr_recognize_id_card, params).subscribe(res => { | ||||||
|  |       if (res) { | ||||||
|  |         if (type === 1) { | ||||||
|  |           // 法定代表人证件照 | ||||||
|  |           if (isFront === 'front') { | ||||||
|  |             // 正面 | ||||||
|  |             if (res.name) { | ||||||
|  |               this.sf1.setValue('/legalPersonIdentityDTO/name', res.name); | ||||||
|  |             } | ||||||
|  |             if (res.number) { | ||||||
|  |               this.sf1.setValue('/legalPersonIdentityDTO/certificateType', 0); | ||||||
|  |               this.sf1.setValue('/legalPersonIdentityDTO/certificateNumber', res.number); | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |           if (isFront === 'back') { | ||||||
|  |             // 背面 | ||||||
|  |             if (res.validFrom) { | ||||||
|  |               this.sf1.setValue('/legalPersonIdentityDTO/validStartTime', res.validFrom); | ||||||
|  |             } | ||||||
|  |             if (res.validTo) { | ||||||
|  |               this.sf1.setValue('/legalPersonIdentityDTO/validEndTime', res.validTo); | ||||||
|  |               this.sf1.setValue('/legalPersonIdentityDTO/_isLoingDate', false); | ||||||
|  |             } else { | ||||||
|  |               this.sf1.setValue('/legalPersonIdentityDTO/_isLoingDate', true); | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |         // 企业管理员证件照 | ||||||
|  |         if (type === 0) { | ||||||
|  |           if (isFront === 'front') { | ||||||
|  |             // 正面 | ||||||
|  |             if (res.name) { | ||||||
|  |               this.sf.setValue('/name', res.name); | ||||||
|  |             } | ||||||
|  |             if (res.number) { | ||||||
|  |               this.sf.setValue('/certificateNumber', res.number); | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   // 识别营业执照 | ||||||
|  |   checkBusinessLicense(imgurl: any) { | ||||||
|  |     this.service.request(this.service.$api_ocr_recognize_business_license, { businessLicenseUrl: imgurl }).subscribe(res => { | ||||||
|  |       if (res) { | ||||||
|  |         if (res.registrationNumber) { | ||||||
|  |           this.sf1.setValue('/unifiedSocialCreditCode', res.registrationNumber); | ||||||
|  |         } | ||||||
|  |         if (res.name) { | ||||||
|  |           this.sf1.setValue('/enterpriseName', res.name); | ||||||
|  |         } | ||||||
|  |         if (res.type) { | ||||||
|  |           this.sf1.setValue('/enterpriseType', res.type); | ||||||
|  |         } | ||||||
|  |         if (res.addressRegionCodes) { | ||||||
|  |           this.sf1.setValue('/enterpriseAddressCode', res.addressRegionCodes); | ||||||
|  |         } | ||||||
|  |         if (res.address) { | ||||||
|  |           this.sf1.setValue('/enterpriseAddress', res.address); | ||||||
|  |         } | ||||||
|  |         if (res.registeredCapital) { | ||||||
|  |           this.sf1.setValue('/registrationCapital', res.registeredCapital); | ||||||
|  |         } | ||||||
|  |         if (res.foundDate) { | ||||||
|  |           this.sf1.setValue('/enterpriseRegistrationTime', res.foundDate); | ||||||
|  |         } | ||||||
|  |         if (res.businessTermStartDate) { | ||||||
|  |           this.sf1.setValue('/operatingStartTime', res.businessTermStartDate); | ||||||
|  |         } | ||||||
|  |         if (res.businessTermEndDate) { | ||||||
|  |           this.sf1.setValue('/operatingEndTime', res.businessTermEndDate); | ||||||
|  |         } else { | ||||||
|  |           this.sf1.setValue('/_isLoingDate', true); | ||||||
|  |         } | ||||||
|  |         if (res.businessScope) { | ||||||
|  |           this.sf1.setValue('/businessScope', res.businessScope); | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   goBack() { | ||||||
|  |     window.history.go(-1); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   private initBasicInfoSF(): SFSchema { | ||||||
|  |     return { | ||||||
|  |       properties: { | ||||||
|  |         _basicInfoTitle: { title: '', type: 'string', ui: { widget: 'custom' } }, | ||||||
|  |         _licenseTips: { title: '营业执照', type: 'string', ui: { widget: 'custom' } }, | ||||||
|  |         licensePhoto: { title: '', type: 'string', ui: { hidden: true } }, | ||||||
|  |         licensePhotoWatermark: { | ||||||
|  |           type: 'string', | ||||||
|  |           title: '', | ||||||
|  |           ui: { | ||||||
|  |             ...IMAGECONFIG, | ||||||
|  |             descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过5M', | ||||||
|  |             change: args => { | ||||||
|  |               if (args.type === 'success') { | ||||||
|  |                 this.sf1.setValue('/licensePhoto', args.fileList[0].response.data.fullFilePath); | ||||||
|  |                 this.checkBusinessLicense(args.fileList[0].response.data.fullFilePath); | ||||||
|  |               } | ||||||
|  |             } | ||||||
|  |           } as SFUploadWidgetSchema | ||||||
|  |         }, | ||||||
|  |         unifiedSocialCreditCode: { | ||||||
|  |           title: '统一社会信用代码', | ||||||
|  |           type: 'string', | ||||||
|  |           minLength: 1, | ||||||
|  |           maxLength: 30, | ||||||
|  |           ui: { | ||||||
|  |             grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, | ||||||
|  |             optionalHelp: | ||||||
|  |               '为了企业用户的使用体验,若公司代码即统一社会信用代码已在本应用其他关联平台注册,则此处填写的公司资料将同步更新至对应已注册的平台', | ||||||
|  |             placeholder: '请输入营业执照上的统一社会信用代码', | ||||||
|  |             errors: { | ||||||
|  |               required: '请输入18位公司代码' | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         enterpriseName: { | ||||||
|  |           title: '公司名称', | ||||||
|  |           type: 'string', | ||||||
|  |           minLength: 1, | ||||||
|  |           maxLength: 100, | ||||||
|  |           ui: { | ||||||
|  |             grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, | ||||||
|  |             placeholder: '请输入营业执照上的统一社会信用代码', | ||||||
|  |             errors: { | ||||||
|  |               required: '请输入公司名称' | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         operatingStartTime: { | ||||||
|  |           title: '营业期限', | ||||||
|  |           type: 'string', | ||||||
|  |           ui: { | ||||||
|  |             ...DATECONFIG, | ||||||
|  |             grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, | ||||||
|  |             errors: { | ||||||
|  |               required: '请选择开始日期' | ||||||
|  |             } | ||||||
|  |           } as SFDateWidgetSchema | ||||||
|  |         }, | ||||||
|  |         operatingEndTime: { | ||||||
|  |           title: '', | ||||||
|  |           type: 'string', | ||||||
|  |           ui: { | ||||||
|  |             ...DATECONFIG, | ||||||
|  |             grid: { xxl: 13, xl: 18, lg: 20, md: 18 }, | ||||||
|  |             errors: { | ||||||
|  |               required: '请选择截止日期' | ||||||
|  |             }, | ||||||
|  |             change: i => { | ||||||
|  |               this.sf1?.setValue('/_isLoingDate', false); | ||||||
|  |             } | ||||||
|  |           } as SFDateWidgetSchema | ||||||
|  |         }, | ||||||
|  |         _isLoingDate: { | ||||||
|  |           title: '长期', | ||||||
|  |           type: 'boolean', | ||||||
|  |           ui: { | ||||||
|  |             class: 'input-back', | ||||||
|  |             widget: 'checkbox', | ||||||
|  |             change: i => this.sf1?.setValue('/operatingEndTime', null) | ||||||
|  |           } as SFCheckboxWidgetSchema | ||||||
|  |         }, | ||||||
|  |  | ||||||
|  |         legalPersonIdentityDTO: { | ||||||
|  |           type: 'object', | ||||||
|  |           properties: { | ||||||
|  |             _legalPersontitle: { title: '', type: 'string', ui: { widget: 'custom' } }, | ||||||
|  |             _certificatePhototips: { title: '法定代表人证件照', type: 'string', ui: { widget: 'custom' } }, | ||||||
|  |             _certificatePhotoExmplateA: { title: '', type: 'string', ui: { widget: 'custom', offsetControl: 6 } }, | ||||||
|  |             certificatePhotoFrontWatermark: { | ||||||
|  |               type: 'string', | ||||||
|  |               title: '', | ||||||
|  |               ui: { | ||||||
|  |                 ...IMAGECONFIG, | ||||||
|  |                 descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过5M', | ||||||
|  |                 change: args => { | ||||||
|  |                   if (args.type === 'success') { | ||||||
|  |                     this.sf1.setValue('/legalPersonIdentityDTO/certificatePhotoFront', args.fileList[0].response.data.fullFilePath); | ||||||
|  |                     this.checkIdCard(args.fileList[0].response.data.fullFilePath, 'front', 1); | ||||||
|  |                   } | ||||||
|  |                 } | ||||||
|  |               } as SFUploadWidgetSchema | ||||||
|  |             }, | ||||||
|  |             _certificatePhotoExmplateB: { title: '', type: 'string', ui: { widget: 'custom', offsetControl: 6 } }, | ||||||
|  |             certificatePhotoFront: { title: '', type: 'string', ui: { hidden: true } }, | ||||||
|  |             certificatePhotoBack: { title: '', type: 'string', ui: { hidden: true } }, | ||||||
|  |             certificatePhotoBackWatermark: { | ||||||
|  |               type: 'string', | ||||||
|  |               title: '', | ||||||
|  |               ui: { | ||||||
|  |                 ...IMAGECONFIG, | ||||||
|  |                 descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过5M', | ||||||
|  |                 change: args => { | ||||||
|  |                   if (args.type === 'success') { | ||||||
|  |                     this.sf1.setValue('/legalPersonIdentityDTO/certificatePhotoBack', args.fileList[0].response.data.fullFilePath); | ||||||
|  |                     this.checkIdCard(args.fileList[0].response.data.fullFilePath, 'back', 1); | ||||||
|  |                   } | ||||||
|  |                 } | ||||||
|  |               } as SFUploadWidgetSchema | ||||||
|  |             }, | ||||||
|  |             name: { | ||||||
|  |               title: '法人代表姓名', | ||||||
|  |               type: 'string', | ||||||
|  |               maxLength: 8, | ||||||
|  |               ui: { | ||||||
|  |                 grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, | ||||||
|  |                 placeholder: '请输入营业执照上的法人姓名' | ||||||
|  |               } | ||||||
|  |             }, | ||||||
|  |             certificateType: { | ||||||
|  |               type: 'string', | ||||||
|  |               title: '法人证件类型', | ||||||
|  |               enum: [ | ||||||
|  |                 { label: '大陆身份证', value: 0 }, | ||||||
|  |                 { label: '港澳居民通行证', value: 1 }, | ||||||
|  |                 { label: '香港居民通行证', value: 2 } | ||||||
|  |               ], | ||||||
|  |               default: 0, | ||||||
|  |               ui: { | ||||||
|  |                 grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, | ||||||
|  |                 widget: 'select' | ||||||
|  |               } | ||||||
|  |             }, | ||||||
|  |             certificateNumber: { | ||||||
|  |               title: ' 法定代表人证件号', | ||||||
|  |               type: 'string', | ||||||
|  |               format: 'id-card', | ||||||
|  |               minLength: 1, | ||||||
|  |               maxLength: 18, | ||||||
|  |               ui: { | ||||||
|  |                 grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, | ||||||
|  |                 placeholder: '请输入法定代表人证件号' | ||||||
|  |               } | ||||||
|  |             }, | ||||||
|  |             validStartTime: { | ||||||
|  |               title: '法人证件有效开始日期', | ||||||
|  |               type: 'string', | ||||||
|  |               ui: { | ||||||
|  |                 grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, | ||||||
|  |                 widget: 'date', | ||||||
|  |                 format: 'yyyy-MM-dd', | ||||||
|  |                 placeholder: '请选择', | ||||||
|  |                 errors: { | ||||||
|  |                   required: '请选择开始日期' | ||||||
|  |                 } | ||||||
|  |               } as SFDateWidgetSchema | ||||||
|  |             }, | ||||||
|  |             validEndTime: { | ||||||
|  |               title: '法人证件有效截止日期', | ||||||
|  |               type: 'string', | ||||||
|  |               ui: { | ||||||
|  |                 grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, | ||||||
|  |                 widget: 'date', | ||||||
|  |                 format: 'yyyy-MM-dd', | ||||||
|  |                 placeholder: '请选择', | ||||||
|  |                 errors: { | ||||||
|  |                   required: '请选择截止日期' | ||||||
|  |                 }, | ||||||
|  |                 change: i => { | ||||||
|  |                   this.sf1?.setValue('/legalPersonIdentityDTO/_isLoingDate', false); | ||||||
|  |                 } | ||||||
|  |               } as SFDateWidgetSchema | ||||||
|  |             }, | ||||||
|  |             _isLoingDate: { | ||||||
|  |               title: '长期', | ||||||
|  |               type: 'boolean', | ||||||
|  |               ui: { | ||||||
|  |                 spanLabelFixed: 100, | ||||||
|  |                 grid: { span: 6 }, | ||||||
|  |                 class: 'input-back', | ||||||
|  |                 widget: 'checkbox', | ||||||
|  |                 change: i => this.sf1?.setValue('/legalPersonIdentityDTO/validEndTime', null) | ||||||
|  |               } as SFCheckboxWidgetSchema | ||||||
|  |             } | ||||||
|  |           }, | ||||||
|  |           required: ['certificatePhotoFront', 'certificatePhotoBack', 'name', 'certificateType', 'certificateNumber', 'validStartTime'] | ||||||
|  |         } | ||||||
|  |       }, | ||||||
|  |       required: [ | ||||||
|  |         'licensePhotoWatermark', | ||||||
|  |         'unifiedSocialCreditCode', | ||||||
|  |         'enterpriseName', | ||||||
|  |         'enterpriseType', | ||||||
|  |         'enterpriseAddressCode', | ||||||
|  |         'enterpriseAddress', | ||||||
|  |         'registrationCapital', | ||||||
|  |         'enterpriseRegistrationTime', | ||||||
|  |         'operatingStartTime', | ||||||
|  |         'businessScope' | ||||||
|  |       ] | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   private initOthersSF(): SFSchema { | ||||||
|  |     return { | ||||||
|  |       properties: { | ||||||
|  |         title99: { title: '', type: 'string', ui: { widget: 'custom' } }, | ||||||
|  |         adminMobile: { | ||||||
|  |           title: ' 企业管理员手机号', | ||||||
|  |           type: 'string', | ||||||
|  |           minLength: 1, | ||||||
|  |           format: 'mobile', | ||||||
|  |           maxLength: 11, | ||||||
|  |           ui: { | ||||||
|  |             grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, | ||||||
|  |             placeholder: '请输入企业管理员手机号', | ||||||
|  |             errors: { required: '请输入企业管理员手机号', format: '手机号格式错误' } | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         tipsA: { | ||||||
|  |           title: '企业管理员证件照', | ||||||
|  |           type: 'string', | ||||||
|  |           ui: { | ||||||
|  |             widget: 'custom' | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         certificatePhotoFront: { title: '', type: 'string', ui: { hidden: true } }, | ||||||
|  |         certificatePhotoBack: { title: '', type: 'string', ui: { hidden: true } }, | ||||||
|  |         certificatePhotoFrontWatermark: { | ||||||
|  |           type: 'string', | ||||||
|  |           title: '', | ||||||
|  |           ui: { | ||||||
|  |             ...IMAGECONFIG, | ||||||
|  |             descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过5M', | ||||||
|  |             change: args => { | ||||||
|  |               if (args.type === 'success') { | ||||||
|  |                 this.sf.setValue('/certificatePhotoFront', args.fileList[0].response.data.fullFilePath); | ||||||
|  |                 this.checkIdCard(args.fileList[0].response.data.fullFilePath, 'front', 0); | ||||||
|  |               } | ||||||
|  |             } | ||||||
|  |           } as SFUploadWidgetSchema | ||||||
|  |         }, | ||||||
|  |         tipsB: { | ||||||
|  |           title: '', | ||||||
|  |           type: 'string', | ||||||
|  |           ui: { | ||||||
|  |             widget: 'custom', | ||||||
|  |             offsetControl: 6 | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         certificatePhotoBackWatermark: { | ||||||
|  |           type: 'string', | ||||||
|  |           title: '', | ||||||
|  |           ui: { | ||||||
|  |             ...IMAGECONFIG, | ||||||
|  |             descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过5M', | ||||||
|  |             change: args => { | ||||||
|  |               if (args.type === 'success') { | ||||||
|  |                 this.sf.setValue('/certificatePhotoBack', args.fileList[0].response.data.fullFilePath); | ||||||
|  |               } | ||||||
|  |             } | ||||||
|  |           } as SFUploadWidgetSchema | ||||||
|  |         }, | ||||||
|  |         name: { | ||||||
|  |           title: '企业管理员姓名', | ||||||
|  |           type: 'string', | ||||||
|  |           maxLength: 8, | ||||||
|  |           ui: { | ||||||
|  |             grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, | ||||||
|  |             placeholder: '请输入企业管理员姓名' | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         certificateNumber: { | ||||||
|  |           title: '企业管理员身份证号', | ||||||
|  |           type: 'string', | ||||||
|  |           format: 'id-card', | ||||||
|  |           minLength: 1, | ||||||
|  |           maxLength: 18, | ||||||
|  |           ui: { | ||||||
|  |             grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, | ||||||
|  |             placeholder: '请输入企业管理员身份证号' | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |  | ||||||
|  |         title1: { title: '', type: 'string', ui: { widget: 'custom' } }, | ||||||
|  |         createBank: { | ||||||
|  |           title: '所属城市', | ||||||
|  |           type: 'string', | ||||||
|  |           ui: { grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, placeholder: '请输入银行账号' } | ||||||
|  |         }, | ||||||
|  |  | ||||||
|  |         title3: { title: '', type: 'string', ui: { widget: 'custom' } }, | ||||||
|  |         bankAccount: { | ||||||
|  |           title: '渠道销售邀请码', | ||||||
|  |           type: 'string', | ||||||
|  |           ui: { grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, placeholder: '请输入银行账号' } | ||||||
|  |         } | ||||||
|  |       }, | ||||||
|  |       required: ['createBank', 'bankAccount', 'adminMobile', 'name', 'certificateNumber', 'tipsD', 'creditPhoto'] | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  | } | ||||||
| @ -0,0 +1 @@ | |||||||
|  | <p>add-personal-partner works!</p> | ||||||
| @ -0,0 +1,15 @@ | |||||||
|  | import { Component, OnInit } from '@angular/core'; | ||||||
|  |  | ||||||
|  | @Component({ | ||||||
|  |   selector: 'app-add-personal-partner', | ||||||
|  |   templateUrl: './add-personal-partner.component.html', | ||||||
|  |   styleUrls: ['./add-personal-partner.component.less'] | ||||||
|  | }) | ||||||
|  | export class AddPersonalPartnerComponent implements OnInit { | ||||||
|  |  | ||||||
|  |   constructor() { } | ||||||
|  |  | ||||||
|  |   ngOnInit(): void { | ||||||
|  |   } | ||||||
|  |  | ||||||
|  | } | ||||||
| @ -22,8 +22,8 @@ | |||||||
|  |  | ||||||
| <nz-card class="content-box" nzBordered> | <nz-card class="content-box" nzBordered> | ||||||
|     <div class="d-flex align-items-center mb-md mt-md"> |     <div class="d-flex align-items-center mb-md mt-md"> | ||||||
|         <button nz-button (click)="this.routeTo('/partner/add-etp-partner')" nzType="primary">新增企业合伙人</button> |         <button nz-button (click)="this.routeTo('/partner/partner-list/add-etp-partner')" nzType="primary">新增企业合伙人</button> | ||||||
|         <button nz-button (click)="this.routeTo('/partner/add-personal-partner')" nzType="primary">新增个人合伙人</button> |         <button nz-button (click)="this.routeTo('/partner/partner-list/add-personal-partner')" nzType="primary">新增个人合伙人</button> | ||||||
|     </div> |     </div> | ||||||
|  |  | ||||||
|     <st #st [data]="service.$mock_url" [columns]="columns" [req]="{  process: beforeReq }" |     <st #st [data]="service.$mock_url" [columns]="columns" [req]="{  process: beforeReq }" | ||||||
|  | |||||||
| @ -11,6 +11,10 @@ export class PartnerListService extends BaseService { | |||||||
|   $api_get_region_by_code = '/api/mdc/pbc/region/getRegionByCode'; |   $api_get_region_by_code = '/api/mdc/pbc/region/getRegionByCode'; | ||||||
|   // 根据地区code查询地区详情 |   // 根据地区code查询地区详情 | ||||||
|   $api_get_region_detail_by_code = '/api/mdc/pbc/region/getRegionDetailByCode'; |   $api_get_region_detail_by_code = '/api/mdc/pbc/region/getRegionDetailByCode'; | ||||||
|  |   // 营业执照识别 | ||||||
|  |   $api_ocr_recognize_business_license = '/api/mdc/pbc/hwc/ocr/recognizeBusinessLicense'; | ||||||
|  |   // 身份证识别 | ||||||
|  |   $api_ocr_recognize_id_card = '/api/mdc/pbc/hwc/ocr/recognizeIdCard'; | ||||||
|  |  | ||||||
|   constructor(public injector: Injector, private nzModalService: NzModalService) { |   constructor(public injector: Injector, private nzModalService: NzModalService) { | ||||||
|     super(injector); |     super(injector); | ||||||
|  | |||||||
| @ -33,6 +33,10 @@ import { PartnerAccountManagementWithdralDetailComponent } from './account-manag | |||||||
| import { PartnerRecordedRecordComponent } from './recorded/components/record/record.component'; | import { PartnerRecordedRecordComponent } from './recorded/components/record/record.component'; | ||||||
| import { PartnerRecordedDetailComponent } from './recorded/components/detail/detail.component'; | import { PartnerRecordedDetailComponent } from './recorded/components/detail/detail.component'; | ||||||
| import { ParterRebateManageMentSettingComponent } from './rebate-management/components/rebate-setting/rebate-setting.component'; | import { ParterRebateManageMentSettingComponent } from './rebate-management/components/rebate-setting/rebate-setting.component'; | ||||||
|  | import { AddEtpPartnerComponent } from './partner-list/components/add-etp-partner/add-etp-partner.component'; | ||||||
|  | import { AddPersonalPartnerComponent } from './partner-list/components/add-personal-partner/add-personal-partner.component'; | ||||||
|  | import { PartnerDetailComponent } from './partner-list/components/partner-detail/partner-detail.component'; | ||||||
|  | import { PartnerListComponent } from './partner-list/components/index/partner-list.component'; | ||||||
|  |  | ||||||
| const routes: Routes = [ | const routes: Routes = [ | ||||||
|   { |   { | ||||||
| @ -74,6 +78,20 @@ const routes: Routes = [ | |||||||
|   { |   { | ||||||
|     path: 'account-management', |     path: 'account-management', | ||||||
|     children: [ |     children: [ | ||||||
|  |       { path: 'list', component: PartnerAccountManagementListComponent }, | ||||||
|  |       { path: 'account-detail', component: PartnerAccountManagementAccountDetailComponent }, | ||||||
|  |       { path: 'recorded-detail/:id', component: PartnerAccountManagementRecordedDetailComponent }, | ||||||
|  |       { path: 'withdraw-record', component: PartnerAccountManagementWithdrawalsRecordComponent }, | ||||||
|  |       { path: 'withdraw-record/:id', component: PartnerAccountManagementWithdralDetailComponent } | ||||||
|  |     ] | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     path: 'partner-list', | ||||||
|  |     children: [ | ||||||
|  |       { path: '', component: PartnerListComponent }, | ||||||
|  |       { path: 'detail/:id', component: PartnerDetailComponent }, | ||||||
|  |       { path: 'add-etp-partner', component: AddEtpPartnerComponent }, | ||||||
|  |       { path: 'add-personal-partner', component: AddPersonalPartnerComponent }, | ||||||
|       { |       { | ||||||
|         path: 'am', |         path: 'am', | ||||||
|         children: [ |         children: [ | ||||||
|  | |||||||
| @ -44,11 +44,12 @@ import { PartnerRoutingModule } from './partner-routing.module'; | |||||||
| import { ParterRebateManageMentParticularsComponent } from './rebate-management/components/particulars/particulars.component'; | import { ParterRebateManageMentParticularsComponent } from './rebate-management/components/particulars/particulars.component'; | ||||||
| import { ParterRebateManageMentRecordComponent } from './rebate-management/components/rebate-record/rebate-record.component'; | import { ParterRebateManageMentRecordComponent } from './rebate-management/components/rebate-record/rebate-record.component'; | ||||||
| import { ParterRebateManageMentSettingComponent } from './rebate-management/components/rebate-setting/rebate-setting.component'; | import { ParterRebateManageMentSettingComponent } from './rebate-management/components/rebate-setting/rebate-setting.component'; | ||||||
|  | import { AddEtpPartnerComponent } from './partner-list/components/add-etp-partner/add-etp-partner.component'; | ||||||
|  | import { AddPersonalPartnerComponent } from './partner-list/components/add-personal-partner/add-personal-partner.component'; | ||||||
| import { ParterRebateManageMenAbnormalFeedbackComponent } from './rebate-management/model/abnormal-feedback/abnormal-feedback.component'; | import { ParterRebateManageMenAbnormalFeedbackComponent } from './rebate-management/model/abnormal-feedback/abnormal-feedback.component'; | ||||||
| import { PartnerRecordedDetailComponent } from './recorded/components/detail/detail.component'; | import { PartnerRecordedDetailComponent } from './recorded/components/detail/detail.component'; | ||||||
| import { PartnerRecordedRecordComponent } from './recorded/components/record/record.component'; | import { PartnerRecordedRecordComponent } from './recorded/components/record/record.component'; | ||||||
|  |  | ||||||
|  |  | ||||||
| const COMPONENTS: any[] = [ | const COMPONENTS: any[] = [ | ||||||
|   PartnerBusinessStatisticsIndexComponent, |   PartnerBusinessStatisticsIndexComponent, | ||||||
|   ParterChannelSalesListComponent, |   ParterChannelSalesListComponent, | ||||||
| @ -83,11 +84,14 @@ const COMPONENTS: any[] = [ | |||||||
|   PartnerListComponent, |   PartnerListComponent, | ||||||
|   PartnerDetailComponent, |   PartnerDetailComponent, | ||||||
|   ParterRebateManageMenAbnormalFeedbackComponent, |   ParterRebateManageMenAbnormalFeedbackComponent, | ||||||
|   ParterRebateManageMentSettingComponent |   ParterRebateManageMentSettingComponent, | ||||||
|  |   PartnerAuditModalComponent, | ||||||
|  |   AddEtpPartnerComponent, | ||||||
|  |   AddPersonalPartnerComponent | ||||||
| ]; | ]; | ||||||
|  |  | ||||||
| @NgModule({ | @NgModule({ | ||||||
|   declarations: [...COMPONENTS, PartnerAuditModalComponent], |   declarations: [...COMPONENTS], | ||||||
|   imports: [CommonModule, PartnerRoutingModule, SharedModule], |   imports: [CommonModule, PartnerRoutingModule, SharedModule], | ||||||
|   providers: [PartnerListService] |   providers: [PartnerListService] | ||||||
| }) | }) | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user