Merge branch 'develop'
This commit is contained in:
@ -4,7 +4,7 @@
|
|||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2022-01-18 09:51:21
|
* @Date : 2022-01-18 09:51:21
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-04-20 14:18:40
|
* @LastEditTime : 2022-04-22 14:01:00
|
||||||
* @FilePath : \\tms-obc-web\\proxy.conf.js
|
* @FilePath : \\tms-obc-web\\proxy.conf.js
|
||||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
*/
|
*/
|
||||||
@ -30,7 +30,7 @@ module.exports = {
|
|||||||
// },
|
// },
|
||||||
'//api': {
|
'//api': {
|
||||||
target: {
|
target: {
|
||||||
host: 'tms-api-test.eascs.com',
|
host: 'tms-api-dev.eascs.com',
|
||||||
protocol: 'https:',
|
protocol: 'https:',
|
||||||
port: 443
|
port: 443
|
||||||
},
|
},
|
||||||
|
|||||||
@ -25,7 +25,7 @@
|
|||||||
<g2-card [title]="'司机应付总额'" [bordered]="true" [total]="totalFreight?.totalAmount || '¥ 0.00万'" [footer]="footer"
|
<g2-card [title]="'司机应付总额'" [bordered]="true" [total]="totalFreight?.totalAmount || '¥ 0.00万'" [footer]="footer"
|
||||||
contentHeight="46">
|
contentHeight="46">
|
||||||
<ng-template #footer>
|
<ng-template #footer>
|
||||||
<g2-mini-area line color="#cceafe" height="45" [data]="totalFreight?.list || []"
|
<g2-mini-area line borderColor="#E60012" color="#F09896" height="45" [data]="totalFreight?.list || []"
|
||||||
(clickItem)="handleClick($event)">
|
(clickItem)="handleClick($event)">
|
||||||
</g2-mini-area>
|
</g2-mini-area>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
@ -35,7 +35,7 @@
|
|||||||
<g2-card [title]="'附加费总额'" [bordered]="true" [total]="totalSurcharge?.totalAmount || '¥ 0.00万'"
|
<g2-card [title]="'附加费总额'" [bordered]="true" [total]="totalSurcharge?.totalAmount || '¥ 0.00万'"
|
||||||
[footer]="SurchargeFooter" contentHeight="46">
|
[footer]="SurchargeFooter" contentHeight="46">
|
||||||
<ng-template #SurchargeFooter>
|
<ng-template #SurchargeFooter>
|
||||||
<g2-mini-area line color="#cceafe" height="45" [data]="totalSurcharge?.list || []"
|
<g2-mini-area line borderColor="#E60012" color="#F09896" height="45" [data]="totalSurcharge?.list || []"
|
||||||
(clickItem)="handleClick($event)">
|
(clickItem)="handleClick($event)">
|
||||||
</g2-mini-area>
|
</g2-mini-area>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
@ -43,13 +43,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div nz-row [nzGutter]="16">
|
<div nz-row [nzGutter]="16">
|
||||||
<div nz-col class="gutter-row" [nzSpan]="9">
|
<div nz-col class="gutter-row" [nzSpan]="7">
|
||||||
<nz-card [nzTitle]="'订单类型比例'">
|
<nz-card><label class="chart_title">订单类型比例</label>
|
||||||
<g2-custom #g2custom delay="100"></g2-custom>
|
<g2-custom #g2custom delay="100"></g2-custom>
|
||||||
</nz-card>
|
</nz-card>
|
||||||
</div>
|
</div>
|
||||||
<div nz-col class="gutter-row" [nzSpan]="15">
|
<div nz-col class="gutter-row" [nzSpan]="17">
|
||||||
<nz-card [nzTitle]="'大区业绩完成情况'">
|
<nz-card><label class="chart_title">大区业绩完成情况</label>
|
||||||
<!-- <g2-timeline [data]="chartData" [titleMap]="{ y1: '订单金额(元)', y2: '' }" [height]="200" mask="MM月DD日"
|
<!-- <g2-timeline [data]="chartData" [titleMap]="{ y1: '订单金额(元)', y2: '' }" [height]="200" mask="MM月DD日"
|
||||||
[slider]="false"></g2-timeline> -->
|
[slider]="false"></g2-timeline> -->
|
||||||
<g2-custom #RegionalPerforman delay="100"></g2-custom>
|
<g2-custom #RegionalPerforman delay="100"></g2-custom>
|
||||||
@ -57,16 +57,17 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div nz-row [nzGutter]="16">
|
<div nz-row [nzGutter]="16">
|
||||||
<div nz-col class="gutter-row" [nzSpan]="9">
|
<div nz-col class="gutter-row" [nzSpan]="7">
|
||||||
<nz-card [nzTitle]="'运单直付比例'">
|
<nz-card> <label class="chart_title">运单直付比例</label>
|
||||||
<!-- <g2-pie #pie title="销售额" subTitle="销售额" [total]="total" [valueFormat]="format" [data]="salesPieData" height="294"
|
<!-- <g2-pie #pie title="销售额" subTitle="销售额" [total]="total" [valueFormat]="format" [data]="salesPieData" height="294"
|
||||||
(clickItem)="handleClick($event)" [lineWidth]="10">
|
(clickItem)="handleClick($event)" [lineWidth]="10">
|
||||||
</g2-pie> -->
|
</g2-pie> -->
|
||||||
<g2-custom #BillDirectProportion delay="100"></g2-custom>
|
<g2-custom #BillDirectProportion delay="100"></g2-custom>
|
||||||
</nz-card>
|
</nz-card>
|
||||||
</div>
|
</div>
|
||||||
<div nz-col class="gutter-row" [nzSpan]="15">
|
<div nz-col class="gutter-row" [nzSpan]="17">
|
||||||
<nz-card [nzTitle]="'业绩完成情况'">
|
<nz-card>
|
||||||
|
<label class="chart_title">业绩完成情况</label>
|
||||||
<!-- <g2-bar [data]="salesData" (clickItem)="handleClick($event)" height="400"></g2-bar> -->
|
<!-- <g2-bar [data]="salesData" (clickItem)="handleClick($event)" height="400"></g2-bar> -->
|
||||||
<g2-custom #SaleProportion delay="100"></g2-custom>
|
<g2-custom #SaleProportion delay="100"></g2-custom>
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,9 @@
|
|||||||
|
.chart_title {
|
||||||
|
font-size : 16px;
|
||||||
|
font-weight : 500;
|
||||||
|
color : #1D2129;
|
||||||
|
line-height : 24px;
|
||||||
|
background-clip : text;
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
position : absolute;
|
||||||
|
}
|
||||||
@ -82,8 +82,14 @@ export class DatatableDataindexComponent implements OnInit {
|
|||||||
// 大区业绩完成情况
|
// 大区业绩完成情况
|
||||||
this.service.request(this.service.$api_getBillAmount).subscribe((res: DataPerformanceTrendVO[]) => {
|
this.service.request(this.service.$api_getBillAmount).subscribe((res: DataPerformanceTrendVO[]) => {
|
||||||
if (res) {
|
if (res) {
|
||||||
this.regionalPerformanceCompletion = res.map(item => ({ ...item, time: new Date(item.time)?.getTime() }));
|
// this.regionalPerformanceCompletion = res.map(item => ({ ...item, time: new Date(item.time)?.getTime() }));
|
||||||
this.initRegionalPerformanceChart(this.RegionalPerforman['el'].nativeElement as any, this.regionalPerformanceCompletion);
|
// this.initRegionalPerformanceChart(this.RegionalPerforman['el'].nativeElement as any, this.regionalPerformanceCompletion);
|
||||||
|
this.regionalPerformanceCompletion = this.formatBarData(res);
|
||||||
|
this.initBiaxialChart(this.RegionalPerforman['el'].nativeElement as any, this.regionalPerformanceCompletion, {
|
||||||
|
y1Title: '业绩量(万)',
|
||||||
|
y2Title: '业绩完成率',
|
||||||
|
y3Title: '同期业绩完成率'
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// 订单类型比例
|
// 订单类型比例
|
||||||
@ -97,7 +103,11 @@ export class DatatableDataindexComponent implements OnInit {
|
|||||||
this.service.request(this.service.$api_get_bill_payment_amount).subscribe(res => {
|
this.service.request(this.service.$api_get_bill_payment_amount).subscribe(res => {
|
||||||
if (res) {
|
if (res) {
|
||||||
this.salesData = this.formatBarData(res);
|
this.salesData = this.formatBarData(res);
|
||||||
this.initBiaxialChart(this.SaleProportion['el'].nativeElement as any, this.salesData);
|
this.initBiaxialChart(this.SaleProportion['el'].nativeElement as any, this.salesData, {
|
||||||
|
y1Title: '业绩量(万)',
|
||||||
|
y2Title: '业绩完成率',
|
||||||
|
y3Title: '同期业绩完成率'
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -121,8 +131,8 @@ export class DatatableDataindexComponent implements OnInit {
|
|||||||
// 新建一个 view 用来单独渲染Annotation
|
// 新建一个 view 用来单独渲染Annotation
|
||||||
const innerView = chart.createView();
|
const innerView = chart.createView();
|
||||||
chart.coordinate('theta', {
|
chart.coordinate('theta', {
|
||||||
radius: 0.6,
|
radius: 0.65,
|
||||||
innerRadius: 0.7
|
innerRadius: 0.6
|
||||||
});
|
});
|
||||||
|
|
||||||
chart.data(data);
|
chart.data(data);
|
||||||
@ -138,17 +148,17 @@ export class DatatableDataindexComponent implements OnInit {
|
|||||||
|
|
||||||
// 声明需要进行自定义图例字段: 'item'
|
// 声明需要进行自定义图例字段: 'item'
|
||||||
chart.legend('item', {
|
chart.legend('item', {
|
||||||
position: 'right', // 配置图例显示位置
|
position: 'bottom', // 配置图例显示位置
|
||||||
custom: true, // 关键字段,告诉 G2,要使用自定义的图例
|
custom: true, // 关键字段,告诉 G2,要使用自定义的图例
|
||||||
items: data.map((obj: any, index: any) => {
|
items: data.map((obj: any, index: any) => {
|
||||||
return {
|
return {
|
||||||
name: obj.item, // 对应 itemName
|
name: obj.item, // 对应 itemName
|
||||||
value: obj.percent, // 对应 itemValue
|
value: obj.percent, // 对应 itemValue
|
||||||
marker: {
|
marker: {
|
||||||
symbol: 'square', // marker 的形状
|
symbol: 'circle', // marker 的形状
|
||||||
style: {
|
style: {
|
||||||
r: 5, // marker 图形半径
|
r: 5, // marker 图形半径
|
||||||
fill: chart.getTheme().colors10[index] // marker 颜色,使用默认颜色,同图形对应
|
fill: index === 0 ? '#E60012' : '#F09896' // marker 颜色,使用默认颜色,同图形对应
|
||||||
}
|
}
|
||||||
} // marker 配置
|
} // marker 配置
|
||||||
};
|
};
|
||||||
@ -165,7 +175,7 @@ export class DatatableDataindexComponent implements OnInit {
|
|||||||
.interval()
|
.interval()
|
||||||
.adjust('stack')
|
.adjust('stack')
|
||||||
.position('percent')
|
.position('percent')
|
||||||
.color('item')
|
.color('item', ['#E60012', '#F09896'])
|
||||||
.style({
|
.style({
|
||||||
fillOpacity: 1,
|
fillOpacity: 1,
|
||||||
stroke: 'white',
|
stroke: 'white',
|
||||||
@ -182,6 +192,14 @@ export class DatatableDataindexComponent implements OnInit {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
.label('percent', percent => {
|
||||||
|
return {
|
||||||
|
content: data => {
|
||||||
|
return ` ${percent * 100}%`;
|
||||||
|
},
|
||||||
|
style: { fontSize: 14 }
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
innerView
|
innerView
|
||||||
@ -201,7 +219,7 @@ export class DatatableDataindexComponent implements OnInit {
|
|||||||
content: data[0].count,
|
content: data[0].count,
|
||||||
style: {
|
style: {
|
||||||
fontSize: 28,
|
fontSize: 28,
|
||||||
fill: '#8c8c8c',
|
fill: '##000',
|
||||||
textAlign: 'center'
|
textAlign: 'center'
|
||||||
},
|
},
|
||||||
offsetY: 20
|
offsetY: 20
|
||||||
@ -253,7 +271,7 @@ export class DatatableDataindexComponent implements OnInit {
|
|||||||
content: data.count,
|
content: data.count,
|
||||||
style: {
|
style: {
|
||||||
fontSize: 28,
|
fontSize: 28,
|
||||||
fill: '#8c8c8c',
|
fill: '##000',
|
||||||
textAlign: 'center'
|
textAlign: 'center'
|
||||||
},
|
},
|
||||||
offsetY: 20
|
offsetY: 20
|
||||||
@ -271,6 +289,50 @@ export class DatatableDataindexComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构建面积图
|
||||||
|
* @param el
|
||||||
|
*/
|
||||||
|
private initAreaMap(el: HTMLElement, datas: any[]): void {
|
||||||
|
const chart = new Chart({
|
||||||
|
container: el,
|
||||||
|
autoFit: true,
|
||||||
|
height: 500
|
||||||
|
});
|
||||||
|
chart.data(datas);
|
||||||
|
chart.scale('Data', {
|
||||||
|
range: [0, 1],
|
||||||
|
tickCount: 10,
|
||||||
|
type: 'timeCat'
|
||||||
|
});
|
||||||
|
chart.scale('sales', {
|
||||||
|
nice: true
|
||||||
|
});
|
||||||
|
chart.axis('Data', false);
|
||||||
|
chart.axis('sales', false);
|
||||||
|
chart.tooltip({
|
||||||
|
showCrosshairs: true
|
||||||
|
});
|
||||||
|
|
||||||
|
// chart.annotation().dataMarker({
|
||||||
|
// position: ['2014-01', 1750],
|
||||||
|
// top: true,
|
||||||
|
// text: {
|
||||||
|
// content: '因政策调整导致销量下滑',
|
||||||
|
// style: {
|
||||||
|
// fontSize: 13
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// line: {
|
||||||
|
// length: 30
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
|
||||||
|
chart.line().position('Data*sales');
|
||||||
|
chart.area().position('Data*sales');
|
||||||
|
chart.render();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构建大区业绩完成情况柱折双轴图
|
* 构建大区业绩完成情况柱折双轴图
|
||||||
* @param el
|
* @param el
|
||||||
@ -308,6 +370,7 @@ export class DatatableDataindexComponent implements OnInit {
|
|||||||
|
|
||||||
// 声明需要进行自定义图例字段: 'item'
|
// 声明需要进行自定义图例字段: 'item'
|
||||||
chart.legend({
|
chart.legend({
|
||||||
|
title: { text: '1111', spacing: 11 },
|
||||||
offsetY: 10,
|
offsetY: 10,
|
||||||
position: 'bottom', // 配置图例显示位置
|
position: 'bottom', // 配置图例显示位置
|
||||||
custom: true, // 关键字段,告诉 G2,要使用自定义的图例
|
custom: true, // 关键字段,告诉 G2,要使用自定义的图例
|
||||||
@ -333,7 +396,11 @@ export class DatatableDataindexComponent implements OnInit {
|
|||||||
* @param el
|
* @param el
|
||||||
* @param data
|
* @param data
|
||||||
*/
|
*/
|
||||||
private initBiaxialChart(el: HTMLElement, data: any[]) {
|
private initBiaxialChart(
|
||||||
|
el: HTMLElement,
|
||||||
|
data: any[],
|
||||||
|
{ y1Title, y2Title, y3Title }: { y1Title: string; y2Title: string; y3Title: string }
|
||||||
|
) {
|
||||||
const chart = new Chart({
|
const chart = new Chart({
|
||||||
container: el,
|
container: el,
|
||||||
autoFit: true,
|
autoFit: true,
|
||||||
@ -342,45 +409,47 @@ export class DatatableDataindexComponent implements OnInit {
|
|||||||
chart.data(data);
|
chart.data(data);
|
||||||
// 设置坐标轴
|
// 设置坐标轴
|
||||||
chart.scale({
|
chart.scale({
|
||||||
pre: { alias: '同期业绩完成率', min: 0, max: 1, formatter: val => val * 100 + '%' },
|
y1: { alias: y1Title, min: 0, max: 1000000 },
|
||||||
pre2: { alias: '业绩完成率', min: 0, max: 1, formatter: val => val * 100 + '%' },
|
y2: { alias: y2Title, min: 0, max: 1, formatter: val => (val * 100).toFixed(0) + '%' },
|
||||||
quantity: { alias: '业绩量 (万)', min: 0, max: 1000000 }
|
y3: { alias: y3Title, min: 0, max: 1, formatter: val => (val * 100).toFixed(0) + '%' }
|
||||||
});
|
});
|
||||||
// 设置
|
// 设置
|
||||||
chart.legend({
|
chart.legend({
|
||||||
custom: true,
|
custom: true,
|
||||||
|
position: 'top-right',
|
||||||
|
padding: [10, 0, 40, 0],
|
||||||
items: [
|
items: [
|
||||||
{ value: 'quantity', name: '业绩量 (万)', marker: { symbol: 'hyphen', style: { stroke: '#3182bd', r: 15, lineWidth: 5 } } },
|
{ value: 'y1', name: y1Title, marker: { symbol: 'circle', style: { fill: '#E60012', r: 5, fontSize: 13 } } },
|
||||||
{ value: 'pre2', name: '业绩完成率', marker: { symbol: 'hyphen', style: { stroke: '#fdae6b', r: 15, lineWidth: 5 } } },
|
{ value: 'y3', name: y3Title, marker: { symbol: 'circle', style: { fill: '#6CBFFF', r: 5, fontSize: 13 } } },
|
||||||
{ value: 'pre', name: '同期业绩完成率', marker: { symbol: 'hyphen', style: { stroke: '#ff4d4f', r: 15, lineWidth: 5 } } }
|
{ value: 'y2', name: y2Title, marker: { symbol: 'circle', style: { fill: '#50D4AB', r: 5, fontSize: 13 } } }
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
chart.axis('pre', {
|
chart.axis('y2', {
|
||||||
grid: null,
|
grid: null,
|
||||||
title: null,
|
title: null,
|
||||||
label: {
|
label: {
|
||||||
formatter: val => +val * 100 + '%'
|
formatter: val => val
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
chart.axis('pre2', false);
|
chart.axis('y3', false);
|
||||||
chart.tooltip({
|
chart.tooltip({
|
||||||
shared: true
|
shared: true
|
||||||
});
|
});
|
||||||
chart.interval().position('time*quantity').label('quantity').color('#3182bd');
|
chart.interval().position('x*y1').color('#E60012');
|
||||||
chart
|
chart
|
||||||
.line()
|
.line()
|
||||||
.position('time*pre')
|
.position('x*y2')
|
||||||
.label('pre', val => ({ content: (val * 100).toFixed(0) + '%' }))
|
// .label('pre', val => ({ content: (val * 100).toFixed(0) + '%' }))
|
||||||
.color('#ff4d4f')
|
.color('#6CBFFF')
|
||||||
.size(3);
|
.size(3);
|
||||||
chart.point().position('time*pre').color('#ff4d4f').size(3).shape('circle');
|
chart.point().position('x*y2').color('#6CBFFF').size(3).shape('circle');
|
||||||
chart
|
chart
|
||||||
.line()
|
.line()
|
||||||
.position('time*pre2')
|
.position('x*y3')
|
||||||
.label('pre2', val => ({ content: (val * 100).toFixed(0) + '%' }))
|
// .label('pre2', val => ({ content: (val * 100).toFixed(0) + '%' }))
|
||||||
.color('#fdae6b')
|
.color('#50D4AB')
|
||||||
.size(3);
|
.size(3);
|
||||||
chart.point().position('time*pre2').color('#fdae6b').size(3).shape('circle');
|
chart.point().position('x*y3').color('#50D4AB').size(3).shape('circle');
|
||||||
|
|
||||||
chart.interaction('active-region');
|
chart.interaction('active-region');
|
||||||
chart.removeInteraction('legend-filter'); // 自定义图例,移除默认的分类图例筛选交互
|
chart.removeInteraction('legend-filter'); // 自定义图例,移除默认的分类图例筛选交互
|
||||||
@ -417,11 +486,10 @@ export class DatatableDataindexComponent implements OnInit {
|
|||||||
|
|
||||||
private formatBarData(data: DataPerformanceTrendVO[]): any[] {
|
private formatBarData(data: DataPerformanceTrendVO[]): any[] {
|
||||||
return data.map(item => ({
|
return data.map(item => ({
|
||||||
time: item.time,
|
x: item.time,
|
||||||
quantity: item.quantity,
|
y1: item.quantity,
|
||||||
color: undefined,
|
y2: Math.floor(Math.random() * 100) / 100,
|
||||||
pre: Math.floor(Math.random() * 100) / 100,
|
y3: Math.floor(Math.random() * 100) / 100
|
||||||
pre2: Math.floor(Math.random() * 100) / 100
|
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,22 @@
|
|||||||
|
<page-header-wrapper [title]="''"></page-header-wrapper>
|
||||||
|
<div>
|
||||||
|
<div class="setp">
|
||||||
|
<nz-steps [nzCurrent]="current">
|
||||||
|
<nz-step *ngFor="let step of this.steps; trackBy: trackById" [nzTitle]="step.title"
|
||||||
|
[nzPercentage]="step.async ? step.percentage : null"></nz-step>
|
||||||
|
</nz-steps>
|
||||||
|
</div>
|
||||||
|
<nz-card>
|
||||||
|
<div class="content">
|
||||||
|
<app-cwc-bank-card-management-bind *ngIf="current === 0" (toNextStep)="changeCurrent($event)">
|
||||||
|
</app-cwc-bank-card-management-bind>
|
||||||
|
<div *ngIf="current === 2">
|
||||||
|
<nz-result nzStatus="success" nzTitle="绑卡成功" nzSubTitle="后续您可以使用该卡在平台进行充值">
|
||||||
|
<div nz-result-extra>
|
||||||
|
<button nz-button nzType="primary" (click)="toBandCardPage()">回到银行卡列表</button>
|
||||||
|
</div>
|
||||||
|
</nz-result>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nz-card>
|
||||||
|
</div>
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
:host {
|
||||||
|
|
||||||
|
.setp,
|
||||||
|
.content {
|
||||||
|
width: 40%;
|
||||||
|
margin: 50px auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
import { CwcBankCardManagementAddComponent } from './add.component';
|
||||||
|
|
||||||
|
describe('CwcBankCardManagementAddComponent', () => {
|
||||||
|
let component: CwcBankCardManagementAddComponent;
|
||||||
|
let fixture: ComponentFixture<CwcBankCardManagementAddComponent>;
|
||||||
|
|
||||||
|
beforeEach(waitForAsync(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [CwcBankCardManagementAddComponent]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
}));
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
fixture = TestBed.createComponent(CwcBankCardManagementAddComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@ -0,0 +1,93 @@
|
|||||||
|
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||||
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
|
import { cacheConf } from '@conf/cache.conf';
|
||||||
|
import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
|
||||||
|
import { EACacheService } from '@shared';
|
||||||
|
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||||
|
import { BankCardManagementService } from '../../../services/bank-card-management.service';
|
||||||
|
|
||||||
|
interface EmitType {
|
||||||
|
success: boolean,
|
||||||
|
current: number,
|
||||||
|
value: object
|
||||||
|
};
|
||||||
|
@Component({
|
||||||
|
selector: 'app-cwc-bank-card-management-add',
|
||||||
|
templateUrl: './add.component.html',
|
||||||
|
styleUrls: ['./add.component.less']
|
||||||
|
})
|
||||||
|
export class CwcBankCardManagementAddComponent implements OnInit {
|
||||||
|
schema: SFSchema = {};
|
||||||
|
ui: SFUISchema = {};
|
||||||
|
record: any;
|
||||||
|
i: any;
|
||||||
|
userInfo: any = {};
|
||||||
|
bankBranchName = '';
|
||||||
|
bankArea = '';
|
||||||
|
bankName = '';
|
||||||
|
loading = false;
|
||||||
|
current = 0; // 当前节点
|
||||||
|
verifyInfo = {};
|
||||||
|
steps: Array<any> = [
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
title: `绑定银行卡`,
|
||||||
|
async: false,
|
||||||
|
percentage: null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
title: `小额鉴权`,
|
||||||
|
async: false,
|
||||||
|
percentage: null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
title: `完成`,
|
||||||
|
async: false,
|
||||||
|
percentage: null
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
||||||
|
networkTransporterId = '';
|
||||||
|
bankSfInfo: any = {} // 银行卡信息;
|
||||||
|
smallAuthentication: any = {}; //小额鉴权信息
|
||||||
|
|
||||||
|
branchBanks: any[] = [];
|
||||||
|
constructor(public service: BankCardManagementService,
|
||||||
|
public modalService: NzModalService, public router: Router,
|
||||||
|
public ar: ActivatedRoute, public eaCacheSrv: EACacheService) {
|
||||||
|
this.networkTransporterId = this.eaCacheSrv.get(cacheConf.env)?.networkTransporterId
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
trackById(_: number, item: any): number {
|
||||||
|
return item.id;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
formatCard() {
|
||||||
|
return /[1-9]\d{12,18}/;
|
||||||
|
}
|
||||||
|
|
||||||
|
changeCurrent(e: EmitType) {
|
||||||
|
if (e && e?.success) {
|
||||||
|
this.current = e?.current;
|
||||||
|
if (this.current === 1) {
|
||||||
|
this.bankSfInfo = e?.value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
toBandCardPage() {
|
||||||
|
this.router.navigate(['../index'], {
|
||||||
|
relativeTo: this.ar
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
<div>
|
||||||
|
<sf #sf [schema]="schema" button="none" [ui]="ui">
|
||||||
|
</sf>
|
||||||
|
<div class="modal-footer" style="margin-left: 120px;">
|
||||||
|
<button nzType="primary" (click)="submit()" [disabled]="!sf?.valid" [nzLoading]="service.http.loading"
|
||||||
|
nz-button>保存</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
import { CwcBankCardManagementBindComponent } from './bind.component';
|
||||||
|
|
||||||
|
describe('CwcBankCardManagementBindComponent', () => {
|
||||||
|
let component: CwcBankCardManagementBindComponent;
|
||||||
|
let fixture: ComponentFixture<CwcBankCardManagementBindComponent>;
|
||||||
|
|
||||||
|
beforeEach(waitForAsync(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [CwcBankCardManagementBindComponent]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
}));
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
fixture = TestBed.createComponent(CwcBankCardManagementBindComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@ -0,0 +1,141 @@
|
|||||||
|
import { THIS_EXPR } from '@angular/compiler/src/output/output_ast';
|
||||||
|
import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';
|
||||||
|
import { cacheConf } from '@conf/cache.conf';
|
||||||
|
import { SFComponent, SFSchema, SFStringWidgetSchema, SFUISchema } from '@delon/form';
|
||||||
|
import { EACacheService } from '@shared';
|
||||||
|
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
|
||||||
|
import { BankCardManagementService } from '../../../services/bank-card-management.service';
|
||||||
|
|
||||||
|
interface EmitType {
|
||||||
|
success: boolean,
|
||||||
|
current: number,
|
||||||
|
value: object
|
||||||
|
};
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-cwc-bank-card-management-bind',
|
||||||
|
templateUrl: './bind.component.html',
|
||||||
|
})
|
||||||
|
|
||||||
|
export class CwcBankCardManagementBindComponent implements OnInit {
|
||||||
|
schema: SFSchema = {};
|
||||||
|
ui: SFUISchema = {};
|
||||||
|
record: any;
|
||||||
|
i: any;
|
||||||
|
userInfo: any = {};
|
||||||
|
bankBranchName = '';
|
||||||
|
bankArea = '';
|
||||||
|
bankName = '';
|
||||||
|
loading = false;
|
||||||
|
current = 0; // 当前节点
|
||||||
|
|
||||||
|
@Output() toNextStep = new EventEmitter<EmitType>();
|
||||||
|
|
||||||
|
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
||||||
|
enterpriseName = '';
|
||||||
|
|
||||||
|
branchBanks: any[] = [];
|
||||||
|
constructor(public service: BankCardManagementService, public modalService: NzModalService, public eaCacheSrv: EACacheService, public modalRef: NzModalRef) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
this.initSF();
|
||||||
|
}
|
||||||
|
|
||||||
|
initSF() {
|
||||||
|
this.schema = {
|
||||||
|
properties: {
|
||||||
|
bankAccountName: {
|
||||||
|
type: 'string',
|
||||||
|
title: '企业名称',
|
||||||
|
default: this.i?.ltdName,
|
||||||
|
ui: {
|
||||||
|
widget: 'text'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
bankCardNumber: {
|
||||||
|
type: 'string',
|
||||||
|
title: '银行卡号',
|
||||||
|
maxLength: 30,
|
||||||
|
ui: {
|
||||||
|
showRequired: true,
|
||||||
|
placeholder: '请输入银行卡号',
|
||||||
|
autocomplete: 'off'
|
||||||
|
} as SFStringWidgetSchema,
|
||||||
|
},
|
||||||
|
bankName: {
|
||||||
|
type: 'string',
|
||||||
|
title: '开户银行',
|
||||||
|
// readOnly: true,
|
||||||
|
ui: {
|
||||||
|
showRequired: true,
|
||||||
|
autocomplete: 'off',
|
||||||
|
placeholder: '请输入开户银行',
|
||||||
|
} as SFStringWidgetSchema,
|
||||||
|
},
|
||||||
|
ltdId: {
|
||||||
|
type: 'string',
|
||||||
|
title: '',
|
||||||
|
default: this.i?.ltdId,
|
||||||
|
ui: {
|
||||||
|
widget: 'text',
|
||||||
|
hidden: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// bankBranchName: {
|
||||||
|
// type: 'string',
|
||||||
|
// title: '开户支行',
|
||||||
|
// ui: {
|
||||||
|
// showRequired: true,
|
||||||
|
// placeholder: '请输入开户支行',
|
||||||
|
// autocomplete: 'off'
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// bankBranchCode: {
|
||||||
|
// type: 'string',
|
||||||
|
// title: '联行号',
|
||||||
|
// ui: {
|
||||||
|
// placeholder: '请输入联行号'
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
mobile: {
|
||||||
|
type: 'string',
|
||||||
|
title: '手机号',
|
||||||
|
maxLength: 11,
|
||||||
|
format: 'mobile',
|
||||||
|
ui: {
|
||||||
|
placeholder: '请输入手机号'
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
required: ['bankCardNumber', 'mobile', 'bankName'],
|
||||||
|
};
|
||||||
|
this.ui = {
|
||||||
|
'*': {
|
||||||
|
spanLabelFixed: 120,
|
||||||
|
grid: { span: 18 },
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
trackById(_: number, item: any): number {
|
||||||
|
return item.id;
|
||||||
|
}
|
||||||
|
|
||||||
|
submit() {
|
||||||
|
if (this.sf.valid) {
|
||||||
|
this.service.request(this.service.$api_bank_card_add, { ...this.sf.value }).subscribe(res => {
|
||||||
|
if (res) {
|
||||||
|
this.modalRef.destroy(true);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
formatCard() {
|
||||||
|
return /[1-9]\d{12,18}/;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,33 @@
|
|||||||
|
<page-header-wrapper [title]="''"> </page-header-wrapper>
|
||||||
|
<nz-spin [nzSpinning]="service?.http?.loading"></nz-spin>
|
||||||
|
<div class="bankcard-content p-md">
|
||||||
|
<h3>{{ltdName}}</h3>
|
||||||
|
<div class="member-rights-container">
|
||||||
|
<nz-card class="single-card" *ngFor="let item of list">
|
||||||
|
<div class="bank-account-content">
|
||||||
|
<div class="mr-sm">
|
||||||
|
<nz-avatar [nzSrc]="item.bankLogoUrl" [nzSize]="50"></nz-avatar>
|
||||||
|
</div>
|
||||||
|
<div class="bank-card-right">
|
||||||
|
<div class="bank-card-title">
|
||||||
|
<div class="bank-card-name font-weight-bold text-md">{{ item.bankName }}</div>
|
||||||
|
<div class="text-md">{{item.bankCardNumber}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="bank-account-txt mt-md mb-md">{{ item.bankAccountName }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="text-right">
|
||||||
|
<button nzSize="default" class="del-btn" (click)="del(item)" acl [acl-ability]="['BankCardManagement-Delete']"
|
||||||
|
nz-button>删除</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- <ng-template #actionEdit>
|
||||||
|
<span (click)="edit(item)"><i nz-icon nzType="form" nzTheme="outline"></i></span>
|
||||||
|
</ng-template> -->
|
||||||
|
</nz-card>
|
||||||
|
<button class="single-card add-btn" nz-button nzType="dashed" nzBlock (click)="add()">
|
||||||
|
<i nz-icon nzType="plus" nzTheme="outline" acl [acl-ability]="['BankCardManagement-Add']"></i>添加银行账户
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
@ -0,0 +1,78 @@
|
|||||||
|
:host {
|
||||||
|
::ng-deep {
|
||||||
|
.ant-card-actions {
|
||||||
|
border-color: #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-card {
|
||||||
|
.ant-card-body {
|
||||||
|
padding: 24px 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.member-rights-container {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
|
||||||
|
.single-card {
|
||||||
|
position: relative;
|
||||||
|
width: 320px;
|
||||||
|
height: 150px;
|
||||||
|
margin-right: 20px;
|
||||||
|
border-color: #ccc;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
.default-flag {
|
||||||
|
position: absolute;
|
||||||
|
top: 20px;
|
||||||
|
right: 80px;
|
||||||
|
padding: 0 5px;
|
||||||
|
color: #fff;
|
||||||
|
background-color: #52C41A;
|
||||||
|
border-radius: 1px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.bank-account-content {
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.bank-card-right {
|
||||||
|
flex: 1;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bank-card-title {
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.bank-card-name {
|
||||||
|
display: inline-block;
|
||||||
|
flex: 1;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.bank-account-txt {
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.del-btn {
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
border-radius: 5px;
|
||||||
|
height: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.bankcard-content {
|
||||||
|
height: 100%;
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
import { CwcBankCardManagementIndexComponent } from './index.component';
|
||||||
|
|
||||||
|
describe('CwcBankCardManagementIndexComponent', () => {
|
||||||
|
let component: CwcBankCardManagementIndexComponent;
|
||||||
|
let fixture: ComponentFixture<CwcBankCardManagementIndexComponent>;
|
||||||
|
|
||||||
|
beforeEach(waitForAsync(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [CwcBankCardManagementIndexComponent]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
}));
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
fixture = TestBed.createComponent(CwcBankCardManagementIndexComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@ -0,0 +1,92 @@
|
|||||||
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
|
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||||
|
import { BankCardManagementService } from '../../../services/bank-card-management.service';
|
||||||
|
import { CwcBankCardManagementAddComponent } from '../add/add.component';
|
||||||
|
import { CwcBankCardManagementBindComponent } from '../bind/bind.component';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-cwc-bank-card-management-index',
|
||||||
|
templateUrl: './index.component.html',
|
||||||
|
styleUrls: ['./index.component.less']
|
||||||
|
})
|
||||||
|
export class CwcBankCardManagementIndexComponent implements OnInit {
|
||||||
|
list: any = [];
|
||||||
|
ltdId = '';
|
||||||
|
ltdName = '';
|
||||||
|
constructor(public modal: NzModalService, public service: BankCardManagementService, public router: Router, public ar: ActivatedRoute) { }
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
this.ltdId = this.ar.snapshot.queryParams?.ltdId;
|
||||||
|
this.ltdName = this.ar.snapshot.queryParams?.ltdName;
|
||||||
|
this.getBankList(this.ltdId);
|
||||||
|
}
|
||||||
|
|
||||||
|
getBankList(roleId = '') {
|
||||||
|
this.service.request(this.service.$api_bank_card_list, { roleId, accountType: '3' }).subscribe((res) => {
|
||||||
|
if (res) {
|
||||||
|
this.list = res;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
add() {
|
||||||
|
const modalRef = this.modal.create({
|
||||||
|
nzTitle: '添加银行卡',
|
||||||
|
nzContent: CwcBankCardManagementBindComponent,
|
||||||
|
nzWidth: '40%',
|
||||||
|
nzFooter: null,
|
||||||
|
nzComponentParams: {
|
||||||
|
i: {
|
||||||
|
ltdId: this.ltdId,
|
||||||
|
ltdName: this?.ltdName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
modalRef.afterOpen.subscribe(() => { });
|
||||||
|
modalRef.afterClose.subscribe((result) => {
|
||||||
|
if (result === true) {
|
||||||
|
this.getBankList(this.ltdId);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
edit(record: any) {
|
||||||
|
const modalRef = this.modal.create({
|
||||||
|
nzTitle: '编辑',
|
||||||
|
nzWidth: '700',
|
||||||
|
nzContent: CwcBankCardManagementAddComponent,
|
||||||
|
nzComponentParams: {
|
||||||
|
record,
|
||||||
|
},
|
||||||
|
nzFooter: null,
|
||||||
|
nzMaskClosable: false,
|
||||||
|
});
|
||||||
|
modalRef.afterOpen.subscribe(() => { });
|
||||||
|
modalRef.afterClose.subscribe((result) => {
|
||||||
|
if (result) {
|
||||||
|
this.getBankList();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 删除
|
||||||
|
del(record: any) {
|
||||||
|
this.modal.confirm({
|
||||||
|
nzTitle: '<b>确认删除该银行账户吗?</b>',
|
||||||
|
nzContent: `<p>银行卡号: ${record.bankCardNumber}</p>`,
|
||||||
|
nzOnOk: () =>
|
||||||
|
this.service.request(this.service.$api_bank_card_del, { id: record.id, ltdId: this.ltdId }).subscribe((res) => {
|
||||||
|
if (res === true) {
|
||||||
|
this.service.msgSrv.success('数据删除成功!');
|
||||||
|
this.getBankList();
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
formatBankCard(value: any) {
|
||||||
|
return value.replace(/[^\d]/g, '').replace(/(\d{4})(?=\d)/g, '$1 ');
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -39,12 +39,11 @@
|
|||||||
<nz-card class="search-box">
|
<nz-card class="search-box">
|
||||||
<div nz-row nzGutter="8">
|
<div nz-row nzGutter="8">
|
||||||
<div nz-col [nzXl]="18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
|
<div nz-col [nzXl]="18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
|
||||||
<sf #sf [schema]="searchSchema"
|
<sf #sf [schema]="searchSchema" [ui]="{ '*': { spanLabelFixed: 110,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}"
|
||||||
[ui]="{ '*': { spanLabelFixed: 110,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}" [compact]="true"
|
[compact]="true" [button]="'none'"></sf>
|
||||||
[button]="'none'"></sf>
|
|
||||||
</div>
|
</div>
|
||||||
<div nz-col [nzXl]="6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
|
<div nz-col [nzXl]="6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
|
||||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
<button nz-button nzType="primary" (click)="st?.load(1)">查询</button>
|
||||||
<button nz-button (click)="resetSF()">重置</button>
|
<button nz-button (click)="resetSF()">重置</button>
|
||||||
<button nz-button (click)="exportList()"> 导出</button>
|
<button nz-button (click)="exportList()"> 导出</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st
|
|||||||
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
|
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
|
||||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||||
import { FreightAccountService } from '../../services/freight-account.service';
|
import { FreightAccountService } from '../../services/freight-account.service';
|
||||||
|
import { CwcBankCardManagementBindComponent } from '../bank-card-management/bind/bind.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-platform-account',
|
selector: 'app-platform-account',
|
||||||
@ -21,7 +22,7 @@ export class PlatformAccountComponent implements OnInit {
|
|||||||
info: any = {};
|
info: any = {};
|
||||||
|
|
||||||
static: any = {};
|
static: any = {};
|
||||||
constructor(public service: FreightAccountService, private router: Router, private nzModalService: NzModalService) {}
|
constructor(public service: FreightAccountService, private router: Router, private nzModalService: NzModalService, public modal: NzModalService) { }
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.loadInfo();
|
this.loadInfo();
|
||||||
@ -179,22 +180,63 @@ export class PlatformAccountComponent implements OnInit {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '操作',
|
title: '操作',
|
||||||
width: 100,
|
width: 120,
|
||||||
className: 'text-center',
|
className: 'text-center block-td',
|
||||||
fixed: 'right',
|
fixed: 'right',
|
||||||
buttons: [
|
buttons: [
|
||||||
{
|
{
|
||||||
text: '查看明细',
|
text: '查看明细 ',
|
||||||
click: item =>
|
click: item =>
|
||||||
this.router.navigate(['/financial-management/platform-account/detail/' + item.id], {
|
this.router.navigate(['/financial-management/platform-account/detail/' + item.id], {
|
||||||
queryParams: { ltdId: item.ltdId, bankType: item.bankType, ltdName: `${item.ltdName}(${item.bankTypeLabel})` }
|
queryParams: { ltdId: item.ltdId, bankType: item.bankType, ltdName: `${item.ltdName}(${item.bankTypeLabel})` }
|
||||||
})
|
})
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
text: '绑定银行卡',
|
||||||
|
click: item => this.bindBankcard(item)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '查看银行卡',
|
||||||
|
click: item => this.viewBankcard(item)
|
||||||
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 绑定银行卡
|
||||||
|
*/
|
||||||
|
bindBankcard(item: any) {
|
||||||
|
const modalRef = this.modal.create({
|
||||||
|
nzTitle: '绑定银行卡',
|
||||||
|
nzContent: CwcBankCardManagementBindComponent,
|
||||||
|
nzWidth: '40%',
|
||||||
|
nzFooter: null,
|
||||||
|
nzComponentParams: {
|
||||||
|
i: item
|
||||||
|
}
|
||||||
|
});
|
||||||
|
modalRef.afterOpen.subscribe(() => { });
|
||||||
|
modalRef.afterClose.subscribe((result) => {
|
||||||
|
if (result) this.st.reload();
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查看银行卡
|
||||||
|
*/
|
||||||
|
viewBankcard(item: any) {
|
||||||
|
this.router.navigate(['/financial-management/bank-card-management/index'], {
|
||||||
|
queryParams: {
|
||||||
|
ltdId: item?.ltdId,
|
||||||
|
ltdName: item?.ltdName
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
exportList() {
|
exportList() {
|
||||||
this.service.exportStart( { ...this.sf.value, pageSize: -1 }, this.service.$api_get_exportPlatformAccountBalanceByOperator,);
|
this.service.exportStart({ ...this.sf.value, pageSize: -1 }, this.service.$api_get_exportPlatformAccountBalanceByOperator,);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,6 +33,7 @@ import { AdvanceCollectionComponent } from './components/advance-collection/adva
|
|||||||
import { AdvanceCollectionDetailComponent } from './components/advance-collection/advance-collection-detail/advance-collection-detail.component';
|
import { AdvanceCollectionDetailComponent } from './components/advance-collection/advance-collection-detail/advance-collection-detail.component';
|
||||||
import { RefundRecordComponent } from './components/refund-record/refund-record.component';
|
import { RefundRecordComponent } from './components/refund-record/refund-record.component';
|
||||||
import { AbnormalGoldDetailComponent } from './components/abnormal-gold/abnormal-gold-detail/abnormal-gold-detail.component';
|
import { AbnormalGoldDetailComponent } from './components/abnormal-gold/abnormal-gold-detail/abnormal-gold-detail.component';
|
||||||
|
import { CwcBankCardManagementIndexComponent } from './components/bank-card-management/index/index.component';
|
||||||
|
|
||||||
const routes: Routes = [
|
const routes: Routes = [
|
||||||
{ path: 'freight-account', component: FreightAccountComponent, data: { guard: { ability: ['FINANCIAL-FREIGHT-ACOUNT-list'] } } },
|
{ path: 'freight-account', component: FreightAccountComponent, data: { guard: { ability: ['FINANCIAL-FREIGHT-ACOUNT-list'] } } },
|
||||||
@ -68,11 +69,13 @@ const routes: Routes = [
|
|||||||
{ path: 'receivable-order', component: ReceivableOrderComponent },
|
{ path: 'receivable-order', component: ReceivableOrderComponent },
|
||||||
{ path: 'receivable-order/detail/:id', component: ReceivableOrderDetailComponent },
|
{ path: 'receivable-order/detail/:id', component: ReceivableOrderDetailComponent },
|
||||||
{ path: 'payable-order', component: PayableOrderComponent },
|
{ path: 'payable-order', component: PayableOrderComponent },
|
||||||
{ path: 'payable-order/detail/:id', component: PayableOrderDetailComponent }
|
{ path: 'payable-order/detail/:id', component: PayableOrderDetailComponent },
|
||||||
|
{ path: 'bank-card-management/index', component: CwcBankCardManagementIndexComponent },
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [RouterModule.forChild(routes)],
|
imports: [RouterModule.forChild(routes)],
|
||||||
exports: [RouterModule]
|
exports: [RouterModule]
|
||||||
})
|
})
|
||||||
export class FinancialManagementRoutingModule {}
|
export class FinancialManagementRoutingModule { }
|
||||||
|
|||||||
@ -36,6 +36,9 @@ import { AdvanceCollectionComponent } from './components/advance-collection/adva
|
|||||||
import { AdvanceCollectionDetailComponent } from './components/advance-collection/advance-collection-detail/advance-collection-detail.component';
|
import { AdvanceCollectionDetailComponent } from './components/advance-collection/advance-collection-detail/advance-collection-detail.component';
|
||||||
import { RefundRecordComponent } from './components/refund-record/refund-record.component';
|
import { RefundRecordComponent } from './components/refund-record/refund-record.component';
|
||||||
import { AbnormalGoldDetailComponent } from './components/abnormal-gold/abnormal-gold-detail/abnormal-gold-detail.component';
|
import { AbnormalGoldDetailComponent } from './components/abnormal-gold/abnormal-gold-detail/abnormal-gold-detail.component';
|
||||||
|
import { CwcBankCardManagementIndexComponent } from './components/bank-card-management/index/index.component';
|
||||||
|
import { CwcBankCardManagementBindComponent } from './components/bank-card-management/bind/bind.component';
|
||||||
|
import { CwcBankCardManagementAddComponent } from './components/bank-card-management/add/add.component';
|
||||||
|
|
||||||
const ROUTESCOMPONENTS = [
|
const ROUTESCOMPONENTS = [
|
||||||
FreightAccountComponent,
|
FreightAccountComponent,
|
||||||
@ -68,7 +71,10 @@ const ROUTESCOMPONENTS = [
|
|||||||
AdvanceCollectionComponent,
|
AdvanceCollectionComponent,
|
||||||
AdvanceCollectionDetailComponent,
|
AdvanceCollectionDetailComponent,
|
||||||
RefundRecordComponent,
|
RefundRecordComponent,
|
||||||
AbnormalGoldDetailComponent
|
AbnormalGoldDetailComponent,
|
||||||
|
CwcBankCardManagementIndexComponent,
|
||||||
|
CwcBankCardManagementBindComponent,
|
||||||
|
CwcBankCardManagementAddComponent
|
||||||
];
|
];
|
||||||
|
|
||||||
const NOTROUTECOMPONENTS = [DriverAccountDetailComponent, FreightAccountDetailComponent, ClearingModalComponent];
|
const NOTROUTECOMPONENTS = [DriverAccountDetailComponent, FreightAccountDetailComponent, ClearingModalComponent];
|
||||||
@ -77,4 +83,4 @@ const NOTROUTECOMPONENTS = [DriverAccountDetailComponent, FreightAccountDetailCo
|
|||||||
declarations: [...ROUTESCOMPONENTS, ...NOTROUTECOMPONENTS],
|
declarations: [...ROUTESCOMPONENTS, ...NOTROUTECOMPONENTS],
|
||||||
imports: [CommonModule, FinancialManagementRoutingModule, SharedModule]
|
imports: [CommonModule, FinancialManagementRoutingModule, SharedModule]
|
||||||
})
|
})
|
||||||
export class FinancialManagementModule {}
|
export class FinancialManagementModule { }
|
||||||
|
|||||||
@ -0,0 +1,14 @@
|
|||||||
|
import { Injectable, Injector } from '@angular/core';
|
||||||
|
import { BaseService } from '@shared';
|
||||||
|
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root'
|
||||||
|
})
|
||||||
|
export class BankCardManagementService extends BaseService {
|
||||||
|
$api_bank_card_list = `/api/fcc/bankInfoOBC/list/myBankInfo`; // 获取银行卡列表
|
||||||
|
$api_bank_card_del = `/api/fcc/bankInfoOBC/delete`; // 删除银行卡
|
||||||
|
$api_bank_card_add = `/api/fcc/bankInfoOBC/save`;//新增银行卡
|
||||||
|
constructor(public injector: Injector) {
|
||||||
|
super(injector);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -4,23 +4,29 @@
|
|||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2021-12-15 13:17:42
|
* @Date : 2021-12-15 13:17:42
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-04-21 14:41:44
|
* @LastEditTime : 2022-04-22 11:03:26
|
||||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\audit\\voucher-view\\voucher-view.component.html
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\audit\\voucher-view\\voucher-view.component.html
|
||||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
-->
|
-->
|
||||||
<div class="sfBox" [ngClass]="Status !== 1 ? 'hideBtn' : ''">
|
<div class="sfBox" [ngClass]="Status !== 1 ? 'hideBtn' : ''">
|
||||||
<sf #sf mode="edit" [schema]="schema" [ui]="ui" [formData]="formData" button="none">
|
<sf #sf mode="edit" [schema]="schema" [ui]="ui" [formData]="formData" button="none">
|
||||||
<ng-template sf-template="no0" let-me let-ui="ui" let-schema="schema">
|
<ng-template sf-template="no0" let-me let-ui="ui" let-schema="schema">
|
||||||
<div style="color: #1890FF" >
|
<div style="color: #1890ff">
|
||||||
<div (click)="openlaod(1)">电子装货单 <span style="color: red;">
|
<div (click)="openlaod(1)"
|
||||||
|
>电子装货单
|
||||||
|
<!-- <span style="color: red;">
|
||||||
{{datas?.loadingElectronicsLadingBillFilePath ? '已签署' :'未签署'}}
|
{{datas?.loadingElectronicsLadingBillFilePath ? '已签署' :'未签署'}}
|
||||||
</span></div>
|
</span> -->
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<ng-template sf-template="no6" let-me let-ui="ui" let-schema="schema">
|
<ng-template sf-template="no6" let-me let-ui="ui" let-schema="schema">
|
||||||
<div style="color: #1890FF" (click)="openlaod(2)">电子卸货单<span style="color: red;"> {{datas?.unloadingElectronicsLadingBillFilePath ? '已签署' :'未签署'}}</span></div>
|
<div style="color: #1890ff" (click)="openlaod(2)"
|
||||||
|
>电子卸货单
|
||||||
|
<!-- <span style="color: red;"> {{datas?.unloadingElectronicsLadingBillFilePath ? '已签署' :'未签署'}}</span> -->
|
||||||
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</sf>
|
</sf>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
|
|||||||
@ -575,99 +575,116 @@ export class orderManagementVoucherViewComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
openlaod(value: any) {
|
openlaod(value: any) {
|
||||||
if (value === 1) {
|
if (value === 1) {
|
||||||
// 逻辑: 先判断电子提货单是否已生成,文件为空则触发签署文件,再查询是否签署成功,成功则退出,刷新页面,再次点击为预览
|
this.service.request(this.service.$api_getBillTakeGoods, {id:this.datas?.id}).subscribe(res => {
|
||||||
let time = 10;
|
|
||||||
setInterval(function () {
|
|
||||||
time -= 1;
|
|
||||||
}, 1000);
|
|
||||||
const modal = this.modalService.success({
|
|
||||||
nzTitle: '电子装货单签署中!',
|
|
||||||
nzContent: `
|
|
||||||
请等待${time}秒后自动关闭
|
|
||||||
`
|
|
||||||
});
|
|
||||||
if (!this.datas?.loadingElectronicsLadingBillFilePath) {
|
|
||||||
this.service.request(this.service.$api_createBillTakeGoods, [this.datas?.id]).subscribe(res => {
|
|
||||||
if (res) {
|
if (res) {
|
||||||
switch (res[0]?.esignFlowStatus) {
|
console.log(res);
|
||||||
case 1:
|
window.open(res?.contractFilePath)
|
||||||
case '1':
|
|
||||||
setTimeout(() => {
|
|
||||||
this.service.request(this.service.$api_getBillTakeEsignFile, [this.datas?.id]).subscribe(res => {
|
|
||||||
if (res[0]?.esignFlowStatus == '2') {
|
|
||||||
this.service.msgSrv.success('电子装货单已生效!');
|
|
||||||
this.modal.destroy(true);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
modal.destroy();
|
|
||||||
}, 10000);
|
|
||||||
return;
|
|
||||||
case 2:
|
|
||||||
modal.destroy();
|
|
||||||
return;
|
|
||||||
case '13':
|
|
||||||
case 13:
|
|
||||||
this.service.msgSrv.error('签署异常!');
|
|
||||||
modal.destroy();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
const a = document.createElement('a');
|
this.service.request(this.service.$api_getBillDischargeGoods, {id:this.datas?.id}).subscribe(res => {
|
||||||
a.href = this.datas?.loadingElectronicsLadingBillFilePath;
|
|
||||||
document.body.appendChild(a);
|
|
||||||
a.click(); //点击下载
|
|
||||||
document.body.removeChild(a); //下载完成移除元素
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 逻辑: 先判断电子提货单是否已生成,文件为空则触发签署文件,再查询是否签署成功,成功则退出,刷新页面,再次点击为预览
|
|
||||||
let time = 10;
|
|
||||||
setInterval(function () {
|
|
||||||
time -= 1;
|
|
||||||
}, 1000); //反复执行函数本身
|
|
||||||
const modal = this.modalService.success({
|
|
||||||
nzTitle: '电子卸货单签署中!',
|
|
||||||
nzContent: `
|
|
||||||
请等待${time}秒后自动关闭
|
|
||||||
`
|
|
||||||
});
|
|
||||||
if (!this.datas?.unloadingElectronicsLadingBillFilePath) {
|
|
||||||
this.service.request(this.service.$api_createBillDischargeGoods, [this.datas?.id]).subscribe(res => {
|
|
||||||
if (res) {
|
if (res) {
|
||||||
switch (res[0]?.esignFlowStatus) {
|
console.log(res);
|
||||||
case 1:
|
window.open(res?.contractFilePath)
|
||||||
case '1':
|
|
||||||
setTimeout(() => {
|
|
||||||
this.service.request(this.service.$api_getBillDischargeEsignFile, [this.datas?.id]).subscribe(res => {
|
|
||||||
if (res[0]?.esignFlowStatus == '2') {
|
|
||||||
this.service.msgSrv.success('电子卸货单已生效!');
|
|
||||||
this.modal.destroy(true);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
modal.destroy();
|
}
|
||||||
}, 10000);
|
}
|
||||||
|
// openlaod2(value: any) {
|
||||||
|
// if (value === 1) {
|
||||||
|
// // 逻辑: 先判断电子提货单是否已生成,文件为空则触发签署文件,再查询是否签署成功,成功则退出,刷新页面,再次点击为预览
|
||||||
|
// let time = 10;
|
||||||
|
// setInterval(function () {
|
||||||
|
// time -= 1;
|
||||||
|
// }, 1000);
|
||||||
|
// const modal = this.modalService.success({
|
||||||
|
// nzTitle: '电子装货单签署中!',
|
||||||
|
// nzContent: `
|
||||||
|
// 请等待${time}秒后自动关闭
|
||||||
|
// `
|
||||||
|
// });
|
||||||
|
// if (!this.datas?.loadingElectronicsLadingBillFilePath) {
|
||||||
|
// this.service.request(this.service.$api_createBillTakeGoods, [this.datas?.id]).subscribe(res => {
|
||||||
|
// if (res) {
|
||||||
|
// switch (res[0]?.esignFlowStatus) {
|
||||||
|
// case 1:
|
||||||
|
// case '1':
|
||||||
|
// setTimeout(() => {
|
||||||
|
// this.service.request(this.service.$api_getBillTakeEsignFile, [this.datas?.id]).subscribe(res => {
|
||||||
|
// if (res[0]?.esignFlowStatus == '2') {
|
||||||
|
// this.service.msgSrv.success('电子装货单已生效!');
|
||||||
|
// this.modal.destroy(true);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// modal.destroy();
|
||||||
|
// }, 10000);
|
||||||
|
// return;
|
||||||
|
// case 2:
|
||||||
|
// modal.destroy();
|
||||||
|
// return;
|
||||||
|
// case '13':
|
||||||
|
// case 13:
|
||||||
|
// this.service.msgSrv.error('签署异常!');
|
||||||
|
// modal.destroy();
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// } else {
|
||||||
|
// const a = document.createElement('a');
|
||||||
|
// a.href = this.datas?.loadingElectronicsLadingBillFilePath;
|
||||||
|
// document.body.appendChild(a);
|
||||||
|
// a.click(); //点击下载
|
||||||
|
// document.body.removeChild(a); //下载完成移除元素
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// // 逻辑: 先判断电子提货单是否已生成,文件为空则触发签署文件,再查询是否签署成功,成功则退出,刷新页面,再次点击为预览
|
||||||
|
// let time = 10;
|
||||||
|
// setInterval(function () {
|
||||||
|
// time -= 1;
|
||||||
|
// }, 1000); //反复执行函数本身
|
||||||
|
// const modal = this.modalService.success({
|
||||||
|
// nzTitle: '电子卸货单签署中!',
|
||||||
|
// nzContent: `
|
||||||
|
// 请等待${time}秒后自动关闭
|
||||||
|
// `
|
||||||
|
// });
|
||||||
|
// if (!this.datas?.unloadingElectronicsLadingBillFilePath) {
|
||||||
|
// this.service.request(this.service.$api_createBillDischargeGoods, [this.datas?.id]).subscribe(res => {
|
||||||
|
// if (res) {
|
||||||
|
// switch (res[0]?.esignFlowStatus) {
|
||||||
|
// case 1:
|
||||||
|
// case '1':
|
||||||
|
// setTimeout(() => {
|
||||||
|
// this.service.request(this.service.$api_getBillDischargeEsignFile, [this.datas?.id]).subscribe(res => {
|
||||||
|
// if (res[0]?.esignFlowStatus == '2') {
|
||||||
|
// this.service.msgSrv.success('电子卸货单已生效!');
|
||||||
|
// this.modal.destroy(true);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// modal.destroy();
|
||||||
|
// }, 10000);
|
||||||
|
|
||||||
return;
|
// return;
|
||||||
case 2:
|
// case 2:
|
||||||
modal.destroy();
|
// modal.destroy();
|
||||||
|
|
||||||
return;
|
// return;
|
||||||
case '13':
|
// case '13':
|
||||||
case 13:
|
// case 13:
|
||||||
this.service.msgSrv.error('签署异常!');
|
// this.service.msgSrv.error('签署异常!');
|
||||||
modal.destroy();
|
// modal.destroy();
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
} else {
|
// } else {
|
||||||
const a = document.createElement('a');
|
// const a = document.createElement('a');
|
||||||
a.href = this.datas?.unloadingElectronicsLadingBillFilePath;
|
// a.href = this.datas?.unloadingElectronicsLadingBillFilePath;
|
||||||
document.body.appendChild(a);
|
// document.body.appendChild(a);
|
||||||
a.click(); //点击下载
|
// a.click(); //点击下载
|
||||||
document.body.removeChild(a); //下载完成移除元素
|
// document.body.removeChild(a); //下载完成移除元素
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2021-12-03 15:31:52
|
* @Date : 2021-12-03 15:31:52
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-04-19 15:16:37
|
* @LastEditTime : 2022-04-22 10:54:29
|
||||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\services\\order-management.service.ts
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\services\\order-management.service.ts
|
||||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
*/
|
*/
|
||||||
@ -209,11 +209,14 @@ export class OrderManagementService extends ShipperBaseService {
|
|||||||
// 查看补充协议
|
// 查看补充协议
|
||||||
public $api_getSupplementaryAgreement = `/api/sdc/billShipper/getSupplementaryAgreement`;
|
public $api_getSupplementaryAgreement = `/api/sdc/billShipper/getSupplementaryAgreement`;
|
||||||
|
|
||||||
|
|
||||||
// 获取电子提货单签章附件
|
// 获取电子提货单签章附件
|
||||||
public $api_getBillTakeEsignFile = `/api/sdc/billOperate/getBillTakeEsignFile`;
|
public $api_getBillTakeEsignFile = `/api/sdc/billOperate/getBillTakeEsignFile`;
|
||||||
// 获取电子卸货单签章附件
|
// 获取电子卸货单签章附件
|
||||||
public $api_getBillDischargeEsignFile = `/api/sdc/billOperate/getBillDischargeEsignFile`;
|
public $api_getBillDischargeEsignFile = `/api/sdc/billOperate/getBillDischargeEsignFile`;
|
||||||
|
// 预览卸货单
|
||||||
|
public $api_getBillDischargeGoods = `/api/sdc/billOperate/getBillDischargeGoods`;
|
||||||
|
// 预览提货单
|
||||||
|
public $api_getBillTakeGoods = `/api/sdc/billOperate/getBillTakeGoods`;
|
||||||
|
|
||||||
// // 生成卸货单
|
// // 生成卸货单
|
||||||
// public $api_createBillDischargeGoods = `/api/sdc/billOperate/createBillDischargeGoods`;
|
// public $api_createBillDischargeGoods = `/api/sdc/billOperate/createBillDischargeGoods`;
|
||||||
|
|||||||
@ -73,7 +73,9 @@ export class PartnerListComponent {
|
|||||||
nzFooter: null
|
nzFooter: null
|
||||||
});
|
});
|
||||||
modal.afterClose.subscribe(res => {
|
modal.afterClose.subscribe(res => {
|
||||||
modal.destroy();
|
if (res) {
|
||||||
|
this.st.load(1);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
import { Component, Input, OnInit, ViewChild } from '@angular/core';
|
import { Component, Input, OnInit, ViewChild } from '@angular/core';
|
||||||
import { SFComponent, SFSchema, SFValue } from '@delon/form';
|
import { SFComponent, SFSchema, SFValue } from '@delon/form';
|
||||||
|
import { ModalHelper } from '@delon/theme';
|
||||||
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
|
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
|
||||||
import { PartnerListService } from '../../services/partner-list.service';
|
import { PartnerListService } from '../../services/partner-list.service';
|
||||||
|
|
||||||
@ -15,7 +16,7 @@ export class PartnerAuditModalComponent implements OnInit {
|
|||||||
info: any;
|
info: any;
|
||||||
schema!: SFSchema;
|
schema!: SFSchema;
|
||||||
sourcePage = '';
|
sourcePage = '';
|
||||||
constructor(private nzModalService: NzModalService, public service: PartnerListService) {}
|
constructor(private nzModalService: NzModalService, public service: PartnerListService, private modal: NzModalRef) {}
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.initSF(this.info);
|
this.initSF(this.info);
|
||||||
@ -49,7 +50,7 @@ export class PartnerAuditModalComponent implements OnInit {
|
|||||||
widget: 'radio',
|
widget: 'radio',
|
||||||
hidden: this.info.isPass !== undefined
|
hidden: this.info.isPass !== undefined
|
||||||
},
|
},
|
||||||
default: true
|
default: this.info.isPass !== undefined ? this.info.isPass : true
|
||||||
},
|
},
|
||||||
channelId: {
|
channelId: {
|
||||||
title: '渠道销售',
|
title: '渠道销售',
|
||||||
@ -121,7 +122,7 @@ export class PartnerAuditModalComponent implements OnInit {
|
|||||||
.subscribe(res => {
|
.subscribe(res => {
|
||||||
if (res) {
|
if (res) {
|
||||||
this.service.msgSrv.success('审核成功!');
|
this.service.msgSrv.success('审核成功!');
|
||||||
this.close();
|
this.modal.destroy(1);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -142,6 +142,12 @@ export class PartnerDetailComponent implements OnInit, OnDestroy {
|
|||||||
nzComponentParams: { info: { ...this.detailData, isPass }, sourcePage: '合伙人审核详情' },
|
nzComponentParams: { info: { ...this.detailData, isPass }, sourcePage: '合伙人审核详情' },
|
||||||
nzFooter: null
|
nzFooter: null
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modal.afterClose.subscribe(res => {
|
||||||
|
if (res) {
|
||||||
|
this.initData();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ratify() {
|
ratify() {
|
||||||
@ -370,7 +376,7 @@ export class PartnerDetailComponent implements OnInit, OnDestroy {
|
|||||||
buttons: [
|
buttons: [
|
||||||
{
|
{
|
||||||
text: '详情',
|
text: '详情',
|
||||||
click: (item) => this.service.showChangeDetail(item.id)
|
click: item => this.service.showChangeDetail(item.id)
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@ -130,6 +130,12 @@ export class PersonalPartnerDetailComponent implements OnInit {
|
|||||||
},
|
},
|
||||||
nzFooter: null
|
nzFooter: null
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modal.afterClose.subscribe(res => {
|
||||||
|
if (res) {
|
||||||
|
this.initData();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ratify() {
|
ratify() {
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2022-03-28 14:53:52
|
* @Date : 2022-03-28 14:53:52
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-03-28 17:03:21
|
* @LastEditTime : 2022-04-22 10:30:33
|
||||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add-partnerlist\\add-partnerlist.component.html
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add-partnerlist\\add-partnerlist.component.html
|
||||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
-->
|
-->
|
||||||
@ -25,6 +25,6 @@
|
|||||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false"
|
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false"
|
||||||
[scroll]="{ x: '1000' }">
|
[scroll]="{ x: '1000' }">
|
||||||
</st>
|
</st>
|
||||||
<button *ngIf="selectedIndex===0" (click)="batchReply()" nz-button nzType="primary" acl
|
<button style="float: right;" *ngIf="selectedIndex===0" (click)="batchReply()" nz-button nzType="primary" acl
|
||||||
[acl-ability]="['AbnormalAppear-batchReply']">批量回复</button>
|
[acl-ability]="['AbnormalAppear-batchReply']">批量选择</button>
|
||||||
</nz-card>
|
</nz-card>
|
||||||
|
|||||||
@ -128,7 +128,7 @@ export class ParterRebateManageMentAddPartnerListComponent implements OnInit {
|
|||||||
// 回复操作
|
// 回复操作
|
||||||
add(item: any) {
|
add(item: any) {
|
||||||
console.log(item);
|
console.log(item);
|
||||||
this.modals.destroy(item);
|
this.modals.destroy([item]);
|
||||||
}
|
}
|
||||||
// 批量回复操作
|
// 批量回复操作
|
||||||
batchReply() {
|
batchReply() {
|
||||||
|
|||||||
@ -4,38 +4,44 @@
|
|||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2022-02-24 20:09:49
|
* @Date : 2022-02-24 20:09:49
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-03-29 10:47:02
|
* @LastEditTime : 2022-04-22 14:29:23
|
||||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add\\add.component.html
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add\\add.component.html
|
||||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
-->
|
-->
|
||||||
<page-header-wrapper [title]="'新增'"> </page-header-wrapper>
|
<page-header-wrapper [title]="'新增'"> </page-header-wrapper>
|
||||||
<nz-card>
|
<nz-card>
|
||||||
<div nz-row>
|
|
||||||
|
|
||||||
<!-- 数据列表 -->
|
<!-- 数据列表 -->
|
||||||
<sv-container col="1">
|
<sv-container col="1">
|
||||||
<sv label="配置名称"> <input style="max-width: 400px;" nz-input placeholder="请输入" [(ngModel)]="configName" /></sv>
|
<sv label="配置名称"> <input style="max-width: 400px;" nz-input placeholder="请输入" [(ngModel)]="configName" /></sv>
|
||||||
|
|
||||||
<sv-title>固定结算费率配置</sv-title>
|
<sv-title>固定结算费率配置</sv-title>
|
||||||
<sv label="固定结算费率"> <nz-input-number [(ngModel)]="accountingRate" [nzPrecision]="precision" nzPlaceHolder="请输入"></nz-input-number> %</sv>
|
|
||||||
|
<sv label="固定结算费率"> <nz-input-number [(ngModel)]="accountingRate" [nzPrecision]="precision" nzPlaceHolder="请输入"></nz-input-number> %</sv>
|
||||||
|
|
||||||
<sv-title>业务量和管理费比例配置</sv-title>
|
<sv-title>业务量和管理费比例配置</sv-title>
|
||||||
<sv label="选择配置类型">
|
|
||||||
|
<sv label="选择配置类型">
|
||||||
<nz-radio-group [(ngModel)]="configType">
|
<nz-radio-group [(ngModel)]="configType">
|
||||||
<label nz-radio nzValue="1">按全部等级配置</label>
|
<label nz-radio nzValue="1">按全部等级配置</label>
|
||||||
<label nz-radio nzValue="2">按不同等级配置</label>
|
<label nz-radio nzValue="2">按不同等级配置</label>
|
||||||
</nz-radio-group>
|
</nz-radio-group>
|
||||||
</sv>
|
</sv>
|
||||||
<sv col="1">
|
|
||||||
|
<sv col="1" >
|
||||||
|
<div style='width: 850px'>
|
||||||
<app-rebate-table #table [(data)]='tabelData'></app-rebate-table>
|
<app-rebate-table #table [(data)]='tabelData'></app-rebate-table>
|
||||||
|
</div>
|
||||||
</sv>
|
</sv>
|
||||||
|
|
||||||
<sv-title>关联合伙人配置</sv-title>
|
<sv-title>关联合伙人配置</sv-title>
|
||||||
<sv label="合伙人选择">
|
|
||||||
<nz-select [(ngModel)]="partnerType" style="max-width: 400px; min-width: 200px;">
|
<sv label="合伙人选择">
|
||||||
|
<nz-select [(ngModel)]="partnerType" (ngModelChange)="changePartner(partnerType)" style="max-width: 400px; min-width: 200px;">
|
||||||
<nz-option nzValue="1" nzLabel="全部合伙人"></nz-option>
|
<nz-option nzValue="1" nzLabel="全部合伙人"></nz-option>
|
||||||
<nz-option nzValue="2" nzLabel="新注册合伙人"></nz-option>
|
<nz-option nzValue="2" nzLabel="新注册合伙人"></nz-option>
|
||||||
<nz-option nzValue="3" nzLabel="自定义合伙人"></nz-option>
|
<nz-option nzValue="3" nzLabel="自定义合伙人"></nz-option>
|
||||||
</nz-select>
|
</nz-select>
|
||||||
<span style="color: #0000FF;" (click)="add()">添加</span>
|
<span *ngIf="addStatus" style="padding-left: 15px; color: #0000FF;" (click)="add()">添加</span>
|
||||||
<st *ngIf="partnerPeopleList?.length > 0" #st [data]="partnerPeopleList" [columns]="columns"
|
<st *ngIf="partnerPeopleList?.length > 0" #st [data]="partnerPeopleList" [columns]="columns"
|
||||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' } }"
|
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' } }"
|
||||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||||
@ -43,7 +49,8 @@
|
|||||||
[scroll]="{ x: '1000' }">
|
[scroll]="{ x: '1000' }">
|
||||||
</st>
|
</st>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="优先级" col="1">
|
|
||||||
|
<sv label="优先级" col="1">
|
||||||
<nz-select [(ngModel)]="priority" style="max-width: 400px; min-width: 200px;">
|
<nz-select [(ngModel)]="priority" style="max-width: 400px; min-width: 200px;">
|
||||||
<nz-option nzValue=1 nzLabel="1">1</nz-option>
|
<nz-option nzValue=1 nzLabel="1">1</nz-option>
|
||||||
<nz-option nzValue=2 nzLabel="2">2</nz-option>
|
<nz-option nzValue=2 nzLabel="2">2</nz-option>
|
||||||
@ -52,19 +59,22 @@
|
|||||||
<nz-option nzValue=5 nzLabel="5">5</nz-option>
|
<nz-option nzValue=5 nzLabel="5">5</nz-option>
|
||||||
</nz-select>
|
</nz-select>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="规则说明" col="1">
|
|
||||||
<sf #sf mode="edit" [schema]="schema1" [ui]="{ '*': { spanLabelFixed: 10, grid: { span: 16 }} }"
|
<sv label="规则说明" col="1">
|
||||||
|
<sf #sf mode="edit" [schema]="schema1" [ui]="{ '*': { spanLabelFixed: 10, grid: { span: 12 }} }"
|
||||||
button="none"> </sf>
|
button="none"> </sf>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="备注" col="1">
|
|
||||||
|
<sv label="备注" col="1" style="margin-top: 16px;">
|
||||||
<textarea style="max-width: 400px; min-width: 200px;" rows="4" nz-input [(ngModel)]="remarke"></textarea>
|
<textarea style="max-width: 400px; min-width: 200px;" rows="4" nz-input [(ngModel)]="remarke"></textarea>
|
||||||
</sv>
|
</sv>
|
||||||
|
|
||||||
</sv-container>
|
</sv-container>
|
||||||
|
|
||||||
<div class="align-center" style="margin-top: 15px;">
|
<div class="align-center" style="margin-top: 15px;">
|
||||||
<button nz-button nzType="primary" (click)="goBack()">取消</button>
|
<button nz-button nzType="primary" (click)="goBack()">取消</button>
|
||||||
<button nz-button nzType="primary" style="margin-left: 48px" (click)="save()"
|
<button nz-button nzType="primary" style="margin-left: 48px" (click)="save()"
|
||||||
acl [acl-ability]="['SUPPLY-VEHICLE-AMEND-submitChange']">提交</button
|
acl [acl-ability]="['SUPPLY-VEHICLE-AMEND-submitChange']">提交</button
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</nz-card>
|
</nz-card>
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2022-03-21 09:26:45
|
* @Date : 2022-03-21 09:26:45
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-03-29 10:53:39
|
* @LastEditTime : 2022-04-22 15:01:43
|
||||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add\\add.component.ts
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add\\add.component.ts
|
||||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
*/
|
*/
|
||||||
@ -26,12 +26,13 @@ import { inRange } from '@delon/util';
|
|||||||
export class ParterRebateManageMentAddComponent implements OnInit {
|
export class ParterRebateManageMentAddComponent implements OnInit {
|
||||||
@ViewChild('table') table!: any;
|
@ViewChild('table') table!: any;
|
||||||
tabelData: any;
|
tabelData: any;
|
||||||
|
addStatus: boolean = false;
|
||||||
configName: string = '';
|
configName: string = '';
|
||||||
partnerType: string = '';
|
partnerType: string = '';
|
||||||
remarke: string = '';
|
remarke: string = '';
|
||||||
accountingRate: Number = 0;
|
accountingRate: Number = 0;
|
||||||
priority: string = '';
|
priority: string = '';
|
||||||
partnerPeopleList: any;
|
partnerPeopleList: any = [];
|
||||||
configType = '1';
|
configType = '1';
|
||||||
precision = 2;
|
precision = 2;
|
||||||
partnerId :Array<string> =[];
|
partnerId :Array<string> =[];
|
||||||
@ -78,7 +79,7 @@ export class ParterRebateManageMentAddComponent implements OnInit {
|
|||||||
widget: 'tinymce',
|
widget: 'tinymce',
|
||||||
loadingTip: 'loading...',
|
loadingTip: 'loading...',
|
||||||
config: {
|
config: {
|
||||||
height: 650
|
height: 500,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// default: data?.agreementContent || ''
|
// default: data?.agreementContent || ''
|
||||||
@ -87,6 +88,7 @@ export class ParterRebateManageMentAddComponent implements OnInit {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
|
this.addStatus =false
|
||||||
this.initSF();
|
this.initSF();
|
||||||
}
|
}
|
||||||
goBack() {
|
goBack() {
|
||||||
@ -108,22 +110,25 @@ export class ParterRebateManageMentAddComponent implements OnInit {
|
|||||||
modalRef.afterClose.subscribe((res: any) => {
|
modalRef.afterClose.subscribe((res: any) => {
|
||||||
this.partnerId = [];
|
this.partnerId = [];
|
||||||
if (res) {
|
if (res) {
|
||||||
console.log(Array.isArray(res));
|
|
||||||
console.log(res);
|
|
||||||
if(Array.isArray(res)) {
|
if(Array.isArray(res)) {
|
||||||
this.partnerPeopleList = res;
|
console.log(res);
|
||||||
|
console.log(this.partnerPeopleList);
|
||||||
|
this.partnerPeopleList = this.partnerPeopleList.concat(res);
|
||||||
res.forEach((ele: any) => {
|
res.forEach((ele: any) => {
|
||||||
this.partnerId.push(ele?.id);
|
this.partnerId.push(ele?.id);
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
this.partnerPeopleList = [res];
|
console.log(res);
|
||||||
|
this.partnerPeopleList = this.partnerPeopleList.concat(res);
|
||||||
this.partnerId.push(res?.id);
|
this.partnerId.push(res?.id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
delete(item: any) {
|
delete(item: any) {
|
||||||
console.log(item);
|
this.partnerPeopleList = this.partnerPeopleList.filter((d:any, i: any) => {
|
||||||
|
return item.id != d.id
|
||||||
|
});
|
||||||
}
|
}
|
||||||
save () {
|
save () {
|
||||||
const params = {
|
const params = {
|
||||||
@ -146,4 +151,10 @@ export class ParterRebateManageMentAddComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
changePartner(value: any) {
|
||||||
|
console.log(value);
|
||||||
|
if(value) {
|
||||||
|
this.addStatus = true
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* @Author: your name
|
* @Author: your name
|
||||||
* @Date: 2021-12-20 17:18:43
|
* @Date: 2021-12-20 17:18:43
|
||||||
* @LastEditTime : 2022-04-20 16:48:26
|
* @LastEditTime : 2022-04-22 14:50:25
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\sys-setting\\services\\system.service.ts
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\sys-setting\\services\\system.service.ts
|
||||||
@ -64,7 +64,7 @@ export class SystemService extends BaseService {
|
|||||||
$api_deletebatch_crmCustomer = '/api/mdc/cuc/crmCustomer/deletebatch';
|
$api_deletebatch_crmCustomer = '/api/mdc/cuc/crmCustomer/deletebatch';
|
||||||
|
|
||||||
// 获取某个应用的所有菜单
|
// 获取某个应用的所有菜单
|
||||||
$api_getAllFunctionInfoByAppId: string = '/api/mdc/cuc/functionInfo/getAllFunctionInfoByAppIdNoHide';
|
$api_getAllFunctionInfoByAppId: string = '/api/mdc/cuc/functionInfo/getAllFunctionInfoByAppId';
|
||||||
|
|
||||||
// 查询网络货运信息表
|
// 查询网络货运信息表
|
||||||
$api_networkTransporter_page = '/api/mdc/cuc/networkTransporter/list/page';
|
$api_networkTransporter_page = '/api/mdc/cuc/networkTransporter/list/page';
|
||||||
|
|||||||
@ -8,42 +8,30 @@
|
|||||||
<ng-template #content>
|
<ng-template #content>
|
||||||
<div class="user-info" nz-row>
|
<div class="user-info" nz-row>
|
||||||
<div nz-col nzSpan="24" class="d-flex">
|
<div nz-col nzSpan="24" class="d-flex">
|
||||||
<img [src]="detailData?.enterpriseLogo" style="width: 120px;" />
|
<img [src]="detailData?.enterpriseLogo" style="width: 120px" />
|
||||||
<div style="flex: 1;">
|
<div style="flex: 1">
|
||||||
<div nz-row>
|
<div nz-row>
|
||||||
<div nz-col [nzLg]="12" [nzSm]="24" [nzXs]="24">
|
<div nz-col [nzLg]="12" [nzSm]="24" [nzXs]="24">
|
||||||
<p style="margin-bottom: 0;">{{ detailData?.enterpriseName }}</p>
|
<p style="margin-bottom: 0">{{ detailData?.enterpriseName }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div nz-col [nzLg]="12" [nzSm]="24" [nzXs]="24" class="text-right mb-sm">
|
<div nz-col [nzLg]="12" [nzSm]="24" [nzXs]="24" class="text-right mb-sm">
|
||||||
<label style="font-size: 18px;font-weight: 600;">{{statusE[detailData?.approvalStatus] }}</label>
|
<label style="font-size: 18px; font-weight: 600">{{ statusE[detailData?.approvalStatus] }}</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div nz-row>
|
<div nz-row>
|
||||||
<div nz-col [nzLg]="8" [nzSm]="24" [nzXs]="24">
|
<div nz-col [nzLg]="8" [nzSm]="24" [nzXs]="24">
|
||||||
<p>{{ detailData?.unifiedSocialCreditCode }}</p>
|
<p>{{ detailData?.unifiedSocialCreditCode }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div nz-col [nzLg]="8" [nzSm]="24" [nzXs]="24">
|
<div nz-col [nzLg]="8" [nzSm]="24" [nzXs]="24"> 申请时间:{{ detailData?.createTime }} </div>
|
||||||
申请时间:{{detailData?.createTime}}
|
<div nz-col [nzXl]="8" [nzLg]="8" [nzSm]="24" [nzXs]="24" class="d-flex" style="justify-content: flex-end">
|
||||||
</div>
|
<ng-container *ngIf="isEdit; else editButton">
|
||||||
<div nz-col [nzXl]="8" [nzLg]="8" [nzSm]="24" [nzXs]="24" class="d-flex" style="justify-content: flex-end;">
|
<button [nzLoading]="service.http.loading" nz-button (click)="reset()"> 取消 </button>
|
||||||
<ng-container *ngIf="isEdit;else editButton">
|
<button [nzLoading]="service.http.loading" nz-button nzDanger (click)="save()"> 保存 </button>
|
||||||
<button [nzLoading]="service.http.loading" nz-button (click)="reset()">
|
|
||||||
取消
|
|
||||||
</button>
|
|
||||||
<button [nzLoading]="service.http.loading" nz-button nzDanger (click)="save()">
|
|
||||||
保存
|
|
||||||
</button>
|
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-template #editButton>
|
<ng-template #editButton>
|
||||||
<button [nzLoading]="service.http.loading" nz-button nzDanger (click)="auditPass()">
|
<button [nzLoading]="service.http.loading" nz-button nzDanger (click)="auditPass()"> 通过 </button>
|
||||||
通过
|
<button [nzLoading]="service.http.loading" nz-button nzDanger (click)="auditNo()"> 驳回 </button>
|
||||||
</button>
|
<button [nzLoading]="service.http.loading" nz-button nzDanger (click)="ratify()"> 修改 </button>
|
||||||
<button [nzLoading]="service.http.loading" nz-button nzDanger (click)="auditNo()">
|
|
||||||
驳回
|
|
||||||
</button>
|
|
||||||
<button [nzLoading]="service.http.loading" nz-button nzDanger (click)="ratify()">
|
|
||||||
修改
|
|
||||||
</button>
|
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -53,34 +41,76 @@
|
|||||||
</ng-template>
|
</ng-template>
|
||||||
</page-header-wrapper>
|
</page-header-wrapper>
|
||||||
|
|
||||||
<nz-card [class]="isEdit?'edit-box':'readOnly-box'">
|
<nz-card [class]="isEdit ? 'edit-box' : 'readOnly-box'">
|
||||||
<sv-container col="3">
|
<sv-container col="3">
|
||||||
<sv-title>企业管理员信息</sv-title>
|
<sv-title>企业管理员信息</sv-title>
|
||||||
<sv label="姓名">
|
<sv label="姓名">
|
||||||
<input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.name" [readonly]="!isEdit"
|
<input
|
||||||
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
|
nz-input
|
||||||
|
type="text"
|
||||||
|
[(ngModel)]="detailData.adminUserInfo.name"
|
||||||
|
[readonly]="!isEdit"
|
||||||
|
[nzBorderless]="!isEdit"
|
||||||
|
[placeholder]="isEdit ? '' : '-'"
|
||||||
|
/>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="手机号">
|
<sv label="手机号">
|
||||||
<input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.mobile" [readonly]="!isEdit"
|
<input
|
||||||
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
|
nz-input
|
||||||
|
type="text"
|
||||||
|
[(ngModel)]="detailData.adminUserInfo.mobile"
|
||||||
|
[readonly]="!isEdit"
|
||||||
|
[nzBorderless]="!isEdit"
|
||||||
|
[placeholder]="isEdit ? '' : '-'"
|
||||||
|
/>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="身份证号">
|
<sv label="身份证号">
|
||||||
<input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.certificateNumber" [readonly]="!isEdit"
|
<input
|
||||||
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
|
nz-input
|
||||||
|
type="text"
|
||||||
|
[(ngModel)]="detailData.adminUserInfo.certificateNumber"
|
||||||
|
[readonly]="!isEdit"
|
||||||
|
[nzBorderless]="!isEdit"
|
||||||
|
[placeholder]="isEdit ? '' : '-'"
|
||||||
|
/>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="身份证照" col="2">
|
<sv label="身份证照" col="2">
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
<ng-container
|
<ng-container
|
||||||
*ngTemplateOutlet="uploadTemplate;context:{image:detailData?.adminUserInfo?.certificatePhotoFrontWatermark,key:'certificatePhotoFrontWatermark',hover:'adminFront'}">
|
*ngTemplateOutlet="
|
||||||
|
uploadTemplate;
|
||||||
|
context: {
|
||||||
|
image: detailData?.adminUserInfo?.certificatePhotoFrontWatermark,
|
||||||
|
key: 'certificatePhotoFrontWatermark',
|
||||||
|
hover: 'adminFront'
|
||||||
|
}
|
||||||
|
"
|
||||||
|
>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-container
|
<ng-container
|
||||||
*ngTemplateOutlet="uploadTemplate;context:{image:detailData?.adminUserInfo?.certificatePhotoBackWatermark,key:'certificatePhotoBackWatermark',hover:'adminBack'}">
|
*ngTemplateOutlet="
|
||||||
|
uploadTemplate;
|
||||||
|
context: {
|
||||||
|
image: detailData?.adminUserInfo?.certificatePhotoBackWatermark,
|
||||||
|
key: 'certificatePhotoBackWatermark',
|
||||||
|
hover: 'adminBack'
|
||||||
|
}
|
||||||
|
"
|
||||||
|
>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</div>
|
</div>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="企业授权函" col="2">
|
<sv label="企业授权函" col="2">
|
||||||
<ng-container
|
<ng-container
|
||||||
*ngTemplateOutlet="uploadTemplate;context:{image:detailData?.adminUserInfo?.certificatePhotoBackWatermark,key:'certificatePhotoBackWatermark',hover:'adminPhoto'}">
|
*ngTemplateOutlet="
|
||||||
|
uploadTemplate;
|
||||||
|
context: {
|
||||||
|
image: detailData?.adminUserInfo?.certificatePhotoBackWatermark,
|
||||||
|
key: 'certificatePhotoBackWatermark',
|
||||||
|
hover: 'adminPhoto'
|
||||||
|
}
|
||||||
|
"
|
||||||
|
>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</sv>
|
</sv>
|
||||||
</sv-container>
|
</sv-container>
|
||||||
@ -89,83 +119,134 @@
|
|||||||
<sv-container col="3">
|
<sv-container col="3">
|
||||||
<sv-title>
|
<sv-title>
|
||||||
<label class="mr-md">企业基本信息</label>
|
<label class="mr-md">企业基本信息</label>
|
||||||
<label *ngIf="detailData?.approvalStatus===10" style="color: #1890ff;"><i nz-icon nzType="info-circle"
|
<label *ngIf="detailData?.approvalStatus === 10" style="color: #1890ff"
|
||||||
nzTheme="fill" class="mr-xs"></i>待审核
|
><i nz-icon nzType="info-circle" nzTheme="fill" class="mr-xs"></i>待审核
|
||||||
</label>
|
</label>
|
||||||
<label *ngIf="detailData?.approvalStatus===20" style="color: #52c41a;"><i nz-icon nzType="check-circle"
|
<label *ngIf="detailData?.approvalStatus === 20" style="color: #52c41a"
|
||||||
nzTheme="fill" class="mr-xs"></i>审核通过
|
><i nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
|
||||||
</label>
|
</label>
|
||||||
<label *ngIf="detailData?.approvalStatus===30" style="color: #ff4d4f;"><i nz-icon nzType="close-circle"
|
<label *ngIf="detailData?.approvalStatus === 30" style="color: #ff4d4f"
|
||||||
nzTheme="fill" class="mr-xs"></i>驳回
|
><i nz-icon nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回
|
||||||
</label>
|
</label>
|
||||||
</sv-title>
|
</sv-title>
|
||||||
<sv label="公司名称">
|
<sv label="公司名称">
|
||||||
<input nz-input type="text" [(ngModel)]="detailData.enterpriseName" [readonly]="!isEdit" [nzBorderless]="!isEdit"
|
<input
|
||||||
[placeholder]="isEdit?'':'-'">
|
nz-input
|
||||||
|
type="text"
|
||||||
|
[(ngModel)]="detailData.enterpriseName"
|
||||||
|
[readonly]="!isEdit"
|
||||||
|
[nzBorderless]="!isEdit"
|
||||||
|
[placeholder]="isEdit ? '' : '-'"
|
||||||
|
/>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="统一社会信用代码">
|
<sv label="统一社会信用代码">
|
||||||
<input nz-input type="text" [(ngModel)]="detailData.unifiedSocialCreditCode" [readonly]="!isEdit"
|
<input
|
||||||
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
|
nz-input
|
||||||
|
type="text"
|
||||||
|
[(ngModel)]="detailData.unifiedSocialCreditCode"
|
||||||
|
[readonly]="!isEdit"
|
||||||
|
[nzBorderless]="!isEdit"
|
||||||
|
[placeholder]="isEdit ? '' : '-'"
|
||||||
|
/>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="公司类型">
|
<sv label="公司类型">
|
||||||
<input nz-input type="text" [(ngModel)]="detailData.enterpriseType" [readonly]="!isEdit" [nzBorderless]="!isEdit"
|
<input
|
||||||
[placeholder]="isEdit?'':'-'">
|
nz-input
|
||||||
|
type="text"
|
||||||
|
[(ngModel)]="detailData.enterpriseType"
|
||||||
|
[readonly]="!isEdit"
|
||||||
|
[nzBorderless]="!isEdit"
|
||||||
|
[placeholder]="isEdit ? '' : '-'"
|
||||||
|
/>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="注册资本">
|
<sv label="注册资本">
|
||||||
<ng-container *ngIf="isEdit; else registrationCapitalTemplate">
|
<ng-container *ngIf="isEdit; else registrationCapitalTemplate">
|
||||||
<input nz-input type="number" [(ngModel)]="detailData.registrationCapital" [readonly]="!isEdit"
|
<input
|
||||||
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'" class="mr-sm">
|
nz-input
|
||||||
|
type="number"
|
||||||
|
[(ngModel)]="detailData.registrationCapital"
|
||||||
|
[readonly]="!isEdit"
|
||||||
|
[nzBorderless]="!isEdit"
|
||||||
|
[placeholder]="isEdit ? '' : '-'"
|
||||||
|
class="mr-sm"
|
||||||
|
/>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-template #registrationCapitalTemplate>
|
<ng-template #registrationCapitalTemplate>
|
||||||
{{detailData?.registrationCapital}}
|
{{ detailData?.registrationCapital }}
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<span *ngIf="detailData?.registrationCapital">万元</span>
|
<span *ngIf="detailData?.registrationCapital">万元</span>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="成立日期">
|
<sv label="成立日期">
|
||||||
<nz-date-picker [(ngModel)]="detailData.enterpriseRegistrationTime" [nzDisabled]="!isEdit"
|
<nz-date-picker
|
||||||
[nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''"></nz-date-picker>
|
[(ngModel)]="detailData.enterpriseRegistrationTime"
|
||||||
|
[nzDisabled]="!isEdit"
|
||||||
|
[nzPlaceHolder]="isEdit ? '' : '-'"
|
||||||
|
[nzBorderless]="!isEdit"
|
||||||
|
[nzSuffixIcon]="isEdit ? 'calendar' : ''"
|
||||||
|
></nz-date-picker>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="营业期限">
|
<sv label="营业期限">
|
||||||
<ng-container *ngIf="isEdit; else operatingelseTemplate">
|
<ng-container *ngIf="isEdit; else operatingelseTemplate">
|
||||||
<nz-range-picker [ngModel]="[detailData?.operatingStartTime,detailData?.operatingEndTime]"
|
<nz-range-picker
|
||||||
(ngModelChange)="changeTime($event)"></nz-range-picker>
|
[ngModel]="[detailData?.operatingStartTime, detailData?.operatingEndTime]"
|
||||||
|
(ngModelChange)="changeTime($event)"
|
||||||
|
></nz-range-picker>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-template #operatingelseTemplate>
|
<ng-template #operatingelseTemplate>
|
||||||
<div *ngIf="!!detailData?.operatingStartTime && !!detailData?.operatingEndTime">
|
<div *ngIf="!!detailData?.operatingStartTime && !!detailData?.operatingEndTime">
|
||||||
{{ detailData?.operatingStartTime }} 至 {{ detailData?.operatingEndTime }}
|
{{ detailData?.operatingStartTime }} 至 {{ detailData?.operatingEndTime }}
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="!detailData?.operatingStartTime && !detailData?.operatingEndTime">长期</div>
|
<div *ngIf="!detailData?.operatingStartTime && !detailData?.operatingEndTime">长期</div>
|
||||||
<div *ngIf="!!detailData?.operatingStartTime && !detailData?.operatingEndTime">{{ detailData?.operatingStartTime
|
<div *ngIf="!!detailData?.operatingStartTime && !detailData?.operatingEndTime">{{ detailData?.operatingStartTime }} 至 长期</div>
|
||||||
}} 至 长期</div>
|
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="公司所在地" col="3">
|
<sv label="公司所在地" col="3">
|
||||||
<ng-container *ngIf="isEdit; else cascaderelseTemplate">
|
<ng-container *ngIf="isEdit; else cascaderelseTemplate">
|
||||||
<nz-cascader [(ngModel)]="values" [nzLoadData]="loadData" (ngModelChange)="changeCascader($event)">
|
<nz-cascader [(ngModel)]="values" [nzLoadData]="loadData" (ngModelChange)="changeCascader($event)"> </nz-cascader>
|
||||||
</nz-cascader>
|
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-template #cascaderelseTemplate>
|
<ng-template #cascaderelseTemplate>
|
||||||
{{ detailData?.fullRegionVO?.provinceName }}{{ detailData?.fullRegionVO?.cityName }}{{
|
{{ detailData?.fullRegionVO?.provinceName }}{{ detailData?.fullRegionVO?.cityName }}{{ detailData?.fullRegionVO?.areaName }}
|
||||||
detailData?.fullRegionVO?.areaName }}
|
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="公司详细地址" col="2">
|
<sv label="公司详细地址" col="2">
|
||||||
<input nz-input type="text" [(ngModel)]="detailData.enterpriseAddress" [readonly]="!isEdit"
|
<input
|
||||||
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
|
nz-input
|
||||||
|
type="text"
|
||||||
|
[(ngModel)]="detailData.enterpriseAddress"
|
||||||
|
[readonly]="!isEdit"
|
||||||
|
[nzBorderless]="!isEdit"
|
||||||
|
[placeholder]="isEdit ? '' : '-'"
|
||||||
|
/>
|
||||||
</sv>
|
</sv>
|
||||||
</sv-container>
|
</sv-container>
|
||||||
<sv-container col="1" class="mt16">
|
<sv-container col="1" class="mt16">
|
||||||
<sv label="经营范围">
|
<sv label="经营范围">
|
||||||
<input nz-input type="text" [(ngModel)]="detailData.businessScope" [readonly]="!isEdit" [nzBorderless]="!isEdit"
|
<input
|
||||||
[placeholder]="isEdit?'':'-'">
|
nz-input
|
||||||
|
type="text"
|
||||||
|
[(ngModel)]="detailData.businessScope"
|
||||||
|
[readonly]="!isEdit"
|
||||||
|
[nzBorderless]="!isEdit"
|
||||||
|
[placeholder]="isEdit ? '' : '-'"
|
||||||
|
/>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="税务机关" col="2">
|
<sv label="税务机关" col="2">
|
||||||
<input nz-input type="text" [(ngModel)]="detailData.taxAuthority" [readonly]="!isEdit" [nzBorderless]="!isEdit"
|
<input
|
||||||
[placeholder]="isEdit?'':'-'">
|
nz-input
|
||||||
|
type="text"
|
||||||
|
[(ngModel)]="detailData.taxAuthority"
|
||||||
|
[readonly]="!isEdit"
|
||||||
|
[nzBorderless]="!isEdit"
|
||||||
|
[placeholder]="isEdit ? '' : '-'"
|
||||||
|
/>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="营业执照" col="2">
|
<sv label="营业执照" col="2">
|
||||||
<ng-container
|
<ng-container
|
||||||
*ngTemplateOutlet="uploadTemplate;context:{image:detailData?.licensePhotoWatermark,key:'licensePhotoWatermark',hover:'detailPhoto'}">
|
*ngTemplateOutlet="
|
||||||
|
uploadTemplate;
|
||||||
|
context: { image: detailData?.licensePhotoWatermark, key: 'licensePhotoWatermark', hover: 'detailPhoto' }
|
||||||
|
"
|
||||||
|
>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</sv>
|
</sv>
|
||||||
</sv-container>
|
</sv-container>
|
||||||
@ -173,12 +254,24 @@
|
|||||||
<sv-container col="3" class="mt16">
|
<sv-container col="3" class="mt16">
|
||||||
<sv-title>企业法人信息</sv-title>
|
<sv-title>企业法人信息</sv-title>
|
||||||
<sv label="法定代表人">
|
<sv label="法定代表人">
|
||||||
<input nz-input type="text" [(ngModel)]="detailData.legalPersonIdentityVO.name" [readonly]="!isEdit"
|
<input
|
||||||
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
|
nz-input
|
||||||
|
type="text"
|
||||||
|
[(ngModel)]="detailData.legalPersonIdentityVO.name"
|
||||||
|
[readonly]="!isEdit"
|
||||||
|
[nzBorderless]="!isEdit"
|
||||||
|
[placeholder]="isEdit ? '' : '-'"
|
||||||
|
/>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="身份证号码">
|
<sv label="身份证号码">
|
||||||
<input nz-input type="text" [(ngModel)]="detailData.legalPersonIdentityVO.certificateNumber" [readonly]="!isEdit"
|
<input
|
||||||
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
|
nz-input
|
||||||
|
type="text"
|
||||||
|
[(ngModel)]="detailData.legalPersonIdentityVO.certificateNumber"
|
||||||
|
[readonly]="!isEdit"
|
||||||
|
[nzBorderless]="!isEdit"
|
||||||
|
[placeholder]="isEdit ? '' : '-'"
|
||||||
|
/>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="身份证有效期">
|
<sv label="身份证有效期">
|
||||||
{{ detailData?.legalPersonIdentityVO?.validStartTime }} -
|
{{ detailData?.legalPersonIdentityVO?.validStartTime }} -
|
||||||
@ -187,10 +280,26 @@
|
|||||||
<sv label="身份证照" col="1">
|
<sv label="身份证照" col="1">
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
<ng-container
|
<ng-container
|
||||||
*ngTemplateOutlet="uploadTemplate;context:{image:detailData?.legalPersonIdentityVO?.certificatePhotoFrontWatermark,key:'certificatePhotoFrontWatermark',hover:'legalFront'}">
|
*ngTemplateOutlet="
|
||||||
|
uploadTemplate;
|
||||||
|
context: {
|
||||||
|
image: detailData?.legalPersonIdentityVO?.certificatePhotoFrontWatermark,
|
||||||
|
key: 'certificatePhotoFrontWatermark',
|
||||||
|
hover: 'legalFront'
|
||||||
|
}
|
||||||
|
"
|
||||||
|
>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-container
|
<ng-container
|
||||||
*ngTemplateOutlet="uploadTemplate;context:{image:detailData?.legalPersonIdentityVO?.certificatePhotoBackWatermark,key:'certificatePhotoBackWatermark',hover:'legalBack'}">
|
*ngTemplateOutlet="
|
||||||
|
uploadTemplate;
|
||||||
|
context: {
|
||||||
|
image: detailData?.legalPersonIdentityVO?.certificatePhotoBackWatermark,
|
||||||
|
key: 'certificatePhotoBackWatermark',
|
||||||
|
hover: 'legalBack'
|
||||||
|
}
|
||||||
|
"
|
||||||
|
>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</div>
|
</div>
|
||||||
</sv>
|
</sv>
|
||||||
@ -199,20 +308,44 @@
|
|||||||
<sv-container col="3" class="mt16">
|
<sv-container col="3" class="mt16">
|
||||||
<sv-title>企业开票信息</sv-title>
|
<sv-title>企业开票信息</sv-title>
|
||||||
<sv label="开户银行">
|
<sv label="开户银行">
|
||||||
<input nz-input type="text" [(ngModel)]="detailData.createBank" [readonly]="!isEdit" [nzBorderless]="!isEdit"
|
<input
|
||||||
[placeholder]="isEdit?'':'-'">
|
nz-input
|
||||||
|
type="text"
|
||||||
|
[(ngModel)]="detailData.createBank"
|
||||||
|
[readonly]="!isEdit"
|
||||||
|
[nzBorderless]="!isEdit"
|
||||||
|
[placeholder]="isEdit ? '' : '-'"
|
||||||
|
/>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="银行账户">
|
<sv label="银行账户">
|
||||||
<input nz-input type="text" [(ngModel)]="detailData.bankAccount" [readonly]="!isEdit" [nzBorderless]="!isEdit"
|
<input
|
||||||
[placeholder]="isEdit?'':'-'">
|
nz-input
|
||||||
|
type="text"
|
||||||
|
[(ngModel)]="detailData.bankAccount"
|
||||||
|
[readonly]="!isEdit"
|
||||||
|
[nzBorderless]="!isEdit"
|
||||||
|
[placeholder]="isEdit ? '' : '-'"
|
||||||
|
/>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="注册电话">
|
<sv label="注册电话">
|
||||||
<input nz-input type="text" [(ngModel)]="detailData.registerPhone" [readonly]="!isEdit" [nzBorderless]="!isEdit"
|
<input
|
||||||
[placeholder]="isEdit?'':'-'">
|
nz-input
|
||||||
|
type="text"
|
||||||
|
[(ngModel)]="detailData.registerPhone"
|
||||||
|
[readonly]="!isEdit"
|
||||||
|
[nzBorderless]="!isEdit"
|
||||||
|
[placeholder]="isEdit ? '' : '-'"
|
||||||
|
/>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="注册地址">
|
<sv label="注册地址">
|
||||||
<input nz-input type="text" [(ngModel)]="detailData.registerAddress" [readonly]="!isEdit" [nzBorderless]="!isEdit"
|
<input
|
||||||
[placeholder]="isEdit?'':'-'">
|
nz-input
|
||||||
|
type="text"
|
||||||
|
[(ngModel)]="detailData.registerAddress"
|
||||||
|
[readonly]="!isEdit"
|
||||||
|
[nzBorderless]="!isEdit"
|
||||||
|
[placeholder]="isEdit ? '' : '-'"
|
||||||
|
/>
|
||||||
</sv>
|
</sv>
|
||||||
</sv-container>
|
</sv-container>
|
||||||
</nz-card>
|
</nz-card>
|
||||||
@ -239,28 +372,39 @@
|
|||||||
{{ detailData?.enterpriseName }}
|
{{ detailData?.enterpriseName }}
|
||||||
</se>
|
</se>
|
||||||
<se [col]="1" label="备注" required>
|
<se [col]="1" label="备注" required>
|
||||||
<textarea nz-input rows="3" style="width: 325px;margin-left: 14px;" [(ngModel)]="approvalOpinion"></textarea>
|
<textarea nz-input rows="3" style="width: 325px; margin-left: 14px" [(ngModel)]="approvalOpinion"></textarea>
|
||||||
</se>
|
</se>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|
||||||
|
|
||||||
<ng-template #uploadTemplate let-image="image" let-key="key" let-hover="hover">
|
<ng-template #uploadTemplate let-image="image" let-key="key" let-hover="hover">
|
||||||
<nz-upload class="avatar-uploader" [nzAction]="uploadURl" nzName="multipartFile" nzListType="picture-card"
|
<nz-upload
|
||||||
[nzShowUploadList]="false" nzFileType="image/png,image/jpeg,image/jpg,image/gif"
|
class="avatar-uploader"
|
||||||
[nzDisabled]="!isEdit || disabledUpload" (nzChange)="changeUpload($event,key)">
|
[nzAction]="uploadURl"
|
||||||
|
nzName="multipartFile"
|
||||||
|
nzListType="picture-card"
|
||||||
|
[nzShowUploadList]="false"
|
||||||
|
nzFileType="image/png,image/jpeg,image/jpg,image/gif"
|
||||||
|
[nzDisabled]="!isEdit || disabledUpload"
|
||||||
|
(nzChange)="changeUpload($event, key)"
|
||||||
|
>
|
||||||
<ng-container *ngIf="!image && isEdit">
|
<ng-container *ngIf="!image && isEdit">
|
||||||
<i class="upload-icon" nz-icon [nzType]="false ? 'loading' : 'plus'"></i>
|
<i class="upload-icon" nz-icon [nzType]="false ? 'loading' : 'plus'"></i>
|
||||||
<div class="ant-upload-text">上传</div>
|
<div class="ant-upload-text">上传</div>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<div *ngIf="image" (mouseover)="detailData[hover]=true" (mouseleave)="detailData[hover]=false"
|
<div
|
||||||
(click)="$event.cancelBubble=true" class="image-hover">
|
*ngIf="image"
|
||||||
<img [src]="image" style="width: 200px;height: 160px;" />
|
(mouseover)="detailData[hover] = true"
|
||||||
|
(mouseleave)="detailData[hover] = false"
|
||||||
|
(click)="$event.cancelBubble = true"
|
||||||
|
class="image-hover"
|
||||||
|
>
|
||||||
|
<img [src]="image" style="width: 200px; height: 160px" />
|
||||||
<div class="mask" *ngIf="detailData[hover] && isEdit"></div>
|
<div class="mask" *ngIf="detailData[hover] && isEdit"></div>
|
||||||
<div class="mask-over" *ngIf="detailData[hover] && isEdit">
|
<div class="mask-over" *ngIf="detailData[hover] && isEdit">
|
||||||
<i nz-icon nzType="close-circle" nzTheme="fill" class="delete-icon" (click)="deleteImg(key)"></i>
|
<i nz-icon nzType="close-circle" nzTheme="fill" class="delete-icon" (click)="deleteImg(key)"></i>
|
||||||
<div style="display: flex;align-items: center;">
|
<div style="display: flex; align-items: center">
|
||||||
<i nz-icon nzType="eye" nzTheme="fill" class="show-icon" (click)="showImg(image)"></i>
|
<i nz-icon nzType="eye" nzTheme="fill" class="show-icon" (click)="showImg(image)"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2022-01-25 20:18:52
|
* @Date : 2022-01-25 20:18:52
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-03-29 10:34:14
|
* @LastEditTime : 2022-04-22 14:09:16
|
||||||
* @FilePath : \\tms-obc-web\\src\\app\\shared\\components\\rebate-table\\rebate-table.component.html
|
* @FilePath : \\tms-obc-web\\src\\app\\shared\\components\\rebate-table\\rebate-table.component.html
|
||||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
-->
|
-->
|
||||||
@ -15,20 +15,20 @@
|
|||||||
<button class="ml-md" nz-button nzType="primary" (click)="save()">保存</button>
|
<button class="ml-md" nz-button nzType="primary" (click)="save()">保存</button>
|
||||||
</div> -->
|
</div> -->
|
||||||
<nz-table #groupingTable [nzData]="data" nzBordered nzSize="small" [nzFrontPagination]="false"
|
<nz-table #groupingTable [nzData]="data" nzBordered nzSize="small" [nzFrontPagination]="false"
|
||||||
[nzScroll]="{ x: '900px' }" [nzShowPagination]="false" class="ml-xl" style="max-width: 1200px;">
|
[nzScroll]="{ y: '900px' }" [nzShowPagination]="false" class="ml-xl" style="max-width: 1000px;">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th rowspan="2" nzWidth="250px" nzAlign="center" nzLeft>序号</th>
|
<th rowspan="2" nzWidth="60px" nzAlign="center" nzLeft>序号</th>
|
||||||
<th nzWidth="220px" nzAlign="center" >合伙人等级</th>
|
<th nzWidth="220px" nzAlign="center" >合伙人等级</th>
|
||||||
<th nzWidth="220px" nzAlign="center" >初始业务量(万/月)</th>
|
<th nzWidth="160px" nzAlign="center" >初始业务量(万/月)</th>
|
||||||
<th nzWidth="220px" nzAlign="center" >到达业务量(万/月)</th>
|
<th nzWidth="160px" nzAlign="center" >到达业务量(万/月)</th>
|
||||||
<th nzWidth="220px" nzAlign="center" >管理费比例%</th>
|
<th nzWidth="160px" nzAlign="center" >管理费比例%</th>
|
||||||
<th rowspan="2" nzWidth="60px" nzAlign="center" nzRight>操作</th>
|
<th rowspan="2" nzWidth="60px" nzAlign="center" nzRight>操作</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr *ngFor="let item of groupingTable.data;let i = index">
|
<tr *ngFor="let item of groupingTable.data;let i = index">
|
||||||
<td nzWidth="250px" nzAlign="center" nzLeft>
|
<td nzWidth="60px" nzAlign="center" nzLeft>
|
||||||
<div style="text-align: center;">
|
<div style="text-align: center;">
|
||||||
<div>
|
<div>
|
||||||
{{i + 1}}
|
{{i + 1}}
|
||||||
@ -42,26 +42,26 @@
|
|||||||
</nz-select>
|
</nz-select>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td nzWidth="220px" nzAlign="center" >
|
<td nzWidth="160px" nzAlign="center" >
|
||||||
<div style=" margin-left: 26%">
|
<div >
|
||||||
<nz-input-group nzPrefix="=">
|
<nz-input-group nzPrefix="=" >
|
||||||
<nz-input-number [(ngModel)]="item.startAmount" [nzMin]="0" nzSize="small" (ngModelChange)="changeendAmount($event,i)"
|
<nz-input-number nzPrefix="=" [(ngModel)]="item.startAmount" [nzMin]="0" nzSize="small" (ngModelChange)="changeendAmount($event,i)"
|
||||||
>
|
>
|
||||||
</nz-input-number>
|
</nz-input-number>
|
||||||
</nz-input-group>
|
</nz-input-group>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td nzWidth="220px" nzAlign="center" >
|
<td nzWidth="160px" nzAlign="center" >
|
||||||
<div style=" margin-left: 26%">
|
<div >
|
||||||
<nz-input-group nzPrefix="<">
|
<nz-input-group nzPrefix="<">
|
||||||
<nz-input-number [(ngModel)]="item.endAmount" [nzMin]="0" nzSize="small" >
|
<nz-input-number [(ngModel)]="item.endAmount" [nzMin]="0" nzSize="small" >
|
||||||
</nz-input-number>
|
</nz-input-number>
|
||||||
</nz-input-group>
|
</nz-input-group>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td nzWidth="220px" nzAlign="center" >
|
<td nzWidth="160px" nzAlign="center" >
|
||||||
<div style=" margin-left: 26%">
|
<div >
|
||||||
<nz-input-group [nzAddOnAfter]="addOnAfterTemplate2">
|
<nz-input-group [nzAddOnAfter]="addOnAfterTemplate2">
|
||||||
<nz-input-number [(ngModel)]="item.managementFeeRatio" [nzMin]="0" nzSize="small"
|
<nz-input-number [(ngModel)]="item.managementFeeRatio" [nzMin]="0" nzSize="small"
|
||||||
>
|
>
|
||||||
|
|||||||
@ -15,5 +15,8 @@
|
|||||||
.ant-input-group {
|
.ant-input-group {
|
||||||
display: -webkit-inline-box !important;
|
display: -webkit-inline-box !important;
|
||||||
}
|
}
|
||||||
|
.ant-input-affix-wrapper {
|
||||||
|
border: none
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -49,6 +49,7 @@ import { NzSwitchModule } from 'ng-zorro-antd/switch';
|
|||||||
import { NzImageModule } from 'ng-zorro-antd/image';
|
import { NzImageModule } from 'ng-zorro-antd/image';
|
||||||
import { NzDrawerModule } from 'ng-zorro-antd/drawer';
|
import { NzDrawerModule } from 'ng-zorro-antd/drawer';
|
||||||
import { NzTreeSelectModule } from 'ng-zorro-antd/tree-select';
|
import { NzTreeSelectModule } from 'ng-zorro-antd/tree-select';
|
||||||
|
import { NzAvatarModule } from 'ng-zorro-antd/avatar';
|
||||||
|
|
||||||
export const SHARED_ZORRO_MODULES = [
|
export const SHARED_ZORRO_MODULES = [
|
||||||
NzButtonModule,
|
NzButtonModule,
|
||||||
@ -92,5 +93,6 @@ export const SHARED_ZORRO_MODULES = [
|
|||||||
NzSwitchModule,
|
NzSwitchModule,
|
||||||
NzImageModule,
|
NzImageModule,
|
||||||
NzDrawerModule,
|
NzDrawerModule,
|
||||||
NzTreeSelectModule
|
NzTreeSelectModule,
|
||||||
|
NzAvatarModule
|
||||||
];
|
];
|
||||||
|
|||||||
@ -322,6 +322,10 @@
|
|||||||
{
|
{
|
||||||
"text": "交易流水",
|
"text": "交易流水",
|
||||||
"link": "/financial-management/transaction-flow"
|
"link": "/financial-management/transaction-flow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "银行卡管理",
|
||||||
|
"link": "/financial-management/bank-card-management/index"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -686,8 +690,7 @@
|
|||||||
"text": "税务管理",
|
"text": "税务管理",
|
||||||
"icon": "iconfont icon-hetong-copy",
|
"icon": "iconfont icon-hetong-copy",
|
||||||
"group": true,
|
"group": true,
|
||||||
"children": [
|
"children": [{
|
||||||
{
|
|
||||||
"text": "订单上报",
|
"text": "订单上报",
|
||||||
"link": "/tax/orderReport"
|
"link": "/tax/orderReport"
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user