From 865534d2abe9b70c87d72d61295e75fc650dec37 Mon Sep 17 00:00:00 2001 From: Taric Xin Date: Mon, 10 Jan 2022 13:20:56 +0800 Subject: [PATCH] edit --- src/app/routes/commom/less/expend-but.less | 2 +- .../payment-order.component.html | 43 +++ .../payment-order/payment-order.component.ts | 257 ++++++++++++++++++ .../receipt-order.component.html | 1 + .../receipt-order.component.less | 0 .../receipt-order.component.spec.ts | 25 ++ .../receipt-order/receipt-order.component.ts | 15 + .../financial-managemen-routing.module.ts | 4 + .../financial-management.module.ts | 6 +- .../input-invoice-detail.component.html | 14 +- .../input-invoice-detail.component.ts | 40 ++- .../input-invoice.component.html | 4 +- .../input-invoice/input-invoice.component.ts | 64 +++-- .../services/ticket.service.ts | 10 +- src/assets/mocks/menu-data.json | 8 + 15 files changed, 436 insertions(+), 57 deletions(-) create mode 100644 src/app/routes/financial-management/components/payment-order/payment-order.component.html create mode 100644 src/app/routes/financial-management/components/payment-order/payment-order.component.ts create mode 100644 src/app/routes/financial-management/components/receipt-order/receipt-order.component.html create mode 100644 src/app/routes/financial-management/components/receipt-order/receipt-order.component.less create mode 100644 src/app/routes/financial-management/components/receipt-order/receipt-order.component.spec.ts create mode 100644 src/app/routes/financial-management/components/receipt-order/receipt-order.component.ts diff --git a/src/app/routes/commom/less/expend-but.less b/src/app/routes/commom/less/expend-but.less index d3b5b6b0..cf56baf5 100644 --- a/src/app/routes/commom/less/expend-but.less +++ b/src/app/routes/commom/less/expend-but.less @@ -5,7 +5,7 @@ @media (min-width: 1200px) { .expend-options { - max-width: 400px; + max-width: 450px; position : absolute; right : 0; bottom : 25px; diff --git a/src/app/routes/financial-management/components/payment-order/payment-order.component.html b/src/app/routes/financial-management/components/payment-order/payment-order.component.html new file mode 100644 index 00000000..251d83de --- /dev/null +++ b/src/app/routes/financial-management/components/payment-order/payment-order.component.html @@ -0,0 +1,43 @@ + + + + +
+
+ +
+
+ + + + + +
+
+
+ + + +
+ + +
+ 已选择 + {{ selectedRows.length }} 张单 + 清空 +
+
+ + + +
\ No newline at end of file diff --git a/src/app/routes/financial-management/components/payment-order/payment-order.component.ts b/src/app/routes/financial-management/components/payment-order/payment-order.component.ts new file mode 100644 index 00000000..e5668635 --- /dev/null +++ b/src/app/routes/financial-management/components/payment-order/payment-order.component.ts @@ -0,0 +1,257 @@ +import { Component, OnInit, ViewChild } from '@angular/core'; +import { Router } from '@angular/router'; +import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st'; +import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form'; +import { NzModalService } from 'ng-zorro-antd/modal'; +import { AddCollectionInvoiceModalComponent } from 'src/app/routes/ticket-management/components/input-invoice/add-collection-invoice-modal/add-collection-invoice-modal.component'; +import { TicketService } from 'src/app/routes/ticket-management/services/ticket.service'; + +@Component({ + selector: 'app-payment-order', + templateUrl: './payment-order.component.html', + styleUrls: ['../../../commom/less/box.less', '../../../commom/less/expend-but.less'] +}) +export class PaymentOrderComponent implements OnInit { + @ViewChild('st', { static: true }) + st!: STComponent; + @ViewChild('sf', { static: false }) + sf!: SFComponent; + columns: STColumn[] = this.initST(); + searchSchema: SFSchema = this.initSF(); + + _$expand = false; + + selectedRows: any[] = []; + constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {} + + ngOnInit(): void {} + + beforeReq = (requestOptions: STRequestOptions) => { + if (this.sf) { + Object.assign(requestOptions.body, { + ...this.sf.value + }); + } + return requestOptions; + }; + + stChange(e: STChange): void { + switch (e.type) { + case 'checkbox': + this.selectedRows = e.checkbox!; + break; + } + } + + addInvoice() { + if (this.selectedRows?.length <= 0) { + this.service.msgSrv.warning('请选择付款单'); + return; + } + const modal = this.nzModalService.create({ + nzTitle: '付款单', + nzContent: AddCollectionInvoiceModalComponent, + nzComponentParams: { i: { userId: 0 } }, + nzFooter: null + }); + } + + /** + * 重置表单 + */ + resetSF() { + this.sf.reset(); + this._$expand = false; + } + + /** + * 伸缩查询条件 + */ + expandToggle() { + this._$expand = !this._$expand; + this.sf?.setValue('/expand', this._$expand); + } + + private initSF(): SFSchema { + return { + properties: { + expand: { + type: 'boolean', + ui: { + hidden: true + } + }, + orderSn: { + type: 'string', + title: '付款单号', + ui: { + autocomplete: 'off', + placeholder: '请输入' + } + }, + ltdId: { + type: 'string', + title: '网络货运人', + ui: { + widget: 'select', + placeholder: '请选择', + allowClear: true, + asyncData: () => this.service.getNetworkFreightForwarder() + }, + default: '' + }, + orderS2n: { + type: 'string', + title: '付款状态', + ui: { + widget: 'dict-select', + params: { dictKey: 'refund:apply:status' }, + placeholder: '请选择' + } + }, + order2S2n: { + type: 'string', + title: '付款类型', + ui: { + widget: 'dict-select', + params: { dictKey: 'refund:apply:status' }, + placeholder: '请选择', + visibleIf: { + expand: (value: boolean) => value + } + } + }, + order22S2n: { + type: 'string', + title: '付款方式', + ui: { + widget: 'dict-select', + params: { dictKey: 'refund:apply:status' }, + placeholder: '请选择', + visibleIf: { + expand: (value: boolean) => value + } + } + }, + order221S2n: { + type: 'string', + title: '收款人', + ui: { + widget: 'dict-select', + params: { dictKey: 'refund:apply:status' }, + placeholder: '请选择', + visibleIf: { + expand: (value: boolean) => value + } + } + }, + orderS12n: { + type: 'string', + title: '订单号', + ui: { + placeholder: '请选择', + visibleIf: { + expand: (value: boolean) => value + } + } + }, + createTime: { + title: '要求付款日期', + type: 'string', + ui: { + widget: 'sl-from-to-search', + format: 'yyyy-MM-dd', + visibleIf: { + expand: (value: boolean) => value + } + } as SFDateWidgetSchema + }, + createTi1me: { + title: '确认日期', + type: 'string', + ui: { + widget: 'sl-from-to-search', + format: 'yyyy-MM-dd', + visibleIf: { + expand: (value: boolean) => value + } + } as SFDateWidgetSchema + }, + orderS1n2: { + type: 'string', + title: '运单号', + ui: { + placeholder: '请输入', + visibleIf: { + expand: (value: boolean) => value + } + } + }, + orderS3: { + type: 'string', + title: '费用号', + ui: { + placeholder: '请输入', + visibleIf: { + expand: (value: boolean) => value + } + } + }, + createT1i1me: { + title: '创建时间', + type: 'string', + ui: { + widget: 'sl-from-to-search', + format: 'yyyy-MM-dd', + visibleIf: { + expand: (value: boolean) => value + } + } as SFDateWidgetSchema + }, + orderSn4: { + type: 'string', + title: '付款备注', + ui: { + autocomplete: 'off', + placeholder: '请选择', + visibleIf: { + expand: (value: boolean) => value + } + } + } + } + }; + } + + private initST(): STColumn[] { + return [ + { title: '', index: 'key', type: 'checkbox' }, + { title: '付款单号', index: 'no', type: 'link' }, + { title: '网络货运人', index: 'no' }, + { title: '要求付款日期', index: 'no', type: 'date', width: 140 }, + { title: '付款金额', index: 'callNo' }, + { title: '付款类型', index: 'callNo' }, + { title: '付款方式', index: 'call1No' }, + { title: '结算客户', index: 'call1N2o' }, + { title: '收款人', index: 'callNo' }, + { title: '应付已核销', index: 'callNo' }, + { title: '确认日期', index: 'updatedAt', type: 'date' }, + { title: '创建时间', index: 'updatedAt', type: 'date' }, + { title: '创建人', index: 'callNo' }, + { title: '付款备注', index: 'callNo' }, + { + title: '操作', + buttons: [ + { + text: '浏览', + click: item => this.router.navigate(['/ticket/input-invoice/detail/1']) + }, + { + text: '修改', + click: item => this.router.navigate(['/ticket/input-invoice/edit/1']) + } + ] + } + ]; + } +} diff --git a/src/app/routes/financial-management/components/receipt-order/receipt-order.component.html b/src/app/routes/financial-management/components/receipt-order/receipt-order.component.html new file mode 100644 index 00000000..a441701f --- /dev/null +++ b/src/app/routes/financial-management/components/receipt-order/receipt-order.component.html @@ -0,0 +1 @@ +

receipt-order works!

diff --git a/src/app/routes/financial-management/components/receipt-order/receipt-order.component.less b/src/app/routes/financial-management/components/receipt-order/receipt-order.component.less new file mode 100644 index 00000000..e69de29b diff --git a/src/app/routes/financial-management/components/receipt-order/receipt-order.component.spec.ts b/src/app/routes/financial-management/components/receipt-order/receipt-order.component.spec.ts new file mode 100644 index 00000000..67886d32 --- /dev/null +++ b/src/app/routes/financial-management/components/receipt-order/receipt-order.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ReceiptOrderComponent } from './receipt-order.component'; + +describe('ReceiptOrderComponent', () => { + let component: ReceiptOrderComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ ReceiptOrderComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(ReceiptOrderComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/routes/financial-management/components/receipt-order/receipt-order.component.ts b/src/app/routes/financial-management/components/receipt-order/receipt-order.component.ts new file mode 100644 index 00000000..77e62656 --- /dev/null +++ b/src/app/routes/financial-management/components/receipt-order/receipt-order.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-receipt-order', + templateUrl: './receipt-order.component.html', + styleUrls: ['./receipt-order.component.less'] +}) +export class ReceiptOrderComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/src/app/routes/financial-management/financial-managemen-routing.module.ts b/src/app/routes/financial-management/financial-managemen-routing.module.ts index 46052c12..e74520e2 100644 --- a/src/app/routes/financial-management/financial-managemen-routing.module.ts +++ b/src/app/routes/financial-management/financial-managemen-routing.module.ts @@ -14,6 +14,8 @@ import { TransactionFlowComponent } from './components/transaction-flow/transact import { CostManagementDetailComponent } from './components/cost-management/cost-management-detail/cost-management-detail.component'; import { ExpensesReceivableComponent } from './components/cost-management/expenses-receivable/expenses-receivable.component'; import { ExpensesPayableComponent } from './components/cost-management/expenses-payable/expenses-payable.component'; +import { PaymentOrderComponent } from './components/payment-order/payment-order.component'; +import { ReceiptOrderComponent } from './components/receipt-order/receipt-order.component'; const routes: Routes = [ { path: 'freight-account', component: FreightAccountComponent }, @@ -32,6 +34,8 @@ const routes: Routes = [ { path: 'abnormal-gold', component: AbnormalGoldComponent }, { path: 'payment-record', component: PaymentRecordComponent }, { path: 'transaction-flow', component: TransactionFlowComponent }, + { path: 'payment-order', component: PaymentOrderComponent }, + { path: 'receipt-order', component: ReceiptOrderComponent }, ]; @NgModule({ diff --git a/src/app/routes/financial-management/financial-management.module.ts b/src/app/routes/financial-management/financial-management.module.ts index 86f03925..182b25a3 100644 --- a/src/app/routes/financial-management/financial-management.module.ts +++ b/src/app/routes/financial-management/financial-management.module.ts @@ -18,6 +18,8 @@ import { ClearingModalComponent } from './components/abnormal-gold/clearing-moda import { CostManagementDetailComponent } from './components/cost-management/cost-management-detail/cost-management-detail.component'; import { ExpensesReceivableComponent } from './components/cost-management/expenses-receivable/expenses-receivable.component'; import { ExpensesPayableComponent } from './components/cost-management/expenses-payable/expenses-payable.component'; +import { PaymentOrderComponent } from './components/payment-order/payment-order.component'; +import { ReceiptOrderComponent } from './components/receipt-order/receipt-order.component'; const ROUTESCOMPONENTS = [ FreightAccountComponent, @@ -31,7 +33,9 @@ const ROUTESCOMPONENTS = [ CostManagementComponent, CostManagementDetailComponent, ExpensesReceivableComponent, - ExpensesPayableComponent + ExpensesPayableComponent, + PaymentOrderComponent, + ReceiptOrderComponent ]; const NOTROUTECOMPONENTS = [DriverAccountDetailComponent, FreightAccountDetailComponent, SettingFinancialComponent, ClearingModalComponent]; diff --git a/src/app/routes/ticket-management/components/input-invoice/input-invoice-detail/input-invoice-detail.component.html b/src/app/routes/ticket-management/components/input-invoice/input-invoice-detail/input-invoice-detail.component.html index 3c201861..7bd3ac08 100644 --- a/src/app/routes/ticket-management/components/input-invoice/input-invoice-detail/input-invoice-detail.component.html +++ b/src/app/routes/ticket-management/components/input-invoice/input-invoice-detail/input-invoice-detail.component.html @@ -10,26 +10,26 @@
- {{headerInfo?.ltdidName}} + {{headerInfo?.ltdid}} - 2021-12-11 + {{headerInfo?.invdate}}
- {{headerInfo?.projectName}} + {{headerInfo?.hrto}} - {{headerInfo?.taxNumber}} + {{headerInfo?.invoiceno}}
- {{headerInfo?.vatname}} + {{headerInfo?.invtype}} - {{headerInfo?.isdetail}} + {{headerInfo?.remarks}}
@@ -55,7 +55,7 @@ - { + this.service.request(this.service.$api_get_input_invoice_header, { id: this.id }).subscribe(res => { console.log(res); if (res) { this.headerInfo = res; @@ -41,7 +41,17 @@ export class InputInvoiceDetailComponent implements OnInit { beforeReq = (requestOptions: STRequestOptions) => { if (this.sf) { - Object.assign(requestOptions.body, { ...this.sf.value }); + Object.assign(requestOptions.body, { + ...this.sf.value, + billTime: { + start: this.sf.value.billTime?.[0] || null, + end: this.sf.value.billTime?.[1] || null + }, + feedate: { + start: this.sf.value.feedate?.[0] || null, + end: this.sf.value.feedate?.[1] || null + } + }); } return requestOptions; }; @@ -74,21 +84,21 @@ export class InputInvoiceDetailComponent implements OnInit { hidden: true } }, - billHCode: { + feecode: { type: 'string', title: '费用单', ui: { placeholder: '请输入' } }, - billHC2ode: { + billHCode: { type: 'string', title: '订单号', ui: { placeholder: '请输入' } }, - vatappSts: { + cno: { type: 'string', title: '结算客户', enum: [{ label: '全部', value: '' }], @@ -98,7 +108,7 @@ export class InputInvoiceDetailComponent implements OnInit { }, default: '' }, - createTime: { + feedate: { title: '费用日期', type: 'string', ui: { @@ -109,7 +119,7 @@ export class InputInvoiceDetailComponent implements OnInit { } } as SFDateWidgetSchema }, - create2Time: { + billTime: { title: '订单日期', type: 'string', ui: { @@ -127,14 +137,14 @@ export class InputInvoiceDetailComponent implements OnInit { private initST(): STColumn[] { return [ { title: '序号', render: 'billHCode', width: 80 }, - { title: '费用号', index: 'vatappSts', width: 100 }, - { title: '费用日期', index: 'billTime', type: 'date', width: 150 }, - { title: '订单号', index: 'projectId', width: 100 }, - { title: '订单日期', index: 'loadingfrom', width: 150 }, - { title: '结算客户', index: 'loadingto', width: 90 }, - { title: '费用科目', index: 'goodsinfo', width: 100 }, - { title: '收票金额', index: 'driverinfo', width: 140 }, - { title: '收票税额', index: 'billkpmoney', width: 100 } + { title: '费用号', index: 'feecode', width: 100 }, + { title: '费用日期', index: 'feedate', type: 'date', width: 150 }, + { title: '订单号', index: 'billHCode', width: 100 }, + { title: '订单日期', index: 'billTime', width: 150 }, + { title: '结算客户', index: 'cnoName', width: 90 }, + { title: '费用科目', index: 'feesubname', width: 100 }, + { title: '收票金额', index: 'invmoney', width: 140 }, + { title: '收票税额', index: 'invtax', width: 100 } ]; } } diff --git a/src/app/routes/ticket-management/components/input-invoice/input-invoice.component.html b/src/app/routes/ticket-management/components/input-invoice/input-invoice.component.html index 3f6dd33c..ee74bc12 100644 --- a/src/app/routes/ticket-management/components/input-invoice/input-invoice.component.html +++ b/src/app/routes/ticket-management/components/input-invoice/input-invoice.component.html @@ -8,7 +8,7 @@ [ui]="{ '*': { spanLabelFixed: 100,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}" [compact]="true" [button]="'none'"> -
+
@@ -31,7 +31,7 @@
- { if (this.sf) { Object.assign(requestOptions.body, { - ...this.sf.value + ...this.sf.value, + createtime: { + start: this.sf.value.createtime?.[0] || null, + end: this.sf.value.createtime?.[1] || null + }, + invdate: { + start: this.sf.value.invdate?.[0] || null, + end: this.sf.value.invdate?.[1] || null + } }); } return requestOptions; @@ -83,7 +91,7 @@ export class InputInvoiceComponent implements OnInit { hidden: true } }, - orderSn: { + inpinvcode: { type: 'string', title: '收票单号', ui: { @@ -91,7 +99,7 @@ export class InputInvoiceComponent implements OnInit { placeholder: '请输入' } }, - ltdId: { + ltdid: { type: 'string', title: '网络货运人', ui: { @@ -102,7 +110,7 @@ export class InputInvoiceComponent implements OnInit { }, default: '' }, - orderS2n: { + invoiceno: { type: 'string', title: '发票号码', ui: { @@ -110,7 +118,7 @@ export class InputInvoiceComponent implements OnInit { placeholder: '请输入' } }, - order2S2n: { + invtype: { type: 'string', title: '发票类型', ui: { @@ -122,7 +130,7 @@ export class InputInvoiceComponent implements OnInit { } } }, - orderSn1: { + hrto: { type: 'string', title: '销售方', ui: { @@ -132,7 +140,7 @@ export class InputInvoiceComponent implements OnInit { } } }, - createTime: { + createtime: { title: '创建时间', type: 'string', ui: { @@ -143,7 +151,7 @@ export class InputInvoiceComponent implements OnInit { } } as SFDateWidgetSchema }, - ord0erSn1: { + sts: { type: 'string', title: '收票状态', ui: { @@ -155,7 +163,7 @@ export class InputInvoiceComponent implements OnInit { } } }, - orderSn2: { + invdate: { type: 'string', title: '发票日期', ui: { @@ -166,7 +174,7 @@ export class InputInvoiceComponent implements OnInit { } } }, - orderS1n2: { + remarks: { type: 'string', title: '收票备注', ui: { @@ -176,23 +184,21 @@ export class InputInvoiceComponent implements OnInit { } } }, - orderS3: { + billCode: { type: 'string', title: '订单号', ui: { - autocomplete: 'off', - placeholder: '请选择', + placeholder: '请输入', visibleIf: { expand: (value: boolean) => value } } }, - orderSn4: { + feecode: { type: 'string', title: '费用号', ui: { - autocomplete: 'off', - placeholder: '请选择', + placeholder: '请输入', visibleIf: { expand: (value: boolean) => value } @@ -205,23 +211,23 @@ export class InputInvoiceComponent implements OnInit { private initST(): STColumn[] { return [ { title: '', index: 'key', type: 'checkbox' }, - { title: '收票单号', index: 'no', type: 'link' }, - { title: '网络货运人', index: 'no' }, - { title: '发票日期', index: 'no', type: 'date' }, - { title: '发票号', index: 'callNo' }, - { title: '发票金额', index: 'callNo' }, - { title: '税额', render: 'call1No' }, - { title: '发票类型', render: 'call1N2o' }, - { title: '销售方', index: 'callNo' }, - { title: '创建时间', index: 'updatedAt', type: 'date' }, - { title: '创建人', index: 'updatedAt' }, - { title: '收票状态', index: 'updatedAt' }, + { title: '收票单号', index: 'inpinvcode', type: 'link' }, + { title: '网络货运人', index: 'ltdid' }, + { title: '发票日期', index: 'invdate', type: 'date' }, + { title: '发票号', index: 'invoiceno' }, + { title: '发票金额', index: 'invmoney' }, + { title: '税额', index: 'invtax' }, + { title: '发票类型', index: 'invtype' }, + { title: '销售方', index: 'hrto' }, + { title: '创建时间', index: 'createtime', type: 'date' }, + { title: '创建人', index: 'createbyname' }, + { title: '收票状态', index: 'sts' }, { title: '操作', buttons: [ { text: '浏览', - click: item => this.router.navigate(['/ticket/input-invoice/detail/1']) + click: item => this.router.navigate(['/ticket/input-invoice/detail/' + item.id]) }, { text: '修改', diff --git a/src/app/routes/ticket-management/services/ticket.service.ts b/src/app/routes/ticket-management/services/ticket.service.ts index e9cafc40..f60b4451 100644 --- a/src/app/routes/ticket-management/services/ticket.service.ts +++ b/src/app/routes/ticket-management/services/ticket.service.ts @@ -47,7 +47,6 @@ export class TicketService extends ShipperBaseService { // 保存开票申请费用明细 $api_ficoVatappFee_save = '/api/fcc/ficoVatappFee/save'; - // 查询ETC白名单(货主) $api_get_etc_shipper_list = '/api/fcc/ficoShipperWhiteList/list/page'; // 删除ETC白名单(货主) @@ -57,7 +56,14 @@ export class TicketService extends ShipperBaseService { // 查询ETC企业列表 $api_get_etc_list = '/api/mdc/cuc/enterpriseInfo/operate/etcList'; - constructor(public injector: Injector,public eaCacheSrv: EACacheService) { + // 进项发票查询 + $api_get_input_invoice_page = '/api/fcc/ficoInpinvH/getListPage'; + // 根据ID获取进项发票详情 + $api_get_input_invoice_header = '/api/fcc/ficoInpinvH/get'; + // 查询进项发票明细 + $api_get_input_invoice_detail_page = '/api/fcc/ficoInpinvL/list/page'; + + constructor(public injector: Injector, public eaCacheSrv: EACacheService) { super(injector, eaCacheSrv); } } diff --git a/src/assets/mocks/menu-data.json b/src/assets/mocks/menu-data.json index eec84b16..534bd6e1 100644 --- a/src/assets/mocks/menu-data.json +++ b/src/assets/mocks/menu-data.json @@ -243,6 +243,14 @@ "hide": true, "link": "/financial-management/cost-management/expenses-payable/:id" }, + { + "text": "付款单", + "link": "/financial-management/payment-order" + }, + { + "text": "收款单", + "link": "/financial-management/receipt-order" + }, { "text": "货主账户", "link": "/financial-management/freight-account"