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

This commit is contained in:
潘晓云
2022-04-19 19:28:28 +08:00
12 changed files with 25522 additions and 95 deletions

View File

@ -5,7 +5,7 @@ import { SFComponent } from '@delon/form';
* @Author : Shiming * @Author : Shiming
* @Date : 2022-03-30 13:55:41 * @Date : 2022-03-30 13:55:41
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-04-15 17:40:53 * @LastEditTime : 2022-04-19 17:45:44
* @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\compliance\\customer\\customer.component.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\compliance\\customer\\customer.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -125,15 +125,15 @@ export class DatatableComplianceCustomerComponent implements OnInit {
ngOnInit(): void {} ngOnInit(): void {}
onChange(result: any) { onChange(result: any) {
if (this.mode === 'year') { if (this.mode === 'year') {
this.time = [this.datePipe.transform(this.date, 'yyyy') + '-01-01 00:00:00']; this.time = [this.datePipe.transform(this.date, 'yyyy')];
} else if (this.mode === 'month') { } else if (this.mode === 'month') {
this.time = [this.datePipe.transform(this.date, 'yyyy-MM') + '-01 00:00:00']; this.time = [this.datePipe.transform(this.date, 'yyyy-MM')];
} else if (this.mode === 'date') { } else if (this.mode === 'date') {
this.time = [this.datePipe.transform(this.date, 'yyyy-MM-dd') + ' 00:00:00']; this.time = [this.datePipe.transform(this.date, 'yyyy-MM-dd')];
} else { } else {
this.time = [ this.time = [
this.datePipe.transform(this.defineDate[0], 'yyyy-MM-dd') + '00:00:00', this.datePipe.transform(this.defineDate[0], 'yyyy-MM-dd'),
this.datePipe.transform(this.defineDate[1], 'yyyy-MM-dd') + ' 00:00:00' this.datePipe.transform(this.defineDate[1], 'yyyy-MM-dd')
]; ];
} }
this.st.reload({ ...this.reqParams }); this.st.reload({ ...this.reqParams });

File diff suppressed because it is too large Load Diff

View File

@ -19,9 +19,9 @@
</div> </div>
<div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right"> <div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right">
<button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="service.http.loading" <button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="service.http.loading"
(click)="search()">查询</button> (click)="search()" acl [acl-ability]="['TAX-COLLECT-search']">查询</button>
<button nz-button (click)="resetSF()">重置</button> <button nz-button (click)="resetSF()">重置</button>
<button nz-button (click)="resetSF()">导出</button> <button nz-button (click)="resetSF()" acl [acl-ability]="['TAX-COLLECT-export']">导出</button>
<button nz-button nzType="link" (click)="expandToggle()"> <button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }} {{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i> <i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
@ -44,8 +44,8 @@
已选择 已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据 <strong class="text-red">{{ selectedRows.length }}</strong> 条数据
</div> </div>
<button nz-button nzType="primary" (click)="upload()">申报</button> <button nz-button nzType="primary" (click)="upload()" acl [acl-ability]="['TAX-COLLECT-report']">申报</button>
<button nz-button nzType="primary" (click)="recall()">更正</button> <button nz-button nzType="primary" (click)="recall()" acl [acl-ability]="['TAX-COLLECT-change']">更正</button>
<button nz-button nzType="primary" (click)="uploadSetting()">更新数据</button> <button nz-button nzType="primary" (click)="uploadSetting()" acl [acl-ability]="['TAX-COLLECT-resetData']">更新数据</button>
</div> </div>
</ng-template> </ng-template>

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-03-30 14:00:43 * @Date : 2022-03-30 14:00:43
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-04-09 14:13:42 * @LastEditTime : 2022-04-19 19:11:08
* @FilePath : \\tms-obc-web\\src\\app\\routes\\tax-management\\components\\individual-declare\\individual-declare.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\tax-management\\components\\individual-declare\\individual-declare.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -18,9 +18,9 @@
</div> </div>
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand"> <div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand">
<button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="service.http.loading" <button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="service.http.loading"
(click)="search()">查询</button> (click)="search()" acl [acl-ability]="['TAX-DECLARE-search']">查询</button>
<button nz-button (click)="resetSF()">重置</button> <button nz-button (click)="resetSF()">重置</button>
<button nz-button (click)="resetSF()">导出</button> <button nz-button (click)="resetSF()" acl [acl-ability]="['TAX-DECLARE-export']">导出</button>
<button nz-button nzType="link" (click)="expandToggle()"> <button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }} {{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i> <i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
@ -58,10 +58,10 @@
已选择 已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据 <strong class="text-red">{{ selectedRows.length }}</strong> 条数据
</div> </div>
<button nz-button nzType="primary" (click)="upload()">申报</button> <button nz-button nzType="primary" (click)="upload()" acl [acl-ability]="['TAX-DECLARE-declare']">申报</button>
<button nz-button nzType="primary" (click)="recall()">更正</button> <button nz-button nzType="primary" (click)="recall()" acl [acl-ability]="['TAX-DECLARE-change']">更正</button>
<button nz-button nzType="primary" (click)="uploadSetting()">修改起征点</button> <button nz-button nzType="primary" (click)="uploadSetting()" acl [acl-ability]="['TAX-DECLARE-threshold']">修改起征点</button>
<button nz-button nzType="primary" (click)="resetData()">更新数据</button> <button nz-button nzType="primary" (click)="resetData()" acl [acl-ability]="['TAX-DECLARE-resetData']">更新数据</button>
</div> </div>
</ng-template> </ng-template>

View File

@ -19,9 +19,9 @@
</div> </div>
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.expend-options]="_$expand" class="text-right"> <div nz-col [nzSpan]="_$expand ? 24 : 6" [class.expend-options]="_$expand" class="text-right">
<button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="isLoading && st.loading" <button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="isLoading && st.loading"
(click)="search()">查询</button> (click)="search()" acl [acl-ability]="['TAX-INCOME-search']">查询</button>
<button nz-button (click)="resetSF()">重置</button> <button nz-button (click)="resetSF()">重置</button>
<button nz-button (click)="resetSF()">导出</button> <button nz-button (click)="resetSF()" acl [acl-ability]="['TAX-INCOME-export']">导出</button>
<button nz-button nzType="link" (click)="expandToggle()"> <button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }} {{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i> <i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
@ -45,10 +45,10 @@
已选择 已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据 <strong class="text-red">{{ selectedRows.length }}</strong> 条数据
</div> </div>
<button nz-button nzType="primary" (click)="upload()">申报</button> <button nz-button nzType="primary" (click)="upload()" acl [acl-ability]="['TAX-ORDERREPORT-declare ']">申报</button>
<button nz-button nzType="primary" (click)="corrections()">更正</button> <button nz-button nzType="primary" (click)="corrections()" acl [acl-ability]="['TAX-ORDERREPORT-change ']">更正</button>
<button nz-button nzType="primary" (click)="resetData()">修改起征点</button> <button nz-button nzType="primary" (click)="resetData()" acl [acl-ability]="['TAX-ORDERREPORT-threshold ']">修改起征点</button>
<button nz-button nzType="primary" (click)="uploadSetting()">更新数据</button> <button nz-button nzType="primary" (click)="uploadSetting()" acl [acl-ability]="['TAX-ORDERREPORT-resetData ']">更新数据</button>
</div> </div>
</ng-template> </ng-template>

View File

@ -17,9 +17,9 @@
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div> </div>
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand"> <div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand">
<button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="isLoading && st.loading" (click)="search()" >查询</button> <button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="isLoading && st.loading" (click)="search()" acl [acl-ability]="['TAX-ORDERREPORT-search']">查询</button>
<button nz-button (click)="resetSF()">重置</button> <button nz-button (click)="resetSF()">重置</button>
<button nz-button (click)="resetSF()">导出</button> <button nz-button (click)="resetSF()" acl [acl-ability]="['TAX-ORDERREPORT-export']">导出</button>
<button nz-button nzType="link" (click)="expandToggle()"> <button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }} {{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i> <i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
@ -100,9 +100,9 @@
已选择 已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据 <strong class="text-red">{{ selectedRows.length }}</strong> 条数据
</div> </div>
<button nz-button nzType="primary" (click)="upload()">上传</button> <button nz-button nzType="primary" (click)="upload()" acl [acl-ability]="['TAX-ORDERREPORT-upload']">上传</button>
<button nz-button nzType="primary" (click)="recall()">撤回</button> <button nz-button nzType="primary" (click)="recall() " acl [acl-ability]="['TAX-ORDERREPORT-recall']">撤回</button>
<button nz-button nzType="primary" (click)="resetData()">更新数据</button> <button nz-button nzType="primary" (click)="resetData()" acl [acl-ability]="['TAX-ORDERREPORT-resetData']">更新数据</button>
<button nz-button nzType="primary" (click)="uploadSetting()">税务设置</button> <button nz-button nzType="primary" (click)="uploadSetting()" acl [acl-ability]="['TAX-ORDERREPORT-uploadSetting']">税务设置</button>
</div> </div>
</ng-template> </ng-template>

View File

@ -109,7 +109,7 @@ export class TaxManagementOrderReportingComponent implements OnInit {
placeholder: '请输入', placeholder: '请输入',
}, },
}, },
shipperAppUserId: { shipperId: {
type: 'string', type: 'string',
title: '货主', title: '货主',
ui: { ui: {
@ -163,27 +163,33 @@ export class TaxManagementOrderReportingComponent implements OnInit {
}, },
} }
}, },
putStatus: { // putStatus: {
title: '上传状态', // title: '上传状态',
type: 'string', // type: 'string',
ui: { // enum: [
placeholder: '请选择', // {label: '待上传',value: 0},
widget: 'dict-select', // {label: '已上传',value: 1},
params: { dictKey: 'service:type' }, // {label: '上传异常',value: 2},
containsAllLabel: true, // ],
visibleIf: { // ui: {
_$expand: (value: boolean) => value, // widget:'select',
}, // placeholder: '请选择',
} // visibleIf: {
}, // _$expand: (value: boolean) => value,
// },
// }
// },
checkStatus: { checkStatus: {
title: '本地校验', title: '本地校验',
type: 'string', type: 'string',
enum: [
{label: '校验中',value: 0},
{label: '通过',value: 1},
{label: '不通过',value: 2},
],
ui: { ui: {
widget:'select',
placeholder: '请选择', placeholder: '请选择',
widget: 'dict-select',
params: { dictKey: 'service:type' },
containsAllLabel: true,
visibleIf: { visibleIf: {
_$expand: (value: boolean) => value, _$expand: (value: boolean) => value,
}, },
@ -255,6 +261,18 @@ export class TaxManagementOrderReportingComponent implements OnInit {
className: 'text-center', className: 'text-center',
width: '180px', width: '180px',
}, },
{
title: '档案编号',
index: 'archivesNo',
className: 'text-center',
width: '180px',
},
{
title: '品牌型号',
index: 'carBrand',
className: 'text-center',
width: '180px',
},
{ title: '装货地', index: 'loadingAddress', render: 'loadingPlace', className: 'text-center', width: '200px' }, { title: '装货地', index: 'loadingAddress', render: 'loadingPlace', className: 'text-center', width: '200px' },
{ title: '装货地详细地址', index: 'loadingDetailedAddress', render: 'loadingPlace', className: 'text-center', width: '200px' }, { title: '装货地详细地址', index: 'loadingDetailedAddress', render: 'loadingPlace', className: 'text-center', width: '200px' },
{ title: '卸货地', index: 'unloadAddress', render: 'dischargePlace', className: 'text-center', width: '120px' }, { title: '卸货地', index: 'unloadAddress', render: 'dischargePlace', className: 'text-center', width: '120px' },

View File

@ -282,7 +282,16 @@ export class InvoiceRequestedComponent {
if (res?.reconciliationUrl) { if (res?.reconciliationUrl) {
this.service.reviewPDF(res.reconciliationUrl); this.service.reviewPDF(res.reconciliationUrl);
} else { } else {
this.service.msgSrv.warning('获取对账单失败'); this.service
.request(this.service.$api_download_Reconciliatio_pdf, { vatappHId: item.id, esignFlowId: res.esignFlowId })
.subscribe(rs => {
if (rs?.reconciliationUrl) {
this.service.reviewPDF(rs.reconciliationUrl);
} else {
// this.service.msgSrv.warning('获取对账单失败');
}
});
// this.service.msgSrv.warning('获取对账单失败');
} }
}); });
} }

View File

@ -132,6 +132,8 @@ export class TicketService extends ShipperBaseService {
$api_get_express_routes = '/api/fcc/ficoExpressH/searchRoutes'; $api_get_express_routes = '/api/fcc/ficoExpressH/searchRoutes';
// 下载对账单文件 // 下载对账单文件
$api_downloadPdf = '/api/fcc/ficoVatappBill/downloadPdf'; $api_downloadPdf = '/api/fcc/ficoVatappBill/downloadPdf';
// 对账单文件下载
$api_download_Reconciliatio_pdf = '/api/fcc/ficoVatappBill/downloadReconciliationPdf';
// 根据地区code查询列表 // 根据地区code查询列表
$api_get_region_by_code = '/api/mdc/pbc/region/getRegionByCode'; $api_get_region_by_code = '/api/mdc/pbc/region/getRegionByCode';

View File

@ -12,16 +12,8 @@
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<!-- 查询字段小于或等于3个时不显示伸缩按钮 --> <!-- 查询字段小于或等于3个时不显示伸缩按钮 -->
<div nz-col nzSpan="24" *ngIf="queryFieldCount <= 4"> <div nz-col nzSpan="24" *ngIf="queryFieldCount <= 4">
<sf <sf #sf [schema]="schema" [ui]="ui" [mode]="'search'" [disabled]="!sf?.valid" [loading]="false"
#sf (formSubmit)="search()" (formReset)="resetSF()"></sf>
[schema]="schema"
[ui]="ui"
[mode]="'search'"
[disabled]="!sf?.valid"
[loading]="false"
(formSubmit)="search()"
(formReset)="resetSF()"
></sf>
</div> </div>
<!-- 查询字段大于3个时根据展开状态调整布局 --> <!-- 查询字段大于3个时根据展开状态调整布局 -->
@ -30,7 +22,8 @@
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div> </div>
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand"> <div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand">
<button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="isLoading && st.loading" (click)="search()" acl [acl-ability]="['WAYBILL-ABNORMAL-search']">查询</button> <button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="isLoading && st.loading"
(click)="search()" acl [acl-ability]="['WAYBILL-ABNORMAL-search']">查询</button>
<button nz-button (click)="resetSF()">重置</button> <button nz-button (click)="resetSF()">重置</button>
<button nz-button nzType="link" (click)="expandToggle()"> <button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }} {{ !_$expand ? '展开' : '收起' }}
@ -44,42 +37,35 @@
<nz-card class="content-box"> <nz-card class="content-box">
<nz-tabset [(nzSelectedIndex)]="selectedIndex" (nzSelectedIndexChange)="selectChange($event)"> <nz-tabset [(nzSelectedIndex)]="selectedIndex" (nzSelectedIndexChange)="selectChange($event)">
<nz-tab [nzTitle]="'待回复(' + tabs?.stayQuantity + ')'"> <nz-tab [nzTitle]="'待回复(' + tabs?.stayQuantity + ')'">
<st <st #st [data]="service.$api_get_listOperatePage" [columns]="columns"
#st
[data]="service.$api_get_listOperatePage"
[columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }" [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }" [res]="{ reName: { list: 'data.records', total: 'data.total' } }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false"
[loading]="false" [scroll]="{ x: '2000px' }">
[scroll]="{ x: '2000px' }"
>
<ng-template st-row="exceptionCertificateFirstFilePath" let-item let-index="index"> <ng-template st-row="exceptionCertificateFirstFilePath" let-item let-index="index">
<div class="imgBox"> <div class="imgBox">
<div *ngIf="item?.exceptionCertificateFirstFilePath"> <div *ngIf="item?.exceptionCertificateFirstFilePath">
<app-imagelist style="width: 40px;height: 40px" [imgList]="[item?.exceptionCertificateFirstFilePath]"> </app-imagelist> <app-imagelist style="width: 40px;height: 40px" [imgList]="[item?.exceptionCertificateFirstFilePath]">
</app-imagelist>
</div> </div>
<div *ngIf="item?.exceptionCertificateSecondFilePath"> <div *ngIf="item?.exceptionCertificateSecondFilePath">
<app-imagelist style="width: 40px;height: 40px" [imgList]="[item?.exceptionCertificateSecondFilePath]"> </app-imagelist> <app-imagelist style="width: 40px;height: 40px" [imgList]="[item?.exceptionCertificateSecondFilePath]">
</app-imagelist>
</div> </div>
<div *ngIf="item?.exceptionCertificateThirdFilePath"> <div *ngIf="item?.exceptionCertificateThirdFilePath">
<app-imagelist style="width: 40px;height: 40px" [imgList]="[item?.exceptionCertificateThirdFilePath]"> </app-imagelist> <app-imagelist style="width: 40px;height: 40px" [imgList]="[item?.exceptionCertificateThirdFilePath]">
</app-imagelist>
</div> </div>
</div> </div>
</ng-template> </ng-template>
</st> </st>
</nz-tab> </nz-tab>
<nz-tab [nzTitle]="'已回复(' + tabs?.receivedQuantity + ')'"> <nz-tab [nzTitle]="'已回复(' + tabs?.receivedQuantity + ')'">
<st <st #st2 [data]="service.$api_get_listOperatePage" [columns]="columns2"
#st2
[data]="service.$api_get_listOperatePage"
[columns]="columns2"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams2 }" [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams2 }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }" [res]="{ reName: { list: 'data.records', total: 'data.total' } }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false"
[loading]="false" [scroll]="{ x: '2000px' }">
[scroll]="{ x: '2000px' }"
>
<ng-template st-row="exceptionCertificateFirstFilePath" let-item let-index="index"> <ng-template st-row="exceptionCertificateFirstFilePath" let-item let-index="index">
<div class="imgBox"> <div class="imgBox">
<div *ngIf="item?.exceptionCertificateFirstFilePath"> <div *ngIf="item?.exceptionCertificateFirstFilePath">
@ -97,3 +83,58 @@
</nz-tab> </nz-tab>
</nz-tabset> </nz-tabset>
</nz-card> </nz-card>
<ng-template #detailModal>
<div nz-row nzGutter="8">
<div nz-col nzSpan="24" se-container [labelWidth]="110" [col]="1">
<se label="异常编号">
{{itemInfo.exceptionCode}}
</se>
<se label="装货地">
{{itemInfo.loadingAddressArr}}
</se>
<se label="卸货地">
{{itemInfo.unloadingAddressArr}}
</se>
<se label="异常信息">
{{itemInfo.exceptionContent}}
</se>
<se label="异常图片">
<div style="display: flex;">
<div *ngIf="itemInfo?.exceptionCertificateFirstFilePath" style="cursor: pointer;">
<app-imagelist [imgList]="[itemInfo?.exceptionCertificateFirstFilePath]"> </app-imagelist>
</div>
<div *ngIf="itemInfo?.exceptionCertificateSecondFilePath" style="cursor: pointer;">
<app-imagelist [imgList]="[itemInfo?.exceptionCertificateSecondFilePath]"> </app-imagelist>
</div>
<div *ngIf="itemInfo?.exceptionCertificateThirdFilePath" style="cursor: pointer;">
<app-imagelist [imgList]="[itemInfo?.exceptionCertificateThirdFilePath]"> </app-imagelist>
</div>
</div>
</se>
<ng-container *ngIf="itemInfo.replyAppUserName">
<se label="回复内容">
{{itemInfo.replyContent}}
</se>
<se label="回复人">
{{itemInfo.replyAppUserName}}
</se>
<se label="回复时间">
{{itemInfo.replyTime}}
</se>
</ng-container>
</div>
</div>
</ng-template>
<ng-template #replyModal>
<div nz-row nzGutter="8">
<div nz-col nzSpan="24" se-container [labelWidth]="110">
<se [col]="1" label="回复内容" required>
<textarea nz-input rows="3" placeholder="请填写回复内容" [(ngModel)]="replyContent"
style="width: 325px; margin-left: 14px"></textarea>
</se>
</div>
</div>
</ng-template>

View File

@ -21,6 +21,10 @@ import { WaybillManagementServe } from '../../services/waybill-management.servic
styleUrls: ['./abnormal-appear.component.less'] styleUrls: ['./abnormal-appear.component.less']
}) })
export class WaybillManagementAbnormalAppearComponent implements OnInit { export class WaybillManagementAbnormalAppearComponent implements OnInit {
@ViewChild('detailModal', { static: true })
detailModal!: any;
@ViewChild('replyModal', { static: true })
replyModal!: any;
@ViewChild('st', { static: true }) @ViewChild('st', { static: true })
st!: STComponent; st!: STComponent;
@ViewChild('st2', { static: true }) @ViewChild('st2', { static: true })
@ -44,7 +48,14 @@ export class WaybillManagementAbnormalAppearComponent implements OnInit {
}; };
columns: STColumn[] = [ columns: STColumn[] = [
{ title: '异常编号', index: 'exceptionCode', width: '180px', className: 'text-left' }, {
title: '异常编号',
index: 'exceptionCode',
width: '180px',
className: 'text-left',
type: 'link',
click: item => this.reviewDetailAction(item)
},
{ title: '异常类型', index: 'exceptionTypeLabel', width: '180px', className: 'text-left' }, { title: '异常类型', index: 'exceptionTypeLabel', width: '180px', className: 'text-left' },
{ title: '关联运单号', index: 'wayBillCode', width: '180px', className: 'text-left' }, { title: '关联运单号', index: 'wayBillCode', width: '180px', className: 'text-left' },
{ title: '网络货运人', index: 'enterpriseInfoName', width: '250px', className: 'text-left' }, { title: '网络货运人', index: 'enterpriseInfoName', width: '250px', className: 'text-left' },
@ -54,10 +65,24 @@ export class WaybillManagementAbnormalAppearComponent implements OnInit {
{ title: '承运司机', index: 'driver', width: '250px', className: 'text-left' }, { title: '承运司机', index: 'driver', width: '250px', className: 'text-left' },
{ title: '异常信息', index: 'exceptionContent', width: '250px', className: 'text-left' }, { title: '异常信息', index: 'exceptionContent', width: '250px', className: 'text-left' },
{ title: '异常图片', render: 'exceptionCertificateFirstFilePath', width: '300px', className: 'text-left' }, { title: '异常图片', render: 'exceptionCertificateFirstFilePath', width: '300px', className: 'text-left' },
{ title: '上报时间', index: 'createTime', width: '180px', className: 'text-left' } { title: '上报时间', index: 'createTime', width: '180px', className: 'text-center' },
{
title: '操作',
fixed: 'right',
width: '100px',
className: 'text-center',
buttons: [{ text: '回复', click: item => this.replyAction(item) }]
}
]; ];
columns2: STColumn[] = [ columns2: STColumn[] = [
{ title: '异常编号', index: 'exceptionCode', width: '180px', className: 'text-left' }, {
title: '异常编号',
index: 'exceptionCode',
width: '180px',
className: 'text-left',
type: 'link',
click: item => this.reviewDetailAction(item)
},
{ title: '异常类型', index: 'exceptionTypeLabel', width: '180px', className: 'text-left' }, { title: '异常类型', index: 'exceptionTypeLabel', width: '180px', className: 'text-left' },
{ title: '关联运单号', index: 'wayBillCode', width: '180px', className: 'text-left' }, { title: '关联运单号', index: 'wayBillCode', width: '180px', className: 'text-left' },
{ title: '网络货运人', index: 'enterpriseInfoName', width: '180px', className: 'text-left' }, { title: '网络货运人', index: 'enterpriseInfoName', width: '180px', className: 'text-left' },
@ -74,7 +99,6 @@ export class WaybillManagementAbnormalAppearComponent implements OnInit {
]; ];
resourceStatus: number | undefined; resourceStatus: number | undefined;
get reqParams() { get reqParams() {
return { return {
...this.sf?.value, ...this.sf?.value,
@ -82,7 +106,7 @@ export class WaybillManagementAbnormalAppearComponent implements OnInit {
reportingTime: { reportingTime: {
start: this.sf?.value?.reportingTime?.[0] || '', start: this.sf?.value?.reportingTime?.[0] || '',
end: this.sf?.value?.reportingTime?.[1] || '' end: this.sf?.value?.reportingTime?.[1] || ''
}, }
}; };
} }
get reqParams2() { get reqParams2() {
@ -92,11 +116,12 @@ export class WaybillManagementAbnormalAppearComponent implements OnInit {
reportingTime: { reportingTime: {
start: this.sf?.value?.reportingTime?.[0] || '', start: this.sf?.value?.reportingTime?.[0] || '',
end: this.sf?.value?.reportingTime?.[1] || '' end: this.sf?.value?.reportingTime?.[1] || ''
}, }
}; };
} }
itemInfo: any = {};
constructor(public service: WaybillManagementServe, private nzModalService: NzModalService, public shipperSrv: ShipperBaseService) { } replyContent = '';
constructor(public service: WaybillManagementServe, private nzModalService: NzModalService, public shipperSrv: ShipperBaseService) {}
ngOnInit(): void { ngOnInit(): void {
this.initSF(); this.initSF();
@ -116,6 +141,51 @@ export class WaybillManagementAbnormalAppearComponent implements OnInit {
get queryFieldCount(): number { get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length; return Object.keys(this.schema?.properties || {}).length;
} }
reviewDetailAction(item: any) {
this.itemInfo = {};
this.service.request(this.service.$api_get_listOperate_detail, { id: item.id }).subscribe(res => {
if (res) {
this.itemInfo = res;
const modal = this.nzModalService.create({
nzContent: this.detailModal,
nzWidth: 600,
nzTitle: '异常详情',
nzFooter: []
});
}
});
}
replyAction(item: any) {
this.replyContent = '';
const modal = this.nzModalService.create({
nzContent: this.replyModal,
nzTitle: '回复',
nzOnOk: () => {
if (!this.replyContent) {
this.service.msgSrv.warning('请填写回复内容');
return false;
}
this.service
.request(this.service.$api_operate_reply, [
{
id: item.id,
replyContent: this.replyContent
}
])
.subscribe(res => {
if (res) {
this.service.msgSrv.success('回复成功');
this.st.load(1);
this.getGoodsSourceStatistical();
}
});
return true;
}
});
}
initSF() { initSF() {
this.schema = { this.schema = {
properties: { properties: {
@ -265,7 +335,7 @@ export class WaybillManagementAbnormalAppearComponent implements OnInit {
*/ */
resetSF() { resetSF() {
this.sf.reset(); this.sf.reset();
this.isLoading = true this.isLoading = true;
} }
// 获取城市列表 // 获取城市列表
getRegionCode(regionCode: any) { getRegionCode(regionCode: any) {

View File

@ -51,6 +51,10 @@ export class WaybillManagementServe extends BaseService {
// 查询运营端异常上报 // 查询运营端异常上报
$api_get_listOperatePage = '/api/sdc/exceptionReport/listOperatePage'; $api_get_listOperatePage = '/api/sdc/exceptionReport/listOperatePage';
// 查询运营端异常上报详情
$api_get_listOperate_detail = '/api/sdc/exceptionReport/getOperateDetail';
// 运营端异常回复
$api_operate_reply = '/api/sdc/exceptionReport/operateReply';
// 查询运营端异常上报数据统计 // 查询运营端异常上报数据统计
$api_get_listOperateStatus = '/api/sdc/exceptionReport/listOperateStatus'; $api_get_listOperateStatus = '/api/sdc/exceptionReport/listOperateStatus';
// // 查询运营端已回复异常上报 // // 查询运营端已回复异常上报