edit
This commit is contained in:
@ -16,9 +16,9 @@
|
|||||||
</ng-template>
|
</ng-template>
|
||||||
</page-header-wrapper>
|
</page-header-wrapper>
|
||||||
|
|
||||||
<nz-card>
|
<nz-card [nzLoading]="service.http.loading">
|
||||||
<nz-alert nzType="info" nzMessage="提现信息" class="mb-md"></nz-alert>
|
<nz-alert nzType="info" nzMessage="提现信息" class="mb-md"></nz-alert>
|
||||||
<div se-container [labelWidth]="100">
|
<div se-container [labelWidth]="130">
|
||||||
<se label="网络货运人">
|
<se label="网络货运人">
|
||||||
{{formData?.ltdName}}
|
{{formData?.ltdName}}
|
||||||
</se>
|
</se>
|
||||||
@ -41,16 +41,16 @@
|
|||||||
{{formData?.refundStatusLabel}}
|
{{formData?.refundStatusLabel}}
|
||||||
</se>
|
</se>
|
||||||
<se label="提现金额">
|
<se label="提现金额">
|
||||||
{{formData?.amount}}
|
{{formData?.amount | currency}}
|
||||||
</se>
|
</se>
|
||||||
<se label="银行流水号">
|
<se label="银行流水号">
|
||||||
{{formData?.bankSerialNumber}}
|
{{formData?.bankSerialNumber}}
|
||||||
</se>
|
</se>
|
||||||
<se label="提现至银行卡">
|
<se label="提现至银行卡">
|
||||||
{{formData?.bankId}}
|
{{formData?.bankCardNumber}}
|
||||||
</se>
|
</se>
|
||||||
<se label="银行回单" col="1">
|
<se label="银行回单" col="1">
|
||||||
<img [src]="formData?.bankCardNumber" alt="" style="width: 200px;height: 160px;">
|
<a (click)="downBack()">{{formData?.refundStatus==='3'?'下载回单':'暂无回单'}}</a>
|
||||||
</se>
|
</se>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@ -2,8 +2,9 @@ import { Component, OnInit } from '@angular/core';
|
|||||||
import { ActivatedRoute } from '@angular/router';
|
import { ActivatedRoute } from '@angular/router';
|
||||||
import { FreightAccountService } from 'src/app/routes/financial-management/services/freight-account.service';
|
import { FreightAccountService } from 'src/app/routes/financial-management/services/freight-account.service';
|
||||||
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-partner-account-management-withdrawals-detail',
|
selector: 'app-withdrawals-detail',
|
||||||
templateUrl: './withdrawals-detail.component.html',
|
templateUrl: './withdrawals-detail.component.html',
|
||||||
styleUrls: ['./withdrawals-detail.component.less']
|
styleUrls: ['./withdrawals-detail.component.less']
|
||||||
})
|
})
|
||||||
@ -67,6 +68,19 @@ export class PartnerAccountManagementWithdrawalsDetailComponent implements OnIni
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
downBack() {
|
||||||
|
if (this.formData?.refundStatus !== '3') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.service.getReceiptUrl(this.formData.receiptUrl, {
|
||||||
|
bankType: this.formData.bankType,
|
||||||
|
rmYll: this.formData.userId,
|
||||||
|
snglFlgCd: this.formData.coreSerNo,
|
||||||
|
bussType: '06',
|
||||||
|
ltdId: this.formData.ltdId
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
goBack() {
|
goBack() {
|
||||||
history.go(-1);
|
history.go(-1);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,27 +1,3 @@
|
|||||||
<page-header-wrapper [title]="'提现记录'">
|
|
||||||
</page-header-wrapper>
|
|
||||||
|
|
||||||
<!-- <nz-card>
|
|
||||||
<nz-row [nzGutter]="16">
|
|
||||||
<nz-col [nzXl]="6" [nzLg]="6" [nzSm]="12">
|
|
||||||
<nz-statistic nzValue="100 笔" [nzTitle]="'待审核订单数'" [nzValueStyle]="{'font-size':'21px'}">
|
|
||||||
</nz-statistic>
|
|
||||||
</nz-col>
|
|
||||||
<nz-col [nzXl]="6" [nzLg]="6" [nzSm]="12">
|
|
||||||
<nz-statistic nzValue="80000.00 元" [nzTitle]="'待审核提现金额'" [nzValueStyle]="{'font-size':'21px'}">
|
|
||||||
</nz-statistic>
|
|
||||||
</nz-col>
|
|
||||||
<nz-col [nzXl]="6" [nzLg]="6" [nzSm]="12">
|
|
||||||
<nz-statistic nzValue="100 笔" [nzTitle]="'已提现订单数'" [nzValueStyle]="{'font-size':'21px'}">
|
|
||||||
</nz-statistic>
|
|
||||||
</nz-col>
|
|
||||||
<nz-col [nzXl]="6" [nzLg]="6" [nzSm]="12">
|
|
||||||
<nz-statistic nzValue="80000.00 元" [nzTitle]="'已提现金额'" [nzValueStyle]="{'font-size':'21px'}">
|
|
||||||
</nz-statistic>
|
|
||||||
</nz-col>
|
|
||||||
</nz-row>
|
|
||||||
</nz-card> -->
|
|
||||||
|
|
||||||
<nz-card class="search-box" nzBordered>
|
<nz-card class="search-box" nzBordered>
|
||||||
<div nz-row nzGutter="8">
|
<div nz-row nzGutter="8">
|
||||||
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
|
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
|
||||||
@ -56,17 +32,18 @@
|
|||||||
<div class="d-flex align-items-center ">
|
<div class="d-flex align-items-center ">
|
||||||
<div class="mr-md">
|
<div class="mr-md">
|
||||||
已选择
|
已选择
|
||||||
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据 累计提现 <strong
|
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据 累计提现 <strong class="text-red">{{
|
||||||
class="text-red">{{
|
|
||||||
totalCallNo }}</strong>
|
totalCallNo }}</strong>
|
||||||
<a *ngIf="totalCallNo > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
|
<!-- <a *ngIf="totalCallNo > 0" (click)="st.clearCheck()" class="ml-lg">清空</a> -->
|
||||||
</div>
|
</div>
|
||||||
<button nz-button (click)="this.auditAction(null)">审核</button>
|
<button nz-button (click)="this.auditAction(null)">审核</button>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|
||||||
<st #st [data]="service.$api_get_refund_page" [columns]="columns" [req]="{ process: beforeReq }"
|
<st #st [data]="service.$api_get_refund_page" [columns]="columns" [req]="{ process: beforeReq }"
|
||||||
[loading]="service.http.loading" [scroll]="{ x:'1200px' }" (change)="stChange($event)">
|
[loading]="service.http.loading" [scroll]="{ x:'1200px' }" (change)="stChange($event)"
|
||||||
|
[res]="{ reName: { list: 'data.records', total: 'data.total' }, process: afterRes }"
|
||||||
|
[page]="{ show: true, pageSizes: [10, 20, 50, 100, 200, 500] }" [loading]="service.http.loading">
|
||||||
<ng-template st-row="bankCardNumber" let-item let-index="index" let-column="column">
|
<ng-template st-row="bankCardNumber" let-item let-index="index" let-column="column">
|
||||||
{{ item.bankName }} <br> {{ item.bankCardNumber }}
|
{{ item.bankName }} <br> {{ item.bankCardNumber }}
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|||||||
@ -1,9 +1,10 @@
|
|||||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
|
import { STComponent, STColumn, STChange, STRequestOptions, STData } from '@delon/abc/st';
|
||||||
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
|
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
|
||||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||||
import { FreightAccountService } from 'src/app/routes/financial-management/services/freight-account.service';
|
import { FreightAccountService } from 'src/app/routes/financial-management/services/freight-account.service';
|
||||||
|
import Big from 'src/app/shared/utils/deal-precision';
|
||||||
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
@ -12,12 +13,10 @@ import { FreightAccountService } from 'src/app/routes/financial-management/servi
|
|||||||
styleUrls: ['../../../../commom/less/box.less', '../../../../commom/less/expend-but.less']
|
styleUrls: ['../../../../commom/less/box.less', '../../../../commom/less/expend-but.less']
|
||||||
})
|
})
|
||||||
export class PartnerAccountManagementWithdrawalsRecordComponent implements OnInit {
|
export class PartnerAccountManagementWithdrawalsRecordComponent implements OnInit {
|
||||||
@ViewChild('st', { static: true })
|
@ViewChild('st', { static: true }) st!: STComponent;
|
||||||
st!: STComponent;
|
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
||||||
@ViewChild('sf', { static: false })
|
@ViewChild('auditModal', { static: false }) auditModal!: any;
|
||||||
sf!: SFComponent;
|
@ViewChild('viewReasonModal', { static: false }) viewReasonModal!: any;
|
||||||
@ViewChild('auditModal', { static: false })
|
|
||||||
auditModal!: any;
|
|
||||||
columns: STColumn[] = this.initST();
|
columns: STColumn[] = this.initST();
|
||||||
searchSchema: SFSchema = this.initSF();
|
searchSchema: SFSchema = this.initSF();
|
||||||
|
|
||||||
@ -52,11 +51,47 @@ export class PartnerAccountManagementWithdrawalsRecordComponent implements OnIni
|
|||||||
};
|
};
|
||||||
|
|
||||||
stChange(e: STChange): void {
|
stChange(e: STChange): void {
|
||||||
switch (e.type) {
|
if (e.type === 'checkbox') {
|
||||||
case 'checkbox':
|
const checkRows = (e.checkbox as STData[]) || [];
|
||||||
this.selectedRows = e.checkbox!;
|
//判断当前页是否有选中的行
|
||||||
this.totalCallNo = this.selectedRows.reduce((total, cv) => total + cv.amount, 0).toFixed(2);
|
if (checkRows.length === 0) {
|
||||||
break;
|
// 当前页没有存在已勾选的行,移除之前所记录的当前页的行
|
||||||
|
const stList = this.st.list;
|
||||||
|
stList.forEach(item => {
|
||||||
|
this.selectedRows = this.selectedRows.filter((e: any) => e.id !== item.id);
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
//添加新增的行
|
||||||
|
checkRows.forEach((item: any) => {
|
||||||
|
const newSelectedList = this.selectedRows.filter((r: any) => r.id === item.id);
|
||||||
|
if (newSelectedList.length === 0) {
|
||||||
|
this.selectedRows.push(item);
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// 移除取消选中的行
|
||||||
|
const stList = this.st.list;
|
||||||
|
stList.forEach(item => {
|
||||||
|
if (!item.checked) {
|
||||||
|
const index = this.selectedRows.findIndex(_item => item.id === _item.id);
|
||||||
|
if (index !== -1) this.selectedRows.splice(index, 1);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
let totalCallNo = 0;
|
||||||
|
this.selectedRows.forEach((item => {
|
||||||
|
totalCallNo = new Big(this.totalCallNo).plus(item?.amount).parse();
|
||||||
|
}));
|
||||||
|
this.totalCallNo = totalCallNo;
|
||||||
|
} else if (e.type === 'loaded') {
|
||||||
|
// 页面加载时勾选
|
||||||
|
(e?.loaded || []).forEach((r) => {
|
||||||
|
this.selectedRows.forEach((x) => {
|
||||||
|
if (x.id === r.id) {
|
||||||
|
r.checked = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -123,7 +158,7 @@ export class PartnerAccountManagementWithdrawalsRecordComponent implements OnIni
|
|||||||
showReason(item: any) {
|
showReason(item: any) {
|
||||||
const modal = this.nzModalService.create({
|
const modal = this.nzModalService.create({
|
||||||
nzTitle: '查看原因',
|
nzTitle: '查看原因',
|
||||||
nzContent: '运单数据异常,暂时无法开票,请联系客服400-xxxx-xxxx',
|
nzContent: item?.rejectionCause || item?.failCause,
|
||||||
nzFooter: [
|
nzFooter: [
|
||||||
{
|
{
|
||||||
label: '关闭',
|
label: '关闭',
|
||||||
@ -240,27 +275,27 @@ export class PartnerAccountManagementWithdrawalsRecordComponent implements OnIni
|
|||||||
|
|
||||||
private initST(): STColumn[] {
|
private initST(): STColumn[] {
|
||||||
return [
|
return [
|
||||||
{ title: '', index: 'key', type: 'checkbox' },
|
{ title: '', index: 'key', type: 'checkbox', className: 'text-center' },
|
||||||
{ title: '提现时间', index: 'createTime', width: 180 },
|
{ title: '提现时间', index: 'createTime', width: 180, className: 'text-center' },
|
||||||
{ title: '提现单号', index: 'refundApplyCode', width: 120 },
|
{ title: '提现单号', index: 'refundApplyCode', width: 180, className: 'text-center' },
|
||||||
{ title: '网络货运人', index: 'ltdName', width: 140 },
|
{ title: '网络货运人', index: 'ltdName', width: 220, className: 'text-center' },
|
||||||
{ title: '银行类型', index: 'bankTypeLabel', width: 100 },
|
{ title: '银行类型', index: 'bankTypeLabel', width: 100, className: 'text-center' },
|
||||||
{ title: '账户类型', index: 'bankTypeLabel', width: 100 },
|
{ title: '账户类型', index: 'bankTypeLabel', width: 100, className: 'text-center' },
|
||||||
{ title: '账户名称', index: 'bankAccountName', width: 140 },
|
{ title: '账户名称', index: 'bankAccountName', width: 220, className: 'text-center' },
|
||||||
{ title: '虚拟账户', index: 'virtualAccount', width: 100 },
|
{ title: '虚拟账户', index: 'virtualAccount', width: 180, className: 'text-center' },
|
||||||
{
|
{
|
||||||
title: '提现金额',
|
title: '提现金额',
|
||||||
index: 'amount',
|
index: 'amount',
|
||||||
width: 120,
|
width: 150,
|
||||||
type: 'widget',
|
type: 'widget',
|
||||||
className: 'text-right',
|
className: 'text-right',
|
||||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.amount }) }
|
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.amount }) }
|
||||||
},
|
},
|
||||||
{ title: '提现银行账户', render: 'bankCardNumber', width: 180 },
|
{ title: '提现银行账户', render: 'bankCardNumber', width: 200, className: 'text-center' },
|
||||||
{ title: '提现状态', index: 'refundStatusLabel', width: 100 },
|
{ title: '提现状态', index: 'refundStatusLabel', width: 100, className: 'text-center' },
|
||||||
{ title: '银行流水号', index: 'bankSerialNumber', width: 120 },
|
{ title: '银行流水号', index: 'bankSerialNumber', width: 160, className: 'text-center' },
|
||||||
{ title: '核心交易流水', index: 'coreSerNo', width: 120 },
|
{ title: '核心交易流水', index: 'coreSerNo', width: 180, className: 'text-center' },
|
||||||
{ title: '失败原因', index: 'rejectionCause', width: 150, format: item => item.failCause || item.rejectionCause },
|
{ title: '失败原因', index: 'rejectionCause', width: 200, format: item => item.failCause, className: 'text-center' },
|
||||||
{
|
{
|
||||||
title: '操作',
|
title: '操作',
|
||||||
fixed: 'right',
|
fixed: 'right',
|
||||||
@ -278,6 +313,11 @@ export class PartnerAccountManagementWithdrawalsRecordComponent implements OnIni
|
|||||||
ltdId: item.ltdId
|
ltdId: item.ltdId
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
text: '查看原因',
|
||||||
|
iif: item => item.refundStatus === '4',
|
||||||
|
click: item => this.showReason(item)
|
||||||
|
},
|
||||||
{
|
{
|
||||||
text: '审核',
|
text: '审核',
|
||||||
iif: item => item.refundStatus === '1',
|
iif: item => item.refundStatus === '1',
|
||||||
|
|||||||
@ -15,7 +15,6 @@
|
|||||||
<!-- 数据列表 -->
|
<!-- 数据列表 -->
|
||||||
<st
|
<st
|
||||||
#st
|
#st
|
||||||
[bordered]="true"
|
|
||||||
[data]="data"
|
[data]="data"
|
||||||
[columns]="columns"
|
[columns]="columns"
|
||||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||||
|
|||||||
@ -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>
|
||||||
@ -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);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -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>
|
||||||
|
|
||||||
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -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>
|
||||||
@ -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);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -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>
|
||||||
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -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>
|
||||||
@ -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);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -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>
|
||||||
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -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>
|
||||||
@ -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);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -15,7 +15,6 @@
|
|||||||
<!-- 数据列表 -->
|
<!-- 数据列表 -->
|
||||||
<st
|
<st
|
||||||
#st
|
#st
|
||||||
[bordered]="true"
|
|
||||||
[data]="data"
|
[data]="data"
|
||||||
[columns]="columns"
|
[columns]="columns"
|
||||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||||
|
|||||||
@ -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 { 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 { PartnerPartnerOrderDetailComponent } from './business-statistics/components/partner-order-detail/partner-order-detail.component';
|
||||||
import { PartnerAccountManagementListComponent } from './account-management/components/list/list.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 { ParterRebateManageMentRecordComponent } from './rebate-management/components/rebate-record/rebate-record.component';
|
||||||
import { PartnerAccountManagementAccountDetailComponent } from './account-management/components/account-detail/account-detail.component';
|
import { PartnerAccountManagementAccountDetailComponent } from './account-management/components/account-detail/account-detail.component';
|
||||||
import { PartnerAccountManagementRecordedDetailComponent } from './account-management/components/recorded-detail/recorded-detail.component';
|
import { PartnerAccountManagementRecordedDetailComponent } from './account-management/components/recorded-detail/recorded-detail.component';
|
||||||
@ -29,6 +32,7 @@ import { PartnerAccountManagementWithdrawalsRecordComponent } from './account-ma
|
|||||||
import { PartnerAccountManagementWithdrawalsDetailComponent } from './account-management/components/withdrawals-record/withdrawals-detail/withdrawals-detail.component';
|
import { PartnerAccountManagementWithdrawalsDetailComponent } from './account-management/components/withdrawals-record/withdrawals-detail/withdrawals-detail.component';
|
||||||
import { PartnerListComponent } from './partner-list/components/index/partner-list.component';
|
import { PartnerListComponent } from './partner-list/components/index/partner-list.component';
|
||||||
import { PartnerDetailComponent } from './partner-list/components/partner-detail/partner-detail.component';
|
import { PartnerDetailComponent } from './partner-list/components/partner-detail/partner-detail.component';
|
||||||
|
import { ParterRebateManageMentSettingComponent } from './rebate-management/components/rebate-setting/rebate-setting.component';
|
||||||
|
|
||||||
const routes: Routes = [
|
const routes: Routes = [
|
||||||
{
|
{
|
||||||
@ -63,7 +67,8 @@ const routes: Routes = [
|
|||||||
path: 'rebate',
|
path: 'rebate',
|
||||||
children: [
|
children: [
|
||||||
{ path: 'particulars', component: ParterRebateManageMentParticularsComponent },
|
{ path: 'particulars', component: ParterRebateManageMentParticularsComponent },
|
||||||
{ path: 'record', component: ParterRebateManageMentRecordComponent }
|
{ path: 'record', component: ParterRebateManageMentRecordComponent },
|
||||||
|
{ path: 'setting', component: ParterRebateManageMentSettingComponent }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -82,6 +87,15 @@ const routes: Routes = [
|
|||||||
{ path: '', component: PartnerListComponent },
|
{ path: '', component: PartnerListComponent },
|
||||||
{ path: 'detail/:id', component: PartnerDetailComponent }
|
{ path: 'detail/:id', component: PartnerDetailComponent }
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'claim-audit',
|
||||||
|
children: [
|
||||||
|
{ path: '', component: ParterClaimAuditListComponent },
|
||||||
|
{ path: 'list', component: ParterClaimAuditListComponent },
|
||||||
|
{ path: 'channel-detail', component: ParterClaimAuditListChannelDetailComponent },
|
||||||
|
{ path: 'partner-detail', component: ParterClaimAuditListPartnerDetailComponent }
|
||||||
|
]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
@NgModule({
|
@NgModule({
|
||||||
|
|||||||
@ -26,8 +26,15 @@ import { PartnerSalePartnerDetailComponent } from './business-statistics/compone
|
|||||||
import { PartnerPartnerCustomOrderDetailComponent } from './business-statistics/components/partner-custom-order-detail/partner-custom-order-detail.component';
|
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 { PartnerPartnerOrderDetailComponent } from './business-statistics/components/partner-order-detail/partner-order-detail.component';
|
||||||
import { PartnerAccountManagementListComponent } from './account-management/components/list/list.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 { 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 { PartnerAccountManagementAccountDetailComponent } from './account-management/components/account-detail/account-detail.component';
|
||||||
import { PartnerAccountManagementRecordedDetailComponent } from './account-management/components/recorded-detail/recorded-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 { PartnerAccountManagementWithdrawalsRecordComponent } from './account-management/components/withdrawals-record/withdrawals-record.component';
|
||||||
@ -36,6 +43,9 @@ import { PartnerDetailComponent } from './partner-list/components/partner-detail
|
|||||||
import { PartnerListComponent } from './partner-list/components/index/partner-list.component';
|
import { PartnerListComponent } from './partner-list/components/index/partner-list.component';
|
||||||
import { PartnerAuditModalComponent } from './partner-list/components/partner-audit-modal/partner-audit-modal.component';
|
import { PartnerAuditModalComponent } from './partner-list/components/partner-audit-modal/partner-audit-modal.component';
|
||||||
import { PartnerListService } from './partner-list/services/partner-list.service';
|
import { PartnerListService } from './partner-list/services/partner-list.service';
|
||||||
|
import { ParterRebateManageMentRecordComponent } from './rebate-management/components/rebate-record/rebate-record.component';
|
||||||
|
import { ParterRebateManageMenAbnormalFeedbackComponent } from './rebate-management/model/abnormal-feedback/abnormal-feedback.component';
|
||||||
|
import { ParterRebateManageMentSettingComponent } from './rebate-management/components/rebate-setting/rebate-setting.component';
|
||||||
|
|
||||||
const COMPONENTS: any[] = [
|
const COMPONENTS: any[] = [
|
||||||
PartnerBusinessStatisticsIndexComponent,
|
PartnerBusinessStatisticsIndexComponent,
|
||||||
@ -54,13 +64,22 @@ const COMPONENTS: any[] = [
|
|||||||
PartnerPartnerCustomOrderDetailComponent,
|
PartnerPartnerCustomOrderDetailComponent,
|
||||||
PartnerPartnerOrderDetailComponent,
|
PartnerPartnerOrderDetailComponent,
|
||||||
PartnerAccountManagementListComponent,
|
PartnerAccountManagementListComponent,
|
||||||
|
ParterClaimAuditListComponent,
|
||||||
|
ParterClaimAuditListChannelDetailComponent,
|
||||||
|
ParterClaimAuditListPartnerDetailComponent,
|
||||||
|
ParterClaimAuditListPartnerApproveComponent,
|
||||||
|
ParterClaimAuditListPartnerRejectComponent,
|
||||||
|
ParterClaimAuditListChannelApproveComponent,
|
||||||
|
ParterClaimAuditListChannelRejectComponent,
|
||||||
PartnerAccountManagementVirtualAccountDetailComponent,
|
PartnerAccountManagementVirtualAccountDetailComponent,
|
||||||
PartnerAccountManagementAccountDetailComponent,
|
PartnerAccountManagementAccountDetailComponent,
|
||||||
PartnerAccountManagementRecordedDetailComponent,
|
PartnerAccountManagementRecordedDetailComponent,
|
||||||
PartnerAccountManagementWithdrawalsRecordComponent,
|
PartnerAccountManagementWithdrawalsRecordComponent,
|
||||||
PartnerAccountManagementWithdrawalsDetailComponent,
|
PartnerAccountManagementWithdrawalsDetailComponent,
|
||||||
PartnerListComponent,
|
PartnerListComponent,
|
||||||
PartnerDetailComponent
|
PartnerDetailComponent,
|
||||||
|
ParterRebateManageMenAbnormalFeedbackComponent,
|
||||||
|
ParterRebateManageMentSettingComponent
|
||||||
];
|
];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2022-02-24 20:09:49
|
* @Date : 2022-02-24 20:09:49
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-03-09 15:04:50
|
* @LastEditTime : 2022-03-10 15:12:03
|
||||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-record\\rebate-record.component.html
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-record\\rebate-record.component.html
|
||||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
-->
|
-->
|
||||||
@ -41,5 +41,8 @@
|
|||||||
[loadingDelay]="500"
|
[loadingDelay]="500"
|
||||||
[loading]="service.http.loading"
|
[loading]="service.http.loading"
|
||||||
>
|
>
|
||||||
|
<ng-template st-row='name44' let-item let-index='index'>
|
||||||
|
<div style="color: #f59a23;" (click)="feedback()">1223</div>
|
||||||
|
</ng-template>
|
||||||
</st>
|
</st>
|
||||||
</nz-card>
|
</nz-card>
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import { processSingleSort, ShipperBaseService } from '@shared';
|
|||||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||||
import { RebateManagementService } from '../../services/rebate-management.service';
|
import { RebateManagementService } from '../../services/rebate-management.service';
|
||||||
import { ParterRebateManageMenRecordDetailComponent } from '../../model/record-detail/record-detail.component';
|
import { ParterRebateManageMenRecordDetailComponent } from '../../model/record-detail/record-detail.component';
|
||||||
|
import { ParterRebateManageMenAbnormalFeedbackComponent } from '../../model/abnormal-feedback/abnormal-feedback.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-parter-channel-rebate-management-record',
|
selector: 'app-parter-channel-rebate-management-record',
|
||||||
@ -27,9 +28,8 @@ export class ParterRebateManageMentRecordComponent implements OnInit {
|
|||||||
public router: Router,
|
public router: Router,
|
||||||
public ar: ActivatedRoute,
|
public ar: ActivatedRoute,
|
||||||
public service: RebateManagementService,
|
public service: RebateManagementService,
|
||||||
private modalService: NzModalService,
|
private modal: NzModalService,
|
||||||
public shipperservice: ShipperBaseService,
|
public shipperservice: ShipperBaseService,
|
||||||
private modal: ModalHelper
|
|
||||||
) {}
|
) {}
|
||||||
/**
|
/**
|
||||||
* 查询字段个数
|
* 查询字段个数
|
||||||
@ -114,7 +114,7 @@ export class ParterRebateManageMentRecordComponent implements OnInit {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '异常反馈',
|
title: '异常反馈',
|
||||||
index: 'name1'
|
render: 'name44'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '操作',
|
title: '操作',
|
||||||
@ -131,15 +131,36 @@ export class ParterRebateManageMentRecordComponent implements OnInit {
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
*查看详情
|
*查看明细
|
||||||
*/
|
*/
|
||||||
viewEvaluate(item: any) {
|
viewEvaluate(item: any) {
|
||||||
// this.modalService
|
const modal = this.modal.create({
|
||||||
this.modal.createStatic(ParterRebateManageMenRecordDetailComponent, {i:item}).subscribe((res: boolean)=> {
|
nzTitle: '明细',
|
||||||
|
nzWidth: 1200,
|
||||||
|
nzContent: ParterRebateManageMenRecordDetailComponent,
|
||||||
|
nzComponentParams: { },
|
||||||
|
nzFooter: null
|
||||||
|
});
|
||||||
|
modal.afterClose.subscribe((res: any) => {
|
||||||
if (res) {
|
if (res) {
|
||||||
|
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
*异常反馈
|
||||||
|
*/
|
||||||
|
feedback(item?: any) {
|
||||||
|
const modal = this.modal.create({
|
||||||
|
nzTitle: '异常反馈',
|
||||||
|
nzWidth: 580,
|
||||||
|
nzContent: ParterRebateManageMenAbnormalFeedbackComponent,
|
||||||
|
nzComponentParams: { i: item },
|
||||||
|
nzFooter: null
|
||||||
|
});
|
||||||
|
modal.afterClose.subscribe((res: any) => {
|
||||||
|
if (res) {
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 重置表单
|
* 重置表单
|
||||||
|
|||||||
@ -0,0 +1,48 @@
|
|||||||
|
<!--
|
||||||
|
* @Description :
|
||||||
|
* @Version : 1.0
|
||||||
|
* @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
|
||||||
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
|
-->
|
||||||
|
<page-header-wrapper [title]="''"> </page-header-wrapper>
|
||||||
|
<nz-card>
|
||||||
|
<div nz-row nzGutter="8">
|
||||||
|
<!-- 查询字段小于或等于3个时,不显示伸缩按钮 -->
|
||||||
|
<sf
|
||||||
|
#sf
|
||||||
|
[schema]="schema"
|
||||||
|
[ui]="ui"
|
||||||
|
[mode]="'search'"
|
||||||
|
[disabled]="!sf?.valid"
|
||||||
|
[loading]="service.http.loading"
|
||||||
|
[button]="'none'"
|
||||||
|
></sf>
|
||||||
|
<div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right">
|
||||||
|
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1);">查询</button>
|
||||||
|
<button nz-button nzType="primary" [disabled]="service.http.loading" >导出</button>
|
||||||
|
<button nz-button [disabled]="service.http.loading" (click)="resetSF()">重置</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nz-card>
|
||||||
|
|
||||||
|
<nz-card>
|
||||||
|
<!-- 数据列表 -->
|
||||||
|
<st
|
||||||
|
#st
|
||||||
|
[data]="data"
|
||||||
|
[columns]="columns"
|
||||||
|
[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"
|
||||||
|
>
|
||||||
|
<ng-template st-row='name44' let-item let-index='index'>
|
||||||
|
<div style="color: #f59a23;" (click)="feedback()">1223</div>
|
||||||
|
</ng-template>
|
||||||
|
</st>
|
||||||
|
</nz-card>
|
||||||
@ -0,0 +1,172 @@
|
|||||||
|
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';
|
||||||
|
import { ParterRebateManageMenRecordDetailComponent } from '../../model/record-detail/record-detail.component';
|
||||||
|
import { ParterRebateManageMenAbnormalFeedbackComponent } from '../../model/abnormal-feedback/abnormal-feedback.component';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-parter-channel-rebate-management-setting',
|
||||||
|
templateUrl: './rebate-setting.component.html'
|
||||||
|
})
|
||||||
|
export class ParterRebateManageMentSettingComponent implements OnInit {
|
||||||
|
schema: SFSchema = {};
|
||||||
|
columns!: STColumn[];
|
||||||
|
ui!: SFUISchema;
|
||||||
|
@ViewChild('st', { static: false })
|
||||||
|
st!: STComponent;
|
||||||
|
@ViewChild('sf', { static: false })
|
||||||
|
sf!: SFComponent;
|
||||||
|
spuStatus = '1';
|
||||||
|
_$expand = false;
|
||||||
|
data = [{ name1: 1111 }];
|
||||||
|
constructor(
|
||||||
|
public router: Router,
|
||||||
|
public ar: ActivatedRoute,
|
||||||
|
public service: RebateManagementService,
|
||||||
|
private modal: NzModalService,
|
||||||
|
public shipperservice: ShipperBaseService,
|
||||||
|
) {}
|
||||||
|
/**
|
||||||
|
* 查询字段个数
|
||||||
|
*/
|
||||||
|
get queryFieldCount(): number {
|
||||||
|
return Object.keys(this.schema?.properties || {}).length;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 伸缩查询条件
|
||||||
|
*/
|
||||||
|
expandToggle(): void {
|
||||||
|
this._$expand = !this._$expand;
|
||||||
|
this.sf?.setValue('/_$expand', this._$expand);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 查询参数
|
||||||
|
*/
|
||||||
|
get reqParams() {
|
||||||
|
const params: any = Object.assign({}, this.sf?.value || {});
|
||||||
|
delete params._$expand;
|
||||||
|
return {
|
||||||
|
...params,
|
||||||
|
deadlineTime: {
|
||||||
|
start: this.sf?.value?.deadlineTime?.[0] || '',
|
||||||
|
end: this.sf?.value?.deadlineTime?.[1] || '',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
ngOnInit() {
|
||||||
|
this.initSF();
|
||||||
|
this.initST();
|
||||||
|
}
|
||||||
|
|
||||||
|
initSF() {
|
||||||
|
this.schema = {
|
||||||
|
properties: {
|
||||||
|
_$expand: { type: 'boolean', ui: { hidden: true } },
|
||||||
|
month: {
|
||||||
|
type: 'string',
|
||||||
|
title: '时间月份',
|
||||||
|
format: 'month',
|
||||||
|
},
|
||||||
|
phone: {
|
||||||
|
type: 'string',
|
||||||
|
title: '合伙人名称'
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
this.ui = {
|
||||||
|
'*': {
|
||||||
|
spanLabelFixed: 140,
|
||||||
|
grid: { span: 8, gutter: 4 }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
initST() {
|
||||||
|
this.columns = [
|
||||||
|
{
|
||||||
|
title: '月份',
|
||||||
|
index: 'name1'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '返佣金额(元)',
|
||||||
|
index: 'name1'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '合伙人名称',
|
||||||
|
index: 'name1'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '实际等级',
|
||||||
|
index: 'name1'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '管理费比例',
|
||||||
|
index: 'name1'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '返佣时间',
|
||||||
|
index: 'name1'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '异常反馈',
|
||||||
|
render: 'name44'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '操作',
|
||||||
|
fixed: 'right',
|
||||||
|
width: '90px',
|
||||||
|
className: 'text-left',
|
||||||
|
buttons: [
|
||||||
|
{
|
||||||
|
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) {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
*异常反馈
|
||||||
|
*/
|
||||||
|
feedback(item?: any) {
|
||||||
|
const modal = this.modal.create({
|
||||||
|
nzTitle: '异常反馈',
|
||||||
|
nzWidth: 580,
|
||||||
|
nzContent: ParterRebateManageMenAbnormalFeedbackComponent,
|
||||||
|
nzComponentParams: { i: item },
|
||||||
|
nzFooter: null
|
||||||
|
});
|
||||||
|
modal.afterClose.subscribe((res: any) => {
|
||||||
|
if (res) {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 重置表单
|
||||||
|
*/
|
||||||
|
resetSF() {
|
||||||
|
this.sf.reset();
|
||||||
|
this.st.load(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
<!--
|
||||||
|
* @Description :
|
||||||
|
* @Version : 1.0
|
||||||
|
* @Author : Shiming
|
||||||
|
* @Date : 2022-02-24 20:09:49
|
||||||
|
* @LastEditors : Shiming
|
||||||
|
* @LastEditTime : 2022-03-10 15:10:47
|
||||||
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\model\\abnormal-feedback\\abnormal-feedback.component.html
|
||||||
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
|
-->
|
||||||
|
<sv-container col="1">
|
||||||
|
<sv label="异常反馈">
|
||||||
|
<div>有订单有异常请查看 </div>
|
||||||
|
<div>2022-09-08 00:00:00 </div>
|
||||||
|
</sv>
|
||||||
|
<!-- <sv label="异常反馈">
|
||||||
|
<p *ngFor="let data of i?.mybidDetailInfo; let index = index">
|
||||||
|
<label *ngIf="data?.paymentStatusLabel == '已支付'">
|
||||||
|
<span>{{data?.expenseName}}</span>
|
||||||
|
<span>{{ data.price | number: '0.2-2' }}</span>
|
||||||
|
</label>
|
||||||
|
</p>
|
||||||
|
</sv> -->
|
||||||
|
</sv-container>
|
||||||
|
<div>
|
||||||
|
<sf
|
||||||
|
style="margin-left: 20px;"
|
||||||
|
#sf
|
||||||
|
[schema]="schema"
|
||||||
|
[ui]="ui"
|
||||||
|
[mode]="'edit'"
|
||||||
|
[button]="'none'"
|
||||||
|
></sf>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div nz-col class="text-center">
|
||||||
|
<button nz-button nzType="primary" (click)="close()">确定</button>
|
||||||
|
</div>
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
:host {
|
||||||
|
[nz-button] {
|
||||||
|
margin-right: 8px;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,72 @@
|
|||||||
|
/*
|
||||||
|
* @Description :
|
||||||
|
* @Version : 1.0
|
||||||
|
* @Author : Shiming
|
||||||
|
* @Date : 2022-03-10 14:50:45
|
||||||
|
* @LastEditors : Shiming
|
||||||
|
* @LastEditTime : 2022-03-10 15:09:51
|
||||||
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\model\\abnormal-feedback\\abnormal-feedback.component.ts
|
||||||
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
|
*/
|
||||||
|
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, SFSelectWidgetSchema, SFTextareaWidgetSchema, SFUISchema } from '@delon/form';
|
||||||
|
import { processSingleSort, ShipperBaseService } from '@shared';
|
||||||
|
import { NzModalService, NzModalRef } from 'ng-zorro-antd/modal';
|
||||||
|
import { RebateManagementService } from '../../services/rebate-management.service';
|
||||||
|
import { NzButtonSize } from 'ng-zorro-antd/button';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-parter-channel-rebate-management-abnormal-feedback',
|
||||||
|
templateUrl: './abnormal-feedback.component.html'
|
||||||
|
})
|
||||||
|
export class ParterRebateManageMenAbnormalFeedbackComponent implements OnInit {
|
||||||
|
schema: SFSchema = {};
|
||||||
|
ui!: SFUISchema;
|
||||||
|
@ViewChild('sf', { static: false })
|
||||||
|
sf!: SFComponent;
|
||||||
|
i!: any;
|
||||||
|
data = [{ name1: 1111 }];
|
||||||
|
constructor(
|
||||||
|
public router: Router,
|
||||||
|
public ar: ActivatedRoute,
|
||||||
|
public service: RebateManagementService,
|
||||||
|
private modalService: NzModalService,
|
||||||
|
public shipperservice: ShipperBaseService,
|
||||||
|
public modalRef: NzModalRef,
|
||||||
|
) {}
|
||||||
|
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
this.initSF();
|
||||||
|
}
|
||||||
|
|
||||||
|
initSF() {
|
||||||
|
this.schema = {
|
||||||
|
properties: {
|
||||||
|
name3: {
|
||||||
|
type: 'string',
|
||||||
|
title: '回复',
|
||||||
|
maxLength: 50,
|
||||||
|
ui: {
|
||||||
|
widget: 'textarea',
|
||||||
|
autosize: { minRows: 3, maxRows: 6 },
|
||||||
|
placeholder:'请不要超过50个字'
|
||||||
|
} as SFTextareaWidgetSchema,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
this.ui = {
|
||||||
|
'*': {
|
||||||
|
spanLabelFixed: 60,
|
||||||
|
grid: { span: 16 },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
close() {
|
||||||
|
this.modalRef.destroy()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@ -4,7 +4,7 @@
|
|||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2022-02-24 20:09:49
|
* @Date : 2022-02-24 20:09:49
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-03-09 15:14:50
|
* @LastEditTime : 2022-03-10 14:34:30
|
||||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\model\\record-detail\\record-detail.component.html
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\model\\record-detail\\record-detail.component.html
|
||||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
-->
|
-->
|
||||||
@ -23,7 +23,7 @@
|
|||||||
<st
|
<st
|
||||||
#st
|
#st
|
||||||
[bordered]="true"
|
[bordered]="true"
|
||||||
[data]="data"
|
[data]="service.$api_get_listCompliancePage"
|
||||||
[columns]="columns"
|
[columns]="columns"
|
||||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||||
@ -32,3 +32,7 @@
|
|||||||
[loading]="service.http.loading"
|
[loading]="service.http.loading"
|
||||||
>
|
>
|
||||||
</st>
|
</st>
|
||||||
|
<div>合计:2999.00元</div>
|
||||||
|
<div nz-col class="text-center">
|
||||||
|
<button nz-button nzType="primary" style="width: 150px;" (click)="close()">确定</button>
|
||||||
|
</div>
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
:host {
|
||||||
|
[nz-button] {
|
||||||
|
margin-right: 8px;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -2,10 +2,11 @@ import { ModalHelper } from '@delon/theme';
|
|||||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { STColumn, STComponent, STData, STRequestOptions } from '@delon/abc/st';
|
import { STColumn, STComponent, STData, STRequestOptions } from '@delon/abc/st';
|
||||||
import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
|
import { SFComponent, SFDateWidgetSchema, SFSchema, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
|
||||||
import { processSingleSort, ShipperBaseService } from '@shared';
|
import { processSingleSort, ShipperBaseService } from '@shared';
|
||||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
import { NzModalService, NzModalRef } from 'ng-zorro-antd/modal';
|
||||||
import { RebateManagementService } from '../../services/rebate-management.service';
|
import { RebateManagementService } from '../../services/rebate-management.service';
|
||||||
|
import { NzButtonSize } from 'ng-zorro-antd/button';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-parter-channel-rebate-management-record-detail',
|
selector: 'app-parter-channel-rebate-management-record-detail',
|
||||||
@ -20,6 +21,7 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
|
|||||||
@ViewChild('sf', { static: false })
|
@ViewChild('sf', { static: false })
|
||||||
sf!: SFComponent;
|
sf!: SFComponent;
|
||||||
spuStatus = '1';
|
spuStatus = '1';
|
||||||
|
size: NzButtonSize = 'large';
|
||||||
_$expand = false;
|
_$expand = false;
|
||||||
data = [{ name1: 1111 }];
|
data = [{ name1: 1111 }];
|
||||||
constructor(
|
constructor(
|
||||||
@ -28,6 +30,7 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
|
|||||||
public service: RebateManagementService,
|
public service: RebateManagementService,
|
||||||
private modalService: NzModalService,
|
private modalService: NzModalService,
|
||||||
public shipperservice: ShipperBaseService,
|
public shipperservice: ShipperBaseService,
|
||||||
|
public modalRef: NzModalRef,
|
||||||
) {}
|
) {}
|
||||||
/**
|
/**
|
||||||
* 查询字段个数
|
* 查询字段个数
|
||||||
@ -50,10 +53,6 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
|
|||||||
delete params._$expand;
|
delete params._$expand;
|
||||||
return {
|
return {
|
||||||
...params,
|
...params,
|
||||||
deadlineTime: {
|
|
||||||
start: this.sf?.value?.deadlineTime?.[0] || '',
|
|
||||||
end: this.sf?.value?.deadlineTime?.[1] || '',
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
@ -64,54 +63,33 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
|
|||||||
initSF() {
|
initSF() {
|
||||||
this.schema = {
|
this.schema = {
|
||||||
properties: {
|
properties: {
|
||||||
_$expand: { type: 'boolean', ui: { hidden: true } },
|
|
||||||
name: {
|
|
||||||
type: 'string',
|
|
||||||
title: '订单号'
|
|
||||||
},
|
|
||||||
phone: {
|
|
||||||
type: 'string',
|
|
||||||
title: '付款单号'
|
|
||||||
},
|
|
||||||
phone2: {
|
|
||||||
type: 'string',
|
|
||||||
title: '下单客户'
|
|
||||||
},
|
|
||||||
enterpriseInfoId: {
|
enterpriseInfoId: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: '网络货运人',
|
title: '网络货运人',
|
||||||
ui: {
|
ui: {
|
||||||
widget: 'select',
|
widget: 'select',
|
||||||
placeholder: '请选择',
|
placeholder: '请选择',
|
||||||
visibleIf: {
|
|
||||||
_$expand: (value: boolean) => value
|
|
||||||
},
|
|
||||||
allowClear: true,
|
allowClear: true,
|
||||||
asyncData: () => this.shipperservice.getNetworkFreightForwarder()
|
asyncData: () => this.shipperservice.getNetworkFreightForwarder(),
|
||||||
|
change: (value: any) => {
|
||||||
|
console.log(value)
|
||||||
|
this.st.reload()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
phone3: {
|
paymentStatus: {
|
||||||
type: 'string',
|
title: '银行类型',
|
||||||
title: '合伙人名称',
|
|
||||||
ui: {
|
|
||||||
visibleIf: {
|
|
||||||
_$expand: (value: boolean) => value
|
|
||||||
},
|
|
||||||
}
|
|
||||||
},
|
|
||||||
deadlineTime: {
|
|
||||||
title: '时间范围',
|
|
||||||
type: 'string',
|
type: 'string',
|
||||||
ui: {
|
ui: {
|
||||||
widget: 'date',
|
widget: 'dict-select',
|
||||||
mode: 'range',
|
params: { dictKey: 'overall:payment:status' },
|
||||||
format: 'yyyy-MM-dd',
|
containsAllLabel: true,
|
||||||
visibleIf: {
|
change: (value: any) => {
|
||||||
_$expand: (value: boolean) => value
|
console.log(value)
|
||||||
},
|
this.st.reload()
|
||||||
allowClear: true
|
|
||||||
} as SFDateWidgetSchema
|
|
||||||
}
|
}
|
||||||
|
} as SFSelectWidgetSchema
|
||||||
|
},
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
this.ui = {
|
this.ui = {
|
||||||
@ -126,7 +104,7 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
|
|||||||
this.columns = [
|
this.columns = [
|
||||||
{
|
{
|
||||||
title: '订单号',
|
title: '订单号',
|
||||||
index: 'name1'
|
index: 'billCode'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '订单金额(元)',
|
title: '订单金额(元)',
|
||||||
@ -186,4 +164,8 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
|
|||||||
this.sf.reset();
|
this.sf.reset();
|
||||||
this.st.load(1);
|
this.st.load(1);
|
||||||
}
|
}
|
||||||
|
close() {
|
||||||
|
this.modalRef.destroy()
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +1,13 @@
|
|||||||
|
/*
|
||||||
|
* @Description :
|
||||||
|
* @Version : 1.0
|
||||||
|
* @Author : Shiming
|
||||||
|
* @Date : 2022-03-10 11:19:00
|
||||||
|
* @LastEditors : Shiming
|
||||||
|
* @LastEditTime : 2022-03-10 13:51:05
|
||||||
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\services\\rebate-management.service.ts
|
||||||
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
|
*/
|
||||||
import { Injectable, Injector } from '@angular/core';
|
import { Injectable, Injector } from '@angular/core';
|
||||||
import { BaseService } from '@shared';
|
import { BaseService } from '@shared';
|
||||||
|
|
||||||
@ -5,7 +15,8 @@ import { BaseService } from '@shared';
|
|||||||
providedIn: 'root',
|
providedIn: 'root',
|
||||||
})
|
})
|
||||||
export class RebateManagementService extends BaseService {
|
export class RebateManagementService extends BaseService {
|
||||||
|
// 查询规则抽查列表
|
||||||
|
public $api_get_listCompliancePage = '/api/sdc/billRiskOperate/listRiskPage';
|
||||||
constructor(public injector: Injector) {
|
constructor(public injector: Injector) {
|
||||||
super(injector);
|
super(injector);
|
||||||
}
|
}
|
||||||
|
|||||||
236
src/app/shared/utils/deal-precision.ts
Normal file
236
src/app/shared/utils/deal-precision.ts
Normal file
@ -0,0 +1,236 @@
|
|||||||
|
/**
|
||||||
|
* 操作符类型运算符
|
||||||
|
* +:加法运算
|
||||||
|
* -:减法运算
|
||||||
|
* *:乘法运算
|
||||||
|
* /:除法运算
|
||||||
|
*/
|
||||||
|
type OperationType = '+' | '-' | '*' | '/';
|
||||||
|
|
||||||
|
class Big {
|
||||||
|
/**
|
||||||
|
* Big值
|
||||||
|
*/
|
||||||
|
private v: number;
|
||||||
|
/**
|
||||||
|
* 构造函数
|
||||||
|
* @param v 初始值
|
||||||
|
*/
|
||||||
|
constructor(v: number) {
|
||||||
|
this.v = v;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 转换整数,返回倍数及整数值,比如
|
||||||
|
* 100 >>> { times: 1, num: 100 } ===> 100
|
||||||
|
* 3.14 >>> { times: 100, num: 3.14} ===> 314
|
||||||
|
* @param n number
|
||||||
|
*/
|
||||||
|
private toInteger(n: number) {
|
||||||
|
const ret = { times: 1, num: 0 };
|
||||||
|
if (Number.isInteger(n)) {
|
||||||
|
ret.num = n;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
ret.times = Math.pow(10, n.toString().split('.')[1].length);
|
||||||
|
ret.num = parseInt((n * ret.times + 0.5).toString(), 10);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 执行运算
|
||||||
|
* @param m 数值m
|
||||||
|
* @param n 数值n
|
||||||
|
* @param key 运算符
|
||||||
|
*/
|
||||||
|
private operation(m: number = 0, n: number = 0, key: OperationType) {
|
||||||
|
const o1 = this.toInteger(m);
|
||||||
|
const o2 = this.toInteger(n);
|
||||||
|
|
||||||
|
const n1 = o1.num;
|
||||||
|
const n2 = o2.num;
|
||||||
|
|
||||||
|
const t1 = o1.times;
|
||||||
|
const t2 = o2.times;
|
||||||
|
|
||||||
|
const max = Math.max(t1, t2);
|
||||||
|
let result = 0;
|
||||||
|
switch (key) {
|
||||||
|
case '+':
|
||||||
|
if (t1 === t2) {
|
||||||
|
// 两个小数位数相同
|
||||||
|
result = n1 + n2;
|
||||||
|
} else if (t1 > t2) {
|
||||||
|
// o1 小数位 大于 o2
|
||||||
|
result = n1 + n2 * (t1 / t2);
|
||||||
|
} else {
|
||||||
|
// o1 小数位 小于 o2
|
||||||
|
result = n1 * (t2 / t1) + n2;
|
||||||
|
}
|
||||||
|
result /= max;
|
||||||
|
break;
|
||||||
|
case '-':
|
||||||
|
if (t1 === t2) {
|
||||||
|
result = n1 - n2;
|
||||||
|
} else if (t1 > t2) {
|
||||||
|
result = n1 - n2 * (t1 / t2);
|
||||||
|
} else {
|
||||||
|
result = n1 * (t2 / t1) - n2;
|
||||||
|
}
|
||||||
|
result /= max;
|
||||||
|
break;
|
||||||
|
case '*':
|
||||||
|
result = (n1 * n2) / (t1 * t2);
|
||||||
|
break;
|
||||||
|
case '/':
|
||||||
|
result = (n1 * t2) / (t1 * n2);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
result = 0;
|
||||||
|
}
|
||||||
|
return new Big(result);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 数值化
|
||||||
|
* @param n
|
||||||
|
*/
|
||||||
|
private numeric(n: number | Big) {
|
||||||
|
return n instanceof Big ? n.v : n;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 加法运算
|
||||||
|
* @param n
|
||||||
|
*/
|
||||||
|
public plus(n: number | Big) {
|
||||||
|
return this.operation(this.v, this.numeric(n), '+');
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 减法运算
|
||||||
|
* @param n
|
||||||
|
*/
|
||||||
|
public minus(n: number | Big) {
|
||||||
|
return this.operation(this.v, this.numeric(n), '-');
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 乘法运算
|
||||||
|
* @param n
|
||||||
|
*/
|
||||||
|
public multipliedBy(n: number | Big) {
|
||||||
|
return this.operation(this.v, this.numeric(n), '*');
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 除法运算
|
||||||
|
* @param n
|
||||||
|
*/
|
||||||
|
public dividedBy(n: number | Big) {
|
||||||
|
return this.operation(this.v, this.numeric(n), '/');
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 解析结果
|
||||||
|
*/
|
||||||
|
public parse() {
|
||||||
|
return this.v;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小数点后固定指定位数,比如固定小数点后5位数字,则有
|
||||||
|
* 30 ==> 30.00000
|
||||||
|
* 3.14 ===> 3.14000
|
||||||
|
* @param n
|
||||||
|
*/
|
||||||
|
public static digits(v: number | Big, len: number = 2) {
|
||||||
|
if (Number.isInteger(v)) {
|
||||||
|
return `${v}.${Array(len).fill(0).join('')}`;
|
||||||
|
} else {
|
||||||
|
const [prefix, suffix] = v.toString().split('.');
|
||||||
|
const sLen = suffix.length;
|
||||||
|
if (sLen > len) {
|
||||||
|
return `${prefix}.${suffix.slice(0, len)}`;
|
||||||
|
} else if (sLen < len) {
|
||||||
|
return `${prefix}.${suffix}${Array(len - sLen)
|
||||||
|
.fill(0)
|
||||||
|
.join('')}`;
|
||||||
|
} else {
|
||||||
|
return `${prefix}.${suffix}`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public digits(len: number) {
|
||||||
|
return Big.digits(this.v, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 人民币格式处理
|
||||||
|
* - 非数字:返回0
|
||||||
|
* - 整数:直接返回
|
||||||
|
* - 小数:保留小数点后两位,超出两位则截取
|
||||||
|
* @param v
|
||||||
|
*/
|
||||||
|
public static rmb(v: string | number) {
|
||||||
|
if (isNaN(Number(v))) {
|
||||||
|
return '0';
|
||||||
|
} else {
|
||||||
|
const foo = v.toString();
|
||||||
|
if (/^[0-9]+$/.test(foo)) {
|
||||||
|
return foo;
|
||||||
|
} else {
|
||||||
|
const [prefix, suffix] = foo.split('.');
|
||||||
|
const sLen = suffix.length;
|
||||||
|
if (sLen > 2) {
|
||||||
|
return `${prefix}.${suffix.slice(0, 2)}`;
|
||||||
|
} else if (sLen < 2) {
|
||||||
|
return `${foo}0`;
|
||||||
|
} else {
|
||||||
|
return foo;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public rmb() {
|
||||||
|
return Big.rmb(this.v);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 切割数字
|
||||||
|
* @param v
|
||||||
|
*/
|
||||||
|
public static split(v: string | number) {
|
||||||
|
if (isNaN(Number(v))) {
|
||||||
|
return [];
|
||||||
|
} else {
|
||||||
|
return v
|
||||||
|
.toString()
|
||||||
|
.split('.')
|
||||||
|
.map((item, i) => {
|
||||||
|
if (i === 1) {
|
||||||
|
return item && item.length < 2 ? `${item}0` : item;
|
||||||
|
}
|
||||||
|
return item;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public split() {
|
||||||
|
return Big.split(this.v);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 省略 --> 如果超过1万,则返回万制,转换后小数点后保留两位
|
||||||
|
* 比如:12345 返回 1.23万
|
||||||
|
* @param v
|
||||||
|
*/
|
||||||
|
public static ellipsis(v: string | number) {
|
||||||
|
// 如果不是数值类型并且转换之后不为数字,则直接返回传入值
|
||||||
|
if (isNaN(Number(v))) {
|
||||||
|
return v.toString();
|
||||||
|
}
|
||||||
|
// 如果传入数值小于1万则没必要转换,直接返回
|
||||||
|
if (+v < 10000) {
|
||||||
|
return v.toString();
|
||||||
|
}
|
||||||
|
// 超过1万,处理之后再返回
|
||||||
|
return Big.rmb(+v / 10000) + '万';
|
||||||
|
}
|
||||||
|
public ellipsis(v: string | number) {
|
||||||
|
return Big.ellipsis(this.v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Big;
|
||||||
@ -522,7 +522,7 @@
|
|||||||
"group": true,
|
"group": true,
|
||||||
"children": [{
|
"children": [{
|
||||||
"text": "返佣配置",
|
"text": "返佣配置",
|
||||||
"link": "/partner/rebate/"
|
"link": "/partner/rebate/setting"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "返佣明细",
|
"text": "返佣明细",
|
||||||
@ -556,8 +556,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "提现记录",
|
"text": "提现记录",
|
||||||
"link": "/partner/account-management/withdraw-record",
|
"link": "/partner/account-management/withdraw-record"
|
||||||
"hide": true
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "提现详情",
|
"text": "提现详情",
|
||||||
@ -565,6 +564,21 @@
|
|||||||
"hide": true
|
"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
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user