Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop

This commit is contained in:
潘晓云
2022-05-11 15:15:28 +08:00
23 changed files with 568 additions and 339 deletions

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-01-18 09:51:21
* @LastEditors : Shiming
* @LastEditTime : 2022-05-11 10:12:55
* @LastEditTime : 2022-05-11 13:29:32
* @FilePath : \\tms-obc-web\\proxy.conf.js
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/

View File

@ -168,7 +168,7 @@ export class DriverAccountComponent extends BasicTableComponent implements OnIni
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.freezeBalance }) }
},
{
title: '本月累计提现金额',
title: '累计提现金额',
index: 'withdrawBalance',
width: 160,
type: 'widget',

View File

@ -1,13 +1,49 @@
<h2>转移客户数:{{changeST?.total}}</h2>
<st #changeST [data]="service.$api_get_partner_change_list" [columns]="columns.changeColumn"
[req]="{params:{id:id ,type:1}}" [loading]="service.http.loading" bordered size="small"
[page]="{ show: false }" [scroll]="{ x: '750px' }">
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-28 20:27:08
* @LastEditors : Shiming
* @LastEditTime : 2022-05-11 14:44:15
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\partner-list\\components\\channel-log-modal\\channel-log-modal.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<div class="bbod">
<h2>转移客户数:{{ changeST?.list?.length }}</h2>
<st
#changeST
[data]="service.$api_get_partner_change_list"
[columns]="columns.changeColumn"
[req]="{ params: { id: id, type: 1 } }"
[res]="{ reName: { list: 'data' } }"
[loading]="service.http.loading"
bordered
size="small"
[page]="{ show: false }"
[scroll]="{ x: '750px' }"
>
<ng-template st-row="crmStatus" let-item let-index="index" let-column="column">
<div *ngIf="item.crmStatus == '0'">未发起</div>
<div *ngIf="item.crmStatus == '10'">待审核</div>
<div *ngIf="item.crmStatus == '20'">审核通过</div>
<div *ngIf="item.crmStatus == '30'">驳回</div>
</ng-template>
</st>
<h2>不转移客户数:{{noChangeST?.total}}</h2>
<st #noChangeST [data]="service.$api_get_partner_change_list" [columns]="columns.beChangeColumn"
[req]="{params:{id:id ,type:2}}" [res]="{reName: { list: 'data' }}"
[loading]="service.http.loading" bordered size="small" [page]="{ show: false }" [scroll]="{ x: '750px' }">
<h2>不转移客户数:{{ noChangeST?.list?.length }}</h2>
<st
#noChangeST
[data]="service.$api_get_partner_change_list"
[columns]="columns.beChangeColumn"
[req]="{ params: { id: id, type: 2 } }"
[res]="{ reName: { list: 'data' } }"
[loading]="service.http.loading"
bordered
size="small"
[page]="{ show: false }"
[scroll]="{ x: '750px' }"
>
</st>
<p>
客户转移客户跟着上级合伙人转移一并到新渠道销售下会同步发起CRM《客户转移》流程不转移的客户会与上级合伙人解绑修改成功后修改时间也是合伙人与客户的结算结束时间成为原来渠道销售的直客。
客户转移客户跟着上级合伙人转移一并到新渠道销售下会同步发起CRM《客户转移》流程不转移的客户会与上级合伙人解绑修改成功后修改时间也是合伙人与客户的结算结束时间成为原来渠道销售的直客。
</p>
</div>

View File

@ -0,0 +1,10 @@
/* stylelint-disable-next-line CssSyntaxError */
:host {
::ng-deep {
.bbod{
height: 600px;
overflow-y: hidden;
}
}
}

View File

@ -1,32 +1,48 @@
import { Component, OnInit } from '@angular/core';
import { STColumn } from '@delon/abc/st';
/*
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-05-09 10:49:35
* @LastEditors : Shiming
* @LastEditTime : 2022-05-11 14:47:57
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\partner-list\\components\\channel-log-modal\\channel-log-modal.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
import { Component, OnInit, ViewChild } from '@angular/core';
import { STColumn, STComponent } from '@delon/abc/st';
import { PartnerListService } from '../../services/partner-list.service';
@Component({
selector: 'app-channel-log-modal',
styleUrls: ['./channel-log-modal.component.less'],
templateUrl: './channel-log-modal.component.html'
})
export class ChannelLogModalComponent implements OnInit {
@ViewChild('changeST', { static: true }) changeST!: STComponent;
@ViewChild('noChangeST', { static: true }) noChangeST!: STComponent;
columns: { changeColumn: STColumn[]; beChangeColumn: STColumn[] } = this.initST();
id = '';
constructor(public service: PartnerListService) {}
ngOnInit(): void {}
ngOnInit(): void {
console.log(this.changeST);
}
private initST(): { changeColumn: STColumn[]; beChangeColumn: STColumn[] } {
return {
changeColumn: [
{ title: '客户名称', index: 'payCode', width: 180 },
{ title: '合伙人', index: 'ltdName', width: 160 },
{ title: '渠道销售', index: 'payDate', className: 'text-center', width: 130 },
{ title: 'CRM审核状态', index: 'payDate', width: 150 },
{ title: '生效时间', index: 'payDate', className: 'text-center', width: 130 }
{ title: '客户名称', index: 'enterpriseName', width: 180 },
{ title: '合伙人', index: 'newPartnerName', width: 160 },
{ title: '渠道销售', index: 'newChannelName', className: 'text-center', width: 130 },
{ title: 'CRM审核状态', render: 'crmStatus', width: 150 },
{ title: '生效时间', index: 'effectiveTime', className: 'text-center', width: 130 }
],
beChangeColumn: [
{ title: '客户名称', index: 'payCode', width: 180 },
{ title: '合伙人', index: 'ltdName', width: 160 },
{ title: '渠道销售', index: 'payDate', className: 'text-center', width: 130 },
{ title: '生效时间', index: 'payDate', className: 'text-center', width: 130 }
{ title: '客户名称', index: 'enterpriseName', width: 180 },
{ title: '合伙人', index: 'newPartnerName', width: 160 },
{ title: '渠道销售', index: 'newChannelName', className: 'text-center', width: 130 },
{ title: '生效时间', index: 'effectiveTime', className: 'text-center', width: 130 }
]
};
}

View File

@ -1,8 +1,7 @@
import { Component, Input, OnInit, ViewChild } from '@angular/core';
import { SFComponent, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, 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 { of } from 'rxjs';
import { map } from 'rxjs/operators';
import { PartnerListService } from '../../services/partner-list.service';
@ -25,6 +24,7 @@ export class PartnerAuditModalComponent implements OnInit {
console.log(this.info);
this.initSF(this.info);
// asyncData: () => this.service.getChannel(),
if(this.info.channelId) {
const value = [{
label: this.info.channelIdLabel,
@ -38,26 +38,20 @@ export class PartnerAuditModalComponent implements OnInit {
}
})
} else {
this.service.getChannel().subscribe((res) => {
console.log(res);
const value :any= res;
setTimeout(() => {
if(this.sf) {
this.sf.getProperty('/channelId')!.schema.enum = value;
this.sf.getProperty('/channelId')!.widget.reset(value);
this.sf.setValue('/channelId', value);
}
})
})
}
// else {
// console.log()
// this.service.getChannel().pipe(map(data => {
// console.log(data);
// }))
// this.service.getChannel().subscribe((res) => {
// console.log(res);
// const value :any= res;
// setTimeout(() => {
// if(this.sf) {
// this.sf.getProperty('/channelId2')!.schema.enum = value;
// this.sf.getProperty('/channelId2')!.widget.reset(value);
// this.sf.setValue('/channelId2', value);
// }
// })
// })
// }
}
initSF(user: any) {
@ -91,36 +85,21 @@ export class PartnerAuditModalComponent implements OnInit {
default: this.info.isPass !== undefined ? this.info.isPass : true
},
channelId: {
type: 'string',
title: '渠道销售',
type: 'string',
ui: {
widget: 'select',
hidden: this.info.isPass === false,
serverSearch: true,
searchDebounceTime: 300,
searchLoadingText: '搜索中...',
placeholder: '请选择',
allowClear: true,
onSearch: (q: any) => {
let str = q.replace(/^\s+|\s+$/g, '');
let params :any= {}
if (str) {
console.log(+str);
if(+str) {
console.log('数字');
params.phoneNumber = str
} else {
console.log('中文');
params.name = str
}
return this.service
.request(this.service.$api_get_channel, params)
.pipe(map((res: any) => (res as any[]).map(i => ({ label: `${i.name}/${i.telephone}`, value: i.id } as SFSchemaEnum))))
.toPromise();
} else {
return of([]);
}
hidden: this.info.isPass === false,
visibleIf: {
status: value => value
},
} as SFSelectWidgetSchema
errors: {
required: ' '
}
},
default: user.channelId
},
approvalOpinion: {
title: '备注',
@ -140,8 +119,10 @@ export class PartnerAuditModalComponent implements OnInit {
}
}
},
required: [ 'approvalOpinion','channelId']
required: ['channelId', 'approvalOpinion']
};
console.log('666');
}
sure() {

View File

@ -28,9 +28,7 @@
</div>
<div nz-row>
<div nz-col [nzLg]="12" [nzSm]="24" [nzXs]="24"> 注册时间:{{ detailData?.createTime }} </div>
<div nz-col [nzLg]="12" [nzSm]="24" [nzXs]="24">
所属城市:{{enterpriseDefaultCityName}}
</div>
<div nz-col [nzLg]="12" [nzSm]="24" [nzXs]="24"> 所属城市:{{ enterpriseDefaultCityName }} </div>
</div>
</div>
</div>
@ -45,14 +43,32 @@
<button [disabled]="service.http.loading" nz-button nzDanger (click)="auditPartner(false)"> 驳回 </button>
</ng-container>
<ng-container *ngIf="detailData?.approvalStatus != 10">
<button [disabled]="service.http.loading" nz-button nzDanger nz-popconfirm [nzPopconfirmTitle]="enable"
(nzOnConfirm)="freezeOrResume(0)" nzPopconfirmPlacement="bottomRight" *ngIf="detailData?.lockedStatus"
acl [acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-lock']">
<button
[disabled]="service.http.loading"
nz-button
nzDanger
nz-popconfirm
[nzPopconfirmTitle]="enable"
(nzOnConfirm)="freezeOrResume(0)"
nzPopconfirmPlacement="bottomRight"
*ngIf="detailData?.lockedStatus"
acl
[acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-lock']"
>
启用
</button>
<button [disabled]="service.http.loading" nz-button nzDanger nz-popconfirm [nzPopconfirmTitle]="frozen"
(nzOnConfirm)="freezeOrResume(1)" nzPopconfirmPlacement="bottomRight" *ngIf="!detailData?.lockedStatus"
acl [acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-lock']">
<button
[disabled]="service.http.loading"
nz-button
nzDanger
nz-popconfirm
[nzPopconfirmTitle]="frozen"
(nzOnConfirm)="freezeOrResume(1)"
nzPopconfirmPlacement="bottomRight"
*ngIf="!detailData?.lockedStatus"
acl
[acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-lock']"
>
冻结
</button>
</ng-container>
@ -64,17 +80,24 @@
</ng-template>
<ng-template #frozen>
<ng-container *ngTemplateOutlet="
<ng-container
*ngTemplateOutlet="
PopconfirmTempalte;
context: { title: '确定冻结该合伙人吗?', content: '停用后,该合伙人将被限制使用,不限于访问受限、邀请客户、佣金收益等,请谨慎操作' }
">
context: {
title: '确定冻结该合伙人吗?',
content: '停用后,该合伙人将被限制使用,不限于访问受限、邀请客户、佣金收益等,请谨慎操作'
}
"
>
</ng-container>
</ng-template>
<ng-template #enable>
<ng-container *ngTemplateOutlet="
<ng-container
*ngTemplateOutlet="
PopconfirmTempalte;
context: { title: '确定启用该合伙人吗?', content: '启用后,该该合伙人将恢复正常使用功能,请再次确认' }
">
"
>
</ng-container>
</ng-template>
</page-header-wrapper>
@ -83,21 +106,34 @@
<sv-container col="3">
<sv-title>企业管理员信息</sv-title>
<sv label="姓名">
<input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.name" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit ? '' : '-'" />
<input
nz-input
type="text"
[(ngModel)]="detailData.adminUserInfo.name"
[readonly]="!isEdit"
[nzBorderless]="!isEdit"
[placeholder]="isEdit ? '' : '-'"
/>
</sv>
<sv label="手机号">
<!-- <input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.mobile" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit ? '' : '-'" /> -->
{{detailData.adminUserInfo.mobile}}
{{ detailData.adminUserInfo.mobile }}
</sv>
<sv label="身份证号">
<input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.certificateNumber" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit ? '' : '-'" />
<input
nz-input
type="text"
[(ngModel)]="detailData.adminUserInfo.certificateNumber"
[readonly]="!isEdit"
[nzBorderless]="!isEdit"
[placeholder]="isEdit ? '' : '-'"
/>
</sv>
<sv label="身份证照" col="2">
<div class="d-flex">
<ng-container *ngTemplateOutlet="
<ng-container
*ngTemplateOutlet="
uploadTemplate;
context: {
data: detailData?.adminUserInfo,
@ -106,9 +142,11 @@
key2: 'certificatePhotoFront',
hover: 'certificateBackFront'
}
">
"
>
</ng-container>
<ng-container *ngTemplateOutlet="
<ng-container
*ngTemplateOutlet="
uploadTemplate;
context: {
data: detailData?.adminUserInfo,
@ -117,25 +155,44 @@
key2: 'certificatePhotoBack',
hover: 'certificateBack'
}
">
"
>
</ng-container>
</div>
</sv>
<sv label="身份证有效期" col="1">
<nz-date-picker [(ngModel)]="detailData.adminUserInfo.validStartTime" [nzDisabled]="!isEdit" nzPlaceHolder=" "
[nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit ? 'calendar' : ''" style="width: 140px" class="calendar">
<nz-date-picker
[(ngModel)]="detailData.adminUserInfo.validStartTime"
[nzDisabled]="!isEdit"
nzPlaceHolder=" "
[nzBorderless]="!isEdit"
[nzSuffixIcon]="isEdit ? 'calendar' : ''"
style="width: 140px"
class="calendar"
>
</nz-date-picker>
-
<ng-container
*ngIf="!isEdit && !detailData?.adminUserInfo.validEndTime && detailData?.adminUserInfo.validStartTime">
<ng-container *ngIf="!isEdit && !detailData?.adminUserInfo.validEndTime && detailData?.adminUserInfo.validStartTime">
<label style="padding-left: 11px">长期</label>
</ng-container>
<nz-date-picker [(ngModel)]="detailData.adminUserInfo.validEndTime" [nzDisabled]="!isEdit" nzPlaceHolder=" "
[nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit ? 'calendar' : ''" style="width: 140px" class="calendar">
<nz-date-picker
[(ngModel)]="detailData.adminUserInfo.validEndTime"
[nzDisabled]="!isEdit"
nzPlaceHolder=" "
[nzBorderless]="!isEdit"
[nzSuffixIcon]="isEdit ? 'calendar' : ''"
style="width: 140px"
class="calendar"
>
</nz-date-picker>
<ng-container *ngIf="isEdit">
<label nz-checkbox [ngModel]="!!!detailData.adminUserInfo.validEndTime"
(ngModelChange)="$event ? (detailData.adminUserInfo.validEndTime = '') : ''" class="ml-sm">长期</label>
<label
nz-checkbox
[ngModel]="!!!detailData.adminUserInfo.validEndTime"
(ngModelChange)="$event ? (detailData.adminUserInfo.validEndTime = '') : ''"
class="ml-sm"
>长期</label
>
</ng-container>
</sv>
</sv-container>
@ -144,60 +201,81 @@
<sv-container col="3" class="mt16">
<sv-title>
<label class="mr-md">企业基本信息</label>
<label *ngIf="detailData?.approvalStatus === 10" style="color: #1890ff"><i nz-icon nzType="info-circle"
nzTheme="fill" class="mr-xs"></i>待审核
<label *ngIf="detailData?.approvalStatus === 10" style="color: #1890ff"
><i nz-icon nzType="info-circle" nzTheme="fill" class="mr-xs"></i>待审核
</label>
<label *ngIf="detailData?.approvalStatus === 20" style="color: #52c41a"><i nz-icon nzType="check-circle"
nzTheme="fill" class="mr-xs"></i>审核通过
<label *ngIf="detailData?.approvalStatus === 20" style="color: #52c41a"
><i nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label>
<label *ngIf="detailData?.approvalStatus === 30" style="color: #ff4d4f"><i nz-icon nzType="close-circle"
nzTheme="fill" class="mr-xs"></i>驳回&nbsp;驳回原因:{{ detailData?.approvalOpinion }}
<label *ngIf="detailData?.approvalStatus === 30" style="color: #ff4d4f"
><i nz-icon nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回&nbsp;驳回原因:{{ detailData?.approvalOpinion }}
</label>
<p style="margin-bottom: 0">
四要素验证:
<label *ngIf="detailData?.esignCheckStatus === 0" style="color: #ff4d4f"><i nz-icon nzType="info-circle"
nzTheme="fill" class="mr-xs"></i>不通过&nbsp;&nbsp;驳回原因:{{ detailData?.esignCheckMsg }}
<label *ngIf="detailData?.esignCheckStatus === 0" style="color: #ff4d4f"
><i nz-icon nzType="info-circle" nzTheme="fill" class="mr-xs"></i>不通过&nbsp;&nbsp;驳回原因:{{ detailData?.esignCheckMsg }}
</label>
<label *ngIf="detailData?.esignCheckStatus === 1" style="color: #52c41a"><i nz-icon nzType="check-circle"
nzTheme="fill" class="mr-xs"></i>通过
<label *ngIf="detailData?.esignCheckStatus === 1" style="color: #52c41a"
><i nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs"></i>通过
</label>
<label *ngIf="detailData?.esignCheckStatus === 2" style="color: #1890ff"><i nz-icon nzType="close-circle"
nzTheme="fill" class="mr-xs"></i>未认证:&nbsp;&nbsp;{{detailData?.esignCheckMsg}}
<label *ngIf="detailData?.esignCheckStatus === 2" style="color: #1890ff"
><i nz-icon nzType="close-circle" nzTheme="fill" class="mr-xs"></i>未认证:&nbsp;&nbsp;{{ detailData?.esignCheckMsg }}
</label>
</p>
</sv-title>
<sv label="公司名称">
<!-- <input nz-input type="text" [(ngModel)]="" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit ? '' : '-'" /> -->
{{detailData.enterpriseName}}
{{ detailData.enterpriseName }}
</sv>
<sv label="统一社会信用代码">
<!-- <input nz-input type="text" [(ngModel)]="detailData.unifiedSocialCreditCode" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit ? '' : '-'" /> -->
{{detailData.unifiedSocialCreditCode}}
{{ detailData.unifiedSocialCreditCode }}
</sv>
<sv label="营业执照" col="2">
<ng-container *ngTemplateOutlet="
<ng-container
*ngTemplateOutlet="
uploadTemplate;
context: { data: detailData, status: isEdit, key: 'licensePhotoWatermark', key2: 'licensePhoto', hover: 'detailPhoto' }
">
"
>
</ng-container>
</sv>
<sv label="营业期限" col="1">
<nz-date-picker [(ngModel)]="detailData.operatingStartTime" [nzDisabled]="!isEdit" nzPlaceHolder=" "
[nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit ? 'calendar' : ''" style="width: 100px" class="calendar">
<nz-date-picker
[(ngModel)]="detailData.operatingStartTime"
[nzDisabled]="!isEdit"
nzPlaceHolder=" "
[nzBorderless]="!isEdit"
[nzSuffixIcon]="isEdit ? 'calendar' : ''"
style="width: 100px"
class="calendar"
>
</nz-date-picker>
-
<ng-container *ngIf="!isEdit && !detailData?.operatingEndTime && detailData?.operatingStartTime">
<label style="padding-left: 11px">长期</label>
</ng-container>
<nz-date-picker [(ngModel)]="detailData.operatingEndTime" [nzDisabled]="!isEdit" nzPlaceHolder=" "
[nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit ? 'calendar' : ''" style="width: 100px" class="calendar">
<nz-date-picker
[(ngModel)]="detailData.operatingEndTime"
[nzDisabled]="!isEdit"
nzPlaceHolder=" "
[nzBorderless]="!isEdit"
[nzSuffixIcon]="isEdit ? 'calendar' : ''"
style="width: 100px"
class="calendar"
>
</nz-date-picker>
<ng-container *ngIf="isEdit">
<label nz-checkbox [ngModel]="!!!detailData.operatingEndTime"
(ngModelChange)="$event ? (detailData.operatingEndTime = '') : ''" class="ml-sm">长期</label>
<label
nz-checkbox
[ngModel]="!!!detailData.operatingEndTime"
(ngModelChange)="$event ? (detailData.operatingEndTime = '') : ''"
class="ml-sm"
>长期</label
>
</ng-container>
</sv>
</sv-container>
@ -205,33 +283,63 @@
<sv-container col="3" class="mt16">
<sv-title>企业法人信息</sv-title>
<sv label="法定代表人">
<input nz-input type="text" [(ngModel)]="detailData.legalPersonIdentity.name" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit ? '' : '-'" />
<input
nz-input
type="text"
[(ngModel)]="detailData.legalPersonIdentity.name"
[readonly]="!isEdit"
[nzBorderless]="!isEdit"
[placeholder]="isEdit ? '' : '-'"
/>
</sv>
<sv label="身份证号码">
<input nz-input type="text" [(ngModel)]="detailData.legalPersonIdentity.certificateNumber" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit ? '' : '-'" />
<input
nz-input
type="text"
[(ngModel)]="detailData.legalPersonIdentity.certificateNumber"
[readonly]="!isEdit"
[nzBorderless]="!isEdit"
[placeholder]="isEdit ? '' : '-'"
/>
</sv>
<sv label="身份证有效期" col="1">
<nz-date-picker [(ngModel)]="detailData.legalPersonIdentity.validStartTime" [nzDisabled]="!isEdit"
nzPlaceHolder=" " [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit ? 'calendar' : ''" style="width: 140px"
class="calendar"></nz-date-picker>
<nz-date-picker
[(ngModel)]="detailData.legalPersonIdentity.validStartTime"
[nzDisabled]="!isEdit"
nzPlaceHolder=" "
[nzBorderless]="!isEdit"
[nzSuffixIcon]="isEdit ? 'calendar' : ''"
style="width: 140px"
class="calendar"
></nz-date-picker>
-
<ng-container
*ngIf="!isEdit && !detailData?.legalPersonIdentity?.validEndTime && detailData.legalPersonIdentity.validStartTime">
<ng-container *ngIf="!isEdit && !detailData?.legalPersonIdentity?.validEndTime && detailData.legalPersonIdentity.validStartTime">
<label style="padding-left: 11px">长期</label>
</ng-container>
<nz-date-picker [(ngModel)]="detailData.legalPersonIdentity.validEndTime" [nzDisabled]="!isEdit" nzPlaceHolder=" "
[nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit ? 'calendar' : ''" style="width: 140px" class="calendar">
<nz-date-picker
[(ngModel)]="detailData.legalPersonIdentity.validEndTime"
[nzDisabled]="!isEdit"
nzPlaceHolder=" "
[nzBorderless]="!isEdit"
[nzSuffixIcon]="isEdit ? 'calendar' : ''"
style="width: 140px"
class="calendar"
>
</nz-date-picker>
<ng-container *ngIf="isEdit">
<label nz-checkbox [ngModel]="!!!detailData.legalPersonIdentity.validEndTime"
(ngModelChange)="$event ? (detailData.legalPersonIdentity.validEndTime = '') : ''" class="ml-sm">长期</label>
<label
nz-checkbox
[ngModel]="!!!detailData.legalPersonIdentity.validEndTime"
(ngModelChange)="$event ? (detailData.legalPersonIdentity.validEndTime = '') : ''"
class="ml-sm"
>长期</label
>
</ng-container>
</sv>
<sv label="身份证照" col="1">
<div class="d-flex">
<ng-container *ngTemplateOutlet="
<ng-container
*ngTemplateOutlet="
uploadTemplate;
context: {
data: detailData?.legalPersonIdentity,
@ -240,9 +348,11 @@
key2: 'certificatePhotoFront',
hover: 'legalFront'
}
">
"
>
</ng-container>
<ng-container *ngTemplateOutlet="
<ng-container
*ngTemplateOutlet="
uploadTemplate;
context: {
data: detailData?.legalPersonIdentity,
@ -251,16 +361,26 @@
key2: 'certificatePhotoBack',
hover: 'legalBack'
}
">
"
>
</ng-container>
</div>
</sv>
<sv label="所属城市">
<ng-container *ngIf="isEdit; else cascaderelseTemplate">
<nz-tree-select #areaTreeSelect style="width: 350px" [(ngModel)]="enterpriseAddressCode"
[nzDropdownStyle]="{ 'max-height': '300px' }" [nzExpandedKeys]="enterpriseDefaultAddressCode"
[nzNodes]="areaList" [nzAsyncData]="true" [nzCheckStrictly]="true" nzCheckable
(nzExpandChange)="onExpandChange($event.node)" nzDropdownClassName="area-tree-select">
<nz-tree-select
#areaTreeSelect
style="width: 350px"
[(ngModel)]="enterpriseAddressCode"
[nzDropdownStyle]="{ 'max-height': '300px' }"
[nzExpandedKeys]="enterpriseDefaultAddressCode"
[nzNodes]="areaList"
[nzAsyncData]="true"
[nzCheckStrictly]="true"
nzCheckable
(nzExpandChange)="onExpandChange($event.node)"
nzDropdownClassName="area-tree-select"
>
</nz-tree-select>
</ng-container>
<ng-template #cascaderelseTemplate>
@ -280,20 +400,25 @@
<nz-card>
<sv-container col="3" class="mt16">
<sv-title>修改渠道销售记录</sv-title>
<sv label="">
<st #st [data]="service.$api_get_personal_channel_list" [columns]="columns"
[req]="{params:{partnerId:route.snapshot.params.id}}" [loading]="service.http.loading" bordered size="small"
[page]="{ show: false }" [scroll]="{ x: '1200px' }">
</st>
</sv>
</sv-container>
<st
#st
[data]="service.$api_get_personal_channel_list"
[columns]="columns"
[req]="{ params: { partnerId: route.snapshot.params.id } }"
[loading]="service.http.loading"
bordered
size="small"
[page]="{ show: false }"
[scroll]="{ x: '1200px' }"
>
</st>
</nz-card>
<ng-template #PopconfirmTempalte let-title="title" let-content="content">
<div class="ant-popover-message">
<i nz-icon nzType="info-circle" nzTheme="fill"></i>
<div class="ant-popover-message-title ng-star-inserted self-ant-popover-title" style="font-size: 16px">{{ title }}
</div>
<div class="ant-popover-message-title ng-star-inserted self-ant-popover-title" style="font-size: 16px">{{ title }} </div>
<div class="ant-popover-message-title ng-star-inserted">
{{ content }}
</div>
@ -301,18 +426,36 @@
</ng-template>
<ng-template #uploadTemplate let-data="data" let-status="status" let-key="key" let-key2="key2" let-hover="hover">
<nz-upload class="avatar-uploader" [nzAction]="uploadURl" nzName="multipartFile" nzListType="picture-card"
[nzShowUploadList]="false" nzFileType="image/png,image/jpeg,image/jpg,image/gif"
[nzDisabled]="!isEdit || disabledUpload" (nzChange)="changeUpload($event, data, key, key2, hover)">
<nz-upload
class="avatar-uploader"
[nzAction]="uploadURl"
nzName="multipartFile"
nzListType="picture-card"
[nzShowUploadList]="false"
nzFileType="image/png,image/jpeg,image/jpg,image/gif"
[nzDisabled]="!isEdit || disabledUpload"
(nzChange)="changeUpload($event, data, key, key2, hover)"
>
<ng-container *ngIf="!data[key] && isEdit">
<i class="upload-icon" nz-icon [nzType]="service.http.loading ? 'loading' : 'plus'"></i>
<div class="ant-upload-text">上传</div>
</ng-container>
<div *ngIf="data[key]" (mouseover)="detailData[hover] = true" (mouseleave)="detailData[hover] = false"
(click)="$event.cancelBubble = true" class="image-hover">
<div
*ngIf="data[key]"
(mouseover)="detailData[hover] = true"
(mouseleave)="detailData[hover] = false"
(click)="$event.cancelBubble = true"
class="image-hover"
>
<img nz-image [nzSrc]="data[key]" style="width: 200px; height: 160px" />
<i nz-icon *ngIf="detailData[hover] && isEdit" nzType="close-circle" nzTheme="fill" class="delete-icon"
(click)="deleteImg(data, key, key2)"></i>
<i
nz-icon
*ngIf="detailData[hover] && isEdit"
nzType="close-circle"
nzTheme="fill"
class="delete-icon"
(click)="deleteImg(data, key, key2)"
></i>
</div>
</nz-upload>
</ng-template>

View File

@ -244,23 +244,21 @@
</nz-card>
<nz-card>
<sv-container col="3" class="mt16">
<sv-container >
<sv-title>修改渠道销售记录</sv-title>
<sv label="">
<st
#st
[data]="service.$api_get_personal_channel_list"
[columns]="columns"
[req]="{ params: { partnerId: route.snapshot.params.id } }"
[loading]="service.http.loading"
bordered
size="small"
[page]="{ show: false }"
[scroll]="{ x: '1200px' }"
>
</st>
</sv>
</sv-container>
<st
#st
[scroll]="{x: '1200px'}"
[data]="service.$api_get_personal_channel_list"
[columns]="columns"
[req]="{ params: { partnerId: route.snapshot.params.id } }"
[loading]="service.http.loading"
bordered
size="small"
[page]="{ show: false }"
>
</st>
</nz-card>
<ng-template #PopconfirmTempalte let-title="title" let-content="content">

View File

@ -94,7 +94,7 @@ export class ParterRebateManageMentSettingComponent implements OnInit {
},
{
title: '创建时间',
index: 'enableTime',
index: 'createTime',
width: '200px'
},
{

View File

@ -4,8 +4,8 @@
* @Author : Shiming
* @Date : 2022-01-05 20:15:41
* @LastEditors : Shiming
* @LastEditTime : 2022-01-18 17:17:19
* @FilePath : \\tms-obc-web\\src\\app\\routes\\financial-management\\components\\withdrawals-record\\withdrawals-detail\\withdrawals-detail.component.html
* @LastEditTime : 2022-05-11 15:06:17
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\recorded\\components\\detail\\detail.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="'入账详情'" [logo]="logo" [action]="action">
@ -40,7 +40,7 @@
{{formData?.entryNumber}}
</se>
<se label="银行类型">
{{formData?.bankName}}
{{formData?.bankType}}
</se>
<se label="虚拟账户">
{{formData?.fictitiousAccount}}
@ -58,7 +58,10 @@
{{formData?.recordedAmount | currency}}
</se>
<se label="入账状态">
{{formData?.stsLabel}}
<span *ngIf="formData?.sts == '1'">待审核</span>
<span *ngIf="formData?.sts == '2'">待复核</span>
<span *ngIf="formData?.sts == '3'">已入账</span>
<span *ngIf="formData?.sts == '4'">已驳回</span>
</se>
<se label="发票图片">
<img *ngIf="formData?.invoiceUrl" nz-image width="100px" height="100px" [nzSrc]="formData?.invoiceUrl" alt="" />

View File

@ -29,44 +29,44 @@ export class PartnerRecordedDetailComponent implements OnInit {
this.formData = res;
// 处理流程节点数据
// 流程是否结束
// let isEnd = false;
// if (res.successTime) {
// isEnd = true;
// if (res.refundStatus === '3') {
// this.timeLineData.push({ time: res.successTime, value: `到账成功`, color: 'green' });
// } else {
// this.timeLineData.push({ time: res.successTime, value: `提现失败`, color: 'red' });
// }
// }
// if (res.agreeTime && res.refundStatus !== '4') {
// this.timeLineData.push({ time: res.agreeTime, value: `银行处理中`, color: 'gray' });
// }
// if (res.agreeTime) {
// if (res.refundStatus === '4') {
// isEnd = true;
// this.timeLineData.push({
// time: res.agreeTime,
// value: `拒绝提现<br/>操作人员:${res.handlerUserIdLabel}`,
// color: 'red'
// });
// } else {
// this.timeLineData.push({
// time: res.agreeTime,
// value: `审核通过<br/>操作人员:${res.handlerUserIdLabel}`,
// color: 'gray'
// });
// }
// }
// if (res.createTime) {
// this.timeLineData.push({
// time: res.createTime,
// value: `提交提现申请<br/>提现${res.amount}元至${res.bankName}(${res.bankCardNumber})<br/>操作人员:${res.userIdLabel}`,
// color: 'gray'
// });
// }
// if (this.timeLineData?.length > 0 && !isEnd) {
// this.timeLineData[0].color = 'green';
// }
let isEnd = false;
if (res.successTime) {
isEnd = true;
if (res.refundStatus === '3') {
this.timeLineData.push({ time: res.successTime, value: `到账成功`, color: 'green' });
} else {
this.timeLineData.push({ time: res.successTime, value: `提现失败`, color: 'red' });
}
}
if (res.agreeTime && res.refundStatus !== '4') {
this.timeLineData.push({ time: res.agreeTime, value: `银行处理中`, color: 'gray' });
}
if (res.agreeTime) {
if (res.refundStatus === '4') {
isEnd = true;
this.timeLineData.push({
time: res.agreeTime,
value: `拒绝提现<br/>操作人员:${res.handlerUserIdLabel}`,
color: 'red'
});
} else {
this.timeLineData.push({
time: res.agreeTime,
value: `审核通过<br/>操作人员:${res.handlerUserIdLabel}`,
color: 'gray'
});
}
}
if (res.createTime) {
this.timeLineData.push({
time: res.createTime,
value: `提交提现申请<br/>提现${res.amount}元至${res.bankName}(${res.bankCardNumber})<br/>操作人员:${res.userIdLabel}`,
color: 'gray'
});
}
if (this.timeLineData?.length > 0 && !isEnd) {
this.timeLineData[0].color = 'green';
}
}
});
}

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-04-29 17:28:23
* @LastEditors : Shiming
* @LastEditTime : 2022-05-11 10:11:53
* @LastEditTime : 2022-05-11 14:25:14
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\recorded\\components\\record\\record.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -34,7 +34,7 @@
<nz-card class="content-box" nzBordered>
<nz-tabset [nzTabBarExtraContent]="extraTemplate">
<nz-tab nzTitle="全部" (nzClick)="changeRefundStatus()"></nz-tab>
<nz-tab nzTitle="全部" (nzClick)="changeRefundStatus('0')"></nz-tab>
<nz-tab nzTitle="待初审" (nzClick)="changeRefundStatus('1')"></nz-tab>
<nz-tab nzTitle="待复核" (nzClick)="changeRefundStatus('2')"></nz-tab>
<nz-tab nzTitle="已入账" (nzClick)="changeRefundStatus('3')"></nz-tab>
@ -68,16 +68,22 @@
{{ item.bankName }} <br />
{{ item.bankCardNumber }}
</ng-template>
<ng-template st-row="sts" let-item let-index="index" let-column="column">
<div *ngIf="item.sts == '0'">待初审</div>
<div *ngIf="item.sts == '1'">待复核</div>
<div *ngIf="item.sts == '2'">已入账</div>
<div *ngIf="item.sts == '3'">已拒绝</div>
</ng-template>
</st>
<div class="text-md" *ngIf="st?.list?.length !== 0">
<span class="mr-md"
>合伙人数:<label class="text-red-dark font-weight-bold">{{ totalInfo?.invoiceAmountSum }}</label></span
>合伙人数:<label class="text-red-dark font-weight-bold">{{ totalInfo?.partnerNum }}</label></span
>
<span class="mr-md"
>入账笔数:<label class="text-red-dark font-weight-bold">{{ totalInfo?.count }}</label></span
>入账笔数:<label class="text-red-dark font-weight-bold">{{ totalInfo?.invoiceEntryNum }}</label></span
>
<span class="mr-md"
>开票金额:<label class="text-red-dark font-weight-bold">{{ totalInfo?.invoiceEntryNum }}</label></span
>开票金额:<label class="text-red-dark font-weight-bold">{{ totalInfo?.invoiceAmountSum }}</label></span
>
<span class="mr-md"
>代缴个税:<label class="text-red-dark font-weight-bold">{{ totalInfo?.taxPersonalSum }}</label></span

View File

@ -8,7 +8,6 @@ import { FreightAccountService } from 'src/app/routes/financial-management/servi
import Big from 'src/app/shared/utils/deal-precision';
import { RecordedService } from '../../services/recorded.service';
@Component({
selector: 'app-partner-recorded-record',
templateUrl: './record.component.html',
@ -22,12 +21,12 @@ export class PartnerRecordedRecordComponent implements OnInit {
columns!: STColumn[];
searchSchema!: SFSchema;
totalInfo: any = {
invoiceAmountSum: 0,
invoiceEntryNum: 0,
partnerNum: 0,
recordedAmountSum: 0,
taxPersonalSum: 0
}
invoiceEntryNum: 0,
invoiceAmountSum: 0,
taxPersonalSum: 0,
recordedAmountSum: 0
};
_$expand = false;
@ -40,16 +39,20 @@ export class PartnerRecordedRecordComponent implements OnInit {
ltdId = ''; // 网络货运人
accountName = ''; // 账户名称
constructor(public service: RecordedService, private nzModalService: NzModalService,
private router: Router, public ar: ActivatedRoute, public shipperSrv: ShipperBaseService) {
constructor(
public service: RecordedService,
private nzModalService: NzModalService,
private router: Router,
public ar: ActivatedRoute,
public shipperSrv: ShipperBaseService
) {
this.ltdId = this.ar.snapshot.queryParams?.ltdId || '';
}
ngOnInit(): void {
this.searchSchema = this.initSF();
this.columns = this.initST();
this.getSummary()
}
beforeReq = (requestOptions: STRequestOptions) => {
@ -60,7 +63,7 @@ export class PartnerRecordedRecordComponent implements OnInit {
start: this.sf?.value.createTime?.[0] || '',
end: this.sf?.value.createTime?.[1] || ''
},
refundStatus: this.refundStatus || null
sts: this.refundStatus || ''
});
}
delete requestOptions?.body?.expand;
@ -68,7 +71,7 @@ export class PartnerRecordedRecordComponent implements OnInit {
};
afterRes = (data: any[], rawData?: any) => {
// data = data.map(node => ({ ...node, disabled: node.sts !== '0' }));
data = data.map(node => ({ ...node, disabled: node.sts !== '0' }));
return data;
};
@ -81,16 +84,15 @@ export class PartnerRecordedRecordComponent implements OnInit {
const stList = this.st.list;
stList.forEach(item => {
this.selectedRows = this.selectedRows.filter((e: any) => e.id !== item.id);
})
});
} else {
//添加新增的行
checkRows.forEach((item: any) => {
const newSelectedList = this.selectedRows.filter((r: any) => r.id === item.id);
if (newSelectedList.length === 0) {
this.selectedRows.push(item);
}
})
});
// 移除取消选中的行
const stList = this.st.list;
stList.forEach(item => {
@ -98,17 +100,17 @@ export class PartnerRecordedRecordComponent implements OnInit {
const index = this.selectedRows.findIndex(_item => item.id === _item.id);
if (index !== -1) this.selectedRows.splice(index, 1);
}
})
});
}
let totalCallNo = 0;
this.selectedRows.forEach((item => {
this.selectedRows.forEach(item => {
totalCallNo = new Big(this.totalCallNo).plus(item?.entryAmount).parse();
}));
});
this.totalCallNo = totalCallNo;
} else if (e.type === 'loaded') {
// 页面加载时勾选
(e?.loaded || []).forEach((r) => {
this.selectedRows.forEach((x) => {
(e?.loaded || []).forEach(r => {
this.selectedRows.forEach(x => {
if (x.id === r.id) {
r.checked = true;
}
@ -117,8 +119,27 @@ export class PartnerRecordedRecordComponent implements OnInit {
}
}
changeRefundStatus(status?: string) {
this.refundStatus = status || null;
changeRefundStatus(status: any) {
let value = '';
switch (status) {
case '0':
value = '';
break;
case '1':
value = '0';
break;
case '2':
value = '1';
break;
case '3':
value = '2';
break;
case '4':
value = '3';
break;
}
this.refundStatus = value || null;
this.st.load(1);
}
@ -146,10 +167,14 @@ export class PartnerRecordedRecordComponent implements OnInit {
this.service.msgSrv.warning('请填写拒绝原因 ');
return;
}
this.audit({ ids: params, rejectReason: this.msg, sts: '3' }, () => {
modal.destroy();
this.st.load(1);
}, '审核拒绝成功');
this.audit(
{ ids: params, rejectReason: this.msg, sts: '3' },
() => {
modal.destroy();
this.st.load(1);
},
'审核拒绝成功'
);
// this.service
// .request(this.service.$api_disagree_recorded, {
// id: params,
@ -168,10 +193,14 @@ export class PartnerRecordedRecordComponent implements OnInit {
label: '通过',
type: 'primary',
onClick: () => {
this.audit({ ids: params, rejectReason: this.msg, sts: '1' }, () => {
modal.destroy();
this.st.load(1);
}, '审核通过成功');
this.audit(
{ ids: params, rejectReason: this.msg, sts: '1' },
() => {
modal.destroy();
this.st.load(1);
},
'审核通过成功'
);
}
}
]
@ -230,22 +259,22 @@ export class PartnerRecordedRecordComponent implements OnInit {
placeholder: '请输入'
}
},
sts: {
type: 'string',
title: '入账状态',
default: '',
enum: [
{ label: '全部', value: '' },
{ label: '待初审', value: '0' },
{ label: '待复核', value: '1' },
{ label: '已入账', value: '2' },
{ label: '已拒绝', value: '3' },
],
ui: {
widget: 'select',
placeholder: '请选择'
}
},
// sts: {
// type: 'string',
// title: '入账状态',
// default: '',
// enum: [
// { label: '全部', value: '' },
// { label: '待初审', value: '0' },
// { label: '待复核', value: '1' },
// { label: '已入账', value: '2' },
// { label: '已拒绝', value: '3' },
// ],
// ui: {
// widget: 'select',
// placeholder: '请选择'
// }
// },
ltdId: {
type: 'string',
title: '网络货运人',
@ -254,7 +283,7 @@ export class PartnerRecordedRecordComponent implements OnInit {
widget: 'select',
placeholder: '请选择',
allowClear: true,
asyncData: () => this.shipperSrv.getNetworkFreightForwarder({}, true),
asyncData: () => this.shipperSrv.getNetworkFreightForwarder({}, true)
}
},
submitTime: {
@ -269,7 +298,7 @@ export class PartnerRecordedRecordComponent implements OnInit {
expand: (value: boolean) => value
}
} as SFDateWidgetSchema
},
}
}
};
}
@ -283,11 +312,11 @@ export class PartnerRecordedRecordComponent implements OnInit {
{ title: '网络货运人', index: 'ltdName', width: 220, className: 'text-center' },
{
title: '开票金额',
index: 'amount',
index: 'invoiceAmount',
width: 150,
type: 'widget',
className: 'text-right',
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.amount }) }
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.invoiceAmount }) }
},
{
title: '代缴个税',
@ -295,7 +324,7 @@ export class PartnerRecordedRecordComponent implements OnInit {
width: 150,
type: 'widget',
className: 'text-right',
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.amount }) }
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.taxPersonal }) }
},
{
title: '入账金额',
@ -303,11 +332,11 @@ export class PartnerRecordedRecordComponent implements OnInit {
width: 150,
type: 'widget',
className: 'text-right',
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.amount }) }
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.entryAmount }) }
},
{ title: '提交时间', index: 'submitTime', width: 180, className: 'text-center' },
{ title: '入账状态', index: 'stsLabel', width: 120, className: 'text-center' },
{ title: '入账状态', render: 'sts', width: 120, className: 'text-center' },
{
title: '操作',
fixed: 'right',
@ -336,17 +365,15 @@ export class PartnerRecordedRecordComponent implements OnInit {
}
/**
* 审核
*/
* 审核
*/
audit(params: any, callback: Function, msg = '成功') {
this.service
.request(this.service.$api_audit_recored, { ...params })
.subscribe(res => {
if (res) {
this.service.msgSrv.success(msg);
callback();
}
});
this.service.request(this.service.$api_audit_recored, { ...params }).subscribe(res => {
if (res) {
this.service.msgSrv.success(msg);
callback();
}
});
}
search() {
@ -361,6 +388,6 @@ export class PartnerRecordedRecordComponent implements OnInit {
if (res) {
this.totalInfo = res;
}
})
});
}
}

View File

@ -39,7 +39,7 @@
</div>
<button nz-button nzDanger [nzLoading]="service.http.loading" acl [acl-ability]="['TAX-COLLECT-search']"
(click)="openDrawer()">筛选</button>
<button nz-button nzDanger acl [acl-ability]="['TAX-COLLECT-export']"> 导出</button>
<button nz-button nzDanger (click)="exprot()" acl [acl-ability]="['TAX-COLLECT-export']"> 导出</button>
<button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
<nz-dropdown-menu #menu="nzDropdownMenu">

View File

@ -257,10 +257,8 @@ export class TaxManagementIndividualCollectComponent extends BasicTableComponent
this.st.load(1);
}
/**
* 异步导出
*/
export() {
this.service.exportStart(this.sf?.value, this.service.$api_async_export_order_reporting_list);
}
// 导出
exprot() {
this.service.exportStart({ ...this.sfValue, pageSize: -1 }, this.service.$api_taxSummary_export);
}
}

View File

@ -26,8 +26,15 @@
</div>
<!-- 数据列表 -->
<st #st [scroll]="{ x: '1200px',y:scrollY }" [data]="service.$api_get_taxDeclaration" [columns]="columns"
[req]="{ params: reqParams }" [page]="{ }" [loading]="false">
<st
#st
[scroll]="{ x: '1200px', y: scrollY }"
[data]="service.$api_get_taxDeclaration"
[columns]="columns"
[req]="{ params: reqParams }"
[page]="{}"
[loading]="false"
>
<ng-template st-row="orderStatus" let-item let-index="index">
<a (click)="viewAuditResult(item)" *ngIf="item?.billStatus === '2'">{{ item?.billStatusLabel }}</a>
<span *ngIf="item?.billStatus !== '2'">{{ item?.billStatusLabel }}</span>
@ -49,33 +56,25 @@
已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据
</div>
<button nz-button nzDanger [nzLoading]="service.http.loading" acl [acl-ability]="['TAX-DECLARE-search']"
(click)="openDrawer()">筛选</button>
<button nz-button nzDanger acl [acl-ability]="['TAX-DECLARE-export']"> 导出</button>
<button nz-button nzDanger [nzLoading]="service.http.loading" acl [acl-ability]="['TAX-DECLARE-search']" (click)="openDrawer()"
>筛选</button
>
<button nz-button nzDanger (click)="exprot()" acl [acl-ability]="['TAX-DECLARE-export']"> 导出</button>
<button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
更多<i nz-icon nzType="down" nzTheme="outline"></i
></button>
<nz-dropdown-menu #menu="nzDropdownMenu">
<ul nz-menu>
<li nz-menu-item (click)="upload()" acl [acl-ability]="['TAX-DECLARE-declare']">
申报
</li>
<li nz-menu-item (click)="recall()" acl [acl-ability]="['TAX-DECLARE-change']">
更正
</li>
<li nz-menu-item (click)="uploadSetting()" acl [acl-ability]="['TAX-DECLARE-threshold']">
修改起征点
</li>
<li nz-menu-item (click)="resetData()" acl [acl-ability]="['TAX-DECLARE-resetData']">
更新数据
</li>
<li nz-menu-item (click)="upload()" acl [acl-ability]="['TAX-DECLARE-declare']"> 申报 </li>
<li nz-menu-item (click)="recall()" acl [acl-ability]="['TAX-DECLARE-change']"> 更正 </li>
<li nz-menu-item (click)="uploadSetting()" acl [acl-ability]="['TAX-DECLARE-threshold']"> 修改起征点 </li>
<li nz-menu-item (click)="resetData()" acl [acl-ability]="['TAX-DECLARE-resetData']"> 更新数据 </li>
</ul>
</nz-dropdown-menu>
</div>
</ng-template>
<nz-modal [(nzVisible)]="isVisible" [nzWidth]="600" [nzFooter]="nzModalFooterEvaluate" (nzOnOk)="handleOK()"
(nzOnCancel)="handleCancel()">
<nz-modal [(nzVisible)]="isVisible" [nzWidth]="600" [nzFooter]="nzModalFooterEvaluate" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">
<ng-container *nzModalContent>
<div> 司机姓名:张三/13812345678 </div>
<div> 是否确认要将该司机的起征点同步调整为超过15万 </div>

View File

@ -428,11 +428,9 @@ export class TaxManagementIndividualDeclareComponent extends BasicTableComponent
this.st.load(1);
}
/**
* 异步导出
*/
export() {
this.service.exportStart(this.sf?.value, this.service.$api_async_export_order_reporting_list);
// 导出
exprot() {
this.service.exportStart({ ...this.sfValue, pageSize: -1 }, this.service.$api_taxDeclaration_export);
}
openWainingModal(content: string, title = '提示') {

View File

@ -1,3 +1,13 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-05-06 15:31:19
* @LastEditors : Shiming
* @LastEditTime : 2022-05-11 14:54:00
* @FilePath : \\tms-obc-web\\src\\app\\routes\\tax-management\\components\\individual-income\\individual-income.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<!-- <page-header-wrapper [title]="''"></page-header-wrapper>
<nz-card class="search-box">
<div nz-row nzGutter="8">
@ -39,7 +49,7 @@
</div>
<button nz-button nzDanger [nzLoading]="isLoading && st.loading" acl [acl-ability]="['TAX-INCOME-search']"
(click)="openDrawer()">筛选</button>
<button nz-button nzDanger acl [acl-ability]="['TAX-INCOME-export']"> 导出</button>
<button nz-button nzDanger (click)="exprot()" acl [acl-ability]="['TAX-INCOME-export']"> 导出</button>
<button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
<nz-dropdown-menu #menu="nzDropdownMenu">

View File

@ -338,12 +338,10 @@ export class TaxManagementIndividualIncomeComponent extends BasicTableComponent
this.st.load(1);
}
/**
* 异步导出
*/
export() {
this.service.exportStart(this.sf?.value, this.service.$api_async_export_order_reporting_list);
}
// 导出
exprot() {
this.service.exportStart({ ...this.sfValue, pageSize: -1 }, this.service.$api_taxIncome_export);
}
handleOK() {}
handleCancel() {

View File

@ -226,7 +226,7 @@ export class TaxManagementOrderReportingComponent extends BasicTableComponent im
{ title: '卸货地详细地址', index: 'unloadDetailedAddress', className: 'text-center', width: '180px' },
{ title: '货主名称', index: 'shipperName', className: 'text-center', width: '180px' },
{ title: '货主纳税人识别号', index: 'shipperProvinceCode', className: 'text-center', width: '180px' },
{ title: '录单时间', index: 'recordTime', className: 'text-center', width: '250px' },
{ title: '录单时间', index: 'billCreateTime', className: 'text-center', width: '250px' },
{ title: '接单时间', index: 'wayBillCreateTime', className: 'text-center', width: '200px' },
{ title: '发车时间', index: 'loadTime', className: 'text-center', width: '200px' },
{ title: '到车时间', index: 'unloadTime', className: 'text-center', width: '150px' },

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2021-12-27 10:30:56
* @LastEditors : Shiming
* @LastEditTime : 2022-04-19 14:19:44
* @LastEditTime : 2022-05-11 14:53:31
* @FilePath : \\tms-obc-web\\src\\app\\routes\\tax-management\\services\\tax-management.service.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
@ -60,6 +60,12 @@ export class TaxManagementService extends ShipperBaseService {
$api_getInvoiceReport_page = '/api/sdc/invoiceUploadInfo/list/page';
// 发票上传列表导出
$api_invoiceUpload_export = '/api/sdc/invoiceUploadInfo/reportList';
// 个税明细导出接口
$api_taxIncome_export = '/api/sdc/taxIncome/asyncExport';
// 个税汇总导出接口
$api_taxSummary_export = '/api/sdc/taxSummary/asyncExport';
// 税务申报导出接口
$api_taxDeclaration_export = '/api/sdc/taxDeclaration/asyncExport';
// 发票上传撤回
$api_invoiceUpload_withdraw = '/api/sdc/invoiceUploadInfo/withdraw';
constructor(public injector: Injector) {

View File

@ -105,7 +105,7 @@ export class InputInvoiceDetailComponent implements OnInit {
widget: 'select',
placeholder: '请选择',
allowClear: true,
asyncData: () => this.service.getCloseAccount(),
asyncData: () => this.service.getCloseAccount()
},
default: ''
},
@ -137,15 +137,15 @@ export class InputInvoiceDetailComponent implements OnInit {
private initST(): STColumn[] {
return [
{ title: '序号', render: 'billHCode', width: 80 },
{ title: '费用号', index: 'feecode', width: 100 },
{ title: '费用日期', index: 'feedate', type: 'date', width: 150 },
{ title: '序号', render: 'billHCode', width: 40, className: 'text-center' },
{ title: '费用号', index: 'feecode', width: 140 },
{ title: '费用日期', index: 'feedate', width: 150, className: 'text-center' },
{ title: '订单号', index: 'billHCode', width: 100 },
{ title: '订单日期', index: 'billTime', width: 150 },
{ title: '订单日期', index: 'billTime', width: 150, className: 'text-center' },
{ title: '结算客户', index: 'cnoName', width: 90 },
{ title: '费用科目', index: 'feesubname', width: 100 },
{ title: '收票金额', render: 'invmoney', width: 140 },
{ title: '收票税额', render: 'invtax', width: 100 }
{ title: '收票金额', render: 'invmoney', width: 120, className: 'text-right' },
{ title: '收票税额', render: 'invtax', width: 100, className: 'text-right' }
];
}
}

View File

@ -90,10 +90,10 @@ export class EditPartnerComponentsAddComponent implements OnInit {
remark: {
type: 'string',
title: '备注',
maxLength: 50,
ui: {
widget: 'textarea',
placeholder: '请不要超过50个字',
maxLength: 50,
autosize: { minRows: 2, maxRows: 6 }
}
},
@ -110,7 +110,7 @@ export class EditPartnerComponentsAddComponent implements OnInit {
],
},
},
required: ['channelId', 'remark', 'effectiveNode']
required: ['partnerId','settStartTime', 'remark', 'effectiveNode']
};
this.ui = {
'*': {