Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop
This commit is contained in:
@ -4,7 +4,7 @@
|
|||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2022-02-24 20:09:49
|
* @Date : 2022-02-24 20:09:49
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-04-26 15:50:41
|
* @LastEditTime : 2022-04-26 20:44:56
|
||||||
* @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.
|
||||||
-->
|
-->
|
||||||
@ -23,7 +23,7 @@
|
|||||||
<sv-title> 固定结算费率配置</sv-title>
|
<sv-title> 固定结算费率配置</sv-title>
|
||||||
|
|
||||||
<sv label="固定结算费率">
|
<sv label="固定结算费率">
|
||||||
<nz-input-number [disabled]="hiden" [(ngModel)]="accountingRate" [nzPrecision]="precision" nzPlaceHolder="请输入"></nz-input-number
|
<nz-input-number [disabled]="hiden" [nzMin]="0" [nzMax]="100" [(ngModel)]="accountingRate" [nzPrecision]="precision" nzPlaceHolder="请输入"></nz-input-number
|
||||||
> %</sv
|
> %</sv
|
||||||
>
|
>
|
||||||
|
|
||||||
@ -37,21 +37,24 @@
|
|||||||
</sv>
|
</sv>
|
||||||
|
|
||||||
<sv col="1">
|
<sv col="1">
|
||||||
<div style="width: 850px">
|
<div style="width: 850px" *ngIf="configType == '1'">
|
||||||
<app-rebate-table #table [(data)]="tabelData"></app-rebate-table>
|
<app-rebate-table #table [(data)]="tabelData" [type]="1" [hiden]="hiden"></app-rebate-table>
|
||||||
|
</div>
|
||||||
|
<div style="width: 850px" *ngIf="configType == '2'">
|
||||||
|
<app-rebate-table #table [(data)]="tabelData" [type]="2" [hiden]="hiden"></app-rebate-table>
|
||||||
</div>
|
</div>
|
||||||
</sv>
|
</sv>
|
||||||
|
|
||||||
<sv-title>关联合伙人配置</sv-title>
|
<sv-title>关联合伙人配置</sv-title>
|
||||||
|
|
||||||
<sv label="合伙人选择">
|
<sv label="合伙人范围">
|
||||||
<nz-select
|
<nz-select
|
||||||
[(ngModel)]="partnerType"
|
[(ngModel)]="partnerType"
|
||||||
[disabled]="hiden"
|
[disabled]="hiden"
|
||||||
(ngModelChange)="changePartner(partnerType)"
|
(ngModelChange)="changePartner(partnerType)"
|
||||||
style="max-width: 400px; min-width: 200px"
|
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>
|
||||||
|
|||||||
@ -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-04-26 15:51:04
|
* @LastEditTime : 2022-04-26 21:06:50
|
||||||
* @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.
|
||||||
*/
|
*/
|
||||||
@ -25,6 +25,7 @@ export class ParterRebateManageMentAddComponent implements OnInit {
|
|||||||
@ViewChild('table') table!: any;
|
@ViewChild('table') table!: any;
|
||||||
titleText :string= '新增';
|
titleText :string= '新增';
|
||||||
tabelData: any;
|
tabelData: any;
|
||||||
|
tabelType: any;
|
||||||
formData: any;
|
formData: any;
|
||||||
addStatus: boolean = false;
|
addStatus: boolean = false;
|
||||||
hiden: boolean = false;
|
hiden: boolean = false;
|
||||||
@ -88,7 +89,6 @@ export class ParterRebateManageMentAddComponent implements OnInit {
|
|||||||
text: '移除',
|
text: '移除',
|
||||||
click: _record => this.delete(_record),
|
click: _record => this.delete(_record),
|
||||||
iif: ()=> {
|
iif: ()=> {
|
||||||
console.log(this.hiden);
|
|
||||||
return !this.hiden
|
return !this.hiden
|
||||||
},
|
},
|
||||||
acl: { ability: ['AbnormalAppear-reply'] }
|
acl: { ability: ['AbnormalAppear-reply'] }
|
||||||
@ -98,7 +98,6 @@ export class ParterRebateManageMentAddComponent implements OnInit {
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
console.log(this.ar.snapshot.queryParams.id);
|
|
||||||
if(this.ar.snapshot?.queryParams?.id) {
|
if(this.ar.snapshot?.queryParams?.id) {
|
||||||
this.titleText= '查看'
|
this.titleText= '查看'
|
||||||
this.hiden= true
|
this.hiden= true
|
||||||
@ -128,14 +127,11 @@ export class ParterRebateManageMentAddComponent implements OnInit {
|
|||||||
this.partnerId = [];
|
this.partnerId = [];
|
||||||
if (res) {
|
if (res) {
|
||||||
if (Array.isArray(res)) {
|
if (Array.isArray(res)) {
|
||||||
console.log(res);
|
|
||||||
console.log(this.partnerPeopleList);
|
|
||||||
this.partnerPeopleList = this.partnerPeopleList.concat(res);
|
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 {
|
||||||
console.log(res);
|
|
||||||
this.partnerPeopleList = this.partnerPeopleList.concat(res);
|
this.partnerPeopleList = this.partnerPeopleList.concat(res);
|
||||||
this.partnerId.push(res?.id);
|
this.partnerId.push(res?.id);
|
||||||
}
|
}
|
||||||
@ -148,9 +144,27 @@ export class ParterRebateManageMentAddComponent implements OnInit {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
save() {
|
save() {
|
||||||
console.log(this.partnerId);
|
console.log(this.configName);
|
||||||
console.log(this.partnerId.join(','));
|
// if(!this.configName) {
|
||||||
|
// this.service.msgSrv.warning('请输入配置名称!');
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
// if(!this.accountingRate) {
|
||||||
|
// this.service.msgSrv.warning('请输入固定结算费率!');
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
// if(!this.partnerType) {
|
||||||
|
// this.service.msgSrv.warning('请选择合伙人范围!');
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
// if(this.partnerType == '3' && this.partnerPeopleList?.length == 0) {
|
||||||
|
// this.service.msgSrv.warning('请选择合伙人!');
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
this.table.data.forEach((element: any) => {
|
||||||
|
console.log(element);
|
||||||
|
|
||||||
|
});
|
||||||
const params = {
|
const params = {
|
||||||
accountingRate: this.accountingRate,
|
accountingRate: this.accountingRate,
|
||||||
configName: this.configName,
|
configName: this.configName,
|
||||||
@ -162,18 +176,15 @@ export class ParterRebateManageMentAddComponent implements OnInit {
|
|||||||
remarke: this.remarke,
|
remarke: this.remarke,
|
||||||
partnerType: this.partnerType
|
partnerType: this.partnerType
|
||||||
};
|
};
|
||||||
console.log(params);
|
// this.service.request(this.service.$api_save_rebateConfig, params).subscribe((res: any) => {
|
||||||
this.service.request(this.service.$api_save_rebateConfig, params).subscribe((res: any) => {
|
// if (res) {
|
||||||
if (res) {
|
// this.service.msgSrv.success('新增成功!');
|
||||||
console.log(res);
|
// this.router.navigate(['/partner/rebate/setting']);
|
||||||
this.service.msgSrv.success('新增成功!');
|
// }
|
||||||
this.router.navigate(['/partner/rebate/setting']);
|
// });
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
initData(id:string) {
|
initData(id:string) {
|
||||||
this.service.request(this.service.$api_get_getPartnerRebateConfigInfo, {id: id}).subscribe((res: any) => {
|
this.service.request(this.service.$api_get_getPartnerRebateConfigInfo, {id: id}).subscribe((res: any) => {
|
||||||
console.log(res);
|
|
||||||
if(res) {
|
if(res) {
|
||||||
this.configName = res?.configName;
|
this.configName = res?.configName;
|
||||||
this.accountingRate = res?.accountingRate;
|
this.accountingRate = res?.accountingRate;
|
||||||
@ -189,7 +200,6 @@ export class ParterRebateManageMentAddComponent implements OnInit {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
changePartner(value: any) {
|
changePartner(value: any) {
|
||||||
console.log(value);
|
|
||||||
if (value == '3') {
|
if (value == '3') {
|
||||||
this.addStatus = true;
|
this.addStatus = true;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -12,15 +12,15 @@
|
|||||||
<nz-card class="card-height" [nzBordered]="null" nzSize="small" *ngIf="selectedTab === 0">
|
<nz-card class="card-height" [nzBordered]="null" nzSize="small" *ngIf="selectedTab === 0">
|
||||||
<h3 style="font-weight: 600">提现手续费配置</h3>
|
<h3 style="font-weight: 600">提现手续费配置</h3>
|
||||||
<div nz-row nzGutter="8">
|
<div nz-row nzGutter="8">
|
||||||
<div nz-col nzSpan="24" se-container [labelWidth]="230" [se-container]="1">
|
<div nz-col nzSpan="24" se-container [labelWidth]="125" [se-container]="1">
|
||||||
<se label="个人提现手续费" style="margin-bottom: 0">
|
<se label="个人提现手续费" style="margin:15px 0 0 0">
|
||||||
<div>
|
<div>
|
||||||
按照提现金额收取
|
按照提现金额收取
|
||||||
<nz-input-number [(ngModel)]="personValue" [nzMin]="0" [nzMax]="100" [nzPrecision]="2" [nzStep]="0.01"></nz-input-number>
|
<nz-input-number [(ngModel)]="personValue" [nzMin]="0" [nzMax]="100" [nzPrecision]="2" [nzStep]="0.01"></nz-input-number>
|
||||||
<span> %手续费 </span>
|
<span> %手续费 </span>
|
||||||
</div>
|
</div>
|
||||||
</se>
|
</se>
|
||||||
<se label="企业提现手续费" style="margin-bottom: 0">
|
<se label="企业提现手续费" style="margin:15px 0 0 0;">
|
||||||
<div>
|
<div>
|
||||||
按照提现金额收取
|
按照提现金额收取
|
||||||
<nz-input-number
|
<nz-input-number
|
||||||
@ -35,41 +35,48 @@
|
|||||||
</se>
|
</se>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h3 style="font-weight: 600" class="mb-md">合伙人提现配置</h3>
|
<h3 style="font-weight: 600;margin:15px 0 0 0;" class="mb-md">合伙人提现配置</h3>
|
||||||
<div nz-row nzGutter="8">
|
<div nz-row nzGutter="8" class="audit">
|
||||||
<div nz-col nzSpan="24" se-container>
|
<div nz-col nzSpan="24" se-container>
|
||||||
<se label="提现审核" style="margin-bottom: 0">
|
<se label="提现审核" style="margin:15px 0 0 0;">
|
||||||
<nz-radio-group [(ngModel)]="auditValue">
|
<nz-radio-group [(ngModel)]="auditValue">
|
||||||
<label nz-radio [nzValue]="false" class="mt-sm">关闭</label>
|
<label nz-radio [nzValue]="false" class="mt-sm">关闭</label>
|
||||||
<label nz-radio [nzValue]="true" class="mt-sm">开启</label>
|
<label nz-radio [nzValue]="true" class="mt-sm">开启</label>
|
||||||
</nz-radio-group>
|
</nz-radio-group>
|
||||||
</se>
|
</se>
|
||||||
<se label="审核时间" style="margin-bottom: 0">
|
<se label="审核时间" style="margin:15px 0 0 0;">
|
||||||
<div se-container [se-container]="1" style="margin-left: 0px;">
|
<div se-container [se-container]="1" style="margin-left: 0px">
|
||||||
<nz-radio-group style="display: block;" [(ngModel)]="auditTime" (ngModelChange)="changeAuto(auditTime)">
|
<nz-radio-group style="display: block" [(ngModel)]="auditTime" (ngModelChange)="changeAuto(auditTime)">
|
||||||
<label nz-radio [nzValue]="1" class="mt-sm">全天</label>
|
<label nz-radio [nzValue]="1" class="mt-sm">全天</label>
|
||||||
<label nz-radio [nzValue]="2" class="mt-sm">自定义</label>
|
<label nz-radio [nzValue]="2" class="mt-sm">自定义</label>
|
||||||
</nz-radio-group>
|
</nz-radio-group>
|
||||||
</div>
|
</div>
|
||||||
</se>
|
</se>
|
||||||
<div style="margin-left: 200px;">
|
<div style="margin-left: 200px">
|
||||||
<ng-container *ngTemplateOutlet="auditTimes"> </ng-container>
|
<ng-container *ngTemplateOutlet="auditTimes"> </ng-container>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h3 style="font-weight: 600" class="mb-md">客服电话配置</h3>
|
<h3 style="font-weight: 600;margin:15px 0 0 0;" class="mb-md">客户定义配置</h3>
|
||||||
<div nz-row nzGutter="8">
|
<div nz-row nzGutter="8">
|
||||||
<div nz-col nzSpan="24" se-container [labelWidth]="230">
|
<div nz-col nzSpan="24">
|
||||||
<se label="客服电话" style="margin-bottom: 0">
|
<span>客户</span>
|
||||||
<input nz-input style="width: 325px" />
|
<nz-input-number style="margin: 0 10px; " [(ngModel)]="personValue" [nzMin]="0" [nzMax]="3000" [nzPrecision]="2" [nzStep]="0.1"></nz-input-number>
|
||||||
</se>
|
<span>天内没有交易订单的视为“沉默客户”</span>
|
||||||
|
</div>
|
||||||
|
<div nz-col nzSpan="24" style="margin-top: 10px;">
|
||||||
|
<span>客户</span>
|
||||||
|
<nz-input-number style="margin: 0 10px; " [(ngModel)]="personValue" [nzMin]="0" [nzMax]="3000" [nzPrecision]="2" [nzStep]="0.1"></nz-input-number>
|
||||||
|
<span>天内没有交易订单的视为“流失客户”</span>
|
||||||
|
</div>
|
||||||
|
<div nz-col nzSpan="24">
|
||||||
|
<span style="color: #797979; font-size: 14px;">说明:交易订单指从司机已接单开始的订单。</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nz-card>
|
</nz-card>
|
||||||
|
|
||||||
<nz-card class="card-height" [nzBordered]="null" nzSize="small" *ngIf="selectedTab === 1">
|
<nz-card class="card-height" [nzBordered]="null" nzSize="small" *ngIf="selectedTab === 1">
|
||||||
<h2 style="font-weight: 800">司机端配置</h2>
|
<h3 style="font-weight: 600;">邀请合伙人</h3>
|
||||||
<h3 style="font-weight: 600; margin-left: 120px">图片配置</h3>
|
|
||||||
<sf
|
<sf
|
||||||
style="margin-left: 14px"
|
style="margin-left: 14px"
|
||||||
#sf
|
#sf
|
||||||
@ -78,81 +85,24 @@
|
|||||||
[schema]="schema"
|
[schema]="schema"
|
||||||
[ui]="{ '*': { spanLabelFixed: 200, grid: { span: 24 } } }"
|
[ui]="{ '*': { spanLabelFixed: 200, grid: { span: 24 } } }"
|
||||||
button="none"
|
button="none"
|
||||||
|
>
|
||||||
|
</sf>
|
||||||
|
<h3 style="font-weight: 600;">邀请客户</h3>
|
||||||
|
<sf
|
||||||
|
style="margin-left: 14px"
|
||||||
|
#sf2
|
||||||
|
mode="default"
|
||||||
|
[formData]="i"
|
||||||
|
[schema]="schema2"
|
||||||
|
[ui]="{ '*': { spanLabelFixed: 200, grid: { span: 24 } } }"
|
||||||
|
button="none"
|
||||||
>
|
>
|
||||||
<ng-template sf-template="start" let-me let-ui="ui" let-schema="schema"> </ng-template>
|
<ng-template sf-template="start" let-me let-ui="ui" let-schema="schema"> </ng-template>
|
||||||
<template id="tpl">
|
<template id="tpl">
|
||||||
<span>so good </span>
|
<span>so good </span>
|
||||||
</template>
|
</template>
|
||||||
<ng-template sf-template="time2" let-me let-ui="ui" let-schema="schema">
|
|
||||||
<div class="text-left">可输入字符</div>
|
|
||||||
<nz-range-picker extend nzFormat="HH:mm:ss"></nz-range-picker>
|
|
||||||
</ng-template>
|
|
||||||
</sf>
|
</sf>
|
||||||
<h3 style="font-weight: 600; margin-left: 140px" class="mb-md">短信配置</h3>
|
|
||||||
<div nz-row nzGutter="8">
|
|
||||||
<div nz-col nzSpan="24" se-container [labelWidth]="230" [se-container]="1">
|
|
||||||
<se label="短信内容设置" style="margin-bottom: 0">
|
|
||||||
<p style="margin-top: 6px">配置用户端登陆页注册帐号、修改密码、修改手机号时的短信内容</p>
|
|
||||||
<textarea
|
|
||||||
nz-input
|
|
||||||
rows="4"
|
|
||||||
placeholder="【运多星】您的验证码:XXXXXX。有效期10分钟,请及时输入,请勿向他人泄露您的验证码。如非本人操作,请忽略。"
|
|
||||||
style="width: 400px"
|
|
||||||
></textarea>
|
|
||||||
</se>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<h3 style="font-weight: 600; margin-left: 140px" class="mb-md">通知配置</h3>
|
|
||||||
<div nz-row nzGutter="8">
|
|
||||||
<div nz-col nzSpan="24">
|
|
||||||
<div se-container [labelWidth]="230" [se-container]="1">
|
|
||||||
<se class="mb-sm">
|
|
||||||
<nz-radio-group [(ngModel)]="formDate.isAudit">
|
|
||||||
<label nz-radio [nzValue]="false" class="mt-sm">到期系统通知</label>
|
|
||||||
<label nz-radio [nzValue]="true" class="mt-sm">短信通知</label>
|
|
||||||
</nz-radio-group>
|
|
||||||
</se>
|
|
||||||
<se label="司机驾驶证证审核" class="mb-sm">
|
|
||||||
<nz-radio-group [(ngModel)]="formDate.isAudit">
|
|
||||||
<label nz-radio [nzValue]="false" class="mt-sm">审核通过系统通知</label>
|
|
||||||
<label nz-radio [nzValue]="true" class="mt-sm">短信通知</label>
|
|
||||||
</nz-radio-group>
|
|
||||||
</se>
|
|
||||||
<se class="mb-sm">
|
|
||||||
<nz-radio-group [(ngModel)]="formDate.isAudit">
|
|
||||||
<label nz-radio [nzValue]="false" class="mt-sm">审核驳回系统通知</label>
|
|
||||||
<label nz-radio [nzValue]="true" class="mt-sm">短信通知</label>
|
|
||||||
</nz-radio-group>
|
|
||||||
</se>
|
|
||||||
<se class="mb-sm">
|
|
||||||
<nz-radio-group [(ngModel)]="formDate.isAudit">
|
|
||||||
<label nz-radio [nzValue]="false" class="mt-sm">到期系统通知</label>
|
|
||||||
<label nz-radio [nzValue]="true" class="mt-sm">短信通知</label>
|
|
||||||
</nz-radio-group>
|
|
||||||
</se>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<h3 style="font-weight: 600; margin-left: 140px" class="mt-md">客服电话配置</h3>
|
|
||||||
<div nz-row nzGutter="8">
|
|
||||||
<div nz-col nzSpan="24" se-container [labelWidth]="230">
|
|
||||||
<se label="客服电话">
|
|
||||||
<input nz-input style="width: 325px" />
|
|
||||||
</se>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<h3 style="font-weight: 600; margin-left: 140px" class="mt-md">证件提醒配置</h3>
|
|
||||||
<div nz-row nzGutter="8">
|
|
||||||
<div nz-col nzSpan="24" se-container [labelWidth]="230" [se-container]="1">
|
|
||||||
<se label="证件临期提醒" style="margin-bottom: 0">
|
|
||||||
距离到期时间
|
|
||||||
<input type="number" nz-input style="width: 40px" />
|
|
||||||
天开始提醒,每隔
|
|
||||||
<input type="number" nz-input style="width: 40px" />
|
|
||||||
天提醒一次
|
|
||||||
</se>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</nz-card>
|
</nz-card>
|
||||||
|
|
||||||
<div class="mb-md save-btn">
|
<div class="mb-md save-btn">
|
||||||
@ -164,45 +114,47 @@
|
|||||||
</nz-card>
|
</nz-card>
|
||||||
|
|
||||||
<ng-template #auditTimes let-data="data" let-title="title">
|
<ng-template #auditTimes let-data="data" let-title="title">
|
||||||
|
<div *ngIf="auditTimeStatus" >
|
||||||
<div *ngIf="auditTimeStatus" style="display: flex;">
|
<div style="display: flex">
|
||||||
<div style="display: flex;">
|
<nz-radio-group [(ngModel)]="everyDay" (ngModelChange)="everyDayChange(everyDay)" style="display: block">
|
||||||
<nz-radio-group [(ngModel)]="everyDay" style="display: block;" >
|
<label nz-radio [nzValue]="1" class="mt-sm"
|
||||||
<label nz-radio [nzValue]="1" class="mt-sm">每天<span style="margin-left: 30px; color: #0200ff; cursor: pointer;">添加时间段</span></label>
|
>每天<span *ngIf="TimeStatus" style="margin-left: 30px; color: #0200ff; cursor: pointer" (click)="addEvery()">添加时间段</span></label
|
||||||
|
>
|
||||||
</nz-radio-group>
|
</nz-radio-group>
|
||||||
<br />
|
<br />
|
||||||
<div >
|
<div *ngIf="TimeStatus">
|
||||||
<div>
|
<div *ngFor="let item of everyDayData; let i = index">
|
||||||
<nz-time-picker [(ngModel)]="time" [nzDefaultOpenValue]="defaultOpenValue"></nz-time-picker>--<nz-time-picker
|
<div style="margin-top: 15px;">
|
||||||
[(ngModel)]="time"
|
<input type="time" [(ngModel)]="item.startTime" placeHolder="开始时间" style="margin-left: 23px" />
|
||||||
[nzDefaultOpenValue]="defaultOpenValue"
|
<label class="ml-sm mr-sm"> --</label>
|
||||||
></nz-time-picker>
|
<input type="time" [(ngModel)]="item.endTime" placeHolder="结束时间" style="margin-left: 0" class="mr-xl" />
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<nz-time-picker [(ngModel)]="time" [nzDefaultOpenValue]="defaultOpenValue"></nz-time-picker>--<nz-time-picker
|
|
||||||
[(ngModel)]="time"
|
|
||||||
[nzDefaultOpenValue]="defaultOpenValue"
|
|
||||||
></nz-time-picker>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
<label class="ml-sm mr-sm" style=" color: #0200ff; cursor: pointer" *ngIf="i !== 0" (click)="delEvery(i)">删除</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- <div *ngIf="auditTimeStatus">
|
|
||||||
|
|
||||||
<div style="display: flex;">
|
|
||||||
<nz-time-picker [(ngModel)]="time" [nzDefaultOpenValue]="defaultOpenValue"></nz-time-picker>--<nz-time-picker
|
|
||||||
[(ngModel)]="time"
|
|
||||||
[nzDefaultOpenValue]="defaultOpenValue"
|
|
||||||
></nz-time-picker>
|
|
||||||
</div>
|
</div>
|
||||||
<div >
|
<div >
|
||||||
<nz-time-picker [(ngModel)]="time" [nzDefaultOpenValue]="defaultOpenValue"></nz-time-picker>--<nz-time-picker
|
<nz-radio-group [(ngModel)]="MonthDay" (ngModelChange)="MonthDayChange(MonthDay)" style="display: block">
|
||||||
[(ngModel)]="time"
|
<label nz-radio [nzValue]="2" class="mt-sm"
|
||||||
[nzDefaultOpenValue]="defaultOpenValue"
|
>每周<span *ngIf="!TimeStatus" style="margin-left: 30px; color: #0200ff; cursor: pointer" (click)="addMonth()">添加星期</span></label
|
||||||
></nz-time-picker>
|
>
|
||||||
|
</nz-radio-group>
|
||||||
|
<div *ngIf="!TimeStatus">
|
||||||
|
<div *ngFor="let item of MonthDayData; let i = index">
|
||||||
|
<nz-checkbox-group style="margin-top: 15px;" [(ngModel)]="item.month" (ngModelChange)="changeMonth(item.month)"></nz-checkbox-group>
|
||||||
|
<br />
|
||||||
|
<div *ngFor="let ite of item.Times; let ii = index">
|
||||||
|
<div style="margin-top: 15px;">
|
||||||
|
<input type="time" [(ngModel)]="ite.startTime" placeHolder="开始时间" style="margin-left: 23px" />
|
||||||
|
<label class="ml-sm mr-sm"> --</label>
|
||||||
|
<input type="time" [(ngModel)]="ite.endTime" placeHolder="结束时间" style="margin-left: 0" class="mr-xl" />
|
||||||
|
<label class="ml-sm mr-sm" style=" color: #0200ff; cursor: pointer" (click)="addMonthEvery(i)">添加时间段</label>
|
||||||
|
<label *ngIf="ii !== 0" class="ml-sm mr-sm" style=" color: #0200ff; cursor: pointer" (click)="delMonth(i,ii)">删除</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div nz-radio [nzValue]="4" class="mt-sm">每周</div>
|
|
||||||
</div> -->
|
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|||||||
@ -18,5 +18,8 @@
|
|||||||
width : 100px;
|
width : 100px;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
|
.audit .ant-form-item-label{
|
||||||
|
width: 81px !important;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,8 +1,23 @@
|
|||||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||||
import { SFComponent, SFSchema, SFUploadWidgetSchema } from '@delon/form';
|
import { SFComponent, SFSchema, SFUploadWidgetSchema } from '@delon/form';
|
||||||
import { Observable, Observer } from 'rxjs';
|
import { NzUploadFile } from 'ng-zorro-antd/upload';
|
||||||
|
import { Observable, Observer, of } from 'rxjs';
|
||||||
import { ConfigService } from '../../services/config.service';
|
import { ConfigService } from '../../services/config.service';
|
||||||
|
import { apiConf } from '@conf/api.conf';
|
||||||
|
const IMAGECONFIG = {
|
||||||
|
previewFile: (file: NzUploadFile) => of(file.url),
|
||||||
|
action: apiConf.waterFileUpload,
|
||||||
|
fileType: 'image/png,image/jpeg,image/jpg,image/gif',
|
||||||
|
fileSize: 5120,
|
||||||
|
limit: 1,
|
||||||
|
limitFileCount: 1,
|
||||||
|
resReName: 'data.fullFileWatermarkPath',
|
||||||
|
urlReName: 'data.fullFileWatermarkPath',
|
||||||
|
widget: 'upload',
|
||||||
|
name: 'multipartFile',
|
||||||
|
multiple: false,
|
||||||
|
listType: 'picture-card'
|
||||||
|
} as SFUploadWidgetSchema;
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-parterl-config',
|
selector: 'app-parterl-config',
|
||||||
templateUrl: './config.component.html',
|
templateUrl: './config.component.html',
|
||||||
@ -10,6 +25,7 @@ import { ConfigService } from '../../services/config.service';
|
|||||||
})
|
})
|
||||||
export class PartnerSystemConfigComponent implements OnInit {
|
export class PartnerSystemConfigComponent implements OnInit {
|
||||||
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
||||||
|
@ViewChild('sf2', { static: false }) sf2!: SFComponent;
|
||||||
formDate: any = {
|
formDate: any = {
|
||||||
isAudit: false,
|
isAudit: false,
|
||||||
isEveryDay: false,
|
isEveryDay: false,
|
||||||
@ -21,6 +37,7 @@ export class PartnerSystemConfigComponent implements OnInit {
|
|||||||
auditTime!: any;
|
auditTime!: any;
|
||||||
auditTimeStatus: boolean = false
|
auditTimeStatus: boolean = false
|
||||||
everyDay: boolean = false
|
everyDay: boolean = false
|
||||||
|
MonthDay: boolean = false
|
||||||
time: Date | null = null;
|
time: Date | null = null;
|
||||||
defaultOpenValue = new Date(0, 0, 0, 0, 0, 0);
|
defaultOpenValue = new Date(0, 0, 0, 0, 0, 0);
|
||||||
tabs = [
|
tabs = [
|
||||||
@ -32,6 +49,22 @@ export class PartnerSystemConfigComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
selectedTab = 0;
|
selectedTab = 0;
|
||||||
|
TimeStatus: boolean = true
|
||||||
|
everyDayData: Array<any> =[];
|
||||||
|
MonthDayData: any = [
|
||||||
|
{month: [
|
||||||
|
{ label: '周一', value: '周一', },
|
||||||
|
{ label: '周二', value: '周二' },
|
||||||
|
{ label: '周三', value: '周三' },
|
||||||
|
{ label: '周四', value: '周四' },
|
||||||
|
{ label: '周五', value: '周五' },
|
||||||
|
{ label: '周六', value: '周六' },
|
||||||
|
{ label: '周日', value: '周日' }
|
||||||
|
], Times:[ {
|
||||||
|
startTime: [],
|
||||||
|
endTime: [],
|
||||||
|
}]}
|
||||||
|
]
|
||||||
|
|
||||||
checkOptionsOne = [
|
checkOptionsOne = [
|
||||||
{ label: '周一', value: '周一', checked: true },
|
{ label: '周一', value: '周一', checked: true },
|
||||||
@ -45,134 +78,212 @@ export class PartnerSystemConfigComponent implements OnInit {
|
|||||||
|
|
||||||
i: any;
|
i: any;
|
||||||
schema!: SFSchema;
|
schema!: SFSchema;
|
||||||
|
schema2!: SFSchema;
|
||||||
|
|
||||||
|
// IMAGECONFIG = {
|
||||||
|
// widget: 'upload',
|
||||||
|
// action: `/scm/cms/cms/upload/multipartFile/fileModel`,
|
||||||
|
// limit: 1,
|
||||||
|
// limitFileCount: 1,
|
||||||
|
// resReName: 'url',
|
||||||
|
// urlReName: 'url',
|
||||||
|
// data: {
|
||||||
|
// appId: this.service.envSrv.getEnvironment().appId
|
||||||
|
// },
|
||||||
|
// multiple: false,
|
||||||
|
// listType: 'picture-card',
|
||||||
|
// showRequired: true
|
||||||
|
// };
|
||||||
|
|
||||||
imageConfig = {
|
|
||||||
widget: 'upload',
|
|
||||||
action: `/scm/cms/cms/upload/multipartFile/fileModel`,
|
|
||||||
limit: 1,
|
|
||||||
limitFileCount: 1,
|
|
||||||
resReName: 'url',
|
|
||||||
urlReName: 'url',
|
|
||||||
data: {
|
|
||||||
appId: this.service.envSrv.getEnvironment().appId
|
|
||||||
},
|
|
||||||
multiple: false,
|
|
||||||
listType: 'picture-card',
|
|
||||||
showRequired: true
|
|
||||||
};
|
|
||||||
constructor(private service: ConfigService) {}
|
constructor(private service: ConfigService) {}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.initSF();
|
this.initSF();
|
||||||
|
this.everyDayData = [
|
||||||
|
{
|
||||||
|
startTime: '',
|
||||||
|
endTime: '',
|
||||||
}
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
addEvery() {
|
||||||
|
this.everyDayData.push(
|
||||||
|
{
|
||||||
|
startTime: [],
|
||||||
|
endTime: [],
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
delEvery(index: number) {
|
||||||
|
this.everyDayData.splice(index, 1)
|
||||||
|
|
||||||
|
}
|
||||||
|
addMonthEvery(value: any) {
|
||||||
|
this.MonthDayData[value].Times.push(
|
||||||
|
{
|
||||||
|
startTime: '',
|
||||||
|
endTime: ''
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
addMonth() {
|
||||||
|
this.MonthDayData.push(
|
||||||
|
{month: [
|
||||||
|
{ label: '周一', value: '周一', },
|
||||||
|
{ label: '周二', value: '周二' },
|
||||||
|
{ label: '周三', value: '周三' },
|
||||||
|
{ label: '周四', value: '周四' },
|
||||||
|
{ label: '周五', value: '周五' },
|
||||||
|
{ label: '周六', value: '周六' },
|
||||||
|
{ label: '周日', value: '周日' }
|
||||||
|
], Times:[{
|
||||||
|
startTime: '',
|
||||||
|
endTime: ''
|
||||||
|
}]}
|
||||||
|
)
|
||||||
|
|
||||||
|
}
|
||||||
|
delMonth(value: number,index: number) {
|
||||||
|
this.MonthDayData[value].Times.splice(index, 1)
|
||||||
|
}
|
||||||
changeType(type: number): void {
|
changeType(type: number): void {
|
||||||
this.selectedTab = type;
|
this.selectedTab = type;
|
||||||
}
|
}
|
||||||
|
changeMonth(type: any): void {
|
||||||
|
console.log(type);
|
||||||
|
console.log( this.MonthDayData);
|
||||||
|
}
|
||||||
|
everyDayChange(type: any): void {
|
||||||
|
console.log(type);
|
||||||
|
if(type) {
|
||||||
|
this.MonthDay = false
|
||||||
|
this.TimeStatus = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
MonthDayChange(type: any): void {
|
||||||
|
console.log(type);
|
||||||
|
if(type) {
|
||||||
|
this.everyDay = false
|
||||||
|
this.TimeStatus = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
initSF() {
|
initSF() {
|
||||||
|
|
||||||
this.schema = {
|
this.schema = {
|
||||||
properties: {
|
properties: {
|
||||||
sysMinLogo: {
|
roadTransportPhoto: { title: '', type: 'string', ui: { hidden: true } },
|
||||||
|
roadTransportPhotoWatermark: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: '系统LOGO(小)',
|
title: '分享海报',
|
||||||
// enum: [],
|
|
||||||
ui: {
|
ui: {
|
||||||
...this.imageConfig,
|
...IMAGECONFIG,
|
||||||
descriptionI18n: '小尺寸logo,支持JPG、PNG格式,文件小于2M(建议尺寸32*32px)。',
|
descriptionI18n: '支持JPG、PNG格式,文件小于2M(建议尺寸 750px* 1624 px)。',
|
||||||
change: args => {
|
change: args => {
|
||||||
if (args.type === 'success') {
|
if (args.type === 'success') {
|
||||||
const avatar = this.getImageModel(args, 'sysMinLogo');
|
this.sf.setValue('/roadTransportPhoto', args.fileList[0].response.data.fullFilePath);
|
||||||
this.sf?.setValue('/sysMinLogo', avatar);
|
|
||||||
this.i.sysMinLogo = avatar;
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeUpload: this.uploadBefore
|
|
||||||
} as SFUploadWidgetSchema
|
} as SFUploadWidgetSchema
|
||||||
},
|
},
|
||||||
sysMaxLogo: {
|
share: { title: '', type: 'string', ui: { hidden: true } },
|
||||||
|
shareWatermark: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: '系统LOGO(大)',
|
title: '分享图',
|
||||||
ui: {
|
ui: {
|
||||||
...this.imageConfig,
|
...IMAGECONFIG,
|
||||||
descriptionI18n: '小尺寸logo,支持JPG、PNG格式,文件小于2M(建议尺寸32*32px)。',
|
descriptionI18n: '支持JPG、PNG格式,文件小于2M( 建议尺寸 856px * 688px)。',
|
||||||
change: args => {
|
change: args => {
|
||||||
if (args.type === 'success') {
|
if (args.type === 'success') {
|
||||||
const avatar = this.getImageModel(args, -1);
|
this.sf.setValue('/share', args.fileList[0].response.data.fullFilePath);
|
||||||
this.sf?.setValue('/sysMaxLogo', avatar);
|
|
||||||
this.i.sysMaxLogo = avatar;
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeUpload: this.uploadBefore
|
|
||||||
} as SFUploadWidgetSchema
|
} as SFUploadWidgetSchema
|
||||||
},
|
},
|
||||||
sysMaxLogo1: {
|
take: { title: '', type: 'string', ui: { hidden: true } },
|
||||||
|
takeWatermark: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: '用户默认头像',
|
title: '受邀海报',
|
||||||
ui: {
|
ui: {
|
||||||
...this.imageConfig,
|
...IMAGECONFIG,
|
||||||
descriptionI18n: '支持JPG、PNG格式,文件小于2M(建议尺寸60*60px)。',
|
descriptionI18n: '支持JPG、PNG格式,文件小于2M(建议尺寸 750px* 1624 px)。',
|
||||||
change: args => {
|
change: args => {
|
||||||
if (args.type === 'success') {
|
if (args.type === 'success') {
|
||||||
const avatar = this.getImageModel(args, -1);
|
this.sf.setValue('/take', args.fileList[0].response.data.fullFilePath);
|
||||||
this.sf?.setValue('/sysMaxLogo1', avatar);
|
|
||||||
this.i.sysMaxLogo1 = avatar;
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeUpload: this.uploadBefore
|
|
||||||
} as SFUploadWidgetSchema
|
} as SFUploadWidgetSchema
|
||||||
},
|
},
|
||||||
sysMaxLogo2: {
|
complianceRemark: {
|
||||||
|
title: '分享文案',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: '企业默认头像',
|
maxLength: 50,
|
||||||
ui: {
|
ui: {
|
||||||
...this.imageConfig,
|
placeholder: '请不要超过50个字',
|
||||||
descriptionI18n: '支持JPG、PNG格式,文件小于2M(建议尺寸60*60px)。',
|
widget: 'textarea',
|
||||||
|
autosize: { minRows: 3, maxRows: 6 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
required: ['roadTransportPhotoWatermark', 'shareWatermark', 'takeWatermark', 'complianceRemark']
|
||||||
|
};
|
||||||
|
this.schema2 = {
|
||||||
|
properties: {
|
||||||
|
roadTransportPhoto: { title: '', type: 'string', ui: { hidden: true } },
|
||||||
|
roadTransportPhotoWatermark: {
|
||||||
|
type: 'string',
|
||||||
|
title: '分享海报',
|
||||||
|
ui: {
|
||||||
|
...IMAGECONFIG,
|
||||||
|
descriptionI18n: '支持JPG、PNG格式,文件小于2M(建议尺寸750px* 1624 px)。',
|
||||||
change: args => {
|
change: args => {
|
||||||
if (args.type === 'success') {
|
if (args.type === 'success') {
|
||||||
const avatar = this.getImageModel(args, -1);
|
this.sf2.setValue('/roadTransportPhoto', args.fileList[0].response.data.fullFilePath);
|
||||||
this.sf?.setValue('/sysMaxLogo2', avatar);
|
|
||||||
this.i.sysMaxLogo2 = avatar;
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeUpload: this.uploadBefore
|
|
||||||
} as SFUploadWidgetSchema
|
} as SFUploadWidgetSchema
|
||||||
},
|
},
|
||||||
sysMaxLogo3: {
|
share: { title: '', type: 'string', ui: { hidden: true } },
|
||||||
|
shareWatermark: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: '货主PC端登陆页海报',
|
title: '分享图',
|
||||||
ui: {
|
ui: {
|
||||||
...this.imageConfig,
|
...IMAGECONFIG,
|
||||||
descriptionI18n: '支持JPG、PNG格式,文件小于5M(建议尺寸1920*630px)。',
|
descriptionI18n: '支持JPG、PNG格式,文件小于2M(建议尺寸 856px * 688px)。',
|
||||||
change: args => {
|
change: args => {
|
||||||
if (args.type === 'success') {
|
if (args.type === 'success') {
|
||||||
const avatar = this.getImageModel(args, -1);
|
this.sf2.setValue('/share', args.fileList[0].response.data.fullFilePath);
|
||||||
this.sf?.setValue('/sysMaxLogo3', avatar);
|
|
||||||
this.i.sysMaxLogo3 = avatar;
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeUpload: this.uploadBefore
|
|
||||||
} as SFUploadWidgetSchema
|
} as SFUploadWidgetSchema
|
||||||
},
|
},
|
||||||
sysMaxLogo4: {
|
take: { title: '', type: 'string', ui: { hidden: true } },
|
||||||
|
takeWatermark: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: 'APP开屏海报',
|
title: '受邀海报',
|
||||||
ui: {
|
ui: {
|
||||||
...this.imageConfig,
|
...IMAGECONFIG,
|
||||||
descriptionI18n: '支持JPG、PNG格式,文件小于5M(建议尺寸375*773px)。',
|
descriptionI18n: '支持JPG、PNG格式,文件小于2M(建议尺寸750px* 1624 px)。',
|
||||||
change: args => {
|
change: args => {
|
||||||
if (args.type === 'success') {
|
if (args.type === 'success') {
|
||||||
const avatar = this.getImageModel(args, -1);
|
this.sf2.setValue('/take', args.fileList[0].response.data.fullFilePath);
|
||||||
this.sf?.setValue('/sysMaxLogo4', avatar);
|
|
||||||
this.i.sysMaxLogo4 = avatar;
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeUpload: this.uploadBefore
|
|
||||||
} as SFUploadWidgetSchema
|
} as SFUploadWidgetSchema
|
||||||
},
|
},
|
||||||
|
complianceRemark: {
|
||||||
|
title: '分享文案',
|
||||||
|
type: 'string',
|
||||||
|
maxLength: 50,
|
||||||
|
ui: {
|
||||||
|
placeholder: '请不要超过50个字',
|
||||||
|
widget: 'textarea',
|
||||||
|
autosize: { minRows: 3, maxRows: 6 }
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
required: ['sysMinLogo', 'sysMaxLogo', 'sysMaxLogo1', 'sysMaxLogo2', 'sysMaxLogo3', 'sysMaxLogo4']
|
required: ['roadTransportPhotoWatermark', 'shareWatermark', 'takeWatermark', 'complianceRemark']
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
private uploadBefore = (file: any, fileList: any) => {
|
private uploadBefore = (file: any, fileList: any) => {
|
||||||
|
|||||||
@ -0,0 +1,37 @@
|
|||||||
|
<page-header-wrapper [title]="'可开票订单'">
|
||||||
|
</page-header-wrapper>
|
||||||
|
|
||||||
|
|
||||||
|
<nz-card class="search-box" nzBordered>
|
||||||
|
<div nz-row nzGutter="8">
|
||||||
|
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
|
||||||
|
<sf #sf [schema]="searchSchema"
|
||||||
|
[ui]="{ '*': { spanLabelFixed: 100,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}" [compact]="true"
|
||||||
|
[button]="'none'"></sf>
|
||||||
|
</div>
|
||||||
|
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand"
|
||||||
|
class="text-right">
|
||||||
|
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||||
|
<button nz-button (click)="resetSF()">重置</button>
|
||||||
|
<button nz-button (click)="export()"> 导出</button>
|
||||||
|
<button nz-button nzType="link" (click)="expandToggle()">
|
||||||
|
{{ !_$expand ? '展开' : '收起' }}
|
||||||
|
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nz-card>
|
||||||
|
|
||||||
|
<nz-card class="content-box" nzBordered>
|
||||||
|
<st #st [data]="service.$api_invoicedBillInfo_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
|
||||||
|
[loading]="false" [scroll]="{ x:'1200px' }">
|
||||||
|
<ng-template st-row="sts" let-item let-index="index">
|
||||||
|
<span *ngIf="item.sts === '1'">待受理</span>
|
||||||
|
<span *ngIf="item.sts === '2'">处理中</span>
|
||||||
|
<span *ngIf="item.sts === '3'">已完成</span>
|
||||||
|
<span *ngIf="item.sts === '5'">已拒绝</span>
|
||||||
|
<span *ngIf="item.sts === '6'">已撤销</span>
|
||||||
|
<span *ngIf="item.sts === '7'">已作废</span>
|
||||||
|
</ng-template>
|
||||||
|
</st>
|
||||||
|
</nz-card>
|
||||||
@ -0,0 +1,277 @@
|
|||||||
|
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||||
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
|
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
|
||||||
|
import { SFComponent, SFSchema, SFDateWidgetSchema, SFSelectWidgetSchema } from '@delon/form';
|
||||||
|
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||||
|
import { TicketService } from '../../services/ticket.service';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-billing-order',
|
||||||
|
templateUrl: './billing-order.component.html',
|
||||||
|
styleUrls: ['../../../commom/less/box.less', '../../../commom/less/expend-but.less']
|
||||||
|
})
|
||||||
|
export class BillingOrderComponent implements OnInit {
|
||||||
|
@ViewChild('st', { static: true })
|
||||||
|
st!: STComponent;
|
||||||
|
@ViewChild('sf', { static: false })
|
||||||
|
sf!: SFComponent;
|
||||||
|
columns: STColumn[] = this.initST();
|
||||||
|
searchSchema: SFSchema = this.initSF();
|
||||||
|
|
||||||
|
_$expand = false;
|
||||||
|
|
||||||
|
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router, private ar: ActivatedRoute) { }
|
||||||
|
|
||||||
|
ngOnInit(): void { }
|
||||||
|
|
||||||
|
beforeReq = (requestOptions: STRequestOptions) => {
|
||||||
|
if (this.sf) {
|
||||||
|
Object.assign(requestOptions.body, {
|
||||||
|
...this.sf.value,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return requestOptions;
|
||||||
|
};
|
||||||
|
|
||||||
|
routeTo(item: any) {
|
||||||
|
// return;
|
||||||
|
this.router.navigateByUrl(`/order-management/vehicle/vehicle-detail/${item.billId}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 重置表单
|
||||||
|
*/
|
||||||
|
resetSF() {
|
||||||
|
this.sf.reset();
|
||||||
|
this._$expand = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 伸缩查询条件
|
||||||
|
*/
|
||||||
|
expandToggle() {
|
||||||
|
this._$expand = !this._$expand;
|
||||||
|
this.sf?.setValue('/expand', this._$expand);
|
||||||
|
}
|
||||||
|
|
||||||
|
export() {
|
||||||
|
this.service.exportStart({ ...this.sf.value, pageSize: -1 }, this.service.$api_export_InvoicedBillInfoPage);
|
||||||
|
}
|
||||||
|
|
||||||
|
private initSF(): SFSchema {
|
||||||
|
return {
|
||||||
|
properties: {
|
||||||
|
expand: {
|
||||||
|
type: 'boolean',
|
||||||
|
ui: {
|
||||||
|
hidden: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
billCode: {
|
||||||
|
type: 'string',
|
||||||
|
title: '订单号',
|
||||||
|
ui: {
|
||||||
|
placeholder: '请输入'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
serviceType: {
|
||||||
|
title: '服务类型',
|
||||||
|
type: 'string',
|
||||||
|
ui: {
|
||||||
|
widget: 'dict-select',
|
||||||
|
params: { dictKey: 'service:type' },
|
||||||
|
containsAllLabel: true,
|
||||||
|
visibleIf: {
|
||||||
|
_$expand: (value: boolean) => value
|
||||||
|
}
|
||||||
|
} as SFSelectWidgetSchema
|
||||||
|
},
|
||||||
|
shipperAppUserName: {
|
||||||
|
type: 'string',
|
||||||
|
title: '货主名称',
|
||||||
|
ui: {
|
||||||
|
placeholder: '请输入',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
vatappcode: {
|
||||||
|
type: 'string',
|
||||||
|
title: '申请编号',
|
||||||
|
ui: {
|
||||||
|
autocomplete: 'off',
|
||||||
|
visibleIf: {
|
||||||
|
expand: (value: boolean) => value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
vatinvcode: {
|
||||||
|
type: 'string',
|
||||||
|
title: '分票编号',
|
||||||
|
ui: {
|
||||||
|
placeholder: '请输入',
|
||||||
|
visibleIf: {
|
||||||
|
expand: (value: boolean) => value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
vatappdate: {
|
||||||
|
title: '申请时间',
|
||||||
|
type: 'string',
|
||||||
|
ui: {
|
||||||
|
widget: 'sl-from-to',
|
||||||
|
type: 'date',
|
||||||
|
format: 'yyyy-MM-dd HH:mm:ss',
|
||||||
|
visibleIf: {
|
||||||
|
expand: (value: boolean) => value
|
||||||
|
}
|
||||||
|
} as SFDateWidgetSchema
|
||||||
|
},
|
||||||
|
sts: {
|
||||||
|
type: 'string',
|
||||||
|
title: '开票状态',
|
||||||
|
ui: {
|
||||||
|
widget: 'dict-select',
|
||||||
|
params: { dictKey: 'etc:invoicing:status' },
|
||||||
|
placeholder: '请选择',
|
||||||
|
visibleIf: {
|
||||||
|
expand: (value: boolean) => value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
invoiceno: {
|
||||||
|
type: 'string',
|
||||||
|
title: '发票号码',
|
||||||
|
ui: {
|
||||||
|
placeholder: '请输入',
|
||||||
|
autocomplete: 'off',
|
||||||
|
visibleIf: {
|
||||||
|
expand: (value: boolean) => value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
invoicedate: {
|
||||||
|
title: '开票日期',
|
||||||
|
type: 'string',
|
||||||
|
ui: {
|
||||||
|
widget: 'sl-from-to',
|
||||||
|
type: 'date',
|
||||||
|
format: 'yyyy-MM-dd',
|
||||||
|
visibleIf: {
|
||||||
|
expand: (value: boolean) => value
|
||||||
|
}
|
||||||
|
} as SFDateWidgetSchema
|
||||||
|
},
|
||||||
|
enterpriseInfoId: {
|
||||||
|
type: 'string',
|
||||||
|
title: '网络货运人',
|
||||||
|
ui: {
|
||||||
|
widget: 'select',
|
||||||
|
placeholder: '请选择',
|
||||||
|
allowClear: true,
|
||||||
|
visibleIf: {
|
||||||
|
expand: (value: boolean) => value
|
||||||
|
},
|
||||||
|
asyncData: () => this.service.getNetworkFreightForwarder()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private initST(): STColumn[] {
|
||||||
|
return [
|
||||||
|
{ title: '订单号', index: 'billCode', type:'link', className: 'text-center', width: 180, click: _record => this.routeTo(_record) },
|
||||||
|
{ title: '运单号', index: 'wayBillCode', width: 180, className: 'text-center' },
|
||||||
|
{ title: '银行类型', index: 'bankTypeLabel', render: 'bankType', width: 100, className: 'text-center' },
|
||||||
|
{ title: '网络货运人', index: 'enterpriseInfoName', width: 220, className: 'text-center' },
|
||||||
|
{
|
||||||
|
title: '开票金额', // TODO
|
||||||
|
index: 'vatmoney',
|
||||||
|
width: 120,
|
||||||
|
type: 'widget',
|
||||||
|
className: 'text-center',
|
||||||
|
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatmoney }) }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '总费用',
|
||||||
|
index: 'totalAmount',
|
||||||
|
width: 120,
|
||||||
|
type: 'widget',
|
||||||
|
className: 'text-center',
|
||||||
|
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.totalAmount }) }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '运输费',
|
||||||
|
index: 'price',
|
||||||
|
width: 120,
|
||||||
|
type: 'widget',
|
||||||
|
className: 'text-center',
|
||||||
|
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.price }) }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '技术服务费',
|
||||||
|
index: 'insurancePremium',
|
||||||
|
width: 120,
|
||||||
|
type: 'widget',
|
||||||
|
className: 'text-center',
|
||||||
|
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.insurancePremium }) }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '附加费',
|
||||||
|
index: 'surcharge',
|
||||||
|
width: 120,
|
||||||
|
type: 'widget',
|
||||||
|
className: 'text-center',
|
||||||
|
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.surcharge }) }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '附加费率',
|
||||||
|
className: 'text-center',
|
||||||
|
index: 'paymentMethodRate',
|
||||||
|
width: 130,
|
||||||
|
format: record => `${record.paymentMethodRate}%`
|
||||||
|
},
|
||||||
|
{ title: '货主名称', index: 'shipperAppUserName', width: '180px', className: 'text-center' },
|
||||||
|
{ title: '所属项目', index: 'enterpriseProjectName', width: '180px', className: 'text-center', },
|
||||||
|
{
|
||||||
|
title: '服务类型',
|
||||||
|
index: 'serviceTypeLabel',
|
||||||
|
width: '180px',
|
||||||
|
className: 'text-center'
|
||||||
|
},
|
||||||
|
{ title: '装货地', index: 'consignor', width: '180px', className: 'text-center' },
|
||||||
|
{ title: '卸货地', index: 'consignee', width: '180px', className: 'text-center' },
|
||||||
|
{ title: '货物信息', index: 'goodsName', className: 'text-center', width: '180px' },
|
||||||
|
{ title: '车牌号', index: 'carNo', className: 'text-center', width: '180px' },
|
||||||
|
{
|
||||||
|
title: '承运司机',
|
||||||
|
index:'driverName',
|
||||||
|
className: 'text-center',
|
||||||
|
width: '180px',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '车队长',
|
||||||
|
className: 'text-center',
|
||||||
|
width: '180px',
|
||||||
|
index: 'carCaptainName',
|
||||||
|
},
|
||||||
|
{ title: '业务员', width: '100px', index: 'salesmanName', className: 'text-center', },
|
||||||
|
// { title: '录单时间', index: 'recordTime', type: 'date', className: 'text-center', width: '150px' }, //TODO
|
||||||
|
{ title: '装货时间', index: 'loadTime', type: 'date', width: '150px', className: 'text-center', },
|
||||||
|
{ title: '卸货时间', index: 'unloadTime', type: 'date', width: '150px', className: 'text-center', },
|
||||||
|
{ title: '订单完成时间', index: 'orderReceivingTime', type: 'date', width: 150, className: 'text-center', },
|
||||||
|
{ title: '支付完成时间', index: 'overallPaymentTime', type: 'date', width: 150, className: 'text-center', },
|
||||||
|
{ title: '开票状态', index: 'sts', render: 'sts', className: 'text-center', width: 180 },
|
||||||
|
{ title: '申请开票时间', index: 'vatappdate', type: 'date', className: 'text-center', width: 180 },
|
||||||
|
{ title: '申请开票编号', index: 'vatappcode', className: 'text-center', width: 180 },
|
||||||
|
{ title: '分票编号', index: 'vatinvcode', width: '180px', className: 'text-center', },
|
||||||
|
{ title: '发票号码', index: 'invoiceno', width: 130, className: 'text-center', },
|
||||||
|
{ title: '发票代码', index: 'invoiceno2', width: 130, className: 'text-center' },
|
||||||
|
{ title: '开票日期', index: 'invoicedate', type: 'date', width: 150, className: 'text-center' },
|
||||||
|
// { title: '作废日期', index: 'invalidTime', type: 'date', width: 150 }, // TODO
|
||||||
|
{
|
||||||
|
title: 'ETC开票金额', index: 'etcInvoiceMoney', className: 'text-center', width: 200, type: 'widget',
|
||||||
|
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.etcInvoiceMoney }) }
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -146,6 +146,11 @@ export class TicketService extends ShipperBaseService {
|
|||||||
// ETC白名单(车辆)导出接口
|
// ETC白名单(车辆)导出接口
|
||||||
$api_get_ficoCarWhiteList_asyncExport = '/api/fcc/ficoEtcInvoiceL/asyncExportCarWhiteList';
|
$api_get_ficoCarWhiteList_asyncExport = '/api/fcc/ficoEtcInvoiceL/asyncExportCarWhiteList';
|
||||||
|
|
||||||
|
// 可开票订单list查询
|
||||||
|
$api_invoicedBillInfo_page = '/api/fcc/invoicedBillInfo/getInvoicedBillInfoPage';
|
||||||
|
// 可开票订单导出
|
||||||
|
$api_export_InvoicedBillInfoPage = '/api/fcc/invoicedBillInfo/exportInvoicedBillInfoPage'
|
||||||
|
|
||||||
constructor(public injector: Injector) {
|
constructor(public injector: Injector) {
|
||||||
super(injector);
|
super(injector);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { RouterModule, Routes } from '@angular/router';
|
import { RouterModule, Routes } from '@angular/router';
|
||||||
|
import { BillingOrderComponent } from './components/billing-order/billing-order.component';
|
||||||
import { CancellationInvoiceComponent } from './components/cancellation-invoice/cancellation-invoice.component';
|
import { CancellationInvoiceComponent } from './components/cancellation-invoice/cancellation-invoice.component';
|
||||||
import { ETCBlacklistComponent } from './components/etc-blacklist/etc-blacklist.component';
|
import { ETCBlacklistComponent } from './components/etc-blacklist/etc-blacklist.component';
|
||||||
import { ETCInvoicedListComponent } from './components/etc-invoiced-list/etc-invoiced-list.component';
|
import { ETCInvoicedListComponent } from './components/etc-invoiced-list/etc-invoiced-list.component';
|
||||||
@ -28,7 +29,8 @@ const routes: Routes = [
|
|||||||
{ path: 'input-invoice', component: InputInvoiceComponent },
|
{ path: 'input-invoice', component: InputInvoiceComponent },
|
||||||
{ path: 'input-invoice/detail/:id', component: InputInvoiceDetailComponent },
|
{ path: 'input-invoice/detail/:id', component: InputInvoiceDetailComponent },
|
||||||
{ path: 'input-invoice/edit/:id', component: EditCollectionInvoiceComponent },
|
{ path: 'input-invoice/edit/:id', component: EditCollectionInvoiceComponent },
|
||||||
{ path: 'express-info', component: ExpressInfoComponent }
|
{ path: 'express-info', component: ExpressInfoComponent },
|
||||||
|
{ path: 'billing-order', component: BillingOrderComponent }
|
||||||
];
|
];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
|
|||||||
@ -26,6 +26,7 @@ import { PrintOrderModalComponent } from './components/invoice-requested/print-o
|
|||||||
import { ExpressInfoComponent } from './components/express-info/express-info.component';
|
import { ExpressInfoComponent } from './components/express-info/express-info.component';
|
||||||
import { ExpressDetailModalComponent } from './components/express-info/express-detail-modal/express-detail-modal.component';
|
import { ExpressDetailModalComponent } from './components/express-info/express-detail-modal/express-detail-modal.component';
|
||||||
import { UpdateAddressModalComponent } from './components/invoice-requested/update-address-modal/update-address-modal.component';
|
import { UpdateAddressModalComponent } from './components/invoice-requested/update-address-modal/update-address-modal.component';
|
||||||
|
import { BillingOrderComponent } from './components/billing-order/billing-order.component';
|
||||||
|
|
||||||
const COMPONENTS: any = [
|
const COMPONENTS: any = [
|
||||||
ETCInvoicedListComponent,
|
ETCInvoicedListComponent,
|
||||||
@ -41,7 +42,8 @@ const COMPONENTS: any = [
|
|||||||
InputInvoiceComponent,
|
InputInvoiceComponent,
|
||||||
InputInvoiceDetailComponent,
|
InputInvoiceDetailComponent,
|
||||||
EditCollectionInvoiceComponent,
|
EditCollectionInvoiceComponent,
|
||||||
ExpressInfoComponent
|
ExpressInfoComponent,
|
||||||
|
BillingOrderComponent
|
||||||
];
|
];
|
||||||
const NOTROUTECOMPONENTS: any = [
|
const NOTROUTECOMPONENTS: any = [
|
||||||
TransactionDetailsComponent,
|
TransactionDetailsComponent,
|
||||||
|
|||||||
@ -137,6 +137,7 @@ export class VehicleComponentsAuditDetailComponent implements OnInit, OnDestroy
|
|||||||
reset() {
|
reset() {
|
||||||
this.detailData = { ...this.tempalateData };
|
this.detailData = { ...this.tempalateData };
|
||||||
this.isEdit = false;
|
this.isEdit = false;
|
||||||
|
this.getDetailList();
|
||||||
}
|
}
|
||||||
|
|
||||||
save() {
|
save() {
|
||||||
@ -261,10 +262,19 @@ export class VehicleComponentsAuditDetailComponent implements OnInit, OnDestroy
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
viewEvaluate(item: any) {
|
viewEvaluate(item: any) {
|
||||||
this.modal.createStatic(VehicleImgViewComponent, { i: item }).subscribe(i => {
|
// this.modal.createStatic(VehicleImgViewComponent, { i: item }).subscribe(i => {
|
||||||
|
// this.st.reload();
|
||||||
|
// this.getDetailList();
|
||||||
|
// });
|
||||||
|
console.log(item);
|
||||||
|
|
||||||
|
const params = {
|
||||||
|
imgList: [item.carProtocal],
|
||||||
|
index: 0
|
||||||
|
};
|
||||||
|
this.nzImageService.preview([{ src: item.carProtocal}]);
|
||||||
this.st.reload();
|
this.st.reload();
|
||||||
this.getDetailList();
|
this.getDetailList();
|
||||||
});
|
|
||||||
}
|
}
|
||||||
updateEvaluate(item: any) {
|
updateEvaluate(item: any) {
|
||||||
this.modal.createStatic(VehicleComponentsListEditComponent, { i: item }).subscribe(i => {
|
this.modal.createStatic(VehicleComponentsListEditComponent, { i: item }).subscribe(i => {
|
||||||
|
|||||||
@ -28,7 +28,7 @@ export class VehicleComponentsListDetailComponent implements OnInit {
|
|||||||
modalName = '';
|
modalName = '';
|
||||||
ui!: SFUISchema;
|
ui!: SFUISchema;
|
||||||
columns!: STColumn[];
|
columns!: STColumn[];
|
||||||
uploadURl = apiConf.fileUpload;
|
uploadURl = apiConf.waterFileUpload;
|
||||||
schema!: SFSchema;
|
schema!: SFSchema;
|
||||||
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
||||||
schema1!: SFSchema;
|
schema1!: SFSchema;
|
||||||
@ -198,10 +198,14 @@ export class VehicleComponentsListDetailComponent implements OnInit {
|
|||||||
*查看评价
|
*查看评价
|
||||||
*/
|
*/
|
||||||
viewEvaluate(item: any) {
|
viewEvaluate(item: any) {
|
||||||
this.modal.createStatic(VehicleImgViewComponent, { i: item }).subscribe(() => {
|
console.log(item);
|
||||||
this.st.reload();
|
this.st.reload();
|
||||||
this.getDetailList();
|
this.getDetailList();
|
||||||
});
|
const params = {
|
||||||
|
imgList: [item.carProtocal],
|
||||||
|
index: 0
|
||||||
|
};
|
||||||
|
this.nzImageService.preview([{ src: item.carProtocal}]);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
*查看评价
|
*查看评价
|
||||||
@ -219,7 +223,7 @@ export class VehicleComponentsListDetailComponent implements OnInit {
|
|||||||
changeUpload({ file, fileList, type }: any, key: string) {
|
changeUpload({ file, fileList, type }: any, key: string) {
|
||||||
console.log({ file, fileList, type });
|
console.log({ file, fileList, type });
|
||||||
if (type === 'success') {
|
if (type === 'success') {
|
||||||
this.detailData[key] = file.response.data.fullFilePath;
|
this.detailData[key] = file.response.data.fullFileWatermarkPath;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
deleteImg(key: string) {
|
deleteImg(key: string) {
|
||||||
@ -247,6 +251,7 @@ export class VehicleComponentsListDetailComponent implements OnInit {
|
|||||||
reset() {
|
reset() {
|
||||||
this.detailData = { ...this.tempalateData };
|
this.detailData = { ...this.tempalateData };
|
||||||
this.isEdit = false;
|
this.isEdit = false;
|
||||||
|
this.getDetailList();
|
||||||
}
|
}
|
||||||
|
|
||||||
save() {
|
save() {
|
||||||
|
|||||||
@ -56,12 +56,13 @@ export class VehicleComponentsListEditComponent implements OnInit {
|
|||||||
// 依据类型初始表单
|
// 依据类型初始表单
|
||||||
this.schema = {
|
this.schema = {
|
||||||
properties: {
|
properties: {
|
||||||
carProtocal: {
|
carProtocal: { title: '', type: 'string', ui: { hidden: true } },
|
||||||
|
carProtocalWatermark: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: '车主申明/挂靠协议',
|
title: '车主申明/挂靠协议',
|
||||||
ui: {
|
ui: {
|
||||||
widget: 'upload',
|
widget: 'upload',
|
||||||
action: apiConf.fileUpload,
|
action: apiConf.waterFileUpload,
|
||||||
fileType: 'image/png,image/jpeg,image/jpg,image/gif',
|
fileType: 'image/png,image/jpeg,image/jpg,image/gif',
|
||||||
limit: 1,
|
limit: 1,
|
||||||
limitFileCount: 1,
|
limitFileCount: 1,
|
||||||
@ -72,6 +73,11 @@ export class VehicleComponentsListEditComponent implements OnInit {
|
|||||||
appId: this.envSrv.env.appId,
|
appId: this.envSrv.env.appId,
|
||||||
},
|
},
|
||||||
name: 'multipartFile',
|
name: 'multipartFile',
|
||||||
|
change: args => {
|
||||||
|
if (args.type === 'success') {
|
||||||
|
this.sf.setValue('/carProtocal', args.fileList[0].response.data.fullFilePath);
|
||||||
|
}
|
||||||
|
},
|
||||||
beforeUpload: (file: any, fileList: any) => {
|
beforeUpload: (file: any, fileList: any) => {
|
||||||
return new Observable((observer: Observer<boolean>) => {
|
return new Observable((observer: Observer<boolean>) => {
|
||||||
const isLt1M = file.size / 1024 / 1024 < 5;
|
const isLt1M = file.size / 1024 / 1024 < 5;
|
||||||
@ -110,8 +116,11 @@ export class VehicleComponentsListEditComponent implements OnInit {
|
|||||||
this.modal.destroy();
|
this.modal.destroy();
|
||||||
}
|
}
|
||||||
sure() {
|
sure() {
|
||||||
|
console.log(this.sf.value);
|
||||||
|
|
||||||
const params ={
|
const params ={
|
||||||
carProtocal: this.sf.value.carProtocal?.data?.fullFilePath,
|
carProtocal: this.sf.value.carProtocal,
|
||||||
|
carProtocalWatermark: this.sf.value.carProtocalWatermark,
|
||||||
id: this.i.id
|
id: this.i.id
|
||||||
}
|
}
|
||||||
this.service.request(this.service.$api_get_upLoadCarProtocal, params).subscribe((res) => {
|
this.service.request(this.service.$api_get_upLoadCarProtocal, params).subscribe((res) => {
|
||||||
|
|||||||
@ -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-04-22 14:09:16
|
* @LastEditTime : 2022-04-26 20:46:19
|
||||||
* @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.
|
||||||
-->
|
-->
|
||||||
@ -23,7 +23,7 @@
|
|||||||
<th nzWidth="160px" nzAlign="center" >初始业务量(万/月)</th>
|
<th nzWidth="160px" nzAlign="center" >初始业务量(万/月)</th>
|
||||||
<th nzWidth="160px" nzAlign="center" >到达业务量(万/月)</th>
|
<th nzWidth="160px" nzAlign="center" >到达业务量(万/月)</th>
|
||||||
<th nzWidth="160px" 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 *ngIf="type == '2'">操作</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@ -37,15 +37,18 @@
|
|||||||
</td>
|
</td>
|
||||||
<td nzWidth="220px" nzAlign="center" >
|
<td nzWidth="220px" nzAlign="center" >
|
||||||
<div >
|
<div >
|
||||||
<nz-select style="min-width: 150px;" [(ngModel)]="item.gradeConfigId" >
|
<nz-select *ngIf="type == '2'" style="min-width: 150px;" [(ngModel)]="item.gradeConfigId" >
|
||||||
<nz-option *ngFor="let item of grage" [nzValue]="item.id" [nzLabel]="item.gradeName" ></nz-option>
|
<nz-option *ngFor="let item of grage" [nzValue]="item.id" [nzLabel]="item.gradeName" ></nz-option>
|
||||||
</nz-select>
|
</nz-select>
|
||||||
|
<nz-select *ngIf="type == '1'" style="min-width: 150px;" [(ngModel)]="item.gradeConfigId" >
|
||||||
|
<nz-option [nzValue]="'0'" nzLabel="全部等级" ></nz-option>
|
||||||
|
</nz-select>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td nzWidth="160px" nzAlign="center" >
|
<td nzWidth="160px" nzAlign="center" >
|
||||||
<div >
|
<div >
|
||||||
<nz-input-group nzPrefix="=" >
|
<nz-input-group nzPrefix="=" >
|
||||||
<nz-input-number nzPrefix="=" [(ngModel)]="item.startAmount" [nzMin]="0" nzSize="small" (ngModelChange)="changeendAmount($event,i)"
|
<nz-input-number nzPrefix="=" [(ngModel)]="item.startAmount" [nzMin]="0" [nzMax]="99999999"nzSize="small" (ngModelChange)="changeendAmount($event,i)"
|
||||||
>
|
>
|
||||||
</nz-input-number>
|
</nz-input-number>
|
||||||
</nz-input-group>
|
</nz-input-group>
|
||||||
@ -55,7 +58,7 @@
|
|||||||
<td nzWidth="160px" nzAlign="center" >
|
<td nzWidth="160px" nzAlign="center" >
|
||||||
<div >
|
<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" [nzMax]="99999999" nzSize="small" >
|
||||||
</nz-input-number>
|
</nz-input-number>
|
||||||
</nz-input-group>
|
</nz-input-group>
|
||||||
</div>
|
</div>
|
||||||
@ -63,7 +66,7 @@
|
|||||||
<td nzWidth="160px" nzAlign="center" >
|
<td nzWidth="160px" nzAlign="center" >
|
||||||
<div >
|
<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" [nzMax]="100"nzSize="small"
|
||||||
>
|
>
|
||||||
</nz-input-number>
|
</nz-input-number>
|
||||||
</nz-input-group>
|
</nz-input-group>
|
||||||
@ -72,11 +75,11 @@
|
|||||||
</ng-template>
|
</ng-template>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td nzWidth="60px" nzAlign="center" nzRight>
|
<td nzWidth="60px" nzAlign="center" nzRight *ngIf="type == '2'">
|
||||||
<a nz-popconfirm
|
<a style=" font-size: 20px;" nz-popconfirm
|
||||||
nzPopconfirmTitle="是否新增?" (nzOnConfirm)="add()"
|
nzPopconfirmTitle="是否新增?" (nzOnConfirm)="add()"
|
||||||
>+</a>
|
>+</a>
|
||||||
<a *ngIf="i === groupingTable.data.length-1 && groupingTable.data.length>1"
|
<a style="margin-left: 10px; font-size: 20px;" *ngIf="i === groupingTable.data.length-1 && groupingTable.data.length>1"
|
||||||
nz-popconfirm
|
nz-popconfirm
|
||||||
nzPopconfirmTitle="是否确认删除?" (nzOnConfirm)="deleteRow(i)"
|
nzPopconfirmTitle="是否确认删除?" (nzOnConfirm)="deleteRow(i)"
|
||||||
>-</a>
|
>-</a>
|
||||||
|
|||||||
@ -1,20 +1,21 @@
|
|||||||
import { debounceTime } from 'rxjs/operators';
|
import { debounceTime } from 'rxjs/operators';
|
||||||
import { Subject } from 'rxjs';
|
import { Subject } from 'rxjs';
|
||||||
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit, Output, ViewChild } from '@angular/core';
|
import { ChangeDetectorRef, Component, Input, OnInit, Output } from '@angular/core';
|
||||||
import { BaseService } from '@shared';
|
import { BaseService } from '@shared';
|
||||||
import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
|
import { EventEmitter } from '@angular/core';
|
||||||
import { EventEmitter} from '@angular/core'
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-rebate-table',
|
selector: 'app-rebate-table',
|
||||||
templateUrl: './rebate-table.component.html',
|
templateUrl: './rebate-table.component.html',
|
||||||
styleUrls: ['./rebate-table.component.less']
|
styleUrls: ['./rebate-table.component.less']
|
||||||
})
|
})
|
||||||
export class RebateTableComponent implements OnInit {
|
export class RebateTableComponent implements OnInit {
|
||||||
@Input() data: any =[];
|
@Input() data: any = []; // 数据
|
||||||
|
@Input() type: any; // 配置类型 1全部等级 2不同等级
|
||||||
|
@Input() hiden!: boolean; // 判断新增/查看
|
||||||
@Output()
|
@Output()
|
||||||
private dataChange: EventEmitter<any> = new EventEmitter();
|
private dataChange: EventEmitter<any> = new EventEmitter();
|
||||||
emit() {
|
emit() {
|
||||||
this.dataChange.emit(this.data)
|
this.dataChange.emit(this.data);
|
||||||
}
|
}
|
||||||
headers: any[] = [];
|
headers: any[] = [];
|
||||||
gradeConfigId: string = '';
|
gradeConfigId: string = '';
|
||||||
@ -24,6 +25,11 @@ export class RebateTableComponent implements OnInit {
|
|||||||
constructor(public service: BaseService, private cdr: ChangeDetectorRef) {}
|
constructor(public service: BaseService, private cdr: ChangeDetectorRef) {}
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
|
if (this.type == '2') {
|
||||||
|
this.loadData();
|
||||||
|
}
|
||||||
|
// 新增-不同等级情况
|
||||||
|
if (!this.hiden && this.type == '2') {
|
||||||
this.data = [
|
this.data = [
|
||||||
{
|
{
|
||||||
gradeConfigId: '',
|
gradeConfigId: '',
|
||||||
@ -32,29 +38,29 @@ export class RebateTableComponent implements OnInit {
|
|||||||
managementFeeRatio: 0,
|
managementFeeRatio: 0,
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
this.loadData();
|
// 新增-全部等级情况
|
||||||
|
} else if (!this.hiden && this.type == '1'){
|
||||||
|
this.data = [
|
||||||
|
{
|
||||||
|
gradeConfigId: '0',
|
||||||
|
startAmount: 0,
|
||||||
|
endAmount: 0,
|
||||||
|
managementFeeRatio: 0,
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
this.changeendAmountAction();
|
this.changeendAmountAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
loadData() {
|
loadData() {
|
||||||
this.service.request('/api/mdc/partnerGradeConfig/listPartnerGradeConfig').subscribe(res => {
|
this.service.request('/api/mdc/partnerGradeConfig/listPartnerGradeConfig').subscribe(res => {
|
||||||
if (res) {
|
if (res) {
|
||||||
console.log(res);
|
|
||||||
this.grage = res;
|
this.grage = res;
|
||||||
this.cdr.detectChanges();
|
this.cdr.detectChanges();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// this.service.request('/api/mdc/pbc/sysConfigItem/findItemValueByItemKeys', [
|
|
||||||
// "rebate.config.minrebatePrice"
|
|
||||||
// ]).subscribe(res => {
|
|
||||||
// if (res) {
|
|
||||||
// console.log(res);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改结束公里数
|
* 修改结束公里数
|
||||||
* @param event 车长
|
* @param event 车长
|
||||||
@ -62,8 +68,6 @@ export class RebateTableComponent implements OnInit {
|
|||||||
*/
|
*/
|
||||||
changeendAmount(event: any, i: number) {
|
changeendAmount(event: any, i: number) {
|
||||||
if (event) {
|
if (event) {
|
||||||
console.log(event);
|
|
||||||
|
|
||||||
this.changeSub.next(`${event},${i}`);
|
this.changeSub.next(`${event},${i}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -75,7 +79,6 @@ export class RebateTableComponent implements OnInit {
|
|||||||
const i = Number(paras[1]);
|
const i = Number(paras[1]);
|
||||||
|
|
||||||
if (num <= this.data[i]?.startAmount) {
|
if (num <= this.data[i]?.startAmount) {
|
||||||
console.log(this.data[i].endAmount);
|
|
||||||
this.data[i].endAmount = null;
|
this.data[i].endAmount = null;
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.data[i].endAmount = this.data[i]?.startAmount + 1;
|
this.data[i].endAmount = this.data[i]?.startAmount + 1;
|
||||||
@ -90,45 +93,25 @@ export class RebateTableComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
add() {
|
add() {
|
||||||
console.log(this.data);
|
|
||||||
|
|
||||||
const tem = this.data[this.data?.length - 1];
|
const tem = this.data[this.data?.length - 1];
|
||||||
if (tem) {
|
if (tem) {
|
||||||
this.data.push({
|
this.data.push({
|
||||||
gradeConfigId: '',
|
gradeConfigId: '',
|
||||||
startAmount: 0,
|
startAmount: 0,
|
||||||
endAmount: 0,
|
endAmount: 0,
|
||||||
managementFeeRatio: 0,
|
managementFeeRatio: 0
|
||||||
});
|
});
|
||||||
this.data = [...this.data];
|
this.data = [...this.data];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteRow(index: number) {
|
deleteRow(index: number) {
|
||||||
console.log(index);
|
|
||||||
var newArr = this.data.concat();
|
var newArr = this.data.concat();
|
||||||
newArr.splice(this.data.length-1,1)
|
newArr.splice(this.data.length - 1, 1);
|
||||||
// this.data = this.data.pop()
|
// this.data = this.data.pop()
|
||||||
console.log(newArr);
|
|
||||||
this.data = [...newArr];
|
this.data = [...newArr];
|
||||||
}
|
}
|
||||||
|
|
||||||
save() {
|
|
||||||
console.log(this.data)
|
|
||||||
let params= {
|
|
||||||
rebateConfigDTOS: this.data
|
|
||||||
}
|
|
||||||
console.log(params);
|
|
||||||
this.service.request('/api/mdc/cuc/rebateConfig/saveBatch', params).subscribe(res => {
|
|
||||||
if (res) {
|
|
||||||
console.log(res);
|
|
||||||
this.service.msgSrv.success('修改成功');
|
|
||||||
this.loadData();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 遍历同步后置位公里数
|
* 遍历同步后置位公里数
|
||||||
* @param event 车长
|
* @param event 车长
|
||||||
|
|||||||
Reference in New Issue
Block a user