edit
This commit is contained in:
@ -16,9 +16,9 @@
|
||||
</ng-template>
|
||||
</page-header-wrapper>
|
||||
|
||||
<nz-card>
|
||||
<nz-card [nzLoading]="service.http.loading">
|
||||
<nz-alert nzType="info" nzMessage="提现信息" class="mb-md"></nz-alert>
|
||||
<div se-container [labelWidth]="100">
|
||||
<div se-container [labelWidth]="130">
|
||||
<se label="网络货运人">
|
||||
{{formData?.ltdName}}
|
||||
</se>
|
||||
@ -41,16 +41,16 @@
|
||||
{{formData?.refundStatusLabel}}
|
||||
</se>
|
||||
<se label="提现金额">
|
||||
{{formData?.amount}}
|
||||
{{formData?.amount | currency}}
|
||||
</se>
|
||||
<se label="银行流水号">
|
||||
{{formData?.bankSerialNumber}}
|
||||
</se>
|
||||
<se label="提现至银行卡">
|
||||
{{formData?.bankId}}
|
||||
{{formData?.bankCardNumber}}
|
||||
</se>
|
||||
<se label="银行回单" col="1">
|
||||
<img [src]="formData?.bankCardNumber" alt="" style="width: 200px;height: 160px;">
|
||||
<a (click)="downBack()">{{formData?.refundStatus==='3'?'下载回单':'暂无回单'}}</a>
|
||||
</se>
|
||||
</div>
|
||||
|
||||
|
||||
@ -2,8 +2,9 @@ import { Component, OnInit } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { FreightAccountService } from 'src/app/routes/financial-management/services/freight-account.service';
|
||||
|
||||
|
||||
@Component({
|
||||
selector: 'app-partner-account-management-withdrawals-detail',
|
||||
selector: 'app-withdrawals-detail',
|
||||
templateUrl: './withdrawals-detail.component.html',
|
||||
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() {
|
||||
history.go(-1);
|
||||
}
|
||||
|
||||
@ -1,85 +1,62 @@
|
||||
<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>
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
|
||||
<sf #sf [schema]="searchSchema"
|
||||
[ui]="{ '*': { spanLabelFixed: 90,grid: { lg: 8, md: 12, sm: 12, xs: 24,gutter:15 } }}" [compact]="true"
|
||||
[button]="'none'"></sf>
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand"
|
||||
class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button> 导出</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
{{ !_$expand ? '展开' : '收起' }}
|
||||
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
|
||||
<sf #sf [schema]="searchSchema"
|
||||
[ui]="{ '*': { spanLabelFixed: 90,grid: { lg: 8, md: 12, sm: 12, xs: 24,gutter:15 } }}" [compact]="true"
|
||||
[button]="'none'"></sf>
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand"
|
||||
class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button> 导出</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
{{ !_$expand ? '展开' : '收起' }}
|
||||
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
<nz-card class="content-box" nzBordered>
|
||||
<nz-tabset [nzTabBarExtraContent]="extraTemplate">
|
||||
<nz-tab nzTitle="全部" (nzClick)="changeRefundStatus()"></nz-tab>
|
||||
<nz-tab nzTitle="待审核" (nzClick)="changeRefundStatus('1')"></nz-tab>
|
||||
<nz-tab nzTitle="处理中" (nzClick)="changeRefundStatus('2')"></nz-tab>
|
||||
<nz-tab nzTitle="提现成功" (nzClick)="changeRefundStatus('3')"></nz-tab>
|
||||
<nz-tab nzTitle="提现失败" (nzClick)="changeRefundStatus('5')"></nz-tab>
|
||||
<nz-tab nzTitle="已拒绝" (nzClick)="changeRefundStatus('4')"></nz-tab>
|
||||
</nz-tabset>
|
||||
<nz-tabset [nzTabBarExtraContent]="extraTemplate">
|
||||
<nz-tab nzTitle="全部" (nzClick)="changeRefundStatus()"></nz-tab>
|
||||
<nz-tab nzTitle="待审核" (nzClick)="changeRefundStatus('1')"></nz-tab>
|
||||
<nz-tab nzTitle="处理中" (nzClick)="changeRefundStatus('2')"></nz-tab>
|
||||
<nz-tab nzTitle="提现成功" (nzClick)="changeRefundStatus('3')"></nz-tab>
|
||||
<nz-tab nzTitle="提现失败" (nzClick)="changeRefundStatus('5')"></nz-tab>
|
||||
<nz-tab nzTitle="已拒绝" (nzClick)="changeRefundStatus('4')"></nz-tab>
|
||||
</nz-tabset>
|
||||
|
||||
<ng-template #extraTemplate>
|
||||
<div class="d-flex align-items-center ">
|
||||
<div class="mr-md">
|
||||
已选择
|
||||
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据 累计提现 <strong
|
||||
class="text-red">{{
|
||||
totalCallNo }}</strong>
|
||||
<a *ngIf="totalCallNo > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
|
||||
</div>
|
||||
<button nz-button (click)="this.auditAction(null)">审核</button>
|
||||
</div>
|
||||
<ng-template #extraTemplate>
|
||||
<div class="d-flex align-items-center ">
|
||||
<div class="mr-md">
|
||||
已选择
|
||||
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据 累计提现 <strong class="text-red">{{
|
||||
totalCallNo }}</strong>
|
||||
<!-- <a *ngIf="totalCallNo > 0" (click)="st.clearCheck()" class="ml-lg">清空</a> -->
|
||||
</div>
|
||||
<button nz-button (click)="this.auditAction(null)">审核</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<st #st [data]="service.$api_get_refund_page" [columns]="columns" [req]="{ process: beforeReq }"
|
||||
[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">
|
||||
{{ item.bankName }} <br> {{ item.bankCardNumber }}
|
||||
</ng-template>
|
||||
|
||||
<st #st [data]="service.$api_get_refund_page" [columns]="columns" [req]="{ process: beforeReq }"
|
||||
[loading]="service.http.loading" [scroll]="{ x:'1200px' }" (change)="stChange($event)">
|
||||
<ng-template st-row="bankCardNumber" let-item let-index="index" let-column="column">
|
||||
{{ item.bankName }} <br> {{ item.bankCardNumber }}
|
||||
</ng-template>
|
||||
</st>
|
||||
</st>
|
||||
</nz-card>
|
||||
|
||||
<ng-template #auditModal>
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col nzSpan="24" se-container [labelWidth]="80">
|
||||
<se [col]="1" label="备注">
|
||||
<textarea nz-input rows="3" [(ngModel)]="msg" placeholder="同意可以不用填写原因 ,拒绝必须说明原因"
|
||||
style="width: 325px;margin-left: 14px;"></textarea>
|
||||
</se>
|
||||
</div>
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col nzSpan="24" se-container [labelWidth]="80">
|
||||
<se [col]="1" label="备注">
|
||||
<textarea nz-input rows="3" [(ngModel)]="msg" placeholder="同意可以不用填写原因 ,拒绝必须说明原因"
|
||||
style="width: 325px;margin-left: 14px;"></textarea>
|
||||
</se>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
@ -1,9 +1,10 @@
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
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 { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { FreightAccountService } from 'src/app/routes/financial-management/services/freight-account.service';
|
||||
import Big from 'src/app/shared/utils/deal-precision';
|
||||
|
||||
|
||||
@Component({
|
||||
@ -12,12 +13,10 @@ import { FreightAccountService } from 'src/app/routes/financial-management/servi
|
||||
styleUrls: ['../../../../commom/less/box.less', '../../../../commom/less/expend-but.less']
|
||||
})
|
||||
export class PartnerAccountManagementWithdrawalsRecordComponent implements OnInit {
|
||||
@ViewChild('st', { static: true })
|
||||
st!: STComponent;
|
||||
@ViewChild('sf', { static: false })
|
||||
sf!: SFComponent;
|
||||
@ViewChild('auditModal', { static: false })
|
||||
auditModal!: any;
|
||||
@ViewChild('st', { static: true }) st!: STComponent;
|
||||
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
||||
@ViewChild('auditModal', { static: false }) auditModal!: any;
|
||||
@ViewChild('viewReasonModal', { static: false }) viewReasonModal!: any;
|
||||
columns: STColumn[] = this.initST();
|
||||
searchSchema: SFSchema = this.initSF();
|
||||
|
||||
@ -52,11 +51,47 @@ export class PartnerAccountManagementWithdrawalsRecordComponent implements OnIni
|
||||
};
|
||||
|
||||
stChange(e: STChange): void {
|
||||
switch (e.type) {
|
||||
case 'checkbox':
|
||||
this.selectedRows = e.checkbox!;
|
||||
this.totalCallNo = this.selectedRows.reduce((total, cv) => total + cv.amount, 0).toFixed(2);
|
||||
break;
|
||||
if (e.type === 'checkbox') {
|
||||
const checkRows = (e.checkbox as STData[]) || [];
|
||||
//判断当前页是否有选中的行
|
||||
if (checkRows.length === 0) {
|
||||
// 当前页没有存在已勾选的行,移除之前所记录的当前页的行
|
||||
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) {
|
||||
const modal = this.nzModalService.create({
|
||||
nzTitle: '查看原因',
|
||||
nzContent: '运单数据异常,暂时无法开票,请联系客服400-xxxx-xxxx',
|
||||
nzContent: item?.rejectionCause || item?.failCause,
|
||||
nzFooter: [
|
||||
{
|
||||
label: '关闭',
|
||||
@ -240,27 +275,27 @@ export class PartnerAccountManagementWithdrawalsRecordComponent implements OnIni
|
||||
|
||||
private initST(): STColumn[] {
|
||||
return [
|
||||
{ title: '', index: 'key', type: 'checkbox' },
|
||||
{ title: '提现时间', index: 'createTime', width: 180 },
|
||||
{ title: '提现单号', index: 'refundApplyCode', width: 120 },
|
||||
{ title: '网络货运人', index: 'ltdName', width: 140 },
|
||||
{ title: '银行类型', index: 'bankTypeLabel', width: 100 },
|
||||
{ title: '账户类型', index: 'bankTypeLabel', width: 100 },
|
||||
{ title: '账户名称', index: 'bankAccountName', width: 140 },
|
||||
{ title: '虚拟账户', index: 'virtualAccount', width: 100 },
|
||||
{ title: '', index: 'key', type: 'checkbox', className: 'text-center' },
|
||||
{ title: '提现时间', index: 'createTime', width: 180, className: 'text-center' },
|
||||
{ title: '提现单号', index: 'refundApplyCode', width: 180, className: 'text-center' },
|
||||
{ title: '网络货运人', index: 'ltdName', width: 220, className: 'text-center' },
|
||||
{ title: '银行类型', index: 'bankTypeLabel', width: 100, className: 'text-center' },
|
||||
{ title: '账户类型', index: 'bankTypeLabel', width: 100, className: 'text-center' },
|
||||
{ title: '账户名称', index: 'bankAccountName', width: 220, className: 'text-center' },
|
||||
{ title: '虚拟账户', index: 'virtualAccount', width: 180, className: 'text-center' },
|
||||
{
|
||||
title: '提现金额',
|
||||
index: 'amount',
|
||||
width: 120,
|
||||
width: 150,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.amount }) }
|
||||
},
|
||||
{ title: '提现银行账户', render: 'bankCardNumber', width: 180 },
|
||||
{ title: '提现状态', index: 'refundStatusLabel', width: 100 },
|
||||
{ title: '银行流水号', index: 'bankSerialNumber', width: 120 },
|
||||
{ title: '核心交易流水', index: 'coreSerNo', width: 120 },
|
||||
{ title: '失败原因', index: 'rejectionCause', width: 150, format: item => item.failCause || item.rejectionCause },
|
||||
{ title: '提现银行账户', render: 'bankCardNumber', width: 200, className: 'text-center' },
|
||||
{ title: '提现状态', index: 'refundStatusLabel', width: 100, className: 'text-center' },
|
||||
{ title: '银行流水号', index: 'bankSerialNumber', width: 160, className: 'text-center' },
|
||||
{ title: '核心交易流水', index: 'coreSerNo', width: 180, className: 'text-center' },
|
||||
{ title: '失败原因', index: 'rejectionCause', width: 200, format: item => item.failCause, className: 'text-center' },
|
||||
{
|
||||
title: '操作',
|
||||
fixed: 'right',
|
||||
@ -278,6 +313,11 @@ export class PartnerAccountManagementWithdrawalsRecordComponent implements OnIni
|
||||
ltdId: item.ltdId
|
||||
})
|
||||
},
|
||||
{
|
||||
text: '查看原因',
|
||||
iif: item => item.refundStatus === '4',
|
||||
click: item => this.showReason(item)
|
||||
},
|
||||
{
|
||||
text: '审核',
|
||||
iif: item => item.refundStatus === '1',
|
||||
|
||||
@ -15,7 +15,6 @@
|
||||
<!-- 数据列表 -->
|
||||
<st
|
||||
#st
|
||||
[bordered]="true"
|
||||
[data]="data"
|
||||
[columns]="columns"
|
||||
[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
|
||||
[bordered]="true"
|
||||
[data]="data"
|
||||
[columns]="columns"
|
||||
[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 { PartnerPartnerOrderDetailComponent } from './business-statistics/components/partner-order-detail/partner-order-detail.component';
|
||||
import { PartnerAccountManagementListComponent } from './account-management/components/list/list.component';
|
||||
import { ParterClaimAuditListComponent } from './claim-audit/components/list/list.component';
|
||||
import { ParterClaimAuditListChannelDetailComponent } from './claim-audit/components/channel-detail/channel-detail.component';
|
||||
import { ParterClaimAuditListPartnerDetailComponent } from './claim-audit/components/partner-detail/partner-detail.component';
|
||||
import { ParterRebateManageMentRecordComponent } from './rebate-management/components/rebate-record/rebate-record.component';
|
||||
import { PartnerAccountManagementAccountDetailComponent } from './account-management/components/account-detail/account-detail.component';
|
||||
import { PartnerAccountManagementRecordedDetailComponent } from './account-management/components/recorded-detail/recorded-detail.component';
|
||||
@ -29,6 +32,7 @@ import { PartnerAccountManagementWithdrawalsRecordComponent } from './account-ma
|
||||
import { PartnerAccountManagementWithdrawalsDetailComponent } from './account-management/components/withdrawals-record/withdrawals-detail/withdrawals-detail.component';
|
||||
import { PartnerListComponent } from './partner-list/components/index/partner-list.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 = [
|
||||
{
|
||||
@ -63,7 +67,8 @@ const routes: Routes = [
|
||||
path: 'rebate',
|
||||
children: [
|
||||
{ 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: '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({
|
||||
|
||||
@ -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 { PartnerPartnerOrderDetailComponent } from './business-statistics/components/partner-order-detail/partner-order-detail.component';
|
||||
import { PartnerAccountManagementListComponent } from './account-management/components/list/list.component';
|
||||
import { ParterClaimAuditListComponent } from './claim-audit/components/list/list.component';
|
||||
import { ParterClaimAuditListChannelDetailComponent } from './claim-audit/components/channel-detail/channel-detail.component';
|
||||
import { ParterClaimAuditListPartnerDetailComponent } from './claim-audit/components/partner-detail/partner-detail.component';
|
||||
import { ParterClaimAuditListChannelApproveComponent } from './claim-audit/components/channel-approve/channel-approve.component';
|
||||
import { ParterClaimAuditListPartnerApproveComponent } from './claim-audit/components/partner-approve/partner-approve.component';
|
||||
import { ParterClaimAuditListPartnerRejectComponent } from './claim-audit/components/partner-reject/partner-reject.component';
|
||||
import { ParterClaimAuditListChannelRejectComponent } from './claim-audit/components/channel-reject/channel-reject.component';
|
||||
import { PartnerAccountManagementVirtualAccountDetailComponent } from './account-management/components/virtual-account-detail/virtual-account-detail.component';
|
||||
import { ParterRebateManageMentRecordComponent } from './rebate-management/components/rebate-record/rebate-record.component';
|
||||
|
||||
import { PartnerAccountManagementAccountDetailComponent } from './account-management/components/account-detail/account-detail.component';
|
||||
import { PartnerAccountManagementRecordedDetailComponent } from './account-management/components/recorded-detail/recorded-detail.component';
|
||||
import { PartnerAccountManagementWithdrawalsRecordComponent } from './account-management/components/withdrawals-record/withdrawals-record.component';
|
||||
@ -36,6 +43,9 @@ import { PartnerDetailComponent } from './partner-list/components/partner-detail
|
||||
import { PartnerListComponent } from './partner-list/components/index/partner-list.component';
|
||||
import { PartnerAuditModalComponent } from './partner-list/components/partner-audit-modal/partner-audit-modal.component';
|
||||
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[] = [
|
||||
PartnerBusinessStatisticsIndexComponent,
|
||||
@ -54,13 +64,22 @@ const COMPONENTS: any[] = [
|
||||
PartnerPartnerCustomOrderDetailComponent,
|
||||
PartnerPartnerOrderDetailComponent,
|
||||
PartnerAccountManagementListComponent,
|
||||
ParterClaimAuditListComponent,
|
||||
ParterClaimAuditListChannelDetailComponent,
|
||||
ParterClaimAuditListPartnerDetailComponent,
|
||||
ParterClaimAuditListPartnerApproveComponent,
|
||||
ParterClaimAuditListPartnerRejectComponent,
|
||||
ParterClaimAuditListChannelApproveComponent,
|
||||
ParterClaimAuditListChannelRejectComponent,
|
||||
PartnerAccountManagementVirtualAccountDetailComponent,
|
||||
PartnerAccountManagementAccountDetailComponent,
|
||||
PartnerAccountManagementRecordedDetailComponent,
|
||||
PartnerAccountManagementWithdrawalsRecordComponent,
|
||||
PartnerAccountManagementWithdrawalsDetailComponent,
|
||||
PartnerListComponent,
|
||||
PartnerDetailComponent
|
||||
PartnerDetailComponent,
|
||||
ParterRebateManageMenAbnormalFeedbackComponent,
|
||||
ParterRebateManageMentSettingComponent
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-02-24 20:09:49
|
||||
* @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
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -41,5 +41,8 @@
|
||||
[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>
|
||||
|
||||
@ -7,6 +7,7 @@ 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-record',
|
||||
@ -27,9 +28,8 @@ export class ParterRebateManageMentRecordComponent implements OnInit {
|
||||
public router: Router,
|
||||
public ar: ActivatedRoute,
|
||||
public service: RebateManagementService,
|
||||
private modalService: NzModalService,
|
||||
private modal: NzModalService,
|
||||
public shipperservice: ShipperBaseService,
|
||||
private modal: ModalHelper
|
||||
) {}
|
||||
/**
|
||||
* 查询字段个数
|
||||
@ -114,7 +114,7 @@ export class ParterRebateManageMentRecordComponent implements OnInit {
|
||||
},
|
||||
{
|
||||
title: '异常反馈',
|
||||
index: 'name1'
|
||||
render: 'name44'
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
@ -131,15 +131,36 @@ export class ParterRebateManageMentRecordComponent implements OnInit {
|
||||
];
|
||||
}
|
||||
/**
|
||||
*查看详情
|
||||
*查看明细
|
||||
*/
|
||||
viewEvaluate(item: any) {
|
||||
// this.modalService
|
||||
this.modal.createStatic(ParterRebateManageMenRecordDetailComponent, {i:item}).subscribe((res: boolean)=> {
|
||||
if(res) {
|
||||
|
||||
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) {
|
||||
}
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 重置表单
|
||||
|
||||
@ -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
|
||||
* @Date : 2022-02-24 20:09:49
|
||||
* @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
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -23,7 +23,7 @@
|
||||
<st
|
||||
#st
|
||||
[bordered]="true"
|
||||
[data]="data"
|
||||
[data]="service.$api_get_listCompliancePage"
|
||||
[columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
@ -32,3 +32,7 @@
|
||||
[loading]="service.http.loading"
|
||||
>
|
||||
</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 { ActivatedRoute, Router } from '@angular/router';
|
||||
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 { NzModalService } from 'ng-zorro-antd/modal';
|
||||
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-record-detail',
|
||||
@ -20,6 +21,7 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
|
||||
@ViewChild('sf', { static: false })
|
||||
sf!: SFComponent;
|
||||
spuStatus = '1';
|
||||
size: NzButtonSize = 'large';
|
||||
_$expand = false;
|
||||
data = [{ name1: 1111 }];
|
||||
constructor(
|
||||
@ -28,6 +30,7 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
|
||||
public service: RebateManagementService,
|
||||
private modalService: NzModalService,
|
||||
public shipperservice: ShipperBaseService,
|
||||
public modalRef: NzModalRef,
|
||||
) {}
|
||||
/**
|
||||
* 查询字段个数
|
||||
@ -50,10 +53,6 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
|
||||
delete params._$expand;
|
||||
return {
|
||||
...params,
|
||||
deadlineTime: {
|
||||
start: this.sf?.value?.deadlineTime?.[0] || '',
|
||||
end: this.sf?.value?.deadlineTime?.[1] || '',
|
||||
},
|
||||
};
|
||||
}
|
||||
ngOnInit() {
|
||||
@ -64,54 +63,33 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
|
||||
initSF() {
|
||||
this.schema = {
|
||||
properties: {
|
||||
_$expand: { type: 'boolean', ui: { hidden: true } },
|
||||
name: {
|
||||
type: 'string',
|
||||
title: '订单号'
|
||||
},
|
||||
phone: {
|
||||
type: 'string',
|
||||
title: '付款单号'
|
||||
},
|
||||
phone2: {
|
||||
type: 'string',
|
||||
title: '下单客户'
|
||||
},
|
||||
enterpriseInfoId: {
|
||||
type: 'string',
|
||||
title: '网络货运人',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
},
|
||||
allowClear: true,
|
||||
asyncData: () => this.shipperservice.getNetworkFreightForwarder()
|
||||
asyncData: () => this.shipperservice.getNetworkFreightForwarder(),
|
||||
change: (value: any) => {
|
||||
console.log(value)
|
||||
this.st.reload()
|
||||
}
|
||||
}
|
||||
},
|
||||
phone3: {
|
||||
paymentStatus: {
|
||||
title: '银行类型',
|
||||
type: 'string',
|
||||
title: '合伙人名称',
|
||||
ui: {
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
},
|
||||
}
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'overall:payment:status' },
|
||||
containsAllLabel: true,
|
||||
change: (value: any) => {
|
||||
console.log(value)
|
||||
this.st.reload()
|
||||
}
|
||||
} as SFSelectWidgetSchema
|
||||
},
|
||||
deadlineTime: {
|
||||
title: '时间范围',
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'date',
|
||||
mode: 'range',
|
||||
format: 'yyyy-MM-dd',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
},
|
||||
allowClear: true
|
||||
} as SFDateWidgetSchema
|
||||
}
|
||||
}
|
||||
};
|
||||
this.ui = {
|
||||
@ -126,7 +104,7 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
|
||||
this.columns = [
|
||||
{
|
||||
title: '订单号',
|
||||
index: 'name1'
|
||||
index: 'billCode'
|
||||
},
|
||||
{
|
||||
title: '订单金额(元)',
|
||||
@ -186,4 +164,8 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
|
||||
this.sf.reset();
|
||||
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 { BaseService } from '@shared';
|
||||
|
||||
@ -5,7 +15,8 @@ import { BaseService } from '@shared';
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class RebateManagementService extends BaseService {
|
||||
|
||||
// 查询规则抽查列表
|
||||
public $api_get_listCompliancePage = '/api/sdc/billRiskOperate/listRiskPage';
|
||||
constructor(public injector: 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,
|
||||
"children": [{
|
||||
"text": "返佣配置",
|
||||
"link": "/partner/rebate/"
|
||||
"link": "/partner/rebate/setting"
|
||||
},
|
||||
{
|
||||
"text": "返佣明细",
|
||||
@ -556,8 +556,7 @@
|
||||
},
|
||||
{
|
||||
"text": "提现记录",
|
||||
"link": "/partner/account-management/withdraw-record",
|
||||
"hide": true
|
||||
"link": "/partner/account-management/withdraw-record"
|
||||
},
|
||||
{
|
||||
"text": "提现详情",
|
||||
@ -565,6 +564,21 @@
|
||||
"hide": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"text": "客户认领审核",
|
||||
"link": "/partner/claim-audit/list",
|
||||
"children": [{
|
||||
"text": "合伙人客户认领详情",
|
||||
"link": "/partner/claim-audit/partner-detail",
|
||||
"hide": true
|
||||
},
|
||||
{
|
||||
"text": "渠道销售客户认领详情",
|
||||
"link": "/partner/claim-audit/channel-detail",
|
||||
"hide": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user