Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop
This commit is contained in:
@ -11,13 +11,13 @@
|
||||
<b class="text-md ">{{headerTotalInfo?.ltdName}}</b>
|
||||
</sv>
|
||||
<sv label="可用余额">
|
||||
{{headerTotalInfo?.allAmount |currency}}
|
||||
<span class="text-error-dark font-weight-bold">{{headerTotalInfo?.allAmount |currency}}</span>
|
||||
</sv>
|
||||
<sv label="收入金额">
|
||||
{{headerTotalInfo?.incomeAmount |currency}}
|
||||
<span class="text-error-dark font-weight-bold"> {{headerTotalInfo?.incomeAmount |currency}}</span>
|
||||
</sv>
|
||||
<sv label="支出金额">
|
||||
{{headerTotalInfo?.payAmount |currency}}
|
||||
<span class="text-error-dark font-weight-bold">{{headerTotalInfo?.payAmount |currency}}</span>
|
||||
</sv>
|
||||
</sv-container>
|
||||
<ng-template #labelTpl>
|
||||
|
||||
@ -59,7 +59,7 @@ export class PartnerAccountManagementListComponent implements OnInit {
|
||||
*/
|
||||
initST() {
|
||||
this.columns = [
|
||||
{ title: '合伙人名称', index: 'userName', className: 'text-center', width: 250 },
|
||||
{ title: '合伙人名称', index: 'name', className: 'text-center', width: 250 },
|
||||
{ title: '手机号', index: 'phone', className: 'text-center', width: 200 },
|
||||
{
|
||||
title: '账户总额(元)', index: 'allBalance', className: 'text-right', sort: true, width: 150, type: 'currency',
|
||||
|
||||
@ -8,23 +8,27 @@
|
||||
<nz-card>
|
||||
<sv-container layout="vertical" [noColon]="true" col="5">
|
||||
<sv [label]="labelTpl">
|
||||
<b class="text-md ">{{summaryObj?.company}}</b>
|
||||
<b class="text-md ">{{summaryObj?.taxno}}</b>
|
||||
</sv>
|
||||
<sv label="返佣总额">
|
||||
{{summaryObj?.totalRebate |currency}}
|
||||
<span class="text-error-dark font-weight-bold">{{(summaryObj?.totalRebate?summaryObj?.totalRebate: 0 )|currency :'
|
||||
'}}</span>
|
||||
</sv>
|
||||
<sv label="已入账金额">
|
||||
{{summaryObj?.totalRebate |currency}}
|
||||
<span class="text-error-dark font-weight-bold">{{(summaryObj?.recordedAmount?summaryObj?.recordedAmount:0
|
||||
)|currency:' '}}</span>
|
||||
</sv>
|
||||
<sv label="代缴个税">
|
||||
{{summaryObj?.taxPersonalSum |currency}}
|
||||
<span class="text-error-dark font-weight-bold">{{(summaryObj?.taxPersonalSum?summaryObj?.taxPersonalSum:0
|
||||
)|currency:' '}}</span>
|
||||
</sv>
|
||||
<sv label="待入账金额">
|
||||
{{summaryObj?.waitRecordedAmount |currency}}
|
||||
<span class="text-error-dark font-weight-bold">{{(summaryObj?.waitRecordedAmount?summaryObj?.waitRecordedAmount:0)
|
||||
|currency:' '}}</span>
|
||||
</sv>
|
||||
</sv-container>
|
||||
<ng-template #labelTpl>
|
||||
<b class="text-md" style="color: black;">{{summaryObj?.name}}</b>
|
||||
<b class="text-md" style="color: black;">{{summaryObj?.ltdName}}</b>
|
||||
</ng-template>
|
||||
</nz-card>
|
||||
<nz-card>
|
||||
@ -43,11 +47,11 @@
|
||||
</ng-template>
|
||||
</st>
|
||||
<div class="total-footer text-md" *ngIf="st?.list?.length !== 0 ">
|
||||
合计 <label class="text-red-dark">{{ summaryObj?.total }}</label> 项,收入 <label
|
||||
合计 <label class="text-red-dark">{{ footerSummary?.total }}</label> 项,收入 <label
|
||||
class="text-red-dark font-weight-bold">{{
|
||||
summaryObj?.income | currency
|
||||
footerSummary?.income | currency
|
||||
}}</label>,支出 <label class="text-red-dark font-weight-bold">{{
|
||||
summaryObj?.spending | currency }}</label>
|
||||
footerSummary?.spending | currency }}</label>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
@ -55,8 +59,8 @@
|
||||
<nz-modal [(nzVisible)]="showBillDetail" nzTitle="账户明细" [nzFooter]="null" (nzOnCancel)="handleCancel()" nzWidth="700px">
|
||||
<div *nzModalContent>
|
||||
<div class="mb-sm">
|
||||
<span class="mr-xxl text-md font-weight-bold"><label>网络货运人:</label>{{detailRecord?.ltdName}}</span>
|
||||
<span class="text-md font-weight-bold"><label>返佣总额(元):</label>{{detailRecord?.totalRebate |currency: ' '}}</span>
|
||||
<span class="mr-xxl text-sm font-weight-bold"><label>网络货运人:</label>{{detailRecord?.ltdName}}</span>
|
||||
<span class="text-sm font-weight-bold"><label>返佣总额(元):</label>{{detailRecord?.totalRebate |currency: ' '}}</span>
|
||||
</div>
|
||||
<st #st [data]="billDetailList " [columns]="billDetailColumns" [res]="{ reName: { list: 'data' } }"
|
||||
[req]="{ method: 'POST', allInBody: true, params:billDetailReqParams}" [page]="{show:false}">
|
||||
|
||||
@ -19,6 +19,12 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit {
|
||||
taxno: ''
|
||||
};
|
||||
|
||||
footerSummary = {
|
||||
total: 0,
|
||||
income: 0,
|
||||
spending: 0
|
||||
}
|
||||
|
||||
detailRecord: any = {};
|
||||
|
||||
url = `/user`;
|
||||
@ -56,8 +62,7 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit {
|
||||
initSF() {
|
||||
this.schema = {
|
||||
properties: {
|
||||
|
||||
abnormalCause: {
|
||||
ltdName: {
|
||||
title: '网络货运人',
|
||||
type: 'string',
|
||||
ui: {
|
||||
@ -78,7 +83,7 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit {
|
||||
{ title: '网络货运人', index: 'ltdName', className: 'text-center', width: 200 },
|
||||
{ title: '银行类型', render: 'bankTypeLabel', className: 'text-center', width: 150 },
|
||||
{ title: '虚拟账户', render: 'fictitiousAccount', className: 'text-center', width: 200 },
|
||||
{ title: '返佣总额(元)', index: 'totalRebate', className: 'text-center', width: 120, type: 'currency' },
|
||||
{ title: '返佣总额(元)', index: 'totalRebate', className: 'text-center', width: 180, type: 'currency' },
|
||||
{ title: '已入账金额(元)', index: 'recordedAmount', className: 'text-center', width: 180, type: 'currency' },
|
||||
{ title: '代缴个税(元)', index: 'taxPersonalSum', className: 'text-center', width: 180, type: 'currency' },
|
||||
{ title: '待入账金额(元)', index: 'waitRecordedAmount', className: 'text-right', width: 180, type: 'currency' },
|
||||
@ -146,7 +151,7 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit {
|
||||
* @param record 当前行
|
||||
*/
|
||||
viewBookedRecord(record: any) {
|
||||
window.open(location.origin + `#/partner/recorded/record?ltdId=${record?.ltdId}&userId=${record?.userId}&userIdLabel=${record?.banktypeLabel}`);
|
||||
window.open(location.origin + `#/partner/recorded/record?ltdId=${record?.ltdId}`);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -157,6 +162,7 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit {
|
||||
this.billDetailColumns = [];
|
||||
this.showBillDetail = true;
|
||||
this.initBillDetailST();
|
||||
this.detailRecord = record;
|
||||
this.getBillDetail(record?.ltdId);
|
||||
}
|
||||
|
||||
@ -170,6 +176,7 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit {
|
||||
|
||||
handleCancel() {
|
||||
this.showBillDetail = false;
|
||||
this.detailRecord = {};
|
||||
|
||||
}
|
||||
goBack() {
|
||||
|
||||
@ -2,7 +2,6 @@ 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',
|
||||
templateUrl: './withdrawals-detail.component.html',
|
||||
@ -18,7 +17,7 @@ export class PartnerAccountManagementWithdralDetailComponent implements OnInit {
|
||||
this.loadRefundDetail(id);
|
||||
}
|
||||
|
||||
ngOnInit(): void { }
|
||||
ngOnInit(): void {}
|
||||
|
||||
loadRefundDetail(id: string) {
|
||||
this.service.request(this.service.$api_get_refund_detail, { id }).subscribe(res => {
|
||||
@ -77,7 +76,8 @@ export class PartnerAccountManagementWithdralDetailComponent implements OnInit {
|
||||
rmYll: this.formData.userId,
|
||||
snglFlgCd: this.formData.coreSerNo,
|
||||
bussType: '06',
|
||||
ltdId: this.formData.ltdId
|
||||
ltdId: this.formData.ltdId,
|
||||
accountType: this.formData.accountType
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -311,7 +311,8 @@ export class PartnerAccountManagementWithdrawalsRecordComponent implements OnIni
|
||||
rmYll: item.userId,
|
||||
snglFlgCd: item.coreSerNo,
|
||||
bussType: '06',
|
||||
ltdId: item.ltdId
|
||||
ltdId: item.ltdId,
|
||||
accountType: item.accountType
|
||||
})
|
||||
},
|
||||
{
|
||||
|
||||
@ -1,4 +1,10 @@
|
||||
<page-header-wrapper [title]="'新增企业合伙人'"></page-header-wrapper>
|
||||
<page-header-wrapper [logo]="logo" [title]="'新增企业合伙人'">
|
||||
<ng-template #logo>
|
||||
<button nz-button nz-tooltip nzTooltipTitle="返回上一页" (click)="goBack()">
|
||||
<i nz-icon nzType="left" nzTheme="outline"></i>
|
||||
</button>
|
||||
</ng-template>
|
||||
</page-header-wrapper>
|
||||
<nz-card>
|
||||
<sf #sf [ui]="ui" [schema]="schema" [button]="'none'">
|
||||
<!-- 企业基本信 -->
|
||||
|
||||
@ -11,7 +11,7 @@ import {
|
||||
} from '@delon/form';
|
||||
import { NzTreeNode } from 'ng-zorro-antd/tree';
|
||||
import { NzUploadFile } from 'ng-zorro-antd/upload';
|
||||
import { of } from 'rxjs';
|
||||
import { of, Subscription } from 'rxjs';
|
||||
import { map } from 'rxjs/operators';
|
||||
|
||||
import { PartnerListService } from '../../services/partner-list.service';
|
||||
@ -64,6 +64,9 @@ export class AddEtpPartnerComponent {
|
||||
}
|
||||
};
|
||||
|
||||
getIdentityInfoSub = new Subscription();
|
||||
loadingIdentityInfoSub = false;
|
||||
|
||||
constructor(public service: PartnerListService) {}
|
||||
|
||||
submitForm() {
|
||||
@ -426,7 +429,28 @@ export class AddEtpPartnerComponent {
|
||||
ui: {
|
||||
grid: { xxl: 13, xl: 18, lg: 24, md: 24 },
|
||||
placeholder: '请输入企业管理员手机号',
|
||||
errors: { required: '请输入企业管理员手机号', format: '手机号格式错误' }
|
||||
errors: { required: '请输入企业管理员手机号', format: '手机号格式错误' },
|
||||
change: (mobile: any) => {
|
||||
// 根据手机号获取实名信息
|
||||
if (mobile?.length === 11) {
|
||||
if (this.loadingIdentityInfoSub) {
|
||||
this.getIdentityInfoSub.unsubscribe();
|
||||
}
|
||||
this.loadingIdentityInfoSub = true;
|
||||
this.getIdentityInfoSub = this.service.request(this.service.$api_get_identityInfo_by_mobile, { mobile }).subscribe(
|
||||
res => {
|
||||
if (res) {
|
||||
this.setInfo(res);
|
||||
this.sf.setValue('/adminUserInfo/id', res.id);
|
||||
this.sf.setValue('/adminUserInfo/userId', res.userId);
|
||||
}
|
||||
this.loadingIdentityInfoSub = false;
|
||||
},
|
||||
_ => {},
|
||||
() => (this.loadingIdentityInfoSub = false)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
// 企业管理员信息
|
||||
@ -441,6 +465,8 @@ export class AddEtpPartnerComponent {
|
||||
},
|
||||
default: true
|
||||
},
|
||||
id: { title: '', type: 'string', ui: { hidden: true } },
|
||||
userId: { title: '', type: 'string', ui: { hidden: true } },
|
||||
certificatePhotoFront: { title: '', type: 'string', ui: { hidden: true } },
|
||||
certificatePhotoBack: { title: '', type: 'string', ui: { hidden: true } },
|
||||
certificatePhotoFrontWatermark: {
|
||||
@ -589,4 +615,52 @@ export class AddEtpPartnerComponent {
|
||||
]
|
||||
};
|
||||
}
|
||||
|
||||
private setInfo(info: any) {
|
||||
if (info.name) {
|
||||
this.sf.setValue('/adminUserInfo/name', info.name);
|
||||
}
|
||||
if (info.certificatePhotoFront) {
|
||||
this.sf.setValue('/adminUserInfo/certificatePhotoFront', info.certificatePhotoFront);
|
||||
}
|
||||
if (info.certificatePhotoFrontWatermark) {
|
||||
console.log(this.sf.getProperty('/adminUserInfo/certificatePhotoFrontWatermark'));
|
||||
|
||||
this.sf.setValue('/adminUserInfo/certificatePhotoFrontWatermark', [
|
||||
{
|
||||
uid: -1,
|
||||
name: '文件',
|
||||
status: 'done',
|
||||
url: info.certificatePhotoFrontWatermark,
|
||||
response: info.certificatePhotoFrontWatermark
|
||||
}
|
||||
]);
|
||||
}
|
||||
if (info.certificatePhotoBack) {
|
||||
this.sf.setValue('/adminUserInfo/certificatePhotoBack', info.certificatePhotoBack);
|
||||
}
|
||||
if (info.certificatePhotoBackWatermark) {
|
||||
this.sf.setValue('/adminUserInfo/certificatePhotoBackWatermark', [
|
||||
{
|
||||
uid: -1,
|
||||
name: '文件',
|
||||
status: 'done',
|
||||
url: info.certificatePhotoBackWatermark,
|
||||
response: info.certificatePhotoBackWatermark
|
||||
}
|
||||
]);
|
||||
}
|
||||
if (info.certificateNumber) {
|
||||
this.sf.setValue('/adminUserInfo/certificateNumber', info.certificateNumber);
|
||||
}
|
||||
if (info.validStartTime) {
|
||||
this.sf.setValue('/adminUserInfo/validStartTime', info.validStartTime);
|
||||
}
|
||||
if (info.validEndTime) {
|
||||
this.sf.setValue('/adminUserInfo/validEndTime', info.validEndTime);
|
||||
this.sf.setValue('/adminUserInfo/_isLoingDate', false);
|
||||
} else {
|
||||
this.sf.setValue('/adminUserInfo/_isLoingDate', true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,10 @@
|
||||
<page-header-wrapper [title]="'新增个人合伙人'"></page-header-wrapper>
|
||||
<page-header-wrapper [logo]="logo" [title]="'新增个人合伙人'">
|
||||
<ng-template #logo>
|
||||
<button nz-button nz-tooltip nzTooltipTitle="返回上一页" (click)="goBack()">
|
||||
<i nz-icon nzType="left" nzTheme="outline"></i>
|
||||
</button>
|
||||
</ng-template>
|
||||
</page-header-wrapper>
|
||||
<nz-card>
|
||||
<sf #sf [ui]="ui" [schema]="schema" [button]="'none'">
|
||||
<!-- 合伙人信息 -->
|
||||
@ -36,7 +42,8 @@
|
||||
</sf>
|
||||
|
||||
<div style="display: flex; justify-content: center">
|
||||
<button nz-button type="button" nzType="primary" (click)="submitForm()" [nzLoading]="service.http.loading">确认新增</button>
|
||||
<button nz-button type="button" nzType="primary" (click)="submitForm()"
|
||||
[nzLoading]="service.http.loading">确认新增</button>
|
||||
<button nz-button (click)="goBack()">返回</button>
|
||||
</div>
|
||||
</nz-card>
|
||||
</nz-card>
|
||||
@ -12,7 +12,7 @@ import {
|
||||
} from '@delon/form';
|
||||
import { NzTreeNode } from 'ng-zorro-antd/tree';
|
||||
import { NzUploadFile } from 'ng-zorro-antd/upload';
|
||||
import { of } from 'rxjs';
|
||||
import { of, Subscription } from 'rxjs';
|
||||
import { map } from 'rxjs/operators';
|
||||
|
||||
import { PartnerListService } from '../../services/partner-list.service';
|
||||
@ -65,6 +65,9 @@ export class AddPersonalPartnerComponent {
|
||||
}
|
||||
};
|
||||
|
||||
getIdentityInfoSub = new Subscription();
|
||||
loadingIdentityInfoSub = false;
|
||||
|
||||
constructor(private router: Router, public service: PartnerListService) {}
|
||||
|
||||
submitForm() {
|
||||
@ -156,7 +159,28 @@ export class AddPersonalPartnerComponent {
|
||||
ui: {
|
||||
grid: { xxl: 13, xl: 18, lg: 24, md: 24 },
|
||||
placeholder: '请输入手机号',
|
||||
errors: { required: '请输入手机号', format: '手机号格式错误' }
|
||||
errors: { required: '请输入手机号', format: '手机号格式错误' },
|
||||
change: (mobile: any) => {
|
||||
// 根据手机号获取实名信息
|
||||
if (mobile?.length === 11) {
|
||||
if (this.loadingIdentityInfoSub) {
|
||||
this.getIdentityInfoSub.unsubscribe();
|
||||
}
|
||||
this.loadingIdentityInfoSub = true;
|
||||
this.getIdentityInfoSub = this.service.request(this.service.$api_get_identityInfo_by_mobile, { mobile }).subscribe(
|
||||
res => {
|
||||
if (res) {
|
||||
this.setInfo(res);
|
||||
this.sf.setValue('/adminUserInfo/id', res.id);
|
||||
this.sf.setValue('/adminUserInfo/userId', res.userId);
|
||||
}
|
||||
this.loadingIdentityInfoSub = false;
|
||||
},
|
||||
_ => {},
|
||||
() => (this.loadingIdentityInfoSub = false)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
// 合伙人信息
|
||||
@ -172,6 +196,8 @@ export class AddPersonalPartnerComponent {
|
||||
default: true
|
||||
},
|
||||
certificatePhotoFront: { title: '', type: 'string', ui: { hidden: true } },
|
||||
id: { title: '', type: 'string', ui: { hidden: true } },
|
||||
userId: { title: '', type: 'string', ui: { hidden: true } },
|
||||
certificatePhotoBack: { title: '', type: 'string', ui: { hidden: true } },
|
||||
certificateType: { title: '', type: 'string', ui: { hidden: true }, default: 0 },
|
||||
certificatePhotoFrontWatermark: {
|
||||
@ -311,4 +337,52 @@ export class AddPersonalPartnerComponent {
|
||||
required: ['cityCodesList', 'invitationCode']
|
||||
};
|
||||
}
|
||||
|
||||
private setInfo(info: any) {
|
||||
if (info.name) {
|
||||
this.sf.setValue('/adminUserInfo/name', info.name);
|
||||
}
|
||||
if (info.certificatePhotoFront) {
|
||||
this.sf.setValue('/adminUserInfo/certificatePhotoFront', info.certificatePhotoFront);
|
||||
}
|
||||
if (info.certificatePhotoFrontWatermark) {
|
||||
console.log(this.sf.getProperty('/adminUserInfo/certificatePhotoFrontWatermark'));
|
||||
|
||||
this.sf.setValue('/adminUserInfo/certificatePhotoFrontWatermark', [
|
||||
{
|
||||
uid: -1,
|
||||
name: '文件',
|
||||
status: 'done',
|
||||
url: info.certificatePhotoFrontWatermark,
|
||||
response: info.certificatePhotoFrontWatermark
|
||||
}
|
||||
]);
|
||||
}
|
||||
if (info.certificatePhotoBack) {
|
||||
this.sf.setValue('/adminUserInfo/certificatePhotoBack', info.certificatePhotoBack);
|
||||
}
|
||||
if (info.certificatePhotoBackWatermark) {
|
||||
this.sf.setValue('/adminUserInfo/certificatePhotoBackWatermark', [
|
||||
{
|
||||
uid: -1,
|
||||
name: '文件',
|
||||
status: 'done',
|
||||
url: info.certificatePhotoBackWatermark,
|
||||
response: info.certificatePhotoBackWatermark
|
||||
}
|
||||
]);
|
||||
}
|
||||
if (info.certificateNumber) {
|
||||
this.sf.setValue('/adminUserInfo/certificateNumber', info.certificateNumber);
|
||||
}
|
||||
if (info.validStartTime) {
|
||||
this.sf.setValue('/adminUserInfo/validStartTime', info.validStartTime);
|
||||
}
|
||||
if (info.validEndTime) {
|
||||
this.sf.setValue('/adminUserInfo/validEndTime', info.validEndTime);
|
||||
this.sf.setValue('/adminUserInfo/_isLoingDate', false);
|
||||
} else {
|
||||
this.sf.setValue('/adminUserInfo/_isLoingDate', true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
<ng-template #editTemplate>
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col nzSpan="24" se-container [labelWidth]="120">
|
||||
<se [col]="1" label="合伙人名称"> {{selectItem?.enterpriseName}} </se>
|
||||
<se [col]="1" label="合伙人名称"> {{selectItem?.enterpriseName || selectItem?.contactName}} </se>
|
||||
<se [col]="1" label="返佣模板" required>
|
||||
<nz-select [(ngModel)]="templateId" style="width: 100%">
|
||||
<nz-option [nzValue]="item.value" [nzLabel]="item.label" *ngFor="let item of customers"></nz-option>
|
||||
@ -47,28 +47,29 @@
|
||||
<ng-template #editCannel>
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col nzSpan="24" se-container [labelWidth]="140" [col]="1">
|
||||
<se label="合伙人名称"> 深圳某某有限公司 </se>
|
||||
<se label="当前渠道销售"> 张三/13999999999 </se>
|
||||
<se label="合伙人名称"> {{selectItem?.enterpriseName || selectItem?.contactName}} </se>
|
||||
<se label="当前渠道销售"> {{selectItem?.channelId}} </se>
|
||||
<se label="渠道销售修改为" required>
|
||||
<nz-select ngModel="lucy" style="width: 100%">
|
||||
<nz-select [(ngModel)]="cannelItem.channelId" style="width: 100%">
|
||||
<nz-option [nzValue]="item.value" [nzLabel]="item.label" *ngFor="let item of cannels"></nz-option>
|
||||
</nz-select>
|
||||
</se>
|
||||
<se label="备注" required>
|
||||
<textarea rows="3" nz-input></textarea>
|
||||
<textarea rows="3" nz-input [(ngModel)]="cannelItem.remark"></textarea>
|
||||
</se>
|
||||
<se label="一并转移的客户">
|
||||
<p style="margin-top: 8px">已选(0)</p>
|
||||
<st #rest [data]="service.$api_get_enterprice_rel_list" [columns]="[
|
||||
{ title: '', index: 'key', type: 'checkbox' },
|
||||
{ title: '客户名称', index: 'enterpriceName' }
|
||||
]" [req]="{ process: beforeReq }" [loading]="service.http.loading" [page]="{show:false}">
|
||||
]" [req]="{ process: beforeReq,params:{effectiveStatus:2 ,newPartnerId:selectItem.id} }"
|
||||
[loading]="service.http.loading" [page]="{show:false}" (change)="stChange($event)">
|
||||
</st>
|
||||
</se>
|
||||
<se label="生效节点" required>
|
||||
<nz-radio-group>
|
||||
<label nz-radio nzValue="A">修改成功后立即生效</label>
|
||||
<label nz-radio nzValue="B">CRM流程审核通过后生</label>
|
||||
<nz-radio-group [(ngModel)]="cannelItem.effectiveNode">
|
||||
<label nz-radio [nzValue]="1">修改成功后立即生效</label>
|
||||
<label nz-radio [nzValue]="2">CRM流程审核通过后生</label>
|
||||
</nz-radio-group>
|
||||
</se>
|
||||
</div>
|
||||
|
||||
@ -31,6 +31,8 @@ export class PartnerListComponent {
|
||||
editCannel: any;
|
||||
customers: any[] = [];
|
||||
cannels: any[] = [];
|
||||
selectedRows: any[] = [];
|
||||
cannelItem: any = { channelId: null, effectiveNode: 1, enterpriseIdList: [], remark: '' };
|
||||
|
||||
selectItem: any = {};
|
||||
|
||||
@ -49,7 +51,7 @@ export class PartnerListComponent {
|
||||
return requestOptions;
|
||||
};
|
||||
|
||||
loadSelectOptions(){
|
||||
loadSelectOptions() {
|
||||
this.service.getRebateConfig().subscribe(res => {
|
||||
if (res) {
|
||||
this.customers = res;
|
||||
@ -57,7 +59,7 @@ export class PartnerListComponent {
|
||||
});
|
||||
this.service.getChannel().subscribe(res => {
|
||||
if (res) {
|
||||
this.customers = res;
|
||||
this.cannels = res;
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -66,13 +68,14 @@ export class PartnerListComponent {
|
||||
const modal = this.nzModalService.create({
|
||||
nzTitle: '审核',
|
||||
nzContent: PartnerAuditModalComponent,
|
||||
nzComponentParams: { info: { ...item, enterpriseName: item.enterpriseName || item.contactName } },
|
||||
nzComponentParams: { info: { ...item, enterpriseName: item.enterpriseName || item.contactName }, sourcePage: '合伙人审核列表' },
|
||||
nzFooter: null
|
||||
});
|
||||
}
|
||||
|
||||
editTemplateAction(item: any) {
|
||||
this.selectItem = item;
|
||||
this.templateId = item.templateId || null;
|
||||
const modal = this.nzModalService.create({
|
||||
nzTitle: '修改返佣模板',
|
||||
nzContent: this.editTemplate,
|
||||
@ -87,7 +90,7 @@ export class PartnerListComponent {
|
||||
});
|
||||
}
|
||||
|
||||
confirmEditTemplate() {
|
||||
private confirmEditTemplate() {
|
||||
const modal = this.nzModalService.confirm({
|
||||
nzTitle: '确定要修改返佣模板吗?',
|
||||
nzOnOk: () => {
|
||||
@ -107,15 +110,39 @@ export class PartnerListComponent {
|
||||
});
|
||||
}
|
||||
|
||||
stChange(e: STChange): void {
|
||||
switch (e.type) {
|
||||
case 'checkbox':
|
||||
this.selectedRows = e.checkbox!;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
editCannelAction(item: any) {
|
||||
this.selectItem = item;
|
||||
const modal = this.nzModalService.create({
|
||||
nzTitle: '修改渠道销售',
|
||||
nzWidth: 650,
|
||||
nzContent: this.editCannel,
|
||||
nzOnOk: () => {
|
||||
this.confirmEditCannel(item);
|
||||
return false;
|
||||
this.cannelItem = { channelId: null, effectiveNode: 1, enterpriseIdList: [], remark: '' };
|
||||
this.selectedRows = [];
|
||||
// 校验合伙人是否可修改渠道销售 true:可以修改 false:不可以修改
|
||||
this.service.request(this.service.$api_check_partenr_change_channel, { id: item.id }).subscribe(res => {
|
||||
if (res) {
|
||||
this.selectItem = item;
|
||||
const modal = this.nzModalService.create({
|
||||
nzTitle: '修改渠道销售',
|
||||
nzWidth: 650,
|
||||
nzContent: this.editCannel,
|
||||
nzOnOk: () => {
|
||||
if (!this.cannelItem.channelId) {
|
||||
this.service.msgSrv.warning('请选择渠道销售');
|
||||
return false;
|
||||
}
|
||||
if (!this.cannelItem.remark) {
|
||||
this.service.msgSrv.warning('请填写备注');
|
||||
return false;
|
||||
}
|
||||
this.confirmEditCannel(item);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -124,7 +151,18 @@ export class PartnerListComponent {
|
||||
const modal = this.nzModalService.confirm({
|
||||
nzTitle: '确定提交吗?',
|
||||
nzOnOk: () => {
|
||||
this.nzModalService.closeAll();
|
||||
this.cannelItem.enterpriseIdList = this.selectedRows.map(row => row.id);
|
||||
this.service
|
||||
.request(this.service.$api_update_partner_channel_by_id, {
|
||||
...this.cannelItem,
|
||||
id: item.id
|
||||
})
|
||||
.subscribe(res => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('修改成功');
|
||||
this.nzModalService.closeAll();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -321,15 +359,20 @@ export class PartnerListComponent {
|
||||
|
||||
private initST(): STColumn[] {
|
||||
return [
|
||||
{ title: '合伙人名称', index: 'enterpriseName', width: 180, format: item => `${item.enterpriseName || item.contactName}` },
|
||||
{
|
||||
title: '合伙人名称',
|
||||
index: 'enterpriseName',
|
||||
width: 180,
|
||||
format: item => (item.partnerType ? `${item.enterpriseName || item.contactName}` : '')
|
||||
},
|
||||
{ title: '付款编码', index: 'payCode', width: 160 },
|
||||
{ title: '邀请码', index: 'invitationCode', className: 'text-center', width: 130 },
|
||||
{ title: '企业管理员', index: 'contactName', width: 150 },
|
||||
{ title: '企业管理员', index: 'contactName', width: 150, format: item => (item.partnerType ? `${item.contactName}` : '') },
|
||||
{ title: '手机号', index: 'contactMobile', className: 'text-center', width: 150 },
|
||||
{ title: '类型', index: 'partnerType', className: 'text-center', width: 130, type: 'enum', enum: { 1: '企业', 2: '个人' } },
|
||||
{ title: '注册渠道', index: 'source', type: 'enum', enum: { 1: '合伙人注册', 2: '平台添加' }, width: 130 },
|
||||
{ title: '注册时间', index: 'createTime', className: 'text-center', width: 170 },
|
||||
{ title: '渠道销售', index: 'channelId', width: 170 },
|
||||
{ title: '渠道销售', index: 'channelIdLabel', width: 170 },
|
||||
{ title: '返佣模板', index: 'templateName', width: 150 },
|
||||
{
|
||||
title: '认证审核状态',
|
||||
@ -337,7 +380,7 @@ export class PartnerListComponent {
|
||||
width: 150,
|
||||
type: 'badge',
|
||||
badge: {
|
||||
0: { text: '草稿', color: 'default' },
|
||||
'-1': { text: '未提交', color: 'default' },
|
||||
10: { text: '待审核', color: 'processing' },
|
||||
20: { text: '审核通过', color: 'success' },
|
||||
30: { text: '驳回', color: 'error' }
|
||||
@ -385,7 +428,13 @@ export class PartnerListComponent {
|
||||
buttons: [
|
||||
{ type: 'divider' },
|
||||
{
|
||||
text: '详情',
|
||||
text: '审核',
|
||||
iif: item => item.id && item.approvalStatus === 10,
|
||||
click: item => this.auditPartner(item)
|
||||
},
|
||||
{
|
||||
text: '详情<br>',
|
||||
iif: item => item.id,
|
||||
click: item => {
|
||||
if (item.partnerType === 1) {
|
||||
this.router.navigate([`/partner/partner-list/etp-detail/${item.id}`]);
|
||||
@ -394,21 +443,20 @@ export class PartnerListComponent {
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
text: '审核<br>',
|
||||
click: item => this.auditPartner(item)
|
||||
},
|
||||
{
|
||||
text: '修改返佣模板',
|
||||
iif: item => item.id,
|
||||
click: item => this.editTemplateAction(item)
|
||||
},
|
||||
{
|
||||
text: '修改渠道销售',
|
||||
iif: item => item.id,
|
||||
click: item => this.editCannelAction(item)
|
||||
},
|
||||
{
|
||||
text: '重发CRM流程',
|
||||
click: item => this.reSendCRM(item)
|
||||
click: item => item.id && this.reSendCRM(item),
|
||||
iif: item => item.crmStatus === 10
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -14,6 +14,7 @@ export class PartnerAuditModalComponent implements OnInit {
|
||||
@Input()
|
||||
info: any;
|
||||
schema!: SFSchema;
|
||||
sourcePage = '';
|
||||
constructor(private nzModalService: NzModalService, public service: PartnerListService) {}
|
||||
|
||||
ngOnInit(): void {
|
||||
@ -53,13 +54,11 @@ export class PartnerAuditModalComponent implements OnInit {
|
||||
channelId: {
|
||||
title: '渠道销售',
|
||||
type: 'string',
|
||||
enum: [
|
||||
{ value: true, label: '通过' },
|
||||
{ value: false, label: '驳回' }
|
||||
],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
allowClear: true,
|
||||
asyncData: () => this.service.getChannel(),
|
||||
hidden: this.info.isPass === false,
|
||||
visibleIf: {
|
||||
status: value => value
|
||||
@ -115,7 +114,8 @@ export class PartnerAuditModalComponent implements OnInit {
|
||||
.request(this.service.$api_audit_partner, {
|
||||
auditStatusEnum: params.auditStatusEnum,
|
||||
id: params.id,
|
||||
approvalOpinion: params.approvalOpinion
|
||||
approvalOpinion: params.approvalOpinion,
|
||||
sourcePage: this.sourcePage
|
||||
})
|
||||
.subscribe(res => {
|
||||
if (res) {
|
||||
|
||||
@ -40,7 +40,7 @@
|
||||
<button [disabled]="service.http.loading" nz-button nzDanger (click)="save()"> 保存 </button>
|
||||
</ng-container>
|
||||
<ng-template #editButton>
|
||||
<ng-container>
|
||||
<ng-container *ngIf="detailData?.approvalStatus === 10">
|
||||
<button [disabled]="service.http.loading" nz-button nzDanger (click)="auditPartner(true)"> 通过 </button>
|
||||
<button [disabled]="service.http.loading" nz-button nzDanger (click)="auditPartner(false)"> 驳回 </button>
|
||||
</ng-container>
|
||||
@ -87,8 +87,9 @@
|
||||
[nzBorderless]="!isEdit" [placeholder]="isEdit ? '' : '-'" />
|
||||
</sv>
|
||||
<sv label="手机号">
|
||||
<input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.mobile" [readonly]="!isEdit"
|
||||
[nzBorderless]="!isEdit" [placeholder]="isEdit ? '' : '-'" />
|
||||
<!-- <input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.mobile" [readonly]="!isEdit"
|
||||
[nzBorderless]="!isEdit" [placeholder]="isEdit ? '' : '-'" /> -->
|
||||
{{detailData.adminUserInfo.mobile}}
|
||||
</sv>
|
||||
<sv label="身份证号">
|
||||
<input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.certificateNumber" [readonly]="!isEdit"
|
||||
@ -125,7 +126,8 @@
|
||||
[nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit ? 'calendar' : ''" style="width: 100px" class="calendar">
|
||||
</nz-date-picker>
|
||||
-
|
||||
<ng-container *ngIf="!isEdit && !detailData?.adminUserInfo.validEndTime && detailData?.adminUserInfo.validStartTime">
|
||||
<ng-container
|
||||
*ngIf="!isEdit && !detailData?.adminUserInfo.validEndTime && detailData?.adminUserInfo.validStartTime">
|
||||
<label style="padding-left: 11px">长期</label>
|
||||
</ng-container>
|
||||
<nz-date-picker [(ngModel)]="detailData.adminUserInfo.validEndTime" [nzDisabled]="!isEdit" nzPlaceHolder=" "
|
||||
@ -281,7 +283,8 @@
|
||||
<sv-title>修改渠道销售记录</sv-title>
|
||||
<sv label="">
|
||||
<st #st [data]="service.$api_get_personal_channel_list" [columns]="columns.logsColumn"
|
||||
[loading]="service.http.loading" bordered size="small" [page]="{ show: false }" [scroll]="{ x: '1200px' }">
|
||||
[req]="{params:{partnerId:route.snapshot.params.id}}" [loading]="service.http.loading" bordered size="small"
|
||||
[page]="{ show: false }" [scroll]="{ x: '1200px' }">
|
||||
</st>
|
||||
</sv>
|
||||
</sv-container>
|
||||
@ -316,13 +319,15 @@
|
||||
</ng-template>
|
||||
|
||||
<ng-template #logModal>
|
||||
<h2>转移客户数:10</h2>
|
||||
<st #st [data]="service.$mock_url" [columns]="columns.changeColumn" [loading]="service.http.loading" bordered
|
||||
size="small" [page]="{ show: false }" [scroll]="{ x: '750px' }">
|
||||
<h2>转移客户数:{{changeST?.total}}</h2>
|
||||
<st #changeST [data]="service.$api_get_partner_change_list" [columns]="columns.changeColumn"
|
||||
[req]="{params:{partnerId:route.snapshot.params.id ,type:1}}" [loading]="service.http.loading" bordered size="small"
|
||||
[page]="{ show: false }" [scroll]="{ x: '750px' }">
|
||||
</st>
|
||||
<h2>不转移客户数:10</h2>
|
||||
<st #st [data]="service.$mock_url" [columns]="columns.beChangeColumn" [loading]="service.http.loading" bordered
|
||||
size="small" [page]="{ show: false }" [scroll]="{ x: '750px' }">
|
||||
<h2>不转移客户数:{{noChangeST?.total}}</h2>
|
||||
<st #noChangeST [data]="service.$api_get_partner_change_list" [columns]="columns.beChangeColumn"
|
||||
[req]="{params:{partnerId:route.snapshot.params.id ,type:2}}" [res]="{reName: { list: 'data' }}"
|
||||
[loading]="service.http.loading" bordered size="small" [page]="{ show: false }" [scroll]="{ x: '750px' }">
|
||||
</st>
|
||||
<p>
|
||||
客户转移:客户跟着上级合伙人转移一并到新渠道销售下,会同步发起CRM《客户转移》流程;不转移的,客户会与上级合伙人解绑,修改成功后,修改时间也是合伙人与客户的结算结束时间,成为原来渠道销售的直客。
|
||||
|
||||
@ -47,7 +47,7 @@ export class PartnerDetailComponent implements OnInit, OnDestroy {
|
||||
subscribeScoll!: Subscription;
|
||||
constructor(
|
||||
public service: PartnerListService,
|
||||
private route: ActivatedRoute,
|
||||
public route: ActivatedRoute,
|
||||
private nzModalService: NzModalService,
|
||||
private datePipe: DatePipe
|
||||
) {}
|
||||
@ -138,7 +138,7 @@ export class PartnerDetailComponent implements OnInit, OnDestroy {
|
||||
const modal = this.nzModalService.create({
|
||||
nzTitle: '审核',
|
||||
nzContent: PartnerAuditModalComponent,
|
||||
nzComponentParams: { info: { ...this.detailData, isPass } },
|
||||
nzComponentParams: { info: { ...this.detailData, isPass },sourcePage:'合伙人审核详情' },
|
||||
nzFooter: null
|
||||
});
|
||||
}
|
||||
@ -366,13 +366,13 @@ export class PartnerDetailComponent implements OnInit, OnDestroy {
|
||||
private initST(): { logsColumn: STColumn[]; changeColumn: STColumn[]; beChangeColumn: STColumn[] } {
|
||||
return {
|
||||
logsColumn: [
|
||||
{ title: '修改后渠道销售', index: 'newChannelName', width: 180 },
|
||||
{ title: '修改前渠道销售', index: 'originalChannelName', width: 160 },
|
||||
{ title: '修改后渠道销售', index: 'newChannelIdLabel', width: 180 },
|
||||
{ title: '修改前渠道销售', index: 'originalChannelIdLabel', width: 160 },
|
||||
{ title: '转移客户数', index: 'quantity', className: 'text-center', width: 130 },
|
||||
{ title: '生效节点', index: 'effectiveNode', width: 150, type: 'enum', enum: { 1: '立即生效', 2: 'CRM审核后生效' } },
|
||||
{ title: '备注', index: 'remark', className: 'text-center', width: 150 },
|
||||
{ title: '修改时间', index: 'effectiveTime', className: 'text-center', width: 130, type: 'date' },
|
||||
{ title: '操作人', index: 'modifyUserId', width: 130 },
|
||||
{ title: '修改时间', index: 'effectiveTime', className: 'text-center', width: 180, type: 'date' },
|
||||
{ title: '操作人', index: 'modifyUserIdLabel', width: 180 },
|
||||
{
|
||||
title: '操作',
|
||||
fixed: 'right',
|
||||
|
||||
@ -40,7 +40,7 @@
|
||||
<button [disabled]="service.http.loading" nz-button nzDanger (click)="save()"> 保存 </button>
|
||||
</ng-container>
|
||||
<ng-template #editButton>
|
||||
<ng-container>
|
||||
<ng-container *ngIf="detailData?.approvalStatus === 10">
|
||||
<button [disabled]="service.http.loading" nz-button nzDanger (click)="auditPartner(true)"> 通过 </button>
|
||||
<button [disabled]="service.http.loading" nz-button nzDanger (click)="auditPartner(false)"> 驳回 </button>
|
||||
</ng-container>
|
||||
|
||||
@ -113,7 +113,10 @@ export class PersonalPartnerDetailComponent implements OnInit {
|
||||
const modal = this.nzModalService.create({
|
||||
nzTitle: '审核',
|
||||
nzContent: PartnerAuditModalComponent,
|
||||
nzComponentParams: { info: { ...this.detailData, isPass, enterpriseName: this.detailData.adminUserInfo?.name } },
|
||||
nzComponentParams: {
|
||||
info: { ...this.detailData, isPass, enterpriseName: this.detailData.adminUserInfo?.name },
|
||||
sourcePage: '合伙人审核详情'
|
||||
},
|
||||
nzFooter: null
|
||||
});
|
||||
}
|
||||
|
||||
@ -23,12 +23,20 @@ export class PartnerListService extends ShipperBaseService {
|
||||
$api_update_partner_template = '/api/mdc/partner/updateTemplate';
|
||||
// 更新渠道销售
|
||||
$api_update_partner_channel = '/api/mdc/partner/updateChannelSale';
|
||||
// 更新渠道销售
|
||||
$api_update_partner_channel_by_id = '/api/mdc/partner/updateChannelSaleByID';
|
||||
// 重新发起CRM
|
||||
$api_resend_crm = '/api/mdc/partner/reSendCrm';
|
||||
// 查询合伙人修改渠道渠道销售记录
|
||||
$api_get_personal_channel_list = '/api/mdc/partnerChannelRelLog/list/page';
|
||||
// 查询客户关系列表-不分页
|
||||
$api_get_enterprice_rel_list = '/api/mdc/enterpriceRelLog/list';
|
||||
$api_get_enterprice_rel_list = '/api/mdc/EnterpriseRelLog/list';
|
||||
// 校验合伙人是否可修改渠道销售 true:可以修改 false:不可以修改
|
||||
$api_check_partenr_change_channel = '/api/mdc/partner/updateChannelCheck';
|
||||
// 根据手机号查询实名信息
|
||||
$api_get_identityInfo_by_mobile= '/api/mdc/cuc/identityInfo/getByMobile';
|
||||
// 渠道销售修改详情
|
||||
$api_get_partner_change_list = '/api/mdc/partnerChannelRelLog/partnerChannelUpdateDetaiList';
|
||||
// 冻结/启用企业业
|
||||
$api_lock_freight = '/api/mdc/cuc/enterpriseInfo/operate/lock';
|
||||
|
||||
|
||||
@ -61,6 +61,7 @@ import { BannerComponentsAddComponent } from './knowledge/banner/components/add/
|
||||
import { PersonalPartnerDetailComponent } from './partner-list/components/personal-partner-detail/personal-partner-detail.component';
|
||||
import { ParterAdviceFeedbackListComponent } from './advice-feedback/components/list/list.component';
|
||||
import { ParterAdviceFeedbackDetailComponent } from './advice-feedback/components/feedback-detail/feedback-detail.component';
|
||||
import { ParterRebateManageMentAddPartnerListComponent } from './rebate-management/components/rebate-setting/add-partnerlist/add-partnerlist.component';
|
||||
|
||||
const COMPONENTS: any[] = [
|
||||
PartnerBusinessStatisticsIndexComponent,
|
||||
@ -111,7 +112,8 @@ const COMPONENTS: any[] = [
|
||||
BannerComponentsAddComponent,
|
||||
PersonalPartnerDetailComponent,
|
||||
ParterAdviceFeedbackListComponent,
|
||||
ParterAdviceFeedbackDetailComponent
|
||||
ParterAdviceFeedbackDetailComponent,
|
||||
ParterRebateManageMentAddPartnerListComponent
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
|
||||
@ -0,0 +1,38 @@
|
||||
<nz-card>
|
||||
<div nz-row nzGutter="8">
|
||||
<!-- 查询字段小于或等于3个时,不显示伸缩按钮 -->
|
||||
<div nz-col nzSpan="24" *ngIf="queryFieldCount <= 4">
|
||||
<sf #sf [schema]="schema" [ui]="ui" [mode]="'search'" [disabled]="!sf?.valid" [loading]="false"
|
||||
(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" [nzLoading]="false" (click)="search()" acl
|
||||
[acl-ability]="['AbnormalAppear-serach']">查询</button>
|
||||
<button nz-button (click)="resetSF()" acl [acl-ability]="['AbnormalAppear-reset']">重置</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 class="content-box">
|
||||
<st #st [data]="service.$api_get_rebateConfig" [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] }" [loading]="false"
|
||||
[scroll]="{ x: '2000px' }">
|
||||
</st>
|
||||
<ng-template #extraTemplate>
|
||||
<button *ngIf="selectedIndex===0" (click)="batchReply()" nz-button nzType="primary" acl
|
||||
[acl-ability]="['AbnormalAppear-batchReply']">批量回复</button>
|
||||
</ng-template>
|
||||
</nz-card>
|
||||
@ -0,0 +1,20 @@
|
||||
:host::ng-deep{
|
||||
.search-box{
|
||||
.ant-card-body{
|
||||
padding-bottom: 18px;
|
||||
}
|
||||
}
|
||||
|
||||
.content-box{
|
||||
.ant-card-body{
|
||||
padding-top: 14px;
|
||||
}
|
||||
}
|
||||
.imgBox {
|
||||
display: flex;
|
||||
img {
|
||||
width: 60px !important;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,220 @@
|
||||
import { Component, OnInit, ViewChild, Type } from '@angular/core';
|
||||
import { STComponent, STColumn, STChange } from '@delon/abc/st';
|
||||
import { SFComponent, SFDateWidgetSchema, SFRadioWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
|
||||
import { ShipperBaseService } from '@shared';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { of } from 'rxjs';
|
||||
import { map } from 'rxjs/operators';
|
||||
import { RebateManagementService } from '../../../services/rebate-management.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-add-partnerlist',
|
||||
templateUrl: './add-partnerlist.component.html',
|
||||
styleUrls: ['./add-partnerlist.component.less']
|
||||
})
|
||||
export class ParterRebateManageMentAddPartnerListComponent implements OnInit {
|
||||
@ViewChild('st', { static: true })
|
||||
st!: STComponent;
|
||||
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
||||
ui: SFUISchema = {};
|
||||
i: any;
|
||||
schema: SFSchema = {};
|
||||
addSchema: SFSchema = {};
|
||||
_$expand = false;
|
||||
editText = '';
|
||||
formData: any;
|
||||
isVisible = false;
|
||||
edit = false;
|
||||
editId = false;
|
||||
selectedIndex = 0;
|
||||
|
||||
|
||||
|
||||
columns: STColumn[] = [
|
||||
{ title: '', type: 'checkbox', width: '50px', className: 'text-center' },
|
||||
{ title: '异常编号', index: 'exceptionCode', width: '140px', className: 'text-left', },
|
||||
{ title: '订单号', index: 'billCode', width: '160px', className: 'text-left', },
|
||||
{ title: '装货地', index: 'loadingAddressArr', width: '220px', className: 'text-left', },
|
||||
{ title: '卸货地', index: 'unloadingAddressArr', width: '220px', className: 'text-left', },
|
||||
{ title: '承运司机', index: 'driver', width: '180px', className: 'text-left', },
|
||||
{ title: '异常信息', index: 'exceptionContent', width: '100px', className: 'text-left', },
|
||||
{ title: '异常图片', render: 'exceptionCertificateFirstFilePath', width: '150px', className: 'text-left', },
|
||||
{ title: '上报时间', index: 'createTime', width: '140px', className: 'text-left', },
|
||||
{
|
||||
title: '操作', index: 'createTime', width: '90px', className: 'text-left',
|
||||
buttons: [
|
||||
{
|
||||
text: '回复',
|
||||
click: _record => this.reply(_record),
|
||||
acl: { ability: ['AbnormalAppear-reply'] }
|
||||
},
|
||||
]
|
||||
},
|
||||
];
|
||||
columns2: STColumn[] = [
|
||||
{ title: '异常编号', index: 'exceptionCode', width: '140px', className: 'text-left' },
|
||||
{ title: '订单号', index: 'billCode', width: '160px', className: 'text-left' },
|
||||
{ title: '装货地', index: 'loadingAddressArr', width: '220px', className: 'text-left' },
|
||||
{ title: '卸货地', index: 'unloadingAddressArr', width: '220px', className: 'text-left' },
|
||||
{ title: '承运司机', index: 'driver', width: '180px', className: 'text-left' },
|
||||
{ title: '异常信息', index: 'exceptionContent', width: '100px', className: 'text-left' },
|
||||
{ title: '异常图片', render: 'exceptionCertificateFirstFilePath', width: '150px', className: 'text-left' },
|
||||
{ title: '上报时间', index: 'createTime', width: '140px', className: 'text-left' },
|
||||
{ title: '回复内容', index: 'replyContent', width: '150px', className: 'text-left' },
|
||||
{ title: '回复人', index: 'replyAppUserName', width: '90px', className: 'text-left' },
|
||||
{ title: '回复时间', index: 'replyTime', width: '140px', className: 'text-left' },
|
||||
];
|
||||
|
||||
get reqParams() {
|
||||
let params: any = { ...this.sf?.value };
|
||||
if (params.reportingTime) {
|
||||
const reportingTime = { start: this.sf?.value?.reportingTime?.[0], end: this.sf?.value?.reportingTime?.[1] }
|
||||
params.reportingTime = reportingTime;
|
||||
}
|
||||
return params;
|
||||
}
|
||||
|
||||
get selectedRows() {
|
||||
return this.st?.list.filter(item => item.checked) || [];
|
||||
}
|
||||
|
||||
constructor(
|
||||
public service: RebateManagementService,
|
||||
private nzModalService: NzModalService,
|
||||
public shipperSrv: ShipperBaseService,
|
||||
private modal: NzModalService,
|
||||
|
||||
) { }
|
||||
|
||||
ngOnInit(): void {
|
||||
this.initSF()
|
||||
}
|
||||
|
||||
/**
|
||||
* 伸缩查询条件
|
||||
*/
|
||||
expandToggle(): void {
|
||||
this._$expand = !this._$expand;
|
||||
this.sf?.setValue('/_$expand', this._$expand);
|
||||
}
|
||||
/**
|
||||
* 查询字段个数
|
||||
*/
|
||||
get queryFieldCount(): number {
|
||||
return Object.keys(this.schema?.properties || {}).length;
|
||||
}
|
||||
initSF() {
|
||||
this.schema = {
|
||||
properties: {
|
||||
_$expand: { type: 'boolean', ui: { hidden: true } },
|
||||
exceptionCode: {
|
||||
type: 'string',
|
||||
title: '异常编号',
|
||||
ui: { placeholder: '请输入' }
|
||||
},
|
||||
billCode: {
|
||||
type: 'string',
|
||||
title: '订单号',
|
||||
ui: {
|
||||
placeholder: '最多100个订单,空号隔开',
|
||||
}
|
||||
},
|
||||
exceptionType: {
|
||||
title: '异常类型',
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
containsAllLabel: true,
|
||||
params: { dictKey: 'exception:report:type' },
|
||||
} as SFSelectWidgetSchema
|
||||
},
|
||||
driverName: {
|
||||
title: '承运司机',
|
||||
type: 'string',
|
||||
ui: {
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
}
|
||||
}
|
||||
},
|
||||
carNo: {
|
||||
title: '车牌号',
|
||||
type: 'string',
|
||||
ui: {
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
}
|
||||
}
|
||||
},
|
||||
reportingTime: {
|
||||
title: '上报时间',
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'date',
|
||||
mode: 'range',
|
||||
format: 'yyyy-MM-dd',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
}
|
||||
} as SFDateWidgetSchema
|
||||
}
|
||||
}
|
||||
};
|
||||
this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } };
|
||||
}
|
||||
|
||||
search() {
|
||||
if (this.selectedIndex === 0) {
|
||||
this.st?.load(1)
|
||||
}
|
||||
}
|
||||
|
||||
selectedIndexChange(event: any) {
|
||||
if (this.selectedIndex === 0) {
|
||||
this.st?.load(1)
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 重置表单
|
||||
*/
|
||||
resetSF() {
|
||||
this.sf.reset();
|
||||
}
|
||||
// 回复操作
|
||||
reply(item: any) {
|
||||
// const modalRef = this.modal.create({
|
||||
// nzTitle: '回复',
|
||||
// nzWidth: 700,
|
||||
// nzContent: AbnormalReplyComponent,
|
||||
// nzComponentParams: {
|
||||
// i: item
|
||||
// },
|
||||
// nzFooter: null
|
||||
// });
|
||||
// modalRef.afterClose.subscribe((res) => {
|
||||
// if (res) {
|
||||
// this.resetSF;
|
||||
// this.st.load();
|
||||
// }
|
||||
// });
|
||||
}
|
||||
// 批量回复操作
|
||||
batchReply() {
|
||||
// if (this.selectedRows.length === 0) {
|
||||
// this.service.msgSrv.warning('请勾选数据!')
|
||||
// return;
|
||||
// }
|
||||
// const modalRef = this.modal.create({
|
||||
// nzTitle: '批量回复',
|
||||
// nzContent: AbnormalreplyBatchComponent,
|
||||
// nzComponentParams: {
|
||||
// selectedRows: this.selectedRows
|
||||
// },
|
||||
// nzFooter: null
|
||||
// });
|
||||
// modalRef.afterClose.subscribe(() => {
|
||||
// this.resetSF;
|
||||
// this.st.load();
|
||||
// });
|
||||
}
|
||||
}
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-02-24 20:09:49
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-21 13:53:31
|
||||
* @LastEditTime : 2022-03-28 15:39:27
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add\\add.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -33,7 +33,7 @@
|
||||
<nz-option nzValue="jack" nzLabel="Jack"></nz-option>
|
||||
<nz-option nzValue="lucy" nzLabel="Lucy"></nz-option>
|
||||
</nz-select>
|
||||
<span >添加</span>
|
||||
<span (click)="add()">添加</span>
|
||||
</sv>
|
||||
<sv label="优先级" col="1">
|
||||
<nz-select ngModel="lucy" style="max-width: 400px; min-width: 200px;">
|
||||
@ -49,6 +49,17 @@
|
||||
<textarea style="max-width: 400px; min-width: 200px;" rows="4" nz-input [(ngModel)]="inputValue"></textarea>
|
||||
</sv>
|
||||
</sv-container>
|
||||
|
||||
<div>
|
||||
<button>返回</button>
|
||||
<button>提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
<nz-card>
|
||||
<div class="align-center">
|
||||
<button nz-button nzType="primary" (click)="goBack()">取消</button>
|
||||
<button nz-button nzType="primary" style="margin-left: 48px" (click)="submit()"
|
||||
acl [acl-ability]="['SUPPLY-VEHICLE-AMEND-submitChange']">提交</button
|
||||
>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
/*
|
||||
* @Description :
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-03-21 09:26:45
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-21 13:44:34
|
||||
* @LastEditTime : 2022-03-28 14:45:41
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add\\add.component.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
@ -16,6 +16,7 @@ import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/fo
|
||||
import { processSingleSort, ShipperBaseService } from '@shared';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { RebateManagementService } from '../../../services/rebate-management.service';
|
||||
import { ParterRebateManageMentAddPartnerListComponent } from '../add-partnerlist/add-partnerlist.component';
|
||||
@Component({
|
||||
selector: 'app-parter-channel-rebate-management-add',
|
||||
styleUrls: ['./add.component.less'],
|
||||
@ -26,7 +27,7 @@ export class ParterRebateManageMentAddComponent implements OnInit {
|
||||
toFixedValue: Number = 2;
|
||||
radioValue = 'A';
|
||||
precision = 2;
|
||||
inputValue= '';
|
||||
inputValue = '';
|
||||
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
||||
schema1!: SFSchema;
|
||||
constructor(
|
||||
@ -34,7 +35,7 @@ export class ParterRebateManageMentAddComponent implements OnInit {
|
||||
public ar: ActivatedRoute,
|
||||
public service: RebateManagementService,
|
||||
private modal: NzModalService,
|
||||
public shipperservice: ShipperBaseService,
|
||||
public shipperservice: ShipperBaseService
|
||||
) {}
|
||||
initSF(data?: any) {
|
||||
this.schema1 = {
|
||||
@ -55,6 +56,28 @@ export class ParterRebateManageMentAddComponent implements OnInit {
|
||||
};
|
||||
}
|
||||
ngOnInit() {
|
||||
this.initSF()
|
||||
this.initSF();
|
||||
}
|
||||
submit() {}
|
||||
goBack() {
|
||||
window.history.go(-1);
|
||||
}
|
||||
/**
|
||||
*申请退款
|
||||
*/
|
||||
add(item?: any) {
|
||||
const modalRef = this.modal.create({
|
||||
nzTitle: '申请退款',
|
||||
nzContent: ParterRebateManageMentAddPartnerListComponent,
|
||||
nzComponentParams: {
|
||||
i: item,
|
||||
},
|
||||
nzFooter: null
|
||||
});
|
||||
modalRef.afterClose.subscribe((res: boolean) => {
|
||||
if (res) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
</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" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button nzType="primary" (click)="search()">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button> 导出</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
@ -51,12 +51,15 @@
|
||||
</ng-template>
|
||||
</st>
|
||||
<div class=" text-md" *ngIf="st?.list?.length !== 0 ">
|
||||
<span class="mr-md">合伙人数:<label class="text-red-dark font-weight-bold">{{totalInfo?.partnerNum}}</label></span>
|
||||
<span class="mr-md">合伙人数:<label
|
||||
class="text-red-dark font-weight-bold">{{totalInfo?.invoiceAmountSum}}</label></span>
|
||||
<span class="mr-md">入账笔数:<label class="text-red-dark font-weight-bold">{{totalInfo?.count}}</label></span>
|
||||
<span class="mr-md">开票金额:<label class="text-red-dark font-weight-bold">{{totalInfo?.invoiceAmount}}</label></span>
|
||||
<span class="mr-md">代缴个税:<label class="text-red-dark font-weight-bold">{{totalInfo?.tax}}</label></span>
|
||||
<span class="mr-md">开票金额:<label
|
||||
class="text-red-dark font-weight-bold">{{totalInfo?.invoiceEntryNum}}</label></span>
|
||||
<span class="mr-md">代缴个税:<label
|
||||
class="text-red-dark font-weight-bold">{{totalInfo?.taxPersonalSum}}</label></span>
|
||||
<span class="mr-md">入账金额:<label
|
||||
class="text-red-dark font-weight-bold">{{totalInfo?.recorededAmount}}</label></span>
|
||||
class="text-red-dark font-weight-bold">{{totalInfo?.recordedAmountSum}}</label></span>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
@ -22,11 +22,11 @@ export class PartnerRecordedRecordComponent implements OnInit {
|
||||
columns!: STColumn[];
|
||||
searchSchema!: SFSchema;
|
||||
totalInfo: any = {
|
||||
partnerNum: 34,
|
||||
count: 98,
|
||||
invoiceAmount: 978239.98,
|
||||
tax: 9878.00,
|
||||
recorededAmount: 728698.98
|
||||
invoiceAmountSum: 0,
|
||||
invoiceEntryNum: 0,
|
||||
partnerNum: 0,
|
||||
recordedAmountSum: 0,
|
||||
taxPersonalSum: 0
|
||||
}
|
||||
|
||||
_$expand = false;
|
||||
@ -43,8 +43,6 @@ export class PartnerRecordedRecordComponent implements OnInit {
|
||||
|
||||
constructor(public service: RecordedService, private nzModalService: NzModalService,
|
||||
private router: Router, public ar: ActivatedRoute, public shipperSrv: ShipperBaseService) {
|
||||
|
||||
this.accountName = this.ar.snapshot.queryParams?.userIdLabel || '';
|
||||
this.ltdId = this.ar.snapshot.queryParams?.ltdId || '';
|
||||
|
||||
}
|
||||
@ -308,7 +306,7 @@ export class PartnerRecordedRecordComponent implements OnInit {
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.amount }) }
|
||||
},
|
||||
|
||||
{ title: '提交时间', index: 'submitTime', width: 160, className: 'text-center' },
|
||||
{ title: '提交时间', index: 'submitTime', width: 180, className: 'text-center' },
|
||||
{ title: '入账状态', index: 'stsLabel', width: 120, className: 'text-center' },
|
||||
{
|
||||
title: '操作',
|
||||
@ -347,4 +345,19 @@ export class PartnerRecordedRecordComponent implements OnInit {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
search() {
|
||||
this.st.load(1);
|
||||
this.getSummary();
|
||||
}
|
||||
/**
|
||||
* 底部统计
|
||||
*/
|
||||
getSummary() {
|
||||
this.service.request(this.service.$api_get_list_summary, { ...this.sf.value }).subscribe(res => {
|
||||
if (res) {
|
||||
this.totalInfo = res;
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,6 +11,7 @@ export class RecordedService extends BaseService {
|
||||
$api_disagree_recorded = ``; // 拒绝审核
|
||||
$api_agree_recorded = ``; // 同意审核
|
||||
$api_audit_recored = `/api/bpc/partnerInvoiceEntry/oprationAudit`; // 审核单据
|
||||
$api_get_list_summary = `/api/bpc/partnerInvoiceEntry/invoiceEntrySummary`; // 每页统计
|
||||
constructor(public injector: Injector) {
|
||||
super(injector);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user