diff --git a/src/app/global-config.module.ts b/src/app/global-config.module.ts index 856aede2..2d6bb8cd 100644 --- a/src/app/global-config.module.ts +++ b/src/app/global-config.module.ts @@ -27,7 +27,7 @@ const alainConfig: AlainConfig = { 'https://gw.alipayobjects.com/os/lib/antv/g2/4.1.4/dist/g2.min.js', 'https://gw.alipayobjects.com/os/lib/antv/data-set/0.11.7/dist/data-set.js' ] - } + }, }; const alainModules = [AlainThemeModule.forRoot(), DelonACLModule.forRoot()]; diff --git a/src/app/routes/datatable/dataindex/dataindex.component.html b/src/app/routes/datatable/dataindex/dataindex.component.html new file mode 100644 index 00000000..ffa275ac --- /dev/null +++ b/src/app/routes/datatable/dataindex/dataindex.component.html @@ -0,0 +1,32 @@ + + +
+
+ + + + + +
+
+ + + + + +
+
+ + + + + +
+
+ + + + + +
+
diff --git a/src/app/routes/partner/partner-list/components/index/partner-list.component.less b/src/app/routes/datatable/dataindex/dataindex.component.less similarity index 100% rename from src/app/routes/partner/partner-list/components/index/partner-list.component.less rename to src/app/routes/datatable/dataindex/dataindex.component.less diff --git a/src/app/routes/datatable/dataindex/dataindex.component.spec.ts b/src/app/routes/datatable/dataindex/dataindex.component.spec.ts new file mode 100644 index 00000000..cd009e56 --- /dev/null +++ b/src/app/routes/datatable/dataindex/dataindex.component.spec.ts @@ -0,0 +1,24 @@ +import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; +import { DatatableDataindexComponent } from './dataindex.component'; + +describe('DatatableDataindexComponent', () => { + let component: DatatableDataindexComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ DatatableDataindexComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(DatatableDataindexComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/routes/datatable/dataindex/dataindex.component.ts b/src/app/routes/datatable/dataindex/dataindex.component.ts new file mode 100644 index 00000000..b180b8a5 --- /dev/null +++ b/src/app/routes/datatable/dataindex/dataindex.component.ts @@ -0,0 +1,37 @@ +import { Component, OnInit, ViewChild } from '@angular/core'; +import { ModalHelper, _HttpClient } from '@delon/theme'; +import { G2MiniAreaClickItem, G2MiniAreaData } from '@delon/chart/mini-area'; +import { format } from 'date-fns'; + +@Component({ + selector: 'app-datatable-dataindex', + templateUrl: './dataindex.component.html', + styleUrls: ['./dataindex.component.less'] +}) +export class DatatableDataindexComponent implements OnInit { + visitData = this.genData(); + + constructor(private http: _HttpClient, private modal: ModalHelper) { } + + ngOnInit(): void { } + private genData(): G2MiniAreaData[] { + const beginDay = new Date().getTime(); + const res: G2MiniAreaData[] = []; + for (let i = 0; i < 20; i += 1) { + res.push({ + x: format(new Date(beginDay + 1000 * 60 * 60 * 24 * i), 'yyyy-MM-dd'), + y: Math.floor(Math.random() * 100) + 10, + }); + } + return res; + } + + refresh(): void { + this.visitData = this.genData(); + } + + handleClick(data: G2MiniAreaClickItem): void { + //this.msg.info(`${data.item.x} - ${data.item.y}`); + } + +} diff --git a/src/app/routes/datatable/datatable-routing.module.ts b/src/app/routes/datatable/datatable-routing.module.ts new file mode 100644 index 00000000..76a62af8 --- /dev/null +++ b/src/app/routes/datatable/datatable-routing.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { DatatableDataindexComponent } from './dataindex/dataindex.component'; + +const routes: Routes = [ + + { path: 'dataindex', component: DatatableDataindexComponent }]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class DatatableRoutingModule { } diff --git a/src/app/routes/datatable/datatable.module.ts b/src/app/routes/datatable/datatable.module.ts new file mode 100644 index 00000000..f996d3b5 --- /dev/null +++ b/src/app/routes/datatable/datatable.module.ts @@ -0,0 +1,17 @@ +import { NgModule, Type } from '@angular/core'; +import { SharedModule, SHARED_G2_MODULES } from '@shared'; +import { DatatableRoutingModule } from './datatable-routing.module'; +import { DatatableDataindexComponent } from './dataindex/dataindex.component'; + +const COMPONENTS: Type[] = [ + DatatableDataindexComponent]; + +@NgModule({ + imports: [ + SharedModule, + DatatableRoutingModule, + SHARED_G2_MODULES + ], + declarations: COMPONENTS, +}) +export class DatatableModule { } diff --git a/src/app/routes/financial-management/components/advance-collection/advance-collection.component.ts b/src/app/routes/financial-management/components/advance-collection/advance-collection.component.ts index 3556e2d5..57a658a1 100644 --- a/src/app/routes/financial-management/components/advance-collection/advance-collection.component.ts +++ b/src/app/routes/financial-management/components/advance-collection/advance-collection.component.ts @@ -84,9 +84,11 @@ export class AdvanceCollectionComponent { title: '付款人', ui: { widget: 'select', - placeholder: '请选择', + serverSearch: true, + searchDebounceTime: 300, + searchLoadingText: '搜索中...', allowClear: true, - asyncData: () => this.service.getCRM() + onSearch: (q: any) => this.service.getEnterpriceList({ enterpriseName: q }) } }, brmtype: { diff --git a/src/app/routes/financial-management/components/driver-account/driver-account-detail/driver-account-detail.component.ts b/src/app/routes/financial-management/components/driver-account/driver-account-detail/driver-account-detail.component.ts index 0a384b6c..679bd575 100644 --- a/src/app/routes/financial-management/components/driver-account/driver-account-detail/driver-account-detail.component.ts +++ b/src/app/routes/financial-management/components/driver-account/driver-account-detail/driver-account-detail.component.ts @@ -165,7 +165,9 @@ export class DriverAccountDetailComponent implements OnInit { { title: '交易时间', index: 'createTime', type: 'date' }, { title: '流水号', index: 'channelPaySn' }, { title: '交易类型', index: 'tradeTypeLabel', className: 'text-center' }, - { title: '关联单号', index: 'businessNumber' }, + { title: '交易单号', index: 'businessNumber' }, + { title: '订单号', index: 'orderSn' }, + { title: '运单号', index: 'transportSn' }, { title: '收支类型', index: 'incomeTypeLabel', className: 'text-center' }, { title: '交易金额', @@ -182,7 +184,10 @@ export class DriverAccountDetailComponent implements OnInit { type: 'widget', className: 'text-right', widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.accountBalance }) } - } + }, + { title: '付款方', index: 'payName'}, + { title: '收款方', index: 'payeeName' }, + { title: '备注', index: 'tradeContent' }, ]; } } diff --git a/src/app/routes/financial-management/components/driver-account/driver-account.component.ts b/src/app/routes/financial-management/components/driver-account/driver-account.component.ts index 6ab9883f..7861fd50 100644 --- a/src/app/routes/financial-management/components/driver-account/driver-account.component.ts +++ b/src/app/routes/financial-management/components/driver-account/driver-account.component.ts @@ -164,7 +164,7 @@ export class DriverAccountComponent implements OnInit { { title: '司机姓名', width: 140, index: 'name' }, { title: '证件号码', width: 140, index: 'idNo' }, { title: '手机号', width: 140, index: 'phone' }, - { title: '网络货运人', width: 140, index: 'ltdName' }, + { title: '网络货运人', width: 180, index: 'ltdName' }, { title: '银行类型', width: 120, index: 'bankTypeLabel' }, { title: '虚拟账户', width: 140, index: 'virtualAccount' }, { @@ -186,13 +186,14 @@ export class DriverAccountComponent implements OnInit { { title: '本月累计提现金额', index: 'withdrawBalance', - width: 150, + width: 160, type: 'widget', className: 'text-right', widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.withdrawBalance }) } }, { title: '账户总余额', render: 'availableBalance', className: 'text-right', width: 180 }, { title: '创建时间', index: 'createTime', type: 'date', width: 150 }, + { title: '状态', index: 'stateDeletedLabel', width: 120 }, { title: '操作', width: 120, diff --git a/src/app/routes/financial-management/components/freight-account/freight-account.component.ts b/src/app/routes/financial-management/components/freight-account/freight-account.component.ts index 2309923a..610f1efe 100644 --- a/src/app/routes/financial-management/components/freight-account/freight-account.component.ts +++ b/src/app/routes/financial-management/components/freight-account/freight-account.component.ts @@ -80,7 +80,7 @@ export class FreightAccountComponent implements OnInit { } exportList() { - this.service.downloadFile(this.service.$mock_url, { ...this.sf.value, pageSize: -1 }); + this.service.asyncExport({ ...this.sf.value, pageSize: -1 }, this.service.$api_export_shipper); } private initSF(): SFSchema { 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 index 6c42fe8d..09112197 100644 --- 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 @@ -8,7 +8,7 @@ [ui]="{ '*': { spanLabelFixed: 110,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}" [compact]="true" [button]="'none'"> -
+
{{headerInfo?.armoney | currency}} diff --git a/src/app/routes/financial-management/components/receivable-order/receivable-order.component.ts b/src/app/routes/financial-management/components/receivable-order/receivable-order.component.ts index 26e11de5..a8e78022 100644 --- a/src/app/routes/financial-management/components/receivable-order/receivable-order.component.ts +++ b/src/app/routes/financial-management/components/receivable-order/receivable-order.component.ts @@ -119,9 +119,9 @@ export class ReceivableOrderComponent implements OnInit { brmtype: { type: 'string', title: '收款类型', - enum: [{ value: '1', label: '费用款项' }], ui: { - widget: 'select', + widget: 'dict-select', + params: { dictKey: 'driverrecord:receive:type' }, placeholder: '请选择', visibleIf: { expand: (value: boolean) => value @@ -131,9 +131,9 @@ export class ReceivableOrderComponent implements OnInit { arvattype: { type: 'string', title: '付款类型', - enum: [{ value: '1', label: '费用款项' }], ui: { - widget: 'select', + widget: 'dict-select', + params: { dictKey: 'pay:type' }, placeholder: '请选择', visibleIf: { expand: (value: boolean) => value @@ -158,9 +158,11 @@ export class ReceivableOrderComponent implements OnInit { title: '付款人', ui: { widget: 'select', - placeholder: '请选择', + serverSearch: true, + searchDebounceTime: 300, + searchLoadingText: '搜索中...', allowClear: true, - asyncData: () => this.service.getCRM(), + onSearch: (q: any) => this.service.getEnterpriceList({ enterpriseName: q }), visibleIf: { expand: (value: boolean) => value } @@ -181,6 +183,23 @@ export class ReceivableOrderComponent implements OnInit { } } }, + banktype: { + type: 'string', + title: '银行类型', + enum: [ + { label: '全部', value: '' }, + { label: '平安银行', value: '1' }, + { label: '浦发银行', value: '2' } + ], + ui: { + widget: 'select', + placeholder: '请选择', + visibleIf: { + expand: (value: boolean) => value + } + }, + default: '' + }, ahxdate: { title: '核销日期', type: 'string', @@ -213,16 +232,16 @@ export class ReceivableOrderComponent implements OnInit { } } }, - orderS3: { - type: 'string', - title: '费用号', - ui: { - placeholder: '请输入', - visibleIf: { - expand: (value: boolean) => value - } - } - }, + // orderS3: { + // type: 'string', + // title: '费用号', + // ui: { + // placeholder: '请输入', + // visibleIf: { + // expand: (value: boolean) => value + // } + // } + // }, remarks: { type: 'string', title: '核销备注', @@ -242,9 +261,9 @@ export class ReceivableOrderComponent implements OnInit { return [ { title: '', index: 'key', type: 'checkbox' }, { title: '核销单号', index: 'ahxcode', type: 'link', width: 140 }, + { title: '订单号', index: 'billHCode', type: 'link', width: 140 }, { title: '网络货运人', index: 'ltdName', width: 160 }, { title: '核销日期', index: 'ahxdate', type: 'date', width: 160 }, - { title: '付款账户', index: 'shipperaccount', width: 170 }, { title: '收款账户', index: 'ltdaccountId', width: 160 }, { title: '核销类型', index: 'ahxType', type: 'enum', enum: { '1': '预收款' }, width: 120 }, { @@ -264,6 +283,7 @@ export class ReceivableOrderComponent implements OnInit { { title: '银行类型', index: 'banktype', type: 'enum', enum: { '1': '平安', '2': '浦发' }, width: 120 }, { title: '收款类型', index: 'arvattype', type: 'enum', enum: { '1': '费用款项' }, width: 120 }, { title: '付款人', index: 'artoname', width: 200 }, + { title: '付款账户', index: 'shipperaccount', width: 170 }, { title: '结算客户', index: 'cnoName', width: 120 }, { title: '银行水单', index: 'bankreceipt', width: 200 }, { title: '创建时间', index: 'createTime', width: 180 }, diff --git a/src/app/routes/financial-management/components/recharge-record/recharge-record.component.ts b/src/app/routes/financial-management/components/recharge-record/recharge-record.component.ts index c73b8833..85e4899b 100644 --- a/src/app/routes/financial-management/components/recharge-record/recharge-record.component.ts +++ b/src/app/routes/financial-management/components/recharge-record/recharge-record.component.ts @@ -190,7 +190,8 @@ export class RechargeRecordComponent implements OnInit { rmYll: item.roleId, snglFlgCd: item.paySerialNumber2, bussType: '06', - ltdId: item.ltdId + ltdId: item.ltdId, + accountType: item.accountType }) } ] diff --git a/src/app/routes/financial-management/components/transaction-flow/transaction-flow.component.ts b/src/app/routes/financial-management/components/transaction-flow/transaction-flow.component.ts index 46af35d3..98465648 100644 --- a/src/app/routes/financial-management/components/transaction-flow/transaction-flow.component.ts +++ b/src/app/routes/financial-management/components/transaction-flow/transaction-flow.component.ts @@ -35,7 +35,7 @@ export class TransactionFlowComponent { Object.assign(requestOptions.body, { ...this.sf.value, createTime: { - start: this.sf.value.tcreateTimeime?.[0] || '', + start: this.sf.value.createTime?.[0] || '', end: this.sf.value.createTime?.[1] || '' } }); @@ -120,9 +120,9 @@ export class TransactionFlowComponent { type: 'string', title: '收支类型', enum: [ - { label: '全部', value: '部' }, - { label: '收入', value: 1 }, - { label: '支出', value: 2 } + { label: '全部', value: '' }, + { label: '收入', value: 2 }, + { label: '支出', value: 1 } ], ui: { widget: 'select', @@ -253,7 +253,8 @@ export class TransactionFlowComponent { rmYll: item.roleId, snglFlgCd: item.channelPaySn, bussType: item.tradeType === '7' ? '05' : item.tradeType === '8' ? '06' : '07', - ltdId: item.ltdId + ltdId: item.ltdId, + accountType: item.accountType }) } ] diff --git a/src/app/routes/financial-management/components/withdrawals-record/withdrawals-detail/withdrawals-detail.component.html b/src/app/routes/financial-management/components/withdrawals-record/withdrawals-detail/withdrawals-detail.component.html index 8e03e6a1..667027cd 100644 --- a/src/app/routes/financial-management/components/withdrawals-record/withdrawals-detail/withdrawals-detail.component.html +++ b/src/app/routes/financial-management/components/withdrawals-record/withdrawals-detail/withdrawals-detail.component.html @@ -54,10 +54,56 @@
- -
-
- -
-
+ + +
+
+ +
+
+ + + + +
+
+ + + + {{detail.costName}}:{{detail.price |currency}} + + + + {{item.billCode}}
+ {{item.billStatus}}
+
+ + {{item.wayBillCode}}
+ {{item.wayBillStatus}}
+
+ + {{item.driverName}}
+ {{item.driverTelephone}}
+ {{item.driverLicencePlate}}
+
+ + {{item.captainName}}
+ {{item.captainTelephone}}
+
+
+
+ +
+
+ +
+
+
+
\ No newline at end of file diff --git a/src/app/routes/financial-management/components/withdrawals-record/withdrawals-detail/withdrawals-detail.component.less b/src/app/routes/financial-management/components/withdrawals-record/withdrawals-detail/withdrawals-detail.component.less index e299b7d1..627355a5 100644 --- a/src/app/routes/financial-management/components/withdrawals-record/withdrawals-detail/withdrawals-detail.component.less +++ b/src/app/routes/financial-management/components/withdrawals-record/withdrawals-detail/withdrawals-detail.component.less @@ -5,13 +5,19 @@ border : 1px solid #dbdbdb; .ant-alert-message { - color: rgba(0, 0, 0, 0.85); + color : rgba(0, 0, 0, 0.85); font-weight: 600; - font-size: 16px; + font-size : 16px; } } .ant-form-item { margin-bottom: 15px; } + + nz-tabs-nav { + background-color: #f3f3f3; + border : 1px solid #dbdbdb; + padding-left : 18px; + } } \ No newline at end of file diff --git a/src/app/routes/financial-management/components/withdrawals-record/withdrawals-detail/withdrawals-detail.component.ts b/src/app/routes/financial-management/components/withdrawals-record/withdrawals-detail/withdrawals-detail.component.ts index c184fa93..85144954 100644 --- a/src/app/routes/financial-management/components/withdrawals-record/withdrawals-detail/withdrawals-detail.component.ts +++ b/src/app/routes/financial-management/components/withdrawals-record/withdrawals-detail/withdrawals-detail.component.ts @@ -1,5 +1,7 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, OnInit, ViewChild } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; +import { STColumn, STRequestOptions } from '@delon/abc/st'; +import { SFComponent, SFSchema } from '@delon/form'; import { FreightAccountService } from '../../../services/freight-account.service'; @Component({ @@ -8,17 +10,38 @@ import { FreightAccountService } from '../../../services/freight-account.service styleUrls: ['./withdrawals-detail.component.less'] }) export class WithdrawalsDetailComponent implements OnInit { + @ViewChild('st', { static: true }) + st!: Component; + @ViewChild('sf', { static: false }) + inputSF!: SFComponent; + columns: STColumn[] = this.initST(); + inputSearchSchema: SFSchema = this.initInputSF(); + _$expand = false; + formData: any = {}; timeLineData: any = []; + accountType = '1'; + constructor(public service: FreightAccountService, private route: ActivatedRoute) { const id = route.snapshot.params.id; + this.accountType = route.snapshot.queryParams.type; this.loadRefundDetail(id); } ngOnInit(): void {} + beforeReq = (requestOptions: STRequestOptions) => { + if (this.inputSF?.value) { + Object.assign(requestOptions.body, { + ...this.inputSF.value + }); + } + Object.assign(requestOptions.body, { refundApplicationId: this.route.snapshot.params.id }); + return requestOptions; + }; + loadRefundDetail(id: string) { this.service.request(this.service.$api_get_refund_detail, { id }).subscribe(res => { if (res) { @@ -76,11 +99,143 @@ export class WithdrawalsDetailComponent implements OnInit { rmYll: this.formData.userId, snglFlgCd: this.formData.coreSerNo, bussType: '06', - ltdId: this.formData.ltdId + ltdId: this.formData.ltdId, + accountType: this.formData.accountType }); } + /** + * 重置表单 + */ + resetInputSF() { + this.inputSF.reset(); + } + + /** + * 伸缩查询条件 + */ + expandToggle() { + this._$expand = !this._$expand; + this.inputSF?.setValue('/expand', this._$expand); + } + goBack() { history.go(-1); } + + private initInputSF(): SFSchema { + return { + properties: { + expand: { + type: 'boolean', + ui: { + hidden: true + } + }, + billHCode: { + type: 'string', + title: '支付编号', + ui: { + placeholder: '请输入' + } + }, + billHCod1e: { + type: 'string', + title: '订单号', + ui: { + placeholder: '请输入' + } + }, + billHCo1de: { + type: 'string', + title: '货源编号', + ui: { + placeholder: '请输入' + } + }, + billHC1ode: { + type: 'string', + title: '服务类型', + ui: { + widget: 'select', + placeholder: '请选择', + visibleIf: { + expand: (value: boolean) => value + } + } + }, + billHCo11de: { + type: 'string', + title: '承运司机', + ui: { + placeholder: '请输入司机姓名/手机号', + visibleIf: { + expand: (value: boolean) => value + } + } + }, + billHCo111de: { + type: 'string', + title: '车牌号', + ui: { + placeholder: '请输入', + visibleIf: { + expand: (value: boolean) => value + } + } + }, + billHC1o11de: { + type: 'string', + title: '收款人', + ui: { + placeholder: '请输入收款人姓名/手机号', + visibleIf: { + expand: (value: boolean) => value + } + } + }, + billHC1o111de: { + type: 'string', + title: '车队长收款', + ui: { + widget: 'select', + placeholder: '请选择', + visibleIf: { + expand: (value: boolean) => value + } + } + } + } + }; + } + + private initST(): STColumn[] { + return [ + { title: '支付编号', index: 'orderPaymentCode', className: 'text-left', width: 200 }, + { + title: '支付金额', + index: 'payAmount', + type: 'widget', + className: 'text-right', + 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: '服务类型', + index: 'serviceType', + className: 'text-center', + width: 150, + 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 } + ]; + } } diff --git a/src/app/routes/financial-management/components/withdrawals-record/withdrawals-record.component.ts b/src/app/routes/financial-management/components/withdrawals-record/withdrawals-record.component.ts index 8d994f80..907c9ad5 100644 --- a/src/app/routes/financial-management/components/withdrawals-record/withdrawals-record.component.ts +++ b/src/app/routes/financial-management/components/withdrawals-record/withdrawals-record.component.ts @@ -28,9 +28,9 @@ export class WithdrawalsRecordComponent { refundStatus: any = ''; msg = ''; - constructor(public service: FreightAccountService, private nzModalService: NzModalService, private router: Router) { } + constructor(public service: FreightAccountService, private nzModalService: NzModalService, private router: Router) {} - ngOnInit(): void { } + ngOnInit(): void {} beforeReq = (requestOptions: STRequestOptions) => { if (this.sf) { @@ -254,7 +254,7 @@ export class WithdrawalsRecordComponent { { title: '提现单号', index: 'refundApplyCode', width: 120 }, { title: '网络货运人', index: 'ltdName', width: 140 }, { title: '银行类型', index: 'bankTypeLabel', width: 100 }, - { title: '账户类型', index: 'bankTypeLabel', width: 100 }, + { title: '账户类型', index: 'accountTypeLabel', width: 100 }, { title: '账户名称', index: 'bankAccountName', width: 140 }, { title: '虚拟账户', index: 'virtualAccount', width: 100 }, { @@ -276,6 +276,18 @@ export class WithdrawalsRecordComponent { width: '110px', className: 'text-center', buttons: [ + { + text: '审核', + iif: item => item.refundStatus === '1', + click: item => this.auditAction(item) + }, + { + text: '详情
', + click: item => + this.router.navigate([`/financial-management/withdrawals-record/detail/${item.id}`], { + queryParams: { type: item.accountType } + }) + }, { text: '查看回单', iif: item => item.refundStatus === '3', @@ -285,17 +297,9 @@ export class WithdrawalsRecordComponent { rmYll: item.userId, snglFlgCd: item.coreSerNo, bussType: '06', - ltdId: item.ltdId + ltdId: item.ltdId, + accountType: item.accountType }) - }, - { - text: '审核', - iif: item => item.refundStatus === '1', - click: item => this.auditAction(item) - }, - { - text: '详情', - click: item => this.router.navigate([`/financial-management/withdrawals-record/detail/${item.id}`]) } ] } diff --git a/src/app/routes/financial-management/services/freight-account.service.ts b/src/app/routes/financial-management/services/freight-account.service.ts index 4cffd46f..99477de7 100644 --- a/src/app/routes/financial-management/services/freight-account.service.ts +++ b/src/app/routes/financial-management/services/freight-account.service.ts @@ -42,6 +42,8 @@ export class FreightAccountService extends ShipperBaseService { // 货主端获取账户余额交易明细 $api_get_balance_by_shipper = '/api/fcc/accountBalanceDetail/getAccountBalanceByShipperPage'; + // 运营端导出货主账户明细信息 + $api_export_shipper = '/api/fcc/accountBalance/reportShipperAccountBalanceByOperator'; // 查询订单支付申请表 $api_get_order_payment_page = '/api/fcc/billPaymentApplicationOBC/list/page'; @@ -50,6 +52,8 @@ export class FreightAccountService extends ShipperBaseService { $api_get_refund_page = '/api/fcc/refundApplicationOBC/list/page'; // 获取提现申请表详情 $api_get_refund_detail = '/api/fcc/refundApplicationOBC/get'; + // 获取提现支付详情 + $api_get_refund_detail_page = '/api/fcc/refundApplicationOBC/get/payList'; // 同意提现 $api_agree_refund = '/api/fcc/refundApplicationOBC/agreeRefund'; // 拒绝提现 diff --git a/src/app/routes/insurance-management/components/list/list.component.ts b/src/app/routes/insurance-management/components/list/list.component.ts index c2d73dd7..c6fbcbb1 100644 --- a/src/app/routes/insurance-management/components/list/list.component.ts +++ b/src/app/routes/insurance-management/components/list/list.component.ts @@ -233,7 +233,7 @@ export class insuranceManagementListComponent implements OnInit { title: '所属项目', ui: { widget: 'select', - placeholder: '请选择', + placeholder: '请先选择货主', visibleIf: { _$expand: (value: boolean) => value }, diff --git a/src/app/routes/order-management/components/bulk-detail/bulk-detail.component.html b/src/app/routes/order-management/components/bulk-detail/bulk-detail.component.html index 87429cfe..e2b95634 100644 --- a/src/app/routes/order-management/components/bulk-detail/bulk-detail.component.html +++ b/src/app/routes/order-management/components/bulk-detail/bulk-detail.component.html @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2021-12-06 20:20:26 * @LastEditors : Shiming - * @LastEditTime : 2022-03-23 14:43:34 + * @LastEditTime : 2022-03-24 14:08:55 * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail\\bulk-detail.component.html * Copyright (C) 2022 huzhenhong. All rights reserved. --> diff --git a/src/app/routes/order-management/components/bulk/bulk.component.html b/src/app/routes/order-management/components/bulk/bulk.component.html index 3a746c56..bab3a570 100644 --- a/src/app/routes/order-management/components/bulk/bulk.component.html +++ b/src/app/routes/order-management/components/bulk/bulk.component.html @@ -35,7 +35,7 @@ - + +
diff --git a/src/app/routes/order-management/components/receipts-audit/receipts-audit.component.ts b/src/app/routes/order-management/components/receipts-audit/receipts-audit.component.ts index 1f14ce54..d198a894 100644 --- a/src/app/routes/order-management/components/receipts-audit/receipts-audit.component.ts +++ b/src/app/routes/order-management/components/receipts-audit/receipts-audit.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit, ViewChild } from '@angular/core'; -import { STColumn, STComponent } from '@delon/abc/st'; +import { STColumn, STComponent, STRequestOptions } from '@delon/abc/st'; import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form'; import { ModalHelper, _HttpClient } from '@delon/theme'; import { NzModalService } from 'ng-zorro-antd/modal'; @@ -30,6 +30,7 @@ export class OrderManagementReceiptsAuditComponent implements OnInit { @ViewChild('st') private readonly st!: STComponent; @ViewChild('sf', { static: false }) sf!: SFComponent; columns: STColumn[] = []; + loading: boolean = true; resourceStatus: any; tabs = { receivedQuantity: 0, @@ -62,6 +63,34 @@ export class OrderManagementReceiptsAuditComponent implements OnInit { } }; } + beforeReq = (requestOptions: STRequestOptions) => { + const a: any = {}; + if (this.resourceStatus) { + a.auditStatus = this.resourceStatus; + } + const params: any = Object.assign({}, this.sf?.value || {}); + delete params._$expand; + if (this.sf) { + Object.assign(requestOptions.body, { + ...a, + ...params, + createTime: { + start: this.sf?.value?.createTime?.[0] || '', + end: this.sf?.value?.createTime?.[1] || '' + } + }); + } + this.loading = true; + return requestOptions; + }; + afterRes = (data: any[], rawData?: any) => { + console.log(data) + this.loading = false + return data.map(item => ({ + ...item, + // disabled: item.billStatus !== '4' + })); + }; get selectedRows() { return this.st?.list.filter(item => item.checked) || []; } @@ -120,6 +149,13 @@ export class OrderManagementReceiptsAuditComponent implements OnInit { placeholder: '最多100个单号,空号隔开' } }, + wayBillCode: { + type: 'string', + title: '运单号', + ui: { + placeholder: '最多100个运单,空号隔开' + } + }, resourceCode: { type: 'string', title: '货源编号' @@ -133,6 +169,9 @@ export class OrderManagementReceiptsAuditComponent implements OnInit { searchDebounceTime: 300, searchLoadingText: '搜索中...', allowClear: true, + visibleIf: { + _$expand: (value: boolean) => value + }, onSearch: (q: any) => { let str =q.replace(/^\s+|\s+$/g,""); if (str) { @@ -154,7 +193,7 @@ export class OrderManagementReceiptsAuditComponent implements OnInit { title: '所属项目', ui: { widget: 'select', - placeholder: '请选择', + placeholder: '请先选择货主', visibleIf: { _$expand: (value: boolean) => value }, @@ -243,19 +282,38 @@ export class OrderManagementReceiptsAuditComponent implements OnInit { } } as SFSelectWidgetSchema }, - settlementBasis: { - title: '装卸凭证', + billStatus: { + title: '运输状态', type: 'string', + default: '', ui: { widget: 'dict-select', + params: { dictKey: 'bill:status' }, containsAllLabel: true, - params: { dictKey: 'goodresource:settlement:type' }, - containAllLable: true, visibleIf: { _$expand: (value: boolean) => value } } as SFSelectWidgetSchema - } + }, + loadingDocuments: { + type: 'string', + title: '装卸货凭证', + enum:[ + {label: '全部',value: ''}, + {label: '无装卸货凭证',value: '1'}, + {label: '装卸货凭证齐全',value: '2'}, + {label: '只有装货凭证',value: '3'}, + {label: '只有卸货凭证',value: '4'}, + ], + ui: { + widget: 'select', + placeholder: '请选择', + allowClear: true, + visibleIf: { + _$expand: (value: boolean) => value + }, + } + }, }, type: 'object' }; diff --git a/src/app/routes/order-management/components/risk-detail/risk-detail.component.html b/src/app/routes/order-management/components/risk-detail/risk-detail.component.html index 5240118d..bfceb298 100644 --- a/src/app/routes/order-management/components/risk-detail/risk-detail.component.html +++ b/src/app/routes/order-management/components/risk-detail/risk-detail.component.html @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2021-12-16 10:19:08 * @LastEditors : Shiming - * @LastEditTime : 2022-03-23 19:12:19 + * @LastEditTime : 2022-03-24 14:12:14 * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\risk-detail\\risk-detail.component.html * Copyright (C) 2022 huzhenhong. All rights reserved. --> @@ -21,7 +21,7 @@ {{i?.representationsStatusLabel}} - {{i?.driverName ? i?.driverName + '/': ''}} {{i?.driverPhone ?i?.driverPhone + '/': '' }} {{i?.carId}} + {{i?.driverName ? i?.driverName + '/': ''}} {{i?.driverPhone ?i?.driverPhone + '/': '' }} {{i?.carNo}} {{i?.carCaptainName ? i?.carCaptainName+ '/' : ''}}{{i?.carCaptainPhone}} {{i?.loadTime}} {{i?.unloadTime}} diff --git a/src/app/routes/order-management/components/risk/risk.component.html b/src/app/routes/order-management/components/risk/risk.component.html index 00a56cc6..b211966d 100644 --- a/src/app/routes/order-management/components/risk/risk.component.html +++ b/src/app/routes/order-management/components/risk/risk.component.html @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2022-01-12 10:52:50 * @LastEditors : Shiming - * @LastEditTime : 2022-03-22 09:42:03 + * @LastEditTime : 2022-03-24 19:53:19 * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\risk\\risk.component.html * Copyright (C) 2022 huzhenhong. All rights reserved. --> @@ -59,13 +59,19 @@ [scroll]="{ x: '2000px' }" [data]="service.$api_get_listRiskPage" [columns]="columns" - [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }" - [res]="{ reName: { list: 'data.records', total: 'data.total' } }" + [req]="{ process: beforeReq }" + [res]="{ reName: { list: 'data.records', total: 'data.total' } , process: afterRes}" [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false" > - {{ item?.billCode }} + {{ item.billCode }} +
+ {{ item?.representationsStatusLabel }} +
+
+ {{item?.billTypeLabel}}{{item?.billTypeLabel === item?.serviceTypeLabel ? '' : item?.serviceTypeLabel}} +

创建时间:{{ item?.createTime }}

diff --git a/src/app/routes/order-management/components/risk/risk.component.ts b/src/app/routes/order-management/components/risk/risk.component.ts index 97339153..20c05ddc 100644 --- a/src/app/routes/order-management/components/risk/risk.component.ts +++ b/src/app/routes/order-management/components/risk/risk.component.ts @@ -1,7 +1,7 @@ import { registerLocaleData } from '@angular/common'; import { Router } from '@angular/router'; import { Component, OnInit, ViewChild } from '@angular/core'; -import { STColumn, STComponent } from '@delon/abc/st'; +import { STColumn, STComponent, STRequestOptions } from '@delon/abc/st'; import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form'; import { ModalHelper, _HttpClient } from '@delon/theme'; import { ShipperBaseService } from '@shared'; @@ -21,6 +21,7 @@ export class OrderManagementRiskComponent implements OnInit { schema: SFSchema = {}; schemaView: SFSchema = {}; auditMany = false; + loading: boolean = true; auditId: any; auditIdR: any; isVisibleRE = false; @@ -47,14 +48,6 @@ export class OrderManagementRiskComponent implements OnInit { * 查询参数 */ get reqParams() { - // const a:any = {}; - // if(this.resourceStatus) { - // a.representationsStatus = this.resourceStatus - // } - // return { - // ...a, - // ...this.sf?.value, - // }; const a: any = {}; if (this.resourceStatus) { a.representationsStatus = this.resourceStatus @@ -70,6 +63,34 @@ export class OrderManagementRiskComponent implements OnInit { }, }; } + beforeReq = (requestOptions: STRequestOptions) => { + const a: any = {}; + if (this.resourceStatus) { + a.representationsStatus = this.resourceStatus + } + const params: any = Object.assign({}, this.sf?.value || {}); + delete params._$expand; + if (this.sf) { + Object.assign(requestOptions.body, { + ...a, + ...params, + createTime: { + start: this.sf?.value?.createTime?.[0] || '', + end: this.sf?.value?.createTime?.[1] || '', + }, + }); + } + this.loading = true; + return requestOptions; + }; + afterRes = (data: any[], rawData?: any) => { + console.log(data) + this.loading = false + return data.map(item => ({ + ...item, + disabled: item.auditStatus !== '1' + })); + }; search() { this.st?.load(1); this.getGoodsSourceStatistical() diff --git a/src/app/routes/order-management/components/vehicle/vehicle.component.html b/src/app/routes/order-management/components/vehicle/vehicle.component.html index a32bc940..cc8d7995 100644 --- a/src/app/routes/order-management/components/vehicle/vehicle.component.html +++ b/src/app/routes/order-management/components/vehicle/vehicle.component.html @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2022-01-12 10:52:50 * @LastEditors : Shiming - * @LastEditTime : 2022-03-23 10:28:41 + * @LastEditTime : 2022-03-28 11:10:20 * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle\\vehicle.component.html * Copyright (C) 2022 huzhenhong. All rights reserved. --> @@ -209,7 +209,7 @@ [acl-ability]="['ORDER-VEHICLE-batchSignWholeOrder']"> 批量签收 - +
diff --git a/src/app/routes/order-management/components/vehicle/vehicle.component.ts b/src/app/routes/order-management/components/vehicle/vehicle.component.ts index 949afb99..37d2336c 100644 --- a/src/app/routes/order-management/components/vehicle/vehicle.component.ts +++ b/src/app/routes/order-management/components/vehicle/vehicle.component.ts @@ -29,6 +29,7 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme isVisibleEvaluate = false; isVisible = false; loading: boolean = true; + paramsList: any; changeId: any; // 主页面查看运费变更记录id - 用于运费变更记录 changeViewId: any; // 查看运费变更记录id - 用于查看 ViewCause: any; // 变更运费查看数据 @@ -97,36 +98,25 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme if (this.resourceStatus) { a.billStatus = this.resourceStatus; } - const params: any = Object.assign({}, this.sf?.value || {}); + const params: any = Object.assign({}, this.sf?.value || this.paramsList); delete params._$expand; return { ...a, ...params, - createTime: { - start: this.sf?.value?.createTime?.[0] || '', - end: this.sf?.value?.createTime?.[1] || '' - } }; } beforeReq = (requestOptions: STRequestOptions) => { const a: any = {}; if (this.resourceStatus) { a.billStatus = this.resourceStatus; - Object.assign(requestOptions.body, { - ...a - }); } - const params: any = Object.assign({}, this.sf?.value || {}); + const params: any = Object.assign({}, this.sf?.value || this.paramsList); delete params._$expand; - if (this.sf) { + this.paramsList = params Object.assign(requestOptions.body, { - ...params, - createTime: { - start: this.sf?.value?.createTime?.[0] || '', - end: this.sf?.value?.createTime?.[1] || '' - } + ...a, + ...this.paramsList, }); - } this.loading = true; return requestOptions; }; @@ -203,6 +193,13 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme placeholder: '最多100个单号,空号隔开' } }, + wayBillCode: { + type: 'string', + title: '运单号', + ui: { + placeholder: '最多100个单号,空号隔开', + } + }, resourceCode: { type: 'string', title: '货源编号' @@ -237,7 +234,7 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme title: '所属项目', ui: { widget: 'select', - placeholder: '请选择' + placeholder: '请先选择货主', } as SFSelectWidgetSchema }, loadingPlace: { @@ -275,14 +272,19 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme containsAllLable: true } as SFSelectWidgetSchema }, + // createTime: { + // title: '创建时间', + // type: 'string', + // ui: { + // widget: 'date', + // mode: 'range', + // format: 'yyyy-MM-dd' + // } as SFDateWidgetSchema + // }, createTime: { - title: '创建时间', type: 'string', - ui: { - widget: 'date', - mode: 'range', - format: 'yyyy-MM-dd' - } as SFDateWidgetSchema + title: '创建时间', + ui: { widget: 'sl-from-to', type: 'date', format: 'yyyy-MM-dd' } as SFDateWidgetSchema, }, riskStatus: { type: 'string', @@ -443,7 +445,7 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme { text: '取消订单', click: _record => this.cancellation(_record), - iif: item => item.billStatus !== '1' && item.billStatus !== '6' && item.overallPaymentStatus !== '2', + iif: item => item.billStatus !== '6' && item.overallPaymentStatus !== '2', acl: { ability: ['ORDER-VEHICLE-cancelAnOrder'] } }, { @@ -571,7 +573,7 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme this.resourceStatus = e; this.initST(); setTimeout(() => { - this.st.load(1); + this.st.load(); }, 500); } /** @@ -855,4 +857,12 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme } }); } + // 导出 + exprot() { + this.service.request(this.service.$api_get_asyncExportWholeList, this.reqParams).subscribe((res: any) => { + if (res) { + this.service.msgSrv.success('导出成功,请去下载中心下载!'); + } + }); + } } diff --git a/src/app/routes/order-management/modal/audit/appeal/appeal.component.html b/src/app/routes/order-management/modal/audit/appeal/appeal.component.html new file mode 100644 index 00000000..6e717730 --- /dev/null +++ b/src/app/routes/order-management/modal/audit/appeal/appeal.component.html @@ -0,0 +1,48 @@ + + +
+ + + {{ dataList?.representationsStatusLabel }} + + +
+
+ {{ item?.complianceName }} +
+
+
+ + {{ dataList?.representationsCause }} + + + {{ dataList?.representationsDescribe }} + + +
+ + +
+
+
+
+ diff --git a/src/app/routes/order-management/modal/audit/appeal/appeal.component.ts b/src/app/routes/order-management/modal/audit/appeal/appeal.component.ts new file mode 100644 index 00000000..451a3796 --- /dev/null +++ b/src/app/routes/order-management/modal/audit/appeal/appeal.component.ts @@ -0,0 +1,123 @@ +import { Component, OnInit, ViewChild } from '@angular/core'; +import { apiConf } from '@conf/api.conf'; +import { + SFComponent, + SFCustomWidgetSchema, + SFNumberWidgetSchema, + SFRadioWidgetSchema, + SFSchema, + SFSelectWidgetSchema, + SFTextareaWidgetSchema, + SFUISchema, + SFUploadWidgetSchema +} from '@delon/form'; +import { _HttpClient } from '@delon/theme'; +import { NzMessageService } from 'ng-zorro-antd/message'; +import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal'; +import { Observable, Observer } from 'rxjs'; +import { OrderManagementService } from '../../../services/order-management.service'; + +@Component({ + selector: 'app-order-management-appeal', + templateUrl: './appeal.component.html' +}) +export class OneCarOrderAppealComponent implements OnInit { + i: any; + dataList: any; + constructor( + private modalRef: NzModalRef, + private modal: NzModalService, + private msgSrv: NzMessageService, + public http: _HttpClient, + public service: OrderManagementService + ) {} + + ngOnInit(): void { + this.initDate(); + } + // initSF() { + // this.schema = { + // properties: { + // abnormalCause: { + // type: 'string', + // title: '异常原因', + // default: this.i.abnormalCause, + // readOnly: true, + // ui: { + // widget: 'textarea', + // autosize: { minRows: 4, maxRows: 6 } + // } as SFTextareaWidgetSchema + // }, + // representationsCause: { + // type: 'string', + // title: '申诉原因', + // ui: { + // widget: 'dict-select', + // params: { dictKey: 'bill:representation:reason' }, + // containsAllLabel: false, + // placeholder: '请选择', + // errors: { required: '请选择' } + // } + // }, + // representationsDescribe: { + // type: 'string', + // title: '申诉描述', + // maxLength: 100, + // ui: { + // widget: 'textarea', + // autosize: { minRows: 4, maxRows: 6 } + // } as SFTextareaWidgetSchema + // }, + // fileArr: { + // type: 'string', + // title: '上传凭证', + // ui: { + // action: apiConf.fileUpload, + // accept: 'image/png,image/jpeg,image/jpg', + // limit: 5, + // limitFileCount: 5, + // resReName: 'data.fullFilePath', + // urlReName: 'data.fullFilePath', + // widget: 'upload', + // descriptionI18n: '不超过5张,单张大小不超过5M,支持.jpg、.jpeg和 .png格式', + // name: 'multipartFile', + // multiple: true, + // listType: 'picture-card', + // beforeUpload: (file: any, _fileList: any) => { + // return new Observable((observer: Observer) => { + // const isLt2M = file.size / 1024 / 1024 < 5; + // if (!isLt2M) { + // this.service.msgSrv.warning('图片大小超过5M!'); + // observer.complete(); + // return; + // } + // observer.next(isLt2M); + // observer.complete(); + // }); + // } + // } as SFUploadWidgetSchema + // } + // }, + // required: ['representationsCause', 'representationsDescribe'] + // }; + // this.ui = { + // '*': { + // spanLabelFixed: 100, + // grid: { span: 20 } + // } + // }; + // } + initDate(): void { + console.log(this.i); + this.service.request(this.service.$api_get_getOrderComplaintDetail, { id: this.i?.id }).subscribe((res: any) => { + if (res) { + console.log(res); + this.dataList = res + } + }); + } + + close(): void { + this.modalRef.destroy(); + } +} diff --git a/src/app/routes/order-management/modal/vehicle/modify-captain/modify-captain.component.ts b/src/app/routes/order-management/modal/vehicle/modify-captain/modify-captain.component.ts index 78c7517e..845db74c 100644 --- a/src/app/routes/order-management/modal/vehicle/modify-captain/modify-captain.component.ts +++ b/src/app/routes/order-management/modal/vehicle/modify-captain/modify-captain.component.ts @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2021-12-30 14:45:39 * @LastEditors : Shiming - * @LastEditTime : 2022-01-18 17:23:11 + * @LastEditTime : 2022-03-24 10:28:48 * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\modify-captain\\modify-captain.component.ts * Copyright (C) 2022 huzhenhong. All rights reserved. */ @@ -96,7 +96,7 @@ export class VehicleModifyCaptainComponent implements OnInit { console.log(this.bankData); const params = { billIds: this.data?.ids, - carCaptainId: value.id, + carCaptainId: value.appUserId, bankData: this.bankData }; this.service.request(this.service.$api_get_updateCarCaptainBatch, params).subscribe((res: any) => { diff --git a/src/app/routes/order-management/modal/vehicle/update-freight/update-freight.component.html b/src/app/routes/order-management/modal/vehicle/update-freight/update-freight.component.html index b4a58ddb..04a93740 100644 --- a/src/app/routes/order-management/modal/vehicle/update-freight/update-freight.component.html +++ b/src/app/routes/order-management/modal/vehicle/update-freight/update-freight.component.html @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2021-12-15 13:17:42 * @LastEditors : Shiming - * @LastEditTime : 2022-02-24 10:47:39 + * @LastEditTime : 2022-03-24 19:17:58 * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\update-freight\\update-freight.component.html * Copyright (C) 2022 huzhenhong. All rights reserved. --> @@ -20,7 +20,7 @@

-  确认已阅读并知晓 《变更协议》 +  确认已阅读并知晓 《变更协议》

diff --git a/src/app/routes/order-management/modal/vehicle/update-freight/update-freight.component.ts b/src/app/routes/order-management/modal/vehicle/update-freight/update-freight.component.ts index 82cd03ef..347247e1 100644 --- a/src/app/routes/order-management/modal/vehicle/update-freight/update-freight.component.ts +++ b/src/app/routes/order-management/modal/vehicle/update-freight/update-freight.component.ts @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2021-12-15 13:17:42 * @LastEditors : Shiming - * @LastEditTime : 2022-02-23 14:25:45 + * @LastEditTime : 2022-03-24 19:17:10 * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\update-freight\\update-freight.component.ts * Copyright (C) 2022 huzhenhong. All rights reserved. */ @@ -30,12 +30,16 @@ export class VehicleUpdateFreightComponent implements OnInit { @Input() data: any; + dataJSON: any; + calculateSub!: Subscription; constructor(private modal: NzModalRef, private msgSrv: NzMessageService, public service: OrderManagementService) {} ngOnInit(): void { console.log(this.data) + this.dataJSON = JSON.stringify(this.data) + console.log(this.dataJSON) this.initSF(this.data); } initSF(data: any) { diff --git a/src/app/routes/order-management/order-management.module.ts b/src/app/routes/order-management/order-management.module.ts index b71b0fda..87ceaafd 100644 --- a/src/app/routes/order-management/order-management.module.ts +++ b/src/app/routes/order-management/order-management.module.ts @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2022-01-06 09:24:00 * @LastEditors : Shiming - * @LastEditTime : 2022-02-22 13:55:06 + * @LastEditTime : 2022-03-25 14:10:36 * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\order-management.module.ts * Copyright (C) 2022 huzhenhong. All rights reserved. */ @@ -24,6 +24,7 @@ import { OrderManagementVehicleDetailChangeComponent } from './components/vehicl import { OrderManagementVehicleDetailComponent } from './components/vehicle-detail/vehicle-detail.component'; import { OrderManagementVehicleComponent } from './components/vehicle/vehicle.component'; +import { OneCarOrderAppealComponent } from './modal/audit/appeal/appeal.component'; import { orderManagementVoucherViewComponent } from './modal/audit/voucher-view/voucher-view.component'; import { ConfirReceiptComponent } from './modal/bulk/confir-receipt/confir-receipt.component'; import { UpdateFreightComponent } from './modal/bulk/update-freight/update-freight.component'; @@ -64,7 +65,8 @@ const COMPONENTS: Type[] = [ orderManagementVoucherViewComponent, OrderManagementComplianceAuditComponent, OneCarOrderCancelConfirmComponent, - OneCarOrderViewtrackComponent + OneCarOrderViewtrackComponent, + OneCarOrderAppealComponent ]; @NgModule({ diff --git a/src/app/routes/order-management/services/order-management.service.ts b/src/app/routes/order-management/services/order-management.service.ts index 68e977d5..4955b61e 100644 --- a/src/app/routes/order-management/services/order-management.service.ts +++ b/src/app/routes/order-management/services/order-management.service.ts @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2021-12-03 15:31:52 * @LastEditors : Shiming - * @LastEditTime : 2022-03-22 17:29:07 + * @LastEditTime : 2022-03-28 11:07:48 * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\services\\order-management.service.ts * Copyright (C) 2022 huzhenhong. All rights reserved. */ @@ -174,6 +174,14 @@ export class OrderManagementService extends ShipperBaseService { $api_get_getTrajectory = `/api/sdc/billShipper/getTrajectoryByBillId`; // 获取订单司机轨迹 $api_get_getAppDriverPosition = `/api/sdc/billShipper/getAppDriverPosition`; + // 查看申述记录 + $api_get_getOrderComplaintDetail = `/api/sdc/billOperate/getOrderComplaintDetail`; + + + // 异步导出运营后台大宗订单列表 + $api_get_asyncExportBulkList = `/api/sdc/billOperate/asyncExportBulkList`; + // 异步导出运营后台整车订单列表 + $api_get_asyncExportWholeList = `/api/sdc/billOperate/asyncExportWholeList`; /** * 根据企业ID,获取企业历史网络货运人 * @returns diff --git a/src/app/routes/partner/account-management/components/account-detail/account-detail.component.html b/src/app/routes/partner/account-management/components/account-detail/account-detail.component.html index 47e81e17..b232905e 100644 --- a/src/app/routes/partner/account-management/components/account-detail/account-detail.component.html +++ b/src/app/routes/partner/account-management/components/account-detail/account-detail.component.html @@ -11,13 +11,13 @@ {{headerTotalInfo?.ltdName}} - {{headerTotalInfo?.allAmount |currency}} + {{headerTotalInfo?.allAmount |currency}} - {{headerTotalInfo?.incomeAmount |currency}} + {{headerTotalInfo?.incomeAmount |currency}} - {{headerTotalInfo?.payAmount |currency}} + {{headerTotalInfo?.payAmount |currency}} diff --git a/src/app/routes/partner/account-management/components/list/list.component.ts b/src/app/routes/partner/account-management/components/list/list.component.ts index 1a12dd8c..3d98844e 100644 --- a/src/app/routes/partner/account-management/components/list/list.component.ts +++ b/src/app/routes/partner/account-management/components/list/list.component.ts @@ -59,7 +59,7 @@ export class PartnerAccountManagementListComponent implements OnInit { */ initST() { this.columns = [ - { title: '合伙人名称', index: 'userName', className: 'text-center', width: 250 }, + { title: '合伙人名称', index: 'name', className: 'text-center', width: 250 }, { title: '手机号', index: 'phone', className: 'text-center', width: 200 }, { title: '账户总额(元)', index: 'allBalance', className: 'text-right', sort: true, width: 150, type: 'currency', diff --git a/src/app/routes/partner/account-management/components/recorded-detail/recorded-detail.component.html b/src/app/routes/partner/account-management/components/recorded-detail/recorded-detail.component.html index 0dc738c1..218de752 100644 --- a/src/app/routes/partner/account-management/components/recorded-detail/recorded-detail.component.html +++ b/src/app/routes/partner/account-management/components/recorded-detail/recorded-detail.component.html @@ -8,23 +8,27 @@ - {{summaryObj?.company}} + {{summaryObj?.taxno}} - {{summaryObj?.totalRebate |currency}} + {{(summaryObj?.totalRebate?summaryObj?.totalRebate: 0 )|currency :' + '}} - {{summaryObj?.totalRebate |currency}} + {{(summaryObj?.recordedAmount?summaryObj?.recordedAmount:0 + )|currency:' '}} - {{summaryObj?.taxPersonalSum |currency}} + {{(summaryObj?.taxPersonalSum?summaryObj?.taxPersonalSum:0 + )|currency:' '}} - {{summaryObj?.waitRecordedAmount |currency}} + {{(summaryObj?.waitRecordedAmount?summaryObj?.waitRecordedAmount:0) + |currency:' '}} - {{summaryObj?.name}} + {{summaryObj?.ltdName}} @@ -43,11 +47,11 @@ @@ -55,8 +59,8 @@
- {{detailRecord?.ltdName}} - {{detailRecord?.totalRebate |currency: ' '}} + {{detailRecord?.ltdName}} + {{detailRecord?.totalRebate |currency: ' '}}
diff --git a/src/app/routes/partner/account-management/components/recorded-detail/recorded-detail.component.ts b/src/app/routes/partner/account-management/components/recorded-detail/recorded-detail.component.ts index f6bc1b47..e7420c8c 100644 --- a/src/app/routes/partner/account-management/components/recorded-detail/recorded-detail.component.ts +++ b/src/app/routes/partner/account-management/components/recorded-detail/recorded-detail.component.ts @@ -19,6 +19,12 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit { taxno: '' }; + footerSummary = { + total: 0, + income: 0, + spending: 0 + } + detailRecord: any = {}; url = `/user`; @@ -56,8 +62,7 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit { initSF() { this.schema = { properties: { - - abnormalCause: { + ltdName: { title: '网络货运人', type: 'string', ui: { @@ -78,7 +83,7 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit { { title: '网络货运人', index: 'ltdName', className: 'text-center', width: 200 }, { title: '银行类型', render: 'bankTypeLabel', className: 'text-center', width: 150 }, { title: '虚拟账户', render: 'fictitiousAccount', className: 'text-center', width: 200 }, - { title: '返佣总额(元)', index: 'totalRebate', className: 'text-center', width: 120, type: 'currency' }, + { title: '返佣总额(元)', index: 'totalRebate', className: 'text-center', width: 180, type: 'currency' }, { title: '已入账金额(元)', index: 'recordedAmount', className: 'text-center', width: 180, type: 'currency' }, { title: '代缴个税(元)', index: 'taxPersonalSum', className: 'text-center', width: 180, type: 'currency' }, { title: '待入账金额(元)', index: 'waitRecordedAmount', className: 'text-right', width: 180, type: 'currency' }, @@ -146,7 +151,7 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit { * @param record 当前行 */ viewBookedRecord(record: any) { - window.open(location.origin + `#/partner/recorded/record?ltdId=${record?.ltdId}&userId=${record?.userId}&userIdLabel=${record?.banktypeLabel}`); + window.open(location.origin + `#/partner/recorded/record?ltdId=${record?.ltdId}`); } /** @@ -157,6 +162,7 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit { this.billDetailColumns = []; this.showBillDetail = true; this.initBillDetailST(); + this.detailRecord = record; this.getBillDetail(record?.ltdId); } @@ -170,6 +176,7 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit { handleCancel() { this.showBillDetail = false; + this.detailRecord = {}; } goBack() { diff --git a/src/app/routes/partner/account-management/components/withdrawals-record/withdrawals-detail/withdrawals-detail.component.ts b/src/app/routes/partner/account-management/components/withdrawals-record/withdrawals-detail/withdrawals-detail.component.ts index 95657e1e..baf83686 100644 --- a/src/app/routes/partner/account-management/components/withdrawals-record/withdrawals-detail/withdrawals-detail.component.ts +++ b/src/app/routes/partner/account-management/components/withdrawals-record/withdrawals-detail/withdrawals-detail.component.ts @@ -2,7 +2,6 @@ import { Component, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { FreightAccountService } from 'src/app/routes/financial-management/services/freight-account.service'; - @Component({ selector: 'app-partner-account-management-withdrawals-detail', templateUrl: './withdrawals-detail.component.html', @@ -18,7 +17,7 @@ export class PartnerAccountManagementWithdralDetailComponent implements OnInit { this.loadRefundDetail(id); } - ngOnInit(): void { } + ngOnInit(): void {} loadRefundDetail(id: string) { this.service.request(this.service.$api_get_refund_detail, { id }).subscribe(res => { @@ -77,7 +76,8 @@ export class PartnerAccountManagementWithdralDetailComponent implements OnInit { rmYll: this.formData.userId, snglFlgCd: this.formData.coreSerNo, bussType: '06', - ltdId: this.formData.ltdId + ltdId: this.formData.ltdId, + accountType: this.formData.accountType }); } diff --git a/src/app/routes/partner/account-management/components/withdrawals-record/withdrawals-record.component.ts b/src/app/routes/partner/account-management/components/withdrawals-record/withdrawals-record.component.ts index 4bb0a0d9..ad7c8ead 100644 --- a/src/app/routes/partner/account-management/components/withdrawals-record/withdrawals-record.component.ts +++ b/src/app/routes/partner/account-management/components/withdrawals-record/withdrawals-record.component.ts @@ -311,7 +311,8 @@ export class PartnerAccountManagementWithdrawalsRecordComponent implements OnIni rmYll: item.userId, snglFlgCd: item.coreSerNo, bussType: '06', - ltdId: item.ltdId + ltdId: item.ltdId, + accountType: item.accountType }) }, { diff --git a/src/app/routes/partner/partner-list/components/add-etp-partner/add-etp-partner.component.html b/src/app/routes/partner/partner-list/components/add-etp-partner/add-etp-partner.component.html index 4df4ab9b..bd95c61e 100644 --- a/src/app/routes/partner/partner-list/components/add-etp-partner/add-etp-partner.component.html +++ b/src/app/routes/partner/partner-list/components/add-etp-partner/add-etp-partner.component.html @@ -1,4 +1,10 @@ - + + + + + diff --git a/src/app/routes/partner/partner-list/components/add-etp-partner/add-etp-partner.component.ts b/src/app/routes/partner/partner-list/components/add-etp-partner/add-etp-partner.component.ts index 8ad008d2..14efa97f 100644 --- a/src/app/routes/partner/partner-list/components/add-etp-partner/add-etp-partner.component.ts +++ b/src/app/routes/partner/partner-list/components/add-etp-partner/add-etp-partner.component.ts @@ -11,7 +11,7 @@ import { } from '@delon/form'; import { NzTreeNode } from 'ng-zorro-antd/tree'; import { NzUploadFile } from 'ng-zorro-antd/upload'; -import { of } from 'rxjs'; +import { of, Subscription } from 'rxjs'; import { map } from 'rxjs/operators'; import { PartnerListService } from '../../services/partner-list.service'; @@ -64,6 +64,9 @@ export class AddEtpPartnerComponent { } }; + getIdentityInfoSub = new Subscription(); + loadingIdentityInfoSub = false; + constructor(public service: PartnerListService) {} submitForm() { @@ -426,7 +429,28 @@ export class AddEtpPartnerComponent { ui: { grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, placeholder: '请输入企业管理员手机号', - errors: { required: '请输入企业管理员手机号', format: '手机号格式错误' } + errors: { required: '请输入企业管理员手机号', format: '手机号格式错误' }, + change: (mobile: any) => { + // 根据手机号获取实名信息 + if (mobile?.length === 11) { + if (this.loadingIdentityInfoSub) { + this.getIdentityInfoSub.unsubscribe(); + } + this.loadingIdentityInfoSub = true; + this.getIdentityInfoSub = this.service.request(this.service.$api_get_identityInfo_by_mobile, { mobile }).subscribe( + res => { + if (res) { + this.setInfo(res); + this.sf.setValue('/adminUserInfo/id', res.id); + this.sf.setValue('/adminUserInfo/userId', res.userId); + } + this.loadingIdentityInfoSub = false; + }, + _ => {}, + () => (this.loadingIdentityInfoSub = false) + ); + } + } } }, // 企业管理员信息 @@ -441,6 +465,8 @@ export class AddEtpPartnerComponent { }, default: true }, + id: { title: '', type: 'string', ui: { hidden: true } }, + userId: { title: '', type: 'string', ui: { hidden: true } }, certificatePhotoFront: { title: '', type: 'string', ui: { hidden: true } }, certificatePhotoBack: { title: '', type: 'string', ui: { hidden: true } }, certificatePhotoFrontWatermark: { @@ -589,4 +615,52 @@ export class AddEtpPartnerComponent { ] }; } + + private setInfo(info: any) { + if (info.name) { + this.sf.setValue('/adminUserInfo/name', info.name); + } + if (info.certificatePhotoFront) { + this.sf.setValue('/adminUserInfo/certificatePhotoFront', info.certificatePhotoFront); + } + if (info.certificatePhotoFrontWatermark) { + console.log(this.sf.getProperty('/adminUserInfo/certificatePhotoFrontWatermark')); + + this.sf.setValue('/adminUserInfo/certificatePhotoFrontWatermark', [ + { + uid: -1, + name: '文件', + status: 'done', + url: info.certificatePhotoFrontWatermark, + response: info.certificatePhotoFrontWatermark + } + ]); + } + if (info.certificatePhotoBack) { + this.sf.setValue('/adminUserInfo/certificatePhotoBack', info.certificatePhotoBack); + } + if (info.certificatePhotoBackWatermark) { + this.sf.setValue('/adminUserInfo/certificatePhotoBackWatermark', [ + { + uid: -1, + name: '文件', + status: 'done', + url: info.certificatePhotoBackWatermark, + response: info.certificatePhotoBackWatermark + } + ]); + } + if (info.certificateNumber) { + this.sf.setValue('/adminUserInfo/certificateNumber', info.certificateNumber); + } + if (info.validStartTime) { + this.sf.setValue('/adminUserInfo/validStartTime', info.validStartTime); + } + if (info.validEndTime) { + this.sf.setValue('/adminUserInfo/validEndTime', info.validEndTime); + this.sf.setValue('/adminUserInfo/_isLoingDate', false); + } else { + this.sf.setValue('/adminUserInfo/_isLoingDate', true); + } + } } diff --git a/src/app/routes/partner/partner-list/components/add-personal-partner/add-personal-partner.component.html b/src/app/routes/partner/partner-list/components/add-personal-partner/add-personal-partner.component.html index cb94b51b..7a071adc 100644 --- a/src/app/routes/partner/partner-list/components/add-personal-partner/add-personal-partner.component.html +++ b/src/app/routes/partner/partner-list/components/add-personal-partner/add-personal-partner.component.html @@ -1,4 +1,10 @@ - + + + + + @@ -36,7 +42,8 @@
- +
-
+
\ No newline at end of file diff --git a/src/app/routes/partner/partner-list/components/add-personal-partner/add-personal-partner.component.ts b/src/app/routes/partner/partner-list/components/add-personal-partner/add-personal-partner.component.ts index eca02366..d21416e3 100644 --- a/src/app/routes/partner/partner-list/components/add-personal-partner/add-personal-partner.component.ts +++ b/src/app/routes/partner/partner-list/components/add-personal-partner/add-personal-partner.component.ts @@ -12,7 +12,7 @@ import { } from '@delon/form'; import { NzTreeNode } from 'ng-zorro-antd/tree'; import { NzUploadFile } from 'ng-zorro-antd/upload'; -import { of } from 'rxjs'; +import { of, Subscription } from 'rxjs'; import { map } from 'rxjs/operators'; import { PartnerListService } from '../../services/partner-list.service'; @@ -65,6 +65,9 @@ export class AddPersonalPartnerComponent { } }; + getIdentityInfoSub = new Subscription(); + loadingIdentityInfoSub = false; + constructor(private router: Router, public service: PartnerListService) {} submitForm() { @@ -156,7 +159,28 @@ export class AddPersonalPartnerComponent { ui: { grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, placeholder: '请输入手机号', - errors: { required: '请输入手机号', format: '手机号格式错误' } + errors: { required: '请输入手机号', format: '手机号格式错误' }, + change: (mobile: any) => { + // 根据手机号获取实名信息 + if (mobile?.length === 11) { + if (this.loadingIdentityInfoSub) { + this.getIdentityInfoSub.unsubscribe(); + } + this.loadingIdentityInfoSub = true; + this.getIdentityInfoSub = this.service.request(this.service.$api_get_identityInfo_by_mobile, { mobile }).subscribe( + res => { + if (res) { + this.setInfo(res); + this.sf.setValue('/adminUserInfo/id', res.id); + this.sf.setValue('/adminUserInfo/userId', res.userId); + } + this.loadingIdentityInfoSub = false; + }, + _ => {}, + () => (this.loadingIdentityInfoSub = false) + ); + } + } } }, // 合伙人信息 @@ -172,6 +196,8 @@ export class AddPersonalPartnerComponent { default: true }, certificatePhotoFront: { title: '', type: 'string', ui: { hidden: true } }, + id: { title: '', type: 'string', ui: { hidden: true } }, + userId: { title: '', type: 'string', ui: { hidden: true } }, certificatePhotoBack: { title: '', type: 'string', ui: { hidden: true } }, certificateType: { title: '', type: 'string', ui: { hidden: true }, default: 0 }, certificatePhotoFrontWatermark: { @@ -311,4 +337,52 @@ export class AddPersonalPartnerComponent { required: ['cityCodesList', 'invitationCode'] }; } + + private setInfo(info: any) { + if (info.name) { + this.sf.setValue('/adminUserInfo/name', info.name); + } + if (info.certificatePhotoFront) { + this.sf.setValue('/adminUserInfo/certificatePhotoFront', info.certificatePhotoFront); + } + if (info.certificatePhotoFrontWatermark) { + console.log(this.sf.getProperty('/adminUserInfo/certificatePhotoFrontWatermark')); + + this.sf.setValue('/adminUserInfo/certificatePhotoFrontWatermark', [ + { + uid: -1, + name: '文件', + status: 'done', + url: info.certificatePhotoFrontWatermark, + response: info.certificatePhotoFrontWatermark + } + ]); + } + if (info.certificatePhotoBack) { + this.sf.setValue('/adminUserInfo/certificatePhotoBack', info.certificatePhotoBack); + } + if (info.certificatePhotoBackWatermark) { + this.sf.setValue('/adminUserInfo/certificatePhotoBackWatermark', [ + { + uid: -1, + name: '文件', + status: 'done', + url: info.certificatePhotoBackWatermark, + response: info.certificatePhotoBackWatermark + } + ]); + } + if (info.certificateNumber) { + this.sf.setValue('/adminUserInfo/certificateNumber', info.certificateNumber); + } + if (info.validStartTime) { + this.sf.setValue('/adminUserInfo/validStartTime', info.validStartTime); + } + if (info.validEndTime) { + this.sf.setValue('/adminUserInfo/validEndTime', info.validEndTime); + this.sf.setValue('/adminUserInfo/_isLoingDate', false); + } else { + this.sf.setValue('/adminUserInfo/_isLoingDate', true); + } + } } diff --git a/src/app/routes/partner/partner-list/components/index/partner-list.component.html b/src/app/routes/partner/partner-list/components/index/partner-list.component.html index 4d21c024..ff6f4383 100644 --- a/src/app/routes/partner/partner-list/components/index/partner-list.component.html +++ b/src/app/routes/partner/partner-list/components/index/partner-list.component.html @@ -33,7 +33,7 @@
- {{selectItem?.enterpriseName}} + {{selectItem?.enterpriseName || selectItem?.contactName}} @@ -47,28 +47,29 @@
- 深圳某某有限公司 - 张三/13999999999 + {{selectItem?.enterpriseName || selectItem?.contactName}} + {{selectItem?.channelId}} - + - +

已选(0)

+ ]" [req]="{ process: beforeReq,params:{effectiveStatus:2 ,newPartnerId:selectItem.id} }" + [loading]="service.http.loading" [page]="{show:false}" (change)="stChange($event)">
- - - + + +
diff --git a/src/app/routes/partner/partner-list/components/index/partner-list.component.ts b/src/app/routes/partner/partner-list/components/index/partner-list.component.ts index 5b5c457e..2e47723a 100644 --- a/src/app/routes/partner/partner-list/components/index/partner-list.component.ts +++ b/src/app/routes/partner/partner-list/components/index/partner-list.component.ts @@ -31,6 +31,8 @@ export class PartnerListComponent { editCannel: any; customers: any[] = []; cannels: any[] = []; + selectedRows: any[] = []; + cannelItem: any = { channelId: null, effectiveNode: 1, enterpriseIdList: [], remark: '' }; selectItem: any = {}; @@ -49,7 +51,7 @@ export class PartnerListComponent { return requestOptions; }; - loadSelectOptions(){ + loadSelectOptions() { this.service.getRebateConfig().subscribe(res => { if (res) { this.customers = res; @@ -57,7 +59,7 @@ export class PartnerListComponent { }); this.service.getChannel().subscribe(res => { if (res) { - this.customers = res; + this.cannels = res; } }); } @@ -66,13 +68,14 @@ export class PartnerListComponent { const modal = this.nzModalService.create({ nzTitle: '审核', nzContent: PartnerAuditModalComponent, - nzComponentParams: { info: { ...item, enterpriseName: item.enterpriseName || item.contactName } }, + nzComponentParams: { info: { ...item, enterpriseName: item.enterpriseName || item.contactName }, sourcePage: '合伙人审核列表' }, nzFooter: null }); } editTemplateAction(item: any) { this.selectItem = item; + this.templateId = item.templateId || null; const modal = this.nzModalService.create({ nzTitle: '修改返佣模板', nzContent: this.editTemplate, @@ -87,7 +90,7 @@ export class PartnerListComponent { }); } - confirmEditTemplate() { + private confirmEditTemplate() { const modal = this.nzModalService.confirm({ nzTitle: '确定要修改返佣模板吗?', nzOnOk: () => { @@ -107,15 +110,39 @@ export class PartnerListComponent { }); } + stChange(e: STChange): void { + switch (e.type) { + case 'checkbox': + this.selectedRows = e.checkbox!; + break; + } + } + editCannelAction(item: any) { this.selectItem = item; - const modal = this.nzModalService.create({ - nzTitle: '修改渠道销售', - nzWidth: 650, - nzContent: this.editCannel, - nzOnOk: () => { - this.confirmEditCannel(item); - return false; + this.cannelItem = { channelId: null, effectiveNode: 1, enterpriseIdList: [], remark: '' }; + this.selectedRows = []; + // 校验合伙人是否可修改渠道销售 true:可以修改 false:不可以修改 + this.service.request(this.service.$api_check_partenr_change_channel, { id: item.id }).subscribe(res => { + if (res) { + this.selectItem = item; + const modal = this.nzModalService.create({ + nzTitle: '修改渠道销售', + nzWidth: 650, + nzContent: this.editCannel, + nzOnOk: () => { + if (!this.cannelItem.channelId) { + this.service.msgSrv.warning('请选择渠道销售'); + return false; + } + if (!this.cannelItem.remark) { + this.service.msgSrv.warning('请填写备注'); + return false; + } + this.confirmEditCannel(item); + return false; + } + }); } }); } @@ -124,7 +151,18 @@ export class PartnerListComponent { const modal = this.nzModalService.confirm({ nzTitle: '确定提交吗?', nzOnOk: () => { - this.nzModalService.closeAll(); + this.cannelItem.enterpriseIdList = this.selectedRows.map(row => row.id); + this.service + .request(this.service.$api_update_partner_channel_by_id, { + ...this.cannelItem, + id: item.id + }) + .subscribe(res => { + if (res) { + this.service.msgSrv.success('修改成功'); + this.nzModalService.closeAll(); + } + }); } }); } @@ -321,15 +359,20 @@ export class PartnerListComponent { private initST(): STColumn[] { return [ - { title: '合伙人名称', index: 'enterpriseName', width: 180, format: item => `${item.enterpriseName || item.contactName}` }, + { + title: '合伙人名称', + index: 'enterpriseName', + width: 180, + format: item => (item.partnerType ? `${item.enterpriseName || item.contactName}` : '') + }, { title: '付款编码', index: 'payCode', width: 160 }, { title: '邀请码', index: 'invitationCode', className: 'text-center', width: 130 }, - { title: '企业管理员', index: 'contactName', width: 150 }, + { title: '企业管理员', index: 'contactName', width: 150, format: item => (item.partnerType ? `${item.contactName}` : '') }, { title: '手机号', index: 'contactMobile', className: 'text-center', width: 150 }, { title: '类型', index: 'partnerType', className: 'text-center', width: 130, type: 'enum', enum: { 1: '企业', 2: '个人' } }, { title: '注册渠道', index: 'source', type: 'enum', enum: { 1: '合伙人注册', 2: '平台添加' }, width: 130 }, { title: '注册时间', index: 'createTime', className: 'text-center', width: 170 }, - { title: '渠道销售', index: 'channelId', width: 170 }, + { title: '渠道销售', index: 'channelIdLabel', width: 170 }, { title: '返佣模板', index: 'templateName', width: 150 }, { title: '认证审核状态', @@ -337,7 +380,7 @@ export class PartnerListComponent { width: 150, type: 'badge', badge: { - 0: { text: '草稿', color: 'default' }, + '-1': { text: '未提交', color: 'default' }, 10: { text: '待审核', color: 'processing' }, 20: { text: '审核通过', color: 'success' }, 30: { text: '驳回', color: 'error' } @@ -385,7 +428,13 @@ export class PartnerListComponent { buttons: [ { type: 'divider' }, { - text: '详情', + text: '审核', + iif: item => item.id && item.approvalStatus === 10, + click: item => this.auditPartner(item) + }, + { + text: '详情
', + iif: item => item.id, click: item => { if (item.partnerType === 1) { this.router.navigate([`/partner/partner-list/etp-detail/${item.id}`]); @@ -394,21 +443,20 @@ export class PartnerListComponent { } } }, - { - text: '审核
', - click: item => this.auditPartner(item) - }, { text: '修改返佣模板', + iif: item => item.id, click: item => this.editTemplateAction(item) }, { text: '修改渠道销售', + iif: item => item.id, click: item => this.editCannelAction(item) }, { text: '重发CRM流程', - click: item => this.reSendCRM(item) + click: item => item.id && this.reSendCRM(item), + iif: item => item.crmStatus === 10 } ] } diff --git a/src/app/routes/partner/partner-list/components/partner-audit-modal/partner-audit-modal.component.ts b/src/app/routes/partner/partner-list/components/partner-audit-modal/partner-audit-modal.component.ts index 8c2586a8..6e271d70 100644 --- a/src/app/routes/partner/partner-list/components/partner-audit-modal/partner-audit-modal.component.ts +++ b/src/app/routes/partner/partner-list/components/partner-audit-modal/partner-audit-modal.component.ts @@ -14,6 +14,7 @@ export class PartnerAuditModalComponent implements OnInit { @Input() info: any; schema!: SFSchema; + sourcePage = ''; constructor(private nzModalService: NzModalService, public service: PartnerListService) {} ngOnInit(): void { @@ -53,13 +54,11 @@ export class PartnerAuditModalComponent implements OnInit { channelId: { title: '渠道销售', type: 'string', - enum: [ - { value: true, label: '通过' }, - { value: false, label: '驳回' } - ], ui: { widget: 'select', placeholder: '请选择', + allowClear: true, + asyncData: () => this.service.getChannel(), hidden: this.info.isPass === false, visibleIf: { status: value => value @@ -115,7 +114,8 @@ export class PartnerAuditModalComponent implements OnInit { .request(this.service.$api_audit_partner, { auditStatusEnum: params.auditStatusEnum, id: params.id, - approvalOpinion: params.approvalOpinion + approvalOpinion: params.approvalOpinion, + sourcePage: this.sourcePage }) .subscribe(res => { if (res) { diff --git a/src/app/routes/partner/partner-list/components/partner-detail/partner-detail.component.html b/src/app/routes/partner/partner-list/components/partner-detail/partner-detail.component.html index 777d019f..c4abbd48 100644 --- a/src/app/routes/partner/partner-list/components/partner-detail/partner-detail.component.html +++ b/src/app/routes/partner/partner-list/components/partner-detail/partner-detail.component.html @@ -40,7 +40,7 @@ - + @@ -87,8 +87,9 @@ [nzBorderless]="!isEdit" [placeholder]="isEdit ? '' : '-'" /> - + + {{detailData.adminUserInfo.mobile}} - - + 修改渠道销售记录 + [req]="{params:{partnerId:route.snapshot.params.id}}" [loading]="service.http.loading" bordered size="small" + [page]="{ show: false }" [scroll]="{ x: '1200px' }"> @@ -316,13 +319,15 @@ -

转移客户数:10

- +

转移客户数:{{changeST?.total}}

+ -

不转移客户数:10

- +

不转移客户数:{{noChangeST?.total}}

+

客户转移:客户跟着上级合伙人转移一并到新渠道销售下,会同步发起CRM《客户转移》流程;不转移的,客户会与上级合伙人解绑,修改成功后,修改时间也是合伙人与客户的结算结束时间,成为原来渠道销售的直客。 diff --git a/src/app/routes/partner/partner-list/components/partner-detail/partner-detail.component.ts b/src/app/routes/partner/partner-list/components/partner-detail/partner-detail.component.ts index 94b4c869..61559772 100644 --- a/src/app/routes/partner/partner-list/components/partner-detail/partner-detail.component.ts +++ b/src/app/routes/partner/partner-list/components/partner-detail/partner-detail.component.ts @@ -47,7 +47,7 @@ export class PartnerDetailComponent implements OnInit, OnDestroy { subscribeScoll!: Subscription; constructor( public service: PartnerListService, - private route: ActivatedRoute, + public route: ActivatedRoute, private nzModalService: NzModalService, private datePipe: DatePipe ) {} @@ -138,7 +138,7 @@ export class PartnerDetailComponent implements OnInit, OnDestroy { const modal = this.nzModalService.create({ nzTitle: '审核', nzContent: PartnerAuditModalComponent, - nzComponentParams: { info: { ...this.detailData, isPass } }, + nzComponentParams: { info: { ...this.detailData, isPass },sourcePage:'合伙人审核详情' }, nzFooter: null }); } @@ -366,13 +366,13 @@ export class PartnerDetailComponent implements OnInit, OnDestroy { private initST(): { logsColumn: STColumn[]; changeColumn: STColumn[]; beChangeColumn: STColumn[] } { return { logsColumn: [ - { title: '修改后渠道销售', index: 'newChannelName', width: 180 }, - { title: '修改前渠道销售', index: 'originalChannelName', width: 160 }, + { title: '修改后渠道销售', index: 'newChannelIdLabel', width: 180 }, + { title: '修改前渠道销售', index: 'originalChannelIdLabel', width: 160 }, { title: '转移客户数', index: 'quantity', className: 'text-center', width: 130 }, { title: '生效节点', index: 'effectiveNode', width: 150, type: 'enum', enum: { 1: '立即生效', 2: 'CRM审核后生效' } }, { title: '备注', index: 'remark', className: 'text-center', width: 150 }, - { title: '修改时间', index: 'effectiveTime', className: 'text-center', width: 130, type: 'date' }, - { title: '操作人', index: 'modifyUserId', width: 130 }, + { title: '修改时间', index: 'effectiveTime', className: 'text-center', width: 180, type: 'date' }, + { title: '操作人', index: 'modifyUserIdLabel', width: 180 }, { title: '操作', fixed: 'right', diff --git a/src/app/routes/partner/partner-list/components/personal-partner-detail/personal-partner-detail.component.html b/src/app/routes/partner/partner-list/components/personal-partner-detail/personal-partner-detail.component.html index aa2b1e32..96041864 100644 --- a/src/app/routes/partner/partner-list/components/personal-partner-detail/personal-partner-detail.component.html +++ b/src/app/routes/partner/partner-list/components/personal-partner-detail/personal-partner-detail.component.html @@ -40,7 +40,7 @@ - + diff --git a/src/app/routes/partner/partner-list/components/personal-partner-detail/personal-partner-detail.component.ts b/src/app/routes/partner/partner-list/components/personal-partner-detail/personal-partner-detail.component.ts index c6da1adc..6ee8f6d5 100644 --- a/src/app/routes/partner/partner-list/components/personal-partner-detail/personal-partner-detail.component.ts +++ b/src/app/routes/partner/partner-list/components/personal-partner-detail/personal-partner-detail.component.ts @@ -113,7 +113,10 @@ export class PersonalPartnerDetailComponent implements OnInit { const modal = this.nzModalService.create({ nzTitle: '审核', nzContent: PartnerAuditModalComponent, - nzComponentParams: { info: { ...this.detailData, isPass, enterpriseName: this.detailData.adminUserInfo?.name } }, + nzComponentParams: { + info: { ...this.detailData, isPass, enterpriseName: this.detailData.adminUserInfo?.name }, + sourcePage: '合伙人审核详情' + }, nzFooter: null }); } diff --git a/src/app/routes/partner/partner-list/services/partner-list.service.ts b/src/app/routes/partner/partner-list/services/partner-list.service.ts index 77ba94b4..5a00d758 100644 --- a/src/app/routes/partner/partner-list/services/partner-list.service.ts +++ b/src/app/routes/partner/partner-list/services/partner-list.service.ts @@ -23,12 +23,20 @@ export class PartnerListService extends ShipperBaseService { $api_update_partner_template = '/api/mdc/partner/updateTemplate'; // 更新渠道销售 $api_update_partner_channel = '/api/mdc/partner/updateChannelSale'; + // 更新渠道销售 + $api_update_partner_channel_by_id = '/api/mdc/partner/updateChannelSaleByID'; // 重新发起CRM $api_resend_crm = '/api/mdc/partner/reSendCrm'; // 查询合伙人修改渠道渠道销售记录 $api_get_personal_channel_list = '/api/mdc/partnerChannelRelLog/list/page'; // 查询客户关系列表-不分页 - $api_get_enterprice_rel_list = '/api/mdc/enterpriceRelLog/list'; + $api_get_enterprice_rel_list = '/api/mdc/EnterpriseRelLog/list'; + // 校验合伙人是否可修改渠道销售 true:可以修改 false:不可以修改 + $api_check_partenr_change_channel = '/api/mdc/partner/updateChannelCheck'; + // 根据手机号查询实名信息 + $api_get_identityInfo_by_mobile= '/api/mdc/cuc/identityInfo/getByMobile'; + // 渠道销售修改详情 + $api_get_partner_change_list = '/api/mdc/partnerChannelRelLog/partnerChannelUpdateDetaiList'; // 冻结/启用企业业 $api_lock_freight = '/api/mdc/cuc/enterpriseInfo/operate/lock'; diff --git a/src/app/routes/partner/partner.module.ts b/src/app/routes/partner/partner.module.ts index 986d5e59..b27261c9 100644 --- a/src/app/routes/partner/partner.module.ts +++ b/src/app/routes/partner/partner.module.ts @@ -61,6 +61,7 @@ import { BannerComponentsAddComponent } from './knowledge/banner/components/add/ import { PersonalPartnerDetailComponent } from './partner-list/components/personal-partner-detail/personal-partner-detail.component'; import { ParterAdviceFeedbackListComponent } from './advice-feedback/components/list/list.component'; import { ParterAdviceFeedbackDetailComponent } from './advice-feedback/components/feedback-detail/feedback-detail.component'; +import { ParterRebateManageMentAddPartnerListComponent } from './rebate-management/components/rebate-setting/add-partnerlist/add-partnerlist.component'; const COMPONENTS: any[] = [ PartnerBusinessStatisticsIndexComponent, @@ -111,7 +112,8 @@ const COMPONENTS: any[] = [ BannerComponentsAddComponent, PersonalPartnerDetailComponent, ParterAdviceFeedbackListComponent, - ParterAdviceFeedbackDetailComponent + ParterAdviceFeedbackDetailComponent, + ParterRebateManageMentAddPartnerListComponent ]; @NgModule({ diff --git a/src/app/routes/partner/rebate-management/components/rebate-setting/add-partnerlist/add-partnerlist.component.html b/src/app/routes/partner/rebate-management/components/rebate-setting/add-partnerlist/add-partnerlist.component.html new file mode 100644 index 00000000..a7dd9b7c --- /dev/null +++ b/src/app/routes/partner/rebate-management/components/rebate-setting/add-partnerlist/add-partnerlist.component.html @@ -0,0 +1,38 @@ + +

+ +
+ +
+ + + +
+ +
+
+ + + +
+
+
+ + + + + + + + + diff --git a/src/app/routes/partner/rebate-management/components/rebate-setting/add-partnerlist/add-partnerlist.component.less b/src/app/routes/partner/rebate-management/components/rebate-setting/add-partnerlist/add-partnerlist.component.less new file mode 100644 index 00000000..e87948ce --- /dev/null +++ b/src/app/routes/partner/rebate-management/components/rebate-setting/add-partnerlist/add-partnerlist.component.less @@ -0,0 +1,20 @@ +:host::ng-deep{ + .search-box{ + .ant-card-body{ + padding-bottom: 18px; + } + } + + .content-box{ + .ant-card-body{ + padding-top: 14px; + } + } + .imgBox { + display: flex; + img { + width: 60px !important; + } + } + +} \ No newline at end of file diff --git a/src/app/routes/partner/rebate-management/components/rebate-setting/add-partnerlist/add-partnerlist.component.ts b/src/app/routes/partner/rebate-management/components/rebate-setting/add-partnerlist/add-partnerlist.component.ts new file mode 100644 index 00000000..6e7c094b --- /dev/null +++ b/src/app/routes/partner/rebate-management/components/rebate-setting/add-partnerlist/add-partnerlist.component.ts @@ -0,0 +1,220 @@ +import { Component, OnInit, ViewChild, Type } from '@angular/core'; +import { STComponent, STColumn, STChange } from '@delon/abc/st'; +import { SFComponent, SFDateWidgetSchema, SFRadioWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form'; +import { ShipperBaseService } from '@shared'; +import { NzModalService } from 'ng-zorro-antd/modal'; +import { of } from 'rxjs'; +import { map } from 'rxjs/operators'; +import { RebateManagementService } from '../../../services/rebate-management.service'; + +@Component({ + selector: 'app-add-partnerlist', + templateUrl: './add-partnerlist.component.html', + styleUrls: ['./add-partnerlist.component.less'] +}) +export class ParterRebateManageMentAddPartnerListComponent implements OnInit { + @ViewChild('st', { static: true }) + st!: STComponent; + @ViewChild('sf', { static: false }) sf!: SFComponent; + ui: SFUISchema = {}; + i: any; + schema: SFSchema = {}; + addSchema: SFSchema = {}; + _$expand = false; + editText = ''; + formData: any; + isVisible = false; + edit = false; + editId = false; + selectedIndex = 0; + + + + columns: STColumn[] = [ + { title: '', type: 'checkbox', width: '50px', className: 'text-center' }, + { title: '异常编号', index: 'exceptionCode', width: '140px', className: 'text-left', }, + { title: '订单号', index: 'billCode', width: '160px', className: 'text-left', }, + { title: '装货地', index: 'loadingAddressArr', width: '220px', className: 'text-left', }, + { title: '卸货地', index: 'unloadingAddressArr', width: '220px', className: 'text-left', }, + { title: '承运司机', index: 'driver', width: '180px', className: 'text-left', }, + { title: '异常信息', index: 'exceptionContent', width: '100px', className: 'text-left', }, + { title: '异常图片', render: 'exceptionCertificateFirstFilePath', width: '150px', className: 'text-left', }, + { title: '上报时间', index: 'createTime', width: '140px', className: 'text-left', }, + { + title: '操作', index: 'createTime', width: '90px', className: 'text-left', + buttons: [ + { + text: '回复', + click: _record => this.reply(_record), + acl: { ability: ['AbnormalAppear-reply'] } + }, + ] + }, + ]; + columns2: STColumn[] = [ + { title: '异常编号', index: 'exceptionCode', width: '140px', className: 'text-left' }, + { title: '订单号', index: 'billCode', width: '160px', className: 'text-left' }, + { title: '装货地', index: 'loadingAddressArr', width: '220px', className: 'text-left' }, + { title: '卸货地', index: 'unloadingAddressArr', width: '220px', className: 'text-left' }, + { title: '承运司机', index: 'driver', width: '180px', className: 'text-left' }, + { title: '异常信息', index: 'exceptionContent', width: '100px', className: 'text-left' }, + { title: '异常图片', render: 'exceptionCertificateFirstFilePath', width: '150px', className: 'text-left' }, + { title: '上报时间', index: 'createTime', width: '140px', className: 'text-left' }, + { title: '回复内容', index: 'replyContent', width: '150px', className: 'text-left' }, + { title: '回复人', index: 'replyAppUserName', width: '90px', className: 'text-left' }, + { title: '回复时间', index: 'replyTime', width: '140px', className: 'text-left' }, + ]; + + get reqParams() { + let params: any = { ...this.sf?.value }; + if (params.reportingTime) { + const reportingTime = { start: this.sf?.value?.reportingTime?.[0], end: this.sf?.value?.reportingTime?.[1] } + params.reportingTime = reportingTime; + } + return params; + } + + get selectedRows() { + return this.st?.list.filter(item => item.checked) || []; + } + + constructor( + public service: RebateManagementService, + private nzModalService: NzModalService, + public shipperSrv: ShipperBaseService, + private modal: NzModalService, + + ) { } + + ngOnInit(): void { + this.initSF() + } + + /** + * 伸缩查询条件 + */ + expandToggle(): void { + this._$expand = !this._$expand; + this.sf?.setValue('/_$expand', this._$expand); + } + /** + * 查询字段个数 + */ + get queryFieldCount(): number { + return Object.keys(this.schema?.properties || {}).length; + } + initSF() { + this.schema = { + properties: { + _$expand: { type: 'boolean', ui: { hidden: true } }, + exceptionCode: { + type: 'string', + title: '异常编号', + ui: { placeholder: '请输入' } + }, + billCode: { + type: 'string', + title: '订单号', + ui: { + placeholder: '最多100个订单,空号隔开', + } + }, + exceptionType: { + title: '异常类型', + type: 'string', + ui: { + widget: 'dict-select', + containsAllLabel: true, + params: { dictKey: 'exception:report:type' }, + } as SFSelectWidgetSchema + }, + driverName: { + title: '承运司机', + type: 'string', + ui: { + visibleIf: { + _$expand: (value: boolean) => value + } + } + }, + carNo: { + title: '车牌号', + type: 'string', + ui: { + visibleIf: { + _$expand: (value: boolean) => value + } + } + }, + reportingTime: { + title: '上报时间', + type: 'string', + ui: { + widget: 'date', + mode: 'range', + format: 'yyyy-MM-dd', + visibleIf: { + _$expand: (value: boolean) => value + } + } as SFDateWidgetSchema + } + } + }; + this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } }; + } + + search() { + if (this.selectedIndex === 0) { + this.st?.load(1) + } + } + + selectedIndexChange(event: any) { + if (this.selectedIndex === 0) { + this.st?.load(1) + } + } + /** + * 重置表单 + */ + resetSF() { + this.sf.reset(); + } + // 回复操作 + reply(item: any) { + // const modalRef = this.modal.create({ + // nzTitle: '回复', + // nzWidth: 700, + // nzContent: AbnormalReplyComponent, + // nzComponentParams: { + // i: item + // }, + // nzFooter: null + // }); + // modalRef.afterClose.subscribe((res) => { + // if (res) { + // this.resetSF; + // this.st.load(); + // } + // }); + } + // 批量回复操作 + batchReply() { + // if (this.selectedRows.length === 0) { + // this.service.msgSrv.warning('请勾选数据!') + // return; + // } + // const modalRef = this.modal.create({ + // nzTitle: '批量回复', + // nzContent: AbnormalreplyBatchComponent, + // nzComponentParams: { + // selectedRows: this.selectedRows + // }, + // nzFooter: null + // }); + // modalRef.afterClose.subscribe(() => { + // this.resetSF; + // this.st.load(); + // }); + } +} diff --git a/src/app/routes/partner/rebate-management/components/rebate-setting/add/add.component.html b/src/app/routes/partner/rebate-management/components/rebate-setting/add/add.component.html index 9dc5b6f9..1256170c 100644 --- a/src/app/routes/partner/rebate-management/components/rebate-setting/add/add.component.html +++ b/src/app/routes/partner/rebate-management/components/rebate-setting/add/add.component.html @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2022-02-24 20:09:49 * @LastEditors : Shiming - * @LastEditTime : 2022-03-21 13:53:31 + * @LastEditTime : 2022-03-28 15:39:27 * @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add\\add.component.html * Copyright (C) 2022 huzhenhong. All rights reserved. --> @@ -33,7 +33,7 @@ -   添加 +   添加    @@ -49,6 +49,17 @@ - +
+ + +
+ +
+ + +
+
diff --git a/src/app/routes/partner/rebate-management/components/rebate-setting/add/add.component.ts b/src/app/routes/partner/rebate-management/components/rebate-setting/add/add.component.ts index 3edd7ef2..3821b57f 100644 --- a/src/app/routes/partner/rebate-management/components/rebate-setting/add/add.component.ts +++ b/src/app/routes/partner/rebate-management/components/rebate-setting/add/add.component.ts @@ -1,10 +1,10 @@ /* - * @Description : + * @Description : * @Version : 1.0 * @Author : Shiming * @Date : 2022-03-21 09:26:45 * @LastEditors : Shiming - * @LastEditTime : 2022-03-21 13:44:34 + * @LastEditTime : 2022-03-28 14:45:41 * @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add\\add.component.ts * Copyright (C) 2022 huzhenhong. All rights reserved. */ @@ -16,6 +16,7 @@ import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/fo import { processSingleSort, ShipperBaseService } from '@shared'; import { NzModalService } from 'ng-zorro-antd/modal'; import { RebateManagementService } from '../../../services/rebate-management.service'; +import { ParterRebateManageMentAddPartnerListComponent } from '../add-partnerlist/add-partnerlist.component'; @Component({ selector: 'app-parter-channel-rebate-management-add', styleUrls: ['./add.component.less'], @@ -26,7 +27,7 @@ export class ParterRebateManageMentAddComponent implements OnInit { toFixedValue: Number = 2; radioValue = 'A'; precision = 2; - inputValue= ''; + inputValue = ''; @ViewChild('sf', { static: false }) sf!: SFComponent; schema1!: SFSchema; constructor( @@ -34,7 +35,7 @@ export class ParterRebateManageMentAddComponent implements OnInit { public ar: ActivatedRoute, public service: RebateManagementService, private modal: NzModalService, - public shipperservice: ShipperBaseService, + public shipperservice: ShipperBaseService ) {} initSF(data?: any) { this.schema1 = { @@ -55,6 +56,28 @@ export class ParterRebateManageMentAddComponent implements OnInit { }; } ngOnInit() { - this.initSF() + this.initSF(); + } + submit() {} + goBack() { + window.history.go(-1); + } + /** + *申请退款 + */ + add(item?: any) { + const modalRef = this.modal.create({ + nzTitle: '申请退款', + nzContent: ParterRebateManageMentAddPartnerListComponent, + nzComponentParams: { + i: item, + }, + nzFooter: null + }); + modalRef.afterClose.subscribe((res: boolean) => { + if (res) { + + } + }); } } diff --git a/src/app/routes/partner/recorded/components/record/record.component.html b/src/app/routes/partner/recorded/components/record/record.component.html index 2de32d76..ca550d9d 100644 --- a/src/app/routes/partner/recorded/components/record/record.component.html +++ b/src/app/routes/partner/recorded/components/record/record.component.html @@ -8,7 +8,7 @@
- +
diff --git a/src/app/routes/partner/recorded/components/record/record.component.ts b/src/app/routes/partner/recorded/components/record/record.component.ts index d4e0d8de..2a554c41 100644 --- a/src/app/routes/partner/recorded/components/record/record.component.ts +++ b/src/app/routes/partner/recorded/components/record/record.component.ts @@ -22,11 +22,11 @@ export class PartnerRecordedRecordComponent implements OnInit { columns!: STColumn[]; searchSchema!: SFSchema; totalInfo: any = { - partnerNum: 34, - count: 98, - invoiceAmount: 978239.98, - tax: 9878.00, - recorededAmount: 728698.98 + invoiceAmountSum: 0, + invoiceEntryNum: 0, + partnerNum: 0, + recordedAmountSum: 0, + taxPersonalSum: 0 } _$expand = false; @@ -43,8 +43,6 @@ export class PartnerRecordedRecordComponent implements OnInit { constructor(public service: RecordedService, private nzModalService: NzModalService, private router: Router, public ar: ActivatedRoute, public shipperSrv: ShipperBaseService) { - - this.accountName = this.ar.snapshot.queryParams?.userIdLabel || ''; this.ltdId = this.ar.snapshot.queryParams?.ltdId || ''; } @@ -308,7 +306,7 @@ export class PartnerRecordedRecordComponent implements OnInit { widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.amount }) } }, - { title: '提交时间', index: 'submitTime', width: 160, className: 'text-center' }, + { title: '提交时间', index: 'submitTime', width: 180, className: 'text-center' }, { title: '入账状态', index: 'stsLabel', width: 120, className: 'text-center' }, { title: '操作', @@ -347,4 +345,19 @@ export class PartnerRecordedRecordComponent implements OnInit { } }); } + + search() { + this.st.load(1); + this.getSummary(); + } + /** + * 底部统计 + */ + getSummary() { + this.service.request(this.service.$api_get_list_summary, { ...this.sf.value }).subscribe(res => { + if (res) { + this.totalInfo = res; + } + }) + } } diff --git a/src/app/routes/partner/recorded/services/recorded.service.ts b/src/app/routes/partner/recorded/services/recorded.service.ts index dcf5393f..72d088aa 100644 --- a/src/app/routes/partner/recorded/services/recorded.service.ts +++ b/src/app/routes/partner/recorded/services/recorded.service.ts @@ -11,6 +11,7 @@ export class RecordedService extends BaseService { $api_disagree_recorded = ``; // 拒绝审核 $api_agree_recorded = ``; // 同意审核 $api_audit_recored = `/api/bpc/partnerInvoiceEntry/oprationAudit`; // 审核单据 + $api_get_list_summary = `/api/bpc/partnerInvoiceEntry/invoiceEntrySummary`; // 每页统计 constructor(public injector: Injector) { super(injector); } diff --git a/src/app/routes/passport/components/order-agreement/order-agreement.component.html b/src/app/routes/passport/components/order-agreement/order-agreement.component.html index 89e01a91..a9106098 100644 --- a/src/app/routes/passport/components/order-agreement/order-agreement.component.html +++ b/src/app/routes/passport/components/order-agreement/order-agreement.component.html @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2021-12-27 21:08:36 * @LastEditors : Shiming - * @LastEditTime : 2022-02-24 10:50:46 + * @LastEditTime : 2022-03-25 13:56:06 * @FilePath : \\tms-obc-web\\src\\app\\routes\\passport\\components\\order-agreement\\order-agreement.component.html * Copyright (C) 2022 huzhenhong. All rights reserved. --> @@ -13,7 +13,7 @@

{{ agreementContent?.agreementName }}

-

最新版本生效日期:{{ agreementContent?.modifyTime }}

-
+

最新版本生效日期:{{ agreementContent?.modifyTime }}

+
\ No newline at end of file diff --git a/src/app/routes/passport/components/order-agreement/order-agreement.component.ts b/src/app/routes/passport/components/order-agreement/order-agreement.component.ts index 713b32cf..5fa44cad 100644 --- a/src/app/routes/passport/components/order-agreement/order-agreement.component.ts +++ b/src/app/routes/passport/components/order-agreement/order-agreement.component.ts @@ -1,3 +1,13 @@ +/* + * @Description : + * @Version : 1.0 + * @Author : Shiming + * @Date : 2022-03-14 14:17:38 + * @LastEditors : Shiming + * @LastEditTime : 2022-03-25 13:52:54 + * @FilePath : \\tms-obc-web\\src\\app\\routes\\passport\\components\\order-agreement\\order-agreement.component.ts + * Copyright (C) 2022 huzhenhong. All rights reserved. + */ import { Component, OnInit } from '@angular/core'; import { ActivatedRoute, Params } from '@angular/router'; import { PassportService } from '../../services/passport.service'; @@ -10,16 +20,31 @@ import { PassportService } from '../../services/passport.service'; export class OrderAgreementComponent implements OnInit { agreementContent: any; type = 2; + data : any; constructor(private ar: ActivatedRoute, private service: PassportService) { ar.queryParams.subscribe((params: Params) => { - this.type = params.type || 2; + console.log(params); + + this.type = params?.type || 2; + this.data = JSON.parse(params?.data) || {}; }); } ngOnInit() { - this.service.request(this.service.$api_get_agreement, { type: this.type }).subscribe(res => { - if (res) { - this.agreementContent = res; - } - }); + console.log(this.type); + if(this.type == 3) { + console.log(this.data); + + this.service.request(this.service.$api_get_getSupplementaryAgreement, { billId: this.data?.billId, billCode: this.data?.billCode }).subscribe(res => { + if (res) { + this.agreementContent = res; + } + }); + } else { + this.service.request(this.service.$api_get_agreement, { type: this.type }).subscribe(res => { + if (res) { + this.agreementContent = res; + } + }); + } } } diff --git a/src/app/routes/passport/services/passport.service.ts b/src/app/routes/passport/services/passport.service.ts index bcd3f5c1..bb23b727 100644 --- a/src/app/routes/passport/services/passport.service.ts +++ b/src/app/routes/passport/services/passport.service.ts @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2021-12-27 21:08:36 * @LastEditors : Shiming - * @LastEditTime : 2022-01-18 17:24:52 + * @LastEditTime : 2022-03-24 09:59:50 * @FilePath : \\tms-obc-web\\src\\app\\routes\\passport\\services\\passport.service.ts * Copyright (C) 2022 huzhenhong. All rights reserved. */ @@ -17,6 +17,8 @@ import { BaseService } from 'src/app/shared/services/core/base.service'; export class PassportService extends BaseService { // 登录协议,服务订购协议 public $api_get_agreement = `/api/mdc/pbc/agreementInfo/getAgreementInfoByType?_allow_anonymous=true`; + // 查看补充协议 + public $api_get_getSupplementaryAgreement = `/api/sdc/billOperate/getSupplementaryAgreement?_allow_anonymous=true`; // 未登录账号发送验证码 public $getAccountSMVerificationCode = `/api/mdc/cuc/userBasicInfo/forgetPassword/getAccountSMVerificationCode?_allow_anonymous=true`; constructor(public injector: Injector) { diff --git a/src/app/routes/routes-routing.module.ts b/src/app/routes/routes-routing.module.ts index 1ec46449..f8daf42a 100644 --- a/src/app/routes/routes-routing.module.ts +++ b/src/app/routes/routes-routing.module.ts @@ -74,8 +74,8 @@ const routes: Routes = [ { path: 'download', loadChildren: () => import('./download/download.module').then(m => m.DownloadModule) - } - ] + }, + { path: 'datatable', loadChildren: () => import('./datatable/datatable.module').then((m) => m.DatatableModule) },] }, // passport { @@ -100,4 +100,4 @@ const routes: Routes = [ ], exports: [RouterModule] }) -export class RouteRoutingModule {} +export class RouteRoutingModule { } diff --git a/src/app/routes/supply-management/components/add-driver/add-driver.component.html b/src/app/routes/supply-management/components/add-driver/add-driver.component.html index 9483e3f5..e7df0e64 100644 --- a/src/app/routes/supply-management/components/add-driver/add-driver.component.html +++ b/src/app/routes/supply-management/components/add-driver/add-driver.component.html @@ -2,55 +2,61 @@ * @Description : * @Version : 1.0 * @Author : Shiming - * @Date : 2021-12-21 10:58:48 + * @Date : 2022-03-14 14:17:38 * @LastEditors : Shiming - * @LastEditTime : 2022-01-18 17:26:52 + * @LastEditTime : 2022-03-24 19:31:03 * @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\components\\add-driver\\add-driver.component.html * Copyright (C) 2022 huzhenhong. All rights reserved. --> - +
- -
-
-
正面照
-
示例
-
-
-
-
- -
-
-
背面照
-
示例
-
-
-
-
+ +
+
+
正面照
+
示例
+
+
+
+
+ +
+
+
背面照
+
示例
+
+
+
+
+
+ + + + + + + + + - - - - + 查看示例 +
+ +
+
+
+ 查看示例 +
+ +
+
--> + + \ No newline at end of file diff --git a/src/app/routes/supply-management/components/add-driver/add-driver.component.less b/src/app/routes/supply-management/components/add-driver/add-driver.component.less index 54338ad9..af8ad338 100644 --- a/src/app/routes/supply-management/components/add-driver/add-driver.component.less +++ b/src/app/routes/supply-management/components/add-driver/add-driver.component.less @@ -1,25 +1,57 @@ +.sfBox{ + position: relative; +} .pr { - position: relative; + position: relative; +} + +.pa { + position: absolute; + top: 35px; + left: 150px; + img{border: solid 1px #ebf0fb;} +} + +.tips { + display: flex; + margin-bottom: 0; + color: #333; + + dt { + width: 150px; } - .pa { - position: absolute; - top: 35px; - left: 150px; - } - - .tips { - display: flex; + dd { + width: 190px; margin-bottom: 0; - color: #333; - - dt { - width: 150px; + text-align: center; + } +} +.drivercard{ + position: absolute; + top: 620px; + left: 330px; + border: solid 1px #ebf0fb; +} +.jopcard{ + position: absolute; + top: 1034px; + left: 330px; + border: solid 1px #ebf0fb; +} +:host{ + ::ng-deep { + .ant-input-borderless{ + padding: 0; + padding-top: 4px; + color: black; + resize:none; } - - dd { - width: 190px; - margin-bottom: 0; - text-align: center; + .setCustom .ant-form-item-control{ + margin-left: -100px !important + } + .borderImg{ + border: solid 1px #ebf0fb; } } +} \ No newline at end of file diff --git a/src/app/routes/supply-management/components/add-driver/add-driver.component.ts b/src/app/routes/supply-management/components/add-driver/add-driver.component.ts index 76165473..18c09240 100644 --- a/src/app/routes/supply-management/components/add-driver/add-driver.component.ts +++ b/src/app/routes/supply-management/components/add-driver/add-driver.component.ts @@ -4,11 +4,12 @@ import { cacheConf } from '@conf/cache.conf'; import { SFComponent, SFUISchema, SFSchema, SFUploadWidgetSchema, SFDateWidgetSchema } from '@delon/form'; import { _HttpClient } from '@delon/theme'; import { EACacheService, EAEnvironmentService } from '@shared'; +import { AnyRecord } from 'dns'; import { NzModalRef } from 'ng-zorro-antd/modal'; -import { Observable, Observer } from 'rxjs'; +import { NzUploadFile } from 'ng-zorro-antd/upload'; +import { Observable, Observer, of } from 'rxjs'; import { map } from 'rxjs/operators'; import { SupplyManagementService } from '../../services/supply-management.service'; - @Component({ selector: 'app-car-add-driver', templateUrl: './add-driver.component.html', @@ -21,6 +22,8 @@ export class CarAddDriverComponent implements OnInit { record: any = {}; i: any; ui: SFUISchema = {}; + ui2: SFUISchema = {}; + ui3: SFUISchema = {}; schema: SFSchema = {}; schema1: SFSchema = {}; schema2: SFSchema = {}; @@ -32,17 +35,18 @@ export class CarAddDriverComponent implements OnInit { userPracticeSeniorityDTO: {} }; companyData: any = {}; - mobile = ''; + mobile = '' + checked = false constructor( private modal: NzModalRef, public service: SupplyManagementService, private envSrv: EAEnvironmentService, - private eaCacheSrv: EACacheService - ) {} + private eaCacheSrv: EACacheService, + ) { } ngOnInit(): void { - this.companyData = this.eaCacheSrv.get(cacheConf.env); - this.initSF(); + this.companyData = this.eaCacheSrv.get(cacheConf.env) + this.initSF() } initSF() { this.schema = { @@ -51,44 +55,45 @@ export class CarAddDriverComponent implements OnInit { title: '司机信息(必填)', type: 'string', ui: { - widget: 'text' + widget: 'text', }, default: '照片上传后会自动识别文字并填充下列内容栏' }, mobile: { title: '手机号', type: 'string', - format: 'email', maxLength: 11, ui: { - widget: 'text' + widget: '', }, default: this.mobile }, showName: { title: '身份证照片', type: 'string', + readOnly: true, ui: { - widget: 'text', - showRequired: true + widget: 'textarea', + borderless:true, + showRequired: true, }, - default: '请上传身份证原件的高清照片,若上传复印件,则需加盖公司印章及法人签字;上传后系统会自动识别并填写' + default: '请上传身份证原件的高清照片,若上传复印件,则需加盖公司印章及法人签字;上传后系统会自动识别并填写', }, tipsA: { title: '', type: 'string', ui: { widget: 'custom', - offsetControl: 6 - } + offsetControl: 6, + }, }, certificatePhotoFrontWatermark: { type: 'string', title: '', ui: { offsetControl: 6, - action: apiConf.fileUpload, - fileType: 'image/png,image/jpeg,image/jpg,image/gif', + action: apiConf.waterFileUpload, + accept: 'image/png,image/jpeg,image/jpg,image/gif', limit: 1, limitFileCount: 1, resReName: 'data.fullFileWatermarkPath', @@ -96,18 +101,32 @@ export class CarAddDriverComponent implements OnInit { widget: 'upload', descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过2M', data: { - appId: this.envSrv.env.appId + appId: this.envSrv.env.appId, }, name: 'multipartFile', multiple: false, listType: 'picture-card', - change: args => { + change: (args: any) => { if (args.type === 'success') { - this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath; + const avatar = [ + { + uid: -1, + name: 'LOGO', + status: 'done', + url: args.file.response.data.fullFileWatermarkPath, + response: { + url: args.file.response.data.fullFileWatermarkPath, + }, + }, + ]; + this.sf?.setValue('/certificatePhotoFrontWatermark', avatar); + this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath this.checkIdCard(args.file.response.data.fullFilePath, 'front', 0); + } else { + this.detailData.certificatePhotoFront = '' } }, - beforeUpload: (file: any, _fileList) => { + beforeUpload: (file: any, _fileList: any) => { return new Observable((observer: Observer) => { const isLt2M = file.size / 1024 / 1024 < 2; if (!isLt2M) { @@ -118,24 +137,25 @@ export class CarAddDriverComponent implements OnInit { observer.next(isLt2M); observer.complete(); }); - } - } as SFUploadWidgetSchema + }, + previewFile: (file: NzUploadFile) => of(file.url), + }, }, tipsB: { title: '', type: 'string', ui: { widget: 'custom', - offsetControl: 6 - } + offsetControl: 6, + }, }, certificatePhotoBackWatermark: { type: 'string', title: '', ui: { offsetControl: 6, - action: apiConf.fileUpload, - fileType: 'image/png,image/jpeg,image/jpg,image/gif', + action: apiConf.waterFileUpload, + accept: 'image/png,image/jpeg,image/jpg,image/gif', limit: 1, limitFileCount: 1, resReName: 'data.fullFileWatermarkPath', @@ -143,18 +163,32 @@ export class CarAddDriverComponent implements OnInit { widget: 'upload', descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过2M', data: { - appId: this.envSrv.env.appId + appId: this.envSrv.env.appId, }, name: 'multipartFile', multiple: false, listType: 'picture-card', - change: args => { + change: (args: any) => { if (args.type === 'success') { - this.detailData.certificatePhotoBack = args.file.response.data.fullFilePath; + const avatar = [ + { + uid: -1, + name: 'LOGO', + status: 'done', + url: args.file.response.data.fullFileWatermarkPath, + response: { + url: args.file.response.data.fullFileWatermarkPath, + }, + }, + ]; + this.sf?.setValue('/certificatePhotoBackWatermark', avatar); + this.detailData.certificatePhotoBack = args.file.response.data.fullFilePath this.checkIdCard(args.file.response.data.fullFilePath, 'back', 0); + } else { + this.detailData.certificatePhotoBack = '' } }, - beforeUpload: (file: any, _fileList) => { + beforeUpload: (file: any, _fileList: any) => { return new Observable((observer: Observer) => { const isLt2M = file.size / 1024 / 1024 < 2; if (!isLt2M) { @@ -165,8 +199,8 @@ export class CarAddDriverComponent implements OnInit { observer.next(isLt2M); observer.complete(); }); - } - } as SFUploadWidgetSchema + }, + previewFile: (file: NzUploadFile) => of(file.url),} }, name: { title: '姓名', @@ -174,8 +208,8 @@ export class CarAddDriverComponent implements OnInit { maxLength: 32, ui: { widget: '', - placeholder: '请输入姓名' - } + placeholder: '请输入姓名', + }, }, certificateNumber: { title: '身份证号', @@ -187,12 +221,17 @@ export class CarAddDriverComponent implements OnInit { widget: '', placeholder: '请输入法定代表人证件号', errors: { - required: '请输入18位身份证号码' - } - } - } + required: '请输入18位身份证号码', + }, + }, + }, }, - required: ['certificatePhotoFrontWatermark', 'certificatePhotoBackWatermark', 'name', 'certificateNumber'] + required: [ + 'certificatePhotoFrontWatermark', + 'certificatePhotoBackWatermark', + 'name', + 'certificateNumber' + ], }; this.schema1 = { properties: { @@ -200,7 +239,7 @@ export class CarAddDriverComponent implements OnInit { title: '驾驶证信息(必填)', type: 'string', ui: { - widget: 'text' + widget: 'text', }, default: '照片上传后会自动识别文字并填充下列内容栏' }, @@ -209,7 +248,7 @@ export class CarAddDriverComponent implements OnInit { title: '驾驶证照片', ui: { action: apiConf.fileUpload, - fileType: 'image/png,image/jpeg,image/jpg,image/gif', + accept: 'image/png,image/jpeg,image/jpg,image/gif', limit: 1, limitFileCount: 1, resReName: 'data.fullFileWatermarkPath', @@ -217,169 +256,80 @@ export class CarAddDriverComponent implements OnInit { widget: 'upload', descriptionI18n: '请上传驾驶证照片,支持JPG、PNG格式,文件小于5M。照片信息缺失、拼凑、过度PS、模糊不清,都不会通过审核。', data: { - appId: this.envSrv.env.appId + appId: this.envSrv.env.appId, }, name: 'multipartFile', multiple: false, listType: 'picture-card', - change: args => { + change: (args: any) => { if (args.type === 'success') { - this.detailData.userDriverLicenseDTO.certificatePhoto = args.file.response.data.fullFilePath; + this.detailData.userDriverLicenseDTO.certificatePhoto = args.file.response.data.fullFilePath this.checkDriverCard(args.file.response.data.fullFilePath, 'front', 0); + } else { + this.detailData.userDriverLicenseDTO.certificatePhoto = '' } }, - beforeUpload: (file: any, _fileList) => { + beforeUpload: (file: any, _fileList: any) => { return new Observable((observer: Observer) => { - const isLt4M = file.size / 1024 / 1024 < 4; + const isLt4M = file.size / 1024 / 1024 < 5; if (!isLt4M) { - this.service.msgSrv.warning('图片大小超过4M!'); + this.service.msgSrv.warning('图片大小超过5M!'); observer.complete(); return; } observer.next(isLt4M); observer.complete(); }); - } - } as SFUploadWidgetSchema + }, + previewFile: (file: NzUploadFile) => of(file.url),} + }, + roadImg: { + title: '', + type: 'boolean', + // enum: [{ label: '长期', value: true }], + ui: { + widget: 'custom', + } }, licenseNo: { title: '驾驶证号', type: 'string', ui: { - // widget: 'text', - placeholder: '请输入' - } + // widget: 'text', + placeholder: '请输入', + }, // default: this.ar.snapshot.queryParams.licenseNo }, driverModel: { title: '准驾车型', type: 'string', - enum: [ - { label: 'A1', value: 0 }, - { label: 'B1', value: 1 } - ], - ui: { - // widget: this.detailData.commitFlag !== 0 ? 'text' : '', - placeholder: '请输入' - } - }, - validStartTime: { - title: '法人证件有效开始日期', - type: 'string', - ui: { - widget: 'date', - format: 'yyyy-MM-dd', - placeholder: '请选择', - errors: { - required: '请选择起始日期' - }, - change: i => {} - } as SFDateWidgetSchema - }, - validEndTime: { - title: '法人证件有效开始日期', - type: 'string', - ui: { - widget: 'date', - format: 'yyyy-MM-dd', - placeholder: '请选择', - errors: { - required: '请选择起始日期' - }, - change: i => {} - } as SFDateWidgetSchema - }, - signingOrganization: { - title: '签发机关', - type: 'string', - maxLength: 30, - ui: { - // widget: this.detailData.commitFlag !== 0 ? 'text' : '', - placeholder: '请输入' - } - } - }, - required: ['certificatePhotoWatermark', 'licenseNo', 'driverModel', 'validStartTime', 'validEndTime'] - }; - this.schema2 = { - properties: { - titleC: { - title: '从业资格证(选填)', - type: 'string', - ui: { - widget: 'text' - }, - default: '照片上传后会自动识别文字并填充下列内容栏' - }, - certificatePhotoWatermark: { - type: 'string', - title: '', - ui: { - offsetControl: 6, - action: apiConf.fileUpload, - fileType: 'image/png,image/jpeg,image/jpg,image/gif', - limit: 1, - limitFileCount: 1, - resReName: 'data.fullFileWatermarkPath', - urlReName: 'data.fullFileWatermarkPath', - widget: 'upload', - descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过5M', - data: { - appId: this.envSrv.env.appId - }, - name: 'multipartFile', - multiple: false, - listType: 'picture-card', - change: args => { - if (args.type === 'success') { - this.detailData.userPracticeSeniorityDTO.certificatePhoto = args.file.response.data.fullFilePath; - //this.checkIdCard(args.file.response.data.fullFile, 0, 0); - } - }, - beforeUpload: (file: any, _fileList) => { - return new Observable((observer: Observer) => { - const isLt2M = file.size / 1024 / 1024 < 2; - if (!isLt2M) { - this.service.msgSrv.warning('图片大小超过2M!'); - observer.complete(); - return; - } - observer.next(isLt2M); - observer.complete(); - }); - } - } as SFUploadWidgetSchema - }, - licenseNo: { - title: '从业资格证号', - type: 'string', - maxLength: 30, - ui: { - // widget: this.detailData.commitFlag !== 0 ? 'text' : '', - placeholder: '请输入' - } - }, - regionCode: { - title: '签发省份', - type: 'string', ui: { widget: 'select', - placeholder: '请选择', - asyncData: () => this.getProvinceData() - } as SFDateWidgetSchema + mode: 'multiple', + containsAllLabel: false, + placeholder: '请选择准驾车型', + asyncData: () => + this.service.request(this.service.$api_getDictValue, { dictKey: 'driverModel' }).pipe( + map((data: any) => { + return data.map((m: any) => { + return { label: m.label, value: m.label }; + }); + }), + ), + }, }, validStartTime: { - title: '发证日期', + title: '有效期起', type: 'string', ui: { widget: 'date', format: 'yyyy-MM-dd', placeholder: '请选择', errors: { - required: '请选择起始日期' + required: '请选择起始日期', }, - change: i => {} - } as SFDateWidgetSchema + change: (i) => { }, + } as SFDateWidgetSchema, }, validEndTime: { title: '有效期止', @@ -389,67 +339,210 @@ export class CarAddDriverComponent implements OnInit { format: 'yyyy-MM-dd', placeholder: '请选择', errors: { - required: '请选择起始日期' + required: '请选择终止日期', }, - change: i => {} - } as SFDateWidgetSchema - } + change: (i) => { }, + } as SFDateWidgetSchema, + }, + signingOrganization: { + title: '签发机关', + type: 'string', + maxLength: 30, + ui: { + // widget: this.detailData.commitFlag !== 0 ? 'text' : '', + placeholder: '请输入', + }, + }, }, - required: [] + required: [ + 'certificatePhotoWatermark', + 'licenseNo', + 'driverModel', + 'validStartTime', + 'validEndTime', + ], + }; + this.schema2 = { + properties: { + titleC: { + title: '从业资格证(选填)', + type: 'string', + ui: { + widget: 'text', + }, + default: '照片上传后会自动识别文字并填充下列内容栏', + }, + certificatePhotoWatermark: { + type: 'string', + title: '', + ui: { + offsetControl: 6, + action: apiConf.fileUpload, + accept: 'image/png,image/jpeg,image/jpg,image/gif', + limit: 1, + limitFileCount: 1, + resReName: 'data.fullFileWatermarkPath', + urlReName: 'data.fullFileWatermarkPath', + widget: 'upload', + descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过5M', + data: { + appId: this.envSrv.env.appId, + }, + name: 'multipartFile', + multiple: false, + listType: 'picture-card', + change: (args: any) => { + if (args.type === 'success') { + this.detailData.userPracticeSeniorityDTO.certificatePhoto = args.file.response.data.fullFilePath + this.checkQualificationCertificate(args.file.response.data.fullFilePath); + } else{ + this.detailData.userPracticeSeniorityDTO.certificatePhoto = '' + } + }, + beforeUpload: (file: any, _fileList: any) => { + return new Observable((observer: Observer) => { + const isLt2M = file.size / 1024 / 1024 < 5; + if (!isLt2M) { + this.service.msgSrv.warning('图片大小超过5M!'); + observer.complete(); + return; + } + observer.next(isLt2M); + observer.complete(); + }); + }, + previewFile: (file: NzUploadFile) => of(file.url),} + }, + agreeImg: { + title: '', + type: 'boolean', + // enum: [{ label: '长期', value: true }], + ui: { + widget: 'custom', + } + }, + licenseNo: { + title: '从业资格证号', + type: 'string', + maxLength: 30, + ui: { + // widget: this.detailData.commitFlag !== 0 ? 'text' : '', + placeholder: '请输入', + }, + }, + regionCode: { + title: '签发省份', + type: 'string', + ui: { + widget: 'select', + placeholder: '请选择', + asyncData: () => this.getProvinceData(), + } as SFDateWidgetSchema, + }, + validStartTime: { + title: '发证日期', + type: 'string', + ui: { + widget: 'date', + format: 'yyyy-MM-dd', + placeholder: '请选择', + errors: { + required: '请选择起始日期', + }, + change: (i) => { }, + } as SFDateWidgetSchema, + }, + validEndTime: { + title: '有效期止', + type: 'string', + ui: { + widget: 'date', + format: 'yyyy-MM-dd', + placeholder: '请选择', + errors: { + required: '请选择终止日期', + }, + change: (i) => { }, + } as SFDateWidgetSchema, + }, + }, + required: [ + + ], }; this.ui = { '*': { spanLabelFixed: 180, grid: { span: 24 }, - width: 700 + width: 700, }, - $title1: { - spanLabelFixed: 0 - }, - $title2: { - spanLabelFixed: 0 - }, - $title3: { - spanLabelFixed: 0 - }, - $title4: { - spanLabelFixed: 0 - }, - $enterpriseRegistrationTime: { - width: 680 - }, - $operatingEndTime: { - grid: { span: 9 } - }, - $dateType: { - grid: { span: 4 } - }, - $validEndTime: { - grid: { span: 9 } - }, - $dateType01: { - grid: { span: 4 } - }, - $registrationCapital: { - grid: { span: 12 } - }, - $unit: { - spanLabelFixed: 20, - grid: { span: 3 } - } }; + this.ui2 = { + '*': { + spanLabelFixed: 180, + grid: { span: 18 }, + width: 600, + }, + $titleB:{ + grid: { span: 24 }, + }, + $certificatePhotoWatermark: { + grid: { span: 12 }, + }, + $roadImg: { + grid: { span: 4 }, + class: 'setCustom' + }, + }; + this.ui3 = { + '*': { + spanLabelFixed: 180, + grid: { span: 18 }, + width: 600, + }, + $titleC:{ + grid: { span: 24 }, + }, + $certificatePhotoWatermark: { + grid: { span: 12 }, + }, + $agreeImg: { + grid: { span: 4 }, + class: 'setCustom' + }, + }; + } + checkQualificationCertificate(imgurl: any) { + // 识别从业资格证 参数side:0-正面、1-背面;type:0-申请人身份证,1-法定代表人身份证 + const params = { + qualificationCertificateUrl: imgurl, + }; + this.service.request(this.service.$api_recognizeQualificationCertificate, params).subscribe((res: any) => { + if (res) { + this.sf2.setValue('/licenseNo', res.certificateNumber); + this.sf2.setValue('/regionCode', res.addressRegionCodes[0]); + res.qualificationCategoryList.forEach((item: any) => { + console.log(item.category.indexOf('道路货物运输驾驶员') !== -1) + if (item.category.indexOf('道路货物运输驾驶员') !== -1) { + this.sf2.setValue('/validStartTime', item.initialIssueDate.split(' ')[0]); + this.sf2.setValue('/validEndTime', item.expiryDate.split(' ')[0]); + } + }) + + } + }); } getProvinceData() { return this.service.request(this.service.$api_getRegionByCode, { regionCode: '' }).pipe( map((res: any) => { - const result: any = []; + const result: any = [] if (res) { res.map((m: any) => { - const item = { label: m.name, value: m.regionCode }; - result.push(item); + const item = { label: m.name, value: m.regionCode } + result.push(item) }); } - return result; + return result }) ); } @@ -457,9 +550,9 @@ export class CarAddDriverComponent implements OnInit { // 识别身份证 参数side:0-正面、1-背面;type:0-申请人身份证,1-法定代表人身份证 const params = { idCardUrl: imgurl, - side + side, }; - this.service.request(this.service.$api_checkIdCard, params).subscribe((res: any) => { + this.service.request(this.service.$api_checkIdCard, params).subscribe((res: any)=> { if (res) { if (type === 0) { // 法定代表人身份证 @@ -476,7 +569,7 @@ export class CarAddDriverComponent implements OnInit { // 识别身份证 参数side:0-正面、1-背面;type:0-申请人身份证,1-法定代表人身份证 const params = { driverLicenseUrl: imgurl, - side + side, }; this.service.request(this.service.$api_recognizeDriverLicense, params).subscribe((res: any) => { if (res) { @@ -485,7 +578,7 @@ export class CarAddDriverComponent implements OnInit { if (side === 'front') { // 正面 this.sf1.setValue('/licenseNo', res.number); - this.sf1.setValue('/driverModel', res.number); + this.sf1.setValue('/driverModel', [(res.classType).toUpperCase()]); this.sf1.setValue('/validStartTime', res.validFrom); this.sf1.setValue('/validEndTime', res.validTo); this.sf1.setValue('/signingOrganization', res.issuingAuthority); @@ -497,59 +590,51 @@ export class CarAddDriverComponent implements OnInit { close(): void { this.modal.destroy(); } - showExample() { - this.showCardFlag = !this.showCardFlag; + showExample(){ + this.showCardFlag = !this.showCardFlag } - showJopExample() { - this.showJopFlag = !this.showJopFlag; + showJopExample(){ + this.showJopFlag = !this.showJopFlag } - submitForm() { - const params: any = { - enterpriseId: this.companyData.enterpriseId, - enterpriseProjectId: this.companyData.projectId, + submitForm(){ + const params:any = { source: 1, - mobile: this.mobile, - identityInfoDTO: { + mobile: this.sf.value.mobile, + identityInfoDTO:{ ...this.sf.value, certificatePhotoFront: this.detailData.certificatePhotoFront, - certificatePhotoBack: this.detailData.certificatePhotoBack + certificatePhotoBack: this.detailData.certificatePhotoBack, }, userDriverLicenseDTO: { ...this.sf1.value, - certificatePhoto: this.detailData.userDriverLicenseDTO.certificatePhoto + certificatePhoto: this.detailData.userDriverLicenseDTO.certificatePhoto, }, userPracticeSeniorityDTO: { ...this.sf2.value, - certificatePhoto: this.detailData.userPracticeSeniorityDTO.certificatePhoto - } + certificatePhoto: this.detailData.userPracticeSeniorityDTO.certificatePhoto, + }, }; - Object.assign(params, { - identityInfoDTO: { - certificatePhotoFrontWatermark: this.sf?.value.certificatePhotoFrontWatermark, - certificatePhotoBackWatermark: this.sf?.value.certificatePhotoBackWatermark - }, - userDriverLicenseDTO: { - certificatePhotoWatermark: this.sf?.value.certificatePhotoWatermark - }, - userPracticeSeniorityDTO: { - certificatePhotoWatermark: this.sf?.value.certificatePhotoWatermark - } - }); - // params.identityInfoDTO.certificatePhotoFrontWatermark = this.sf?.value.certificatePhotoFrontWatermark; - // params.identityInfoDTO.certificatePhotoBackWatermark = this.sf?.value.certificatePhotoBackWatermark; - // params.userDriverLicenseDTO.certificatePhotoWatermark = this.sf1?.value.certificatePhotoWatermark; - // params.userPracticeSeniorityDTO.certificatePhotoWatermark = this.sf2?.value.certificatePhotoWatermark; + if(params.userPracticeSeniorityDTO.certificatePhoto === '' || params.userPracticeSeniorityDTO.certificatePhotoWatermark === '') { + delete params.userPracticeSeniorityDTO.certificatePhotoWatermark + delete params.userPracticeSeniorityDTO.certificatePhoto + } + params.userDriverLicenseDTO.driverModel = params.userDriverLicenseDTO.driverModel.join(',') + delete params.identityInfoDTO.showName; delete params.identityInfoDTO.titleA; - delete params.identityInfoDTO.titleB; - delete params.identityInfoDTO.titleC; + delete params.userDriverLicenseDTO.titleB; + delete params.userPracticeSeniorityDTO.titleC; delete params.userDriverLicenseDTO.tipsA; delete params.userPracticeSeniorityDTO.tipsC; - delete params.showName; + if(JSON.stringify(params.userPracticeSeniorityDTO) === '{}') { + params.userPracticeSeniorityDTO = null + } + this.checked = true this.service.request(this.service.$api_enterpriseVehicleSave, params).subscribe((res: any) => { - if (res) { - this.service.msgSrv.success('添加成功'); - this.modal.close(true); + this.checked = false + if(res){ + this.service.msgSrv.success('添加成功') + this.modal.close(true) } - }); + }) } } diff --git a/src/app/routes/supply-management/components/assigned-car/assigned-car.component.ts b/src/app/routes/supply-management/components/assigned-car/assigned-car.component.ts index 929c2973..1793c83e 100644 --- a/src/app/routes/supply-management/components/assigned-car/assigned-car.component.ts +++ b/src/app/routes/supply-management/components/assigned-car/assigned-car.component.ts @@ -119,7 +119,15 @@ export class SupplyManagementVehicleAssignedCarComponent implements OnInit { nzContent: '该司机还未注册,是否邀请他注册?点击"是"系统将发送邀请短信给司机', nzOkText: '确定', nzCancelText: '取消', - nzOnOk: () => console.log('OK') + nzOnOk: () => { + this.sendMsg(this.sf?.value?.nameOrPhone).subscribe((res => { + if (res.code === '1') { + this.service.msgSrv.success('发送成功'); + } else { + this.service.msgSrv.success('发送失败'); + } + })); + } }); return []; } @@ -256,5 +264,11 @@ export class SupplyManagementVehicleAssignedCarComponent implements OnInit { }); } + /** +* 发送邀请司机注册短信 +*/ + sendMsg(phoneNumber: string) { + return this.service.request(this.service.$api_send_msg_code, phoneNumber) + } } diff --git a/src/app/routes/supply-management/components/bulk/bulk.component.html b/src/app/routes/supply-management/components/bulk/bulk.component.html index 3061d17c..570e07f3 100644 --- a/src/app/routes/supply-management/components/bulk/bulk.component.html +++ b/src/app/routes/supply-management/components/bulk/bulk.component.html @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2022-01-12 10:52:50 * @LastEditors : Shiming - * @LastEditTime : 2022-03-04 15:45:58 + * @LastEditTime : 2022-03-25 16:51:13 * @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\components\\bulk\\bulk.component.html * Copyright (C) 2022 huzhenhong. All rights reserved. --> @@ -86,7 +86,7 @@ {{ item?.resourceCode }}
{{ item?.resourceTypeLabel }}{{ item?.serviceTypeLabel }}
-
{{ item?.resourceStatusLabel }}
+
{{ item?.resourceStatusLabel === '已完成' ? '已完结' : item?.resourceStatusLabel }}
diff --git a/src/app/routes/supply-management/components/choose-famifiar/choose-famifiar.component.ts b/src/app/routes/supply-management/components/choose-famifiar/choose-famifiar.component.ts index 9b9d33c0..3b5ada90 100644 --- a/src/app/routes/supply-management/components/choose-famifiar/choose-famifiar.component.ts +++ b/src/app/routes/supply-management/components/choose-famifiar/choose-famifiar.component.ts @@ -246,7 +246,15 @@ export class PublishGoodsChooseFamifiarComponent implements OnInit { nzContent: '该司机还未注册,是否邀请他注册?点击"是"系统将发送邀请短信给司机', nzOkText: '确定', nzCancelText: '取消', - nzOnOk: () => console.log('OK') + nzOnOk: () => { + this.sendMsg(this.sf?.value?.nameOrPhone).subscribe((res => { + if (res.code === '1') { + this.service.msgSrv.success('发送成功'); + } else { + this.service.msgSrv.success('发送失败'); + } + })); + } }); return []; } @@ -327,4 +335,11 @@ export class PublishGoodsChooseFamifiarComponent implements OnInit { } }); } + + /** +* 发送邀请司机注册短信 +*/ + sendMsg(phoneNumber: string) { + return this.service.request(this.service.$api_send_msg_code, phoneNumber) + } } diff --git a/src/app/routes/supply-management/components/tran-agreement/tran-agreement.component.ts b/src/app/routes/supply-management/components/tran-agreement/tran-agreement.component.ts index 0ac169c4..a70664c4 100644 --- a/src/app/routes/supply-management/components/tran-agreement/tran-agreement.component.ts +++ b/src/app/routes/supply-management/components/tran-agreement/tran-agreement.component.ts @@ -1,15 +1,15 @@ /* - * @Description : + * @Description : * @Version : 1.0 * @Author : Shiming * @Date : 2022-02-24 20:19:51 * @LastEditors : Shiming - * @LastEditTime : 2022-03-10 10:27:21 + * @LastEditTime : 2022-03-23 19:57:34 * @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\components\\tran-agreement\\tran-agreement.component.ts * Copyright (C) 2022 huzhenhong. All rights reserved. */ /* - * @Description : + * @Description : * @Version : 1.0 * @Author : Shiming * @Date : 2022-01-06 15:01:40 @@ -28,111 +28,136 @@ import { SupplyManagementService } from '../../services/supply-management.servic styleUrls: ['./tran-agreement.component.less'] }) export class TranAgreementComponent { - enterpriseInfo:any; // 网络货运人 - type:any; + enterpriseInfo: any; // 网络货运人 + type: any; object: any; - agreement:any; - envCache:any; - shipperName:any; - constructor(private modal: NzModalRef,public service: SupplyManagementService,) { - - } + agreement: any; + envCache: any; + shipperName: any; + constructor(private modal: NzModalRef, public service: SupplyManagementService) {} ngOnInit() { - console.log(this.object) - // 获取托运人承运人信息 - this.service.request(this.service.$api_getContractAtr,{id:this.object?.shipperAppUserId}).subscribe(res => { - if (res) { - this.enterpriseInfo = res - this.getContent(); - } - }); - - + console.log(this.object); + // 获取托运人承运人信息 + this.service.request(this.service.$api_getContractAtr, { id: this.object?.shipperAppUserId }).subscribe(res => { + if (res) { + this.enterpriseInfo = res; + this.getContent(); + } + }); } getContent() { - let params:any; - if(this.type ==='onecar'){ - - params = { - contractType:'1', - resourceType: '1', - signingObject: '1', - templateType: 'MX', - parametersDTO: { - contractCode:'', - shipperLegalPersonName:this.enterpriseInfo.legalPersonName || '', //托运法定代表人 - carrierLegalPersonName:this.enterpriseInfo.netLegalPersonName || '', //承运法定代表人 - shipperName:this?.shipperName || '', //托运人 - carrierName:this.object?.enterpriseInfoName || '', //承运人 - consignorInfo: `${this.object?.unLoadingPlaceDTOList[0]?.appUserName || ''} ${this.object?.unLoadingPlaceDTOList[0]?.contractTelephone || ''}`, // 发货信息 - consignorAddress: this.object?.unLoadingPlaceDTOList[0].detailedAddress || '', // 发货地址 - consignorDate: this.object?.loadingTime || '', // 发货时间 - consigneeInfo: `${this.object?.unLoadingPlaceDTOList[this.object?.unLoadingPlaceDTOList.length-1].appUserName} ${this.object?.unLoadingPlaceDTOList[this.object?.unLoadingPlaceDTOList.length-1].contractTelephone}`, // 收货信息 - consigneeDate: this.object?.unloadingTime || '', // 收货时间 - consigneeAddress: this.object?.unLoadingPlaceDTOList[this.object?.unLoadingPlaceDTOList.length-1].detailedAddress || '', // 收货地址 - goodsName:this.object?.goodsInfoDTOList[0].goodsName || '', // 货物名称 - shippingType:'整车运输', - consignmentVolume:`${this.object?.goodsInfoDTOList[0]?.weight || '-'}吨/${this.object?.goodsInfoDTOList[0]?.volume || '-'}方/${this.object?.goodsInfoDTOList[0]?.number || '-'}件`, //托运量 - transporterInfo:'', //运输方信息 - freightAmount:this.object?.total || '', // 订单运费金额(元) - pre:this.object?.expenseDTOList?.filter((item:any) => item.expenseCode === 'PRE')[0].price || '', //预付 - rece:this.object?.expenseDTOList?.filter((item:any) => item.expenseCode === 'RECE')[0].price || '',// 到付 - back:this.object?.expenseDTOList?.filter((item:any) => item.expenseCode === 'BACK')[0].price || '', // 回单付 - lunarKnot:0, - total:this.object?.subtotal || '', // 合计(元) - paymentTime:`到货后${this.object?.paymentDays || ''}天`, // 承诺支付运费时间 - year:new Date().getFullYear() || '', // 签约年份 - month:new Date().getMonth()+1 || '', // 签约月份 - day:new Date().getDate() || '', // 签约日期 - } - } - } else if(this.type ==='bulk'){ + let params: any; + if (this.type === 'onecar') { params = { - contractType:'1', + contractType: '1', + resourceType: '1', + signingObject: '1', + templateType: 'MX', + parametersDTO: { + contractCode: '', + shipperLegalPersonName: this.enterpriseInfo.legalPersonName || '', //托运法定代表人 + carrierLegalPersonName: this.enterpriseInfo.netLegalPersonName || '', //承运法定代表人 + shipperName: this?.shipperName || '', //托运人 + carrierName: this.object?.enterpriseInfoName || '', //承运人 + consignorInfo: `${this.object?.unLoadingPlaceDTOList[0]?.appUserName || ''} ${ + this.object?.unLoadingPlaceDTOList[0]?.contractTelephone || '' + }`, // 发货信息 + consignorAddress: this.object?.unLoadingPlaceDTOList[0].detailedAddress || '', // 发货地址 + consignorDate: this.object?.loadingTime || '', // 发货时间 + consigneeInfo: `${this.object?.unLoadingPlaceDTOList[this.object?.unLoadingPlaceDTOList.length - 1].appUserName} ${ + this.object?.unLoadingPlaceDTOList[this.object?.unLoadingPlaceDTOList.length - 1].contractTelephone + }`, // 收货信息 + consigneeDate: this.object?.unloadingTime || '', // 收货时间 + consigneeAddress: this.object?.unLoadingPlaceDTOList[this.object?.unLoadingPlaceDTOList.length - 1].detailedAddress || '', // 收货地址 + goodsName: this.object?.goodsInfoDTOList[0].goodsName || '', // 货物名称 + shippingType: '整车运输', + consignmentVolume: `${this.object?.goodsInfoDTOList[0]?.weight || '-'}吨/${this.object?.goodsInfoDTOList[0]?.volume || '-'}方/${ + this.object?.goodsInfoDTOList[0]?.number || '-' + }件`, //托运量 + transporterInfo: '', //运输方信息 + freightAmount: this.object?.total || '', // 订单运费金额(元) + pre: this.object?.expenseDTOList?.filter((item: any) => item.expenseCode === 'PRE')[0].price || '', //预付 + rece: this.object?.expenseDTOList?.filter((item: any) => item.expenseCode === 'RECE')[0].price || '', // 到付 + back: this.object?.expenseDTOList?.filter((item: any) => item.expenseCode === 'BACK')[0].price || '', // 回单付 + lunarKnot: 0, + total: this.object?.subtotal || '', // 合计(元) + paymentTime: `到货后${this.object?.paymentDays || ''}天`, // 承诺支付运费时间 + year: new Date().getFullYear() || '', // 签约年份 + month: new Date().getMonth() + 1 || '', // 签约月份 + day: new Date().getDate() || '' // 签约日期 + } + }; + } else if (this.type === 'bulk') { + params = { + contractType: '1', resourceType: '2', signingObject: '1', templateType: 'MX', parametersDTO: { - contractCode:'', - shipperName:this?.shipperName || '', //托运人 - carrierName:this.object?.enterpriseInfoName || '', //承运人 - shipperLegalPersonName:this.enterpriseInfo.legalPersonName || '', //托运法定代表人 - carrierLegalPersonName:this.enterpriseInfo.netLegalPersonName || '', //承运法定代表人 - consignorInfo: `${this.object.unLoadingPlaceDTOList[0]?.appUserName || ''} ${this.object.unLoadingPlaceDTOList[0]?.contractTelephone || ''}`, // 发货信息 + contractCode: '', + shipperName: this?.shipperName || '', //托运人 + carrierName: this.object?.enterpriseInfoName || '', //承运人 + shipperLegalPersonName: this.enterpriseInfo.legalPersonName || '', //托运法定代表人 + carrierLegalPersonName: this.enterpriseInfo.netLegalPersonName || '', //承运法定代表人 + consignorInfo: `${this.object.unLoadingPlaceDTOList[0]?.appUserName || ''} ${ + this.object.unLoadingPlaceDTOList[0]?.contractTelephone || '' + }`, // 发货信息 consignorAddress: this.object.unLoadingPlaceDTOList[0].detailedAddress, // 发货地址 consignorDate: '', // 发货时间 - consigneeInfo: `${this.object.unLoadingPlaceDTOList[this.object.unLoadingPlaceDTOList.length-1]?.appUserName || ''} ${this.object.unLoadingPlaceDTOList[this.object.unLoadingPlaceDTOList.length-1]?.contractTelephone || ''}`, // 收货信息 + consigneeInfo: `${this.object.unLoadingPlaceDTOList[this.object.unLoadingPlaceDTOList.length - 1]?.appUserName || ''} ${ + this.object.unLoadingPlaceDTOList[this.object.unLoadingPlaceDTOList.length - 1]?.contractTelephone || '' + }`, // 收货信息 consigneeDate: '', // 收货时间 - consigneeAddress: this.object.unLoadingPlaceDTOList[this.object.unLoadingPlaceDTOList.length-1]?.detailedAddress || '', // 收货地址 - goodsName:this.object.goodsInfoDTOList[0]?.goodsName || '', // 货物名称 - shippingType:'大宗运输', - consignmentVolume:`${this.object?.goodsInfoDTOList?.[0]?.weight|| '-'}吨/${this.object?.goodsInfoDTOList?.[0]?.volume || '-'}方/${this.object.goodsInfoDTOList?.[0]?.number || '-'}车`, //托运量 - transporterInfo:'', //运输方信息 - freightAmount:'', // 订单运费金额(元) - pre:'', //预付 - rece:'',// 到付 - back:'',// 回单付 - lunarKnot:'', - total:'', // 合计(元) - paymentTime:`到货后${this.object?.paymentDays || ''}天`, // 承诺支付运费时间 - year:new Date().getFullYear() || '', // 签约年份 - month:new Date().getMonth()+1 || '', // 签约月份 - day:new Date().getDate() || '', // 签约日期 - }, - } + consigneeAddress: this.object.unLoadingPlaceDTOList[this.object.unLoadingPlaceDTOList.length - 1]?.detailedAddress || '', // 收货地址 + goodsName: this.object.goodsInfoDTOList[0]?.goodsName || '', // 货物名称 + shippingType: '大宗运输', + consignmentVolume: `${this.object?.goodsInfoDTOList?.[0]?.weight || '-'}吨/${ + this.object?.goodsInfoDTOList?.[0]?.volume || '-' + }方/${this.object.goodsInfoDTOList?.[0]?.number || '-'}车`, //托运量 + transporterInfo: '', //运输方信息 + freightAmount: '', // 订单运费金额(元) + pre: '', //预付 + rece: '', // 到付 + back: '', // 回单付 + lunarKnot: '', + total: '', // 合计(元) + paymentTime: `到货后${this.object?.paymentDays || ''}天`, // 承诺支付运费时间 + year: new Date().getFullYear() || '', // 签约年份 + month: new Date().getMonth() + 1 || '', // 签约月份 + day: new Date().getDate() || '' // 签约日期 + } + }; } - console.log(params) - this.service.request(this.service.$api_getContractContent,params).subscribe((res) => { + if (params.parametersDTO.freightAmount) { + params.parametersDTO.freightAmount = this.toThousands(params.parametersDTO.freightAmount); + } + if (params.parametersDTO.pre) { + params.parametersDTO.pre = this.toThousands(params.parametersDTO.pre); + } + if (params.parametersDTO.rece) { + params.parametersDTO.rece = this.toThousands(params.parametersDTO.rece); + } + if (params.parametersDTO.back) { + params.parametersDTO.back = this.toThousands(params.parametersDTO.back); + } + if (params.parametersDTO.total) { + params.parametersDTO.total = this.toThousands(params.parametersDTO.total); + } + console.log(params); + this.service.request(this.service.$api_getContractContent, params).subscribe(res => { if (res) { this.agreement = res.contractContent; } }); } - handleOk(){ + + toThousands(num: any) { + let str = num.toString(); + return '¥' + str.replace(/(\d)(?=(?:\d{3})+$)/g, '$1,'); + } + handleOk() { this.modal.close(true); } - - } diff --git a/src/app/routes/supply-management/components/vehicle/vehicle.component.ts b/src/app/routes/supply-management/components/vehicle/vehicle.component.ts index 1b9be03d..ce7d90c6 100644 --- a/src/app/routes/supply-management/components/vehicle/vehicle.component.ts +++ b/src/app/routes/supply-management/components/vehicle/vehicle.component.ts @@ -147,11 +147,52 @@ export class SupplyManagementVehicleComponent implements OnInit { this.st.load(1); }, 500); } - /** * 导入货源 */ - importGoodsSource() { } + importGoodsSource() { + const modalRef = this.modal.create({ + nzTitle: '货源导入', + nzWidth: 600, + nzContent: SupplyManagementImportSupplyComponent, + nzComponentParams: { + // i: item + }, + nzFooter: null + }); + modalRef.afterClose.subscribe(result => { + if (result) { + const tipsModal = this.modal.create({ + nzTitle: '上传提示', + nzWidth: 600, + nzContent: `
文件上传完成!成功${result?.successNumber}条,失败${result?.failNumber}条!
`, + nzFooter: [ + { + label: '取 消', + type: 'default', + onClick: () => { + tipsModal.destroy(); + } + }, + { + label: '下载失败数据', + type: 'primary', + loading: this.service.http.loading, + onClick: () => { + if(!result?.failNumber) { + this.service.msgSrv.error('没有失败数据!'); + tipsModal.destroy(); + return; + } + this.service.downloadFile(this.service.$api_getFailUploadGoodsOperateResource, result.ids) + tipsModal.destroy(); + } + }, + ] + }) + } + }); + } /** * 修改运费 @@ -425,7 +466,7 @@ export class SupplyManagementVehicleComponent implements OnInit { title: '所属项目', ui: { widget: 'select', - placeholder: '请选择', + placeholder: '请先选择货主', visibleIf: { _$expand: (value: boolean) => value } diff --git a/src/app/routes/supply-management/services/supply-management.service.ts b/src/app/routes/supply-management/services/supply-management.service.ts index 1a69f9cd..10cbc648 100644 --- a/src/app/routes/supply-management/services/supply-management.service.ts +++ b/src/app/routes/supply-management/services/supply-management.service.ts @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2021-12-03 11:10:14 * @LastEditors : Shiming - * @LastEditTime : 2022-03-07 13:54:46 + * @LastEditTime : 2022-03-24 19:35:52 * @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\services\\supply-management.service.ts * Copyright (C) 2022 huzhenhong. All rights reserved. */ @@ -119,6 +119,8 @@ export class SupplyManagementService extends BaseService { public $api_getContractContent = '/api/sdc/contractTemplate/getContractContent'; // 获取运价 public $api_getFreight = '/api/mdc/cuc/freightConfig/getFreight'; + // 从业资格证 + $api_recognizeQualificationCertificate = '/api/mdc/pbc/hwc/ocr/recognizeQualificationCertificate'; /** * 获取车型、车长字典数据 * @returns @@ -175,6 +177,8 @@ export class SupplyManagementService extends BaseService { $api_asyncExportWholeList = '/api/sdc/goodsResourceOperate/asyncExportWholeList'; // 根据货主ID查询合同签署属性 public $api_getContractAtr = '/api/mdc/cuc/enterpriseInfo/cargoOwner/getContractAtr'; + // 发送邀请司机短信 + $api_send_msg_code = `/api/mdc/pbc/smsSend/sendInviteDriver`; getDictByKey(dictKey: string) { const params = { dictKey: dictKey }; diff --git a/src/app/routes/sys-setting/components/network-freight/network-freight.component.html b/src/app/routes/sys-setting/components/network-freight/network-freight.component.html index 278aea3f..dc1c1f86 100644 --- a/src/app/routes/sys-setting/components/network-freight/network-freight.component.html +++ b/src/app/routes/sys-setting/components/network-freight/network-freight.component.html @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2021-12-24 15:54:08 * @LastEditors : Shiming - * @LastEditTime : 2022-02-17 19:58:06 + * @LastEditTime : 2022-03-24 11:10:44 * @FilePath : \\tms-obc-web\\src\\app\\routes\\sys-setting\\components\\network-freight\\network-freight.component.html * Copyright (C) 2022 huzhenhong. All rights reserved. --> @@ -96,7 +96,7 @@ - + @@ -117,9 +117,11 @@
- + + +
diff --git a/src/app/routes/sys-setting/components/network-freight/network-freight.component.ts b/src/app/routes/sys-setting/components/network-freight/network-freight.component.ts index c9a89f61..a334b188 100644 --- a/src/app/routes/sys-setting/components/network-freight/network-freight.component.ts +++ b/src/app/routes/sys-setting/components/network-freight/network-freight.component.ts @@ -1,10 +1,19 @@ import { Component, OnInit, ViewChild } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; import { STComponent, STColumn, STChange } from '@delon/abc/st'; -import { SFCascaderWidgetSchema, SFComponent, SFRadioWidgetSchema, SFSchema, SFUISchema } from '@delon/form'; +import { + SFCascaderWidgetSchema, + SFComponent, + SFRadioWidgetSchema, + SFSchema, + SFSchemaEnum, + SFSelectWidgetSchema, + SFUISchema +} from '@delon/form'; import { DynamicSettingModalComponent, SinglepageSettingModalComponent } from '@shared'; import { NzModalService } from 'ng-zorro-antd/modal'; -import { takeLast } from 'rxjs/operators'; +import { of } from 'rxjs'; +import { map, takeLast } from 'rxjs/operators'; import { AccountDetailComponent } from 'src/app/shared/components/account-detail/account-detail.component'; import { SystemService } from '../../services/system.service'; @@ -20,26 +29,33 @@ export class NetworkFreightComponent implements OnInit { @ViewChild('sfFre', { static: false }) sfFre!: SFComponent; @ViewChild('sfTicket', { static: false }) sfTicket!: SFComponent; @ViewChild('sfTax', { static: false }) sfTax!: SFComponent; + @ViewChild('sfNC', { static: false }) sfNC!: SFComponent; ui: SFUISchema = {}; ui2: SFUISchema = {}; ui3: SFUISchema = {}; ui4: SFUISchema = {}; + ui5: SFUISchema = {}; schema: SFSchema = {}; addSchema: SFSchema = {}; ticketSchema: SFSchema = {}; TaxSchema: SFSchema = {}; - _$expand = false; - taxStatus = false; + NCSchema: SFSchema = {}; + _$expand: boolean = false; + taxStatus: boolean = false; + TicketStatus: boolean = true; + NCStatus: boolean = false; formData: any; ticketId: any; ticketItem: any; formDataTicket: any; + formDataNC: any; formDataTax: any; + NCID: string = ''; isVisible = false; isVisibleTicket = false; edit = false; editId = false; - tabs: any[] = [{ name: '开票设置' }, { name: '税务设置' }]; + tabs: any[] = [{ name: '开票设置' }, { name: '税务设置' }, { name: 'NC设置' }]; columns: STColumn[] = [ { @@ -109,29 +125,28 @@ export class NetworkFreightComponent implements OnInit { fixed: 'right', className: 'text-center', buttons: [ + { type: 'divider' }, { - text: '基础设置', + text: '基础设置
', click: item => this.creat(item) }, { - text: '财务设置', + text: '财务设置
', click: item => this.ticket(item) }, { - text: '充值账户', + text: '充值账户
', click: item => this.settingPay(item) }, { - text: '应用设置', + text: '应用设置
', click: item => this.settingApp(item) }, { - text: '系统配置', + text: '系统配置
', click: item => this.settingAction(item) }, - { type: 'divider' }, - // { // text: '合同设置', // click: item => this.roleAction(item, 2) @@ -329,9 +344,9 @@ export class NetworkFreightComponent implements OnInit { 'drawer' ] }; - this.ui3 = { - '*': { spanLabelFixed: 150, grid: { span: 24 } }, - '$taxClassificationVersion': { spanLabelFixed: 150, grid: { span: 24 } }, + this.ui3 = { + '*': { spanLabelFixed: 150, grid: { span: 24 } }, + $taxClassificationVersion: { spanLabelFixed: 150, grid: { span: 24 } } }; } initSFTax() { @@ -350,6 +365,41 @@ export class NetworkFreightComponent implements OnInit { }; this.ui4 = { '*': { spanLabelFixed: 120, grid: { span: 24 } } }; } + initSFNC() { + this.NCSchema = { + properties: { + crmCustomerId: { + type: 'string', + title: 'CRM客户编码', + ui: { + widget: 'select', + serverSearch: true, + searchDebounceTime: 300, + searchLoadingText: '搜索中...', + visibleIf: { + _$expand: (value: boolean) => value + }, + allowClear: true, + onSearch: (q: any) => { + let str = q.replace(/^\s+|\s+$/g, ''); + if (str) { + console.log(str); + + return this.service + .request(this.service.$api_get_crmCustomer_page, { customerName: str }) + .pipe(map((res: any) => (res.records as any[]).map(i => ({ label: i.customerName, value: i.id } as SFSchemaEnum)))) + .toPromise(); + } else { + return of([]); + } + } + } as SFSelectWidgetSchema + } + }, + required: ['crmCustomerId'] + }; + this.ui5 = { '*': { spanLabelFixed: 120, grid: { span: 24 } } }; + } initSFFre() { this.addSchema = { properties: { @@ -397,36 +447,62 @@ export class NetworkFreightComponent implements OnInit { // 财务设置 ticket(value: any) { this.formDataTicket = []; + this.formDataNC = []; this.formDataTax = []; this.ticketItem = value; + this.taxStatus = false; + this.TicketStatus = true; + this.NCStatus = false; this.initSFTax(); + this.initSFNC(); this.initSFTicket(); - this.service.request(this.service.$api_getTicketByNetworkTransporterId, { id: value.id }).subscribe((res: any) => { + this.NCID = value.id; + if (this.TicketStatus) { + console.log('9999999'); + + this.service.request(this.service.$api_getTicketByNetworkTransporterId, { id: value.id }).subscribe((res: any) => { + console.log(res); + if (res) { + let List = { + ...res + }; + delete List.senderRegionCode; + (List.senderRegionCode = this.getProvinceData(res?.senderRegionCode)), (this.formDataTicket = List); + this.ticketId = res.id; + } + }); + } + if (this.NCStatus) { + this.getNcSetData(); + } + this.isVisibleTicket = true; + } + getNcSetData() { + const List: any = []; + console.log(99999); + this.service.request(this.service.$api_get_crmCustomer, { id: this.ticketItem.crmCustomerId }).subscribe((res: any) => { console.log(res); if (res) { - let List = { - ...res - }; - delete List.senderRegionCode; - (List.senderRegionCode = this.getProvinceData(res?.senderRegionCode)), (this.formDataTicket = List); - this.ticketId = res.id; + List.push({ label: res.customerName, value: res.id }); + console.log(List); + + this.sfNC.getProperty('/crmCustomerId')!.schema.enum = List; + this.sfNC.getProperty('/crmCustomerId')!.widget.reset(List); + this.sfNC.setValue('/crmCustomerId', res?.id); } }); - this.isVisibleTicket = true; } getProvinceData(value: any) { this.service.http.post(this.service.$api_getRegionDetailByCode, { regionCode: value }).subscribe(res => { - console.log(res.data); - console.log(this.formDataTicket); let enterpriseAddressCode: any = []; let regioin = res?.data?.regionFullCodes.split(','); - console.log(regioin); regioin?.forEach((element: any) => { enterpriseAddressCode.push(Number(element)); }); - console.log(enterpriseAddressCode); - this.sfTicket.setValue('/senderRegionCode', enterpriseAddressCode); - return enterpriseAddressCode; + if (this.TicketStatus) { + this.sfTicket.setValue('/senderRegionCode', enterpriseAddressCode); + return enterpriseAddressCode; + } }); } deleteAction(item?: any) { @@ -517,27 +593,55 @@ export class NetworkFreightComponent implements OnInit { this.isVisibleTicket = false; } handleOKTicket() { - console.log(this.sfTicket.valid); - console.log(this.sfTicket.value); - if (!this.sfTicket.valid) { - this.service.msgSrv.warning('请正确填写完整!'); - return; - } - const params = { - ...this.sfTicket.value - }; - if (this.ticketId) { - params.id = this.ticketId; - } - params.senderRegionCode = this.sfTicket.value.senderRegionCode[2]; - console.log(params); - this.service.request(this.service.$api_networkTransporterTicket_save, params).subscribe((res: any) => { - if (res) { - this.service.msgSrv.success('保存成功!'); - this.isVisibleTicket = false; - this.st.reload(1); + console.log(this.taxStatus, this.TicketStatus, this.NCStatus); + if (this.TicketStatus) { + console.log(this.sfTicket); + console.log(this.sfTicket.value); + + if (!this.sfTicket.valid) { + this.service.msgSrv.warning('请正确填写完整!'); + return; } - }); + const params = { + ...this.sfTicket.value + }; + if (this.ticketId) { + params.id = this.ticketId; + } + params.senderRegionCode = this.sfTicket.value.senderRegionCode[2]; + console.log(params); + this.service.request(this.service.$api_networkTransporterTicket_save, params).subscribe((res: any) => { + if (res) { + this.service.msgSrv.success('保存成功!'); + this.isVisibleTicket = false; + this.st.reload(1); + } + }); + } else if (this.NCStatus) { + console.log(this.sfNC); + console.log(this.formDataNC); + console.log(this.sfNC?.value); + + if (!this.sfNC.valid) { + this.service.msgSrv.warning('请正确填写完整!'); + return; + } + const params = { + ...this.sfNC.value + }; + if (this.NCID) { + params.id = this.NCID; + } + console.log(params); + this.service.request(this.service.$api_setCrmCustomer, params).subscribe((res: any) => { + if (res) { + this.service.msgSrv.success('保存成功!'); + this.isVisibleTicket = false; + this.st.reload(1); + } + }); + // api_setCrmCustomer + } } handleOK() { @@ -571,10 +675,18 @@ export class NetworkFreightComponent implements OnInit { return this.service.request(this.service.$api_get_region_by_code, { regionCode }); } changeType(value: any) { - console.log(value); if (value.name === '税务设置') { this.taxStatus = true; - } else { + this.TicketStatus = false; + this.NCStatus = false; + } else if (value.name === '开票设置') { + this.TicketStatus = true; + this.NCStatus = false; + this.taxStatus = false; + } else if (value.name === 'NC设置') { + this.getNcSetData(); + this.NCStatus = true; + this.TicketStatus = false; this.taxStatus = false; } } diff --git a/src/app/routes/sys-setting/services/system.service.ts b/src/app/routes/sys-setting/services/system.service.ts index ce4b3cfe..0a698775 100644 --- a/src/app/routes/sys-setting/services/system.service.ts +++ b/src/app/routes/sys-setting/services/system.service.ts @@ -173,6 +173,8 @@ export class SystemService extends BaseService { $api_ocr_recognize_id_card = '/api/mdc/pbc/hwc/ocr/recognizeIdCard'; // 获取字典 $api_getDictValue = '/api/mdc/pbc/dictItems/getDictValue'; + // 设置crm客户 + $api_setCrmCustomer = '/api/mdc/cuc/networkTransporter/setCrmCustomer'; // 获取一、二、三级地区详情 $api_getRegionToThree = '/api/mdc/pbc/region/getRegionToThree'; $api_getRoleTemplateInfo: string = ''; diff --git a/src/app/routes/ticket-management/components/cancellation-invoice/cancellation-invoice.component.html b/src/app/routes/ticket-management/components/cancellation-invoice/cancellation-invoice.component.html index 19420a9d..c31db228 100644 --- a/src/app/routes/ticket-management/components/cancellation-invoice/cancellation-invoice.component.html +++ b/src/app/routes/ticket-management/components/cancellation-invoice/cancellation-invoice.component.html @@ -45,12 +45,11 @@
- + {{ item.vatinvcode }}
- +
@@ -58,6 +57,28 @@
+ +

公司名: {{openInfo?.artoname}}

+

税号: {{openInfo?.artotaxno}}

+

注册地址: {{openInfo?.artoadd}}

+

注册电话: {{openInfo?.artotel}}

+

开户行: {{openInfo?.artobank}}

+
+ + {{openInfo?.vatnameLable}} + + + {{openInfo?.vatremarks}} + + + {{openInfo?.otherremarks}} + + + {{openInfo?.isdetail?'需要':'不需要'}} + + + {{openInfo?.vatnotax | currency}} + @@ -65,6 +86,9 @@ + + +
\ No newline at end of file diff --git a/src/app/routes/ticket-management/components/cancellation-invoice/cancellation-invoice.component.ts b/src/app/routes/ticket-management/components/cancellation-invoice/cancellation-invoice.component.ts index 7bd939b9..5911e06b 100644 --- a/src/app/routes/ticket-management/components/cancellation-invoice/cancellation-invoice.component.ts +++ b/src/app/routes/ticket-management/components/cancellation-invoice/cancellation-invoice.component.ts @@ -2,9 +2,11 @@ import { CurrencyPipe } from '@angular/common'; 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, SFSelectWidgetSchema } from '@delon/form'; +import { SFComponent, SFSchema, SFDateWidgetSchema, SFSelectWidgetSchema, SFSchemaEnum } from '@delon/form'; import { dateTimePickerUtil } from '@delon/util'; import { NzModalService } from 'ng-zorro-antd/modal'; +import { of } from 'rxjs'; +import { map } from 'rxjs/operators'; import { TicketService } from '../../services/ticket.service'; import { RequestedInvoiceModalComponent } from '../invoice-requested/requested-invoice-modal/requested-invoice-modal.component'; import { PushInvoiceComponent } from './push-invoice/push-invoice.component'; @@ -29,10 +31,10 @@ export class CancellationInvoiceComponent implements OnInit { selectedRows: any[] = []; totalCallNo = 0; - openInfo: any = { invoicedate: null, invoiceno: null }; - constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) { } + openInfo: any = { invoicedate: null, invoiceno: null, invoiceno2: null }; + constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {} - ngOnInit(): void { } + ngOnInit(): void {} beforeReq = (requestOptions: STRequestOptions) => { if (this.sf) { @@ -78,34 +80,41 @@ export class CancellationInvoiceComponent implements OnInit { * @param item */ requestedAction(item: any) { - this.openInfo = { invoicedate: null, invoiceno: null }; - const modal = this.nzModalService.create({ - nzTitle: '发票确认', - nzContent: this.requestedModal, - nzOnOk: () => { - if (!this.openInfo?.invoicedate || !this.openInfo?.invoiceno) { - this.service.msgSrv.warning('请填开票信息'); - return false; - } - const params = { - invoiceno: this.openInfo.invoiceno, - invoicedate: dateTimePickerUtil.format(this.openInfo.invoicedate) - }; - this.service - .request(this.service.$api_apply_fico_invoic, { - id: item.id, - vatinvcode: item.vatinvcode, - ...params - }) - .subscribe(res => { - if (res) { - this.service.msgSrv.success('开票成功'); - this.st.load(1); - modal.destroy(); + this.openInfo = { invoicedate: null, invoiceno: null, invoiceno2: null }; + this.service.request(this.service.$api_get_apply_fico_info, { id: item.vatappHId }).subscribe(info => { + if (info) { + console.log(info); + Object.assign(this.openInfo, { ...info }); + const modal = this.nzModalService.create({ + nzTitle: '发票确认', + nzContent: this.requestedModal, + nzOnOk: () => { + if (!this.openInfo?.invoicedate || !this.openInfo?.invoiceno) { + this.service.msgSrv.warning('请填开票信息'); + return false; } - }); + const params = { + invoiceno: this.openInfo.invoiceno, + invoicedate: dateTimePickerUtil.format(this.openInfo.invoicedate), + invoiceno2: this.openInfo.invoiceno2 + }; + this.service + .request(this.service.$api_apply_fico_invoic, { + id: item.id, + vatinvcode: item.vatinvcode, + ...params + }) + .subscribe(res => { + if (res) { + this.service.msgSrv.success('开票成功'); + this.st.load(1); + modal.destroy(); + } + }); - return false; + return false; + } + }); } }); } @@ -154,7 +163,7 @@ export class CancellationInvoiceComponent implements OnInit { this.nzModalService.warning({ nzTitle: '确定将所选待确认开票申请撤回?', nzContent: '提交税控后发票信息不可修改,待税控开票完成后返回开票结果', - nzOnOk: () => { } + nzOnOk: () => {} }); } @@ -170,7 +179,7 @@ export class CancellationInvoiceComponent implements OnInit { this.nzModalService.warning({ nzTitle: '确定将所选待确认开票申请撤回?', nzContent: '提交税控后发票信息不可修改,待税控开票完成后返回开票结果', - nzOnOk: () => { } + nzOnOk: () => {} }); } @@ -196,6 +205,10 @@ export class CancellationInvoiceComponent implements OnInit { }); } + downLoadDetail(item: any) { + this.service.exportStart({ id: item.id }, this.service.$api_export_invoic_detail); + } + /** * 推送发票 * @param item @@ -250,13 +263,16 @@ export class CancellationInvoiceComponent implements OnInit { placeholder: '请输入' } }, - receiveName2: { + arto: { type: 'string', title: '购买人', - enum: [{ label: '全部', value: '全部' }], ui: { widget: 'select', - placeholder: '请选择' + serverSearch: true, + searchDebounceTime: 300, + searchLoadingText: '搜索中...', + allowClear: true, + onSearch: (q: any) => this.service.getEnterpriceList({ enterpriseName: q }) } }, ltdId: { @@ -273,7 +289,7 @@ export class CancellationInvoiceComponent implements OnInit { } }, sts: { - title: '结算依据', + title: '发票状态', type: 'string', ui: { widget: 'dict-select', @@ -369,22 +385,27 @@ export class CancellationInvoiceComponent implements OnInit { buttons: [ { type: 'divider' }, { - text: '查看明细', + text: '查看明细
', click: item => this.router.navigate(['ticket/cancellation-invoice/detail/' + item.id], { queryParams: { type: 1, expressno: item.expressno, ltdId: item.shipperId } }) }, { - text: '手工开票', + text: '销货清单
', + iif: item => item.isdetail, + click: item => this.downLoadDetail(item) + }, + { + text: '手工开票
', iif: item => item.sts != '3', click: item => this.requestedAction(item) }, { - text: '推送开票', + text: '推送开票
', iif: item => item.sts === '1', click: item => this.pushInvoiceAction(item) - }, + } // { // text: '作废发票', // iif: item => item.sts === '3', diff --git a/src/app/routes/ticket-management/components/express-info/express-detail-modal/express-detail-modal.component.ts b/src/app/routes/ticket-management/components/express-info/express-detail-modal/express-detail-modal.component.ts index 13ba19ed..22e0f733 100644 --- a/src/app/routes/ticket-management/components/express-info/express-detail-modal/express-detail-modal.component.ts +++ b/src/app/routes/ticket-management/components/express-info/express-detail-modal/express-detail-modal.component.ts @@ -34,11 +34,11 @@ export class ExpressDetailModalComponent implements OnInit { }, { title: '金额', - index: 'vatnotax', + index: 'vatmoney', width: 90, type: 'widget', className: 'text-right', - widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatnotax }) } + widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatmoney }) } }, { title: '税率', @@ -53,7 +53,7 @@ export class ExpressDetailModalComponent implements OnInit { width: 90, type: 'widget', className: 'text-right', - widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatnotax }) } + widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vattax }) } }, { title: '开票日期', index: 'invoicedate', type: 'date', width: 150, className: 'text-center' } ]; diff --git a/src/app/routes/ticket-management/components/invoice-requested/invoice-requested-detail/invoice-requested-detail.component.html b/src/app/routes/ticket-management/components/invoice-requested/invoice-requested-detail/invoice-requested-detail.component.html index 3a5ab163..14f0808f 100644 --- a/src/app/routes/ticket-management/components/invoice-requested/invoice-requested-detail/invoice-requested-detail.component.html +++ b/src/app/routes/ticket-management/components/invoice-requested/invoice-requested-detail/invoice-requested-detail.component.html @@ -19,13 +19,13 @@ {{headerInfo?.vatinvHNum}} / {{headerInfo?.vatinvBillNum}} - {{headerInfo?.vatinvHAmount}} / {{headerInfo?.vatinvHNumAmount}} + {{headerInfo?.vatinvHAmount |currency}} / {{headerInfo?.vatinvHNumAmount |currency}} {{headerInfo?.vatinvHNum}} - {{headerInfo?.reciname}} + {{headerInfo?.reciname}} {{headerInfo?.provinceName}}{{headerInfo?.cityName}}{{headerInfo?.areaName}}{{headerInfo?.reciaddr}} @@ -101,13 +101,13 @@ 已选择 {{ selectedRows.length }} 条数据   开票金额总计 {{ - totalCallNo }} + totalCallNo |currency }} 清空 - {{ item.billHCode }} diff --git a/src/app/routes/ticket-management/components/invoice-requested/invoice-requested.component.html b/src/app/routes/ticket-management/components/invoice-requested/invoice-requested.component.html index 091af5f8..fe0a8b6f 100644 --- a/src/app/routes/ticket-management/components/invoice-requested/invoice-requested.component.html +++ b/src/app/routes/ticket-management/components/invoice-requested/invoice-requested.component.html @@ -34,27 +34,30 @@ - + + -
+
已选择 {{ selectedRows.length }} 条数据   开票金额总计 {{ totalCallNo }} 清空
- - + + +
+ [page]="{}" [res]="{ process: afterRes }" [loading]="false" [scroll]="{ x: '1200px' }" (change)="stChange($event)"> {{ item.vatappcode }}
@@ -66,8 +69,9 @@
- +
-
\ No newline at end of file + diff --git a/src/app/routes/ticket-management/components/invoice-requested/invoice-requested.component.ts b/src/app/routes/ticket-management/components/invoice-requested/invoice-requested.component.ts index 4cf2df39..a21104a4 100644 --- a/src/app/routes/ticket-management/components/invoice-requested/invoice-requested.component.ts +++ b/src/app/routes/ticket-management/components/invoice-requested/invoice-requested.component.ts @@ -12,6 +12,7 @@ import { NzModalService } from 'ng-zorro-antd/modal'; import { TicketService } from '../../services/ticket.service'; import { PrintOrderModalComponent } from './print-order-modal/print-order-modal.component'; import { RequestedInvoiceModalComponent } from './requested-invoice-modal/requested-invoice-modal.component'; +import { UpdateAddressModalComponent } from './update-address-modal/update-address-modal.component'; @Component({ selector: 'app-invoice-requested', @@ -33,12 +34,9 @@ export class InvoiceRequestedComponent { totalCallNo = 0; selectedRows: any[] = []; - constructor( - public service: TicketService, - private nzModalService: NzModalService, - private router: Router, - public shipperservice: ShipperBaseService - ) {} + + rejectReason = ''; + constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {} beforeReq = (requestOptions: STRequestOptions) => { if (this.resourceStatus) { @@ -73,54 +71,84 @@ export class InvoiceRequestedComponent { } rejectAction(item: any[]) { + this.rejectReason = ''; + if (item.length <= 0) { + this.service.msgSrv.warning('请选择开票申请'); + return; + } + if (item.find(item => item.sts !== '1')) { + this.service.msgSrv.warning('请勿选择非待处理订单'); + return; + } const modal = this.nzModalService.create({ nzTitle: '驳回', nzContent: this.rejectModal, - nzFooter: [ - { - label: '拒绝', - type: 'default', - onClick: () => { - modal.destroy(); - } - }, - { - label: '通过', - type: 'primary', - onClick: () => { - modal.destroy(); - } + nzOkLoading: this.service.http.loading, + nzOnOk: () => { + if (!this.rejectReason) { + this.service.msgSrv.warning('请填写驳回原因'); + return false; } - ] + let ids = item.map(row => row.id); + this.service.request(this.service.$api_reject_invoice, { id: ids, rejectContent: this.rejectReason }).subscribe(res => { + if (res) { + this.service.msgSrv.success('驳回成功'); + modal.destroy(true); + } + }); + + return false; + } }); modal.afterClose.subscribe(res => { - this.st.load(); + if (res) { + this.st.load(); + } }); } - changePice(item: any[]) { + /** + * 修改地址 + * @param item + */ + changeAddress(item: any[]) { + this.rejectReason = ''; + if (item.length <= 0) { + this.service.msgSrv.warning('请选择开票申请'); + return; + } + if (item.find(item => item.sts !== '1')) { + this.service.msgSrv.warning('请勿选择非待处理订单'); + return; + } const modal = this.nzModalService.create({ - nzTitle: '驳回', - nzContent: this.rejectModal, - nzFooter: [ - { - label: '拒绝', - type: 'default', - onClick: () => { - modal.destroy(); - } - }, - { - label: '通过', - type: 'primary', - onClick: () => { - modal.destroy(); - } + nzTitle: '修改地址', + nzContent: UpdateAddressModalComponent, + nzOkLoading: this.service.http.loading, + nzOnOk: component => { + if (!component.sf.valid) { + this.service.msgSrv.warning('表单校验错误'); + return false; } - ] + this.service + .request(this.service.$api_update_invoice_address, { + ...component.sf.value, + ids: item.map(i => i.id) + }) + .subscribe(res => { + if (res) { + this.service.msgSrv.success('修改成功'); + modal.destroy(true); + } + }); + + return false; + } }); modal.afterClose.subscribe(res => { - this.st.load(); + if (res) { + this.st.load(); + } }); } @@ -216,7 +244,7 @@ export class InvoiceRequestedComponent { requestedInvoiceAction(item: any) { const modal = this.nzModalService.create({ - nzTitle: '开票', + nzTitle: '开票受理', nzContent: RequestedInvoiceModalComponent, nzWidth: 1200, nzComponentParams: { @@ -357,12 +385,14 @@ export class InvoiceRequestedComponent { title: '货主名称', ui: { widget: 'select', - placeholder: '请选择', + serverSearch: true, + searchDebounceTime: 300, + searchLoadingText: '搜索中...', allowClear: true, + onSearch: (q: any) => this.service.getEnterpriceList({ enterpriseName: q }), visibleIf: { expand: (value: boolean) => value - }, - asyncData: () => this.shipperservice.getCRM() + } } } } @@ -440,14 +470,15 @@ export class InvoiceRequestedComponent { buttons: [ { type: 'divider' }, { - text: '开票
', + text: '开票受理
', click: item => this.requestedInvoiceAction(item), iif: item => item.sts === '1' }, - // { - // text: '驳回
', - // click: item => this.rejectAction([item]) - // }, + { + text: '驳回申请
', + click: item => this.rejectAction([item]), + iif: item => item.sts === '1' + }, { text: '订单明细
', click: item => this.router.navigate([`/ticket/invoice-requested/detail/${item?.id}`], { queryParams: { sts: item.sts } }) diff --git a/src/app/routes/ticket-management/components/invoice-requested/requested-detail/requested-detail.component.html b/src/app/routes/ticket-management/components/invoice-requested/requested-detail/requested-detail.component.html index 40730c41..737e5eef 100644 --- a/src/app/routes/ticket-management/components/invoice-requested/requested-detail/requested-detail.component.html +++ b/src/app/routes/ticket-management/components/invoice-requested/requested-detail/requested-detail.component.html @@ -38,7 +38,7 @@ {{headerInfo?.ordlines}} - {{headerInfo?.vatinvHNumAmount}} + {{headerInfo?.vatinvHNumAmount | currency}} {{headerInfo?.vatnameLabel}} diff --git a/src/app/routes/ticket-management/components/invoice-requested/requested-detail/requested-detail.component.ts b/src/app/routes/ticket-management/components/invoice-requested/requested-detail/requested-detail.component.ts index 8fa4924e..675783d0 100644 --- a/src/app/routes/ticket-management/components/invoice-requested/requested-detail/requested-detail.component.ts +++ b/src/app/routes/ticket-management/components/invoice-requested/requested-detail/requested-detail.component.ts @@ -32,7 +32,6 @@ export class RequestedDetailComponent implements OnInit { initData() { if(this.id) { this.service.request(this.service.$api_get_invoice_requested_header_detail, { id: this.id }).subscribe(res => { - console.log(res); if (res) { this.headerInfo = res; } @@ -40,7 +39,6 @@ export class RequestedDetailComponent implements OnInit { } if(this.Id) { this.service.request(this.service.$api_get_invoice_requested_header_detail, { id: this.Id }).subscribe(res => { - console.log(res); if (res) { this.headerInfo = res; } diff --git a/src/app/routes/ticket-management/components/invoice-requested/requested-invoice-modal/requested-invoice-modal.component.html b/src/app/routes/ticket-management/components/invoice-requested/requested-invoice-modal/requested-invoice-modal.component.html index acde105a..9fa49838 100644 --- a/src/app/routes/ticket-management/components/invoice-requested/requested-invoice-modal/requested-invoice-modal.component.html +++ b/src/app/routes/ticket-management/components/invoice-requested/requested-invoice-modal/requested-invoice-modal.component.html @@ -32,5 +32,5 @@ diff --git a/src/app/routes/ticket-management/components/invoice-requested/requested-invoice-modal/requested-invoice-modal.component.ts b/src/app/routes/ticket-management/components/invoice-requested/requested-invoice-modal/requested-invoice-modal.component.ts index 802103d3..ed1d8ae9 100644 --- a/src/app/routes/ticket-management/components/invoice-requested/requested-invoice-modal/requested-invoice-modal.component.ts +++ b/src/app/routes/ticket-management/components/invoice-requested/requested-invoice-modal/requested-invoice-modal.component.ts @@ -7,6 +7,7 @@ * @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 { Router } from '@angular/router'; import { STChange, STColumn, STComponent, STRequestOptions } from '@delon/abc/st'; import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal'; @@ -23,7 +24,7 @@ export class RequestedInvoiceModalComponent { columns: STColumn[] = this.initST(); id: any; selectedRows: any[] = []; - constructor(public service: TicketService, private nzModalService: NzModalService, private modal: NzModalRef) {} + constructor(public service: TicketService, private nzModalService: NzModalService, private modal: NzModalRef, private router: Router) {} beforeReq = (requestOptions: STRequestOptions) => { Object.assign(requestOptions.body, { vatappHId: this.id }); @@ -127,8 +128,17 @@ export class RequestedInvoiceModalComponent { }; this.service.request(this.service.$api_get_applyFicoVatinv, params).subscribe((res: any) => { if (res) { - this.service.msgSrv.success('开票成功'); - this.modal.destroy(true); + this.nzModalService.confirm({ + nzTitle: '是否进入销票处理页面完成开票', + nzOnOk: () => { + this.service.msgSrv.success('开票成功'); + this.modal.destroy(true); + this.router.navigate(['/ticket/cancellation-invoice']); + }, + nzOnCancel: () => { + this.modal.destroy(true); + } + }); } }); } diff --git a/src/app/routes/ticket-management/components/invoice-requested/update-address-modal/update-address-modal.component.html b/src/app/routes/ticket-management/components/invoice-requested/update-address-modal/update-address-modal.component.html new file mode 100644 index 00000000..c31df344 --- /dev/null +++ b/src/app/routes/ticket-management/components/invoice-requested/update-address-modal/update-address-modal.component.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/app/routes/ticket-management/components/invoice-requested/update-address-modal/update-address-modal.component.less b/src/app/routes/ticket-management/components/invoice-requested/update-address-modal/update-address-modal.component.less new file mode 100644 index 00000000..e69de29b diff --git a/src/app/routes/ticket-management/components/invoice-requested/update-address-modal/update-address-modal.component.ts b/src/app/routes/ticket-management/components/invoice-requested/update-address-modal/update-address-modal.component.ts new file mode 100644 index 00000000..ce376d0b --- /dev/null +++ b/src/app/routes/ticket-management/components/invoice-requested/update-address-modal/update-address-modal.component.ts @@ -0,0 +1,102 @@ +import { Component, OnInit, ViewChild } from '@angular/core'; +import { SFCascaderWidgetSchema, SFComponent, SFSchema } from '@delon/form'; +import { TicketService } from '../../../services/ticket.service'; + +@Component({ + selector: 'app-update-address-modal', + templateUrl: './update-address-modal.component.html', + styleUrls: ['./update-address-modal.component.less'] +}) +export class UpdateAddressModalComponent implements OnInit { + @ViewChild('sf', { static: false }) + sf!: SFComponent; + schema: SFSchema = this.initSF(); + + constructor(public service: TicketService) {} + + ngOnInit(): void {} + + private initSF(): SFSchema { + return { + properties: { + reciname: { + type: 'string', + title: '收件人姓名', + ui: { + placeholder: '请输入' + } + }, + recitel: { + type: 'string', + title: '联系电话', + format: 'mobile', + minLength: 1, + maxLength: 11, + ui: { + placeholder: '请输入', + errors: { required: '请输入注册电话', format: '手机号格式错误' } + } + }, + provinceCode: { type: 'string', ui: { hidden: true } }, + provinceName: { type: 'string', ui: { hidden: true } }, + cityCode: { type: 'string', ui: { hidden: true } }, + cityName: { type: 'string', ui: { hidden: true } }, + areaCode: { type: 'string', ui: { hidden: true } }, + areaName: { type: 'string', ui: { hidden: true } }, + enterpriseAddressCode: { + type: 'number', + title: '收件人地区', + ui: { + grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, + widget: 'cascader', + valueProperty: 'regionCode', + placeholder: '请选择', + labelProperty: 'name', + asyncData: (node: any, index: any) => { + return new Promise(resolve => { + this.getRegionDetailByCode(node?.regionCode || '').subscribe( + res => { + node.children = res.map((item: any) => ({ ...item, isLeaf: index === 1 })); + }, + _ => {}, + () => { + resolve(); + } + ); + }); + }, + selectionChange: (node: any[]) => { + console.log(node); + + if (node?.length > 0) { + this.sf.setValue('/provinceCode', node[0]?.regionCode); + this.sf.setValue('/provinceName', node[0]?.name); + this.sf.setValue('/cityCode', node[1]?.regionCode); + this.sf.setValue('/cityName', node[1]?.name); + this.sf.setValue('/areaCode', node[2]?.regionCode); + this.sf.setValue('/areaName', node[2]?.name); + } + } + } as SFCascaderWidgetSchema + }, + reciaddr: { + type: 'string', + title: '详细地址', + ui: { + visibleIf: { + expand: (value: boolean) => value + } + } + } + }, + required: ['reciname', 'recitel', 'reciaddr', 'enterpriseAddressCode'] + }; + } + + /* + * 根据地区code查询地区列表 + */ + getRegionDetailByCode(regionCode: any) { + return this.service.request(this.service.$api_get_region_by_code, { regionCode }); + } +} diff --git a/src/app/routes/ticket-management/components/invoiced-list/invoiced-list.component.html b/src/app/routes/ticket-management/components/invoiced-list/invoiced-list.component.html index 48255eee..5da0014c 100644 --- a/src/app/routes/ticket-management/components/invoiced-list/invoiced-list.component.html +++ b/src/app/routes/ticket-management/components/invoiced-list/invoiced-list.component.html @@ -59,4 +59,17 @@ 已签收

+ + + +
+
+ + + + + + +
+
\ No newline at end of file diff --git a/src/app/routes/ticket-management/components/invoiced-list/invoiced-list.component.ts b/src/app/routes/ticket-management/components/invoiced-list/invoiced-list.component.ts index 0662aa43..5144df47 100644 --- a/src/app/routes/ticket-management/components/invoiced-list/invoiced-list.component.ts +++ b/src/app/routes/ticket-management/components/invoiced-list/invoiced-list.component.ts @@ -30,6 +30,10 @@ export class InvoicedListComponent implements OnInit { mailNo: '', routes: [] }; + + @ViewChild('requestedModal', { static: false }) + requestedModal!: any; + openInfo: any = { expresscompany: null, expressno: null }; constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {} ngOnInit(): void {} @@ -77,6 +81,42 @@ export class InvoicedListComponent implements OnInit { }); } + /** + * 填写物流/修改物流 + * @param item + */ + requestedAction(item: any) { + this.openInfo = { expresscompany: item.expresscompany || null, expressno: item.expressno || null }; + const modal = this.nzModalService.create({ + nzTitle: item.expresscompany ? '修改物流' : '填写物流', + nzContent: this.requestedModal, + nzOnOk: () => { + if (!this.openInfo?.expresscompany || !this.openInfo?.expressno) { + this.service.msgSrv.warning('请填快递信息'); + return false; + } + const params = { + expresscompany: this.openInfo.expresscompany, + expressno: this.openInfo.expressno + }; + this.service + .request(this.service.$api_update_Express, { + id: item.id, + ...params + }) + .subscribe(res => { + if (res) { + this.service.msgSrv.success(item.expresscompany ? '修改成功' : '填写成功'); + this.st.load(1); + modal.destroy(); + } + }); + + return false; + } + }); + } + invoiceHongChong() { if (this.selectedRows?.length <= 0) { this.service.msgSrv.warning('请选择发票'); @@ -137,6 +177,13 @@ export class InvoicedListComponent implements OnInit { autocomplete: 'off' } }, + invoiceno2: { + type: 'string', + title: '发票代码', + ui: { + autocomplete: 'off' + } + }, vatappHCode: { type: 'string', title: '申请编号', @@ -151,7 +198,10 @@ export class InvoicedListComponent implements OnInit { widget: 'sl-from-to-search', format: 'yyyy-MM-dd', placeholder: '请选择', - nzShowTime: true + nzShowTime: true, + visibleIf: { + expand: (value: boolean) => value + } } as SFDateWidgetSchema }, artoname: { @@ -196,6 +246,7 @@ export class InvoicedListComponent implements OnInit { return [ { title: '', index: 'key', type: 'checkbox' }, { title: '发票号码', index: 'invoiceno', width: 150 }, + { title: '发票代码', index: 'invoiceno2', width: 150 }, { title: '申请编号', index: 'vatappHCode', @@ -255,7 +306,7 @@ export class InvoicedListComponent implements OnInit { className: 'text-center', width: 120, buttons: [ - {type:'divider'}, + { type: 'divider' }, { text: '查看明细
', click: item => @@ -272,6 +323,16 @@ export class InvoicedListComponent implements OnInit { text: '查看物流
', click: item => this.showlogosticsLogs(item), iif: item => item.expresscompany + }, + { + text: '填写物流
', + click: item => this.requestedAction(item), + iif: item => !item.expresscompany + }, + { + text: '修改物流
', + click: item => this.requestedAction(item), + iif: item => item.expresscompany } ] } diff --git a/src/app/routes/ticket-management/services/ticket.service.ts b/src/app/routes/ticket-management/services/ticket.service.ts index d2d66aa4..932f19c9 100644 --- a/src/app/routes/ticket-management/services/ticket.service.ts +++ b/src/app/routes/ticket-management/services/ticket.service.ts @@ -23,6 +23,10 @@ export class TicketService extends ShipperBaseService { $api_get_invoice_requested_order_detail = '/api/fcc/ficoVatappBill/getDetailByVatapp'; // 删除开票申请订单明细 $api_remove_bill = '/api/fcc/ficoVatappBill/deletebatch'; + // 运营端单个/批量驳回 + $api_reject_invoice = '/api/fcc/ficoVatappH/rejectInvoiceApple'; + // 运营端修改开票地址 + $api_update_invoice_address = '/api/fcc/ficoVatappH/updateInvoiceAddr'; // 运营端销票处理-订单明细页面 $api_ficoVatinvHList = '/api/fcc/ficoVatinvH/ficoVatinvHList'; @@ -32,6 +36,8 @@ export class TicketService extends ShipperBaseService { $api_ficoVatinv_Detail = '/api/fcc/ficoVatinvL/getDetailByVatinvHId'; // 运营端订单明细开票处理 $api_apply_fico = '/api/fcc/ficoVatinvH/crmPushInvo'; + // 手工开票获取开票申请信息展示 + $api_get_apply_fico_info = '/api/fcc/ficoVatappH/get'; // 运营端手工开票/确认/E税云开票成功后的回调 $api_apply_fico_invoic = '/api/fcc/ficoVatinvH/operateAffirmVatinv'; // 运营端推送开票-E税云开票 @@ -40,6 +46,8 @@ export class TicketService extends ShipperBaseService { $api_batch_push_invoic = '/api/fcc/ficoVatinvH/crmPushInvoBath'; // 发票作废 $api_cancel_invoic = '/api/fcc/ficoVatinvH/inpinvHCancel'; + // 运营端销票处理导出销售清单 + $api_export_invoic_detail = '/api/fcc/ficoVatinvH/reportVatinvHByOperator'; // 获取汇总下单路径 $api_get_order_summary_path = '/api/fcc/ficoExpressH/getSummaryOrderAddress'; @@ -53,6 +61,9 @@ export class TicketService extends ShipperBaseService { // 已开发票查询 $api_get_invoice_page = '/api/fcc/ficoVatinvH/list/page'; + // 更新快递信息 + $api_update_Express = '/api/fcc/ficoVatinvH/updateExpress'; + // 发票作废 $api_cancel_invoice = '/api/fcc/ficoVatinvH/inpinvHCancel'; // 获取销项发票抬头 @@ -109,7 +120,10 @@ export class TicketService extends ShipperBaseService { $api_get_express_routes = '/api/fcc/ficoExpressH/searchRoutes'; // 下载对账单文件 $api_downloadPdf = '/api/fcc/ficoVatappBill/downloadPdf'; - + + // 根据地区code查询列表 + $api_get_region_by_code = '/api/mdc/pbc/region/getRegionByCode'; + constructor(public injector: Injector) { super(injector); } diff --git a/src/app/routes/ticket-management/ticket-management.module.ts b/src/app/routes/ticket-management/ticket-management.module.ts index a00ba72a..e0d47e51 100644 --- a/src/app/routes/ticket-management/ticket-management.module.ts +++ b/src/app/routes/ticket-management/ticket-management.module.ts @@ -25,6 +25,7 @@ import { AddCostDetailComponent } from './components/input-invoice/add-cost-deta import { PrintOrderModalComponent } from './components/invoice-requested/print-order-modal/print-order-modal.component'; import { ExpressInfoComponent } from './components/express-info/express-info.component'; import { ExpressDetailModalComponent } from './components/express-info/express-detail-modal/express-detail-modal.component'; +import { UpdateAddressModalComponent } from './components/invoice-requested/update-address-modal/update-address-modal.component'; const COMPONENTS: any = [ ETCInvoicedListComponent, @@ -51,7 +52,8 @@ const NOTROUTECOMPONENTS: any = [ AddCollectionInvoiceModalComponent, AddCostDetailComponent, PrintOrderModalComponent, - ExpressDetailModalComponent + ExpressDetailModalComponent, + UpdateAddressModalComponent ]; @NgModule({ declarations: [...COMPONENTS, ...NOTROUTECOMPONENTS], diff --git a/src/app/routes/usercenter/components/driver/add-driver/add-driver.component.html b/src/app/routes/usercenter/components/driver/add-driver/add-driver.component.html index 46d3ed3f..e5021ee6 100644 --- a/src/app/routes/usercenter/components/driver/add-driver/add-driver.component.html +++ b/src/app/routes/usercenter/components/driver/add-driver/add-driver.component.html @@ -23,12 +23,16 @@
- + + + + - + + + + - - -
+
@@ -24,7 +34,6 @@
diff --git a/src/app/routes/usercenter/components/driver/captain/add/add.component.less b/src/app/routes/usercenter/components/driver/captain/add/add.component.less index bfa10586..fd19d3c9 100644 --- a/src/app/routes/usercenter/components/driver/captain/add/add.component.less +++ b/src/app/routes/usercenter/components/driver/captain/add/add.component.less @@ -1,36 +1,41 @@ .pr { - position: relative; + position: relative; +} + +.pa { + position: absolute; + top: 35px; + left: 150px; + img{border: solid 1px #ebf0fb;} +} + +.tips { + display: flex; + margin-bottom: 0; + color: #333; + + dt { + width: 150px; } - - .pa { - position: absolute; - top: 35px; - left: 150px; - img{border: solid 1px #ebf0fb;} - } - - .tips { - display: flex; + + dd { + width: 190px; margin-bottom: 0; - color: #333; - - dt { - width: 150px; - } - - dd { - width: 190px; - margin-bottom: 0; - text-align: center; - } + text-align: center; } - :host{ - ::ng-deep { - .ant-input-borderless{ - padding: 0; - padding-top: 4px; - color: black; - resize:none; +} +:host{ + ::ng-deep { + .ant-input-borderless{ + padding: 0; + padding-top: 4px; + color: black; + resize:none; + } + .hideBtn .ant-upload-list-item-actions button{ + &:last-child{ + display: none; } } - } \ No newline at end of file + } +} \ No newline at end of file diff --git a/src/app/routes/usercenter/components/driver/captain/add/add.component.ts b/src/app/routes/usercenter/components/driver/captain/add/add.component.ts index 45f387a7..8a477dc9 100644 --- a/src/app/routes/usercenter/components/driver/captain/add/add.component.ts +++ b/src/app/routes/usercenter/components/driver/captain/add/add.component.ts @@ -90,12 +90,13 @@ export class CtcCaptatinAddComponent implements OnInit { widget: this.i.id ? 'text' : '', placeholder: '请输入手机号', blur: () => { - if(this.sf?.value?.mobile) { + if(!this.sf.value.mobile) { + return + } this.service.request(this.service.$api_getByMobile, { mobile: this.sf.value.mobile }).subscribe(res => { if (res.certificateNumber) { this.readFlag = true this.detailData = { - ...res, mobile: this.sf.value.mobile, bankName: this.sf.value.bankName, bankCardNo: this.sf.value.bankCardNo, @@ -109,28 +110,41 @@ export class CtcCaptatinAddComponent implements OnInit { url: res.certificatePhotoFrontWatermark, response: res.certificatePhotoFrontWatermark, }], - certificatePhotoBackWatermark: [ - { - uid: -1, - name: 'LOGO', - status: 'done', - url: res.certificatePhotoBackWatermark, - response: res.certificatePhotoBackWatermark, - }], - name: res.name, - certificateNumber: res.certificateNumber, - certificatePhotoFront: res.certificatePhotoFront, - certificatePhotoBack: res.certificatePhotoBack, + certificatePhotoBackWatermark: [ + { + uid: -1, + name: 'LOGO', + status: 'done', + url: res.certificatePhotoBackWatermark, + response: res.certificatePhotoBackWatermark, + }], + name: res.name, + certificateNumber: res.certificateNumber, + certificatePhotoFront: res.certificatePhotoFront, + certificatePhotoBack: res.certificatePhotoBack, } } this.initSF() } else { this.readFlag = false - this.detailData = {} + this.detailData = { + mobile: this.sf.value.mobile, + bankName: this.sf.value.bankName, + bankCardNo: this.sf.value.bankCardNo, + remark: this.sf.value.remark, + identityInfoDTO: { + certificatePhotoFrontWatermark: '', + certificatePhotoBackWatermark: '', + name: '', + certificateNumber: '', + certificatePhotoFront: '', + certificatePhotoBack: '', + } + } + this.initSF() } }) - } - } + } }, default: this.detailData.mobile }, @@ -138,7 +152,7 @@ export class CtcCaptatinAddComponent implements OnInit { title: '姓名', type: 'string', ui: { - widget: this.i.id ? 'text' : '', + widget: this.i.id && (this.i.driverLicenseStatus === 10 || this.i.driverLicenseStatus === 20) ? 'text' : '', placeholder: '请输入姓名', }, readOnly: this.readFlag, @@ -147,12 +161,11 @@ export class CtcCaptatinAddComponent implements OnInit { bankCardNo: { title: '银行卡号', type: 'string', - maxLength: 20, ui: { - widget: this.i.id ? 'text' : '', + widget: '', placeholder: '请输入银行卡号', - change: (val: any) =>{ - const value = val.replace(/\D/g,'') + change: (val: any) => { + const value = val.replace(/\D/g, '') this.sf.setValue('/bankCardNo', value) }, errors: { @@ -164,9 +177,8 @@ export class CtcCaptatinAddComponent implements OnInit { bankName: { title: '开户行', type: 'string', - maxLength: 35, ui: { - widget: this.i.id ? 'text' : '', + widget: '', placeholder: '请输入开户行', }, default: this.detailData.bankName @@ -178,7 +190,7 @@ export class CtcCaptatinAddComponent implements OnInit { ui: { widget: 'textarea', showRequired: true, - borderless:true, + borderless: true, }, default: '请上传身份证原件的高清照片,若上传复印件,则需加盖公司印章及法人签字;上传后系统会自动识别并填写', }, @@ -193,11 +205,11 @@ export class CtcCaptatinAddComponent implements OnInit { certificatePhotoFrontWatermark: { type: 'string', title: '', - readOnly: this.i.id || this.readFlag, + readOnly: (this.i.id && (this.i.driverLicenseStatus === 10 || this.i.driverLicenseStatus === 20)) || this.readFlag, ui: { offsetControl: 6, action: apiConf.fileUpload, - fileType: 'image/png,image/jpeg,image/jpg,image/gif', + accept: 'image/png,image/jpeg,image/jpg,image/gif', limit: 1, limitFileCount: 1, resReName: 'data.fullFileWatermarkPath', @@ -212,10 +224,10 @@ export class CtcCaptatinAddComponent implements OnInit { listType: 'picture-card', change: (args: any) => { if (args.type === 'success') { - this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath + this.detailData.identityInfoDTO.certificatePhotoFront = args.file.response.data.fullFilePath this.checkIdCard(args.file.response.data.fullFilePath, 'front'); } else { - this.detailData.certificatePhotoFront = '' + this.detailData.identityInfoDTO.certificatePhotoFront = '' } }, beforeUpload: (file: any, _fileList: any) => { @@ -230,6 +242,7 @@ export class CtcCaptatinAddComponent implements OnInit { observer.complete(); }); }, + previewFile: (file: any) => { } }, default: this.detailData.identityInfoDTO.certificatePhotoFrontWatermark }, @@ -244,11 +257,11 @@ export class CtcCaptatinAddComponent implements OnInit { certificatePhotoBackWatermark: { type: 'string', title: '', - readOnly: this.i.id || this.readFlag, + readOnly: (this.i.id && (this.i.driverLicenseStatus === 10 || this.i.driverLicenseStatus === 20)) || this.readFlag, ui: { offsetControl: 6, action: apiConf.fileUpload, - fileType: 'image/png,image/jpeg,image/jpg,image/gif', + accept: 'image/png,image/jpeg,image/jpg,image/gif', limit: 1, limitFileCount: 1, resReName: 'data.fullFileWatermarkPath', @@ -263,9 +276,9 @@ export class CtcCaptatinAddComponent implements OnInit { listType: 'picture-card', change: (args: any) => { if (args.type === 'success') { - this.detailData.certificatePhotoBack = args.file.response.data.fullFilePath + this.detailData.identityInfoDTO.certificatePhotoBack = args.file.response.data.fullFilePath } else { - this.detailData.certificatePhotoBack = '' + this.detailData.identityInfoDTO.certificatePhotoBack = '' } }, beforeUpload: (file: any, _fileList: any) => { @@ -280,15 +293,16 @@ export class CtcCaptatinAddComponent implements OnInit { observer.complete(); }); }, + previewFile: (file: any) => { } }, default: this.detailData.identityInfoDTO.certificatePhotoBackWatermark }, certificateNumber: { title: '身份证号', type: 'string', - readOnly: this.readFlag, + readOnly: (this.i.id && (this.i.driverLicenseStatus === 10 || this.i.driverLicenseStatus === 20)) || this.readFlag, ui: { - widget: this.i.id ? 'text' : '', + widget: this.i.id && (this.i.driverLicenseStatus !== 10 && this.i.driverLicenseStatus !== 20) ? 'text' : '', placeholder: '请输入身份证号', }, default: this.detailData.identityInfoDTO.certificateNumber @@ -298,7 +312,7 @@ export class CtcCaptatinAddComponent implements OnInit { type: 'string', maxLength: 100, ui: { - widget: this.i.id ? 'text' : 'textarea', + widget: 'textarea', placeholder: '请输入备注', autosize: { minRows: 2, maxRows: 6 }, }, diff --git a/src/app/routes/usercenter/components/driver/detail/detail.component.ts b/src/app/routes/usercenter/components/driver/detail/detail.component.ts index 98c51cc2..6dcce146 100644 --- a/src/app/routes/usercenter/components/driver/detail/detail.component.ts +++ b/src/app/routes/usercenter/components/driver/detail/detail.component.ts @@ -8,8 +8,10 @@ import { ModalHelper, _HttpClient } from '@delon/theme'; import { NzImageService } from 'ng-zorro-antd/image'; import { NzMessageService } from 'ng-zorro-antd/message'; import { NzModalService } from 'ng-zorro-antd/modal'; +import { Subject } from 'rxjs'; import { ImageViewComponent } from 'src/app/shared/components/imagelist'; import { UsermanageService } from '../../../services/usercenter.service'; +import { debounceTime } from 'rxjs/operators'; @Component({ selector: 'app-usercenter-components-driver-detail', @@ -21,6 +23,7 @@ export class UserCenterComponentsDriverDetailComponent implements OnInit { detailData: any; userDetail: any; contencarModel: any; + changeSub = new Subject(); facetext: any; faceStatus: any = 0; userIdentityDetail: any = {}; @@ -73,6 +76,7 @@ export class UserCenterComponentsDriverDetailComponent implements OnInit { ngOnInit() { this.initData(); this.initDetailByCode(); + this.changeEndKmAction() } initData() { // 获取司机头部信息 @@ -209,17 +213,21 @@ export class UserCenterComponentsDriverDetailComponent implements OnInit { nzTitle: '审核通过', nzContent: `

驾驶证号:${this.driverDetail?.licenseNo}

从业资格证号:${this.licenseDetail?.licenseNo}

是否确认通过审核`, nzOnOk: () => { - this.adjuctDriverLicense( - { - approvalStatus: 20, - appUserId: this.userDetail?.appUserId - }, - '审核成功' - ); + this.changeEndKmAction() } }); } - + changeEndKmAction() { + this.changeSub.pipe(debounceTime(500)).subscribe((res: string) => { + this.adjuctDriverLicense( + { + approvalStatus: 20, + appUserId: this.userDetail?.appUserId + }, + '审核成功' + ); + }) + } /** 驳回驾驶员信息 */ rejectedDriver() { this.approvalOpinion = ''; diff --git a/src/app/routes/usercenter/components/freight/list/detail/detail.component.html b/src/app/routes/usercenter/components/freight/list/detail/detail.component.html index 6880be7b..de3a37d1 100644 --- a/src/app/routes/usercenter/components/freight/list/detail/detail.component.html +++ b/src/app/routes/usercenter/components/freight/list/detail/detail.component.html @@ -269,8 +269,8 @@ - + + + + 服务评级 + (暂无评级) + + + + + + + + 合伙人信息 + + {{partnerInfo.partnerEnterpriseName}} + + + + + + + + + + + + + + + + + 渠道销售信息 + + + + + + + + + + + + + + + + + {{ item.remark }} + -- + + + + + + + {{ item.remark }} + -- + + + + -

diff --git a/src/app/routes/usercenter/components/freight/list/detail/detail.component.less b/src/app/routes/usercenter/components/freight/list/detail/detail.component.less index 21bf7187..6231c9e2 100644 --- a/src/app/routes/usercenter/components/freight/list/detail/detail.component.less +++ b/src/app/routes/usercenter/components/freight/list/detail/detail.component.less @@ -43,4 +43,16 @@ left: 106px; } } + .overflowText { + display: -webkit-box; + max-width: 155px; + height: 40px; + overflow: hidden; + text-align: left; + text-overflow: -o-ellipsis-lastline; + text-overflow: ellipsis; + -webkit-line-clamp: 2; + line-clamp: 2; + -webkit-box-orient: vertical; + } } diff --git a/src/app/routes/usercenter/components/freight/list/detail/detail.component.ts b/src/app/routes/usercenter/components/freight/list/detail/detail.component.ts index da954bab..cd82f249 100644 --- a/src/app/routes/usercenter/components/freight/list/detail/detail.component.ts +++ b/src/app/routes/usercenter/components/freight/list/detail/detail.component.ts @@ -1,6 +1,7 @@ import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; import { apiConf } from '@conf/api.conf'; +import { STColumn, STComponent } from '@delon/abc/st'; import { DatePipe, _HttpClient } from '@delon/theme'; import { NzModalService } from 'ng-zorro-antd/modal'; import { fromEvent, Subscription } from 'rxjs'; @@ -13,11 +14,14 @@ import { UsermanageService } from '../../../../services/usercenter.service'; providers: [DatePipe] }) export class FreightComponentsListDetailComponent implements OnInit, OnDestroy { + @ViewChild('st') private readonly st!: STComponent; + @ViewChild('st1') private readonly st1!: STComponent; @ViewChild('approvedModal', { static: false }) approvedModal!: any; @ViewChild('redectModal', { static: false }) redectModal!: any; - + columns: STColumn[] = []; + recordColumns!: STColumn[]; detailData: any = { adminUserInfo: { name: '' }, legalPersonIdentityVO: { name: '' } }; tempalateData = { ...this.detailData }; suppliersData: any = {}; @@ -30,12 +34,12 @@ export class FreightComponentsListDetailComponent implements OnInit, OnDestroy { ltdId: any = []; roles: any = []; customerServices: any = []; - + billEvaluateList: any = []; approvalOpinion = ''; networkTransporter = null; roleId = null; customerServiceId = null; - + partnerInfo: any = {}; esignCheckStatus: any = { 0: '不通过', 1: '通过', @@ -43,16 +47,31 @@ export class FreightComponentsListDetailComponent implements OnInit, OnDestroy { }; billEvaluate = null; - scrollTop = 0; subscribeScoll!: Subscription; + /** + * 查询参数 + */ + get reqParamsCar() { + const params = { + id: this.route.snapshot.params.id, + bindType: 0 + } + return { ...params }; + } + get reqParams() { + const params = { + id: this.route.snapshot.params.id, + } + return { ...params }; + } constructor( public service: UsermanageService, private route: ActivatedRoute, private nzModalService: NzModalService, private router: Router, private datePipe: DatePipe - ) {} + ) { } ngOnDestroy(): void { this.subscribeScoll.unsubscribe(); } @@ -62,12 +81,81 @@ export class FreightComponentsListDetailComponent implements OnInit, OnDestroy { this.initData(); this.loadltdId(); this.loadRoles(); + this.initST(); + this.initRecordST() this.loadCustomerServices(); + this.loadPartnerInfo() }); this.subscribeScoll = fromEvent(window, 'scroll').subscribe(event => { this.scrollTop = document.documentElement.scrollTop; }); } + + /** +* 初始化数据列表 +*/ + initST() { + this.columns = [ + { title: '修改后合伙人', index: 'newPartnerName', className: 'text-center' }, + { title: '修改前合伙人', index: 'originalPartnerNamel', className: 'text-center' }, + { title: '备注', render: 'remark', className: 'text-center' }, + { title: '结算起算日', index: 'settStartTime', className: 'text-center' }, + { title: '生效节点', index: 'effectiveNode', className: 'text-center', type: 'enum', enum: { + 1: '立即生效', + 2: 'CRM审核后生效', + 3: '审核通过生效', + } }, + { + title: 'CRM审核状态', index: 'effectiveStatus', + type: 'enum', + enum: { + 0: '已失效', + 1: '未生效', + 2: '已生效', + }, + className: 'text-center' + }, + { title: '修改时间', render: 'modifyTime', className: 'text-center' }, + { title: '生效时间', render: 'effectiveTime', className: 'text-center' }, + { title: '操作人', render: 'approvalUser', className: 'text-center' }, + + ]; + } + /** + * 初始化数据列表 + */ + initRecordST() { + this.recordColumns = [ + { title: '修改后渠道销售', index: 'newChannelName', className: 'text-center' }, + { title: '修改前渠道销售地', index: 'originalChannelName', className: 'text-center' }, + { title: '备注', render: 'remark', className: 'text-center' }, + { title: '生效节点', index: 'effectiveNode', className: 'text-center', type: 'enum', enum: { + 1: '立即生效', + 2: 'CRM审核后生效', + 3: '审核通过生效', + } }, + { + title: 'CRM审核状态', index: 'effectiveStatus', + type: 'enum', + enum: { + 0: '已失效', + 1: '未生效', + 2: '已生效', + }, + className: 'text-center' + }, + { title: '修改时间', render: 'mybidDetailInfo', className: 'text-center' }, + { title: '生效时间', index: 'eeffectiveTime', className: 'text-center' }, + { title: '操作人', index: 'approvalUser', className: 'text-center' } + ]; + } + loadPartnerInfo(){ + this.service.request(this.service.$api_getEnterpriceRel, {id: this.route.snapshot.params.id}).subscribe(res => { + if (res) { + this.partnerInfo = res; + } + }); + } loadltdId() { this.service.getNetworkFreightForwarder().subscribe(res => { if (res) { @@ -115,6 +203,7 @@ export class FreightComponentsListDetailComponent implements OnInit, OnDestroy { this.service.request(this.service.$api_get_freight_billEvaluate, res).subscribe(billEvaluate => { if (billEvaluate) { this.billEvaluate = billEvaluate.totalScore; + this.billEvaluateList = res; } }); } @@ -273,7 +362,7 @@ export class FreightComponentsListDetailComponent implements OnInit, OnDestroy { res => { node.children = res.map((item: any) => ({ ...item, isLeaf: index === 1, value: item.regionCode, label: item.name })); }, - _ => {}, + _ => { }, () => { resolve(node); } @@ -286,17 +375,17 @@ export class FreightComponentsListDetailComponent implements OnInit, OnDestroy { this.isEdit = false; } - save(data: any){ + save(data: any) { const dateil = { ...this.detailData }; Object.assign(dateil.legalPersonIdentityVO, { validStartTime: this.datePipe.transform(dateil.legalPersonIdentityVO.validStartTime, 'yyyy-MM-dd'), validEndTime: this.datePipe.transform(dateil.legalPersonIdentityVO.validEndTime, 'yyyy-MM-dd') }); - if (!this.detailData?.enterpriseName || !this.detailData?.enterpriseAddress) { + if (!this.detailData?.enterpriseName || !this.detailData?.enterpriseAddress) { this.service.msgSrv.error('请完善企业基本信息!') return false; } - if (!this.detailData.legalPersonIdentityVO.name || !this.detailData.legalPersonIdentityVO.certificateNumber) { + if (!this.detailData.legalPersonIdentityVO.name || !this.detailData.legalPersonIdentityVO.certificateNumber) { this.service.msgSrv.error('请完善法人信息!') return false; } diff --git a/src/app/routes/usercenter/components/freight/list/list.component.html b/src/app/routes/usercenter/components/freight/list/list.component.html index e2504257..a6d0ea7c 100644 --- a/src/app/routes/usercenter/components/freight/list/list.component.html +++ b/src/app/routes/usercenter/components/freight/list/list.component.html @@ -39,6 +39,15 @@ + +
+ + + + +

暂无评价

+
+

diff --git a/src/app/routes/usercenter/components/freight/list/list.component.ts b/src/app/routes/usercenter/components/freight/list/list.component.ts index afb394a1..a5c4f017 100644 --- a/src/app/routes/usercenter/components/freight/list/list.component.ts +++ b/src/app/routes/usercenter/components/freight/list/list.component.ts @@ -166,137 +166,6 @@ export class FreightComponentsListComponent implements OnInit { showRequired: false } }, - lockedStatus8: { - type: 'string', - title: '公司所在地', - enum: [ - { label: '全部', value: '' }, - { label: '物流企业', value: 0 } - ], - default: '', - ui: { - widget: 'select', - visibleIf: { - expand: (value: boolean) => value - } - } - }, - oftenUsedServices: { - type: 'string', - title: '常用服务', - enum: [ - { label: '全部', value: '' }, - { label: '整车服务', value: 0 }, - { label: '大宗服务', value: 1 } - ], - default: '', - ui: { - widget: 'select', - visibleIf: { - expand: (value: boolean) => value - } - } - }, - customerType: { - type: 'string', - title: '客户类型', - enum: [ - { label: '全部', value: '' }, - { label: '直客', value: 1 }, - { label: '渠道客户', value: 20 } - ], - default: '', - ui: { - widget: 'select', - visibleIf: { - expand: (value: boolean) => value - } - } - }, - contactName5: { - title: '渠道销售', - type: 'string', - ui: { - placeholder: '请输入', - showRequired: false, - visibleIf: { - expand: (value: boolean) => value - } - } - }, - partnerName: { - title: '合伙人', - type: 'string', - ui: { - placeholder: '请输入', - showRequired: false, - visibleIf: { - expand: (value: boolean) => value - } - } - }, - contactName3: { - title: '客服人员', - type: 'string', - ui: { - placeholder: '请输入', - showRequired: false, - visibleIf: { - expand: (value: boolean) => value - } - } - }, - contactName2: { - title: '审核人', - type: 'string', - ui: { - placeholder: '请输入', - showRequired: false, - visibleIf: { - expand: (value: boolean) => value - } - } - }, - applyDate: { - type: 'string', - title: '申请时间', - ui: { - widget: 'sl-from-to', - type: 'date', - format: 'yyyy-MM-dd', - visibleIf: { - expand: (value: boolean) => value - } - } as SFDateWidgetSchema, - }, - applyDate1: { - type: 'string', - title: '审核时间', - ui: { - widget: 'sl-from-to', - type: 'date', - format: 'yyyy-MM-dd', - visibleIf: { - expand: (value: boolean) => value - } - } as SFDateWidgetSchema, - }, - lockedStatus3: { - type: 'string', - title: '企业状态', - enum: [ - { label: '全部', value: '' }, - { label: '正常', value: 0 }, - { label: '冻结', value: 1 } - ], - default: '', - ui: { - widget: 'select', - visibleIf: { - expand: (value: boolean) => value - } - } - }, enterpriseType: { type: 'string', title: '企业类型', @@ -322,26 +191,41 @@ export class FreightComponentsListComponent implements OnInit { default: '', ui: { widget: 'select', - placeholder: '请选择', - allowClear: true, - asyncData: () => this.shipperservice.getNetworkFreightForwarder(), visibleIf: { expand: (value: boolean) => value } } }, - // sou1r3ce: { - // type: 'string', - // title: '客户类型', - // enum: [{ label: '全部', value: '' }], - // default: '', - // ui: { - // widget: 'select', - // visibleIf: { - // expand: (value: boolean) => value - // } - // } - // }, + oftenUsedServices: { + type: 'string', + title: '常用服务', + enum: [ + { label: '全部', value: '' }, + { label: '整车发货', value: 10 }, + { label: '大宗发货', value: 20 } + ], + default: '', + ui: { + widget: 'select', + visibleIf: { + expand: (value: boolean) => value + } + } + }, + customerType: { + type: 'string', + title: '客户类型', + enum: [{ label: '全部', value: '' }, + { label: '直客', value: 1 }, + { label: '渠道客户', value: 20 }], + default: '', + ui: { + widget: 'select', + visibleIf: { + expand: (value: boolean) => value + } + } + }, promotersTelephone: { title: '业务员', type: 'string', @@ -353,28 +237,28 @@ export class FreightComponentsListComponent implements OnInit { } } }, - // promotersTe1le3phone: { - // title: '合伙人', - // type: 'string', - // ui: { - // placeholder: '请输入', - // showRequired: false, - // visibleIf: { - // expand: (value: boolean) => value - // } - // } - // }, - // promotersTe1lep1hone: { - // title: '客服人员', - // type: 'string', - // ui: { - // placeholder: '请输入', - // showRequired: false, - // visibleIf: { - // expand: (value: boolean) => value - // } - // } - // }, + partnerNamee: { + title: '合伙人', + type: 'string', + ui: { + placeholder: '请输入', + showRequired: false, + visibleIf: { + expand: (value: boolean) => value + } + } + }, + customerServiceId: { + title: '客服人员', + type: 'string', + ui: { + placeholder: '请输入', + showRequired: false, + visibleIf: { + expand: (value: boolean) => value + } + } + }, approvalUserName: { title: '审核人', type: 'string', @@ -442,13 +326,13 @@ export class FreightComponentsListComponent implements OnInit { } } }, - source2: { + isExpired: { type: 'string', title: '证件是否过期', enum: [ { label: '全部', value: '' }, - { label: '是', value: 1 }, - { label: '否', value: 2 } + { label: '是', value: true }, + { label: '否', value: false } ], default: '', ui: { @@ -479,7 +363,7 @@ export class FreightComponentsListComponent implements OnInit { initST() { this.columns = [ // { title: '', type: 'checkbox', className: 'text-center' }, - { title: '企业名称', className: 'text-center', index: 'enterpriseName', width: 350 }, + { title: '企业名称', render: 'enterpriseName', width: 350 }, { title: '统一社会信用代码', className: 'text-center', render: 'unifiedSocialCreditCode', width: 200 }, { title: '公司所在地', @@ -506,8 +390,8 @@ export class FreightComponentsListComponent implements OnInit { width: 140 }, { title: '业务员', className: 'text-center', render: 'promotersTelephone', width: 150 }, - // { title: '合伙人', className: 'text-center', render: 'promoter1sTelephone', width: 150 }, - // { title: '客服人员', className: 'text-center', render: 'promoter1sTelephone', width: 150 }, + { title: '合伙人', className: 'text-center', render: 'partnerName', width: 150 }, + { title: '客服人员', className: 'text-center', render: 'customerServiceId', width: 150 }, { title: '网络货运人', className: 'text-center', index: 'netTranName', width: 180 }, { title: '注册渠道', @@ -544,8 +428,9 @@ export class FreightComponentsListComponent implements OnInit { }, { title: '操作', - width: '250px', - className: 'text-center btnBox', + width: '200px', + className: 'text-center block-td', + fixed: 'right', buttons: [ { text: '查看', diff --git a/src/app/routes/usercenter/components/freight/list/new/new.component.ts b/src/app/routes/usercenter/components/freight/list/new/new.component.ts index 9b1cbc6e..59359454 100644 --- a/src/app/routes/usercenter/components/freight/list/new/new.component.ts +++ b/src/app/routes/usercenter/components/freight/list/new/new.component.ts @@ -715,15 +715,15 @@ export class FreightComponentsListNewComponent implements OnInit { } }, promotersTelephone: { - title: '推广业务员手机号', + title: '邀请码', type: 'string', minLength: 1, format: 'mobile', maxLength: 11, ui: { grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, - placeholder: '请输入推广业务员手机号', - errors: { required: '请输入推广业务员手机号', format: '手机号格式错误' } + placeholder: '请输入邀请码', + errors: { required: '请输入邀请码', format: '手机号格式错误' } } }, networkTransporter: { diff --git a/src/app/routes/usercenter/components/freight/list/showService/showService.component.html b/src/app/routes/usercenter/components/freight/list/showService/showService.component.html index 83ae084c..82ea63f2 100644 --- a/src/app/routes/usercenter/components/freight/list/showService/showService.component.html +++ b/src/app/routes/usercenter/components/freight/list/showService/showService.component.html @@ -1,15 +1,4 @@ - - -
-
客服人员
-
- - - - - -
-
+
+ + + + + + - - - -
+ + \ No newline at end of file diff --git a/src/app/routes/vehicle/components/list/carauth/carauth.component.less b/src/app/routes/vehicle/components/list/carauth/carauth.component.less index e3f1fc3f..ee4cb587 100644 --- a/src/app/routes/vehicle/components/list/carauth/carauth.component.less +++ b/src/app/routes/vehicle/components/list/carauth/carauth.component.less @@ -75,7 +75,7 @@ .pa { position: absolute; top: 35px; - left: 150px; + left: 140px; } .tips { @@ -96,7 +96,7 @@ .drivercard{ position: absolute; top: 0; - left: 330px; + left: 325px; border: solid 1px #ebf0fb; } .jopcard{ @@ -113,11 +113,17 @@ } :host{ ::ng-deep { - .ant-input-borderless{ - padding: 0; - padding-top: 4px; - color: black; - resize:none; - } + .ant-input-borderless{ + padding: 0; + padding-top: 4px; + color: black; + resize:none; + } + .setCustom .ant-form-item-control{ + margin-left: -100px !important + } + .borderImg{ + border: solid 1px #ebf0fb; + } } - } \ No newline at end of file +} \ No newline at end of file diff --git a/src/app/routes/vehicle/components/list/carauth/carauth.component.ts b/src/app/routes/vehicle/components/list/carauth/carauth.component.ts index 16e43dcc..245f172c 100644 --- a/src/app/routes/vehicle/components/list/carauth/carauth.component.ts +++ b/src/app/routes/vehicle/components/list/carauth/carauth.component.ts @@ -24,38 +24,37 @@ export class CarSettleCarauthComponent implements OnInit { showJopFlag = false; companyData: any = {}; detailData: any = {}; - carNo = ''; - + carNo = '' + constructor( private modal: NzModalRef, public service: VehicleService, private envSrv: EAEnvironmentService, - private eaCacheSrv: EACacheService - ) {} + private eaCacheSrv: EACacheService, + ) { } ngOnInit(): void { - console.log(this.i) - this.initData(); - this.initSF(); + this.initData() + this.initSF() } initData() { - if (this.i?.id) { - this.companyData = this.eaCacheSrv.get(cacheConf.env); + if (this.i.id) { + this.companyData = this.eaCacheSrv.get(cacheConf.env) const params = { - id: this.i?.id - }; + id: this.i.id, + } this.service.request(this.service.$api_shipperCarGet, params).subscribe(res => { - this.detailData = res; - this.detailData.isSelf = res.isSelf ? 1 : 0; - this.detailData.isTrailer = res.isTrailer ? 1 : 0; + this.detailData = res + this.detailData.isSelf = res.isSelf ? 1 : 0 + this.detailData.isTrailer = res.isTrailer ? 1 : 0 this.detailData.carFrontPhotoWatermark = [ { uid: -1, name: 'LOGO', status: 'done', url: this.detailData.carFrontPhotoWatermark, - response: this.detailData.carFrontPhotoWatermark - } + response: this.detailData.carFrontPhotoWatermark, + }, ]; this.detailData.carProtocalWatermark = [ { @@ -63,8 +62,8 @@ export class CarSettleCarauthComponent implements OnInit { name: 'LOGO', status: 'done', url: this.detailData.carProtocalWatermark, - response: this.detailData.carProtocalWatermark - } + response: this.detailData.carProtocalWatermark, + }, ]; this.detailData.certificatePhotoFrontWatermark = [ { @@ -72,8 +71,8 @@ export class CarSettleCarauthComponent implements OnInit { name: 'LOGO', status: 'done', url: this.detailData.certificatePhotoFrontWatermark, - response: this.detailData.certificatePhotoFrontWatermark - } + response: this.detailData.certificatePhotoFrontWatermark, + }, ]; this.detailData.certificatePhotoBackWatermark = [ { @@ -81,8 +80,8 @@ export class CarSettleCarauthComponent implements OnInit { name: 'LOGO', status: 'done', url: this.detailData.certificatePhotoBackWatermark, - response: this.detailData.certificatePhotoBackWatermark - } + response: this.detailData.certificatePhotoBackWatermark, + }, ]; this.detailData.roadTransportPhotoWatermark = [ { @@ -90,10 +89,10 @@ export class CarSettleCarauthComponent implements OnInit { name: 'LOGO', status: 'done', url: this.detailData.roadTransportPhotoWatermark, - response: this.detailData.roadTransportPhotoWatermark - } + response: this.detailData.roadTransportPhotoWatermark, + }, ]; - }); + }) } } initSF() { @@ -103,8 +102,8 @@ export class CarSettleCarauthComponent implements OnInit { type: 'string', title: '车头照照片', ui: { - action: apiConf.fileUpload, - fileType: 'image/png,image/jpeg,image/jpg,image/gif', + action: apiConf.waterFileUpload, + accept: 'image/png,image/jpeg,image/jpg,image/gif', limit: 1, limitFileCount: 1, resReName: 'data.fullFileWatermarkPath', @@ -112,29 +111,46 @@ export class CarSettleCarauthComponent implements OnInit { widget: 'upload', descriptionI18n: '请上传车头照照片,支持JPG、PNG格式,文件小于5M。', data: { - appId: this.envSrv.env.appId + appId: this.envSrv.env.appId, }, name: 'multipartFile', multiple: false, listType: 'picture-card', change: (args: any) => { if (args.type === 'success') { - this.detailData.carFrontPhoto = args.file.response.data.fullFilePath; + console.log(args); + const avatar = [ + { + uid: -1, + name: 'LOGO', + status: 'done', + url: args.file.response.data.fullFileWatermarkPath, + response: { + url: args.file.response.data.fullFileWatermarkPath, + }, + }, + ]; + this.sf?.setValue('/carFrontPhotoWatermark', avatar); + this.detailData.carFrontPhoto = args.file.response.data.fullFilePath } }, beforeUpload: (file: any, _fileList: any) => { return new Observable((observer: Observer) => { - const isLt2M = file.size / 1024 / 1024 < 2; + const isLt2M = file.size / 1024 / 1024 < 5; if (!isLt2M) { - this.service.msgSrv.warning('图片大小超过2M!'); + this.service.msgSrv.warning('图片大小超过5M!'); observer.complete(); return; } + console.log(_fileList) + observer.next(isLt2M); observer.complete(); }); }, - // previewFile: (file: NzUploadFile) => of(file.url) + // previewFile: (file: NzUploadFile) => of( + // file?.response?.data?.fullFilePath + // ), } }, carNo: { @@ -142,8 +158,8 @@ export class CarSettleCarauthComponent implements OnInit { maxLength: 9, type: 'string', ui: { - placeholder: '请输入' - } + placeholder: '请输入', + }, }, carNoColor: { title: '车牌颜色', @@ -151,9 +167,9 @@ export class CarSettleCarauthComponent implements OnInit { ui: { widget: 'dict-select', params: { dictKey: 'car:color' }, - placeholder: '请选择车型', - containsAllLabel: false - } as SFSelectWidgetSchema + placeholder: '请选择车牌颜色', + containsAllLabel:false, + } as SFSelectWidgetSchema, }, carModel: { title: '车型', @@ -162,8 +178,8 @@ export class CarSettleCarauthComponent implements OnInit { widget: 'dict-select', params: { dictKey: 'car:model' }, placeholder: '请选择车型', - containsAllLabel: false - } as SFSelectWidgetSchema + containsAllLabel:false, + } as SFSelectWidgetSchema, }, carLength: { title: '车长', @@ -172,8 +188,8 @@ export class CarSettleCarauthComponent implements OnInit { widget: 'dict-select', params: { dictKey: 'car:length' }, placeholder: '请选择车长', - containsAllLabel: false - } as SFSelectWidgetSchema + containsAllLabel:false, + } as SFSelectWidgetSchema, }, carLoad: { title: '载重', @@ -181,10 +197,11 @@ export class CarSettleCarauthComponent implements OnInit { maxLength: 6, ui: { placeholder: '请输入', - change: (val: any) => { - const value = val.replace(/\D/g, ''); - this.sf.setValue('/carLoad', value); - } + addOnAfter: '吨', + change: (val: any) =>{ + const value = val.replace(/\D/g,'') + this.sf.setValue('/carLoad', value) + }, } }, isSelf: { @@ -192,11 +209,11 @@ export class CarSettleCarauthComponent implements OnInit { type: 'string', enum: [ { label: '否', value: 0 }, - { label: '是', value: 1 } + { label: '是', value: 1 }, ], ui: { widget: 'select', - placeholder: '请选择' + placeholder: '请选择', } }, isTrailer: { @@ -204,19 +221,19 @@ export class CarSettleCarauthComponent implements OnInit { type: 'string', enum: [ { label: '否', value: 0 }, - { label: '是', value: 1 } + { label: '是', value: 1 }, ], ui: { widget: 'select', - placeholder: '请选择' + placeholder: '请选择', } }, carProtocalWatermark: { type: 'string', title: '挂靠协议', ui: { - action: apiConf.fileUpload, - fileType: 'image/png,image/jpeg,image/jpg,image/gif', + action: apiConf.waterFileUpload, + accept: 'image/png,image/jpeg,image/jpg,image/gif', limit: 1, limitFileCount: 1, resReName: 'data.fullFileWatermarkPath', @@ -224,14 +241,26 @@ export class CarSettleCarauthComponent implements OnInit { widget: 'upload', descriptionI18n: '请上传挂靠协议,支持JPG、PNG格式,文件小于5M。', data: { - appId: this.envSrv.env.appId + appId: this.envSrv.env.appId, }, name: 'multipartFile', multiple: false, listType: 'picture-card', change: (args: any) => { if (args.type === 'success') { - this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath; + const avatar = [ + { + uid: -1, + name: 'LOGO', + status: 'done', + url: args.file.response.data.fullFileWatermarkPath, + response: { + url: args.file.response.data.fullFileWatermarkPath, + }, + }, + ]; + this.sf?.setValue('/carProtocalWatermark', avatar); + this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath } }, beforeUpload: (file: any, _fileList: any) => { @@ -246,31 +275,39 @@ export class CarSettleCarauthComponent implements OnInit { observer.complete(); }); }, - // previewFile: (file: NzUploadFile) => of(file.url) + previewFile: (file: NzUploadFile) => of(file.url), + } + }, + agreeImg: { + title: '', + type: 'boolean', + // enum: [{ label: '长期', value: true }], + ui: { + widget: 'custom', } }, titleA: { title: '行驶证信息(必填)', type: 'string', ui: { - widget: 'text' + widget: 'text', }, - default: '照片上传后会自动识别文字并填充下列内容栏' + default: '照片上传后会自动识别文字并填充下列内容栏', }, tipsA: { title: '', type: 'string', ui: { widget: 'custom', - offsetControl: 6 - } + offsetControl: 6, + }, }, certificatePhotoFrontWatermark: { type: 'string', title: '行驶证首页照片', ui: { - action: apiConf.fileUpload, - fileType: 'image/png,image/jpeg,image/jpg,image/gif', + action: apiConf.waterFileUpload, + accept: 'image/png,image/jpeg,image/jpg,image/gif', limit: 1, limitFileCount: 1, resReName: 'data.fullFileWatermarkPath', @@ -278,24 +315,36 @@ export class CarSettleCarauthComponent implements OnInit { widget: 'upload', descriptionI18n: '请上传行驶证首页照片,支持JPG、PNG格式,文件小于5M。照片信息缺失、拼凑、过度PS、模糊不清,都不会通过审核。', data: { - appId: this.envSrv.env.appId + appId: this.envSrv.env.appId, }, name: 'multipartFile', multiple: false, listType: 'picture-card', change: (args: any) => { if (args.type === 'success') { - this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath; + const avatar = [ + { + uid: -1, + name: 'LOGO', + status: 'done', + url: args.file.response.data.fullFileWatermarkPath, + response: { + url: args.file.response.data.fullFileWatermarkPath, + }, + }, + ]; + this.sf?.setValue('/certificatePhotoFrontWatermark', avatar); + this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath this.checkCarCard(args.file.response.data.fullFilePath, 'front'); } else { - this.detailData.certificatePhotoFront = ''; + this.detailData.certificatePhotoFront = '' } }, beforeUpload: (file: any, _fileList: any) => { return new Observable((observer: Observer) => { - const isLt2M = file.size / 1024 / 1024 < 2; + const isLt2M = file.size / 1024 / 1024 < 5; if (!isLt2M) { - this.service.msgSrv.warning('图片大小超过2M!'); + this.service.msgSrv.warning('图片大小超过5M!'); observer.complete(); return; } @@ -303,7 +352,7 @@ export class CarSettleCarauthComponent implements OnInit { observer.complete(); }); }, - // previewFile: (file: NzUploadFile) => of(file.url) + // previewFile: (file: NzUploadFile) => of(file.url), } }, tipsB: { @@ -311,15 +360,15 @@ export class CarSettleCarauthComponent implements OnInit { type: 'string', ui: { widget: 'custom', - offsetControl: 6 - } + offsetControl: 6, + }, }, certificatePhotoBackWatermark: { type: 'string', title: '行驶证副页照片', ui: { - action: apiConf.fileUpload, - fileType: 'image/png,image/jpeg,image/jpg,image/gif', + action: apiConf.waterFileUpload, + accept: 'image/png,image/jpeg,image/jpg,image/gif', limit: 1, limitFileCount: 1, resReName: 'data.fullFileWatermarkPath', @@ -327,24 +376,36 @@ export class CarSettleCarauthComponent implements OnInit { widget: 'upload', descriptionI18n: '请上传行驶证副业照片,支持JPG、PNG格式,文件小于5M。', data: { - appId: this.envSrv.env.appId + appId: this.envSrv.env.appId, }, name: 'multipartFile', multiple: false, listType: 'picture-card', change: (args: any) => { if (args.type === 'success') { - this.detailData.certificatePhotoBack = args.file.response.data.fullFilePath; + const avatar = [ + { + uid: -1, + name: 'LOGO', + status: 'done', + url: args.file.response.data.fullFileWatermarkPath, + response: { + url: args.file.response.data.fullFileWatermarkPath, + }, + }, + ]; + this.sf?.setValue('/certificatePhotoBackWatermark', avatar); + this.detailData.certificatePhotoBack = args.file.response.data.fullFilePath this.checkCarCard(args.file.response.data.fullFilePath, 'back'); } else { - this.detailData.certificatePhotoBack = ''; + this.detailData.certificatePhotoBack = '' } }, beforeUpload: (file: any, _fileList: any) => { return new Observable((observer: Observer) => { - const isLt2M = file.size / 1024 / 1024 < 2; + const isLt2M = file.size / 1024 / 1024 < 5; if (!isLt2M) { - this.service.msgSrv.warning('图片大小超过2M!'); + this.service.msgSrv.warning('图片大小超过5M!'); observer.complete(); return; } @@ -352,7 +413,7 @@ export class CarSettleCarauthComponent implements OnInit { observer.complete(); }); }, - // previewFile: (file: NzUploadFile) => of(file.url) + // previewFile: (file: NzUploadFile) => of(file.url), } }, driverLicenseRegisterTime: { @@ -360,16 +421,16 @@ export class CarSettleCarauthComponent implements OnInit { type: 'string', format: 'date', ui: { - placeholder: '请输入' - } + placeholder: '请输入', + }, }, driverLicenseGetTime: { title: '行驶证发证日期', type: 'string', format: 'date', ui: { - placeholder: '请输入' - } + placeholder: '请输入', + }, }, driverLicenseEndTime: { title: '行驶证到期日期', @@ -377,24 +438,24 @@ export class CarSettleCarauthComponent implements OnInit { format: 'date', maxLength: 30, ui: { - placeholder: '请输入' - } + placeholder: '请输入', + }, }, driverLicenseSigningOrg: { title: '行驶证签发机关', type: 'string', maxLength: 30, ui: { - placeholder: '请输入' - } + placeholder: '请输入', + }, }, carDistinguishCode: { title: '车辆识别代码', type: 'string', maxLength: 30, ui: { - placeholder: '请输入' - } + placeholder: '请输入', + }, }, useNature: { title: '使用性质', @@ -402,42 +463,42 @@ export class CarSettleCarauthComponent implements OnInit { maxLength: 30, enum: [ { label: '非营运', value: 0 }, - { label: '营运', value: 1 } + { label: '营运', value: 1 }, ], ui: { widget: 'select', - placeholder: '请选择' - } + placeholder: '请选择', + }, }, curbWeight: { title: '整备质量', type: 'string', ui: { - placeholder: '请输入' - } + placeholder: '请输入', + }, }, carOwner: { title: '所有人', type: 'string', maxLength: 30, ui: { - placeholder: '请输入' - } + placeholder: '请输入', + }, }, titleB: { title: '道运证(选填)', type: 'string', ui: { - widget: 'text' + widget: 'text', }, - default: '照片上传后会自动识别文字并填充下列内容栏' + default: '照片上传后会自动识别文字并填充下列内容栏', }, roadTransportPhotoWatermark: { type: 'string', title: '道运证照片', ui: { - action: apiConf.fileUpload, - fileType: 'image/png,image/jpeg,image/jpg,image/gif', + action: apiConf.waterFileUpload, + accept: 'image/png,image/jpeg,image/jpg,image/gif', limit: 1, limitFileCount: 1, resReName: 'data.fullFileWatermarkPath', @@ -445,24 +506,36 @@ export class CarSettleCarauthComponent implements OnInit { widget: 'upload', descriptionI18n: '请上传道运证照片,支持JPG、PNG格式,文件小于5M。蓝牌绿牌车辆,可不用传道运证', data: { - appId: this.envSrv.env.appId + appId: this.envSrv.env.appId, }, name: 'multipartFile', multiple: false, listType: 'picture-card', change: (args: any) => { if (args.type === 'success') { - this.detailData.roadTransportPhoto = args.file.response.data.fullFilePath; + const avatar = [ + { + uid: -1, + name: 'LOGO', + status: 'done', + url: args.file.response.data.fullFileWatermarkPath, + response: { + url: args.file.response.data.fullFileWatermarkPath, + }, + }, + ]; + this.sf?.setValue('/roadTransportPhotoWatermark', avatar); + this.detailData.roadTransportPhoto = args.file.response.data.fullFilePath this.checkTransCard(args.file.response.data.fullFilePath); } else { - this.detailData.roadTransportPhoto = ''; + this.detailData.roadTransportPhoto = '' } }, beforeUpload: (file: any, _fileList: any) => { return new Observable((observer: Observer) => { - const isLt2M = file.size / 1024 / 1024 < 2; + const isLt2M = file.size / 1024 / 1024 < 5; if (!isLt2M) { - this.service.msgSrv.warning('图片大小超过2M!'); + this.service.msgSrv.warning('图片大小超过5M!'); observer.complete(); return; } @@ -470,7 +543,15 @@ export class CarSettleCarauthComponent implements OnInit { observer.complete(); }); }, - // previewFile: (file: NzUploadFile) => of(file.url) + // previewFile: (file: NzUploadFile) => of(file.url), + } + }, + roadImg: { + title: '', + type: 'boolean', + // enum: [{ label: '长期', value: true }], + ui: { + widget: 'custom', } }, roadTransportNo: { @@ -479,8 +560,8 @@ export class CarSettleCarauthComponent implements OnInit { maxLength: 30, ui: { // widget: this.detailData.commitFlag !== 0 ? 'text' : '', - placeholder: '请输入' - } + placeholder: '请输入', + }, }, roadTransportLicenceNo: { title: '经营许可证号', @@ -488,25 +569,25 @@ export class CarSettleCarauthComponent implements OnInit { maxLength: 30, ui: { // widget: this.detailData.commitFlag !== 0 ? 'text' : '', - placeholder: '请输入' - } + placeholder: '请输入', + }, }, roadTransportStartTime: { title: '发证日期', type: 'string', format: 'date', ui: { - placeholder: '请输入' - } + placeholder: '请输入', + }, }, roadTransportEndTime: { title: '有效期至', type: 'string', format: 'date', ui: { - placeholder: '请输入' - } - } + placeholder: '请输入', + }, + }, }, required: [ 'carFrontPhotoWatermark', @@ -526,62 +607,61 @@ export class CarSettleCarauthComponent implements OnInit { 'carDistinguishCode', 'useNature', 'carOwner' - ] + ], }; this.ui = { '*': { spanLabelFixed: 180, grid: { span: 18 }, - width: 600 + width: 600, }, $title1: { - spanLabelFixed: 0 + spanLabelFixed: 0, }, $title2: { - spanLabelFixed: 0 + spanLabelFixed: 0, }, $title3: { - spanLabelFixed: 0 + spanLabelFixed: 0, }, - $enterpriseRegistrationTime: { - width: 680 + $isTrailer:{ + grid: { span: 24 }, }, - $operatingEndTime: { - grid: { span: 9 } + $carProtocalWatermark: { + grid: { span:12 }, }, - $dateType: { - grid: { span: 4 } + $agreeImg: { + grid: { span: 4 }, + class: 'setCustom' }, - $validEndTime: { - grid: { span: 9 } + $titleB:{ + grid: { span: 24 }, }, - $dateType01: { - grid: { span: 4 } + $roadTransportPhotoWatermark: { + grid: { span: 12 }, }, - $registrationCapital: { - grid: { span: 12 } + $roadImg: { + grid: { span: 4 }, + class: 'setCustom' }, - $unit: { - spanLabelFixed: 20, - grid: { span: 3 } - } + }; } // 道路运输证识别 checkTransCard(imgurl: any) { const params = { - transportationLicenseUrl: imgurl + transportationLicenseUrl: imgurl, }; - this.service.request(this.service.$api_recognizeTransportationLicense, params).subscribe(res => { + this.service.request(this.service.$api_recognizeTransportationLicense, params).subscribe((res: any) => { if (res) { this.sf.setValue('/roadTransportNo', res.number); this.sf.setValue('/roadTransportLicenceNo', res.businessCertificate); this.sf.setValue('/roadTransportStartTime', res.issueDate); - if (this.carNo === '') { - this.carNo = res.number; - } else if (this.carNo && res.vehicleNumber.indexOf(this.carNo) === -1) { - this.service.msgSrv.warning('请上传同一认证车辆的相关证件'); + if(this.carNo === '') { + this.carNo = res.number + } else if(this.carNo && res.vehicleNumber.indexOf(this.carNo) === -1) { + this.service.msgSrv.warning('请上传同一认证车辆的相关证件') } } }); @@ -590,12 +670,11 @@ export class CarSettleCarauthComponent implements OnInit { checkCarCard(imgurl: any, side: any) { const params = { vehicleLicenseUrl: imgurl, - side + side, }; - this.service.request(this.service.$api_recognizeVehicleLicense, params).subscribe(res => { + this.service.request(this.service.$api_recognizeVehicleLicense, params).subscribe((res: any) => { if (res) { - if (side === 'front') { - // 正面 + if (side === 'front') { // 正面 this.sf.setValue('/driverLicenseRegisterTime', res.registerDate); this.sf.setValue('/carNo', res.number); this.sf.setValue('/driverLicenseGetTime', res.issueDate); @@ -603,49 +682,46 @@ export class CarSettleCarauthComponent implements OnInit { this.sf.setValue('/carDistinguishCode', res.vin); this.sf.setValue('/carOwner', res.name); this.sf.setValue('/useNature', res.useCharacter === '非营运' ? 0 : 1); + } else { this.sf.setValue('/curbWeight', res.unladenMass); } - if (this.carNo === '') { - this.carNo = res.number; - } else if (this.carNo && this.carNo !== res.number) { - this.service.msgSrv.warning('请上传同一认证车辆的相关证件'); + if(this.carNo === '') { + this.carNo = res.number + } else if(this.carNo && this.carNo !== res.number) { + this.service.msgSrv.warning('请上传同一认证车辆的相关证件') } } }); } close(): void { - this.modal.destroy(); + this.modal.close(true); } showExample() { - this.showCardFlag = !this.showCardFlag; + this.showCardFlag = !this.showCardFlag } showJopExample() { - this.showJopFlag = !this.showJopFlag; + this.showJopFlag = !this.showJopFlag } submitForm() { const params: any = { appUserId: this.i.appUserId, - ...this.sf.value + ...this.sf.value, + bindType: this.i.bindType }; - params.carFrontPhoto = this.detailData.carFrontPhoto; - params.carProtocal = this.detailData.carProtocal; - params.certificatePhotoFront = this.detailData.certificatePhotoFront; - params.certificatePhotoBack = this.detailData.certificatePhotoBack; - params.roadTransportPhoto = this.detailData.roadTransportPhoto; - params.carFrontPhotoWatermark = this.sf.value.carFrontPhotoWatermark?.data?.fullFilePath || this.sf.value.carFrontPhotoWatermark - params.carProtocalWatermark = this.sf.value.carProtocalWatermark?.data?.fullFilePath || this.sf.value.carProtocalWatermark - params.certificatePhotoBackWatermark = this.sf.value.certificatePhotoBackWatermark?.data?.fullFilePath || this.sf.value.certificatePhotoBackWatermark - params.certificatePhotoFrontWatermark = this.sf.value.certificatePhotoFrontWatermark?.data?.fullFilePath || this.sf.value.certificatePhotoFrontWatermark - params.roadTransportPhotoWatermark = this.sf.value.roadTransportPhotoWatermark?.data?.fullFilePath || this.sf.value.roadTransportPhotoWatermark - delete params.titleA; - delete params.titleB; - this.service.request(this.service.$api_addOrUpdateCarLicenseInfo, params).subscribe(res => { + params.carFrontPhoto = this.detailData.carFrontPhoto + params.carProtocal = this.detailData.carProtocal + params.certificatePhotoFront = this.detailData.certificatePhotoFront + params.certificatePhotoBack = this.detailData.certificatePhotoBack + params.roadTransportPhoto = this.detailData.roadTransportPhoto + delete params.titleA + delete params.titleB + this.service.request(this.service.$api_saveUpdateShipperCar, params).subscribe((res: any) => { if (res) { - this.service.msgSrv.success('添加成功'); - this.modal.close(true); + this.service.msgSrv.success('添加成功') + this.modal.close(true) } - }); + }) } } diff --git a/src/app/routes/vehicle/components/list/list.component.ts b/src/app/routes/vehicle/components/list/list.component.ts index ae822729..7f81c557 100644 --- a/src/app/routes/vehicle/components/list/list.component.ts +++ b/src/app/routes/vehicle/components/list/list.component.ts @@ -127,6 +127,15 @@ export class VehicleComponentsListComponent implements OnInit { } } }, + carLoad: { + title: '载重', + type: 'string', + ui: { + visibleIf: { + expand: (value: boolean) => value + } + } + }, isSelf: { type: 'string', title: '是否挂靠', @@ -174,7 +183,23 @@ export class VehicleComponentsListComponent implements OnInit { expand: (value: boolean) => value } } - } + }, + isSelfs: { + type: 'string', + title: '是否入网', + enum: [ + { label: '全部', value: '' }, + { label: '是', value: 1 }, + { label: '否', value: 0 } + ], + ui: { + widget: 'select', + allowClear: true, + visibleIf: { + expand: (value: boolean) => value + } + } + }, // putOnRecord: { // type: 'string', // title: '是否已备案', @@ -211,8 +236,8 @@ export class VehicleComponentsListComponent implements OnInit { false: { text: '空闲', color: 'default' } } }, - { title: '道运证', width: '150px', className: 'text-center', index: 'roadTransportNo' }, - { title: '审核人', width: '150px', className: 'text-center', index: 'approvalUserName' }, + // { title: '道运证', width: '150px', className: 'text-center', index: 'roadTransportNo' }, + // { title: '审核人', width: '150px', className: 'text-center', index: 'approvalUserName' }, { title: '行驶证到期状态', @@ -238,11 +263,11 @@ export class VehicleComponentsListComponent implements OnInit { 3: { text: '已到期', color: 'error' } } }, + { title: '是否入网', width: '200px', className: 'text-center', index: 'carOwner' }, { title: '所有人', width: '200px', className: 'text-center', index: 'carOwner' }, { title: '是否挂靠', width: '150px', className: 'text-center', render: 'isSelf' }, { title: '挂靠协议', width: '150px', className: 'text-center', render: 'approvalAuditStatus' }, // { title: '是否已备案', className: 'text-center', render: 'putOnRecord', }, - { title: '操作', fixed: 'right', @@ -283,6 +308,11 @@ export class VehicleComponentsListComponent implements OnInit { } // 导出 exportFire() { - this.service.downloadFile(this.service.$api_carLicense_export, this.reqParams); + this.service.request(this.service.$api_carLicense_export, this.reqParams).subscribe((res: any) => { + if(res) { + this.service.msgSrv.success('导出成功,请去右上角下载中心下载') + return + } + }); } } diff --git a/src/app/routes/waybill-management/components/abnormal-appear/abnormal-appear.component.html b/src/app/routes/waybill-management/components/abnormal-appear/abnormal-appear.component.html index 13df6295..0b6288ab 100644 --- a/src/app/routes/waybill-management/components/abnormal-appear/abnormal-appear.component.html +++ b/src/app/routes/waybill-management/components/abnormal-appear/abnormal-appear.component.html @@ -1,7 +1,7 @@
- + diff --git a/src/app/shared/components/imagelist/imagelist.component.ts b/src/app/shared/components/imagelist/imagelist.component.ts index 40bb7f37..6fba4fd0 100644 --- a/src/app/shared/components/imagelist/imagelist.component.ts +++ b/src/app/shared/components/imagelist/imagelist.component.ts @@ -1,10 +1,10 @@ /* * @Author: your name * @Date: 2021-12-09 17:36:13 - * @LastEditTime: 2021-12-10 14:12:24 - * @LastEditors: Please set LastEditors + * @LastEditTime : 2022-03-25 15:43:12 + * @LastEditors : Shiming * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE - * @FilePath: \tms-obc-web\src\app\shared\components\imagelist\imagelist.component.ts + * @FilePath : \\tms-obc-web\\src\\app\\shared\\components\\imagelist\\imagelist.component.ts */ import { Component, Input, OnInit } from '@angular/core'; import { ModalHelper, _HttpClient } from '@delon/theme'; @@ -26,13 +26,20 @@ export class ImageListComponent implements OnInit { private nzImageService: NzImageService ) {} - ngOnInit(): void {} + ngOnInit(): void { + + } showImg(index: any) { const params = { imgList: this.imgList, index }; - const images = this.imgList.map((url: string) => ({ src: url })); + const images = this.imgList.map((url: string) => { + if(url) { + console.log(url); + ({ src: url }) + } + }); this.nzImageService.preview(images); // this.modal.create(ImageViewComponent, { params }).subscribe(res => {}); } diff --git a/src/app/shared/services/business/shipper-base.service.ts b/src/app/shared/services/business/shipper-base.service.ts index 9d60db0e..bba9056d 100644 --- a/src/app/shared/services/business/shipper-base.service.ts +++ b/src/app/shared/services/business/shipper-base.service.ts @@ -23,13 +23,16 @@ export class ShipperBaseService extends BaseService { $api_get_rebate_config = `/api/mdc/rebateConfig/list/listRebateConfig`; // 获取渠道销售管理集合 $api_get_channel = `/api/mdc/channelSalesManagement/list/listChannelSalesManagement`; + + // 获取货主企业列表 + public $api_enterpriceList = '/api/mdc/cuc/enterpriseInfo/operate/enterpriceList'; constructor(public injector: Injector) { super(injector); } /** * 获取无车承运人 - * @returns + * @returns */ getCarlessCarrier() { const params = {}; @@ -166,6 +169,33 @@ export class ShipperBaseService extends BaseService { ); } + /** + * 获取货主企业列表 + * @returns + */ + getEnterpriceList(params = { enterpriseName: '' }, containerAll = false) { + let str = params.enterpriseName.replace(/^\s+|\s+$/g, ''); + if (str) { + return this.request(this.$api_enterpriceList, params).pipe( + map((res: any) => { + if (!res) { + return []; + } + const list = res.map((item: any) => { + return { label: item.enterpriseName, value: item.id }; + }); + const obj = []; + if (containerAll) { + obj.push({ label: '全部', value: '' }); + } + return [...obj, ...list]; + }) + ).toPromise();; + } else { + return of([]); + } + } + /** * 获取结算客户 * @returns @@ -267,7 +297,7 @@ export class ShipperBaseService extends BaseService { map(res => { if (res) { return res.map((m: any) => { - return { label: m.name, value: m.id }; + return { label: `${m.employeeVO?.empName}/${m.employeeVO?.mobile}`, value: m.userAppId }; }); } else { return []; diff --git a/src/app/shared/services/business/user.service.ts b/src/app/shared/services/business/user.service.ts index 7cd940c5..82f6a790 100644 --- a/src/app/shared/services/business/user.service.ts +++ b/src/app/shared/services/business/user.service.ts @@ -152,16 +152,16 @@ export class EAUserService extends BaseService { * 加载用户菜单 */ async loadUserMenus() { - // return this.asyncRequest(this.$api_get_user_menus, { - // appId: this.envSrv.getEnvironment().appId - // }).then(res => { - // this.cacheSrv.set(cacheConf.menu, res); - // this.menuService.add(res); - // }); - this.request('assets/mocks/menu-data.json', {}, 'GET').subscribe((res: any) => { - this.cacheSrv.set(cacheConf.menu, res.menu); - this.menuService.add(res.menu); + return this.asyncRequest(this.$api_get_user_menus, { + appId: this.envSrv.getEnvironment().appId + }).then(res => { + this.cacheSrv.set(cacheConf.menu, res); + this.menuService.add(res); }); + // this.request('assets/mocks/menu-data.json', {}, 'GET').subscribe((res: any) => { + // this.cacheSrv.set(cacheConf.menu, res.menu); + // this.menuService.add(res.menu); + // }); } /** diff --git a/src/app/shared/shared-g2.module.ts b/src/app/shared/shared-g2.module.ts index 685f05bc..93863e08 100644 --- a/src/app/shared/shared-g2.module.ts +++ b/src/app/shared/shared-g2.module.ts @@ -2,5 +2,7 @@ import { G2BarModule } from '@delon/chart/bar'; import { G2MiniAreaModule } from '@delon/chart/mini-area'; import { G2PieModule } from '@delon/chart/pie'; import { G2TimelineModule } from '@delon/chart/timeline'; +import { G2CardModule } from '@delon/chart/card'; -export const SHARED_G2_MODULES = [G2BarModule, G2PieModule, G2TimelineModule, G2MiniAreaModule]; + +export const SHARED_G2_MODULES = [G2BarModule, G2PieModule, G2TimelineModule, G2MiniAreaModule, G2CardModule]; diff --git a/src/app/shared/widget/from-to/from-to.widget.ts b/src/app/shared/widget/from-to/from-to.widget.ts index e388f426..2724593d 100644 --- a/src/app/shared/widget/from-to/from-to.widget.ts +++ b/src/app/shared/widget/from-to/from-to.widget.ts @@ -61,13 +61,12 @@ export class EAFromToWidget extends ControlWidget implements OnInit { } onChange(result: Array): void { - console.log('onChange: ', result); - + // console.log('onChange: ', result); if (this.type === 'date') { if (JSON.stringify(result) !== '[]') { this.setValue({ start: format(result[0], this.format), end: format(result[1], this.format) }); } else { - this.setValue(null); + this.setValue({ start: '', end: '' }); } } else if (this.type === 'number') { } else { @@ -82,4 +81,8 @@ export class EAFromToWidget extends ControlWidget implements OnInit { _change(value: string): void { this.setValue(value); } + + reset(value: string) { + this.date = []; + } } diff --git a/src/app/shared/widget/tinymce/tinymce.widget.ts b/src/app/shared/widget/tinymce/tinymce.widget.ts index 958643a8..3657a550 100644 --- a/src/app/shared/widget/tinymce/tinymce.widget.ts +++ b/src/app/shared/widget/tinymce/tinymce.widget.ts @@ -1,3 +1,13 @@ +/* + * @Description : + * @Version : 1.0 + * @Author : Shiming + * @Date : 2021-11-29 10:04:12 + * @LastEditors : Shiming + * @LastEditTime : 2022-03-24 18:18:00 + * @FilePath : \\tms-obc-web\\src\\app\\shared\\widget\\tinymce\\tinymce.widget.ts + * Copyright (C) 2022 huzhenhong. All rights reserved. + */ import { Component, OnInit } from '@angular/core'; import { ControlWidget } from '@delon/form'; diff --git a/src/assets/mocks/menu-data.json b/src/assets/mocks/menu-data.json index a55bcd70..25563c4a 100644 --- a/src/assets/mocks/menu-data.json +++ b/src/assets/mocks/menu-data.json @@ -1,1025 +1,650 @@ { "success": true, "data": { - "menu": [ - { - "text": "主导航", - "hideInBreadcrumb": true, - "children": [ - { - "text": "用户中心", - "icon": "iconfont icon-yonghu-copy", - "group": true, - "children": [ - { - "text": "货主管理", - "children": [ - { - "text": "企业列表", - "link": "/usercenter/freight/list" - }, - { - "text": "道运证", - "hide": true, - "link": "/usercenter/freight/list/view/:id" - }, - { - "text": "货主详情", - "hide": true, - "link": "/usercenter/freight/list/detail/:id" - }, - { - "text": "企业认证", - "hide": true, - "link": "/usercenter/freight/new" - }, - { - "text": "企业审核列表", - "link": "/usercenter/freight/enterprise" - }, - { - "text": "企业审核列表详情", - "hide": true, - "link": "/usercenter/freight/enterprise/view/:id" - }, - { - "text": "货主员工列表", - "link": "/usercenter/freight/user" - }, - { - "text": "货主员工详情", - "hide": true, - "link": "/usercenter/freight/user/view/:id" - } - ] - }, - { - "text": "司机管理", - "link": "/demo/zorro", - "children": [ - { - "text": "司机列表", - "link": "/usercenter/driver" - }, - { - "text": "司机详情", - "hide": true, - "link": "/usercenter/driver/detail/:id" - }, - { - "text": "车队长列表", - "link": "/usercenter/driver/captain" - }, - { - "text": "司机配置", - "link": "/usercenter/driver/config" - } - ] - } - ] - }, - { - "text": "运力管理", - "icon": "iconfont icon-yunli-copy", - "group": true, - "children": [ - { - "text": "车辆列表", - "link": "/vehicle/list" - }, - { - "hide": true, - "text": "车辆列表详情", - "link": "/vehicle/list/detail/:id" - }, - { - "text": "车辆审核列表", - "link": "/vehicle/audit" - }, - { - "hide": true, - "text": "车辆审核列表详情", - "link": "/vehicle/audit/detail/:id" - } - ] - }, - { - "text": "货源管理", - "icon": "iconfont icon-huoyuan-copy", - "group": true, - "children": [ - { - "text": "货源管理", - "link": "/supply-management/index", - "reuse": true - }, - { - "text": "货源详情", - "link": "/supply-management/bulk-detail", - "hide": true - }, - { - "text": "修改货源", - "link": "/supply-management/vehicle-amend/:id", - "hide": true - }, - { - "text": "整车代发货源", - "link": "/supply-management/vehicle-release", - "hide": true - }, - { - "text": "大宗代发货源", - "link": "/supply-management/bulk-release", - "hide": true - }, - { - "text": "货源详情", - "link": "/supply-management/vehicle-detail/:id", - "hide": true - } - ] - }, - { - "text": "订单管理", - "icon": "iconfont icon-dingdan-copy", - "group": true, - "children": [ - { - "text": "整车订单", - "link": "/order-management/vehicle" - }, - { - "text": "大宗订单", - "link": "/order-management/bulk" - }, - { - "text": "风险单管理", - "link": "/order-management/risk" - }, - { - "text": "单据审核", - "link": "/order-management/receipts-audit" - }, - { - "text": "投诉管理", - "link": "/order-management/complaint" - }, - { - "text": "合规抽查", - "link": "/order-management/compliance-audit" - }, - { - "text": "整车订单详情", - "link": "/order-management/vehicle-detail/:id", - "hide": true - }, - { - "text": "大宗订单详情", - "link": "/order-management/bulk-detail/:id", - "hide": true - } - ] - }, - { - "text": "运单管理", - "icon": "iconfont icon-yundan-copy", - "group": true, - "children": [ - { - "text": "整车运单", - "link": "/waybill-management/vehicle" - }, - { - "hide": true, - "text": "整车运单详情", - "link": "/waybill-management/vehicle-detail/:id" - }, - { - "text": "大宗运单", - "link": "/waybill-management/bulk" - }, - { - "hide": true, - "text": "大宗运单详情", - "link": "/waybill-management/bulk-detail/:id" - }, - { - "text": "异常上报", - "link": "/waybill-management/abnormal-appear" - } - ] - }, - { - "text": "保险管理", - "icon": "iconfont icon-yundan-copy", - "group": true, - "children": [ - { - "text": "保险列表", - "link": "/insurance-management/list" - } - ] - }, - { - "text": "财务管理", - "icon": "iconfont icon-caiwu-copy", - "group": true, - "children": [ - { - "text": "费用管理", - "link": "/financial-management/cost-management" - }, - { - "text": "费用浏览", - "hide": true, - "link": "/financial-management/cost-management/detail/:id" - }, - { - "text": "凭证管理", - "link": "/financial-management/voucher-management" - }, - { - "text": "凭证汇总", - "link": "/financial-management/voucher-summary" - }, - { - "text": "应收费用单", - "hide": true, - "link": "/financial-management/cost-management/expenses-receivable/:id" - }, - { - "text": "应付费用单", - "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/receivable-order" - }, - { - "text": "应收核销详情", - "hide": true, - "link": "/financial-management/receivable-order/detail/:id" - }, - { - "text": "应付核销", - "link": "/financial-management/payable-order" - }, - { - "text": "应收核销详情", - "hide": true, - "link": "/financial-management/payable-order/detail/:id" - }, - { - "text": "货主账户", - "link": "/financial-management/freight-account" - }, - { - "text": "货主账户详情", - "hide": true, - "link": "/financial-management/freight-account/detail/:id" - }, - { - "text": "平台账户", - "link": "/financial-management/platform-account" - }, - { - "text": "司机账户", - "link": "/financial-management/driver-account" - }, - { - "text": "司机账户详情", - "hide": true, - "link": "/financial-management/driver-account/detail/:id" - }, - { - "text": "充值记录", - "link": "/financial-management/recharge-record" - }, - { - "text": "提现记录", - "link": "/financial-management/withdrawals-record" - }, - { - "text": "提现详情", - "hide": true, - "link": "/financial-management/withdrawals-record/detail/:id" - }, - { - "text": "异常入金", - "link": "/financial-management/abnormal-gold" - }, - { - "text": "支付记录", - "link": "/financial-management/payment-record" - }, - { - "text": "交易流水", - "link": "/financial-management/transaction-flow" - } - ] - }, - { - "text": "票务管理", - "icon": "iconfont icon-piaowu-copy", - "group": true, - "children": [ - { - "text": "销项发票", - "children": [ - { - "text": "开票申请", - "link": "/ticket/invoice-requested" - }, - { - "text": "开票订单明细", - "link": "/ticket/invoice-requested/detail/:id", - "hide": true - }, - { - "text": "销票处理", - "link": "/ticket/cancellation-invoice" - }, - { - "text": "销票订单明细", - "link": "/ticket/cancellation-invoice/detail/:id", - "hide": true - }, - { - "text": "已开发票", - "link": "/ticket/invoice-list" - }, - { - "text": "已开订单明细", - "link": "/ticket/invoice-list/detail/:id", - "hide": true - }, - { - "text": "快递信息", - "link": "/ticket/express-info" - } - ] - }, - { - "text": "ETC发票", - "children": [ - { - "text": "申请发票", - "link": "/ticket/etc-invoice-requested" - }, - { - "text": "开票记录", - "link": "/ticket/etc-invoice-list" - }, - { - "text": "已开发票", - "link": "/ticket/etc-invoiced-logs" - }, - { - "text": "ETC白名单", - "link": "/ticket/etc-blacklist" - } - ] - }, - { - "text": "进项发票", - "link": "/ticket/input-invoice" - }, - { - "text": "修改收票信息", - "link": "/ticket/input-invoice/detail/:id", - "hide": true - }, - { - "text": "进项发票", - "link": "/ticket/input-invoice/edit/:id", - "hide": true - } - ] - }, - { - "text": "合同管理", - "icon": "iconfont icon-hetong-copy", - "group": true, - "children": [ - { - "text": "保单管理", - "link": "/contract-management/policy" - }, - { - "text": "合同管理", - "link": "/contract-management/index" - }, - { - "text": "合同模板", - "link": "/contract-management/template" - } - ] - }, - { - "text": "系统设置", - "icon": "iconfont icon-shezhi-copy", - "group": true, - "children": [ - { - "text": "员工管理", - "group": true, - "children": [ - { - "text": "员工管理", - "link": "/system/staff-management" - }, - { - "text": "角色管理", - "link": "/system/role-management" - } - ] - }, - { - "text": "操作日志", - "group": true, - "children": [ - { - "text": "系统操作日志", - "link": "/logs/system-logs" - }, - { - "text": "货源操作日志", - "link": "/logs/system-supply-logs" - }, - { - "text": "订单操作日志", - "link": "/logs/system-waybill-logs" - }, - { - "text": "用户登录日志", - "link": "/logs/user-logs" - }, - { - "text": "版本发布记录", - "link": "/logs/version-logs" - } - ] - }, - { - "text": "CRM客户管理", - "link": "/system/crm-management" - }, - { - "text": "结算客户管理", - "link": "/system/close-account" - }, - { - "text": "网络货运人", - "link": "/system/network-freight" - }, - { - "text": "基础设置", - "link": "/system/basic-setting" - }, - { - "text": "保险配置", - "link": "/system/insurance-set" - }, - { - "text": "公告信息管理", - "link": "/system/announcement-message" - }, - { - "text": "车型车长配置", - "link": "/system/cart-config" - }, - { - "text": "基础配置", - "link": "/system/basic-config" - }, - { - "text": "协议配置", - "link": "/system/agreement-config" - }, - { - "text": "菜单管理", - "link": "/menu-management/index" - }, - { - "text": "接口权限", - "link": "/menu-management/auth" - }, - { - "text": "系统配置", - "link": "/system/system-config" - }, - { - "text": "货物名称配置", - "link": "/system/goods-name-config" - } - ] - }, - { - "text": "合伙人管理", - "icon": "anticon anticon-dashboard", - "children": [ - { - "text": "合伙人列表", - "link": "/partner/partner-list" - }, - { - "text": "业务统计", - "link": "/partner/business-statistics/index" - }, - { - "text": "返佣管理", - "group": true, - "children": [ - { - "text": "返佣配置", - "link": "/partner/rebate/setting" - }, - { - "text": "返佣明细", - "link": "/partner/rebate/particulars" - }, - { - "text": "返佣记录", - "link": "/partner/rebate/record" - } - ] - }, - { - "text": "销售渠道管理", - "link": "/partner/channel-sales/list" - }, - { - "text": "等级配置", - "link": "/partner/level-config/list" - }, - { - "text": "账户管理", - "group": true, - "children": [ - { - "text": "账户管理", - "link": "/partner/account-management/am/list" - }, - { - "text": "账户明细", - "link": "/partner/account-management/am/detail/:id", - "hide": true - }, - { - "text": "提现记录", - "link": "/partner/account-management/withdraw-record" - }, - { - "text": "提现详情", - "link": "/partner/account-management/withdraw-record/detail/:id", - "hide": true - }, - { - "text": "待入账明细", - "link": "/partner/account-management/am/recorded/detail/:id", - "hide": true - } - ] - }, - { - "text": "客户认领审核", - "link": "/partner/claim-audit/list" - }, - { - "text": "合伙人客户认领详情", - "link": "/partner/claim-audit/partner-detail", - "hide": true - }, - { - "text": "渠道销售客户认领详情", - "link": "/partner/claim-audit/channel-detail", - "hide": true - }, - { - "text": "入账记录", - "link": "/partner/recorded/record" - }, - { - "text": "入账详情", - "link": "/partner/recorded/record/:id", - "hide": true - }, - { - "text": "轮播图管理", - "link": "/partner/scroll-img/list" - }, - { - "text": "建议反馈管理", - "link": "/partner/advice-feedback/list" - }, - { - "text": "建议反馈管理详情", - "link": "/partner/advice-feedback/detail", - "hide": true - }, - { - "text": "知识库管理", - "icon": "iconfont icon-yundan-copy", - "group": true, - "children": [ - { - "text": "banner管理", - "link": "/partner/knowledge/banner", - "children": [ - { - "text": "新增banner", - "link": "/partner/knowledge/banner/detail" - } - ] - }, - { - "text": "文章管理", - "link": "/partner/knowledge/article-management-list" - }, - { - "text": "新增文章", - "link": "/partner/knowledge/article-management-add", - "hide": true - }, - { - "text": "编辑文章", - "link": "/partner/knowledge/article-management-edit", - "hide": true - } - ] - }, - { - "text": "运单管理", - "icon": "iconfont icon-yundan-copy", - "group": true, - "children": [ - { - "text": "整车运单", - "link": "/waybill-management/vehicle" - }, - { - "hide": true, - "text": "整车运单详情", - "link": "/waybill-management/vehicle-detail/:id" - }, - { - "text": "大宗运单", - "link": "/waybill-management/bulk" - }, - { - "hide": true, - "text": "大宗运单详情", - "link": "/waybill-management/bulk-detail/:id" - }, - { - "text": "异常上报", - "link": "/waybill-management/abnormal-appear" - } - ] - }, - { - "text": "保险管理", - "icon": "iconfont icon-yundan-copy", - "group": true, - "children": [ - { - "text": "保险列表", - "link": "/insurance-management/list" - } - ] - }, - { - "text": "财务管理", - "icon": "iconfont icon-caiwu-copy", - "group": true, - "children": [ - { - "text": "费用管理", - "link": "/financial-management/cost-management" - }, - { - "text": "费用浏览", - "hide": true, - "link": "/financial-management/cost-management/detail/:id" - }, - { - "text": "凭证管理", - "link": "/financial-management/voucher-management" - }, - { - "text": "凭证汇总", - "link": "/financial-management/voucher-summary" - }, - { - "text": "应收费用单", - "hide": true, - "link": "/financial-management/cost-management/expenses-receivable/:id" - }, - { - "text": "应付费用单", - "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/receivable-order" - }, - { - "text": "应收核销详情", - "hide": true, - "link": "/financial-management/receivable-order/detail/:id" - }, - { - "text": "应付核销", - "link": "/financial-management/payable-order" - }, - { - "text": "应收核销详情", - "hide": true, - "link": "/financial-management/payable-order/detail/:id" - }, - { - "text": "货主账户", - "link": "/financial-management/freight-account" - }, - { - "text": "货主账户详情", - "hide": true, - "link": "/financial-management/freight-account/detail/:id" - }, - { - "text": "平台账户", - "link": "/financial-management/platform-account" - }, - { - "text": "司机账户", - "link": "/financial-management/driver-account" - }, - { - "text": "司机账户详情", - "hide": true, - "link": "/financial-management/driver-account/detail/:id" - }, - { - "text": "充值记录", - "link": "/financial-management/recharge-record" - }, - { - "text": "提现记录", - "link": "/financial-management/withdrawals-record" - }, - { - "text": "提现详情", - "hide": true, - "link": "/financial-management/withdrawals-record/detail/:id" - }, - { - "text": "异常入金", - "link": "/financial-management/abnormal-gold" - }, - { - "text": "支付记录", - "link": "/financial-management/payment-record" - }, - { - "text": "交易流水", - "link": "/financial-management/transaction-flow" - } - ] - }, - { - "text": "票务管理", - "icon": "iconfont icon-piaowu-copy", - "group": true, - "children": [ - { - "text": "销项发票", - "children": [ - { - "text": "开票申请", - "link": "/ticket/invoice-requested" - }, - { - "text": "开票订单明细", - "link": "/ticket/invoice-requested/detail/:id", - "hide": true - }, - { - "text": "销票处理", - "link": "/ticket/cancellation-invoice" - }, - { - "text": "销票订单明细", - "link": "/ticket/cancellation-invoice/detail/:id", - "hide": true - }, - { - "text": "已开发票", - "link": "/ticket/invoice-list" - }, - { - "text": "已开订单明细", - "link": "/ticket/invoice-list/detail/:id", - "hide": true - }, - { - "text": "快递信息", - "link": "/ticket/express-info" - } - ] - }, - { - "text": "ETC发票", - "children": [ - { - "text": "申请发票", - "link": "/ticket/etc-invoice-requested" - }, - { - "text": "开票记录", - "link": "/ticket/etc-invoice-list" - }, - { - "text": "已开发票", - "link": "/ticket/etc-invoiced-logs" - }, - { - "text": "ETC白名单", - "link": "/ticket/etc-blacklist" - } - ] - }, - { - "text": "进项发票", - "link": "/ticket/input-invoice" - }, - { - "text": "修改收票信息", - "link": "/ticket/input-invoice/detail/:id", - "hide": true - }, - { - "text": "进项发票", - "link": "/ticket/input-invoice/edit/:id", - "hide": true - } - ] - }, - { - "text": "合同管理", - "icon": "iconfont icon-hetong-copy", - "group": true, - "children": [ - { - "text": "保单管理", - "link": "/contract-management/policy" - }, - { - "text": "合同管理", - "link": "/contract-management/index" - }, - { - "text": "合同模板", - "link": "/contract-management/template" - } - ] - }, - { - "text": "系统设置", - "icon": "iconfont icon-shezhi-copy", - "group": true, - "children": [ - { - "text": "员工管理", - "group": true, - "children": [ - { - "text": "员工管理", - "link": "/system/staff-management" - }, - { - "text": "角色管理", - "link": "/system/role-management" - } - ] - }, - { - "text": "操作日志", - "group": true, - "children": [ - { - "text": "系统操作日志", - "link": "/logs/system-logs" - }, - { - "text": "货源操作日志", - "link": "/logs/system-supply-logs" - }, - { - "text": "订单操作日志", - "link": "/logs/system-waybill-logs" - }, - { - "text": "用户登录日志", - "link": "/logs/user-logs" - }, - { - "text": "版本发布记录", - "link": "/logs/version-logs" - } - ] - }, - { - "text": "CRM客户管理", - "link": "/system/crm-management" - }, - { - "text": "短信管理", - "link": "/system/note-management" - }, - { - "text": "结算客户管理", - "link": "/system/close-account" - }, - { - "text": "网络货运人", - "link": "/system/network-freight" - }, - { - "text": "基础设置", - "link": "/system/basic-setting" - }, - { - "text": "保险配置", - "link": "/system/insurance-set" - }, - { - "text": "公告信息管理", - "link": "/system/announcement-message" - }, - { - "text": "车型车长配置", - "link": "/system/cart-config" - }, - { - "text": "基础配置", - "link": "/system/basic-config" - }, - { - "text": "协议配置", - "link": "/system/agreement-config" - }, - { - "text": "菜单管理", - "link": "/menu-management/index" - }, - { - "text": "接口权限", - "link": "/menu-management/auth" - }, - { - "text": "系统配置", - "link": "/system/system-config" - }, - { - "text": "分类管理", - "link": "/partner/knowledge/classification" - } - ] - } - ] - }, - { - "text": "数据监管", - "icon": "iconfont icon-hetong-copy", - "group": true, - "children": [ - { - "text": "数据报表", - "link": "/regulatory-data/dashboard" - } - ] - } - ] - } - ] + "menu": [{ + "text": "主导航", + "hideInBreadcrumb": true, + "children": [{ + "text": "用户中心", + "icon": "iconfont icon-yonghu-copy", + "group": true, + "children": [{ + "text": "货主管理", + "children": [{ + "text": "企业列表", + "link": "/usercenter/freight/list" + }, + { + "text": "道运证", + "hide": true, + "link": "/usercenter/freight/list/view/:id" + }, + { + "text": "货主详情", + "hide": true, + "link": "/usercenter/freight/list/detail/:id" + }, + { + "text": "企业认证", + "hide": true, + "link": "/usercenter/freight/new" + }, + { + "text": "企业审核列表", + "link": "/usercenter/freight/enterprise" + }, + { + "text": "企业审核列表详情", + "hide": true, + "link": "/usercenter/freight/enterprise/view/:id" + }, + { + "text": "货主员工列表", + "link": "/usercenter/freight/user" + }, + { + "text": "货主员工详情", + "hide": true, + "link": "/usercenter/freight/user/view/:id" + } + ] + }, + { + "text": "司机管理", + "link": "/demo/zorro", + "children": [{ + "text": "司机列表", + "link": "/usercenter/driver" + }, + { + "text": "司机详情", + "hide": true, + "link": "/usercenter/driver/detail/:id" + }, + { + "text": "车队长列表", + "link": "/usercenter/driver/captain" + }, + { + "text": "司机配置", + "link": "/usercenter/driver/config" + } + ] + } + ] + }, + { + "text": "运力管理", + "icon": "iconfont icon-yunli-copy", + "group": true, + "children": [{ + "text": "车辆列表", + "link": "/vehicle/list" + }, + { + "hide": true, + "text": "车辆列表详情", + "link": "/vehicle/list/detail/:id" + }, + { + "text": "车辆审核列表", + "link": "/vehicle/audit" + }, + { + "hide": true, + "text": "车辆审核列表详情", + "link": "/vehicle/audit/detail/:id" + } + ] + }, + { + "text": "货源管理", + "icon": "iconfont icon-huoyuan-copy", + "group": true, + "children": [{ + "text": "货源管理", + "link": "/supply-management/index", + "reuse": true + }, + { + "text": "货源详情", + "link": "/supply-management/bulk-detail", + "hide": true + }, + { + "text": "修改货源", + "link": "/supply-management/vehicle-amend/:id", + "hide": true + }, + { + "text": "整车代发货源", + "link": "/supply-management/vehicle-release", + "hide": true + }, + { + "text": "大宗代发货源", + "link": "/supply-management/bulk-release", + "hide": true + }, + { + "text": "货源详情", + "link": "/supply-management/vehicle-detail/:id", + "hide": true + } + ] + }, + { + "text": "订单管理", + "icon": "iconfont icon-dingdan-copy", + "group": true, + "children": [{ + "text": "整车订单", + "link": "/order-management/vehicle" + }, + { + "text": "大宗订单", + "link": "/order-management/bulk" + }, + { + "text": "风险单管理", + "link": "/order-management/risk" + }, + { + "text": "单据审核", + "link": "/order-management/receipts-audit" + }, + { + "text": "投诉管理", + "link": "/order-management/complaint" + }, + { + "text": "合规抽查", + "link": "/order-management/compliance-audit" + }, + { + "text": "整车订单详情", + "link": "/order-management/vehicle-detail/:id", + "hide": true + }, + { + "text": "大宗订单详情", + "link": "/order-management/bulk-detail/:id", + "hide": true + } + ] + }, + { + "text": "运单管理", + "icon": "iconfont icon-yundan-copy", + "group": true, + "children": [{ + "text": "整车运单", + "link": "/waybill-management/vehicle" + }, + { + "hide": true, + "text": "整车运单详情", + "link": "/waybill-management/vehicle-detail/:id" + }, + { + "text": "大宗运单", + "link": "/waybill-management/bulk" + }, + { + "hide": true, + "text": "大宗运单详情", + "link": "/waybill-management/bulk-detail/:id" + }, + { + "text": "异常上报", + "link": "/waybill-management/abnormal-appear" + } + ] + }, + { + "text": "保险管理", + "icon": "iconfont icon-yundan-copy", + "group": true, + "children": [{ + "text": "保险列表", + "link": "/insurance-management/list" + }] + }, + { + "text": "财务管理", + "icon": "iconfont icon-caiwu-copy", + "group": true, + "children": [{ + "text": "费用管理", + "link": "/financial-management/cost-management" + }, + { + "text": "费用浏览", + "hide": true, + "link": "/financial-management/cost-management/detail/:id" + }, + { + "text": "凭证管理", + "link": "/financial-management/voucher-management" + }, + { + "text": "凭证汇总", + "link": "/financial-management/voucher-summary" + }, + { + "text": "应收费用单", + "hide": true, + "link": "/financial-management/cost-management/expenses-receivable/:id" + }, + { + "text": "应付费用单", + "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/receivable-order" + }, + { + "text": "应收核销详情", + "hide": true, + "link": "/financial-management/receivable-order/detail/:id" + }, + { + "text": "应付核销", + "link": "/financial-management/payable-order" + }, + { + "text": "应收核销详情", + "hide": true, + "link": "/financial-management/payable-order/detail/:id" + }, + { + "text": "货主账户", + "link": "/financial-management/freight-account" + }, + { + "text": "货主账户详情", + "hide": true, + "link": "/financial-management/freight-account/detail/:id" + }, + { + "text": "平台账户", + "link": "/financial-management/platform-account" + }, + { + "text": "司机账户", + "link": "/financial-management/driver-account" + }, + { + "text": "司机账户详情", + "hide": true, + "link": "/financial-management/driver-account/detail/:id" + }, + { + "text": "充值记录", + "link": "/financial-management/recharge-record" + }, + { + "text": "提现记录", + "link": "/financial-management/withdrawals-record" + }, + { + "text": "提现详情", + "hide": true, + "link": "/financial-management/withdrawals-record/detail/:id" + }, + { + "text": "异常入金", + "link": "/financial-management/abnormal-gold" + }, + { + "text": "支付记录", + "link": "/financial-management/payment-record" + }, + { + "text": "交易流水", + "link": "/financial-management/transaction-flow" + } + ] + }, + { + "text": "票务管理", + "icon": "iconfont icon-piaowu-copy", + "group": true, + "children": [{ + "text": "销项发票", + "children": [{ + "text": "开票申请", + "link": "/ticket/invoice-requested" + }, + { + "text": "开票订单明细", + "link": "/ticket/invoice-requested/detail/:id", + "hide": true + }, + { + "text": "销票处理", + "link": "/ticket/cancellation-invoice" + }, + { + "text": "销票订单明细", + "link": "/ticket/cancellation-invoice/detail/:id", + "hide": true + }, + { + "text": "已开发票", + "link": "/ticket/invoice-list" + }, + { + "text": "已开订单明细", + "link": "/ticket/invoice-list/detail/:id", + "hide": true + }, + { + "text": "快递信息", + "link": "/ticket/express-info" + } + ] + }, + { + "text": "ETC发票", + "children": [{ + "text": "申请发票", + "link": "/ticket/etc-invoice-requested" + }, + { + "text": "开票记录", + "link": "/ticket/etc-invoice-list" + }, + { + "text": "已开发票", + "link": "/ticket/etc-invoiced-logs" + }, + { + "text": "ETC白名单", + "link": "/ticket/etc-blacklist" + } + ] + }, + { + "text": "进项发票", + "link": "/ticket/input-invoice" + }, + { + "text": "修改收票信息", + "link": "/ticket/input-invoice/detail/:id", + "hide": true + }, + { + "text": "进项发票", + "link": "/ticket/input-invoice/edit/:id", + "hide": true + } + ] + }, + { + "text": "合同管理", + "icon": "iconfont icon-hetong-copy", + "group": true, + "children": [{ + "text": "保单管理", + "link": "/contract-management/policy" + }, + { + "text": "合同管理", + "link": "/contract-management/index" + }, + { + "text": "合同模板", + "link": "/contract-management/template" + } + ] + }, + { + "text": "系统设置", + "icon": "iconfont icon-shezhi-copy", + "group": true, + "children": [{ + "text": "员工管理", + "group": true, + "children": [{ + "text": "员工管理", + "link": "/system/staff-management" + }, + { + "text": "角色管理", + "link": "/system/role-management" + } + ] + }, + { + "text": "操作日志", + "group": true, + "children": [{ + "text": "系统操作日志", + "link": "/logs/system-logs" + }, + { + "text": "货源操作日志", + "link": "/logs/system-supply-logs" + }, + { + "text": "订单操作日志", + "link": "/logs/system-waybill-logs" + }, + { + "text": "用户登录日志", + "link": "/logs/user-logs" + }, + { + "text": "版本发布记录", + "link": "/logs/version-logs" + } + ] + }, + { + "text": "CRM客户管理", + "link": "/system/crm-management" + }, + { + "text": "结算客户管理", + "link": "/system/close-account" + }, + { + "text": "网络货运人", + "link": "/system/network-freight" + }, + { + "text": "基础设置", + "link": "/system/basic-setting" + }, + { + "text": "保险配置", + "link": "/system/insurance-set" + }, + { + "text": "公告信息管理", + "link": "/system/announcement-message" + }, + { + "text": "车型车长配置", + "link": "/system/cart-config" + }, + { + "text": "基础配置", + "link": "/system/basic-config" + }, + { + "text": "协议配置", + "link": "/system/agreement-config" + }, + { + "text": "菜单管理", + "link": "/menu-management/index" + }, + { + "text": "接口权限", + "link": "/menu-management/auth" + }, + { + "text": "系统配置", + "link": "/system/system-config" + }, + { + "text": "货物名称配置", + "link": "/system/goods-name-config" + } + ] + }, + { + "text": "合伙人管理", + "icon": "anticon anticon-dashboard", + "children": [{ + "text": "合伙人列表", + "link": "/partner/partner-list" + }, + { + "text": "业务统计", + "link": "/partner/business-statistics/index" + }, + { + "text": "返佣管理", + "group": true, + "children": [{ + "text": "返佣配置", + "link": "/partner/rebate/setting" + }, + { + "text": "返佣明细", + "link": "/partner/rebate/particulars" + }, + { + "text": "返佣记录", + "link": "/partner/rebate/record" + } + ] + }, + { + "text": "销售渠道管理", + "link": "/partner/channel-sales/list" + }, + { + "text": "等级配置", + "link": "/partner/level-config/list" + }, + { + "text": "账户管理", + "group": true, + "children": [{ + "text": "账户管理", + "link": "/partner/account-management/am/list" + }, + { + "text": "账户明细", + "link": "/partner/account-management/am/detail/:id", + "hide": true + }, + { + "text": "提现记录", + "link": "/partner/account-management/withdraw-record" + }, + { + "text": "提现详情", + "link": "/partner/account-management/withdraw-record/detail/:id", + "hide": true + }, + { + "text": "待入账明细", + "link": "/partner/account-management/am/recorded/detail/:id", + "hide": true + } + ] + }, + { + "text": "客户认领审核", + "link": "/partner/claim-audit/list" + }, + { + "text": "合伙人客户认领详情", + "link": "/partner/claim-audit/partner-detail", + "hide": true + }, + { + "text": "渠道销售客户认领详情", + "link": "/partner/claim-audit/channel-detail", + "hide": true + }, + { + "text": "入账记录", + "link": "/partner/recorded/record" + }, + { + "text": "入账详情", + "link": "/partner/recorded/record/:id", + "hide": true + }, + { + "text": "轮播图管理", + "link": "/partner/scroll-img/list" + }, + { + "text": "建议反馈管理", + "link": "/partner/advice-feedback/list" + }, + { + "text": "建议反馈管理详情", + "link": "/partner/advice-feedback/detail", + "hide": true + }, + { + "text": "知识库管理", + "icon": "iconfont icon-yundan-copy", + "group": true, + "children": [{ + "text": "banner管理", + "link": "/partner/knowledge/banner", + "children": [{ + "text": "新增banner", + "link": "/partner/knowledge/banner/detail" + }] + }, + { + "text": "文章管理", + "link": "/partner/knowledge/article-management-list" + }, + { + "text": "新增文章", + "link": "/partner/knowledge/article-management-add", + "hide": true + }, + { + "text": "编辑文章", + "link": "/partner/knowledge/article-management-edit", + "hide": true + } + ] + } + ] + }, + { + "text": "数据监管", + "icon": "iconfont icon-hetong-copy", + "group": true, + "children": [{ + "text": "数据报表", + "link": "/regulatory-data/dashboard" + }] + } + ] + }] } -} \ No newline at end of file +} diff --git a/src/styles/theme.less b/src/styles/theme.less index b39a9b01..ae6c6f8c 100644 --- a/src/styles/theme.less +++ b/src/styles/theme.less @@ -10,12 +10,12 @@ // ==========Custom brand visual color========== .error-color { - color: #ff4d4f; + color: #ff4d4f; } @primary-color : #F5222D; @font-size-base: 15px; -.page-header__title { - display: none; -} \ No newline at end of file +// .page-header__title { +// display: none; +// }