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

This commit is contained in:
潘晓云
2022-04-19 14:32:59 +08:00
22 changed files with 350 additions and 284 deletions

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-01-18 09:51:21
* @LastEditors : Shiming
* @LastEditTime : 2022-04-18 16:40:52
* @LastEditTime : 2022-04-19 14:20:28
* @FilePath : \\tms-obc-web\\proxy.conf.js
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
@ -30,7 +30,7 @@ module.exports = {
// },
'//api': {
target: {
host: 'tms-api-dev.eascs.com',
host: 'tms-api-test.eascs.com',
protocol: 'https:',
port: 443
},

View File

@ -88,8 +88,8 @@ export class DatatableBusiindexComponent implements OnInit {
if (res) {
this.chartData = res
if(flag) {
// this.pillar.reRender()
// this.curve.reRender()
this.pillar.reRender()
this.curve.reRender()
}
}
})

View File

@ -12,7 +12,6 @@ import { DataService } from '../../../services/data.service';
providers: [DatePipe]
})
export class DatatableMancustomtableComponent implements OnInit {
url = `/user`;
@ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
_$expand = false;
@ -20,6 +19,8 @@ export class DatatableMancustomtableComponent implements OnInit {
mode = 'year';
date: any = null;
defineDate = [];
columns: STColumn[] =[];
resourceStatus: number = 1;
time: any = ['2022-01-01 00:00:00'];
dateFormat = 'yyyy';
today = new Date();
@ -60,33 +61,41 @@ export class DatatableMancustomtableComponent implements OnInit {
}
}
};
columns: STColumn[] = [
{ title: '部门', index: 'enterpriseName', className: 'text-center', width: '200px' },
{ title: '业务员', index: 'registerTime', className: 'text-center', width: '200px' },
{ title: '已认证货主数', index: 'customerType', className: 'text-center', width: '100px' },
{ title: '新增合伙人', index: 'customerType', className: 'text-center', width: '100px' },
{ title: '合伙人活跃率', index: 'customerType', className: 'text-center', width: '100px' },
{ title: '主动合伙人', index: 'customerType', className: 'text-center', width: '100px' },
{ title: '纪念合伙人', index: 'customerType', className: 'text-center', width: '100px' },
{ title: '流失合伙人', index: 'customerType', className: 'text-center', width: '100px' },
{ title: '未搭档合伙人', index: 'customerType', className: 'text-center', width: '100px' },
{ title: '新增货主数', index: 'salesmanName', className: 'text-center', width: '100px' },
{ title: '货主活跃率', index: 'partnerName', className: 'text-center', width: '100px' },
initST() {
this.columns =[
{ title: '部门', index: 'department', className: 'text-center', width: '200px' },
{ title: '业务员', index: 'salesmen', className: 'text-center', width: '200px' },
{ title: '已认证货主数', index: 'certifiedCount', className: 'text-center', width: '100px', iif: ()=> {
console.log(this.resourceStatus);
return this.resourceStatus !== 1
} },
{ title: '已认证合伙人', index: 'certifiedCount', className: 'text-center', width: '100px' },
{ title: '新增合伙人数', index: 'addCount', className: 'text-center', width: '100px' },
{ title: '合伙人活跃率', index: 'alivePer', className: 'text-center', width: '100px' },
{ title: '活跃合伙人数', index: 'aliveCount', className: 'text-center', width: '100px' },
{ title: '沉默合伙人数', index: 'silentCount', className: 'text-center', width: '100px' },
{ title: '流失合伙人数', index: 'drainCount', className: 'text-center', width: '100px' },
{ title: '未激活合伙人数', index: 'notActiveCount', className: 'text-center', width: '100px' },
{ title: '新增货主数', index: 'addCount', className: 'text-center', width: '100px' },
{ title: '货主活跃率', index: 'alivePer', className: 'text-center', width: '100px' },
{
title: '活跃货主数',
index: 'customerStatus',
index: 'aliveCount',
className: 'text-center',
width: '100px'
},
{ title: '纪念货主数', index: 'zsl', className: 'text-center', width: '100px' },
{ title: '沉默货主数', index: 'silentCount', className: 'text-center', width: '100px' },
{
title: '货主数',
index: 'ddje',
title: '流失货主数',
index: 'drainCount',
className: 'text-right',
width: '100px',
},
{ title: '未激活货主数', index: 'ysdds', className: 'text-center', width: '120px' }
{ title: '未激活货主数', index: 'notActiveCount', className: 'text-center', width: '120px' }
];
}
/**
* 查询参数
*/
@ -103,15 +112,18 @@ export class DatatableMancustomtableComponent implements OnInit {
let params: any = {
time: this.time,
type: this.type,
parType: this.resourceStatus,
...this.sf?.value
};
delete params._$expand;
delete params.sort;
return { ...params };
}
constructor(public service: DataService, private datePipe: DatePipe) {}
ngOnInit(): void {
this.initSF();
this.initST();
}
/**
* 初始化查询表单
@ -225,10 +237,13 @@ export class DatatableMancustomtableComponent implements OnInit {
this.isLoading = true;
}
selectChange(e: number) {
// this.resourceStatus = e;
console.log(e);
this.resourceStatus = e + 1;
// this.initST();
setTimeout(() => {
this.st.load();
this.initST();
// this.st.load(1);
}, 500);
}
}

View File

@ -39,9 +39,9 @@ export class DatatableOwnerComponent implements OnInit {
{ title: '合伙人', index: 'partnerName', className: 'text-center', width: '100px' },
{ title: '客户状态', index: 'customerStatus', className: 'text-center', width: '100px', type: 'enum', enum: {
1: '未激活',
2: '沉默',
3: '流失',
4: '活跃'
2: '流失',
3: '活跃',
4: '沉默'
} },
{ title: '订单数', index: 'zsl', className: 'text-center', width: '100px' },
{ title: '订单金额', index: 'ddje', className: 'text-right', width: '100px', type: 'widget', widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.ddje }) } },
@ -117,9 +117,9 @@ export class DatatableOwnerComponent implements OnInit {
},
enum: [
{label: '未激活', value: 1},
{label: '沉默', value: 2},
{label: '流失', value: 3},
{label: '活跃', value: 4},
{label: '流失', value: 2},
{label: '活跃', value: 3},
{label: '沉默', value: 4},
]
},
registerTime: {

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-04-06 10:57:56
* @LastEditors : Shiming
* @LastEditTime : 2022-04-14 15:48:32
* @LastEditTime : 2022-04-19 14:01:38
* @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\datascreen\\datascreen.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->

View File

@ -59,6 +59,7 @@ export class DatatableFinancetableComponent implements OnInit {
} else {
this.type = 4
}
let params: any = {
time: this.time,
type: this.type
@ -76,10 +77,10 @@ export class DatatableFinancetableComponent implements OnInit {
initPillarData(){
let type = 1
if(this.mode === 'year') {
type = 1
} else if(this.mode === 'month') {
type = 2
if (this.modeNext === 'year') {
this.type = 1
} else if (this.modeNext === 'month') {
this.type = 2
}
const params: any = {
time: this.timeNext,
@ -138,9 +139,9 @@ export class DatatableFinancetableComponent implements OnInit {
}
changeDataNext() {
if(this.mode === 'year') {
if(this.modeNext === 'year') {
this.dateFormat = 'yyyy'
} else if(this.mode === 'month') {
} else if(this.modeNext === 'month') {
this.dateFormat = 'yyyy-MM'
}
}
@ -148,9 +149,9 @@ export class DatatableFinancetableComponent implements OnInit {
if(result === null) {
return
}
if(this.mode === 'year') {
if(this.modeNext === 'year') {
this.timeNext = [this.datePipe.transform(this.dateNext, 'yyyy') + '-01-01 00:00:00']
} else if(this.mode === 'month') {
} else if(this.modeNext === 'month') {
this.timeNext = [this.datePipe.transform(this.dateNext, 'yyyy-MM') + '-01 00:00:00']
}
this.initPillarData();

View File

@ -1,15 +1,9 @@
<!-- 页头 -->
<page-header-wrapper [title]="'开票数据报表'"></page-header-wrapper>
<nz-card nzTitle="开票数据报表">
<st
#st
[data]="service.$api_findInvoiceReport"
[columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data', total: 'data.total' }}"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loadingDelay]="500"
>
<st #st [data]="service.$api_findInvoiceReport" [columns]="columns" [scroll]="{ x: '1200px' }"
[req]="{ params: reqParams }" [res]="{ reName: { list: 'data', total: 'data.total' }}" [page]="{ show: false }"
[loadingDelay]="500">
<ng-template st-row="totalInvoicedAmount" let-item let-index="index">
{{item.totalInvoicedAmount | currency}}
</ng-template>

View File

@ -6,14 +6,14 @@ import { DataService } from '../../services/data.service';
@Component({
selector: 'app-datatable-invoicetable',
templateUrl: './invoicetable.component.html',
templateUrl: './invoicetable.component.html'
})
export class DatatableInvoicetableComponent implements OnInit {
@ViewChild('st', { static: false })
st!: STComponent;
columns!: STColumn[];
data=[{name1:1111}]
data = [{ name1: 1111 }];
constructor(private http: _HttpClient, private modal: ModalHelper, public service: DataService) {}
/**
@ -24,53 +24,80 @@ export class DatatableInvoicetableComponent implements OnInit {
}
ngOnInit(): void {
this.initST();
}
initST() {
this.columns = [
{
title: '运营主体',
index: 'operationName'
index: 'operationName',
width: 220
},
{
title: '已开票总金额',
index: 'totalInvoicedAmount',
render: 'totalInvoicedAmount',
className: 'text-right',
width: 150
},
{
title: '当月已开票金额',
index: 'invAmountMonth',
render: 'invAmountMonth',
className: 'text-right',
width: 150
},
{
title: '当月已开票张数',
index: 'numInvAmountMonth',
className: 'text-right',
width: 150
},
{
title: '已申请待开金额',
index: 'applyWaitInvAmount',
render: 'applyWaitInvAmount',
className: 'text-right',
width: 150
},
{
title: '申请待开客户',
index: 'applyWaitCustomer',
className: 'text-right',
width: 150
},
{
title: '已开票金额',
index: 'invoicedAmount',
render: 'invoicedAmount',
className: 'text-right',
width: 150
},
{
title: '未申请开票金额(历史)',
index: 'unInvoicedAmountHistory',
render: 'unInvoicedAmountHistory',
className: 'text-right',
width: 200
},
{
title: '未申请开票金额(当月)',
index: 'unInvoicedAmountCurMonth',
render: 'unInvoicedAmountCurMonth',
className: 'text-right',
width: 200
},
{
title: '当月发票张数',
index: 'unInvoicedAmountHistory1',
className: 'text-right',
width: 150
},
{
title: '剩余发票张数',
index: 'unInvoicedAmountCurMonth1',
className: 'text-right',
width: 150
}
];
}
}

View File

@ -13,9 +13,10 @@ export class OperationtablePieComponent implements OnInit {
@ViewChild('pie', { static: false }) pie!: G2PieComponent;
chartData: any = [];
el: any;
chart: any;
enterpriseInfoIdPie = ''
interManlist: any = []
innerView: any =[];
constructor(private service: DataService, private ngZone: NgZone) {
}
@ -27,7 +28,11 @@ export class OperationtablePieComponent implements OnInit {
this.service.request(this.service.$api_operationalReportWaybillStatusDistribution, {id: this.enterpriseInfoIdPie}).subscribe(res => {
if (res) {
this.chartData = res
this.ngZone.runOutsideAngular(() => this.init(this.el));
// this.ngZone.runOutsideAngular(() => this.init(this.el));
setTimeout(() => {
this.chart?.data(this.chartData);
this.chart?.render();
}, 1000)
}
})
}
@ -39,21 +44,26 @@ export class OperationtablePieComponent implements OnInit {
}
render(el: ElementRef<HTMLDivElement>): void {
this.el = el.nativeElement
setTimeout(() => {
this.ngZone.runOutsideAngular(() => this.init(this.el));
}, 500)
}
private init(el: HTMLElement): void {
const chart = new Chart({
this.chart = new Chart({
container: el,
autoFit: true,
height: 400,
});
// 新建一个 view 用来单独渲染Annotation
const innerView = chart.createView();
chart.coordinate('theta', {
// const innerView = chart.createView();
this.innerView = this.chart.createView();
this.chart.coordinate('theta', {
radius: 0.6,
innerRadius: 0.7,
});
chart.data(this.chartData);
// this.chart.data(this.chartData);
// chart.scale('percent', {
// formatter: val => {
@ -62,10 +72,10 @@ export class OperationtablePieComponent implements OnInit {
// },
// });
chart.tooltip(false);
this.chart.tooltip(false);
// 声明需要进行自定义图例字段: 'item'
chart.legend('item', {
this.chart.legend('item', {
position: 'right', // 配置图例显示位置
custom: true, // 关键字段,告诉 G2要使用自定义的图例
items: this.chartData.map((obj: any, index: any) => {
@ -77,7 +87,7 @@ export class OperationtablePieComponent implements OnInit {
symbol: 'square', // marker 的形状
style: {
r: 5, // marker 图形半径
fill: chart.getTheme().colors10[index], // marker 颜色,使用默认颜色,同图形对应
fill: this.chart.getTheme().colors10[index], // marker 颜色,使用默认颜色,同图形对应
},
}, // marker 配置
};
@ -90,7 +100,7 @@ export class OperationtablePieComponent implements OnInit {
},
});
const interval = chart
const interval = this.chart
.interval()
.adjust('stack')
.position('percent')
@ -102,7 +112,7 @@ export class OperationtablePieComponent implements OnInit {
})
.state({
active: {
style: element => {
style: (element: any) => {
const shape = element.shape;
return {
lineWidth: 1,
@ -114,17 +124,17 @@ export class OperationtablePieComponent implements OnInit {
});
// 移除图例点击过滤交互
chart.removeInteraction('legend-filter');
chart.interaction('element-active');
this.chart.removeInteraction('legend-filter');
this.chart.interaction('element-active');
chart.render(true);
this.chart.render(true);
// 默认选择
interval.elements[0].setState('selected', true);
const ele = interval.elements[0].getData();
// 监听 element 上状态的变化来动态更新 Annotation 信息
chart.on('element:statechange', (ev: any) => {
this.chart.on('element:statechange', (ev: any) => {
const { state, stateStatus, element } = ev.gEvent.originalEvent;
// 本示例只需要监听 active 的状态变化
@ -142,10 +152,10 @@ export class OperationtablePieComponent implements OnInit {
// 绘制 annotation
let lastItem: any;
function updateAnnotation(data: any) {
const updateAnnotation = (data: any) => {
if (data.item !== lastItem) {
innerView.annotation().clear(true);
innerView
this.innerView.annotation().clear(true);
this.innerView
.annotation()
.text({
position: ['50%', '50%'],
@ -168,7 +178,7 @@ export class OperationtablePieComponent implements OnInit {
offsetX: -10,
offsetY: 20,
})
innerView.render(true);
this.innerView.render(true);
lastItem = data.item;
@ -176,9 +186,9 @@ export class OperationtablePieComponent implements OnInit {
}
// 清空 annotation
function clearAnnotation() {
innerView.annotation().clear(true);
innerView.render(true);
function clearAnnotation(this: any) {
this.innerView?.annotation()?.clear(true);
this.innerView.render(true);
lastItem = null;
}

View File

@ -93,6 +93,15 @@ export class DataService extends BaseService {
// 业务员-合规报表
$api_listPartComplianceReportPage = `/api/sdc/report/listPartComplianceReportPage`;
// 数据报表-订单类型比例
$api_getBillTypeProportion = `/api/sdc/reportData/getBillTypeProportion`;
// 数据报表-运单直付比例
$api_getWayBillDirectProportion = `/api/sdc/reportData/getWayBillDirectProportion`;
// 数据报表-统计订单金额-趋势
$api_getBillAmount = `/api/sdc/reportData/getBillAmount`;
// // 数据报表-统计订单金额-趋势
// $api_getBillAmount = `/api/sdc/reportData/getBillAmount`;
constructor(public injector: Injector) {

View File

@ -65,7 +65,7 @@
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="inputST?.load(1)">查询</button>
<button nz-button (click)="resetInputSF()">重置</button>
<button nz-button> 导出</button>
<button nz-button (click)="exprot()"> 导出</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
@ -81,11 +81,11 @@
</ng-template>
<ng-template st-row="billId" let-item let-index="index" let-column="column">
{{item.billCode}}<br>
{{item.billStatus}}<br>
{{item.billStatusLabel}}<br>
</ng-template>
<ng-template st-row="wayBillId" let-item let-index="index" let-column="column">
{{item.wayBillCode}}<br>
{{item.wayBillStatus}}<br>
{{item.wayBillStatusLabel}}<br>
</ng-template>
<ng-template st-row="driverId" let-item let-index="index" let-column="column">
{{item.driverName}}<br>

View File

@ -123,6 +123,11 @@ export class WithdrawalsDetailComponent implements OnInit {
history.go(-1);
}
// 导出
exprot() {
this.service.exportStart({ ...this.inputSF.value, pageSize: -1 }, this.service.$api_export_refund_detail_page);
}
private initInputSF(): SFSchema {
return {
properties: {
@ -220,11 +225,11 @@ export class WithdrawalsDetailComponent implements OnInit {
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.payAmount }) },
width: 140
},
{ title: '运费明细', render: 'amountDetails', className: 'text-center', width: 150 },
{ title: '货主', index: 'ltdName', className: 'text-center', width: 200 },
{ title: '订单号', render: 'billId', className: 'text-center', width: 150 },
{ title: '运单号', render: 'wayBillId', className: 'text-center', width: 150 },
{ title: '货源编号', index: 'resourceCode', className: 'text-center', width: 150 },
{ title: '运费明细', render: 'amountDetails', className: 'text-right', width: 150 },
{ title: '货主', index: 'ltdName', className: 'text-left', width: 200 },
{ title: '订单号', render: 'billId', width: 200 },
{ title: '运单号', render: 'wayBillId', width: 200 },
{ title: '货源编号', index: 'resourceCode', width: 200 },
{
title: '服务类型',
index: 'serviceType',
@ -233,9 +238,9 @@ export class WithdrawalsDetailComponent implements OnInit {
type: 'enum',
enum: { '1': '抢单', '2': '指派', '3': '二维码', '4': '手工单' }
},
{ title: '承运司机', render: 'driverId', className: 'text-center', width: 150 },
{ title: '收款人', render: 'captainName', className: 'text-center', width: 150 },
{ title: '银行类型', index: 'bankType', className: 'text-center', width: 150 }
{ title: '承运司机', render: 'driverId', width: 150 },
{ title: '收款人', render: 'captainName', className: 'text-left', width: 150 },
{ title: '银行类型', index: 'bankTypeLabel', className: 'text-center', width: 150 }
];
}
}

View File

@ -55,7 +55,9 @@ export class FreightAccountService extends ShipperBaseService {
// 获取提现申请表详情
$api_get_refund_detail = '/api/fcc/refundApplicationOBC/get';
// 获取提现支付详情
$api_get_refund_detail_page = '/api/fcc/refundApplicationOBC/get/payList';
$api_get_refund_detail_page = '/api/fcc/refundApplicationOBC/get/getPayList';
// 提现支付详情导出
$api_export_refund_detail_page = '/api/fcc/refundApplicationOBC/asyncExportPayList';
// 同意提现
$api_agree_refund = '/api/fcc/refundApplicationOBC/agreeRefund';
// 拒绝提现

View File

@ -93,10 +93,17 @@ export class OrderManagementComplaintComponent implements OnInit {
initSF() {
this.schema = {
properties: {
_$expand: { type: 'boolean', ui: { hidden: true } },
complaintCode: {
type: 'string',
title: '投诉单号'
},
wayBillCode: {
type: 'string',
title: '运单号',
ui: {
}
},
complaintCause: {
title: '投诉原因',
type: 'string',
@ -124,7 +131,10 @@ export class OrderManagementComplaintComponent implements OnInit {
ui: {
widget: 'sl-from-to',
type: 'date',
format: 'yyyy-MM-dd'
format: 'yyyy-MM-dd',
visibleIf: {
_$expand: (value: boolean) => value
},
} as SFDateWidgetSchema
}
}

View File

@ -94,19 +94,6 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
},
default: ''
},
declareResult: {
title: '申报结果',
type: 'string',
ui: {
placeholder: '请选择',
widget: 'dict-select',
params: { dictKey: 'service:type' },
containsAllLabel: true,
visibleIf: {
_$expand: (value: boolean) => value
}
}
},
overdueStatus: {
title: '是否逾期',
type: 'string',
@ -143,7 +130,7 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
}
} as SFDateWidgetSchema
},
enterpriseInfoId: {
nsrmc: {
type: 'string',
title: '网络货运人',
ui: {
@ -153,7 +140,7 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
visibleIf: {
_$expand: (value: boolean) => value
},
asyncData: () => this.service.getNetworkFreightForwarder()
asyncData: () => this.service.getNetworkEnterpriseName()
}
}
}
@ -298,16 +285,12 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
* @param params 更新数据
*/
uploadSetting() {
if (this.selectedRows.length === 0) {
this.service.msgSrv.warning('请选择需要更新的数据');
return;
this.service.request(this.service.$api_get_updateData).subscribe((res: any) => {
if (res) {
this.service.msgSrv.success('更新成功');
this.search();
}
// this.service.request(this.service.$api_recall_reporting, { rows: this.selectedRows }).subscribe((res: any) => {
// if (res) {
// this.service.msgSrv.success('更新成功');
// this.search();
// }
// })
})
}
search() {

View File

@ -413,10 +413,21 @@ export class TaxManagementOrderReportingComponent implements OnInit {
* 上传
*/
upload() {
let status = false
if (this.selectedRows.length === 0) {
this.openWainingModal('请选择需要上传的数据');
return;
}
this.selectedRows.forEach(item => {
if (item?.putStatus != '0') {
status = true
}
});
if(status) {
this.service.msgSrv.warning('选择了已上传,请重新勾选!');
return;
}
let params: any[] = [];
this.selectedRows.forEach(item => {
params.push(item.id);

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2021-12-27 10:30:56
* @LastEditors : Shiming
* @LastEditTime : 2022-04-09 14:22:35
* @LastEditTime : 2022-04-19 14:19:44
* @FilePath : \\tms-obc-web\\src\\app\\routes\\tax-management\\services\\tax-management.service.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
@ -50,6 +50,8 @@ export class TaxManagementService extends ShipperBaseService {
$api_get_taxDeclaration = `/api/sdc/taxDeclaration/list/page`;
// 更新所有税务申报
$api_get_taxDeclaration_updateAll = `/api/sdc/taxDeclaration/updateAll`;
// 更新所有个税汇总
$api_get_updateData = `/api/sdc/taxSummary/updateData`;
$api_recall_reporting = ``; // 撤回
$api_async_export_order_reporting_list = ``; // 导出订单上报
$api_get_upload_setting = ``; // 修改上传设置

View File

@ -263,6 +263,7 @@ export class InvoiceRequestedComponent {
const modal = this.nzModalService.create({
nzTitle: '开票受理',
nzContent: RequestedInvoiceModalComponent,
nzNoAnimation: true,
nzWidth: 1200,
nzComponentParams: {
id: item.id

View File

@ -11,20 +11,10 @@
<app-requested-detail [id]="id"></app-requested-detail>
<st
#st1
[data]="service.$api_get_invoice_requested_order_detail"
[columns]="columns"
bordered
size="small"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loading]="false"
[scroll]="{ x: '1200px', y: '200px' }"
(change)="stChange($event)"
class="mt-md"
>
<st #st1 [data]="service.$api_get_invoice_requested_order_detail" [columns]="columns" bordered size="small"
[req]="{ process: beforeReq }" [res]="{ process:afterRes }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false"
[scroll]="{ x: '1200px', y: '200px' }" (change)="stChange($event)" class="mt-md">
<ng-template st-row="billHCode" let-item let-index="index" let-column="column">
<a class="text-primary"> {{ item.billHCode }}</a>
</ng-template>

View File

@ -6,7 +6,7 @@
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\invoice-requested\\requested-invoice-modal\\requested-invoice-modal.component.ts
*/
import { Component, ViewChild } from '@angular/core';
import { ChangeDetectorRef, Component, ViewChild } from '@angular/core';
import { Router } from '@angular/router';
import { STChange, STColumn, STComponent, STRequestOptions } from '@delon/abc/st';
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
@ -24,23 +24,38 @@ export class RequestedInvoiceModalComponent {
columns: STColumn[] = this.initST();
id: any;
selectedRows: any[] = [];
constructor(public service: TicketService, private nzModalService: NzModalService, private modal: NzModalRef, private router: Router) {}
constructor(
public service: TicketService,
private nzModalService: NzModalService,
private modal: NzModalRef,
private router: Router,
private cdr: ChangeDetectorRef
) {}
beforeReq = (requestOptions: STRequestOptions) => {
Object.assign(requestOptions.body, { vatappHId: this.id });
return requestOptions;
};
afterRes = (data: any[], rawData?: any) => {
return data.map(item => ({ ...item, isDelete: data?.length > 1 }));
};
/**
* 移除订单
*
* @returns
*/
removeOrder(item: any[]) {
if (this.st1._data?.length <= 1) {
if (this.st1.total <= 1 || item?.length === this.st1.total) {
this.service.msgSrv.warning('开票申请记录不能少于一个订单');
return;
}
if (item?.length <= 0) {
this.service.msgSrv.warning('请选择要移除订单');
return;
}
this.nzModalService.warning({
nzTitle: '确定从当前批次中移除所选订单?',
nzContent: '移除后相关订单可以重新提交开票申请',
@ -111,7 +126,7 @@ export class RequestedInvoiceModalComponent {
{
text: '移除',
click: (item: any) => this.removeOrder([item]),
iif: _ => this.st1._data?.length > 1
iif: item => item.isDelete
}
]
}

View File

@ -11,7 +11,8 @@
<sv-title style="font-weight: 700;">
<div style="float: right;">
<ng-container *ngIf="!isEdit">
<button nz-button nzType="default" nzDanger (click)="ratify()" acl acl-ability="VEHICLE-LIST-DETAIL-save">修改</button>
<button nz-button nzType="default" nzDanger (click)="ratify()" acl
acl-ability="VEHICLE-LIST-DETAIL-save">修改</button>
</ng-container>
<ng-container *ngIf="isEdit">
<button nz-button nzType="default" (click)="reset()">取消</button>
@ -32,11 +33,7 @@
[placeholder]="isEdit?'':'-'"> -->
<nz-select [(ngModel)]="detailData.carNoColor" [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit"
[nzShowArrow]="isEdit" [nzDisabled]="!isEdit">
<nz-option
*ngFor="let i of contenCarNoColor"
[nzLabel]="i.label"
[nzValue]="i.value"
></nz-option>
<nz-option *ngFor="let i of contenCarNoColor" [nzLabel]="i.label" [nzValue]="i.value"></nz-option>
</nz-select>
</sv>
<sv label="车型">
@ -44,11 +41,7 @@
[placeholder]="isEdit?'':'-'"> -->
<nz-select [(ngModel)]="detailData.carModel" [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit"
[nzShowArrow]="isEdit" [nzDisabled]="!isEdit">
<nz-option
*ngFor="let i of contencarModel"
[nzLabel]="i.label"
[nzValue]="i.value"
></nz-option>
<nz-option *ngFor="let i of contencarModel" [nzLabel]="i.label" [nzValue]="i.value"></nz-option>
</nz-select>
</sv>
<sv label="车长(米)">
@ -56,11 +49,7 @@
[placeholder]="isEdit?'':'-'"> -->
<nz-select [(ngModel)]="detailData.carLength" [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit"
[nzShowArrow]="isEdit" [nzDisabled]="!isEdit">
<nz-option
*ngFor="let i of contenCarLength"
[nzLabel]="i.label"
[nzValue]="i.value"
></nz-option>
<nz-option *ngFor="let i of contenCarLength" [nzLabel]="i.label" [nzValue]="i.value"></nz-option>
</nz-select>
</sv>
<sv label="是否挂靠">
@ -95,22 +84,28 @@
<input nz-input type="text" [(ngModel)]="detailData.archivesNo" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'">
</sv>
<sv label="车辆品牌">
<input nz-input type="text" [(ngModel)]="detailData.carBrand" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'">
</sv>
<sv label="行驶证注册日期">
<!-- <input nz-input type="text" [(ngModel)]="detailData.driverLicenseRegisterTime" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'"> -->
<nz-date-picker [(ngModel)]="detailData.driverLicenseRegisterTime" [nzDisabled]="!isEdit"
[nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''"></nz-date-picker>
[nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''">
</nz-date-picker>
</sv>
</sv-container>
<sv-container col="3">
<sv label="行驶证到期日">
<nz-date-picker [(ngModel)]="detailData.driverLicenseEndTime" [nzDisabled]="!isEdit"
[nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''"></nz-date-picker>
[nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''">
</nz-date-picker>
</sv>
<sv label="行驶证签发机关">
<input style="width: '300px'" nz-input type="text" [(ngModel)]="detailData.driverLicenseSigningOrg" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'">
<input style="width: '300px'" nz-input type="text" [(ngModel)]="detailData.driverLicenseSigningOrg"
[readonly]="!isEdit" [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv>
</sv-container>
@ -119,11 +114,12 @@
<!-- <input nz-input type="text" [(ngModel)]="detailData.driverLicenseGetTime" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'"> -->
<nz-date-picker [(ngModel)]="detailData.driverLicenseGetTime" [nzDisabled]="!isEdit"
[nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''"></nz-date-picker>
[nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''">
</nz-date-picker>
</sv>
<sv label="车辆识别代码">
<input nz-input type="text" [(ngModel)]="detailData.carDistinguishCode" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'">
<input nz-input type="text" [(ngModel)]="detailData.carDistinguishCode" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv>
<sv label="使用性质">
<nz-select [(ngModel)]="detailData.useNature" [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit"
@ -144,8 +140,8 @@
[placeholder]="isEdit?'':'-'">
</sv>
<sv label="所有人">
<input style="width: '300px'" nz-input type="text" [(ngModel)]="detailData.carOwner" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'">
<input style="width: '300px'" nz-input type="text" [(ngModel)]="detailData.carOwner" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv>
</sv-container>
<sv-container col="1">
@ -162,24 +158,26 @@
<sv-container col="3" class="mt16">
<sv-title style="font-weight: 700;">道路运输证信息</sv-title>
<sv label="道路运输证号">
<input nz-input type="text" [(ngModel)]="detailData.roadTransportNo" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'">
<input nz-input type="text" [(ngModel)]="detailData.roadTransportNo" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv>
<sv label="经营许可证号">
<input nz-input type="text" [(ngModel)]="detailData.roadTransportLicenceNo" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'">
<input nz-input type="text" [(ngModel)]="detailData.roadTransportLicenceNo" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv>
<sv label="发证日期">
<!-- <input nz-input type="text" [(ngModel)]="detailData.roadTransportStartTime" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'"> -->
<nz-date-picker [(ngModel)]="detailData.roadTransportStartTime" [nzDisabled]="!isEdit"
[nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''"></nz-date-picker>
[nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''">
</nz-date-picker>
</sv>
<sv label="有效期至">
<!-- <input nz-input type="text" [(ngModel)]="detailData.roadTransportEndTime" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'"> -->
<nz-date-picker [(ngModel)]="detailData.roadTransportEndTime" [nzDisabled]="!isEdit"
[nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''"></nz-date-picker>
[nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''">
</nz-date-picker>
</sv>
<sv label="道路运输证照片">
<!-- <app-imagelist [imgList]="[detailData?.roadTransportPhoto,detailData?.roadTransportPhotoWatermark ]"></app-imagelist> -->
@ -192,18 +190,10 @@
<sv-container col="2" class="mt16">
<sv-title style="font-weight: 700;">认证司机</sv-title>
</sv-container>
<st
#st
[bordered]="true"
[columns]="columns"
[data]="service.$api_get_queryDriverByCarId"
<st #st [bordered]="true" [columns]="columns" [data]="service.$api_get_queryDriverByCarId"
[req]="{ method: 'POST', allInBody: true, params: reqParams }"
[res]="{ reName: { list: 'data', total: 'data' } }"
[ngStyle]="{ margin: '1rem 0' }"
multiSort
size="small"
[page]="{ show: false }"
>
[res]="{ reName: { list: 'data', total: 'data' } }" [ngStyle]="{ margin: '1rem 0' }" multiSort size="small"
[page]="{ show: false }">
<ng-template st-row="auditStatusEnum" let-item let-index="index">
<div>
<span *ngIf="item?.auditStatusEnum === -1 || item?.auditStatusEnum === '-1'">未上传</span>
@ -218,7 +208,8 @@
</nz-card>
</ng-container>
<nz-modal [(nzVisible)]="isVisible" [nzWidth]="600" [nzFooter]="nzModalFooterEvaluate" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel('2')">
<nz-modal [(nzVisible)]="isVisible" [nzWidth]="600" [nzFooter]="nzModalFooterEvaluate" (nzOnOk)="handleOK()"
(nzOnCancel)="handleCancel('2')">
<ng-container *nzModalContent>
<nz-tabset>
<nz-tab nzTitle="我的评价">