Merge branch 'feature/partner' of https://gitlab.eascs.com/tms-ui/tms-obc-web into feature/partner

This commit is contained in:
潘晓云
2022-03-10 13:39:39 +08:00
22 changed files with 1137 additions and 3 deletions

View File

@ -15,7 +15,6 @@
<!-- 数据列表 -->
<st
#st
[bordered]="true"
[data]="data"
[columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"

View File

@ -0,0 +1,9 @@
<sf #sf [ui]="ui" [schema]="schema" [button]="'none'" [formData]="i">
</sf>
<div style="font-size: 8px;">
结算起算日:指给合伙人结算佣金的起算时间,更换合伙人,该日期是当前合伙人的结算起算日,原合伙人的结算结束时间则为此日期的前一天
</div>
<div *nzModalFooter>
<button nz-button nzType="default" (click)="close()">取消</button>
<button nz-button nzType="primary" (click)="save()">确认</button>
</div>

View File

@ -0,0 +1,98 @@
import { AfterViewInit, ChangeDetectorRef, Component, OnChanges, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { SFComponent, SFRadioWidgetSchema, SFSchema, SFSchemaEnumType, SFSelectWidgetSchema, SFTextareaWidgetSchema, SFUISchema } from '@delon/form';
import { _HttpClient } from '@delon/theme';
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
import { map } from 'rxjs/operators';
import { AmapPoiPickerComponent } from 'src/app/shared/components/amap';
import { ClaimAuditService } from '../../services/claim-audit.service';
@Component({
selector: 'app-parter-claim-audit-channel-approve',
templateUrl: './channel-approve.component.html'
})
export class ParterClaimAuditListChannelApproveComponent implements OnInit {
@ViewChild('sf', { static: false }) sf!: SFComponent;
schema!: SFSchema;
ui!: SFUISchema;
i: any;
type: any;
constructor(
public http: _HttpClient,
private cdr: ChangeDetectorRef,
private route: ActivatedRoute,
private modalService: NzModalService,
public service: ClaimAuditService,
private modalRef: NzModalRef
) {}
ngOnInit(): void {
this.initSF();
}
initSF() {
this.schema = {
properties: {
id: {
type: 'string',
title: '',
ui: { hidden: true }
},
name1: {
title: '合伙人(认领人)',
type: 'string',
ui: {
widget: 'text',
} ,
},
name2: {
title: '认领客户名称',
type: 'string',
ui: {
widget: 'text',
} ,
},
data: {
title: '结算起算日期',
type: 'string',
format: 'date',
},
name3: {
type: 'string',
title: '备注',
maxLength: 50,
ui: {
widget: 'textarea',
autosize: { minRows: 3, maxRows: 6 },
placeholder:'请不要超过50个字'
} as SFTextareaWidgetSchema,
},
},
required: ['name3']
};
this.ui = {
'*': {
spanLabelFixed: 120,
grid: { span: 24 }
},
};
}
close() {
this.modalRef.destroy();
}
save() {
this.sf.validator({ emitError: true });
if(!this.sf.valid) return;
// this.service.request('', { ...this.sf.value }).subscribe(res => {
// if (res) {
// this.modalRef.destroy(true);
// } else {
// this.service.msgSrv.error(res.msg);
// }
// });
}
}

View File

@ -0,0 +1,62 @@
<page-header-wrapper [title]="''" [logo]="logo" [content]="headerContent">
<ng-template #logo>
<button nz-button nz-tooltip nzTooltipTitle="返回上一页" (click)="goBack()">
<i nz-icon nzType="left" nzTheme="outline"></i>
</button>
</ng-template>
<ng-template #headerContent>
<div nz-row class="head-box">
<div nz-col nzSpan="1">
<img src="./assets/images/usercenter/拉货车.png" alt="" />
</div>
<div nz-col nzSpan="11" class="pl-lg">
<div class="right-h">深圳市XXXXXXX有限公司</div>
<div class="right-s">91440300357887492H</div>
<sv-container col="2" >
<sv label="联系人"> </sv>
<sv label="注册时间"> </sv>
<sv label="合同有效期"> </sv>
<sv label="运营主体"> </sv>
</sv-container>
</div>
<div nz-col nzSpan="10">
<div class="left-rt">待审核</div>
<div class="left-rb">
<button nz-button (click) ="reject()">拒绝</button>
<button nz-button nzType="primary" (click) ="approve()">通过</button>
</div>
</div>
</div>
</ng-template>
</page-header-wrapper>
<nz-card nzTitle="运单进度">
<div nz-row>
<div nz-col nzSpan="12">
<sv-container col="1" labelWidth="120">
<sv-title>现渠道销售(提交人)</sv-title>
<sv label="姓名"> </sv>
<sv label="手机号"> </sv>
<sv label="绑定时间"> </sv>
<sv label="认领备注"> </sv>
<sv label="提交时间"> </sv>
</sv-container>
</div>
</div>
<nz-divider></nz-divider>
<div nz-row>
<div nz-col nzSpan="12">
<sv-container col="1" labelWidth="120">
<sv-title>原渠道销售</sv-title>
<sv label="姓名"> </sv>
<sv label="手机号"> </sv>
<sv label="绑定时间"> </sv>
</sv-container>
</div>
</div>
</nz-card>
<nz-card nzTitle="操作日志">
<st #st [data]="data" [columns]="columns"></st>
</nz-card>

View File

@ -0,0 +1,27 @@
:host {
.head-box {
img {
width: 80px;
height: 80px;
padding: 8px;
}
.right-h{
font-size: 16px;
}
.right-s{
color: #7f7f7f;
}
.left-rt {
font-weight: bold;
font-size: 16px;
text-align: right;
}
.left-rb {
display: flex;
justify-content: end;
padding-top: 16px;
}
}
}

View File

@ -0,0 +1,82 @@
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STColumn } from '@delon/abc/st';
import { _HttpClient } from '@delon/theme';
import { NzCardComponent } from 'ng-zorro-antd/card';
import { NzMessageService } from 'ng-zorro-antd/message';
import { NzModalService } from 'ng-zorro-antd/modal';
import format from 'date-fns/format';
import { ClaimAuditService } from '../../services/claim-audit.service';
import { ParterClaimAuditListChannelApproveComponent } from '../channel-approve/channel-approve.component';
import { ParterClaimAuditListChannelRejectComponent } from '../channel-reject/channel-reject.component';
@Component({
selector: 'app-parter-claim-audit-channel-detail',
templateUrl: './channel-detail.component.html',
styleUrls: ['./channel-detail.component.less']
})
export class ParterClaimAuditListChannelDetailComponent implements OnInit {
id = this.route.snapshot.queryParams.id;
i: any;
imges: any;
isVisible = false;
columns: STColumn[] = [
{ title: '操作时间', index: 'id', width: 120 },
{ title: '操作人', type: 'img', width: 120, },
{ title: '操作人手机号', index: 'email', width: 120 },
{ title: '操作页面', index: 'phone' },
{ title: '操作内容', index: 'registered' }
];
data=[{id:11111}]
constructor(
private route: ActivatedRoute,
private msgSrv: NzMessageService,
private service: ClaimAuditService,
private modalService: NzModalService,
private router: Router
) {}
ngOnInit(): void {
this.initData();
}
initData() {
// this.service.request(this.service.$api_getBulkBillDetail, { id: this.id }).subscribe(res => {
// if (res) {
// this.i = res;
//
// }
// });
}
approve() {
const modalRef = this.modalService.create({
nzTitle: '同意',
nzWidth: 700,
nzContent: ParterClaimAuditListChannelApproveComponent,
nzComponentParams: {
i: this.i
},
nzFooter: null
});
}
reject() {
const modalRef = this.modalService.create({
nzTitle: '拒绝',
nzWidth: 700,
nzContent: ParterClaimAuditListChannelRejectComponent,
nzComponentParams: {
i: this.i
},
nzFooter: null
});
}
goBack() {
window.history.go(-1);
}
}

View File

@ -0,0 +1,9 @@
<sf #sf [ui]="ui" [schema]="schema" [button]="'none'" [formData]="i">
</sf>
<div style="font-size: 8px;">
结算起算日:指给合伙人结算佣金的起算时间,更换合伙人,该日期是当前合伙人的结算起算日,原合伙人的结算结束时间则为此日期的前一天
</div>
<div *nzModalFooter>
<button nz-button nzType="default" (click)="close()">取消</button>
<button nz-button nzType="primary" (click)="save()">确认</button>
</div>

View File

@ -0,0 +1,98 @@
import { AfterViewInit, ChangeDetectorRef, Component, OnChanges, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { SFComponent, SFRadioWidgetSchema, SFSchema, SFSchemaEnumType, SFSelectWidgetSchema, SFTextareaWidgetSchema, SFUISchema } from '@delon/form';
import { _HttpClient } from '@delon/theme';
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
import { map } from 'rxjs/operators';
import { AmapPoiPickerComponent } from 'src/app/shared/components/amap';
import { ClaimAuditService } from '../../services/claim-audit.service';
@Component({
selector: 'app-parter-claim-audit-channel-reject',
templateUrl: './channel-reject.component.html'
})
export class ParterClaimAuditListChannelRejectComponent implements OnInit {
@ViewChild('sf', { static: false }) sf!: SFComponent;
schema!: SFSchema;
ui!: SFUISchema;
i: any;
type: any;
constructor(
public http: _HttpClient,
private cdr: ChangeDetectorRef,
private route: ActivatedRoute,
private modalService: NzModalService,
public service: ClaimAuditService,
private modalRef: NzModalRef
) {}
ngOnInit(): void {
this.initSF();
}
initSF() {
this.schema = {
properties: {
id: {
type: 'string',
title: '',
ui: { hidden: true }
},
name1: {
title: '合伙人(认领人)',
type: 'string',
ui: {
widget: 'text',
} ,
},
name2: {
title: '认领客户名称',
type: 'string',
ui: {
widget: 'text',
} ,
},
data: {
title: '结算起算日期',
type: 'string',
format: 'date',
},
name3: {
type: 'string',
title: '备注',
maxLength: 50,
ui: {
widget: 'textarea',
autosize: { minRows: 3, maxRows: 6 },
placeholder:'请不要超过50个字'
} as SFTextareaWidgetSchema,
},
},
required: ['name3']
};
this.ui = {
'*': {
spanLabelFixed: 120,
grid: { span: 24 }
},
};
}
close() {
this.modalRef.destroy();
}
save() {
this.sf.validator({ emitError: true });
if(!this.sf.valid) return;
// this.service.request('', { ...this.sf.value }).subscribe(res => {
// if (res) {
// this.modalRef.destroy(true);
// } else {
// this.service.msgSrv.error(res.msg);
// }
// });
}
}

View File

@ -0,0 +1,66 @@
<page-header-wrapper [title]="''"></page-header-wrapper>
<!-- 搜索表单 -->
<nz-card>
<div nz-row nzGutter="8">
<!-- 查询字段小于或等于3个时不显示伸缩按钮 -->
<div nz-col nzSpan="24" *ngIf="queryFieldCount <= 4">
<sf
#sf
[schema]="schema"
[ui]="ui"
[mode]="'search'"
[loading]="service.http.loading"
(formSubmit)="search()"
(formReset)="resetSF()"
></sf>
</div>
<!-- 查询字段大于3个时根据展开状态调整布局 -->
<ng-container *ngIf="queryFieldCount > 4">
<div nz-col [nzSpan]="_$expand ? 24 : 18">
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div>
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand">
<button nz-button nzType="primary" [disabled]="!sf.valid" (click)="search()" >查询</button>
<button nz-button (click)="resetSF()" >重置</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
</button>
</div>
</ng-container>
</div>
</nz-card>
<nz-card>
<nz-tabset [nzSelectedIndex]="selectedIndex" (nzSelectChange) = "tabChange($event)">
<nz-tab nzTitle="合伙人认领">
<st
#st1
[data]="data"
[columns]="columns1"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loadingDelay]="500"
[loading]="service.http.loading"
>
</st>
</nz-tab>
<nz-tab nzTitle="渠道销售认领">
<st
#st2
[data]="data"
[columns]="columns2"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loadingDelay]="500"
[loading]="service.http.loading"
>
</st>
</nz-tab>
</nz-tabset>
</nz-card>

View File

@ -0,0 +1,230 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STColumn, STComponent, STData, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
import { processSingleSort } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { ClaimAuditService } from '../../services/claim-audit.service';
@Component({
selector: 'app-parter-claim-audit-list',
templateUrl: './list.component.html'
})
export class ParterClaimAuditListComponent implements OnInit {
schema: SFSchema = {};
columns1!: STColumn[];
columns2!: STColumn[];
@ViewChild('st1', { static: false })
st1!: STComponent;
@ViewChild('st2', { static: false })
st2!: STComponent;
ui!: SFUISchema;
@ViewChild('sf', { static: false })
sf!: SFComponent;
_$expand = false;
selectedIndex = 0;
data=[{name1:1111}]
constructor(
public router: Router,
public ar: ActivatedRoute,
public service: ClaimAuditService,
private modalService: NzModalService
) {}
/**
* 查询参数
*/
get reqParams() {
return { ...this.sf?.value };
}
/**
* 查询字段个数
*/
get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length;
}
/**
* 伸缩查询条件
*/
expandToggle(): void {
this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand);
}
ngOnInit() {
this.initSF();
this.initST1();
this.initST2();
}
initSF() {
this.schema = {
properties: {
_$expand: { type: 'boolean', ui: { hidden: true } },
name: {
type: 'string',
title: '认领人'
},
name1: {
type: 'string',
title: '客户名称'
},
name2: {
type: 'string',
title: '平台审核状态'
},
name3: {
type: 'string',
title: '渠道销售状态',
ui: {
visibleIf: {
_$expand: (value: boolean) => value
}
}
},
name4: {
type: 'string',
title: 'CRM状态',
ui: {
visibleIf: {
_$expand: (value: boolean) => value
}
}
},
}
};
this.ui = {
'*': {
grid: { span: 8, gutter: 4 }
}
};
}
initST1() {
this.columns1 = [
{
title: '提交人',
index: 'name1'
},
{
title: '客户名称',
index: 'name1'
},
{
title: '认领备注',
index: 'name1'
},
{
title: '渠道销售审核状态',
index: 'name1'
},
{
title: 'CRM状态',
index: 'name1'
},
{
title: '平台审核状态',
index: 'name1'
},
{
title: 'CRM状态',
index: 'name1'
},
{
title: '提交时间',
index: 'name1'
},
{
title: '操作',
className: 'text-center',
buttons: [
{
text: '详情',
click: (_record, _modal, _instance) => this.partnerView(_record),
},
{
text: '审核',
click: (_record, _modal, _instance) => this.partnerView(_record),
},
]
}
];
}
initST2() {
this.columns2 = [
{
title: '提交人',
index: 'name1'
},
{
title: '客户名称',
index: 'name1'
},
{
title: '认领备注',
index: 'name1'
},
{
title: 'CRM状态',
index: 'name1'
},
{
title: '平台审核状态',
index: 'name1'
},
{
title: '提交时间',
index: 'name1'
},
{
title: '操作',
className: 'text-center',
buttons: [
{
text: '详情',
click: (_record, _modal, _instance) => this.channelView(_record),
},
{
text: '审核',
click: (_record, _modal, _instance) => this.channelView(_record),
},
]
}
];
}
partnerView(record: STData) {
this.router.navigate(['/partner/claim-audit/partner-detail'], { queryParams: {} });
}
channelView(record: STData) {
this.router.navigate(['/partner/claim-audit/channel-detail'], { queryParams: {} });
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
}
search() {
// this.st1?.load(1);
}
tabChange(index:any){
console.log(index)
switch (index) {
case 0:
this.initST1();
break;
case 1:
this.initST2();
break;
default:
break;
}
}
}

View File

@ -0,0 +1,9 @@
<sf #sf [ui]="ui" [schema]="schema" [button]="'none'" [formData]="i">
</sf>
<div style="font-size: 8px;">
结算起算日:指给合伙人结算佣金的起算时间,更换合伙人,该日期是当前合伙人的结算起算日,原合伙人的结算结束时间则为此日期的前一天
</div>
<div *nzModalFooter>
<button nz-button nzType="default" (click)="close()">取消</button>
<button nz-button nzType="primary" (click)="save()">确认</button>
</div>

View File

@ -0,0 +1,98 @@
import { AfterViewInit, ChangeDetectorRef, Component, OnChanges, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { SFComponent, SFRadioWidgetSchema, SFSchema, SFSchemaEnumType, SFSelectWidgetSchema, SFTextareaWidgetSchema, SFUISchema } from '@delon/form';
import { _HttpClient } from '@delon/theme';
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
import { map } from 'rxjs/operators';
import { AmapPoiPickerComponent } from 'src/app/shared/components/amap';
import { ClaimAuditService } from '../../services/claim-audit.service';
@Component({
selector: 'app-parter-claim-audit-partner-approve',
templateUrl: './partner-approve.component.html'
})
export class ParterClaimAuditListPartnerApproveComponent implements OnInit {
@ViewChild('sf', { static: false }) sf!: SFComponent;
schema!: SFSchema;
ui!: SFUISchema;
i: any;
type: any;
constructor(
public http: _HttpClient,
private cdr: ChangeDetectorRef,
private route: ActivatedRoute,
private modalService: NzModalService,
public service: ClaimAuditService,
private modalRef: NzModalRef
) {}
ngOnInit(): void {
this.initSF();
}
initSF() {
this.schema = {
properties: {
id: {
type: 'string',
title: '',
ui: { hidden: true }
},
name1: {
title: '合伙人(认领人)',
type: 'string',
ui: {
widget: 'text',
} ,
},
name2: {
title: '认领客户名称',
type: 'string',
ui: {
widget: 'text',
} ,
},
data: {
title: '结算起算日期',
type: 'string',
format: 'date',
},
name3: {
type: 'string',
title: '备注',
maxLength: 50,
ui: {
widget: 'textarea',
autosize: { minRows: 3, maxRows: 6 },
placeholder:'请不要超过50个字'
} as SFTextareaWidgetSchema,
},
},
required: ['name3']
};
this.ui = {
'*': {
spanLabelFixed: 120,
grid: { span: 24 }
},
};
}
close() {
this.modalRef.destroy();
}
save() {
this.sf.validator({ emitError: true });
if(!this.sf.valid) return;
// this.service.request('', { ...this.sf.value }).subscribe(res => {
// if (res) {
// this.modalRef.destroy(true);
// } else {
// this.service.msgSrv.error(res.msg);
// }
// });
}
}

View File

@ -0,0 +1,79 @@
<page-header-wrapper [title]="''" [logo]="logo" [content]="headerContent">
<ng-template #logo>
<button nz-button nz-tooltip nzTooltipTitle="返回上一页" (click)="goBack()">
<i nz-icon nzType="left" nzTheme="outline"></i>
</button>
</ng-template>
<ng-template #headerContent>
<div nz-row class="head-box">
<div nz-col nzSpan="1">
<img src="./assets/images/usercenter/拉货车.png" alt="" />
</div>
<div nz-col nzSpan="11" class="pl-lg">
<div class="right-h">深圳市XXXXXXX有限公司</div>
<div class="right-s">91440300357887492H</div>
<sv-container col="2">
<sv label="管理员"> </sv>
<sv label="注册时间"> </sv>
<sv label="合同有效期"> </sv>
<sv label="运营主体"> </sv>
</sv-container>
</div>
<div nz-col nzSpan="10">
<div class="left-rt">待审核</div>
<div class="left-rb">
<button nz-button (click) ="reject()">拒绝</button>
<button nz-button nzType="primary" (click) ="approve()">通过</button>
</div>
</div>
</div>
</ng-template>
</page-header-wrapper>
<nz-card nzTitle="运单进度">
<div nz-row>
<div nz-col nzSpan="12">
<sv-container col="1" labelWidth="120">
<sv-title>现合伙人(提交人)</sv-title>
<sv label="合伙人名称"> </sv>
<sv label="手机号"> </sv>
<sv label="绑定时间"> </sv>
<sv label="结算时间段"> </sv>
<sv label="认领备注"> </sv>
<sv label="提交时间"> </sv>
</sv-container>
</div>
<div nz-col nzSpan="12">
<sv-container col="1" labelWidth="120">
<sv-title>现渠道销售</sv-title>
<sv label="姓名"> </sv>
<sv label="手机号"> </sv>
<sv label="绑定时间"> </sv>
</sv-container>
</div>
</div>
<nz-divider></nz-divider>
<div nz-row>
<div nz-col nzSpan="12">
<sv-container col="1" labelWidth="120">
<sv-title>原合伙人</sv-title>
<sv label="合伙人名称"> </sv>
<sv label="管理员"> </sv>
<sv label="绑定时间"> </sv>
<sv label="结算时间段"> </sv>
</sv-container>
</div>
<div nz-col nzSpan="12">
<sv-container col="1" labelWidth="120">
<sv-title>原渠道销售</sv-title>
<sv label="姓名"> </sv>
<sv label="手机号"> </sv>
<sv label="绑定时间"> </sv>
</sv-container>
</div>
</div>
</nz-card>
<nz-card nzTitle="操作日志">
<st #st [data]="data" [columns]="columns"></st>
</nz-card>

View File

@ -0,0 +1,26 @@
:host {
.head-box {
img {
width: 80px;
height: 80px;
padding: 8px;
}
.right-h{
font-size: 16px;
}
.right-s{
color: #7f7f7f;
}
.left-rt {
font-weight: bold;
font-size: 16px;
text-align: right;
}
.left-rb {
display: flex;
justify-content: end;
padding-top: 16px;
}
}
}

View File

@ -0,0 +1,82 @@
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STColumn } from '@delon/abc/st';
import { _HttpClient } from '@delon/theme';
import { NzCardComponent } from 'ng-zorro-antd/card';
import { NzMessageService } from 'ng-zorro-antd/message';
import { NzModalService } from 'ng-zorro-antd/modal';
import format from 'date-fns/format';
import { ClaimAuditService } from '../../services/claim-audit.service';
import { ParterClaimAuditListPartnerRejectComponent } from '../partner-reject/partner-reject.component';
import { ParterClaimAuditListPartnerApproveComponent } from '../partner-approve/partner-approve.component';
@Component({
selector: 'app-parter-claim-audit-partner-detail',
templateUrl: './partner-detail.component.html',
styleUrls: ['./partner-detail.component.less']
})
export class ParterClaimAuditListPartnerDetailComponent implements OnInit {
id = this.route.snapshot.queryParams.id;
i: any;
imges: any;
isVisible = false;
columns: STColumn[] = [
{ title: '操作时间', index: 'id', width: 120 },
{ title: '操作人', type: 'img', width: 120, },
{ title: '操作人手机号', index: 'email', width: 120 },
{ title: '操作页面', index: 'phone' },
{ title: '操作内容', index: 'registered' }
];
data=[{id:11111}]
constructor(
private route: ActivatedRoute,
private msgSrv: NzMessageService,
private service: ClaimAuditService,
private modalService: NzModalService,
private router: Router
) {}
ngOnInit(): void {
this.initData();
}
initData() {
// this.service.request(this.service.$api_getBulkBillDetail, { id: this.id }).subscribe(res => {
// if (res) {
// this.i = res;
//
// }
// });
}
approve() {
const modalRef = this.modalService.create({
nzTitle: '同意',
nzWidth: 700,
nzContent: ParterClaimAuditListPartnerApproveComponent,
nzComponentParams: {
i: this.i
},
nzFooter: null
});
}
reject() {
const modalRef = this.modalService.create({
nzTitle: '拒绝',
nzWidth: 700,
nzContent: ParterClaimAuditListPartnerRejectComponent,
nzComponentParams: {
i: this.i
},
nzFooter: null
});
}
goBack() {
window.history.go(-1);
}
}

View File

@ -0,0 +1,9 @@
<sf #sf [ui]="ui" [schema]="schema" [button]="'none'" [formData]="i">
</sf>
<div style="font-size: 8px;">
结算起算日:指给合伙人结算佣金的起算时间,更换合伙人,该日期是当前合伙人的结算起算日,原合伙人的结算结束时间则为此日期的前一天
</div>
<div *nzModalFooter>
<button nz-button nzType="default" (click)="close()">取消</button>
<button nz-button nzType="primary" (click)="save()">确认</button>
</div>

View File

@ -0,0 +1,98 @@
import { AfterViewInit, ChangeDetectorRef, Component, OnChanges, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { SFComponent, SFRadioWidgetSchema, SFSchema, SFSchemaEnumType, SFSelectWidgetSchema, SFTextareaWidgetSchema, SFUISchema } from '@delon/form';
import { _HttpClient } from '@delon/theme';
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
import { map } from 'rxjs/operators';
import { AmapPoiPickerComponent } from 'src/app/shared/components/amap';
import { ClaimAuditService } from '../../services/claim-audit.service';
@Component({
selector: 'app-parter-claim-audit-partner-reject',
templateUrl: './partner-reject.component.html'
})
export class ParterClaimAuditListPartnerRejectComponent implements OnInit {
@ViewChild('sf', { static: false }) sf!: SFComponent;
schema!: SFSchema;
ui!: SFUISchema;
i: any;
type: any;
constructor(
public http: _HttpClient,
private cdr: ChangeDetectorRef,
private route: ActivatedRoute,
private modalService: NzModalService,
public service: ClaimAuditService,
private modalRef: NzModalRef
) {}
ngOnInit(): void {
this.initSF();
}
initSF() {
this.schema = {
properties: {
id: {
type: 'string',
title: '',
ui: { hidden: true }
},
name1: {
title: '合伙人(认领人)',
type: 'string',
ui: {
widget: 'text',
} ,
},
name2: {
title: '认领客户名称',
type: 'string',
ui: {
widget: 'text',
} ,
},
data: {
title: '结算起算日期',
type: 'string',
format: 'date',
},
name3: {
type: 'string',
title: '备注',
maxLength: 50,
ui: {
widget: 'textarea',
autosize: { minRows: 3, maxRows: 6 },
placeholder:'请不要超过50个字'
} as SFTextareaWidgetSchema,
},
},
required: ['name3']
};
this.ui = {
'*': {
spanLabelFixed: 120,
grid: { span: 24 }
},
};
}
close() {
this.modalRef.destroy();
}
save() {
this.sf.validator({ emitError: true });
if(!this.sf.valid) return;
// this.service.request('', { ...this.sf.value }).subscribe(res => {
// if (res) {
// this.modalRef.destroy(true);
// } else {
// this.service.msgSrv.error(res.msg);
// }
// });
}
}

View File

@ -0,0 +1,12 @@
import { Injectable, Injector } from '@angular/core';
import { BaseService } from '@shared';
@Injectable({
providedIn: 'root',
})
export class ClaimAuditService extends BaseService {
constructor(public injector: Injector) {
super(injector);
}
}

View File

@ -15,7 +15,6 @@
<!-- 数据列表 -->
<st
#st
[bordered]="true"
[data]="data"
[columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"

View File

@ -22,6 +22,9 @@ import { PartnerSalePartnerDetailComponent } from './business-statistics/compone
import { PartnerPartnerCustomOrderDetailComponent } from './business-statistics/components/partner-custom-order-detail/partner-custom-order-detail.component';
import { PartnerPartnerOrderDetailComponent } from './business-statistics/components/partner-order-detail/partner-order-detail.component';
import { PartnerAccountManagementListComponent } from './account-management/components/list/list.component';
import { ParterClaimAuditListComponent } from './claim-audit/components/list/list.component';
import { ParterClaimAuditListChannelDetailComponent } from './claim-audit/components/channel-detail/channel-detail.component';
import { ParterClaimAuditListPartnerDetailComponent } from './claim-audit/components/partner-detail/partner-detail.component';
import { ParterRebateManageMentRecordComponent } from './rebate-management/components/rebate-record/rebate-record.component';
import { PartnerAccountManagementAccountDetailComponent } from './account-management/components/account-detail/account-detail.component';
import { PartnerAccountManagementRecordedDetailComponent } from './account-management/components/recorded-detail/recorded-detail.component';
@ -74,6 +77,15 @@ const routes: Routes = [
{ path: 'withdraw-record/:id', component: PartnerAccountManagementWithdrawalsDetailComponent },
]
},
{
path: 'claim-audit',
children: [
{ path: '', component: ParterClaimAuditListComponent },
{ path: 'list', component: ParterClaimAuditListComponent },
{ path: 'channel-detail', component: ParterClaimAuditListChannelDetailComponent },
{ path: 'partner-detail', component: ParterClaimAuditListPartnerDetailComponent },
]
},
];
@NgModule({
imports: [RouterModule.forChild(routes)],

View File

@ -26,12 +26,20 @@ import { PartnerSalePartnerDetailComponent } from './business-statistics/compone
import { PartnerPartnerCustomOrderDetailComponent } from './business-statistics/components/partner-custom-order-detail/partner-custom-order-detail.component';
import { PartnerPartnerOrderDetailComponent } from './business-statistics/components/partner-order-detail/partner-order-detail.component';
import { PartnerAccountManagementListComponent } from './account-management/components/list/list.component';
import { ParterClaimAuditListComponent } from './claim-audit/components/list/list.component';
import { ParterClaimAuditListChannelDetailComponent } from './claim-audit/components/channel-detail/channel-detail.component';
import { ParterClaimAuditListPartnerDetailComponent } from './claim-audit/components/partner-detail/partner-detail.component';
import { ParterClaimAuditListChannelApproveComponent } from './claim-audit/components/channel-approve/channel-approve.component';
import { ParterClaimAuditListPartnerApproveComponent } from './claim-audit/components/partner-approve/partner-approve.component';
import { ParterClaimAuditListPartnerRejectComponent } from './claim-audit/components/partner-reject/partner-reject.component';
import { ParterClaimAuditListChannelRejectComponent } from './claim-audit/components/channel-reject/channel-reject.component';
import { PartnerAccountManagementVirtualAccountDetailComponent } from './account-management/components/virtual-account-detail/virtual-account-detail.component';
import { ParterRebateManageMentRecordComponent } from './rebate-management/components/rebate-record/rebate-record.component';
import { PartnerAccountManagementAccountDetailComponent } from './account-management/components/account-detail/account-detail.component';
import { PartnerAccountManagementRecordedDetailComponent } from './account-management/components/recorded-detail/recorded-detail.component';
import { PartnerAccountManagementWithdrawalsRecordComponent } from './account-management/components/withdrawals-record/withdrawals-record.component';
import { PartnerAccountManagementWithdrawalsDetailComponent } from './account-management/components/withdrawals-record/withdrawals-detail/withdrawals-detail.component';
import { ParterRebateManageMentRecordComponent } from './rebate-management/components/rebate-record/rebate-record.component';
const COMPONENTS: any[] = [
PartnerBusinessStatisticsIndexComponent,
@ -50,6 +58,13 @@ const COMPONENTS: any[] = [
PartnerPartnerCustomOrderDetailComponent,
PartnerPartnerOrderDetailComponent,
PartnerAccountManagementListComponent,
ParterClaimAuditListComponent,
ParterClaimAuditListChannelDetailComponent,
ParterClaimAuditListPartnerDetailComponent,
ParterClaimAuditListPartnerApproveComponent,
ParterClaimAuditListPartnerRejectComponent,
ParterClaimAuditListChannelApproveComponent,
ParterClaimAuditListChannelRejectComponent,
PartnerAccountManagementVirtualAccountDetailComponent,
PartnerAccountManagementAccountDetailComponent,
PartnerAccountManagementRecordedDetailComponent,

View File

@ -559,6 +559,21 @@
"hide": true
}
]
},
{
"text": "客户认领审核",
"link": "/partner/claim-audit/list",
"children": [{
"text": "合伙人客户认领详情",
"link": "/partner/claim-audit/partner-detail",
"hide": true
},
{
"text": "渠道销售客户认领详情",
"link": "/partner/claim-audit/channel-detail",
"hide": true
}
]
}
]
}