diff --git a/src/app/routes/partner/partner-list/components/add-etp-partner/add-etp-partner.component.ts b/src/app/routes/partner/partner-list/components/add-etp-partner/add-etp-partner.component.ts
index 580f9f3d..00540e31 100644
--- a/src/app/routes/partner/partner-list/components/add-etp-partner/add-etp-partner.component.ts
+++ b/src/app/routes/partner/partner-list/components/add-etp-partner/add-etp-partner.component.ts
@@ -9,7 +9,8 @@ import {
SFCascaderWidgetSchema,
SFTextareaWidgetSchema,
SFDateWidgetSchema,
- SFCheckboxWidgetSchema
+ SFCheckboxWidgetSchema,
+ SFTreeSelectWidgetSchema
} from '@delon/form';
import { NzUploadFile } from 'ng-zorro-antd/upload';
import { of } from 'rxjs';
@@ -45,10 +46,7 @@ const DATECONFIG = {
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();
+ schema: SFSchema = this.initBasicInfoSF();
ui: SFUISchema = {
'*': {
spanLabelFixed: 180,
@@ -57,19 +55,9 @@ export class AddEtpPartnerComponent implements OnInit {
$_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 }
@@ -77,32 +65,30 @@ export class AddEtpPartnerComponent implements OnInit {
};
constructor(private router: Router, public service: PartnerListService) {}
- ngOnInit() {
- }
+ ngOnInit() {}
submitForm() {
- if (!this.sf1.valid || !this.sf.valid) {
+ if (!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);
+ const enterpriseRegistrationTime = new Date(this.sf.value.enterpriseRegistrationTime);
+ const operatingStartTime = new Date(this.sf.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 (this.sf.value.operatingEndTime) {
+ const operatingEndTime = new Date(this.sf.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);
+ const validStartTime = new Date(this.sf.value.legalPersonIdentityDTO.validStartTime);
+ if (this.sf.value.legalPersonIdentityDTO.validEndTime) {
+ const validEndTime = new Date(this.sf.value.legalPersonIdentityDTO.validEndTime);
if (validStartTime.getTime() > validEndTime.getTime()) {
this.service.msgSrv.warning('法人证件有效截止日期小于开始日期');
return;
@@ -112,10 +98,9 @@ export class AddEtpPartnerComponent implements OnInit {
const params = {};
Object.assign(
params,
- { ...this.sf1.value },
{ ...this.sf.value },
{
- enterpriseAddressCode: this.sf1.value.enterpriseAddressCode[2],
+ enterpriseAddressCode: this.sf.value.enterpriseAddressCode[2],
oftenUsedServices: sfVlaue.oftenUsedServices,
registerAddress: sfVlaue.registerAddress,
registerPhone: sfVlaue.registerPhone,
@@ -161,23 +146,23 @@ export class AddEtpPartnerComponent implements OnInit {
if (isFront === 'front') {
// 正面
if (res.name) {
- this.sf1.setValue('/legalPersonIdentityDTO/name', res.name);
+ this.sf.setValue('/legalPersonIdentityDTO/name', res.name);
}
if (res.number) {
- this.sf1.setValue('/legalPersonIdentityDTO/certificateType', 0);
- this.sf1.setValue('/legalPersonIdentityDTO/certificateNumber', res.number);
+ this.sf.setValue('/legalPersonIdentityDTO/certificateType', 0);
+ this.sf.setValue('/legalPersonIdentityDTO/certificateNumber', res.number);
}
}
if (isFront === 'back') {
// 背面
if (res.validFrom) {
- this.sf1.setValue('/legalPersonIdentityDTO/validStartTime', res.validFrom);
+ this.sf.setValue('/legalPersonIdentityDTO/validStartTime', res.validFrom);
}
if (res.validTo) {
- this.sf1.setValue('/legalPersonIdentityDTO/validEndTime', res.validTo);
- this.sf1.setValue('/legalPersonIdentityDTO/_isLoingDate', false);
+ this.sf.setValue('/legalPersonIdentityDTO/validEndTime', res.validTo);
+ this.sf.setValue('/legalPersonIdentityDTO/_isLoingDate', false);
} else {
- this.sf1.setValue('/legalPersonIdentityDTO/_isLoingDate', true);
+ this.sf.setValue('/legalPersonIdentityDTO/_isLoingDate', true);
}
}
}
@@ -202,36 +187,33 @@ export class AddEtpPartnerComponent implements OnInit {
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);
+ this.sf.setValue('/unifiedSocialCreditCode', res.registrationNumber);
}
if (res.name) {
- this.sf1.setValue('/enterpriseName', res.name);
+ this.sf.setValue('/enterpriseName', res.name);
}
if (res.type) {
- this.sf1.setValue('/enterpriseType', res.type);
+ this.sf.setValue('/enterpriseType', res.type);
}
if (res.addressRegionCodes) {
- this.sf1.setValue('/enterpriseAddressCode', res.addressRegionCodes);
+ this.sf.setValue('/enterpriseAddressCode', res.addressRegionCodes);
}
if (res.address) {
- this.sf1.setValue('/enterpriseAddress', res.address);
- }
- if (res.registeredCapital) {
- this.sf1.setValue('/registrationCapital', res.registeredCapital);
+ this.sf.setValue('/enterpriseAddress', res.address);
}
if (res.foundDate) {
- this.sf1.setValue('/enterpriseRegistrationTime', res.foundDate);
+ this.sf.setValue('/enterpriseRegistrationTime', res.foundDate);
}
if (res.businessTermStartDate) {
- this.sf1.setValue('/operatingStartTime', res.businessTermStartDate);
+ this.sf.setValue('/operatingStartTime', res.businessTermStartDate);
}
if (res.businessTermEndDate) {
- this.sf1.setValue('/operatingEndTime', res.businessTermEndDate);
+ this.sf.setValue('/operatingEndTime', res.businessTermEndDate);
} else {
- this.sf1.setValue('/_isLoingDate', true);
+ this.sf.setValue('/_isLoingDate', true);
}
if (res.businessScope) {
- this.sf1.setValue('/businessScope', res.businessScope);
+ this.sf.setValue('/businessScope', res.businessScope);
}
}
});
@@ -244,8 +226,9 @@ export class AddEtpPartnerComponent implements OnInit {
private initBasicInfoSF(): SFSchema {
return {
properties: {
+ // 企业基本信息
_basicInfoTitle: { title: '', type: 'string', ui: { widget: 'custom' } },
- _licenseTips: { title: '营业执照', type: 'string', ui: { widget: 'custom' } },
+ _licenseTips: { title: '营业执照', type: 'string', ui: { widget: 'custom' }, default: true },
licensePhoto: { title: '', type: 'string', ui: { hidden: true } },
licensePhotoWatermark: {
type: 'string',
@@ -255,7 +238,7 @@ export class AddEtpPartnerComponent implements OnInit {
descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过5M',
change: args => {
if (args.type === 'success') {
- this.sf1.setValue('/licensePhoto', args.fileList[0].response.data.fullFilePath);
+ this.sf.setValue('/licensePhoto', args.fileList[0].response.data.fullFilePath);
this.checkBusinessLicense(args.fileList[0].response.data.fullFilePath);
}
}
@@ -310,7 +293,7 @@ export class AddEtpPartnerComponent implements OnInit {
required: '请选择截止日期'
},
change: i => {
- this.sf1?.setValue('/_isLoingDate', false);
+ this.sf?.setValue('/_isLoingDate', false);
}
} as SFDateWidgetSchema
},
@@ -320,15 +303,16 @@ export class AddEtpPartnerComponent implements OnInit {
ui: {
class: 'input-back',
widget: 'checkbox',
- change: i => this.sf1?.setValue('/operatingEndTime', null)
+ change: i => this.sf?.setValue('/operatingEndTime', null)
} as SFCheckboxWidgetSchema
},
+ // 法人信息
legalPersonIdentityDTO: {
type: 'object',
properties: {
_legalPersontitle: { title: '', type: 'string', ui: { widget: 'custom' } },
- _certificatePhototips: { title: '法定代表人证件照', type: 'string', ui: { widget: 'custom' } },
+ _certificatePhototips: { title: '法定代表人证件照', type: 'string', ui: { widget: 'custom' }, default: true },
_certificatePhotoExmplateA: { title: '', type: 'string', ui: { widget: 'custom', offsetControl: 6 } },
certificatePhotoFrontWatermark: {
type: 'string',
@@ -338,7 +322,7 @@ export class AddEtpPartnerComponent implements OnInit {
descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过5M',
change: args => {
if (args.type === 'success') {
- this.sf1.setValue('/legalPersonIdentityDTO/certificatePhotoFront', args.fileList[0].response.data.fullFilePath);
+ this.sf.setValue('/legalPersonIdentityDTO/certificatePhotoFront', args.fileList[0].response.data.fullFilePath);
this.checkIdCard(args.fileList[0].response.data.fullFilePath, 'front', 1);
}
}
@@ -355,7 +339,7 @@ export class AddEtpPartnerComponent implements OnInit {
descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过5M',
change: args => {
if (args.type === 'success') {
- this.sf1.setValue('/legalPersonIdentityDTO/certificatePhotoBack', args.fileList[0].response.data.fullFilePath);
+ this.sf.setValue('/legalPersonIdentityDTO/certificatePhotoBack', args.fileList[0].response.data.fullFilePath);
this.checkIdCard(args.fileList[0].response.data.fullFilePath, 'back', 1);
}
}
@@ -420,7 +404,7 @@ export class AddEtpPartnerComponent implements OnInit {
required: '请选择截止日期'
},
change: i => {
- this.sf1?.setValue('/legalPersonIdentityDTO/_isLoingDate', false);
+ this.sf?.setValue('/legalPersonIdentityDTO/_isLoingDate', false);
}
} as SFDateWidgetSchema
},
@@ -432,124 +416,177 @@ export class AddEtpPartnerComponent implements OnInit {
grid: { span: 6 },
class: 'input-back',
widget: 'checkbox',
- change: i => this.sf1?.setValue('/legalPersonIdentityDTO/validEndTime', null)
+ change: i => this.sf?.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: '手机号格式错误' }
- }
+ required: [
+ '_certificatePhototips',
+ 'certificatePhotoFront',
+ 'certificatePhotoBack',
+ 'name',
+ 'certificateType',
+ 'certificateNumber',
+ 'validStartTime'
+ ]
},
- 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);
+ // 企业管理员信息
+ adminUserInfo: {
+ type: 'object',
+ properties: {
+ _adminTitle: { 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: '手机号格式错误' }
}
- }
- } 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);
+ },
+ _adminCertificatePhotoTipsA: {
+ title: '企业管理员证件照',
+ type: 'string',
+ ui: {
+ widget: 'custom'
+ },
+ default: true
+ },
+ 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
+ },
+ _adminCertificatePhotoTipsB: {
+ 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: '请输入企业管理员身份证号'
+ }
+ },
+ 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.sf?.setValue('/adminUserInfo/_isLoingDate', false);
+ }
+ } as SFDateWidgetSchema
+ },
+ _isLoingDate: {
+ title: '长期',
+ type: 'boolean',
+ ui: {
+ spanLabelFixed: 100,
+ grid: { span: 6 },
+ class: 'input-back',
+ widget: 'checkbox',
+ change: i => this.sf?.setValue('/adminUserInfo/operatingEndTime', null)
+ } as SFCheckboxWidgetSchema
}
- } as SFUploadWidgetSchema
+ },
+ required: ['_adminCertificatePhotoTipsA', 'adminMobile', 'name', 'certificateNumber','operatingStartTime']
},
- name: {
- title: '企业管理员姓名',
+ // 所属城市
+ _addressTitle: { title: '', type: 'string', ui: { widget: 'custom' } },
+ status3: {
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: '请输入银行账号' }
+ default: ['WAIT_BUYER_PAY', 'TRADE_FINISHED'],
+ ui: {
+ widget: 'tree-select',
+ grid: { xxl: 13, xl: 18, lg: 24, md: 24 },
+ placeholder: '请选择城市(最多3个)',
+ checkable: true,
+ asyncData: () =>
+ of([
+ { title: '待支付', key: 'WAIT_BUYER_PAY' },
+ { title: '已支付', key: 'TRADE_SUCCESS' },
+ { title: '交易完成', key: 'TRADE_FINISHED' }
+ ])
+ } as SFTreeSelectWidgetSchema,
},
-
- title3: { title: '', type: 'string', ui: { widget: 'custom' } },
- bankAccount: {
+ // 渠道销售
+ _channelTitle: { title: '', type: 'string', ui: { widget: 'custom' } },
+ channel: {
title: '渠道销售邀请码',
type: 'string',
- ui: { grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, placeholder: '请输入银行账号' }
+ minLength: 1,
+ maxLength: 100,
+ ui: {
+ grid: { xxl: 13, xl: 18, lg: 24, md: 24 },
+ placeholder: '请输入渠道销售邀请码',
+ errors: {
+ required: '请输入渠道销售邀请码'
+ }
+ }
}
},
- required: ['createBank', 'bankAccount', 'adminMobile', 'name', 'certificateNumber', 'tipsD', 'creditPhoto']
+ required: ['_licenseTips', 'licensePhotoWatermark', 'unifiedSocialCreditCode', 'enterpriseName', 'operatingStartTime', 'status3','channel']
};
}
}
diff --git a/src/app/routes/partner/partner-list/components/add-personal-partner/add-personal-partner.component.html b/src/app/routes/partner/partner-list/components/add-personal-partner/add-personal-partner.component.html
index 8245d202..e476071d 100644
--- a/src/app/routes/partner/partner-list/components/add-personal-partner/add-personal-partner.component.html
+++ b/src/app/routes/partner/partner-list/components/add-personal-partner/add-personal-partner.component.html
@@ -1 +1,44 @@
-
add-personal-partner works!
+
+
+
+
+
+ 合伙人信息
+
+
+
+
+
+
+
+
+
+
+ 所属城市
+
+
+
+
+ 渠道销售
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/routes/partner/partner-list/components/add-personal-partner/add-personal-partner.component.less b/src/app/routes/partner/partner-list/components/add-personal-partner/add-personal-partner.component.less
index e69de29b..6b70e074 100644
--- a/src/app/routes/partner/partner-list/components/add-personal-partner/add-personal-partner.component.less
+++ b/src/app/routes/partner/partner-list/components/add-personal-partner/add-personal-partner.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/partner/partner-list/components/add-personal-partner/add-personal-partner.component.ts b/src/app/routes/partner/partner-list/components/add-personal-partner/add-personal-partner.component.ts
index 6d31529c..ed2eac4f 100644
--- a/src/app/routes/partner/partner-list/components/add-personal-partner/add-personal-partner.component.ts
+++ b/src/app/routes/partner/partner-list/components/add-personal-partner/add-personal-partner.component.ts
@@ -1,4 +1,32 @@
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, ViewChild } from '@angular/core';
+import { Router } from '@angular/router';
+import { apiConf } from '@conf/api.conf';
+import { SFUploadWidgetSchema, SFComponent, SFSchema, SFUISchema, SFDateWidgetSchema, SFCheckboxWidgetSchema, SFTreeSelectWidgetSchema } 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-personal-partner',
@@ -6,10 +34,311 @@ import { Component, OnInit } from '@angular/core';
styleUrls: ['./add-personal-partner.component.less']
})
export class AddPersonalPartnerComponent implements OnInit {
+ @ViewChild('sf', { static: false })
+ sf!: SFComponent;
+ schema: SFSchema = this.initBasicInfoSF();
+ ui: SFUISchema = {
+ '*': {
+ spanLabelFixed: 180,
+ grid: { span: 24 }
+ },
+ $_basicInfoTitle: {
+ spanLabelFixed: 0
+ },
+ $_legalPersontitle: {
+ spanLabelFixed: 0
+ },
+ $_isLoingDate: {
+ spanLabelFixed: 100,
+ grid: { xxl: 6, xl: 6, lg: 4, md: 6 }
+ }
+ };
- constructor() { }
+ constructor(private router: Router, public service: PartnerListService) {}
+ ngOnInit() {}
- ngOnInit(): void {
+ submitForm() {
+ if (!this.sf.valid) {
+ this.sf.validator({ emitError: true });
+ this.service.msgSrv.warning('请修改填写错误信息');
+ return;
+ }
+ const enterpriseRegistrationTime = new Date(this.sf.value.enterpriseRegistrationTime);
+ const operatingStartTime = new Date(this.sf.value.operatingStartTime);
+ if (enterpriseRegistrationTime.getTime() > operatingStartTime.getTime()) {
+ this.service.msgSrv.warning('营业期限不能小于成立日期');
+ return;
+ }
+ if (this.sf.value.operatingEndTime) {
+ const operatingEndTime = new Date(this.sf.value.operatingEndTime);
+ if (operatingStartTime.getTime() > operatingEndTime.getTime()) {
+ this.service.msgSrv.warning('营业期限不能小于期限开始日期');
+ return;
+ }
+ }
+ const validStartTime = new Date(this.sf.value.legalPersonIdentityDTO.validStartTime);
+ if (this.sf.value.legalPersonIdentityDTO.validEndTime) {
+ const validEndTime = new Date(this.sf.value.legalPersonIdentityDTO.validEndTime);
+ if (validStartTime.getTime() > validEndTime.getTime()) {
+ this.service.msgSrv.warning('法人证件有效截止日期小于开始日期');
+ return;
+ }
+ }
+ const sfVlaue = this.sf.value;
+ const params = {};
+ Object.assign(
+ params,
+ { ...this.sf.value },
+ {
+ enterpriseAddressCode: this.sf.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.sf.setValue('/legalPersonIdentityDTO/name', res.name);
+ }
+ if (res.number) {
+ this.sf.setValue('/legalPersonIdentityDTO/certificateType', 0);
+ this.sf.setValue('/legalPersonIdentityDTO/certificateNumber', res.number);
+ }
+ }
+ if (isFront === 'back') {
+ // 背面
+ if (res.validFrom) {
+ this.sf.setValue('/legalPersonIdentityDTO/validStartTime', res.validFrom);
+ }
+ if (res.validTo) {
+ this.sf.setValue('/legalPersonIdentityDTO/validEndTime', res.validTo);
+ this.sf.setValue('/legalPersonIdentityDTO/_isLoingDate', false);
+ } else {
+ this.sf.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);
+ }
+ }
+ }
+ }
+ });
+ }
+
+ goBack() {
+ window.history.go(-1);
+ }
+
+ private initBasicInfoSF(): SFSchema {
+ return {
+ properties: {
+ // 合伙人信息
+ adminUserInfo: {
+ type: 'object',
+ properties: {
+ _adminTitle: { 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: '手机号格式错误' }
+ }
+ },
+ _adminCertificatePhotoTipsA: {
+ title: '证件照',
+ type: 'string',
+ ui: {
+ widget: 'custom'
+ },
+ default: true
+ },
+ 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
+ },
+ _adminCertificatePhotoTipsB: {
+ 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: '请输入身份证号'
+ }
+ },
+ 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.sf?.setValue('/adminUserInfo/_isLoingDate', false);
+ }
+ } as SFDateWidgetSchema
+ },
+ _isLoingDate: {
+ title: '长期',
+ type: 'boolean',
+ ui: {
+ spanLabelFixed: 100,
+ grid: { span: 6 },
+ class: 'input-back',
+ widget: 'checkbox',
+ change: i => this.sf?.setValue('/adminUserInfo/operatingEndTime', null)
+ } as SFCheckboxWidgetSchema
+ }
+ },
+ required: ['_adminCertificatePhotoTipsA', 'adminMobile', 'name', 'certificateNumber', 'operatingStartTime']
+ },
+ // 所属城市
+ _addressTitle: { title: '', type: 'string', ui: { widget: 'custom' } },
+ status3: {
+ type: 'string',
+ title: '所属城市',
+ default: ['WAIT_BUYER_PAY', 'TRADE_FINISHED'],
+ ui: {
+ widget: 'tree-select',
+ grid: { xxl: 13, xl: 18, lg: 24, md: 24 },
+ placeholder: '请选择城市(最多3个)',
+ checkable: true,
+ asyncData: () =>
+ of([
+ { title: '待支付', key: 'WAIT_BUYER_PAY' },
+ { title: '已支付', key: 'TRADE_SUCCESS' },
+ { title: '交易完成', key: 'TRADE_FINISHED' }
+ ])
+ } as SFTreeSelectWidgetSchema
+ },
+ // 渠道销售
+ _channelTitle: { title: '', type: 'string', ui: { widget: 'custom' } },
+ channel: {
+ title: '渠道销售邀请码',
+ type: 'string',
+ minLength: 1,
+ maxLength: 100,
+ ui: {
+ grid: { xxl: 13, xl: 18, lg: 24, md: 24 },
+ placeholder: '请输入渠道销售邀请码',
+ errors: {
+ required: '请输入渠道销售邀请码'
+ }
+ }
+ }
+ },
+ required: [
+ 'status3',
+ 'channel'
+ ]
+ };
+ }
}
diff --git a/src/app/routes/partner/partner-routing.module.ts b/src/app/routes/partner/partner-routing.module.ts
index 79c6269f..2ceac3d8 100644
--- a/src/app/routes/partner/partner-routing.module.ts
+++ b/src/app/routes/partner/partner-routing.module.ts
@@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-02-24 15:07:57
* @LastEditors : Shiming
- * @LastEditTime : 2022-02-24 15:23:48
+ * @LastEditTime : 2022-03-11 15:22:36
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\partner-routing.module.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
@@ -37,6 +37,7 @@ import { AddEtpPartnerComponent } from './partner-list/components/add-etp-partne
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';
+import { ParterRebateManageMentAddComponent } from './rebate-management/components/rebate-setting/add/add.component';
const routes: Routes = [
{
@@ -72,7 +73,8 @@ const routes: Routes = [
children: [
{ path: 'particulars', component: ParterRebateManageMentParticularsComponent },
{ path: 'record', component: ParterRebateManageMentRecordComponent },
- { path: 'setting', component: ParterRebateManageMentSettingComponent }
+ { path: 'setting', component: ParterRebateManageMentSettingComponent },
+ { path: 'setting/add/:id', component: ParterRebateManageMentAddComponent },
]
},
{
diff --git a/src/app/routes/partner/partner.module.ts b/src/app/routes/partner/partner.module.ts
index ac40e6ac..6eadaab1 100644
--- a/src/app/routes/partner/partner.module.ts
+++ b/src/app/routes/partner/partner.module.ts
@@ -4,13 +4,13 @@
* @Author : Shiming
* @Date : 2022-03-09 14:34:55
* @LastEditors : Shiming
- * @LastEditTime : 2022-03-09 14:56:46
+ * @LastEditTime : 2022-03-11 15:28:01
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\partner.module.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
-import { SharedModule } from '@shared';
+import { rebateTableModule, SharedModule } from '@shared';
import { PartnerAccountManagementAccountDetailComponent } from './account-management/components/account-detail/account-detail.component';
import { PartnerAccountManagementListComponent } from './account-management/components/list/list.component';
import { PartnerAccountManagementRecordedDetailComponent } from './account-management/components/recorded-detail/recorded-detail.component';
@@ -49,6 +49,7 @@ import { AddPersonalPartnerComponent } from './partner-list/components/add-perso
import { ParterRebateManageMenAbnormalFeedbackComponent } from './rebate-management/model/abnormal-feedback/abnormal-feedback.component';
import { PartnerRecordedDetailComponent } from './recorded/components/detail/detail.component';
import { PartnerRecordedRecordComponent } from './recorded/components/record/record.component';
+import { ParterRebateManageMentAddComponent } from './rebate-management/components/rebate-setting/add/add.component';
const COMPONENTS: any[] = [
PartnerBusinessStatisticsIndexComponent,
@@ -86,13 +87,15 @@ const COMPONENTS: any[] = [
ParterRebateManageMenAbnormalFeedbackComponent,
ParterRebateManageMentSettingComponent,
PartnerAuditModalComponent,
+ ParterRebateManageMentAddComponent,
AddEtpPartnerComponent,
- AddPersonalPartnerComponent
+ AddPersonalPartnerComponent,
+
];
@NgModule({
declarations: [...COMPONENTS],
- imports: [CommonModule, PartnerRoutingModule, SharedModule],
+ imports: [CommonModule, PartnerRoutingModule, SharedModule,rebateTableModule],
providers: [PartnerListService]
})
export class PartnerModule { }
diff --git a/src/app/routes/partner/rebate-management/components/rebate-setting/add/add.component.html b/src/app/routes/partner/rebate-management/components/rebate-setting/add/add.component.html
new file mode 100644
index 00000000..b3c8f933
--- /dev/null
+++ b/src/app/routes/partner/rebate-management/components/rebate-setting/add/add.component.html
@@ -0,0 +1,16 @@
+
+
+
+
+ 12121212
+
+
diff --git a/src/app/routes/partner/rebate-management/components/rebate-setting/add/add.component.ts b/src/app/routes/partner/rebate-management/components/rebate-setting/add/add.component.ts
new file mode 100644
index 00000000..ebfe0bce
--- /dev/null
+++ b/src/app/routes/partner/rebate-management/components/rebate-setting/add/add.component.ts
@@ -0,0 +1,25 @@
+import { ModalHelper } from '@delon/theme';
+import { Component, OnInit, ViewChild } from '@angular/core';
+import { ActivatedRoute, Router } from '@angular/router';
+import { STColumn, STComponent, STData, STRequestOptions } from '@delon/abc/st';
+import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
+import { processSingleSort, ShipperBaseService } from '@shared';
+import { NzModalService } from 'ng-zorro-antd/modal';
+import { RebateManagementService } from '../../../services/rebate-management.service';
+@Component({
+ selector: 'app-parter-channel-rebate-management-add',
+ templateUrl: './add.component.html'
+})
+export class ParterRebateManageMentAddComponent implements OnInit {
+
+ constructor(
+ public router: Router,
+ public ar: ActivatedRoute,
+ public service: RebateManagementService,
+ private modal: NzModalService,
+ public shipperservice: ShipperBaseService,
+ ) {}
+
+ ngOnInit() {
+ }
+}
diff --git a/src/app/routes/partner/rebate-management/components/rebate-setting/rebate-setting.component.html b/src/app/routes/partner/rebate-management/components/rebate-setting/rebate-setting.component.html
index 50b366ea..a4864e4d 100644
--- a/src/app/routes/partner/rebate-management/components/rebate-setting/rebate-setting.component.html
+++ b/src/app/routes/partner/rebate-management/components/rebate-setting/rebate-setting.component.html
@@ -4,8 +4,8 @@
* @Author : Shiming
* @Date : 2022-02-24 20:09:49
* @LastEditors : Shiming
- * @LastEditTime : 2022-03-10 15:12:03
- * @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-record\\rebate-record.component.html
+ * @LastEditTime : 2022-03-11 14:45:48
+ * @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\rebate-setting.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@@ -31,6 +31,12 @@
+
+
this.viewEvaluate(_record),
- }
+ },
+ {
+ text: '禁用',
+ click: _record => this.viewEvaluate(_record),
+ },
]
}
];
}
/**
- *查看明细
+ *禁用
*/
viewEvaluate(item: any) {
- const modal = this.modal.create({
- nzTitle: '明细',
- nzWidth: 1200,
- nzContent: ParterRebateManageMenRecordDetailComponent,
- nzComponentParams: { },
- nzFooter: null
- });
- modal.afterClose.subscribe((res: any) => {
- if (res) {
+ this.modal.confirm({
+ nzTitle: '是否禁用该配置?',
+ nzOnOk: () => {
+
}
});
}
/**
- *异常反馈
+ *查看
*/
feedback(item?: any) {
const modal = this.modal.create({
- nzTitle: '异常反馈',
+ nzTitle: '查看',
nzWidth: 580,
nzContent: ParterRebateManageMenAbnormalFeedbackComponent,
nzComponentParams: { i: item },
@@ -162,6 +165,9 @@ export class ParterRebateManageMentSettingComponent implements OnInit {
}
});
}
+ configAction() {
+ this.router.navigate(['/partner/rebate/setting/add', ''])
+ }
/**
* 重置表单
*/
diff --git a/src/app/routes/usercenter/components/freight/list/list.component.ts b/src/app/routes/usercenter/components/freight/list/list.component.ts
index 625cffaf..8f071066 100644
--- a/src/app/routes/usercenter/components/freight/list/list.component.ts
+++ b/src/app/routes/usercenter/components/freight/list/list.component.ts
@@ -1,7 +1,7 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STChange, STColumn, STColumnBadge, STComponent, STData, STRequestOptions } from '@delon/abc/st';
-import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
+import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
import { DynamicSettingModalComponent, ShipperBaseService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { AccountDetailComponent } from 'src/app/shared/components/account-detail/account-detail.component';
@@ -116,7 +116,124 @@ export class FreightComponentsListComponent implements OnInit {
showRequired: false
}
},
-
+ lockedStatus: {
+ type: 'string',
+ title: '企业类型',
+ enum: [
+ { label: '全部', value: '' },
+ { label: '物流企业', value: 0 }
+ ],
+ default: '',
+ ui: {
+ widget: 'select',
+ visibleIf: {
+ expand: (value: boolean) => value
+ }
+ }
+ },
+ lockedStatus8: {
+ type: 'string',
+ title: '公司所在地',
+ enum: [
+ { label: '全部', value: '' },
+ { label: '物流企业', value: 0 }
+ ],
+ default: '',
+ ui: {
+ widget: 'select',
+ visibleIf: {
+ expand: (value: boolean) => value
+ }
+ }
+ },
+ lockedStatus7: {
+ type: 'string',
+ title: '常用服务',
+ enum: [
+ { label: '全部', value: '' },
+ { label: '整车服务', value: 0 },
+ { label: '大宗服务', value: 1 }
+ ],
+ default: '',
+ ui: {
+ widget: 'select',
+ visibleIf: {
+ expand: (value: boolean) => value
+ }
+ }
+ },
+ lockedStatus6: {
+ type: 'string',
+ title: '客户类型',
+ enum: [
+ { label: '全部', value: '' },
+ { label: '直客', value: 0 },
+ { label: '渠道客户', value: 1 }
+ ],
+ default: '',
+ ui: {
+ widget: 'select',
+ visibleIf: {
+ expand: (value: boolean) => value
+ }
+ }
+ },
+ contactName5: {
+ title: '渠道销售',
+ type: 'string',
+ ui: {
+ placeholder: '请输入',
+ showRequired: false
+ }
+ },
+ contactName4: {
+ title: '合伙人',
+ type: 'string',
+ ui: {
+ placeholder: '请输入',
+ showRequired: false
+ }
+ },
+ contactName3: {
+ title: '客服人员',
+ type: 'string',
+ ui: {
+ placeholder: '请输入',
+ showRequired: false
+ }
+ },
+ contactName2: {
+ title: '审核人',
+ type: 'string',
+ ui: {
+ placeholder: '请输入',
+ showRequired: false
+ }
+ },
+ applyDate: {
+ type: 'string',
+ title: '申请时间',
+ ui: {
+ widget: 'sl-from-to',
+ type: 'date',
+ format: 'yyyy-MM-dd',
+ visibleIf: {
+ _$expand: (value: boolean) => value,
+ },
+ } as SFDateWidgetSchema,
+ },
+ applyDate1: {
+ type: 'string',
+ title: '审核时间',
+ ui: {
+ widget: 'sl-from-to',
+ type: 'date',
+ format: 'yyyy-MM-dd',
+ visibleIf: {
+ _$expand: (value: boolean) => value,
+ },
+ } as SFDateWidgetSchema,
+ },
networkTransporter: {
type: 'string',
title: '网络货运人',
@@ -138,6 +255,22 @@ export class FreightComponentsListComponent implements OnInit {
}
}
},
+ lockedStatus3: {
+ type: 'string',
+ title: '企业状态',
+ enum: [
+ { label: '全部', value: '' },
+ { label: '正常', value: 0 },
+ { label: '冻结', value: 1 }
+ ],
+ default: '',
+ ui: {
+ widget: 'select',
+ visibleIf: {
+ expand: (value: boolean) => value
+ }
+ }
+ },
source: {
type: 'string',
title: '注册渠道',
@@ -155,13 +288,13 @@ export class FreightComponentsListComponent implements OnInit {
}
}
},
- lockedStatus: {
+ source2: {
type: 'string',
- title: '企业状态',
+ title: '证件是否过期',
enum: [
{ label: '全部', value: '' },
- { label: '正常', value: 0 },
- { label: '冻结', value: 1 }
+ { label: '是', value: 1 },
+ { label: '否', value: 2 }
],
default: '',
ui: {
@@ -170,7 +303,21 @@ export class FreightComponentsListComponent implements OnInit {
expand: (value: boolean) => value
}
}
- }
+ },
+ source1: {
+ type: 'string',
+ title: '网络货运人',
+ enum: [
+ { label: '全部', value: '' },
+ ],
+ default: '',
+ ui: {
+ widget: 'select',
+ visibleIf: {
+ expand: (value: boolean) => value
+ }
+ }
+ },
}
};
this.ui = { '*': { spanLabelFixed: 110, grid: { lg: 8, md: 12, sm: 12, xs: 24 }, enter: () => this.st.load() } };
diff --git a/src/app/shared/components/insurance-table/insurance-table.module.ts b/src/app/shared/components/insurance-table/insurance-table.module.ts
index ab85e526..28711efd 100644
--- a/src/app/shared/components/insurance-table/insurance-table.module.ts
+++ b/src/app/shared/components/insurance-table/insurance-table.module.ts
@@ -13,11 +13,11 @@ import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { NzInputNumberModule } from 'ng-zorro-antd/input-number';
import { NzTableModule } from 'ng-zorro-antd/table';
-import { InsuranceTableComponent } from './insurance-table.component';
import { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';
import { NzInputModule } from 'ng-zorro-antd/input';
import { DelonFormModule } from '@delon/form';
import { NzButtonModule } from 'ng-zorro-antd/button';
+import { InsuranceTableComponent } from './insurance-table.component';
const COMPONENTS = [InsuranceTableComponent];
const MODULES = [NzTableModule, NzInputNumberModule, NzPopconfirmModule, NzInputModule, NzButtonModule, DelonFormModule];
diff --git a/src/app/shared/components/rebate-table/index.ts b/src/app/shared/components/rebate-table/index.ts
new file mode 100644
index 00000000..9b459de3
--- /dev/null
+++ b/src/app/shared/components/rebate-table/index.ts
@@ -0,0 +1,13 @@
+/*
+ * @Description :
+ * @Version : 1.0
+ * @Author : Shiming
+ * @Date : 2022-01-25 20:20:07
+ * @LastEditors : Shiming
+ * @LastEditTime : 2022-01-26 11:05:44
+ * @FilePath : \\tms-obc-web\\src\\app\\shared\\components\\insurance-table\\index.ts
+ * Copyright (C) 2022 huzhenhong. All rights reserved.
+ */
+export * from './rebate-table.module'
+export * from './rebate-table.service'
+export * from './rebate-table.component'
\ No newline at end of file
diff --git a/src/app/shared/components/rebate-table/rebate-table.component.html b/src/app/shared/components/rebate-table/rebate-table.component.html
new file mode 100644
index 00000000..a7ab6f02
--- /dev/null
+++ b/src/app/shared/components/rebate-table/rebate-table.component.html
@@ -0,0 +1,92 @@
+
+
\ No newline at end of file
diff --git a/src/app/shared/components/rebate-table/rebate-table.component.less b/src/app/shared/components/rebate-table/rebate-table.component.less
new file mode 100644
index 00000000..bebea5bf
--- /dev/null
+++ b/src/app/shared/components/rebate-table/rebate-table.component.less
@@ -0,0 +1,19 @@
+:host::ng-deep {
+ nz-input-number {
+ width: 85px;
+
+ input {
+ width : 100%;
+ margin: 0;
+ }
+
+ .ant-input-number-handler-wrap {
+ display: none;
+ }
+
+ }
+ .ant-input-group {
+ display: -webkit-inline-box !important;
+ }
+
+}
\ No newline at end of file
diff --git a/src/app/shared/components/rebate-table/rebate-table.component.ts b/src/app/shared/components/rebate-table/rebate-table.component.ts
new file mode 100644
index 00000000..75b3768a
--- /dev/null
+++ b/src/app/shared/components/rebate-table/rebate-table.component.ts
@@ -0,0 +1,195 @@
+import { debounceTime } from 'rxjs/operators';
+import { Subject } from 'rxjs';
+import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';
+import { BaseService } from '@shared';
+import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
+
+@Component({
+ selector: 'app-rebate-table',
+ templateUrl: './rebate-table.component.html',
+ styleUrls: ['./rebate-table.component.less']
+})
+export class RebateTableComponent implements OnInit {
+ data: any[] = [];
+ headers: any[] = [];
+ sfdata: any; // 货源单设置回显
+
+ @ViewChild('sf', { static: false }) sf!: SFComponent;
+ schema: SFSchema = {};
+ ui!: SFUISchema;
+
+ formatterDollar = (value: number): string => `${value}`;
+ minrebatePrice: number = 0;
+ changeSub = new Subject();
+ constructor(public service: BaseService, private cdr: ChangeDetectorRef) {}
+
+ ngOnInit(): void {
+ this.loadData();
+ this.initSF()
+ this.changeEndKmAction();
+ this.minrebatePrice = 1000
+ }
+
+ loadData() {
+ this.service.request('/api/mdc/cuc/rebateConfig/list').subscribe(res => {
+ if (res) {
+ console.log(res);
+ this.data = res;
+ this.cdr.detectChanges();
+ }
+ });
+ this.service.request('/api/mdc/pbc/sysConfigItem/findItemValueByItemKeys', [
+ "rebate.config.minrebatePrice"
+ ]).subscribe(res => {
+ if (res) {
+ console.log(res);
+ this.minrebatePrice = Number(res[0].itemValue)
+ }
+ });
+ }
+ initSF() {
+ this.schema = {
+ properties: {
+ freightPrice: {
+ type: 'string',
+ title: '单票投保最低保费',
+ ui: {
+ widget: 'custom',
+ placeholder: '请输入',
+ errors: { required: '请填写' }
+ }
+ },
+ },
+ required: ['freightPrice']
+ };
+ this.ui = {
+ '*': {
+ spanLabelFixed: 160,
+ grid: { span: 24 }
+ },
+ $freightPrice: {
+ grid: { span: 8 }
+ },
+ };
+ }
+ /**
+ * 修改结束车长
+ * @param event 车长
+ * @param i 下标
+ */
+ changeEndLength(event: any, i: number) {
+ if (event <= this.headers[i].startLength) {
+ this.headers[i].endLength = this.headers[i].startLength + 1;
+ this.changeNextStartLength(event, i + 1);
+ return;
+ }
+ this.headers[i].endLength = event;
+ this.changeNextStartLength(event, i + 1);
+ }
+
+ /**
+ * 修改结束公里数
+ * @param event 车长
+ * @param i 下标
+ */
+ changeEndKm(event: any, i: number) {
+ if (event) {
+ console.log(event);
+
+ this.changeSub.next(`${event},${i}`);
+ }
+ }
+ changeEndKmAction() {
+ this.changeSub.pipe(debounceTime(500)).subscribe((res: string) => {
+ if (res) {
+ const paras = res.split(',');
+ const num = Number(paras[0]);
+ const i = Number(paras[1]);
+
+ if (num <= this.data[i].startKm) {
+ this.data[i].endKm = null;
+ setTimeout(() => {
+ this.data[i].endKm = this.data[i].startKm + 1 ;
+ }, 0);
+ this.changeNextStartKm(this.data[i].startKm + 1, i + 1);
+ return;
+ }
+ this.data[i].endKm = num;
+ this.changeNextStartKm(num, i + 1);
+ }
+ });
+ }
+
+ add() {
+ console.log(this.data);
+
+ const tem = this.data[this.data?.length - 1];
+ if (tem && tem.endKm) {
+ this.data.push({
+ endKm: '',
+ startKm: tem.endKm
+ });
+ this.data = [...this.data];
+ } else {
+ this.service.msgSrv.warning('请填写完整公里数');
+ }
+ }
+
+ deleteRow(index: number) {
+ console.log(index);
+ var newArr = this.data.concat();
+ newArr.splice(this.data.length-1,1)
+ // this.data = this.data.pop()
+ console.log(newArr);
+ this.data = [...newArr];
+ }
+
+ save() {
+ if(!this.minrebatePrice) {
+ this.service.msgSrv.error('必填项为空!')
+ return
+ }
+ let params= {
+ minrebatePrice: this.minrebatePrice,
+ rebateConfigDTOS: this.data
+ }
+ console.log(params);
+ this.service.request('/api/mdc/cuc/rebateConfig/saveBatch', params).subscribe(res => {
+ if (res) {
+ console.log(res);
+ this.service.msgSrv.success('修改成功');
+ this.loadData();
+ }
+ });
+ }
+
+ /**
+ * 遍历同步后置位车长
+ * @param event 车长
+ * @param i 下标
+ */
+ private changeNextStartLength(event: number, i: number) {
+ if (this.headers[i]) {
+ this.headers[i].startLength = event;
+ if (this.headers[i].endLength <= event) {
+ this.headers[i].endLength = this.headers[i].startLength + 0.5;
+ this.changeNextStartLength(event + 0.5, i + 1);
+ }
+ }
+ }
+
+ /**
+ * 遍历同步后置位公里数
+ * @param event 车长
+ * @param i 下标
+ */
+ private changeNextStartKm(event: number, i: number) {
+ if (this.data[i]) {
+ this.data[i].startKm = event;
+ if (this.data[i].endKm <= event) {
+ this.data[i].endKm = this.data[i].startKm + 1;
+ this.changeNextStartKm(event + 1, i + 1);
+ }
+ }
+ }
+}
diff --git a/src/app/shared/components/rebate-table/rebate-table.module.ts b/src/app/shared/components/rebate-table/rebate-table.module.ts
new file mode 100644
index 00000000..6e65e35b
--- /dev/null
+++ b/src/app/shared/components/rebate-table/rebate-table.module.ts
@@ -0,0 +1,29 @@
+/*
+ * @Description :
+ * @Version : 1.0
+ * @Author : Shiming
+ * @Date : 2022-01-25 20:23:54
+ * @LastEditors : Shiming
+ * @LastEditTime : 2022-02-11 17:20:49
+ * @FilePath : \\tms-obc-web\\src\\app\\shared\\components\\rebate-table\\rebate-table.module.ts
+ * Copyright (C) 2022 huzhenhong. All rights reserved.
+ */
+import { CommonModule } from '@angular/common';
+import { NgModule } from '@angular/core';
+import { FormsModule } from '@angular/forms';
+import { NzInputNumberModule } from 'ng-zorro-antd/input-number';
+import { NzTableModule } from 'ng-zorro-antd/table';
+import { RebateTableComponent } from './rebate-table.component';
+import { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';
+import { NzInputModule } from 'ng-zorro-antd/input';
+import { DelonFormModule } from '@delon/form';
+import { NzButtonModule } from 'ng-zorro-antd/button';
+const COMPONENTS = [RebateTableComponent];
+const MODULES = [NzTableModule, NzInputNumberModule, NzPopconfirmModule, NzInputModule, NzButtonModule, DelonFormModule];
+
+@NgModule({
+ declarations: COMPONENTS,
+ imports: [CommonModule, FormsModule, ...MODULES],
+ exports: COMPONENTS
+})
+export class rebateTableModule {}
diff --git a/src/app/shared/components/rebate-table/rebate-table.service.ts b/src/app/shared/components/rebate-table/rebate-table.service.ts
new file mode 100644
index 00000000..ed67d9fb
--- /dev/null
+++ b/src/app/shared/components/rebate-table/rebate-table.service.ts
@@ -0,0 +1,18 @@
+/*
+ * @Description :
+ * @Version : 1.0
+ * @Author : Shiming
+ * @Date : 2022-01-25 20:21:04
+ * @LastEditors : Shiming
+ * @LastEditTime : 2022-01-25 20:35:52
+ * @FilePath : \\tms-obc-web\\src\\app\\shared\\components\\insurance-table\\insurance-table.service.ts
+ * Copyright (C) 2022 huzhenhong. All rights reserved.
+ */
+import { Injectable } from '@angular/core';
+
+
+
+@Injectable({ providedIn: 'root' })
+
+export class RebateService {
+}
diff --git a/src/app/shared/index.ts b/src/app/shared/index.ts
index c61dfbdd..d8f2d2d9 100644
--- a/src/app/shared/index.ts
+++ b/src/app/shared/index.ts
@@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-11-29 10:04:12
- * @LastEditTime : 2022-02-11 14:31:22
+ * @LastEditTime : 2022-03-11 15:12:20
* @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\shared\\index.ts
@@ -21,6 +21,7 @@ export * from './components/dict-select/index';
export * from './components/dynamic-setting';
export * from './components/singlepage-setting';
export * from './components/insurance-table/index';
+export * from './components/rebate-table/index';
// Utils
export * from './utils';
diff --git a/src/assets/mocks/menu-data.json b/src/assets/mocks/menu-data.json
index 1bc855f6..21be56c7 100644
--- a/src/assets/mocks/menu-data.json
+++ b/src/assets/mocks/menu-data.json
@@ -592,6 +592,20 @@
"text": "入账详情",
"link": "/partner/recorded/record/:id",
"hide": true
+ },
+ {
+ "text": "轮播图管理",
+ "link": "/partner/scroll-img/list",
+ "hide": true
+ },
+ {
+ "text": "知识库管理",
+ "icon": "iconfont icon-yundan-copy",
+ "group": true,
+ "children": [{
+ "text": "banner管理",
+ "link": "/knowledge/banner"
+ }]
}
]
}
diff --git a/src/styles.less b/src/styles.less
index a25a53de..2464d9a8 100644
--- a/src/styles.less
+++ b/src/styles.less
@@ -47,4 +47,4 @@ input[type="number"] {
.break-word-all {
word-break: break-all;
word-wrap : break-word;
-}
\ No newline at end of file
+}