diff --git a/src/app/routes/partner/rebate-management/components/rebate-setting/add-partnerlist/add-partnerlist.component.html b/src/app/routes/partner/rebate-management/components/rebate-setting/add-partnerlist/add-partnerlist.component.html index a7dd9b7c..a537892f 100644 --- a/src/app/routes/partner/rebate-management/components/rebate-setting/add-partnerlist/add-partnerlist.component.html +++ b/src/app/routes/partner/rebate-management/components/rebate-setting/add-partnerlist/add-partnerlist.component.html @@ -1,38 +1,30 @@ +
-
+
- - - -
- -
-
- - - -
-
- + [scroll]="{ x: '1000' }"> - - diff --git a/src/app/routes/partner/rebate-management/components/rebate-setting/add-partnerlist/add-partnerlist.component.ts b/src/app/routes/partner/rebate-management/components/rebate-setting/add-partnerlist/add-partnerlist.component.ts index 6e7c094b..e78d09ef 100644 --- a/src/app/routes/partner/rebate-management/components/rebate-setting/add-partnerlist/add-partnerlist.component.ts +++ b/src/app/routes/partner/rebate-management/components/rebate-setting/add-partnerlist/add-partnerlist.component.ts @@ -2,7 +2,7 @@ import { Component, OnInit, ViewChild, Type } from '@angular/core'; import { STComponent, STColumn, STChange } from '@delon/abc/st'; import { SFComponent, SFDateWidgetSchema, SFRadioWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form'; import { ShipperBaseService } from '@shared'; -import { NzModalService } from 'ng-zorro-antd/modal'; +import { NzModalService, NzModalRef } from 'ng-zorro-antd/modal'; import { of } from 'rxjs'; import { map } from 'rxjs/operators'; import { RebateManagementService } from '../../../services/rebate-management.service'; @@ -32,45 +32,30 @@ export class ParterRebateManageMentAddPartnerListComponent implements OnInit { columns: STColumn[] = [ { title: '', type: 'checkbox', width: '50px', className: 'text-center' }, - { title: '异常编号', index: 'exceptionCode', width: '140px', className: 'text-left', }, - { title: '订单号', index: 'billCode', width: '160px', className: 'text-left', }, - { title: '装货地', index: 'loadingAddressArr', width: '220px', className: 'text-left', }, - { title: '卸货地', index: 'unloadingAddressArr', width: '220px', className: 'text-left', }, - { title: '承运司机', index: 'driver', width: '180px', className: 'text-left', }, - { title: '异常信息', index: 'exceptionContent', width: '100px', className: 'text-left', }, - { title: '异常图片', render: 'exceptionCertificateFirstFilePath', width: '150px', className: 'text-left', }, - { title: '上报时间', index: 'createTime', width: '140px', className: 'text-left', }, { - title: '操作', index: 'createTime', width: '90px', className: 'text-left', + title: '合伙人名称', + index: 'enterpriseName', + width: 180, + format: item => (item.partnerType ? `${item.enterpriseName || item.contactName}` : '') + }, + { title: '联系人', index: 'contactName', width: 150, format: item => (item.partnerType ? `${item.contactName}` : '') }, + { title: '手机号', index: 'contactMobile', className: 'text-center', width: 150 }, + { title: '类型', index: 'partnerType', className: 'text-center', width: 130, type: 'enum', enum: { 1: '企业', 2: '个人' } }, + { + title: '操作', width: '90px', fixed: 'right', buttons: [ { - text: '回复', - click: _record => this.reply(_record), + text: '添加', + click: _record => this.add(_record), acl: { ability: ['AbnormalAppear-reply'] } }, ] }, ]; - columns2: STColumn[] = [ - { title: '异常编号', index: 'exceptionCode', width: '140px', className: 'text-left' }, - { title: '订单号', index: 'billCode', width: '160px', className: 'text-left' }, - { title: '装货地', index: 'loadingAddressArr', width: '220px', className: 'text-left' }, - { title: '卸货地', index: 'unloadingAddressArr', width: '220px', className: 'text-left' }, - { title: '承运司机', index: 'driver', width: '180px', className: 'text-left' }, - { title: '异常信息', index: 'exceptionContent', width: '100px', className: 'text-left' }, - { title: '异常图片', render: 'exceptionCertificateFirstFilePath', width: '150px', className: 'text-left' }, - { title: '上报时间', index: 'createTime', width: '140px', className: 'text-left' }, - { title: '回复内容', index: 'replyContent', width: '150px', className: 'text-left' }, - { title: '回复人', index: 'replyAppUserName', width: '90px', className: 'text-left' }, - { title: '回复时间', index: 'replyTime', width: '140px', className: 'text-left' }, - ]; get reqParams() { - let params: any = { ...this.sf?.value }; - if (params.reportingTime) { - const reportingTime = { start: this.sf?.value?.reportingTime?.[0], end: this.sf?.value?.reportingTime?.[1] } - params.reportingTime = reportingTime; - } + // signStatus固定传20 代表签约完成 + let params: any = { ...this.sf?.value,signStatus: 20 }; return params; } @@ -80,93 +65,46 @@ export class ParterRebateManageMentAddPartnerListComponent implements OnInit { constructor( public service: RebateManagementService, - private nzModalService: NzModalService, public shipperSrv: ShipperBaseService, private modal: NzModalService, + private modals: NzModalRef, ) { } ngOnInit(): void { this.initSF() } - - /** - * 伸缩查询条件 - */ - expandToggle(): void { - this._$expand = !this._$expand; - this.sf?.setValue('/_$expand', this._$expand); - } - /** - * 查询字段个数 - */ - get queryFieldCount(): number { - return Object.keys(this.schema?.properties || {}).length; - } initSF() { this.schema = { properties: { - _$expand: { type: 'boolean', ui: { hidden: true } }, - exceptionCode: { + enterpriseName: { type: 'string', - title: '异常编号', - ui: { placeholder: '请输入' } + title: '合伙人名称' }, - billCode: { - type: 'string', - title: '订单号', - ui: { - placeholder: '最多100个订单,空号隔开', - } - }, - exceptionType: { - title: '异常类型', - type: 'string', - ui: { - widget: 'dict-select', - containsAllLabel: true, - params: { dictKey: 'exception:report:type' }, - } as SFSelectWidgetSchema - }, - driverName: { - title: '承运司机', + partnerType: { type: 'string', + title: '类型', + enum: [ + { value: '', label: '全部' }, + { value: 1, label: '企业' }, + { value: 2, label: '个人' } + ], ui: { + widget: 'select', + placeholder: '请选择', visibleIf: { - _$expand: (value: boolean) => value + expand: (value: boolean) => value } - } + }, + default: '' }, - carNo: { - title: '车牌号', - type: 'string', - ui: { - visibleIf: { - _$expand: (value: boolean) => value - } - } - }, - reportingTime: { - title: '上报时间', - type: 'string', - ui: { - widget: 'date', - mode: 'range', - format: 'yyyy-MM-dd', - visibleIf: { - _$expand: (value: boolean) => value - } - } as SFDateWidgetSchema } - } - }; + } this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } }; } search() { - if (this.selectedIndex === 0) { this.st?.load(1) - } } selectedIndexChange(event: any) { @@ -181,22 +119,10 @@ export class ParterRebateManageMentAddPartnerListComponent implements OnInit { this.sf.reset(); } // 回复操作 - reply(item: any) { - // const modalRef = this.modal.create({ - // nzTitle: '回复', - // nzWidth: 700, - // nzContent: AbnormalReplyComponent, - // nzComponentParams: { - // i: item - // }, - // nzFooter: null - // }); - // modalRef.afterClose.subscribe((res) => { - // if (res) { - // this.resetSF; - // this.st.load(); - // } - // }); + add(item: any) { + console.log(item); + this.modals.destroy(item) + } // 批量回复操作 batchReply() { @@ -204,17 +130,6 @@ export class ParterRebateManageMentAddPartnerListComponent implements OnInit { // this.service.msgSrv.warning('请勾选数据!') // return; // } - // const modalRef = this.modal.create({ - // nzTitle: '批量回复', - // nzContent: AbnormalreplyBatchComponent, - // nzComponentParams: { - // selectedRows: this.selectedRows - // }, - // nzFooter: null - // }); - // modalRef.afterClose.subscribe(() => { - // this.resetSF; - // this.st.load(); - // }); + this.modals.destroy(this.selectedRows) } } 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 index 1256170c..e0092a17 100644 --- 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 @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2022-02-24 20:09:49 * @LastEditors : Shiming - * @LastEditTime : 2022-03-28 15:39:27 + * @LastEditTime : 2022-03-28 19:46:23 * @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add\\add.component.html * Copyright (C) 2022 huzhenhong. All rights reserved. --> @@ -14,26 +14,34 @@ -    +    固定结算费率配置 -     % +     % 业务量和管理费比例配置    - - - + + + -    +    + 关联合伙人配置    - + + +   添加 + +    @@ -49,17 +57,11 @@ -
- - -
+
+ + +
- -
- - -
-
diff --git a/src/app/routes/partner/rebate-management/components/rebate-setting/add/add.component.less b/src/app/routes/partner/rebate-management/components/rebate-setting/add/add.component.less index 0c812cac..fe7d3fd2 100644 --- a/src/app/routes/partner/rebate-management/components/rebate-setting/add/add.component.less +++ b/src/app/routes/partner/rebate-management/components/rebate-setting/add/add.component.less @@ -7,4 +7,10 @@ font-weight: 700; } } + .align-center { + display: flex; + align-items: center; + justify-content: center; + } + } 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 index 3821b57f..8cec166a 100644 --- 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 @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2022-03-21 09:26:45 * @LastEditors : Shiming - * @LastEditTime : 2022-03-28 14:45:41 + * @LastEditTime : 2022-03-28 19:47:56 * @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add\\add.component.ts * Copyright (C) 2022 huzhenhong. All rights reserved. */ @@ -17,17 +17,23 @@ import { processSingleSort, ShipperBaseService } from '@shared'; import { NzModalService } from 'ng-zorro-antd/modal'; import { RebateManagementService } from '../../../services/rebate-management.service'; import { ParterRebateManageMentAddPartnerListComponent } from '../add-partnerlist/add-partnerlist.component'; +import { inRange } from '@delon/util'; @Component({ selector: 'app-parter-channel-rebate-management-add', styleUrls: ['./add.component.less'], templateUrl: './add.component.html' }) export class ParterRebateManageMentAddComponent implements OnInit { - setValue: string = ''; - toFixedValue: Number = 2; - radioValue = 'A'; + configName: string = ''; + accountingRate: Number = 2; + partnerPeople: any; + partnerPeopleList: any; + peopleStatus: boolean = true; + configType = '1'; precision = 2; inputValue = ''; + @ViewChild('st', { static: true }) + st!: STComponent; @ViewChild('sf', { static: false }) sf!: SFComponent; schema1!: SFSchema; constructor( @@ -37,6 +43,27 @@ export class ParterRebateManageMentAddComponent implements OnInit { private modal: NzModalService, public shipperservice: ShipperBaseService ) {} + columns: STColumn[] = [ + { + title: '合伙人名称', + index: 'enterpriseName', + width: 180, + format: item => (item.partnerType ? `${item.enterpriseName || item.contactName}` : '') + }, + { title: '联系人', index: 'contactName', width: 150, format: item => (item.partnerType ? `${item.contactName}` : '') }, + { title: '手机号', index: 'contactMobile', className: 'text-center', width: 150 }, + { title: '类型', index: 'partnerType', className: 'text-center', width: 130, type: 'enum', enum: { 1: '企业', 2: '个人' } }, + { + title: '操作', width: '90px', fixed: 'right', + buttons: [ + { + text: '移除', + click: _record => this.delete(_record), + acl: { ability: ['AbnormalAppear-reply'] } + }, + ] + }, + ]; initSF(data?: any) { this.schema1 = { properties: { @@ -63,21 +90,46 @@ export class ParterRebateManageMentAddComponent implements OnInit { window.history.go(-1); } /** - *申请退款 + *合伙人选择 */ add(item?: any) { const modalRef = this.modal.create({ - nzTitle: '申请退款', + nzTitle: '合伙人选择', + nzWidth: 1000, nzContent: ParterRebateManageMentAddPartnerListComponent, nzComponentParams: { i: item, }, nzFooter: null }); - modalRef.afterClose.subscribe((res: boolean) => { + modalRef.afterClose.subscribe((res: any) => { if (res) { - + console.log(Array.isArray(res)); + console.log(res); + if(Array.isArray(res)) { + this.partnerPeopleList = res; + this.peopleStatus = false + } else { + this.partnerPeople = res?.enterpriseName; + } } }); } + delete(item: any) { + console.log(item); + } + save () { + const params = { + accountingRate: this.accountingRate, + configName: this.configName, + configType: this.configType, + rebateConfigLineDTO: {} + } + this.service.request(this.service.$api_save_rebateConfig, params).subscribe((res: any) => { + if(res) { + console.log(res); + + } + }) + } } diff --git a/src/app/routes/partner/rebate-management/components/rebate-setting/rebate-setting.component.ts b/src/app/routes/partner/rebate-management/components/rebate-setting/rebate-setting.component.ts index 3c4cd8df..7baea11d 100644 --- a/src/app/routes/partner/rebate-management/components/rebate-setting/rebate-setting.component.ts +++ b/src/app/routes/partner/rebate-management/components/rebate-setting/rebate-setting.component.ts @@ -166,7 +166,7 @@ export class ParterRebateManageMentSettingComponent implements OnInit { }); } configAction() { - this.router.navigate(['/partner/rebate/setting/add', '']) + this.router.navigate(['/partner/rebate/setting/add/', 1]) } /** * 重置表单 diff --git a/src/app/routes/partner/rebate-management/services/rebate-management.service.ts b/src/app/routes/partner/rebate-management/services/rebate-management.service.ts index c7dd9b2e..2049cbba 100644 --- a/src/app/routes/partner/rebate-management/services/rebate-management.service.ts +++ b/src/app/routes/partner/rebate-management/services/rebate-management.service.ts @@ -19,6 +19,10 @@ export class RebateManagementService extends BaseService { public $api_get_listCompliancePage = '/api/sdc/billRiskOperate/listRiskPage'; // 查询返佣配置表 public $api_get_rebateConfig = '/api/mdc/rebateConfig/list/page'; + // 保存返佣配置表 + public $api_save_rebateConfig = '/api/mdc/rebateConfig/save'; +   // 查询合伙人信息-分页 + public $api_get_partner_page = '/api/mdc/partner/list/page'; constructor(public injector: Injector) { super(injector); } diff --git a/src/app/shared/components/rebate-table/rebate-table.component.html b/src/app/shared/components/rebate-table/rebate-table.component.html index d8912be8..2e0c766c 100644 --- a/src/app/shared/components/rebate-table/rebate-table.component.html +++ b/src/app/shared/components/rebate-table/rebate-table.component.html @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2022-01-25 20:18:52 * @LastEditors : Shiming - * @LastEditTime : 2022-03-21 14:14:06 + * @LastEditTime : 2022-03-28 20:26:30 * @FilePath : \\tms-obc-web\\src\\app\\shared\\components\\rebate-table\\rebate-table.component.html * Copyright (C) 2022 huzhenhong. All rights reserved. --> @@ -37,7 +37,7 @@
- + @@ -46,7 +46,7 @@
- @@ -56,7 +56,7 @@
- +
@@ -64,7 +64,7 @@
- diff --git a/src/app/shared/components/rebate-table/rebate-table.component.ts b/src/app/shared/components/rebate-table/rebate-table.component.ts index e8699d14..5274f3b1 100644 --- a/src/app/shared/components/rebate-table/rebate-table.component.ts +++ b/src/app/shared/components/rebate-table/rebate-table.component.ts @@ -10,7 +10,14 @@ import { SFComponent, SFSchema, SFUISchema } from '@delon/form'; styleUrls: ['./rebate-table.component.less'] }) export class RebateTableComponent implements OnInit { - data: any[] = []; + data: any[] = [ + { + gradeConfigId: '', + startAmount: 0, + endAmount: 0, + managementFeeRatio: 0, + } + ]; headers: any[] = []; formatterDollar = (value: number): string => `${value}`; changeSub = new Subject(); @@ -18,70 +25,57 @@ export class RebateTableComponent implements OnInit { ngOnInit(): void { this.loadData(); - this.changeEndKmAction(); + this.changeendAmountAction(); } loadData() { - this.service.request('/api/mdc/cuc/insuranceConfig/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.service.request('/api/mdc/cuc/insuranceConfig/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); + // } + // }); } - /** - * 修改结束车长 - * @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) { + changeendAmount(event: any, i: number) { if (event) { console.log(event); this.changeSub.next(`${event},${i}`); } } - changeEndKmAction() { + changeendAmountAction() { 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; + if (num <= this.data[i].startAmount) { + this.data[i].endAmount = null; setTimeout(() => { - this.data[i].endKm = this.data[i].startKm + 1 ; + this.data[i].endAmount = this.data[i].startAmount + 1 ; }, 0); - this.changeNextStartKm(this.data[i].startKm + 1, i + 1); + this.changeNextstartAmount(this.data[i].startAmount + 1, i + 1); return; } - this.data[i].endKm = num; - this.changeNextStartKm(num, i + 1); + this.data[i].endAmount = num; + this.changeNextstartAmount(num, i + 1); } }); } @@ -90,14 +84,14 @@ export class RebateTableComponent implements OnInit { console.log(this.data); const tem = this.data[this.data?.length - 1]; - if (tem && tem.endKm) { + if (tem) { this.data.push({ - endKm: '', - startKm: tem.endKm + gradeConfigId: '', + startAmount: 0, + endAmount: 0, + managementFeeRatio: 0, }); this.data = [...this.data]; - } else { - this.service.msgSrv.warning('请填写完整公里数'); } } @@ -125,32 +119,18 @@ export class RebateTableComponent implements OnInit { }); } - /** - * 遍历同步后置位车长 - * @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) { + private changeNextstartAmount(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); + this.data[i].startAmount = event; + if (this.data[i].endAmount <= event) { + this.data[i].endAmount = this.data[i].startAmount + 1; + this.changeNextstartAmount(event + 1, i + 1); } } }