diff --git a/src/app/routes/supply-management/components/bulk-publish/bulk-publish.component.html b/src/app/routes/supply-management/components/bulk-publish/bulk-publish.component.html index 336ce00a..021b4d00 100644 --- a/src/app/routes/supply-management/components/bulk-publish/bulk-publish.component.html +++ b/src/app/routes/supply-management/components/bulk-publish/bulk-publish.component.html @@ -220,7 +220,7 @@
- + diff --git a/src/app/routes/supply-management/components/bulk-publish/bulk-publish.component.ts b/src/app/routes/supply-management/components/bulk-publish/bulk-publish.component.ts index eb2969b1..cb3fc20c 100644 --- a/src/app/routes/supply-management/components/bulk-publish/bulk-publish.component.ts +++ b/src/app/routes/supply-management/components/bulk-publish/bulk-publish.component.ts @@ -21,6 +21,7 @@ import { PublishSuccessComponent } from '../onecar-publish/publish-success/publi import { PublishAddressListComponent } from '../onecar-publish/address-list/address-list.component'; import { TranAgreementComponent } from '../tran-agreement/tran-agreement.component'; import differenceInCalendarDays from 'date-fns/differenceInCalendarDays'; +import { SupplyManagementQrcodePageComponent } from '../qrcode-page/qrcode-page.component'; @Component({ selector: 'app-publish-goods-bulk-publish', templateUrl: './bulk-publish.component.html', @@ -692,6 +693,13 @@ export class SupplyManagementBulkPublishComponent implements OnInit { if (submitType == 'assign') { this.chooseFamifiar(params); return; + }else if(submitType === 'qrcode'){ + this.service.request(this.service.$api_saveAnotherBulkOrderQRCode, params).subscribe(res => { + if (res) { + this.assignedQrcode( res, params ) + } + }); + return; } } if (this.PageStatus === '大宗修改') { @@ -700,6 +708,28 @@ export class SupplyManagementBulkPublishComponent implements OnInit { this.requests(this.service.$api_set_saveAnotherBulkOrder, params, 2); } } + // 生成二维码 + assignedQrcode(id:string,parms:any ) { + const item = { + id, + enterpriseInfoName: parms.enterpriseInfoName, + loadingAddressArr: this.startInfo.map((ele: any)=>ele.detailedAddress), + unloadingAddressArr: this.endInfo.map((ele: any)=>ele.detailedAddress), + deadlineTime: parms.deadlineTime, + } + const modalRef = this.modalService.create({ + nzTitle: '二维码', + nzWidth: '468px', + nzContent: SupplyManagementQrcodePageComponent, + nzComponentParams: { + i: item, + }, + nzFooter: null, + }); + modalRef.afterClose.subscribe(() => { + this.router.navigate(['/supply-management/index'], { queryParams: { type: 'bulk' } }); + }); + } requests(url: any, params: any, change?: any) { this.service.request(url, params).subscribe((res: any) => { if (res) { diff --git a/src/app/routes/supply-management/components/bulk-release-publish/bulk-release-publish.component.html b/src/app/routes/supply-management/components/bulk-release-publish/bulk-release-publish.component.html index 1e587b03..8a3b04e9 100644 --- a/src/app/routes/supply-management/components/bulk-release-publish/bulk-release-publish.component.html +++ b/src/app/routes/supply-management/components/bulk-release-publish/bulk-release-publish.component.html @@ -241,7 +241,7 @@
- +
diff --git a/src/app/routes/supply-management/components/bulk-release-publish/bulk-release-publish.component.ts b/src/app/routes/supply-management/components/bulk-release-publish/bulk-release-publish.component.ts index e512795b..dc58592b 100644 --- a/src/app/routes/supply-management/components/bulk-release-publish/bulk-release-publish.component.ts +++ b/src/app/routes/supply-management/components/bulk-release-publish/bulk-release-publish.component.ts @@ -21,6 +21,7 @@ import { PublishAddressListComponent } from '../onecar-publish/address-list/addr import { PublishSuccessComponent } from '../onecar-publish/publish-success/publish-success.component'; import { TranAgreementComponent } from '../tran-agreement/tran-agreement.component'; import differenceInCalendarDays from 'date-fns/differenceInCalendarDays'; +import { SupplyManagementQrcodePageComponent } from '../qrcode-page/qrcode-page.component'; @Component({ selector: 'app-publish-goods-bulk-publish', templateUrl: './bulk-release-publish.component.html', @@ -615,6 +616,13 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit { let reqUrl = this.service.$api_consignBulk; if (submitType === 'assign') { this.chooseFamifiar(params); + }else if(submitType === 'qrcode'){ + this.service.request(this.service.$api_consignBulkQRCode, params).subscribe(res => { + if (res) { + this.assignedQrcode( res, params ) + } + }); + return; } else { this.service.request(reqUrl, params).subscribe(res => { if (res) { @@ -629,6 +637,28 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit { }); } } + // 生成二维码 + assignedQrcode(id:string,parms:any ) { + const item = { + id, + enterpriseInfoName: parms.enterpriseInfoName, + loadingAddressArr: this.startInfo.map((ele: any)=>ele.detailedAddress), + unloadingAddressArr: this.endInfo.map((ele: any)=>ele.detailedAddress), + deadlineTime: parms.deadlineTime, + } + const modalRef = this.modalService.create({ + nzTitle: '二维码', + nzWidth: '468px', + nzContent: SupplyManagementQrcodePageComponent, + nzComponentParams: { + i: item, + }, + nzFooter: null, + }); + modalRef.afterClose.subscribe(() => { + this.router.navigate(['/supply-management/index'], { queryParams: { type: 'bulk' } }); + }); + } // 获取城市列表 getRegionCode(regionCode: any) { return this.service diff --git a/src/app/routes/supply-management/services/supply-management.service.ts b/src/app/routes/supply-management/services/supply-management.service.ts index 1f1796ee..6881bac6 100644 --- a/src/app/routes/supply-management/services/supply-management.service.ts +++ b/src/app/routes/supply-management/services/supply-management.service.ts @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2021-12-03 11:10:14 * @LastEditors : Shiming - * @LastEditTime : 2022-01-24 16:36:35 + * @LastEditTime : 2022-02-17 15:25:57 * @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\services\\supply-management.service.ts * Copyright (C) 2022 huzhenhong. All rights reserved. */ @@ -102,7 +102,10 @@ export class SupplyManagementService extends BaseService { // 货源审核【批量】 public $api_batchGoodsResourceAudit = '/api/sdc/goodsResourceOperate/batchGoodsResourceAudit'; - + // 大宗再下一单二维码 + $api_saveAnotherBulkOrderQRCode = '/api/sdc/goodsResourceOperate/saveAnotherBulkOrderQRCode'; + // 代发大宗货源二维码 + $api_consignBulkQRCode = '/api/sdc/goodsResourceOperate/consignBulkQRCode'; // 获取操作日志列表 public $api_getOperationLogRecordsList = '/api/mdc/pbc/operationLogRecords/getOperationLogRecordsList'; diff --git a/src/app/routes/sys-setting/components/network-freight/network-freight.component.html b/src/app/routes/sys-setting/components/network-freight/network-freight.component.html index 64b5e0d1..c0a207f8 100644 --- a/src/app/routes/sys-setting/components/network-freight/network-freight.component.html +++ b/src/app/routes/sys-setting/components/network-freight/network-freight.component.html @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2021-12-24 15:54:08 * @LastEditors : Shiming - * @LastEditTime : 2022-02-17 14:05:57 + * @LastEditTime : 2022-02-17 15:03:58 * @FilePath : \\tms-obc-web\\src\\app\\routes\\sys-setting\\components\\network-freight\\network-freight.component.html * Copyright (C) 2022 huzhenhong. All rights reserved. --> @@ -48,7 +48,7 @@
- +
+ + + +
企业基本信息
+
+ +
+ 请上传营业执照原件的高清照片,若上传复印件,则需加盖公司印章; +
上传后系统会自动识别并填写
+
+
+ +
万元
+
+ + +
营业执照法人信息
+
+ +
+
请上传身份证原件的高清照片,若上传复印件,则需申请人签字;
+
上传后系统会自动识别并填写
+
+
+ +
+
+
正面照(人像面)
+
示例
+
+
+
+
+ +
+
+
背面照(国徽面)
+
示例
+
+
+
+
+
+ + + +
企业开票信息
+
+ +
企业管理员信息
+
+ + +
+
请上传该企业授权您成为本系统企业管理员的文件的高清照片,需加盖公司印章
+
上传后系统会自动识别并填写
+
+
+
+
+ +
+
请上传身份证原件的高清照片,若上传复印件,则需申请人签字;
+
上传后系统会自动识别并填写
+
+
+ +
+
+
正面照(人像面)
+
示例
+
+
+
+
+ +
+
+
背面照(国徽面)
+
示例
+
+
+
+
+
+ +
+ + +
+
\ No newline at end of file diff --git a/src/app/routes/sys-setting/components/network-freight/new/new.component.less b/src/app/routes/sys-setting/components/network-freight/new/new.component.less new file mode 100644 index 00000000..78a0db6d --- /dev/null +++ b/src/app/routes/sys-setting/components/network-freight/new/new.component.less @@ -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; + } + } + } + + } +} \ No newline at end of file diff --git a/src/app/routes/sys-setting/components/network-freight/new/new.component.ts b/src/app/routes/sys-setting/components/network-freight/new/new.component.ts new file mode 100644 index 00000000..26111e0e --- /dev/null +++ b/src/app/routes/sys-setting/components/network-freight/new/new.component.ts @@ -0,0 +1,737 @@ +import { Component, OnInit, ViewChild } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { apiConf } from '@conf/api.conf'; +import { + SFCascaderWidgetSchema, + SFCheckboxWidgetSchema, + SFComponent, + SFDateWidgetSchema, + SFSchema, + SFTextareaWidgetSchema, + SFUISchema, + SFUploadWidgetSchema +} from '@delon/form'; +import { NzUploadFile } from 'ng-zorro-antd/upload'; +import { of } from 'rxjs'; +import { UsermanageService } from 'src/app/routes/usercenter/services/usercenter.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-network-freight-new-component', + templateUrl: './new.component.html', + styleUrls: ['./new.component.less'] +}) +export class NetworkFreightNewComponent 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 } + }, + $title1: { + spanLabelFixed: 0 + }, + $title99: { + spanLabelFixed: 0 + }, + $title2: { + 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: UsermanageService) {} + 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: { + title1: { title: '', type: 'string', ui: { widget: 'custom' } }, + tips: { title: '', type: 'string', ui: { widget: 'custom', offsetControl: 6 } }, + 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: '请输入公司名称' + } + } + }, + enterpriseType: { + title: '公司类型', + type: 'string', + minLength: 1, + maxLength: 30, + ui: { + grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, + placeholder: '请输入公司类型', + errors: { + required: '请输入公司类型' + } + } + }, + enterpriseAddressCode: { + type: 'number', + title: '营业执照所在地', + ui: { + grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, + widget: 'cascader', + valueProperty: 'regionCode', + labelProperty: 'name', + asyncData: (node: any, index: any) => { + return new Promise(resolve => { + this.getRegionDetailByCode(node?.regionCode || '').subscribe( + res => { + node.children = res.map((item: any) => ({ ...item, isLeaf: index === 1 })); + }, + _ => {}, + () => { + resolve(); + } + ); + }); + } + } as SFCascaderWidgetSchema + }, + enterpriseAddress: { + title: '营业执照详细地址', + type: 'string', + minLength: 1, + maxLength: 240, + ui: { + grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, + widget: 'textarea', + autosize: { minRows: 2, maxRows: 5 }, + placeholder: '请输入营业执照上的完整详细地址', + errors: { + required: '请输入营业执照上的完整详细地址' + } + } as SFTextareaWidgetSchema + }, + registrationCapital: { + title: '注册资本', + type: 'number', + minimum: 1, + maximum: 99999999999999999999, + ui: { + grid: { xxl: 13, xl: 18, lg: 22, md: 22 }, + placeholder: '请输入营业执照上的注册资本', + errors: { + required: '请输入营业执照上的注册资本' + }, + precision: 0 + } + }, + enterpriseRegistrationTime: { + title: '成立日期', + type: 'string', + ui: { + ...DATECONFIG, + grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, + errors: { + required: '请选择开始日期' + } + } as SFDateWidgetSchema + }, + blank1: { + type: 'string', + ui: { widget: 'text', grid: { xxl: 11, xl: 6, md: 0, sm: 0 }, class: 'input-back' }, + default: ' ' + }, + 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); + setTimeout(() => { + console.log(this.sf1.value); + }, 1000); + } + } as SFDateWidgetSchema + }, + isLoingDate: { + title: '长期', + type: 'boolean', + ui: { + class: 'input-back', + widget: 'checkbox', + change: i => this.sf1?.setValue('/operatingEndTime', null) + } as SFCheckboxWidgetSchema + }, + businessScope: { + title: '经营范围', + type: 'string', + minLength: 1, + maxLength: 500, + ui: { + grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, + widget: 'textarea', + autosize: { minRows: 3, maxRows: 5 }, + placeholder: '请输入营业执照上的营经营范围', + errors: { + required: '请输入营业执照上的营经营范围' + } + } as SFTextareaWidgetSchema + }, + taxAuthority: { + title: '税务机关', + type: 'string', + minLength: 1, + maxLength: 30, + ui: { + grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, + placeholder: '请输入营业执照上的税务机关', + errors: { + required: '请输入营业执照上的税务机关' + } + } + }, + + legalPersonIdentityDTO: { + type: 'object', + properties: { + title2: { title: '', type: 'string', ui: { widget: 'custom' } }, + tipsC: { title: '法定代表人证件照', type: 'string', ui: { widget: 'custom' } }, + tipsA: { 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 + }, + tipsB: { 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: { + title1: { title: '', type: 'string', ui: { widget: 'custom' } }, + createBank: { + title: '开户银行', + type: 'string', + ui: { grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, placeholder: '请输入银行账号' } + }, + bankAccount: { + title: '银行账号', + type: 'string', + ui: { grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, placeholder: '请输入银行账号' } + }, + registerAddress: { + title: ' 注册地址', + type: 'string', + ui: { grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, placeholder: '请输入注册地址' } + }, + registerPhone: { + title: ' 注册电话', + type: 'string', + format: 'mobile', + minLength: 1, + maxLength: 11, + ui: { + grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, + placeholder: '请输入注册电话', + errors: { required: '请输入注册电话', format: '手机号格式错误' } + } + }, + + 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: '请输入企业管理员身份证号' + } + }, + tipsD: { title: '企业授权函', type: 'string', ui: { widget: 'custom' }, default: 1 }, + creditPhoto: { title: '', type: 'string', ui: { hidden: true } }, + creditPhotoWatermark: { + type: 'string', + title: '', + ui: { + ...IMAGECONFIG, + descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过5M', + change: args => { + if (args.type === 'success') { + this.sf.setValue('/creditPhoto', args.fileList[0].response.data.fullFilePath); + } + } + } as SFUploadWidgetSchema + }, + oftenUsedServices: { + type: 'string', + title: '常用服务', + enum: [ + { label: '整车发货', value: 10 }, + { label: '大宗发货', value: 20 } + ], + default: '', + ui: { + grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, + widget: 'select', + placeholder: '请选择', + visibleIf: { + expand: (value: boolean) => value + } + } + }, + promotersTelephone: { + title: '推广业务员手机号', + type: 'string', + minLength: 1, + format: 'mobile', + maxLength: 11, + ui: { + grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, + placeholder: '请输入推广业务员手机号', + errors: { required: '请输入推广业务员手机号', format: '手机号格式错误' } + } + }, + networkTransporter: { + type: 'string', + title: '网络货运人', + ui: { + grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, + widget: 'select', + placeholder: '请选择', + allowClear: true, + asyncData: () => this.service.getNetworkFreightForwarder() + }, + default: '' + } + }, + required: ['createBank', 'bankAccount', 'adminMobile', 'name', 'certificateNumber', 'tipsD', 'creditPhoto', 'networkTransporter'] + }; + } +} diff --git a/src/app/routes/sys-setting/sys-setting-routing.module.ts b/src/app/routes/sys-setting/sys-setting-routing.module.ts index f9a94ad5..9f8ebd1e 100644 --- a/src/app/routes/sys-setting/sys-setting-routing.module.ts +++ b/src/app/routes/sys-setting/sys-setting-routing.module.ts @@ -1,7 +1,7 @@ /* * @Author: your name * @Date: 2021-12-03 15:23:05 - * @LastEditTime : 2022-01-21 10:29:33 + * @LastEditTime : 2022-02-17 15:03:00 * @LastEditors : Shiming * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @FilePath : \\tms-obc-web\\src\\app\\routes\\sys-setting\\sys-setting-routing.module.ts @@ -23,6 +23,7 @@ import { SystemConfigComponent } from './components/system-config/system-config. import { AnnouncementMessageComponent } from './components/announcement-message/announcement-message.component'; import { InsuranceSetComponent } from './components/insurance-set/insurance-set.component'; +import { NetworkFreightNewComponent } from './components/network-freight/new/new.component'; const routes: Routes = [ { path: 'staff-management', component: StaffManagementComponent }, @@ -36,10 +37,11 @@ const routes: Routes = [ { path: 'goods-name-config', component: GoodsNameConfigComponent }, { path: 'crm-management', component: CrmManagementComponent }, { path: 'network-freight', component: NetworkFreightComponent }, + { path: 'network-freight/new', component: NetworkFreightNewComponent }, { path: 'close-account', component: CloseAccountComponent }, // { path: 'btn-management', component: BtnManagementComponent }, { path: 'announcement-message', component: AnnouncementMessageComponent }, - { path: 'insurance-set', component: InsuranceSetComponent } + { path: 'insurance-set', component: InsuranceSetComponent }, ]; @NgModule({ diff --git a/src/app/routes/sys-setting/sys-setting.module.ts b/src/app/routes/sys-setting/sys-setting.module.ts index 8c3426e6..3d944bfe 100644 --- a/src/app/routes/sys-setting/sys-setting.module.ts +++ b/src/app/routes/sys-setting/sys-setting.module.ts @@ -1,7 +1,7 @@ /* * @Author: your name * @Date: 2021-12-03 15:23:05 - * @LastEditTime : 2022-01-21 10:29:45 + * @LastEditTime : 2022-02-17 15:03:19 * @LastEditors : Shiming * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @FilePath : \\tms-obc-web\\src\\app\\routes\\sys-setting\\sys-setting.module.ts @@ -31,12 +31,12 @@ import { NetworkFreightComponent } from './components/network-freight/network-fr import { CloseAccountComponent } from './components/close-account/close-account.component'; import { AnnouncementMessageComponent } from './components/announcement-message/announcement-message.component'; import { InsuranceSetComponent } from './components/insurance-set/insurance-set.component'; +import { NetworkFreightNewComponent } from './components/network-freight/new/new.component'; const COMPONENTS = [ StaffManagementComponent, RoleManagementComponent, BasicConfigComponent, - AuditReasonConfigComponent, CartConfigComponent, AgreementConfigComponentsBaseComponent, @@ -46,7 +46,7 @@ const COMPONENTS = [ CrmManagementComponent, NetworkFreightComponent, CloseAccountComponent, - + NetworkFreightNewComponent, AnnouncementMessageComponent, InsuranceSetComponent ];