Merge branch 'develop'

This commit is contained in:
wangshiming
2022-05-06 15:31:19 +08:00
80 changed files with 1817 additions and 2126 deletions

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-01-18 09:51:21 * @Date : 2022-01-18 09:51:21
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-05-05 15:22:17 * @LastEditTime : 2022-05-06 15:29:21
* @FilePath : \\tms-obc-web\\proxy.conf.js * @FilePath : \\tms-obc-web\\proxy.conf.js
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */

View File

@ -15,7 +15,8 @@ const alainConfig: AlainConfig = {
req: { method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' } }, req: { method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' } },
res: { reName: { list: 'data.records', total: 'data.total' } }, res: { reName: { list: 'data.records', total: 'data.total' } },
page: { show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000], toTop: false }, page: { show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000], toTop: false },
modal: { size: 'lg' } modal: { size: 'lg' },
ps: 20
}, },
sf: { button: { search: '查询' } }, sf: { button: { search: '查询' } },
pageHeader: { homeI18n: 'home', recursiveBreadcrumb: true }, pageHeader: { homeI18n: 'home', recursiveBreadcrumb: true },
@ -27,7 +28,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/g2/4.1.4/dist/g2.min.js',
'https://gw.alipayobjects.com/os/lib/antv/data-set/0.11.7/dist/data-set.js' 'https://gw.alipayobjects.com/os/lib/antv/data-set/0.11.7/dist/data-set.js'
] ]
}, }
}; };
const alainModules = [AlainThemeModule.forRoot(), DelonACLModule.forRoot()]; const alainModules = [AlainThemeModule.forRoot(), DelonACLModule.forRoot()];

View File

@ -4,6 +4,23 @@ import { SearchDrawerService } from '@shared';
import { fromEvent, Subscription } from 'rxjs'; import { fromEvent, Subscription } from 'rxjs';
import { debounceTime } from 'rxjs/operators'; import { debounceTime } from 'rxjs/operators';
/**
* 列表基础组件
* 功能:
* 1、计算列表滚动高度scrollY
* 实现:
* 1、列表组件需继承BasicTableComponent并且提供SearchDrawerService派生类
* 2、引入commom-table.less 样式文件
* 3、列表使用table-box class包裹。组件会自动减去layout-pro-header、page-header-wrapper和nz-tabs-nav标签的高度以及header_box和height_box class的高度最后减去deviationHeight的偏移高度
* 2、提供筛选抽屉并返回sf实例sf
* 实现:
* 1、列表组件需继承BasicTableComponent并且提供SearchDrawerService派生类
* 2、实例化schema及给schema赋值sf配置
* 3、重写search()方法。当筛选抽屉触发查询时会调用这个方法
* 提供:
* 1、抽屉的sf实例
* 2、sf.value的数据=>sfValue
*/
@Component({ @Component({
template: '' template: ''
}) })

View File

@ -77,8 +77,10 @@ export class DatatableDataindexComponent implements OnInit {
// 订单类型比例 // 订单类型比例
this.service.request(this.service.$api_getBillTypeProportion).subscribe(res => { this.service.request(this.service.$api_getBillTypeProportion).subscribe(res => {
if (res) { if (res) {
this.billTypeDatas = this.formatCoordinateData(res); const billTypeDatas2 = this.formatCoordinateData(res);
this.initBillChart(this.g2custom['el'].nativeElement as any); console.log(billTypeDatas2);
this.initBillChart(this.g2custom['el'].nativeElement as any,billTypeDatas2);
} }
}); });
// 大区业绩完成情况 // 大区业绩完成情况
@ -98,6 +100,8 @@ export class DatatableDataindexComponent implements OnInit {
this.service.request(this.service.$api_getWayBillDirectProportion).subscribe(res => { this.service.request(this.service.$api_getWayBillDirectProportion).subscribe(res => {
if (res) { if (res) {
const billTypeDatas = this.formatCoordinateData(res.map((item: any) => ({ ...item, billType: item.wayBillType }))); const billTypeDatas = this.formatCoordinateData(res.map((item: any) => ({ ...item, billType: item.wayBillType })));
console.log(billTypeDatas);
this.initBillChart(this.BillDirectProportion['el'].nativeElement as any, billTypeDatas); this.initBillChart(this.BillDirectProportion['el'].nativeElement as any, billTypeDatas);
} }
}); });
@ -141,7 +145,7 @@ export class DatatableDataindexComponent implements OnInit {
chart.scale('percent', { chart.scale('percent', {
formatter: val => { formatter: val => {
val = val * 100 + '%'; val = (val * 100 ).toFixed(0)+ '%';
return val; return val;
} }
}); });
@ -198,7 +202,7 @@ export class DatatableDataindexComponent implements OnInit {
.label('percent', percent => { .label('percent', percent => {
return { return {
content: data => { content: data => {
return ` ${percent * 100}%`; return (percent * 100).toFixed(0)+`%`;
}, },
style: { fontSize: 14 } style: { fontSize: 14 }
}; };
@ -498,6 +502,8 @@ export class DatatableDataindexComponent implements OnInit {
percent: Number((item.quantity / total).toFixed(2)) percent: Number((item.quantity / total).toFixed(2))
}); });
}); });
console.log(rs);
return rs; return rs;
} }

View File

@ -1,9 +1,8 @@
import { Component, OnInit, ViewChild } from '@angular/core'; import { Component, OnInit, ViewChild } from '@angular/core';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st'; import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form'; import { SFSchema, SFDateWidgetSchema } from '@delon/form';
import { SearchDrawerService } from '@shared'; import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom'; import { BasicTableComponent } from 'src/app/routes/commom';
import { FreightAccountService } from '../../services/freight-account.service'; import { FreightAccountService } from '../../services/freight-account.service';
@ -12,7 +11,7 @@ import { FreightAccountService } from '../../services/freight-account.service';
templateUrl: './voucher-management.component.html', templateUrl: './voucher-management.component.html',
styleUrls: ['../../../commom/less/commom-table.less'] styleUrls: ['../../../commom/less/commom-table.less']
}) })
export class VoucherManagementComponent extends BasicTableComponent implements OnInit { export class VoucherManagementComponent extends BasicTableComponent {
@ViewChild('st', { static: true }) @ViewChild('st', { static: true })
st!: STComponent; st!: STComponent;
@ViewChild('auditModal', { static: false }) @ViewChild('auditModal', { static: false })
@ -25,8 +24,6 @@ export class VoucherManagementComponent extends BasicTableComponent implements O
super(searchDrawerService); super(searchDrawerService);
} }
ngOnInit(): void {}
search() { search() {
this.st?.load(1); this.st?.load(1);
} }

View File

@ -236,7 +236,9 @@ export class WithdrawalsDetailComponent implements OnInit {
width: 140 width: 140
}, },
{ title: '运费明细', render: 'amountDetails', className: 'text-right', width: 150 }, { title: '运费明细', render: 'amountDetails', className: 'text-right', width: 150 },
{ title: '网络货运人', index: 'ltdName', className: 'text-left', width: 200 },
{ title: '货主', index: 'enterpriseInfoName', className: 'text-left', width: 200 }, { title: '货主', index: 'enterpriseInfoName', className: 'text-left', width: 200 },
{ title: '项目名称', index: 'enterpriseProjectName', className: 'text-left', width: 200 },
{ title: '订单号', render: 'billId', width: 200 }, { title: '订单号', render: 'billId', width: 200 },
{ title: '运单号', render: 'wayBillId', width: 200 }, { title: '运单号', render: 'wayBillId', width: 200 },
{ title: '货源编号', index: 'resourceCode', width: 200 }, { title: '货源编号', index: 'resourceCode', width: 200 },

View File

@ -66,8 +66,10 @@
<a *ngIf="totalCallNo > 0" (click)="st.clearCheck();totalCallNo=0" class="ml-lg">清空</a> <a *ngIf="totalCallNo > 0" (click)="st.clearCheck();totalCallNo=0" class="ml-lg">清空</a>
</div> </div>
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button> <button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
<button nz-button nzDanger (click)="exprot()"> 导出</button> <button nz-button nzDanger (click)="exprot()" acl [acl-ability]="['FINANCIAL-WITHDRAWALS-export']">
<button nz-button (click)="this.auditAction(null)">审核</button> 导出</button>
<button nz-button (click)="this.auditAction(null)" acl
[acl-ability]="['FINANCIAL-WITHDRAWALS-audit']">审核</button>
</div> </div>
</ng-template> </ng-template>

View File

@ -1,7 +1,7 @@
import { Component, ViewChild } from '@angular/core'; import { Component, ViewChild } from '@angular/core';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st'; import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form'; import { SFSchema, SFDateWidgetSchema } from '@delon/form';
import { SearchDrawerService } from '@shared'; import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom'; import { BasicTableComponent } from 'src/app/routes/commom';
@ -48,7 +48,7 @@ export class WithdrawalsRecordComponent extends BasicTableComponent {
createTime: { createTime: {
start: this.sf?.value.createTime?.[0] || '', start: this.sf?.value.createTime?.[0] || '',
end: this.sf?.value.createTime?.[1] || '' end: this.sf?.value.createTime?.[1] || ''
}, }
}); });
} }
delete requestOptions?.body?.expand; delete requestOptions?.body?.expand;
@ -193,7 +193,7 @@ export class WithdrawalsRecordComponent extends BasicTableComponent {
], ],
ui: { ui: {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择'
} }
}, },
ltdId: { ltdId: {

View File

@ -9,25 +9,9 @@
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
<!-- 搜索表单 --> <!-- 搜索表单 -->
<page-header-wrapper [title]="''"> </page-header-wrapper> <!-- <page-header-wrapper [title]="''"> </page-header-wrapper>
<nz-card> <nz-card>
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<!-- 查询字段小于或等于3个时不显示伸缩按钮 -->
<div nz-col nzSpan="24" *ngIf="queryFieldCount <= 4">
<sf
#sf
[schema]="schema"
[ui]="ui"
[mode]="'search'"
[disabled]="!sf?.valid"
[loading]="false"
(formSubmit)="st?.load(1)"
(formReset)="resetSF()"
></sf>
</div>
<!-- 查询字段大于3个时根据展开状态调整布局 -->
<ng-container *ngIf="queryFieldCount > 4">
<div nz-col [nzSpan]="_$expand ? 24 : 18"> <div nz-col [nzSpan]="_$expand ? 24 : 18">
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div> </div>
@ -40,11 +24,12 @@
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i> <i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
</button> </button>
</div> </div>
</ng-container>
</div> </div>
</nz-card> </nz-card> -->
<nz-card> <nz-card class="table-box">
<div class="tab_header">
<label class="page_title"> <label class="driver">|</label> 保险列表</label>
<nz-tabset (nzSelectedIndexChange)="selectChange($event)" [nzTabBarExtraContent]="extraTemplate"> <nz-tabset (nzSelectedIndexChange)="selectChange($event)" [nzTabBarExtraContent]="extraTemplate">
<nz-tab [nzTitle]="'全部(' + tabs?.totalCount + ')'"></nz-tab> <nz-tab [nzTitle]="'全部(' + tabs?.totalCount + ')'"></nz-tab>
<nz-tab [nzTitle]="'待投保(' + tabs?.receivedQuantity + ')'"></nz-tab> <nz-tab [nzTitle]="'待投保(' + tabs?.receivedQuantity + ')'"></nz-tab>
@ -52,18 +37,10 @@
<nz-tab [nzTitle]="'投保失败(' + tabs?.GoingQuantity + ')'"></nz-tab> <nz-tab [nzTitle]="'投保失败(' + tabs?.GoingQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'已取消(' + tabs?.cancelQuantity + ')'"></nz-tab> <nz-tab [nzTitle]="'已取消(' + tabs?.cancelQuantity + ')'"></nz-tab>
</nz-tabset> </nz-tabset>
<div style="margin-top: 15px"> </div>
<st
#st <st #st [bordered]="true" [scroll]="{ x: '2000px',y:scrollY }" [data]="service.$api_premiumInfo_list"
[bordered]="true" [columns]="columns" [req]="{ params: reqParams }" [page]="{ }" [loading]="false">
[scroll]="{ x: '2000px' }"
[data]="service.$api_premiumInfo_list"
[columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loading]="false"
>
<ng-template st-row="resourceCode" let-item let-index="index"> <ng-template st-row="resourceCode" let-item let-index="index">
{{ item.resourceCode | currency }} {{ item.resourceCode | currency }}
</ng-template> </ng-template>
@ -123,11 +100,14 @@
</div> </div>
</ng-template> </ng-template>
</st> </st>
</div>
</nz-card> </nz-card>
<ng-template #extraTemplate> <ng-template #extraTemplate>
<div> <div class="mr-sm">
<button nz-button nzType="primary" (click)="changeOrder()" acl [acl-ability]="['INSURANCE-LIST-insuranceConfig']"> 保险配置 </button> <button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
[acl-ability]="['INSURANCE-LIST-search']">筛选</button>
<button nz-button nzDanger acl [acl-ability]="['INSURANCE-LIST-export']" (click)="exprot()"> 导出</button>
<button nz-button nzType="primary" (click)="changeOrder()" acl [acl-ability]="['INSURANCE-LIST-insuranceConfig']">
保险配置 </button>
</div> </div>
</ng-template> </ng-template>

View File

@ -1,13 +0,0 @@
:host {
p{
margin-bottom: 0
}
.left_btn {
width: 50px;
height: 32px;
padding-left: 8px;
line-height:32px;
background-color: #d7d7d7;
}
}

View File

@ -1,35 +0,0 @@
/*
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2021-12-06 20:03:28
* @LastEditors : Shiming
* @LastEditTime : 2022-01-25 17:22:11
* @FilePath : \\tms-obc-web\\src\\app\\routes\\insurance-management\\components\\list\\list.component.spec.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
import { insuranceManagementListComponent } from './list.component';
describe('insuranceManagementListComponent', () => {
let component: insuranceManagementListComponent;
let fixture: ComponentFixture<insuranceManagementListComponent>;
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [ insuranceManagementListComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(insuranceManagementListComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -5,31 +5,26 @@ import { ModalHelper, _HttpClient } from '@delon/theme';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { map } from 'rxjs/operators'; import { map } from 'rxjs/operators';
import { of } from 'rxjs'; import { of } from 'rxjs';
import { ShipperBaseService } from '@shared'; import { SearchDrawerService, ShipperBaseService } from '@shared';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { InsuranceManagementService } from '../../services/insurance-management.service'; import { InsuranceManagementService } from '../../services/insurance-management.service';
import { VehicleImgViewComponent } from 'src/app/routes/vehicle/components/list/img-view/img-view.component'; import { BasicTableComponent } from 'src/app/routes/commom';
import { ImageViewComponent } from 'src/app/shared/components/imagelist';
@Component({ @Component({
selector: 'app-insurance-management-list', selector: 'app-insurance-management-list',
templateUrl: './list.component.html', templateUrl: './list.component.html',
styleUrls: ['./list.component.less'] styleUrls: ['../../../commom/less/commom-table.less']
}) })
export class insuranceManagementListComponent implements OnInit { export class insuranceManagementListComponent extends BasicTableComponent implements OnInit {
ui: SFUISchema = {};
uiView: SFUISchema = {}; uiView: SFUISchema = {};
schema: SFSchema = {};
schemaView: SFSchema = {}; schemaView: SFSchema = {};
auditMany = false; auditMany = false;
isVisibleView = false; isVisibleView = false;
isVisibleEvaluate = false; isVisibleEvaluate = false;
isVisible = false; isVisible = false;
_$expand = false;
@ViewChild('st') private readonly st!: STComponent; @ViewChild('st') private readonly st!: STComponent;
@ViewChild('stFloat') private readonly stFloat!: STComponent; @ViewChild('stFloat') private readonly stFloat!: STComponent;
@ViewChild('stFloatView') private readonly stFloatView!: STComponent; @ViewChild('stFloatView') private readonly stFloatView!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
@ViewChild('sfFre', { static: false }) sfFre!: SFComponent; @ViewChild('sfFre', { static: false }) sfFre!: SFComponent;
@ViewChild('sfView', { static: false }) sfView!: SFComponent; @ViewChild('sfView', { static: false }) sfView!: SFComponent;
columns: STColumn[] = []; columns: STColumn[] = [];
@ -63,8 +58,10 @@ export class insuranceManagementListComponent implements OnInit {
private modal: NzModalService, private modal: NzModalService,
public shipperservice: ShipperBaseService, public shipperservice: ShipperBaseService,
private router: Router, private router: Router,
private modale: ModalHelper, public searchDrawerService: SearchDrawerService
) { } ) {
super(searchDrawerService);
}
/** /**
* 查询参数 * 查询参数
@ -90,7 +87,7 @@ export class insuranceManagementListComponent implements OnInit {
insureTime: { insureTime: {
start: this.sf?.value?.insureTime?.[0] || '', start: this.sf?.value?.insureTime?.[0] || '',
end: this.sf?.value?.insureTime?.[1] || '' end: this.sf?.value?.insureTime?.[1] || ''
}, }
}; };
} }
get selectedRows() { get selectedRows() {
@ -164,11 +161,7 @@ export class insuranceManagementListComponent implements OnInit {
policyNo: { policyNo: {
type: 'string', type: 'string',
title: '保单号', title: '保单号',
ui: { ui: {}
visibleIf: {
_$expand: (value: boolean) => value
},
}
}, },
insureType: { insureType: {
title: '类型', title: '类型',
@ -176,29 +169,18 @@ export class insuranceManagementListComponent implements OnInit {
ui: { ui: {
widget: 'dict-select', widget: 'dict-select',
params: { dictKey: 'insure:type' }, params: { dictKey: 'insure:type' },
containsAllLabel: true, containsAllLabel: true
visibleIf: {
_$expand: (value: boolean) => value
}
} as SFSelectWidgetSchema } as SFSelectWidgetSchema
}, },
startAddress: { startAddress: {
type: 'string', type: 'string',
title: '始发地', title: '始发地',
ui: { ui: {}
visibleIf: {
_$expand: (value: boolean) => value
}
}
}, },
endAddress: { endAddress: {
type: 'string', type: 'string',
title: '目的地', title: '目的地',
ui: { ui: {}
visibleIf: {
_$expand: (value: boolean) => value
}
}
}, },
shipperAppUserId: { shipperAppUserId: {
type: 'string', type: 'string',
@ -209,11 +191,8 @@ export class insuranceManagementListComponent implements OnInit {
searchDebounceTime: 300, searchDebounceTime: 300,
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
allowClear: true, allowClear: true,
visibleIf: {
_$expand: (value: boolean) => value
},
onSearch: (q: any) => { onSearch: (q: any) => {
let str =q.replace(/^\s+|\s+$/g,""); let str = q.replace(/^\s+|\s+$/g, '');
if (str) { if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: str }) .request(this.service.$api_enterpriceList, { enterpriseName: str })
@ -233,30 +212,19 @@ export class insuranceManagementListComponent implements OnInit {
title: '所属项目', title: '所属项目',
ui: { ui: {
widget: 'select', widget: 'select',
placeholder: '请先选择货主', placeholder: '请先选择货主'
visibleIf: {
_$expand: (value: boolean) => value
},
} as SFSelectWidgetSchema } as SFSelectWidgetSchema
}, },
driverName: { driverName: {
title: '承运司机', title: '承运司机',
type: 'string', type: 'string',
ui: { ui: {}
visibleIf: {
_$expand: (value: boolean) => value
}
}
}, },
carNo: { carNo: {
title: '车牌号', title: '车牌号',
type: 'string', type: 'string',
ui: { ui: {}
visibleIf: {
_$expand: (value: boolean) => value
}
}
}, },
insureStatus: { insureStatus: {
title: '投保状态', title: '投保状态',
@ -264,10 +232,7 @@ export class insuranceManagementListComponent implements OnInit {
ui: { ui: {
widget: 'dict-select', widget: 'dict-select',
params: { dictKey: 'insure:status' }, params: { dictKey: 'insure:status' },
containsAllLabel: true, containsAllLabel: true
visibleIf: {
_$expand: (value: boolean) => value
}
} as SFSelectWidgetSchema } as SFSelectWidgetSchema
}, },
insureRefundStatus: { insureRefundStatus: {
@ -276,10 +241,7 @@ export class insuranceManagementListComponent implements OnInit {
ui: { ui: {
widget: 'dict-select', widget: 'dict-select',
params: { dictKey: 'insure:refund:status' }, params: { dictKey: 'insure:refund:status' },
containsAllLable: true, containsAllLable: true
visibleIf: {
_$expand: (value: boolean) => value
}
} as SFSelectWidgetSchema } as SFSelectWidgetSchema
}, },
enterpriseInfoId: { enterpriseInfoId: {
@ -289,9 +251,6 @@ export class insuranceManagementListComponent implements OnInit {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
allowClear: true, allowClear: true,
visibleIf: {
_$expand: (value: boolean) => value
},
asyncData: () => this.shipperservice.getNetworkFreightForwarder() asyncData: () => this.shipperservice.getNetworkFreightForwarder()
} }
}, },
@ -302,10 +261,7 @@ export class insuranceManagementListComponent implements OnInit {
widget: 'date', widget: 'date',
mode: 'range', mode: 'range',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd',
allowClear: true, allowClear: true
visibleIf: {
_$expand: (value: boolean) => value
}
} as SFDateWidgetSchema } as SFDateWidgetSchema
}, },
createTime: { createTime: {
@ -315,10 +271,7 @@ export class insuranceManagementListComponent implements OnInit {
widget: 'date', widget: 'date',
mode: 'range', mode: 'range',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd',
allowClear: true, allowClear: true
visibleIf: {
_$expand: (value: boolean) => value
}
} as SFDateWidgetSchema } as SFDateWidgetSchema
}, },
recordTime: { recordTime: {
@ -328,17 +281,12 @@ export class insuranceManagementListComponent implements OnInit {
widget: 'date', widget: 'date',
mode: 'range', mode: 'range',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd',
allowClear: true, allowClear: true
visibleIf: {
_$expand: (value: boolean) => value
}
} as SFDateWidgetSchema } as SFDateWidgetSchema
}, }
}, },
type: 'object' type: 'object'
}; };
this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } };
} }
// 获取城市列表 // 获取城市列表
getRegionCode(regionCode: any) { getRegionCode(regionCode: any) {
@ -462,14 +410,14 @@ export class insuranceManagementListComponent implements OnInit {
title: '失败原因', title: '失败原因',
width: '180px', width: '180px',
className: 'text-left', className: 'text-left',
render: 'processMessage', render: 'processMessage'
// processResult=2 // processResult=2
}, },
{ {
title: '退款状态', title: '退款状态',
width: '180px', width: '180px',
className: 'text-left', className: 'text-left',
index: 'insureRefundStatusLabel', index: 'insureRefundStatusLabel'
// processResult=2 // processResult=2
}, },
{ {
@ -504,34 +452,13 @@ export class insuranceManagementListComponent implements OnInit {
window.open(`${_record.newPolicyUrl}`); window.open(`${_record.newPolicyUrl}`);
// this.service.downloadFile(`${_record.newPolicyUrl}`) // this.service.downloadFile(`${_record.newPolicyUrl}`)
// const params = { // const params = {
// imgList: [_record.policyUrl], // imgList: [_record.policyUrl],
// index: 0 // index: 0
// }; // };
// this.modal.create({ nzContent: ImageViewComponent, nzComponentParams: { params } }); // this.modal.create({ nzContent: ImageViewComponent, nzComponentParams: { params } });
} }
/**
* 查询字段个数
*/
get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length;
}
/**
* 伸缩查询条件
*/
expandToggle(): void {
this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand);
}
tabChange(item: any) {} tabChange(item: any) {}
/**
* 重置表单
*/
resetSF(): void {
this.sf.reset();
this._$expand = false;
}
// 退保费 // 退保费
retreatPrice(value: any) { retreatPrice(value: any) {

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-24 16:58:02 * @Date : 2021-12-24 16:58:02
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-04-21 15:33:31 * @LastEditTime : 2022-05-06 14:37:36
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail-change\\bulk-detail-change.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail-change\\bulk-detail-change.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -288,8 +288,14 @@
<div nz-col [nzSpan]="24"> <div nz-col [nzSpan]="24">
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList"> <amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList">
</amap-path-simplifier> </amap-path-simplifier>
<st [scroll]="{ y: '350px' }" #st [data]="addressItems" [noResult]='"暂无停车信息"' [columns]="logColumns2" [ps]="0" <st [scroll]="{ y: '350px' }" #st [data]="addressItems" [noResult]='fuck' [columns]="logColumns2" [ps]="0"
[page]="{ show: false, showSize: false }" size="small" class="map_st"> [page]="{ show: false, showSize: false }" size="small" class="map_st">
<ng-template #fuck>
<div>
<img class="mr-sm" [src]="'../../../../../assets/none.svg'" width="40" height="40" />
</div>
暂无停车信息
</ng-template>
</st> </st>
<nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)" class="map_radio"> <nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)" class="map_radio">
<label nz-radio-button nzValue="car">车辆轨迹</label> <label nz-radio-button nzValue="car">车辆轨迹</label>

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-06 20:20:26 * @Date : 2021-12-06 20:20:26
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-05-06 10:02:52 * @LastEditTime : 2022-05-06 14:36:18
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail\\bulk-detail.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail\\bulk-detail.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -287,8 +287,14 @@
<div nz-col [nzSpan]="24"> <div nz-col [nzSpan]="24">
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList" [pois]="pois"> <amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList" [pois]="pois">
</amap-path-simplifier> </amap-path-simplifier>
<st [scroll]="{ y: '350px' }" [noResult]='"暂无停车信息"' #st [data]="addressItems" [columns]="logColumns2" [ps]="0" <st [scroll]="{ y: '350px' }" [noResult]='fuck' #st [data]="addressItems" [columns]="logColumns2" [ps]="0"
[page]="{ show: false, showSize: false }" size="small" class="map_st"> [page]="{ show: false, showSize: false }" size="small" class="map_st">
<ng-template #fuck>
<div>
<img class="mr-sm" [src]="'../../../../../assets/none.svg'" width="40" height="40" />
</div>
暂无停车信息
</ng-template>
</st> </st>
<nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)" class="map_radio"> <nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)" class="map_radio">
<label nz-radio-button nzValue="car">车辆轨迹</label> <label nz-radio-button nzValue="car">车辆轨迹</label>

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-23 13:39:58 * @Date : 2021-12-23 13:39:58
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-04-21 15:33:42 * @LastEditTime : 2022-05-06 14:38:38
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail-change\\vehicle-detail-change.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail-change\\vehicle-detail-change.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -322,8 +322,14 @@
<div nz-col [nzSpan]="24"> <div nz-col [nzSpan]="24">
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList"> <amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList">
</amap-path-simplifier> </amap-path-simplifier>
<st [scroll]="{ y: '350px' }" #st [data]="addressItems" [noResult]='"暂无停车信息"' [columns]="logColumns2" [ps]="0" <st [scroll]="{ y: '350px' }" #st [data]="addressItems" [noResult]='fuck' [columns]="logColumns2" [ps]="0"
[page]="{ show: false, showSize: false }" size="small" class="map_st"> [page]="{ show: false, showSize: false }" size="small" class="map_st">
<ng-template #fuck>
<div>
<img class="mr-sm" [src]="'../../../../../assets/none.svg'" width="40" height="40" />
</div>
暂无停车信息
</ng-template>
</st> </st>
<nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)" class="map_radio"> <nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)" class="map_radio">
<label nz-radio-button nzValue="car">车辆轨迹</label> <label nz-radio-button nzValue="car">车辆轨迹</label>

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-28 14:42:03 * @Date : 2021-12-28 14:42:03
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-04-22 16:27:43 * @LastEditTime : 2022-05-06 14:37:17
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail\\vehicle-detail.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail\\vehicle-detail.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -290,8 +290,14 @@
<div nz-col [nzSpan]="24"> <div nz-col [nzSpan]="24">
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList" [pois]="pois"> <amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList" [pois]="pois">
</amap-path-simplifier> </amap-path-simplifier>
<st [scroll]="{ y: '350px' }" #st [data]="addressItems" [columns]="logColumns2" [noResult]='"暂无停车信息"' [ps]="0" <st [scroll]="{ y: '350px' }" #st [data]="addressItems" [columns]="logColumns2" [noResult]='fuck' [ps]="0"
[page]="{ show: false, showSize: false }" size="small" class="map_st"> [page]="{ show: false, showSize: false }" size="small" class="map_st">
<ng-template #fuck>
<div>
<img class="mr-sm" [src]="'../../../../../assets/none.svg'" width="40" height="40" />
</div>
暂无停车信息
</ng-template>
</st> </st>
<nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)" class="map_radio"> <nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)" class="map_radio">
<label nz-radio-button nzValue="car">车辆轨迹</label> <label nz-radio-button nzValue="car">车辆轨迹</label>

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-02-22 13:53:29 * @Date : 2022-02-22 13:53:29
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-04-22 16:27:40 * @LastEditTime : 2022-05-06 14:38:09
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\view-track\\view-track.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\view-track\\view-track.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -12,8 +12,14 @@
<div nz-col [nzSpan]="24"> <div nz-col [nzSpan]="24">
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList" [pois]="pois"> <amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList" [pois]="pois">
</amap-path-simplifier> </amap-path-simplifier>
<st [scroll]="{ y: '350px' }" #st [data]="addressItems" [noResult]='"暂无停车信息"' [columns]="logColumns2" [ps]="0" <st [scroll]="{ y: '350px' }" #st [data]="addressItems" [noResult]='fuck' [columns]="logColumns2" [ps]="0"
[page]="{ show: false, showSize: false }" size="small" class="map_st"> [page]="{ show: false, showSize: false }" size="small" class="map_st">
<ng-template #fuck>
<div>
<img class="mr-sm" [src]="'../../../../../assets/none.svg'" width="40" height="40" />
</div>
暂无停车信息
</ng-template>
</st> </st>
<nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)" class="map_radio"> <nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)" class="map_radio">
<label nz-radio-button nzValue="car">车辆轨迹</label> <label nz-radio-button nzValue="car">车辆轨迹</label>

View File

@ -1,3 +1,13 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-29 17:28:23
* @LastEditors : Shiming
* @LastEditTime : 2022-05-06 14:47:43
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\account-management\\components\\list\\list.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="''"></page-header-wrapper> <page-header-wrapper [title]="''"></page-header-wrapper>
<nz-card> <nz-card>
<!-- <div nz-row> <!-- <div nz-row>
@ -19,15 +29,17 @@
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loading]="service.http.loading" multiSort> [loading]="service.http.loading" multiSort>
<ng-template st-row="allBalance" let-item> <ng-template st-row="allBalance" let-item>
<div class="text-right">{{item.allBalance | currency:' '}}</div> <div class="text-right">{{item.allBalance | currency}}</div>
</ng-template> </ng-template>
<ng-template st-row="unEntryAmount" let-item> <ng-template st-row="unEntryAmount" let-item>
<a class="text-right text-blue-dark" <a class="text-right text-blue-dark" acl [acl-ability]="['AM-LIST-unEntryAmount']"
[routerLink]="'/partner/account-management/am/recorded/detail/'+item?.roleId">{{item.unEntryAmount | currency:' [routerLink]="'/partner/account-management/am/recorded/detail/'+item?.roleId">{{item.unEntryAmount | currency}} </a>
'}} acl [acl-ability]="['AM-LIST-unEntryAmount']"</a>
</ng-template> </ng-template>
<ng-template st-row="availableBalance" let-item> <ng-template st-row="availableBalance" let-item>
<div class="text-right">{{item.availableBalance | currency:' '}}</div> <div class="text-right">{{item.availableBalance | currency}}</div>
</ng-template>
<ng-template st-row="allBalance" let-item>
<div class="text-right">{{item.allBalance | currency}}</div>
</ng-template> </ng-template>

View File

@ -62,13 +62,14 @@ export class PartnerAccountManagementListComponent implements OnInit {
{ title: '合伙人名称', index: 'name', className: 'text-center', width: 250 }, { title: '合伙人名称', index: 'name', className: 'text-center', width: 250 },
{ title: '手机号', index: 'phone', className: 'text-center', width: 200 }, { title: '手机号', index: 'phone', className: 'text-center', width: 200 },
{ {
title: '账户总额(元)', index: 'allBalance', className: 'text-right', sort: true, width: 150, type: 'currency', title: '账户总额(元)', render: 'allBalance', className: 'text-right', width: 150,
},
// sort: true,
{
title: '待入账余额(元)', render: 'unEntryAmount', className: 'text-right', width: 200,
}, },
{ {
title: '待入账余额(元)', render: 'unEntryAmount', className: 'text-right', width: 150, title: '可用余额(元)', index: 'availableBalance', className: 'text-right', width: 150, type: 'currency'
},
{
title: '可用余额(元)', index: 'availableBalance', className: 'text-right', sort: true, width: 150, type: 'currency'
}, },
{ title: '虚拟账户', index: 'virtualAccount', className: 'text-center', width: 220 }, { title: '虚拟账户', index: 'virtualAccount', className: 'text-center', width: 220 },
{ {

View File

@ -1,3 +1,13 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-29 17:28:23
* @LastEditors : Shiming
* @LastEditTime : 2022-05-06 14:20:04
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\partner-list\\components\\index\\partner-list.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="'合伙人列表'"> </page-header-wrapper> <page-header-wrapper [title]="'合伙人列表'"> </page-header-wrapper>
<nz-card class="search-box" nzBordered> <nz-card class="search-box" nzBordered>
@ -48,7 +58,7 @@
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col nzSpan="24" se-container [labelWidth]="140" [col]="1"> <div nz-col nzSpan="24" se-container [labelWidth]="140" [col]="1">
<se label="合伙人名称"> {{selectItem?.enterpriseName || selectItem?.contactName}} </se> <se label="合伙人名称"> {{selectItem?.enterpriseName || selectItem?.contactName}} </se>
<se label="当前渠道销售"> {{selectItem?.channelId}} </se> <se label="当前渠道销售"> {{selectItem?.channelIdLabel}} </se>
<se label="渠道销售修改为" required> <se label="渠道销售修改为" required>
<nz-select [(ngModel)]="cannelItem.channelId" style="width: 100%"> <nz-select [(ngModel)]="cannelItem.channelId" style="width: 100%">
<nz-option [nzValue]="item.value" [nzLabel]="item.label" *ngFor="let item of cannels"></nz-option> <nz-option [nzValue]="item.value" [nzLabel]="item.label" *ngFor="let item of cannels"></nz-option>

View File

@ -1,3 +1,4 @@
import { async } from '@angular/core/testing';
import { Component, ViewChild } from '@angular/core'; import { Component, ViewChild } from '@angular/core';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st'; import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st';
@ -55,6 +56,8 @@ export class PartnerListComponent {
loadSelectOptions() { loadSelectOptions() {
this.service.getRebateConfig().subscribe(res => { this.service.getRebateConfig().subscribe(res => {
if (res) { if (res) {
console.log(res);
this.customers = res; this.customers = res;
} }
}); });
@ -283,8 +286,10 @@ export class PartnerListComponent {
title: '认证审核状态', title: '认证审核状态',
enum: [ enum: [
{ value: '', label: '全部' }, { value: '', label: '全部' },
{ value: 1, label: '企业' }, { value: '-1', label: '未提交' },
{ value: 2, label: '个人' } { value: 10, label: '待审核' },
{ value: 20, label: '审核通过' },
{ value: 30, label: '认证驳回' }
], ],
ui: { ui: {
widget: 'select', widget: 'select',
@ -297,10 +302,16 @@ export class PartnerListComponent {
signStatus: { signStatus: {
type: 'string', type: 'string',
title: '签约状态', title: '签约状态',
enum: [
{ value: '', label: '全部' },
{ value: '0', label: '未签约' },
{ value: 10, label: '待合伙人签约' },
{ value: 15, label: '签约中' },
{ value: 20, label: '已签约' },
{ value: 30, label: '签约失败' }
],
ui: { ui: {
widget: 'dict-select', widget: 'select',
containsAllLabel: true,
params: { dictKey: 'pay:mode' },
placeholder: '请选择', placeholder: '请选择',
visibleIf: { visibleIf: {
expand: (value: boolean) => value expand: (value: boolean) => value
@ -310,10 +321,14 @@ export class PartnerListComponent {
crmStatus: { crmStatus: {
type: 'string', type: 'string',
title: 'CRM状态', title: 'CRM状态',
enum: [
{ value: '', label: '全部' },
{ value: '0', label: '未同步' },
{ value: 10, label: '同步失败' },
{ value: 20, label: '同步成功' },
],
ui: { ui: {
widget: 'dict-select', widget: 'select',
containsAllLabel: true,
params: { dictKey: 'pay:mode' },
placeholder: '请选择', placeholder: '请选择',
visibleIf: { visibleIf: {
expand: (value: boolean) => value expand: (value: boolean) => value
@ -343,6 +358,7 @@ export class PartnerListComponent {
ui: { ui: {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
// async:
visibleIf: { visibleIf: {
expand: (value: boolean) => value expand: (value: boolean) => value
} }
@ -415,11 +431,11 @@ export class PartnerListComponent {
width: 150, width: 150,
type: 'badge', type: 'badge',
badge: { badge: {
0: { text: '未发起', color: 'default' }, 0: { text: '未签约', color: 'default' },
10: { text: '待合伙人签约', color: 'default' }, 10: { text: '待合伙人签约', color: 'default' },
15: { text: '签约中', color: 'processing' }, 15: { text: '签约中', color: 'processing' },
20: { text: '平台签约完成', color: 'success' }, 20: { text: '已签约', color: 'success' },
30: { text: '驳回', color: 'error' } 30: { text: '签约失败', color: 'error' }
} }
}, },
{ {
@ -428,9 +444,9 @@ export class PartnerListComponent {
width: 150, width: 150,
type: 'badge', type: 'badge',
badge: { badge: {
0: { text: '未发起', color: 'default' }, 0: { text: '未同步', color: 'default' },
10: { text: '审核失败', color: 'error' }, 10: { text: '同步失败', color: 'error' },
20: { text: '审核通过', color: 'success' } 20: { text: '同步成功', color: 'success' }
} }
}, },
{ {

View File

@ -1,5 +1,5 @@
<div> <div>
<sf #sf [ui]="{ '*': { spanLabelFixed: 120, grid: { span: 24 }}}" [schema]="schema" [button]="'none'"></sf> <sf #sf [ui]="{ '*': { spanLabelFixed: 120, grid: { span: 24 }}}" [schema]="schema" [formData]="formData" [button]="'none'"></sf>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button nz-button type="button" (click)="close()">取消</button> <button nz-button type="button" (click)="close()">取消</button>

View File

@ -15,11 +15,30 @@ export class PartnerAuditModalComponent implements OnInit {
@Input() @Input()
info: any; info: any;
schema!: SFSchema; schema!: SFSchema;
formData: any;
sourcePage = ''; sourcePage = '';
constructor(private nzModalService: NzModalService, public service: PartnerListService, private modal: NzModalRef) {} constructor(private nzModalService: NzModalService, public service: PartnerListService, private modal: NzModalRef) {}
ngOnInit(): void { ngOnInit(): void {
console.log(this.info);
this.initSF(this.info); this.initSF(this.info);
if(this.info.channelId) {
const value = [{
label: this.info.channelIdLabel,
value: this.info.channelId,
}]
setTimeout(() => {
if(this.sf) {
console.log('888');
// this.sf.getProperty('/channelId')!.schema.enum = value;
// this.sf.getProperty('/channelId')!.widget.reset(value);
this.sf.setValue('/channelId', this.info.channelId);
}
})
}
} }
initSF(user: any) { initSF(user: any) {
@ -30,13 +49,13 @@ export class PartnerAuditModalComponent implements OnInit {
ui: { ui: {
hidden: true hidden: true
}, },
default: this.info.isPass // default: this.info.isPass
}, },
staffName: { staffName: {
title: '合伙人名称', title: '合伙人名称',
type: 'string', type: 'string',
ui: { widget: 'text' }, ui: { widget: 'text' },
default: user.enterpriseName // default: user.enterpriseName
}, },
status: { status: {
title: '审核结果', title: '审核结果',
@ -68,7 +87,7 @@ export class PartnerAuditModalComponent implements OnInit {
required: ' ' required: ' '
} }
}, },
default: '' default: user.channelId
}, },
approvalOpinion: { approvalOpinion: {
title: '备注', title: '备注',
@ -90,6 +109,8 @@ export class PartnerAuditModalComponent implements OnInit {
}, },
required: ['channelId', 'approvalOpinion'] required: ['channelId', 'approvalOpinion']
}; };
console.log('666');
} }
sure() { sure() {

View File

@ -1,17 +1,5 @@
<!-- <!-- <page-header-wrapper [title]="''"></page-header-wrapper>
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-03-30 14:00:43
* @LastEditors : Shiming
* @LastEditTime : 2022-03-31 10:31:40
* @FilePath : \\tms-obc-web\\src\\app\\routes\\tax-management\\components\\individual-collect\\individual-collect.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="''"></page-header-wrapper>
<nz-card class="search-box"> <nz-card class="search-box">
<!-- 搜索表单 -->
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col [nzSpan]="_$expand ? 24 : 18"> <div nz-col [nzSpan]="_$expand ? 24 : 18">
<sf #sf [schema]="schema" [ui]="{ '*': { spanLabelFixed: 100,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}" <sf #sf [schema]="schema" [ui]="{ '*': { spanLabelFixed: 100,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}"
@ -28,13 +16,18 @@
</button> </button>
</div> </div>
</div> </div>
</nz-card> </nz-card> -->
<nz-card class="content-box">
<nz-tabset [nzTabBarExtraContent]="extraTemplate" *ngIf="tabs.length > 0"> <nz-card class="table-box">
<div class="tab_header">
<label class="page_title"> <label class="driver">|</label> 个税汇总</label>
<nz-tabset [nzTabBarExtraContent]="extraTemplate">
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)"> </nz-tab> <nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)"> </nz-tab>
</nz-tabset> </nz-tabset>
</div>
<!-- 数据列表 --> <!-- 数据列表 -->
<st #st [scroll]="{ x: '1200px',y:'450px' }" [data]="service.$api_get_individual_collect_page" [columns]="columns" <st #st [scroll]="{ x: '1200px',y:scrollY }" [data]="service.$api_get_individual_collect_page" [columns]="columns"
[req]="{ params: reqParams }" [page]="{ }" [loading]="false" (change)="stChange($event)"> [req]="{ params: reqParams }" [page]="{ }" [loading]="false" (change)="stChange($event)">
</st> </st>
</nz-card> </nz-card>
@ -44,8 +37,23 @@
已选择 已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据 <strong class="text-red">{{ selectedRows.length }}</strong> 条数据
</div> </div>
<button nz-button nzType="primary" (click)="upload()" acl [acl-ability]="['TAX-COLLECT-report']">申报</button> <button nz-button nzDanger [nzLoading]="service.http.loading" acl [acl-ability]="['TAX-COLLECT-search']"
<button nz-button nzType="primary" (click)="recall()" acl [acl-ability]="['TAX-COLLECT-change']">更正</button> (click)="openDrawer()">筛选</button>
<button nz-button nzType="primary" (click)="uploadSetting()" acl [acl-ability]="['TAX-COLLECT-resetData']">更新数据</button> <button nz-button nzDanger acl [acl-ability]="['TAX-COLLECT-export']"> 导出</button>
<button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
<nz-dropdown-menu #menu="nzDropdownMenu">
<ul nz-menu>
<li nz-menu-item (click)="upload()" acl [acl-ability]="['TAX-COLLECT-report']">
申报
</li>
<li nz-menu-item (click)="recall()" acl [acl-ability]="['TAX-COLLECT-change']">
更正
</li>
<li nz-menu-item (click)="uploadSetting()" acl [acl-ability]="['TAX-COLLECT-resetData']">
更新数据
</li>
</ul>
</nz-dropdown-menu>
</div> </div>
</ng-template> </ng-template>

View File

@ -2,20 +2,19 @@ import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { STChange, STColumn, STComponent, STData } from '@delon/abc/st'; import { STChange, STColumn, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form'; import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TaxManagementService } from '../../services/tax-management.service'; import { TaxManagementService } from '../../services/tax-management.service';
@Component({ @Component({
selector: 'app-tax-management-individual-collect', selector: 'app-tax-management-individual-collect',
templateUrl: './individual-collect.component.html', templateUrl: './individual-collect.component.html',
styleUrls: ['../../../commom/less/box.less'] styleUrls: ['../../../commom/less/commom-table.less']
}) })
export class TaxManagementIndividualCollectComponent implements OnInit { export class TaxManagementIndividualCollectComponent extends BasicTableComponent implements OnInit {
_$expand = false;
schema!: SFSchema;
columns!: STColumn[]; columns!: STColumn[];
@ViewChild('st', { static: false }) st!: STComponent; @ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
tabs: any[] = [ tabs: any[] = [
{ name: '待申报', value: '0' }, { name: '待申报', value: '0' },
{ name: '待审核', value: '1' }, { name: '待审核', value: '1' },
@ -26,7 +25,9 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
selectedIndex = '0'; selectedIndex = '0';
selectedRows: any[] = []; selectedRows: any[] = [];
constructor(public service: TaxManagementService, private router: Router, private ar: ActivatedRoute, private modal: NzModalService) {} constructor(public service: TaxManagementService, public searchDrawerService: SearchDrawerService) {
super(searchDrawerService);
}
/** /**
* 查询参数 * 查询参数
@ -39,14 +40,6 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
return { ...params }; return { ...params };
} }
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand);
}
stChange(e: STChange): void { stChange(e: STChange): void {
switch (e.type) { switch (e.type) {
case 'checkbox': case 'checkbox':
@ -55,13 +48,6 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
} }
} }
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
/** /**
* 程序初始化入口 * 程序初始化入口
*/ */
@ -76,7 +62,6 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
initSF() { initSF() {
this.schema = { this.schema = {
properties: { properties: {
_$expand: { type: 'boolean', ui: { hidden: true } },
overdueStatus: { overdueStatus: {
title: '是否逾期', title: '是否逾期',
type: 'string', type: 'string',
@ -98,7 +83,7 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
ui: { ui: {
widget: 'sl-from-to', widget: 'sl-from-to',
type: 'date', type: 'date',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
} as SFDateWidgetSchema } as SFDateWidgetSchema
}, },
sbrq: { sbrq: {
@ -108,9 +93,6 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
widget: 'sl-from-to', widget: 'sl-from-to',
type: 'date', type: 'date',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd',
visibleIf: {
_$expand: (value: boolean) => value
}
} as SFDateWidgetSchema } as SFDateWidgetSchema
}, },
nsrmc: { nsrmc: {
@ -120,9 +102,6 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
allowClear: true, allowClear: true,
visibleIf: {
_$expand: (value: boolean) => value
},
asyncData: () => this.service.getNetworkEnterpriseName() asyncData: () => this.service.getNetworkEnterpriseName()
} }
} }
@ -273,7 +252,7 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
this.service.msgSrv.success('更新成功'); this.service.msgSrv.success('更新成功');
this.search(); this.search();
} }
}) });
} }
search() { search() {

View File

@ -1,17 +1,5 @@
<!-- <!-- <page-header-wrapper [title]="''"></page-header-wrapper>
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-03-30 14:00:43
* @LastEditors : Shiming
* @LastEditTime : 2022-03-30 15:55:06
* @FilePath : \\tms-obc-web\\src\\app\\routes\\tax-management\\components\\individual-income\\individual-income.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="''"></page-header-wrapper>
<nz-card class="search-box"> <nz-card class="search-box">
<!-- 搜索表单 -->
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col [nzSpan]="_$expand ? 24 : 18"> <div nz-col [nzSpan]="_$expand ? 24 : 18">
<sf #sf [schema]="schema" [ui]="{ '*': { spanLabelFixed: 100,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}" <sf #sf [schema]="schema" [ui]="{ '*': { spanLabelFixed: 100,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}"
@ -28,14 +16,18 @@
</button> </button>
</div> </div>
</div> </div>
</nz-card> </nz-card> -->
<nz-card class="content-box"> <nz-card class="table-box">
<nz-tabset [nzTabBarExtraContent]="extraTemplate" *ngIf="tabs.length > 0"> <div class="tab_header">
<label class="page_title"> <label class="driver">|</label> 个税明细</label>
<nz-tabset [nzTabBarExtraContent]="extraTemplate">
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)"> </nz-tab> <nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)"> </nz-tab>
</nz-tabset> </nz-tabset>
</div>
<!-- 数据列表 --> <!-- 数据列表 -->
<st #st [scroll]="{ x: '1200px',y:'450px' }" [data]="service.$api_get_individual_income_page" [columns]="columns" <st #st [scroll]="{ x: '1200px',y:scrollY }" [data]="service.$api_get_individual_income_page" [columns]="columns"
[req]="{ process: beforeReq }" [page]="{}" [loading]="service.http.loading" (change)="stChange($event)"> [req]="{ process: beforeReq }" [page]="{}" [loading]="service.http.loading" (change)="stChange($event)">
</st> </st>
</nz-card> </nz-card>
@ -45,10 +37,29 @@
已选择 已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据 <strong class="text-red">{{ selectedRows.length }}</strong> 条数据
</div> </div>
<button nz-button nzType="primary" (click)="upload()" acl [acl-ability]="['TAX-INCOME-declare']">申报</button> <button nz-button nzDanger [nzLoading]="isLoading && st.loading" acl [acl-ability]="['TAX-INCOME-search']"
<button nz-button nzType="primary" (click)="corrections()" acl [acl-ability]="['TAX-INCOME-change']">更正</button> (click)="openDrawer()">筛选</button>
<button nz-button nzType="primary" (click)="resetData()" acl [acl-ability]="['TAX-INCOME-threshold']">修改起征点</button> <button nz-button nzDanger acl [acl-ability]="['TAX-INCOME-export']"> 导出</button>
<button nz-button nzType="primary" (click)="uploadSetting()" acl [acl-ability]="['TAX-INCOME-resetData']">更新数据</button> <button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
<nz-dropdown-menu #menu="nzDropdownMenu">
<ul nz-menu>
<li nz-menu-item (click)="upload()" acl [acl-ability]="['TAX-INCOME-declare']">
申报
</li>
<li nz-menu-item (click)="corrections()" acl [acl-ability]="['TAX-INCOME-change']">
更正
</li>
<li nz-menu-item (click)="resetData()" acl [acl-ability]="['TAX-INCOME-threshold']">
修改起征点
</li>
<li nz-menu-item (click)="uploadSetting()" acl [acl-ability]="['TAX-INCOME-resetData']">
更新数据
</li>
</ul>
</nz-dropdown-menu>
</div> </div>
</ng-template> </ng-template>

View File

@ -1,22 +1,18 @@
import { Component, OnInit, ViewChild } from '@angular/core'; import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STChange, STColumn, STComponent, STData, STRequestOptions } from '@delon/abc/st'; import { STChange, STColumn, STComponent, STData, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form'; import { SFDateWidgetSchema } from '@delon/form';
import { ShipperBaseService } from '@shared'; import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { BasicTableComponent } from 'src/app/routes/commom';
import { TaxManagementService } from '../../services/tax-management.service'; import { TaxManagementService } from '../../services/tax-management.service';
@Component({ @Component({
selector: 'app-tax-management-individual-income', selector: 'app-tax-management-individual-income',
templateUrl: './individual-income.component.html', templateUrl: './individual-income.component.html',
styleUrls: ['../../../commom/less/box.less', '../../../commom/less/expend-but.less'] styleUrls: ['../../../commom/less/commom-table.less']
}) })
export class TaxManagementIndividualIncomeComponent implements OnInit { export class TaxManagementIndividualIncomeComponent extends BasicTableComponent implements OnInit {
_$expand = false;
schema!: SFSchema;
columns!: STColumn[]; columns!: STColumn[];
@ViewChild('st', { static: false }) st!: STComponent; @ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
isLoading: boolean = false; isLoading: boolean = false;
tabs: any[] = [ tabs: any[] = [
{ name: '待申报', value: '0' }, { name: '待申报', value: '0' },
@ -30,7 +26,9 @@ export class TaxManagementIndividualIncomeComponent implements OnInit {
selectedRows: any[] = []; selectedRows: any[] = [];
constructor(public service: TaxManagementService) {} constructor(public service: TaxManagementService, public searchDrawerService: SearchDrawerService) {
super(searchDrawerService);
}
beforeReq = (requestOptions: STRequestOptions) => { beforeReq = (requestOptions: STRequestOptions) => {
Object.assign(requestOptions.body, { declareStatus: this.selectedIndex }); Object.assign(requestOptions.body, { declareStatus: this.selectedIndex });
@ -50,22 +48,6 @@ export class TaxManagementIndividualIncomeComponent implements OnInit {
} }
} }
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand);
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
this.isLoading = true;
}
/** /**
* 程序初始化入口 * 程序初始化入口
*/ */
@ -80,7 +62,6 @@ export class TaxManagementIndividualIncomeComponent implements OnInit {
initSF() { initSF() {
this.schema = { this.schema = {
properties: { properties: {
_$expand: { type: 'boolean', ui: { hidden: true } },
driverName: { title: '司机姓名', type: 'string', ui: { placeholder: '请输入' } }, driverName: { title: '司机姓名', type: 'string', ui: { placeholder: '请输入' } },
telephone: { telephone: {
type: 'string', type: 'string',
@ -140,10 +121,7 @@ export class TaxManagementIndividualIncomeComponent implements OnInit {
ui: { ui: {
placeholder: '请选择', placeholder: '请选择',
widget: 'select', widget: 'select',
containsAllLabel: true, containsAllLabel: true
visibleIf: {
_$expand: (value: boolean) => value
}
}, },
default: '' default: ''
}, },
@ -153,10 +131,7 @@ export class TaxManagementIndividualIncomeComponent implements OnInit {
ui: { ui: {
widget: 'sl-from-to', widget: 'sl-from-to',
type: 'date', type: 'date',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
visibleIf: {
_$expand: (value: boolean) => value
}
} as SFDateWidgetSchema } as SFDateWidgetSchema
}, },
declareDate: { declareDate: {
@ -165,10 +140,7 @@ export class TaxManagementIndividualIncomeComponent implements OnInit {
ui: { ui: {
widget: 'sl-from-to', widget: 'sl-from-to',
type: 'date', type: 'date',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
visibleIf: {
_$expand: (value: boolean) => value
}
} as SFDateWidgetSchema } as SFDateWidgetSchema
}, },
ltdId: { ltdId: {
@ -178,9 +150,6 @@ export class TaxManagementIndividualIncomeComponent implements OnInit {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
allowClear: true, allowClear: true,
visibleIf: {
_$expand: (value: boolean) => value
},
asyncData: () => this.service.getNetworkFreightForwarder() asyncData: () => this.service.getNetworkFreightForwarder()
} }
} }

View File

@ -1,17 +1,5 @@
<!-- <!-- <page-header-wrapper [title]="''"></page-header-wrapper>
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-03-30 14:00:43
* @LastEditors : Shiming
* @LastEditTime : 2022-04-09 14:11:01
* @FilePath : \\tms-obc-web\\src\\app\\routes\\tax-management\\components\\order-reporting\\order-reporting.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="''"></page-header-wrapper>
<nz-card> <nz-card>
<!-- 搜索表单 -->
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col [nzSpan]="_$expand ? 24 : 18"> <div nz-col [nzSpan]="_$expand ? 24 : 18">
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
@ -27,18 +15,20 @@
</button> </button>
</div> </div>
</div> </div>
</nz-card> </nz-card> -->
<nz-card>
<nz-tabset [nzTabBarExtraContent]="extraTemplate" *ngIf="tabs.length>0">
<nz-card class="table-box">
<div class="tab_header">
<label class="page_title"> <label class="driver">|</label> 订单上报</label>
<nz-tabset [nzTabBarExtraContent]="extraTemplate" *ngIf="tabs.length>0">
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)"> <nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)">
</nz-tab> </nz-tab>
</nz-tabset> </nz-tabset>
</div>
<!-- 数据列表 --> <!-- 数据列表 -->
<st #st [scroll]="{x:'1200px'}" [data]="service.$api_getTaxOrderPage_page" [columns]="columns" <st #st [scroll]="{x:'1200px',y:scrollY}" [data]="service.$api_getTaxOrderPage_page" [columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }" [req]="{ params: reqParams }" [page]="{ }" [loading]="service.http.loading">
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
[page]="{ show: true, showSize: true, pageSizes: [10,20, 50, 100] }" [loading]="service.http.loading">
<ng-template st-row="putStatus" let-item let-index="index"> <ng-template st-row="putStatus" let-item let-index="index">
<!-- <a (click)="viewAuditResult(item)" *ngIf="item?.billStatus === '2'">{{item?.billStatusLabel}}</a> --> <!-- <a (click)="viewAuditResult(item)" *ngIf="item?.billStatus === '2'">{{item?.billStatusLabel}}</a> -->
<span *ngIf="item?.putStatus == '0'">待上传</span> <span *ngIf="item?.putStatus == '0'">待上传</span>
@ -101,11 +91,26 @@
已选择 已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据 <strong class="text-red">{{ selectedRows.length }}</strong> 条数据
</div> </div>
<button nz-button nzType="primary" (click)="upload()" acl [acl-ability]="['TAX-ORDERREPORT-upload']">上传</button> <button nz-button nzDanger [nzLoading]="isLoading && st.loading" acl [acl-ability]="['TAX-ORDERREPORT-search']"
<button nz-button nzType="primary" (click)="recall() " acl [acl-ability]="['TAX-ORDERREPORT-recall']">撤回</button> (click)="openDrawer()">筛选</button>
<button nz-button nzType="primary" (click)="resetData()" acl <button nz-button nzDanger acl [acl-ability]="['TAX-ORDERREPORT-export']"> 导出</button>
[acl-ability]="['TAX-ORDERREPORT-resetData']">更新数据</button> <button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
<button nz-button nzType="primary" (click)="uploadSetting()" acl 更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
[acl-ability]="['TAX-ORDERREPORT-uploadSetting']">税务设置</button> <nz-dropdown-menu #menu="nzDropdownMenu">
<ul nz-menu>
<li nz-menu-item (click)="upload()" acl [acl-ability]="['TAX-ORDERREPORT-upload']">
上传
</li>
<li nz-menu-item (click)="recall() " acl [acl-ability]="['TAX-ORDERREPORT-recall']">
撤回
</li>
<li nz-menu-item (click)="resetData()" acl [acl-ability]="['TAX-ORDERREPORT-resetData']">
更新数据
</li>
<li nz-menu-item (click)="uploadSetting()" acl [acl-ability]="['TAX-ORDERREPORT-uploadSetting']">
税务设置
</li>
</ul>
</nz-dropdown-menu>
</div> </div>
</ng-template> </ng-template>

View File

@ -1,22 +0,0 @@
:host {
.text-black {
color: #000;
}
.icon {
display: inline-block;
width: 1em;
height: 1em;
stroke-width: 0;
stroke: currentColor;
/* stylelint-disable-next-line order/properties-order */
fill: currentColor;
}
::ng-deep {
.imgBox {
display: flex;
img {
width: 60px !important;
}
}
}
}

View File

@ -1,24 +0,0 @@
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
import { DatatableOrderReportingComponent } from './order-reporting.component';
describe('DatatableOrderReportingComponent', () => {
let component: DatatableOrderReportingComponent;
let fixture: ComponentFixture<DatatableOrderReportingComponent>;
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [ DatatableOrderReportingComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(DatatableOrderReportingComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -1,29 +1,24 @@
import { Component, OnInit, ViewChild } from '@angular/core'; import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { STColumn, STComponent, STData } from '@delon/abc/st'; import { STColumn, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form'; import { SFDateWidgetSchema, SFSchemaEnum, SFSelectWidgetSchema } from '@delon/form';
import { ShipperBaseService } from '@shared'; import { SearchDrawerService, ShipperBaseService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { of } from 'rxjs'; import { of } from 'rxjs';
import { map } from 'rxjs/operators'; import { map } from 'rxjs/operators';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TaxManagementService } from '../../services/tax-management.service'; import { TaxManagementService } from '../../services/tax-management.service';
import { TaxManagementUploadSettingComponent } from './upload-setting/upload-setting.component'; import { TaxManagementUploadSettingComponent } from './upload-setting/upload-setting.component';
import { TaxManagementOrderVerifyResultComponent } from './verify-result/verify-result.component'; import { TaxManagementOrderVerifyResultComponent } from './verify-result/verify-result.component';
// import { DatatableReportingUploadSettingComponent } from '../upload-setting/upload-setting.component';
// import { DatatableReportingVerifyResultComponent } from '../verify-result/verify-result.component';
@Component({ @Component({
selector: 'app-tax-management-order-reporting', selector: 'app-tax-management-order-reporting',
templateUrl: './order-reporting.component.html', templateUrl: './order-reporting.component.html',
styleUrls: ['./order-reporting.component.less'] styleUrls: ['../../../commom/less/commom-table.less']
}) })
export class TaxManagementOrderReportingComponent implements OnInit { export class TaxManagementOrderReportingComponent extends BasicTableComponent implements OnInit {
_$expand = false;
ui!: SFUISchema;
schema!: SFSchema;
columns!: STColumn[]; columns!: STColumn[];
@ViewChild('st', { static: false }) st!: STComponent; @ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
tabType!: string; tabType!: string;
isLoading: boolean = false; isLoading: boolean = false;
tabs: any[] = [ tabs: any[] = [
@ -41,15 +36,9 @@ export class TaxManagementOrderReportingComponent implements OnInit {
private ar: ActivatedRoute, private ar: ActivatedRoute,
public shipperservice: ShipperBaseService, public shipperservice: ShipperBaseService,
private modal: NzModalService, private modal: NzModalService,
public shipperSrv: ShipperBaseService public searchDrawerService: SearchDrawerService
) { ) {
} super(searchDrawerService);
/**
* 查询字段个数
*/
get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length;
} }
/** /**
@ -57,7 +46,7 @@ export class TaxManagementOrderReportingComponent implements OnInit {
*/ */
get reqParams() { get reqParams() {
const params = Object.assign({}, this.sf?.value || {}, { const params = Object.assign({}, this.sf?.value || {}, {
putStatus: this.selectedIndex, putStatus: this.selectedIndex
}); });
delete params._$expand; delete params._$expand;
return { ...params }; return { ...params };
@ -70,22 +59,6 @@ export class TaxManagementOrderReportingComponent implements OnInit {
return this.st?.list.filter((item: any) => item.checked) || []; return this.st?.list.filter((item: any) => item.checked) || [];
} }
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand);
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
this.isLoading = true
}
/** /**
* 程序初始化入口 * 程序初始化入口
*/ */
@ -106,8 +79,8 @@ export class TaxManagementOrderReportingComponent implements OnInit {
type: 'string', type: 'string',
title: '运单号', title: '运单号',
ui: { ui: {
placeholder: '请输入', placeholder: '请输入'
}, }
}, },
shipperId: { shipperId: {
type: 'string', type: 'string',
@ -119,7 +92,7 @@ export class TaxManagementOrderReportingComponent implements OnInit {
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
allowClear: true, allowClear: true,
onSearch: (q: any) => { onSearch: (q: any) => {
let str = q.replace(/^\s+|\s+$/g, ""); let str = q.replace(/^\s+|\s+$/g, '');
if (str) { if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: str }) .request(this.service.$api_enterpriceList, { enterpriseName: str })
@ -128,17 +101,14 @@ export class TaxManagementOrderReportingComponent implements OnInit {
} else { } else {
return of([]); return of([]);
} }
}, }
} as SFSelectWidgetSchema } as SFSelectWidgetSchema
}, },
driverName: { driverName: {
title: '承运司机', title: '承运司机',
type: 'string', type: 'string',
ui: { ui: {
placeholder: '请输入司机姓名/手机号', visibleIf: { placeholder: '请输入司机姓名/手机号'
_$expand: (value: boolean) => value,
},
} }
}, },
carNo: { carNo: {
@ -146,10 +116,7 @@ export class TaxManagementOrderReportingComponent implements OnInit {
type: 'string', type: 'string',
maxLength: 9, maxLength: 9,
ui: { ui: {
placeholder: '请输入', placeholder: '请输入'
visibleIf: {
_$expand: (value: boolean) => value,
},
} }
}, },
collectionUserName: { collectionUserName: {
@ -157,10 +124,7 @@ export class TaxManagementOrderReportingComponent implements OnInit {
type: 'string', type: 'string',
maxLength: 9, maxLength: 9,
ui: { ui: {
placeholder: '请输入', placeholder: '请输入'
visibleIf: {
_$expand: (value: boolean) => value,
},
} }
}, },
// putStatus: { // putStatus: {
@ -185,14 +149,11 @@ export class TaxManagementOrderReportingComponent implements OnInit {
enum: [ enum: [
{ label: '校验中', value: 0 }, { label: '校验中', value: 0 },
{ label: '通过', value: 1 }, { label: '通过', value: 1 },
{label: '不通过',value: 2}, { label: '不通过', value: 2 }
], ],
ui: { ui: {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择'
visibleIf: {
_$expand: (value: boolean) => value,
},
} }
}, },
networkTransporter: { networkTransporter: {
@ -202,9 +163,6 @@ export class TaxManagementOrderReportingComponent implements OnInit {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
allowClear: true, allowClear: true,
visibleIf: {
_$expand: (value: boolean) => value
},
asyncData: () => this.shipperservice.getNetworkFreightForwarder() asyncData: () => this.shipperservice.getNetworkFreightForwarder()
} }
}, },
@ -214,11 +172,8 @@ export class TaxManagementOrderReportingComponent implements OnInit {
ui: { ui: {
widget: 'sl-from-to', widget: 'sl-from-to',
type: 'date', type: 'date',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
visibleIf: { } as SFDateWidgetSchema
_$expand: (value: boolean) => value,
},
} as SFDateWidgetSchema,
}, },
orderPayTime: { orderPayTime: {
title: '结束时间', title: '结束时间',
@ -226,17 +181,10 @@ export class TaxManagementOrderReportingComponent implements OnInit {
ui: { ui: {
widget: 'sl-from-to', widget: 'sl-from-to',
type: 'date', type: 'date',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
visibleIf: { } as SFDateWidgetSchema
_$expand: (value: boolean) => value, }
}, }
} as SFDateWidgetSchema,
},
},
};
this.ui = {
'*': { spanLabelFixed: 120, grid: { span: 8, gutter: 4 }, enter: () => this.search() },
$time: { grid: { span: 24 } },
}; };
} }
@ -245,33 +193,33 @@ export class TaxManagementOrderReportingComponent implements OnInit {
*/ */
initST() { initST() {
this.columns = [ this.columns = [
{ title: '', type: 'checkbox', className: 'text-center', width: '60px', }, { title: '', type: 'checkbox', className: 'text-center', width: '60px' },
{ title: '上传状态', render: 'putStatus', className: 'text-center', width: '120px', }, { title: '上传状态', render: 'putStatus', className: 'text-center', width: '120px' },
{ title: '本地校验', render: 'checkStatus', className: 'text-center', width: '120px', }, { title: '本地校验', render: 'checkStatus', className: 'text-center', width: '120px' },
{ {
title: '订单号', title: '订单号',
index: 'billCode', index: 'billCode',
className: 'text-center', className: 'text-center',
width: '150px', width: '150px'
}, },
{ title: '运单号', index: 'wayBillCode', className: 'text-center', width: '150px', }, { title: '运单号', index: 'wayBillCode', className: 'text-center', width: '150px' },
{ {
title: '网络货运人', title: '网络货运人',
index: 'networkTransporterName', index: 'networkTransporterName',
className: 'text-center', className: 'text-center',
width: '180px', width: '180px'
}, },
{ {
title: '档案编号', title: '档案编号',
index: 'archivesNo', index: 'archivesNo',
className: 'text-center', className: 'text-center',
width: '180px', width: '180px'
}, },
{ {
title: '品牌型号', title: '品牌型号',
index: 'carBrand', index: 'carBrand',
className: 'text-center', className: 'text-center',
width: '180px', width: '180px'
}, },
{ title: '装货地', index: 'loadingAddress', render: 'loadingPlace', className: 'text-center', width: '200px' }, { title: '装货地', index: 'loadingAddress', render: 'loadingPlace', className: 'text-center', width: '200px' },
{ title: '装货地详细地址', index: 'loadingDetailedAddress', render: 'loadingPlace', className: 'text-center', width: '200px' }, { title: '装货地详细地址', index: 'loadingDetailedAddress', render: 'loadingPlace', className: 'text-center', width: '200px' },
@ -301,12 +249,10 @@ export class TaxManagementOrderReportingComponent implements OnInit {
{ title: '提货单', render: 'loadingLadingBill', className: 'text-center', width: '100px' }, { title: '提货单', render: 'loadingLadingBill', className: 'text-center', width: '100px' },
{ title: '签收单', render: 'signatureForm', className: 'text-center', width: '100px' }, { title: '签收单', render: 'signatureForm', className: 'text-center', width: '100px' },
{ title: '上传次数', index: 'putNumber', className: 'text-center', width: '100px' }, { title: '上传次数', index: 'putNumber', className: 'text-center', width: '100px' },
{ title: '最近上传时间', index: 'recentlyPutTime', className: 'text-center', width: '180px' }, { title: '最近上传时间', index: 'recentlyPutTime', className: 'text-center', width: '180px' }
]; ];
} }
/** /**
*撤回 *撤回
* @param record 记录实例 * @param record 记录实例
@ -331,10 +277,9 @@ export class TaxManagementOrderReportingComponent implements OnInit {
this.service.msgSrv.success('撤销成功'); this.service.msgSrv.success('撤销成功');
this.search(); this.search();
} }
}) });
} }
}); });
} }
/** /**
*撤销 *撤销
@ -354,7 +299,7 @@ export class TaxManagementOrderReportingComponent implements OnInit {
this.service.msgSrv.success('更新成功'); this.service.msgSrv.success('更新成功');
this.st.load(1); this.st.load(1);
} }
}) });
} }
/** /**
*撤销 *撤销
@ -381,10 +326,9 @@ export class TaxManagementOrderReportingComponent implements OnInit {
this.service.msgSrv.success('撤销成功'); this.service.msgSrv.success('撤销成功');
this.search(); this.search();
} }
}) });
} }
}); });
} }
selectChange(item: any) { selectChange(item: any) {
@ -393,7 +337,7 @@ export class TaxManagementOrderReportingComponent implements OnInit {
this.selectedIndex = item?.value || ''; this.selectedIndex = item?.value || '';
setTimeout(() => { setTimeout(() => {
this.st.load(); this.st.load();
}) });
} }
/** /**
@ -403,7 +347,7 @@ export class TaxManagementOrderReportingComponent implements OnInit {
// this.router.navigate(['../view', record.uuid], { relativeTo: this.ar }); // this.router.navigate(['../view', record.uuid], { relativeTo: this.ar });
this.router.navigate(['../detail'], { this.router.navigate(['../detail'], {
queryParams: { queryParams: {
id: record.id, id: record.id
}, },
relativeTo: this.ar relativeTo: this.ar
}); });
@ -431,14 +375,14 @@ export class TaxManagementOrderReportingComponent implements OnInit {
* 上传 * 上传
*/ */
upload() { upload() {
let status = false let status = false;
if (this.selectedRows.length === 0) { if (this.selectedRows.length === 0) {
this.openWainingModal('请选择需要上传的数据'); this.openWainingModal('请选择需要上传的数据');
return; return;
} }
this.selectedRows.forEach(item => { this.selectedRows.forEach(item => {
if (item?.putStatus != '0') { if (item?.putStatus != '0') {
status = true status = true;
} }
}); });
if (status) { if (status) {
@ -459,10 +403,9 @@ export class TaxManagementOrderReportingComponent implements OnInit {
this.service.msgSrv.success('上传成功'); this.service.msgSrv.success('上传成功');
this.st.load(); this.st.load();
} }
}) });
} }
/** /**
* *
* @param params 上传设置 * @param params 上传设置
@ -479,7 +422,7 @@ export class TaxManagementOrderReportingComponent implements OnInit {
if (res) { if (res) {
this.st.load(); this.st.load();
} }
}) });
} }
/** /**
@ -499,7 +442,7 @@ export class TaxManagementOrderReportingComponent implements OnInit {
if (res) { if (res) {
this.st.load(); this.st.load();
} }
}) });
} }
/** /**
@ -509,10 +452,9 @@ export class TaxManagementOrderReportingComponent implements OnInit {
if (record?.billStatus !== '2') { if (record?.billStatus !== '2') {
return; return;
} }
this.openWainingModal('监管审核结果', record?.result) this.openWainingModal('监管审核结果', record?.result);
} }
search() { search() {
this.st.load(1); this.st.load(1);
} }
@ -528,8 +470,7 @@ export class TaxManagementOrderReportingComponent implements OnInit {
this.modal.warning({ this.modal.warning({
nzMask: false, nzMask: false,
nzTitle: title, nzTitle: title,
nzContent: content, nzContent: content
}) });
} }
} }

View File

@ -1,7 +1,5 @@
<page-header-wrapper [title]="'可开票订单'"> <!-- <page-header-wrapper [title]="'可开票订单'">
</page-header-wrapper> </page-header-wrapper>
<nz-card class="search-box" nzBordered> <nz-card class="search-box" nzBordered>
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24"> <div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
@ -20,11 +18,20 @@
</button> </button>
</div> </div>
</div> </div>
</nz-card> </nz-card> -->
<nz-card class="content-box" nzBordered> <nz-card class="table-box">
<div class="header_box">
<label class="page_title"> <label class="driver">|</label> 可开票订单</label>
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
[acl-ability]="['FINANCIAL-VOUCHER-list']">筛选</button>
<button nz-button nzDanger (click)="export()" acl
[acl-ability]="['TICKET-BILLING-ORDER-exprort']">导出</button>
</div>
</div>
<st #st [data]="service.$api_invoicedBillInfo_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}" <st #st [data]="service.$api_invoicedBillInfo_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
[loading]="false" [scroll]="{ x:'1200px' }"> [loading]="false" [scroll]="{ x:'1200px',y:scrollY }">
<ng-template st-row="sts" let-item let-index="index"> <ng-template st-row="sts" let-item let-index="index">
<span *ngIf="item.sts === '1'">待受理</span> <span *ngIf="item.sts === '1'">待受理</span>
<span *ngIf="item.sts === '2'">处理中</span> <span *ngIf="item.sts === '2'">处理中</span>

View File

@ -2,27 +2,29 @@ import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st'; import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema, SFSelectWidgetSchema } from '@delon/form'; import { SFComponent, SFSchema, SFDateWidgetSchema, SFSelectWidgetSchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TicketService } from '../../services/ticket.service'; import { TicketService } from '../../services/ticket.service';
@Component({ @Component({
selector: 'app-billing-order', selector: 'app-billing-order',
templateUrl: './billing-order.component.html', templateUrl: './billing-order.component.html',
styleUrls: ['../../../commom/less/box.less', '../../../commom/less/expend-but.less'] styleUrls: ['../../../commom/less/commom-table.less']
}) })
export class BillingOrderComponent implements OnInit { export class BillingOrderComponent extends BasicTableComponent {
@ViewChild('st', { static: true }) @ViewChild('st', { static: true })
st!: STComponent; st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
columns: STColumn[] = this.initST(); columns: STColumn[] = this.initST();
searchSchema: SFSchema = this.initSF(); schema: SFSchema = this.initSF();
_$expand = false; constructor(public service: TicketService, private router: Router, public searchDrawerService: SearchDrawerService) {
super(searchDrawerService);
}
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router, private ar: ActivatedRoute) {} search() {
this.st?.load(1);
ngOnInit(): void {} }
beforeReq = (requestOptions: STRequestOptions) => { beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) { if (this.sf) {
@ -38,22 +40,6 @@ export class BillingOrderComponent implements OnInit {
this.router.navigateByUrl(`/order-management/vehicle/vehicle-detail/${item.billId}`); this.router.navigateByUrl(`/order-management/vehicle/vehicle-detail/${item.billId}`);
} }
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
export() { export() {
this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_export_InvoicedBillInfoPage); this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_export_InvoicedBillInfoPage);
} }
@ -118,20 +104,14 @@ export class BillingOrderComponent implements OnInit {
type: 'string', type: 'string',
title: '申请编号', title: '申请编号',
ui: { ui: {
autocomplete: 'off', autocomplete: 'off'
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
vatinvcode: { vatinvcode: {
type: 'string', type: 'string',
title: '分票编号', title: '分票编号',
ui: { ui: {
placeholder: '请输入', placeholder: '请输入'
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
vatappdate: { vatappdate: {
@ -140,10 +120,7 @@ export class BillingOrderComponent implements OnInit {
ui: { ui: {
widget: 'sl-from-to', widget: 'sl-from-to',
type: 'date', type: 'date',
format: 'yyyy-MM-dd HH:mm:ss', format: 'yyyy-MM-dd HH:mm:ss'
visibleIf: {
expand: (value: boolean) => value
}
} as SFDateWidgetSchema } as SFDateWidgetSchema
}, },
sts: { sts: {
@ -152,10 +129,7 @@ export class BillingOrderComponent implements OnInit {
ui: { ui: {
widget: 'dict-select', widget: 'dict-select',
params: { dictKey: 'etc:invoicing:status' }, params: { dictKey: 'etc:invoicing:status' },
placeholder: '请选择', placeholder: '请选择'
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
invoiceno: { invoiceno: {
@ -163,10 +137,7 @@ export class BillingOrderComponent implements OnInit {
title: '发票号码', title: '发票号码',
ui: { ui: {
placeholder: '请输入', placeholder: '请输入',
autocomplete: 'off', autocomplete: 'off'
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
invoicedate: { invoicedate: {
@ -175,10 +146,7 @@ export class BillingOrderComponent implements OnInit {
ui: { ui: {
widget: 'sl-from-to', widget: 'sl-from-to',
type: 'date', type: 'date',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
visibleIf: {
expand: (value: boolean) => value
}
} as SFDateWidgetSchema } as SFDateWidgetSchema
}, },
enterpriseInfoId: { enterpriseInfoId: {
@ -188,9 +156,6 @@ export class BillingOrderComponent implements OnInit {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
allowClear: true, allowClear: true,
visibleIf: {
expand: (value: boolean) => value
},
asyncData: () => this.service.getNetworkFreightForwarder() asyncData: () => this.service.getNetworkFreightForwarder()
} }
} }

View File

@ -1,7 +1,5 @@
<page-header-wrapper [title]="'销票处理'"> <!-- <page-header-wrapper [title]="'销票处理'">
</page-header-wrapper> </page-header-wrapper>
<nz-card class="search-box" nzBordered> <nz-card class="search-box" nzBordered>
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24"> <div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
@ -12,30 +10,36 @@
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right"> <div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button> <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
<button nz-button (click)="resetSF()">重置</button> <button nz-button (click)="resetSF()">重置</button>
<!-- <button nz-button> 导出</button> -->
<button nz-button nzType="link" (click)="expandToggle()"> <button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }} {{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i> <i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
</button> </button>
</div> </div>
</div> </div>
</nz-card> </nz-card> -->
<nz-card class="content-box" nzBordered> <nz-card class="table-box">
<div class="tab_header">
<label class="page_title">
<label class="driver">|</label>
销票处理</label>
<nz-tabset [nzTabBarExtraContent]="extraTemplate" (nzSelectedIndexChange)="selectChange($event)"> <nz-tabset [nzTabBarExtraContent]="extraTemplate" (nzSelectedIndexChange)="selectChange($event)">
<nz-tab nzTitle="全部"></nz-tab> <nz-tab nzTitle="全部"></nz-tab>
<nz-tab nzTitle="待处理"></nz-tab> <nz-tab nzTitle="待处理"></nz-tab>
<nz-tab nzTitle="待确认"></nz-tab> <nz-tab nzTitle="待确认"></nz-tab>
<!-- <nz-tab nzTitle="已确认"></nz-tab> --> <!-- <nz-tab nzTitle="已确认"></nz-tab> -->
</nz-tabset> </nz-tabset>
</div>
<ng-template #extraTemplate> <ng-template #extraTemplate>
<div class="d-flex align-items-center"> <div class="d-flex align-items-center mr-sm">
<div class="mr-md"> <div class="mr-md">
已选择 已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 张发票&nbsp;&nbsp; 发票金额总计 <strong class="text-red">{{ selectedRows.length }}</strong> 张发票&nbsp;&nbsp; 发票金额总计
<strong class="text-red">{{totalCallNo }}</strong> <strong class="text-red">{{totalCallNo }}</strong>
<a *ngIf="totalCallNo > 0" (click)="st.clearCheck();totalCallNo=0" class="ml-lg">清空</a> <a *ngIf="totalCallNo > 0" (click)="st.clearCheck();totalCallNo=0" class="ml-lg">清空</a>
</div> </div>
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
<!-- <button nz-button *ngIf="resourceStatus===1 || !resourceStatus" (click)="this.batchPush()">推送开票</button> --> <!-- <button nz-button *ngIf="resourceStatus===1 || !resourceStatus" (click)="this.batchPush()">推送开票</button> -->
<!-- <button nz-button *ngIf="resourceStatus===1 || !resourceStatus" <!-- <button nz-button *ngIf="resourceStatus===1 || !resourceStatus"
(click)="this.batchRemove(selectedRows)">移除</button> (click)="this.batchRemove(selectedRows)">移除</button>
@ -45,7 +49,7 @@
</ng-template> </ng-template>
<st #st [scroll]="{ x: '2000px' }" [data]="service.$api_ficoVatinvHList" [columns]="columns" [page]="{}" <st #st [scroll]="{ x: '2000px',y:scrollY }" [data]="service.$api_ficoVatinvHList" [columns]="columns" [page]="{}"
[req]="{process: beforeReq }" [res]="{process:afterRes }" [loading]="false" (change)="stChange($event)"> [req]="{process: beforeReq }" [res]="{process:afterRes }" [loading]="false" (change)="stChange($event)">
<ng-template st-row="vatinvcode" let-item let-index="index" let-column="column"> <ng-template st-row="vatinvcode" let-item let-index="index" let-column="column">
{{ item.vatinvcode }} <br> {{ item.vatinvcode }} <br>

View File

@ -1,26 +0,0 @@
:host::ng-deep {
.search-box {
.ant-card-body {
padding-bottom: 18px;
}
}
.content-box {
.ant-card-body {
padding-top: 0;
}
}
nz-range-picker {
width: 100%;
}
.ant-tabs-tab-btn {
padding-left : 16px;
padding-right: 16px;
}
.text-truncate {
white-space: normal;
}
}

View File

@ -4,37 +4,42 @@ import { Router } from '@angular/router';
import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st'; import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema, SFSelectWidgetSchema, SFSchemaEnum } from '@delon/form'; import { SFComponent, SFSchema, SFDateWidgetSchema, SFSelectWidgetSchema, SFSchemaEnum } from '@delon/form';
import { dateTimePickerUtil } from '@delon/util'; import { dateTimePickerUtil } from '@delon/util';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { of } from 'rxjs'; import { BasicTableComponent } from 'src/app/routes/commom';
import { map } from 'rxjs/operators';
import { TicketService } from '../../services/ticket.service'; 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'; import { PushInvoiceComponent } from './push-invoice/push-invoice.component';
@Component({ @Component({
selector: 'app-cancellation-invoice', selector: 'app-cancellation-invoice',
templateUrl: './cancellation-invoice.component.html', templateUrl: './cancellation-invoice.component.html',
styleUrls: ['./cancellation-invoice.component.less'] styleUrls: ['../../../commom/less/commom-table.less']
}) })
export class CancellationInvoiceComponent implements OnInit { export class CancellationInvoiceComponent extends BasicTableComponent {
@ViewChild('st', { static: true }) @ViewChild('st', { static: true })
st!: STComponent; st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
@ViewChild('requestedModal', { static: false }) @ViewChild('requestedModal', { static: false })
requestedModal!: any; requestedModal!: any;
columns: STColumn[] = this.initST(); columns: STColumn[] = this.initST();
searchSchema: SFSchema = this.initSF(); schema: SFSchema = this.initSF();
resourceStatus: any = ''; resourceStatus: any = '';
_$expand = false;
selectedRows: any[] = []; selectedRows: any[] = [];
totalCallNo = 0; totalCallNo = 0;
openInfo: any = { invoicedate: null, invoiceno: null, invoiceno2: null }; openInfo: any = { invoicedate: null, invoiceno: null, invoiceno2: null };
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {} constructor(
public service: TicketService,
private nzModalService: NzModalService,
private router: Router,
public searchDrawerService: SearchDrawerService
) {
super(searchDrawerService);
}
ngOnInit(): void {} search() {
this.st?.load(1);
}
beforeReq = (requestOptions: STRequestOptions) => { beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) { if (this.sf) {
@ -236,22 +241,6 @@ export class CancellationInvoiceComponent implements OnInit {
}); });
} }
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
private initSF(): SFSchema { private initSF(): SFSchema {
return { return {
properties: { properties: {
@ -287,10 +276,7 @@ export class CancellationInvoiceComponent implements OnInit {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
allowClear: true, allowClear: true,
asyncData: () => this.service.getNetworkFreightForwarder(), asyncData: () => this.service.getNetworkFreightForwarder()
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
sts: { sts: {
@ -300,10 +286,7 @@ export class CancellationInvoiceComponent implements OnInit {
widget: 'dict-select', widget: 'dict-select',
containsAllLabel: true, containsAllLabel: true,
params: { dictKey: 'vatinv:status' }, params: { dictKey: 'vatinv:status' },
containAllLable: true, containAllLable: true
visibleIf: {
_$expand: (value: boolean) => value
}
} as SFSelectWidgetSchema } as SFSelectWidgetSchema
}, },
// or2derSn: { // or2derSn: {
@ -322,10 +305,7 @@ export class CancellationInvoiceComponent implements OnInit {
ui: { ui: {
widget: 'date', widget: 'date',
mode: 'range', mode: 'range',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
visibleIf: {
expand: (value: boolean) => value
}
} as SFDateWidgetSchema } as SFDateWidgetSchema
} }
} }

View File

@ -1,14 +1,4 @@
<!-- <!-- <page-header-wrapper [title]="'ETC白名单'" [content]="content">
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-06 10:57:56
* @LastEditors : Shiming
* @LastEditTime : 2022-04-29 14:34:09
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\etc-blacklist\\etc-blacklist.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="'ETC白名单'" [content]="content">
<ng-template #content> <ng-template #content>
<nz-tabset class="tabs-wrap"> <nz-tabset class="tabs-wrap">
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="changeTab(tab)"> </nz-tab> <nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="changeTab(tab)"> </nz-tab>
@ -33,25 +23,43 @@
<button nz-button (click)="exprot()" acl [acl-ability]="[tabType === 1 ?'TICKET-ETC-BLACK_LIST-exportFreight' : 'TICKET-ETC-BLACK_LIST-exportCart']"> 导出</button> <button nz-button (click)="exprot()" acl [acl-ability]="[tabType === 1 ?'TICKET-ETC-BLACK_LIST-exportFreight' : 'TICKET-ETC-BLACK_LIST-exportCart']"> 导出</button>
</div> </div>
</div> </div>
</nz-card> </nz-card> -->
<nz-card> <nz-card class="table-box">
<div class="d-flex align-items-center mb-md"> <div class="tab_header">
<button nz-button (click)="configAction()" acl [acl-ability]="[tabType === 1 ? 'TICKET-ETC-BLACK_LIST-addFreight' : 'TICKET-ETC-BLACK_LIST-addCart']">添加</button> <label class="page_title"> <label class="driver">|</label> ETC白名单</label>
<button nz-button (click)="deleteAction()" acl [acl-ability]="[tabType === 1 ? 'TICKET-ETC-BLACK_LIST-deleteFreight' : 'TICKET-ETC-BLACK_LIST-deleteCart']">删除</button> <nz-tabset [nzTabBarExtraContent]="extraTemplate">
<div class="ml-md"> <nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="changeTab(tab)"> </nz-tab>
</nz-tabset>
</div>
<ng-template #extraTemplate>
<div class="d-flex align-items-center mr-sm">
<div class="mr-md">
已选择 已选择
<strong class="text-primary">{{ selectedRows.length }}</strong> 条数据 <strong class="text-primary">{{ selectedRows.length }}</strong> 条数据
<a *ngIf="selectedRows.length > 0" (click)="st.clearCheck()" class="ml-lg">清空</a> <a *ngIf="selectedRows.length > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
</div> </div>
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
<button nz-button nzDanger (click)="exprot()" acl
[acl-ability]="[tabType === 1 ?'TICKET-ETC-BLACK_LIST-exportFreight' : 'TICKET-ETC-BLACK_LIST-exportCart']">
导出</button>
<button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
<nz-dropdown-menu #menu="nzDropdownMenu">
<ul nz-menu>
<li nz-menu-item (click)="configAction()" acl
[acl-ability]="[tabType === 1 ? 'TICKET-ETC-BLACK_LIST-addFreight' : 'TICKET-ETC-BLACK_LIST-addCart']">
添加
</li>
<li nz-menu-item (click)="deleteAction()" acl
[acl-ability]="[tabType === 1 ? 'TICKET-ETC-BLACK_LIST-deleteFreight' : 'TICKET-ETC-BLACK_LIST-deleteCart']">
删除
</li>
</ul>
</nz-dropdown-menu>
</div> </div>
<st </ng-template>
#st <st #st [data]="tabType === 1 ? service.$api_get_etc_shipper_list : service.$api_get_etc_cart_page"
[data]="tabType === 1 ? service.$api_get_etc_shipper_list : service.$api_get_etc_cart_page" [scroll]="{ x: '1200px',y:scrollY }" [columns]="columns" [page]="{}" [req]="{ process: beforeReq }"
[columns]="columns" [loading]="false" (change)="stChange($event)"></st>
[page]="{}"
[req]="{ process: beforeReq }"
[loading]="false"
(change)="stChange($event)"
></st>
</nz-card> </nz-card>

View File

@ -1,7 +1,9 @@
import { ChangeDetectionStrategy, Component, OnInit, ViewChild } from '@angular/core'; import { ChangeDetectionStrategy, Component, OnInit, ViewChild } from '@angular/core';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st'; import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema } from '@delon/form'; import { SFComponent, SFSchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { SystemService } from 'src/app/routes/sys-setting/services/system.service'; import { SystemService } from 'src/app/routes/sys-setting/services/system.service';
import { TicketService } from '../../services/ticket.service'; import { TicketService } from '../../services/ticket.service';
import { AddCartComponent } from './add-cart/add-cart.component'; import { AddCartComponent } from './add-cart/add-cart.component';
@ -10,14 +12,12 @@ import { AddOwnerComponent } from './add-owner/add-owner.component';
@Component({ @Component({
selector: 'app-etc-blacklist', selector: 'app-etc-blacklist',
templateUrl: './etc-blacklist.component.html', templateUrl: './etc-blacklist.component.html',
styleUrls: ['../../../commom/less/box.less', './etc-blacklist.component.less'], styleUrls: ['../../../commom/less/commom-table.less'],
changeDetection: ChangeDetectionStrategy.OnPush changeDetection: ChangeDetectionStrategy.OnPush
}) })
export class ETCBlacklistComponent implements OnInit { export class ETCBlacklistComponent extends BasicTableComponent {
@ViewChild('st', { static: true }) @ViewChild('st', { static: true })
st!: STComponent; st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
tabs = [ tabs = [
{ {
name: '货主', name: '货主',
@ -32,15 +32,19 @@ export class ETCBlacklistComponent implements OnInit {
]; ];
tabType = 1; tabType = 1;
searchSchema: SFSchema = this.initSF(); schema: SFSchema = this.initSF();
columns: STColumn[] = this.initST(); columns: STColumn[] = this.initST();
selectedRows: any[] = []; selectedRows: any[] = [];
constructor(public service: TicketService, private nzModalService: NzModalService) {} constructor(public service: TicketService, private nzModalService: NzModalService, public searchDrawerService: SearchDrawerService) {
super(searchDrawerService);
}
ngOnInit(): void {} search() {
this.st?.load(1);
}
beforeReq = (requestOptions: STRequestOptions) => { beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) { if (this.sf) {
@ -63,6 +67,8 @@ export class ETCBlacklistComponent implements OnInit {
item.isActived = !item.isActived; item.isActived = !item.isActived;
// this.st.load(1); // this.st.load(1);
this.st.resetColumns(); this.st.resetColumns();
console.log(this.st);
}, 500); }, 500);
} }
@ -181,12 +187,6 @@ export class ETCBlacklistComponent implements OnInit {
nzOkText: '确定' nzOkText: '确定'
}); });
} }
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
}
private initSF(): SFSchema { private initSF(): SFSchema {
return { return {
@ -288,12 +288,14 @@ export class ETCBlacklistComponent implements OnInit {
className: 'text-center', className: 'text-center',
buttons: [ buttons: [
{ {
text: '删除', iif: () => this.tabType === 1, text: '删除',
iif: () => this.tabType === 1,
acl: { ability: ['TICKET-ETC-BLACK_LIST-deleteFreight'] }, acl: { ability: ['TICKET-ETC-BLACK_LIST-deleteFreight'] },
click: item => this.deleteAction(item) click: item => this.deleteAction(item)
}, },
{ {
text: '删除', iif: () => this.tabType === 2, text: '删除',
iif: () => this.tabType === 2,
acl: { ability: ['TICKET-ETC-BLACK_LIST-deleteCart'] }, acl: { ability: ['TICKET-ETC-BLACK_LIST-deleteCart'] },
click: item => this.deleteAction(item) click: item => this.deleteAction(item)
} }

View File

@ -1,14 +1,4 @@
<!-- <!-- <page-header-wrapper [title]="'运单开票记录'">
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-28 20:27:08
* @LastEditors : Shiming
* @LastEditTime : 2022-04-29 14:19:10
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\etc-invoiced-list\\etc-invoiced-list.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="'运单开票记录'">
</page-header-wrapper> </page-header-wrapper>
<nz-card class="search-box" nzBordered> <nz-card class="search-box" nzBordered>
@ -28,9 +18,18 @@
</button> </button>
</div> </div>
</div> </div>
</nz-card> </nz-card> -->
<nz-card class="content-box" nzBordered> <nz-card class="table-box">
<div class="header_box">
<label class="page_title"> <label class="driver">|</label> 运单开票记录</label>
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
[acl-ability]="['FINANCIAL-VOUCHER-list']">筛选</button>
<button nz-button nzDanger (click)="exprot()" acl
[acl-ability]="['TICKET-ETC-INVOICE-LIST-export']">导出</button>
</div>
</div>
<st #st [data]="service.$api_get_invoice_record_page" [columns]="columns" [req]="{ process: beforeReq }" <st #st [data]="service.$api_get_invoice_record_page" [columns]="columns" [req]="{ process: beforeReq }"
[page]="{}" [loading]="false" [scroll]="{ x:'1200px' }"> [page]="{}" [loading]="false" [scroll]="{ x:'1200px' }">

View File

@ -2,28 +2,34 @@ import { Component, OnInit, ViewChild } from '@angular/core';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st'; import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema } from '@delon/form'; import { SFComponent, SFSchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TicketService } from '../../services/ticket.service'; import { TicketService } from '../../services/ticket.service';
import { TransactionDetailsComponent } from './transaction-details/transaction-details.component'; import { TransactionDetailsComponent } from './transaction-details/transaction-details.component';
@Component({ @Component({
selector: 'app-etc-invoiced-list', selector: 'app-etc-invoiced-list',
templateUrl: './etc-invoiced-list.component.html', templateUrl: './etc-invoiced-list.component.html',
styleUrls: ['../../../commom/less/box.less'] styleUrls: ['../../../commom/less/commom-table.less']
}) })
export class ETCInvoicedListComponent implements OnInit { export class ETCInvoicedListComponent extends BasicTableComponent implements OnInit {
@ViewChild('st', { static: true }) @ViewChild('st', { static: true })
st!: STComponent; st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
columns: STColumn[] = this.initST(); columns: STColumn[] = this.initST();
searchSchema: SFSchema = this.initSF(); schema: SFSchema = this.initSF();
_$expand = false; constructor(public service: TicketService, private nzModalService: NzModalService, public searchDrawerService: SearchDrawerService) {
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {} super(searchDrawerService);
}
ngOnInit(): void {} ngOnInit(): void {}
search() {
this.st?.load(1);
}
beforeReq = (requestOptions: STRequestOptions) => { beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) { if (this.sf) {
Object.assign(requestOptions.body, { Object.assign(requestOptions.body, {
@ -52,22 +58,6 @@ export class ETCInvoicedListComponent implements OnInit {
}); });
} }
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
private initSF(): SFSchema { private initSF(): SFSchema {
return { return {
properties: { properties: {
@ -106,10 +96,7 @@ export class ETCInvoicedListComponent implements OnInit {
ui: { ui: {
widget: 'dict-select', widget: 'dict-select',
params: { dictKey: 'etc:invoicing:status' }, params: { dictKey: 'etc:invoicing:status' },
placeholder: '请选择', placeholder: '请选择'
visibleIf: {
expand: (value: boolean) => value
}
}, },
default: '' default: ''
}, },
@ -122,10 +109,7 @@ export class ETCInvoicedListComponent implements OnInit {
searchDebounceTime: 300, searchDebounceTime: 300,
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
allowClear: true, allowClear: true,
onSearch: (q: any) => this.service.getEnterpriceList({ enterpriseName: q }), onSearch: (q: any) => this.service.getEnterpriceList({ enterpriseName: q })
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
enterpriseInfoId: { enterpriseInfoId: {
@ -135,9 +119,6 @@ export class ETCInvoicedListComponent implements OnInit {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
allowClear: true, allowClear: true,
visibleIf: {
expand: (value: boolean) => value
},
asyncData: () => this.service.getNetworkFreightForwarder() asyncData: () => this.service.getNetworkFreightForwarder()
}, },
default: '' default: ''

View File

@ -1,17 +1,5 @@
<!-- <!-- <page-header-wrapper [title]="'已开发票'">
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-28 20:27:08
* @LastEditors : Shiming
* @LastEditTime : 2022-04-29 14:21:05
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\etc-invoiced-logs\\etc-invoiced-logs.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="'已开发票'">
</page-header-wrapper> </page-header-wrapper>
<nz-card class="search-box" nzBordered> <nz-card class="search-box" nzBordered>
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24"> <div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
@ -30,11 +18,19 @@
</button> </button>
</div> </div>
</div> </div>
</nz-card> </nz-card> -->
<nz-card class="content-box" nzBordered> <nz-card class="table-box">
<div class="header_box">
<label class="page_title"> <label class="driver">|</label> 已开发票</label>
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
<button nz-button nzDanger (click)="exportList()" acl
[acl-ability]="['TICKET-ETC-INVOICE-LOGS-export']">导出</button>
</div>
</div>
<st #st [data]="service.$api_get_invoice_logs_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}" <st #st [data]="service.$api_get_invoice_logs_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
[loading]="false" [scroll]="{ x:'1200px' }"> [loading]="false" [scroll]="{ x:'1200px',y:scrollY }">
<ng-template st-row="call3No" let-item let-index="index" let-column="column"> <ng-template st-row="call3No" let-item let-index="index" let-column="column">
{{item.driverName}}<br>{{item.driverCellphone}} {{item.driverName}}<br>{{item.driverCellphone}}
</ng-template> </ng-template>

View File

@ -1,28 +1,29 @@
import { Component, OnInit, ViewChild } from '@angular/core'; import { Component, ViewChild } from '@angular/core';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st'; import { STComponent, STColumn, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form'; import { SFSchema, SFDateWidgetSchema } from '@delon/form';
import { NzModalService } from 'ng-zorro-antd/modal'; import { SearchDrawerService } from '@shared';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TicketService } from '../../services/ticket.service'; import { TicketService } from '../../services/ticket.service';
@Component({ @Component({
selector: 'app-etc-invoiced-logs', selector: 'app-etc-invoiced-logs',
templateUrl: './etc-invoiced-logs.component.html', templateUrl: './etc-invoiced-logs.component.html',
styleUrls: ['../../../commom/less/box.less', '../../../commom/less/expend-but.less'] styleUrls: ['../../../commom/less/commom-table.less']
}) })
export class ETCInvoicedLogsComponent implements OnInit { export class ETCInvoicedLogsComponent extends BasicTableComponent {
@ViewChild('st', { static: true }) @ViewChild('st', { static: true })
st!: STComponent; st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
columns: STColumn[] = this.initST(); columns: STColumn[] = this.initST();
searchSchema: SFSchema = this.initSF(); schema: SFSchema = this.initSF();
_$expand = false; constructor(public service: TicketService, private router: Router, public searchDrawerService: SearchDrawerService) {
super(searchDrawerService);
}
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {} search() {
this.st?.load(1);
ngOnInit(): void {} }
beforeReq = (requestOptions: STRequestOptions) => { beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) { if (this.sf) {
@ -46,22 +47,6 @@ export class ETCInvoicedLogsComponent implements OnInit {
this.router.navigate(['/ticket/invoice-requested-detail/1']); this.router.navigate(['/ticket/invoice-requested-detail/1']);
} }
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
exportList() { exportList() {
const params = { listSource: 1, pageSize: -1 }; const params = { listSource: 1, pageSize: -1 };
if (this.sf) { if (this.sf) {
@ -107,10 +92,7 @@ export class ETCInvoicedLogsComponent implements OnInit {
type: 'string', type: 'string',
title: '车牌号', title: '车牌号',
ui: { ui: {
placeholder: '请输入', placeholder: '请输入'
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
exTime: { exTime: {
@ -118,10 +100,7 @@ export class ETCInvoicedLogsComponent implements OnInit {
type: 'string', type: 'string',
ui: { ui: {
widget: 'sl-from-to-search', widget: 'sl-from-to-search',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
visibleIf: {
expand: (value: boolean) => value
}
} as SFDateWidgetSchema } as SFDateWidgetSchema
}, },
invoiceMakeTime: { invoiceMakeTime: {
@ -129,20 +108,14 @@ export class ETCInvoicedLogsComponent implements OnInit {
type: 'string', type: 'string',
ui: { ui: {
widget: 'sl-from-to-search', widget: 'sl-from-to-search',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
visibleIf: {
expand: (value: boolean) => value
}
} as SFDateWidgetSchema } as SFDateWidgetSchema
}, },
sellerName: { sellerName: {
type: 'string', type: 'string',
title: '销售方', title: '销售方',
ui: { ui: {
placeholder: '请输入', placeholder: '请输入'
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
ltdId: { ltdId: {
@ -152,9 +125,6 @@ export class ETCInvoicedLogsComponent implements OnInit {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
allowClear: true, allowClear: true,
visibleIf: {
expand: (value: boolean) => value
},
asyncData: () => this.service.getNetworkFreightForwarder() asyncData: () => this.service.getNetworkFreightForwarder()
}, },
default: '' default: ''

View File

@ -1,14 +1,4 @@
<!-- <!-- <page-header-wrapper [title]="'申请记录'">
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-06 10:57:56
* @LastEditors : Shiming
* @LastEditTime : 2022-04-11 14:10:13
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\etc-invoiced-requested\\etc-invoiced-requested.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="'申请记录'">
</page-header-wrapper> </page-header-wrapper>
<nz-card class="search-box" nzBordered> <nz-card class="search-box" nzBordered>
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
@ -28,21 +18,36 @@
</button> </button>
</div> </div>
</div> </div>
</nz-card> </nz-card> -->
<nz-card class="content-box" nzBordered> <nz-card class="table-box">
<div class="header_box">
<label class="page_title"> <label class="driver">|</label> 申请记录</label>
<div class="d-flex align-items-center mr-sm">
<div class="mr-md">
已选择
<strong class="text-primary">{{ selectedRows.length }}</strong> 张发票
<a *ngIf="selectedRows.length > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
</div>
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
<button nz-button nzDanger (click)="exprot()" acl [acl-ability]="['TICKET-ETC-INVOICE-REQUESTED-export']">
导出</button>
<button nz-button nzType="primary" (click)="this.auditAction()" acl
[acl-ability]="['TICKET-ETC-INVOICE-REQUESTED-apply']">申请开票</button>
</div>
</div>
<div class="d-flex align-items-center mb-md mt-md"> <!-- <div class="d-flex align-items-center mb-md mt-md">
<button nz-button (click)="this.auditAction()" acl [acl-ability]="['TICKET-ETC-INVOICE-REQUESTED-apply']">申请开票</button> <button nz-button (click)="this.auditAction()" acl [acl-ability]="['TICKET-ETC-INVOICE-REQUESTED-apply']">申请开票</button>
<div class="ml-md"> <div class="ml-md">
已选择 已选择
<strong class="text-primary">{{ selectedRows.length }}</strong> 条运单 <strong class="text-primary">{{ selectedRows.length }}</strong> 条运单
<a *ngIf="selectedRows.length > 0" (click)="st.clearCheck()" class="ml-lg">清空</a> <a *ngIf="selectedRows.length > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
</div> </div>
</div> </div> -->
<st #st [data]="service.$api_get_apply_invoice_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}" <st #st [data]="service.$api_get_apply_invoice_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
[loading]="false" [scroll]="{ x:'1200px' }" (change)="stChange($event)"> [loading]="false" [scroll]="{ x:'1200px',y:scrollY }" (change)="stChange($event)">
<ng-template st-row="call1No" let-item let-index="index" let-column="column"> <ng-template st-row="call1No" let-item let-index="index" let-column="column">
{{item.driverName}}<br>{{item.driverPhone}} {{item.driverName}}<br>{{item.driverPhone}}
</ng-template> </ng-template>

View File

@ -2,30 +2,32 @@ import { Component, OnInit, ViewChild } from '@angular/core';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st'; import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form'; import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TicketService } from '../../services/ticket.service'; import { TicketService } from '../../services/ticket.service';
@Component({ @Component({
selector: 'app-etc-invoiced-requested', selector: 'app-etc-invoiced-requested',
templateUrl: './etc-invoiced-requested.component.html', templateUrl: './etc-invoiced-requested.component.html',
styleUrls: ['../../../commom/less/box.less', '../../../commom/less/expend-but.less'] styleUrls: ['../../../commom/less/commom-table.less']
}) })
export class ETCInvoicedRequestedComponent implements OnInit { export class ETCInvoicedRequestedComponent extends BasicTableComponent {
@ViewChild('st', { static: true }) @ViewChild('st', { static: true })
st!: STComponent; st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
@ViewChild('auditModal', { static: false }) @ViewChild('auditModal', { static: false })
auditModal!: any; auditModal!: any;
columns: STColumn[] = this.initST(); columns: STColumn[] = this.initST();
searchSchema: SFSchema = this.initSF(); schema: SFSchema = this.initSF();
_$expand = false;
selectedRows: any[] = []; selectedRows: any[] = [];
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {} constructor(public service: TicketService, private nzModalService: NzModalService, public searchDrawerService: SearchDrawerService) {
super(searchDrawerService);
}
ngOnInit(): void {} search() {
this.st?.load(1);
}
beforeReq = (requestOptions: STRequestOptions) => { beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) { if (this.sf) {
@ -68,22 +70,6 @@ export class ETCInvoicedRequestedComponent implements OnInit {
}); });
} }
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
private initSF(): SFSchema { private initSF(): SFSchema {
return { return {
properties: { properties: {
@ -123,9 +109,6 @@ export class ETCInvoicedRequestedComponent implements OnInit {
title: '司机姓名', title: '司机姓名',
ui: { ui: {
placeholder: '请输入', placeholder: '请输入',
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
driverPhone: { driverPhone: {
@ -133,9 +116,6 @@ export class ETCInvoicedRequestedComponent implements OnInit {
title: '司机手机', title: '司机手机',
ui: { ui: {
placeholder: '请输入', placeholder: '请输入',
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
licenseCarNo: { licenseCarNo: {
@ -143,9 +123,6 @@ export class ETCInvoicedRequestedComponent implements OnInit {
title: '车牌号', title: '车牌号',
ui: { ui: {
placeholder: '请输入', placeholder: '请输入',
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
licenseBelonging: { licenseBelonging: {
@ -153,9 +130,6 @@ export class ETCInvoicedRequestedComponent implements OnInit {
title: '车辆所有人', title: '车辆所有人',
ui: { ui: {
placeholder: '请输入', placeholder: '请输入',
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
dischargePlace: { dischargePlace: {
@ -164,9 +138,6 @@ export class ETCInvoicedRequestedComponent implements OnInit {
ui: { ui: {
autocomplete: 'off', autocomplete: 'off',
placeholder: '请选择', placeholder: '请选择',
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
loadingPlace: { loadingPlace: {
@ -175,9 +146,6 @@ export class ETCInvoicedRequestedComponent implements OnInit {
ui: { ui: {
autocomplete: 'off', autocomplete: 'off',
placeholder: '请选择', placeholder: '请选择',
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
shipperId: { shipperId: {
@ -190,9 +158,6 @@ export class ETCInvoicedRequestedComponent implements OnInit {
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
allowClear: true, allowClear: true,
onSearch: (q: any) => this.service.getEnterpriceList({ enterpriseName: q }), onSearch: (q: any) => this.service.getEnterpriceList({ enterpriseName: q }),
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
enterpriseInfoName: { enterpriseInfoName: {
@ -202,9 +167,6 @@ export class ETCInvoicedRequestedComponent implements OnInit {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
allowClear: true, allowClear: true,
visibleIf: {
expand: (value: boolean) => value
},
asyncData: () => this.service.getNetworkFreightForwarder() asyncData: () => this.service.getNetworkFreightForwarder()
}, },
default: '' default: ''

View File

@ -1,4 +1,4 @@
<page-header-wrapper title="快递信息"> <!-- <page-header-wrapper title="快递信息">
</page-header-wrapper> </page-header-wrapper>
<nz-card class="search-box"> <nz-card class="search-box">
@ -12,13 +12,19 @@
<button nz-button (click)="resetSF()">重置</button> <button nz-button (click)="resetSF()">重置</button>
</div> </div>
</div> </div>
</nz-card> </nz-card> -->
<nz-card class="content-box"> <nz-card class="table-box">
<div class="header_box">
<div class="mt-md mb-sm"> <label class="page_title"> <label class="driver">|</label> 快递信息</label>
<button nz-button nzType="primary" (click)="printOrder()" acl [acl-ability]="['TICKET-EXPRESS-INFO-print']">打印面单</button> <div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
[acl-ability]="['FINANCIAL-VOUCHER-list']">筛选</button>
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="openDrawer()" acl
[acl-ability]="['TICKET-EXPRESS-INFO-print']">筛选</button>
</div> </div>
<st #st [data]="url" [columns]="columns" [req]="{ process:beforeReq }" [loading]="false" [page]="{}" [scroll]="{x:'1200px'}" </div>
(change)="stChange($event)"></st>
<st #st [data]="url" [columns]="columns" [req]="{ process:beforeReq }" [loading]="false" [page]="{}"
[scroll]="{x:'1200px',y:scrollY}" (change)="stChange($event)"></st>
</nz-card> </nz-card>

View File

@ -1,34 +1,24 @@
/*
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-28 20:27:22
* @LastEditors : Shiming
* @LastEditTime : 2022-04-29 14:14:59
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\express-info\\express-info.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
import { Component, OnInit, ViewChild } from '@angular/core'; import { Component, OnInit, ViewChild } from '@angular/core';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st'; import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema } from '@delon/form'; import { SFComponent, SFDateWidgetSchema, SFSchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TicketService } from '../../services/ticket.service'; import { TicketService } from '../../services/ticket.service';
import { ExpressDetailModalComponent } from './express-detail-modal/express-detail-modal.component'; import { ExpressDetailModalComponent } from './express-detail-modal/express-detail-modal.component';
@Component({ @Component({
selector: 'app-express-info', selector: 'app-express-info',
templateUrl: './express-info.component.html', templateUrl: './express-info.component.html',
styleUrls: ['../../../commom/less/box.less'] styleUrls: ['../../../commom/less/commom-table.less']
}) })
export class ExpressInfoComponent implements OnInit { export class ExpressInfoComponent extends BasicTableComponent {
@ViewChild('st', { static: true }) @ViewChild('st', { static: true })
st!: STComponent; st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
url = `/api/fcc/ficoExpressH/getListPage`; url = `/api/fcc/ficoExpressH/getListPage`;
searchSchema: SFSchema = { schema: SFSchema = {
properties: { properties: {
expressCode: { expressCode: {
title: '快递单号', title: '快递单号',
@ -88,12 +78,16 @@ export class ExpressInfoComponent implements OnInit {
selectedRows: any[] = []; selectedRows: any[] = [];
reqParams = { pageIndex: 1, pageSize: 10 }; constructor(public service: TicketService, private nzModalService: NzModalService, public searchDrawerService: SearchDrawerService) {
super(searchDrawerService);
constructor(public service: TicketService, private nzModalService: NzModalService) {} }
ngOnInit(): void {} ngOnInit(): void {}
search() {
this.st?.load(1);
}
beforeReq = (requestOptions: STRequestOptions) => { beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) { if (this.sf) {
Object.assign(requestOptions.body, { Object.assign(requestOptions.body, {
@ -162,10 +156,4 @@ export class ExpressInfoComponent implements OnInit {
} }
}); });
} }
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
}
} }

View File

@ -1,4 +1,4 @@
<page-header-wrapper [title]="'进项发票'"> <!-- <page-header-wrapper [title]="'进项发票'">
</page-header-wrapper> </page-header-wrapper>
<nz-card class="search-box" nzBordered> <nz-card class="search-box" nzBordered>
@ -19,20 +19,36 @@
</button> </button>
</div> </div>
</div> </div>
</nz-card> </nz-card> -->
<nz-card class="content-box" nzBordered> <nz-card class="table-box">
<div class="header_box">
<label class="page_title"> <label class="driver">|</label> 进项发票</label>
<div class="d-flex align-items-center mr-sm">
<div class="mr-md">
已选择
<strong class="text-primary">{{ selectedRows.length }}</strong> 张发票
<a *ngIf="selectedRows.length > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
</div>
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
[acl-ability]="['FINANCIAL-VOUCHER-list']">筛选</button>
<button nz-button nzDanger acl [acl-ability]="['VEHICLE-LIST-search']"> 导出</button>
<button nz-button (click)="this.addInvoice()" nzType="primary" acl
[acl-ability]="['TICKET-INPUT-INVOICE-addInvoice']">添加发票</button>
</div>
</div>
<div class="d-flex align-items-center mb-md mt-md"> <!-- <div class="d-flex align-items-center mb-md mt-md">
<button nz-button (click)="this.addInvoice()" nzType="primary" acl [acl-ability]="['TICKET-INPUT-INVOICE-addInvoice']">添加发票</button> <button nz-button (click)="this.addInvoice()" nzType="primary" acl
[acl-ability]="['TICKET-INPUT-INVOICE-addInvoice']">添加发票</button>
<div class="ml-md"> <div class="ml-md">
已选择 已选择
<strong class="text-primary">{{ selectedRows.length }}</strong> 张发票 <strong class="text-primary">{{ selectedRows.length }}</strong> 张发票
<a *ngIf="selectedRows.length > 0" (click)="st.clearCheck()" class="ml-lg">清空</a> <a *ngIf="selectedRows.length > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
</div> </div>
</div> </div> -->
<st #st [data]="service.$api_get_input_invoice_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}" <st #st [data]="service.$api_get_input_invoice_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
[loading]="false" [scroll]="{ x:'1200px' }" (change)="stChange($event)"> [loading]="false" [scroll]="{ x:'1200px',y:scrollY }" (change)="stChange($event)">
</st> </st>
</nz-card> </nz-card>

View File

@ -1,32 +1,39 @@
import { Component, OnInit, ViewChild } from '@angular/core'; import { Component, ViewChild } from '@angular/core';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st'; import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema } from '@delon/form'; import { SFDateWidgetSchema, SFSchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TicketService } from '../../services/ticket.service'; import { TicketService } from '../../services/ticket.service';
import { AddCollectionInvoiceModalComponent } from './add-collection-invoice-modal/add-collection-invoice-modal.component'; import { AddCollectionInvoiceModalComponent } from './add-collection-invoice-modal/add-collection-invoice-modal.component';
@Component({ @Component({
selector: 'app-input-invoice', selector: 'app-input-invoice',
templateUrl: './input-invoice.component.html', templateUrl: './input-invoice.component.html',
styleUrls: ['../../../commom/less/box.less', '../../../commom/less/expend-but.less'] styleUrls: ['../../../commom/less/commom-table.less']
}) })
export class InputInvoiceComponent implements OnInit { export class InputInvoiceComponent extends BasicTableComponent {
@ViewChild('st', { static: true }) @ViewChild('st', { static: true })
st!: STComponent; st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
@ViewChild('auditModal', { static: false }) @ViewChild('auditModal', { static: false })
auditModal!: any; auditModal!: any;
columns: STColumn[] = this.initST(); columns: STColumn[] = this.initST();
searchSchema: SFSchema = this.initSF(); schema: SFSchema = this.initSF();
_$expand = false;
selectedRows: any[] = []; selectedRows: any[] = [];
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {} constructor(
public service: TicketService,
private nzModalService: NzModalService,
private router: Router,
public searchDrawerService: SearchDrawerService
) {
super(searchDrawerService);
}
ngOnInit(): void {} search() {
this.st?.load(1);
}
beforeReq = (requestOptions: STRequestOptions) => { beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) { if (this.sf) {
@ -66,22 +73,6 @@ export class InputInvoiceComponent implements OnInit {
}); });
} }
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
private initSF(): SFSchema { private initSF(): SFSchema {
return { return {
properties: { properties: {
@ -127,10 +118,7 @@ export class InputInvoiceComponent implements OnInit {
], ],
ui: { ui: {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择'
visibleIf: {
expand: (value: boolean) => value
}
}, },
default: '' default: ''
}, },
@ -141,10 +129,7 @@ export class InputInvoiceComponent implements OnInit {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
allowClear: true, allowClear: true,
asyncData: () => this.service.getCRMCustomerId(), asyncData: () => this.service.getCRMCustomerId()
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
createtime: { createtime: {
@ -152,10 +137,7 @@ export class InputInvoiceComponent implements OnInit {
type: 'string', type: 'string',
ui: { ui: {
widget: 'sl-from-to-search', widget: 'sl-from-to-search',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
visibleIf: {
expand: (value: boolean) => value
}
} as SFDateWidgetSchema } as SFDateWidgetSchema
}, },
sts: { sts: {
@ -168,10 +150,7 @@ export class InputInvoiceComponent implements OnInit {
], ],
ui: { ui: {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择'
visibleIf: {
expand: (value: boolean) => value
}
}, },
default: '' default: ''
}, },
@ -180,40 +159,28 @@ export class InputInvoiceComponent implements OnInit {
title: '发票日期', title: '发票日期',
ui: { ui: {
widget: 'sl-from-to-search', widget: 'sl-from-to-search',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
remarks: { remarks: {
type: 'string', type: 'string',
title: '收票备注', title: '收票备注',
ui: { ui: {
placeholder: '请输入', placeholder: '请输入'
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
billCode: { billCode: {
type: 'string', type: 'string',
title: '订单号', title: '订单号',
ui: { ui: {
placeholder: '请输入', placeholder: '请输入'
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
feecode: { feecode: {
type: 'string', type: 'string',
title: '费用号', title: '费用号',
ui: { ui: {
placeholder: '请输入', placeholder: '请输入'
visibleIf: {
expand: (value: boolean) => value
}
} }
} }
} }

View File

@ -1,16 +1,4 @@
<!-- <!-- <page-header-wrapper [title]="'开票申请'"> </page-header-wrapper>
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-01-21 15:39:30
* @LastEditors : Shiming
* @LastEditTime : 2022-04-29 13:55:16
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\invoice-requested\\invoice-requested.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="'开票申请'"> </page-header-wrapper>
<nz-card class="search-box" nzBordered> <nz-card class="search-box" nzBordered>
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24"> <div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
@ -27,9 +15,12 @@
</button> </button>
</div> </div>
</div> </div>
</nz-card> </nz-card> -->
<nz-card class="table-box">
<nz-card class="content-box" nzBordered> <div class="tab_header">
<label class="page_title">
<label class="driver">|</label>
开票申请</label>
<nz-tabset [nzTabBarExtraContent]="extraTemplate"> <nz-tabset [nzTabBarExtraContent]="extraTemplate">
<nz-tab nzTitle="待受理" (nzClick)="selectChange('1')"></nz-tab> <nz-tab nzTitle="待受理" (nzClick)="selectChange('1')"></nz-tab>
<nz-tab nzTitle="处理中" (nzClick)="selectChange('2')"></nz-tab> <nz-tab nzTitle="处理中" (nzClick)="selectChange('2')"></nz-tab>
@ -38,8 +29,10 @@
<nz-tab nzTitle="已受理" (nzClick)="selectChange('3')"></nz-tab> <nz-tab nzTitle="已受理" (nzClick)="selectChange('3')"></nz-tab>
<nz-tab nzTitle="全部" (nzClick)="selectChange(null)"></nz-tab> <nz-tab nzTitle="全部" (nzClick)="selectChange(null)"></nz-tab>
</nz-tabset> </nz-tabset>
</div>
<ng-template #extraTemplate> <ng-template #extraTemplate>
<div class="d-flex align-items-center" <div class="d-flex align-items-center mr-sm"
*ngIf="resourceStatus==='1'|| resourceStatus==='2' || resourceStatus==='3' || !resourceStatus"> *ngIf="resourceStatus==='1'|| resourceStatus==='2' || resourceStatus==='3' || !resourceStatus">
<div class="mr-md"> <div class="mr-md">
已选择 已选择
@ -47,17 +40,35 @@
<strong class="text-red">{{ totalCallNo }}</strong> <strong class="text-red">{{ totalCallNo }}</strong>
<a *ngIf="totalCallNo > 0" (click)="st.clearCheck();totalCallNo=0" class="ml-lg">清空</a> <a *ngIf="totalCallNo > 0" (click)="st.clearCheck();totalCallNo=0" class="ml-lg">清空</a>
</div> </div>
<button nz-button *ngIf="resourceStatus==='1' || !resourceStatus" (click)="this.batchRequested()" acl [acl-ability]="['TICKET-INVOICE-REQUESTED-userApply']">批量受理</button> <button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
<button nz-button *ngIf="resourceStatus==='1' || !resourceStatus" <button nz-button nzDanger (click)="exprot()" acl [acl-ability]="['TICKET-INVOICE-REQUESTED-export']"> 导出</button>
(click)="this.rejectAction(selectedRows)" acl [acl-ability]="['TICKET-INVOICE-REQUESTED-reject']">驳回</button> <button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
<button nz-button *ngIf="resourceStatus !=='4' && resourceStatus !=='5'" 更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
(click)="changeAddress(selectedRows)" acl [acl-ability]="['VEHICLE-LIST-search']">修改地址</button> <nz-dropdown-menu #menu="nzDropdownMenu">
<button nz-button *ngIf="resourceStatus==='3' || !resourceStatus" (click)="printOrder(selectedRows)" acl [acl-ability]="['VEHICLE-LIST-search']">快递下单</button> <ul nz-menu>
<li nz-menu-item *ngIf="resourceStatus==='1' || !resourceStatus" (click)="this.batchRequested()" acl
[acl-ability]="['TICKET-INVOICE-REQUESTED-userApply']">
批量受理
</li>
<li nz-menu-item *ngIf="resourceStatus==='1' || !resourceStatus" (click)="this.rejectAction(selectedRows)" acl
[acl-ability]="['TICKET-INVOICE-REQUESTED-reject']">
驳回
</li>
<li nz-menu-item *ngIf="resourceStatus !=='4' && resourceStatus !=='5'" (click)="changeAddress(selectedRows)"
acl [acl-ability]="['VEHICLE-LIST-search']">
修改地址
</li>
<li nz-menu-item *ngIf="resourceStatus==='3' || !resourceStatus" (click)="printOrder(selectedRows)" acl
[acl-ability]="['VEHICLE-LIST-search']">
快递下单
</li>
</ul>
</nz-dropdown-menu>
</div> </div>
</ng-template> </ng-template>
<st #st [data]="service.$api_get_invoice_requested_page" [columns]="columns" [req]="{ process: beforeReq }" <st #st [data]="service.$api_get_invoice_requested_page" [columns]="columns" [req]="{ process: beforeReq }"
[page]="{}" [res]="{ process: afterRes }" [loading]="false" [scroll]="{ x: '1200px' }" (change)="stChange($event)"> [page]="{}" [res]="{ process: afterRes }" [loading]="false" [scroll]="{ x: '1200px',y:scrollY }" (change)="stChange($event)">
<ng-template st-row="vatappcode" let-item let-index="index" let-column="column"> <ng-template st-row="vatappcode" let-item let-index="index" let-column="column">
{{ item.vatappcode }} <br /> {{ item.vatappcode }} <br />
<label class="text-primary">{{item.stsLabel}}</label> <label class="text-primary">{{item.stsLabel}}</label>

View File

@ -1,7 +0,0 @@
:host::ng-deep {
.ant-tabs-tab-btn {
padding-left : 16px;
padding-right: 16px;
}
}

View File

@ -1,11 +1,11 @@
import { query } from '@angular/animations';
import { CurrencyPipe } from '@angular/common';
import { Component, ViewChild } from '@angular/core'; import { Component, ViewChild } from '@angular/core';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st'; import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema, SFUISchema } from '@delon/form'; import { SFSchema, SFDateWidgetSchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { delay } from 'rxjs/operators'; import { delay } from 'rxjs/operators';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TicketService } from '../../services/ticket.service'; import { TicketService } from '../../services/ticket.service';
import { PrintOrderModalComponent } from './print-order-modal/print-order-modal.component'; import { PrintOrderModalComponent } from './print-order-modal/print-order-modal.component';
@ -15,26 +15,33 @@ import { UpdateAddressModalComponent } from './update-address-modal/update-addre
@Component({ @Component({
selector: 'app-invoice-requested', selector: 'app-invoice-requested',
templateUrl: './invoice-requested.component.html', templateUrl: './invoice-requested.component.html',
styleUrls: ['./invoice-requested.component.less', '../../../commom/less/box.less'] styleUrls: ['../../../commom/less/commom-table.less']
}) })
export class InvoiceRequestedComponent { export class InvoiceRequestedComponent extends BasicTableComponent {
@ViewChild('st', { static: true }) @ViewChild('st', { static: true })
st!: STComponent; st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
@ViewChild('rejectModal', { static: false }) @ViewChild('rejectModal', { static: false })
rejectModal!: any; rejectModal!: any;
resourceStatus: any = '1'; resourceStatus: any = '1';
columns: STColumn[] = this.initST(); columns: STColumn[] = this.initST();
searchSchema: SFSchema = this.initSF(); schema: SFSchema = this.initSF();
_$expand = false;
totalCallNo = 0; totalCallNo = 0;
selectedRows: any[] = []; selectedRows: any[] = [];
rejectReason = ''; rejectReason = '';
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {} constructor(
public service: TicketService,
private nzModalService: NzModalService,
private router: Router,
public searchDrawerService: SearchDrawerService
) {
super(searchDrawerService);
}
search() {
this.st?.load(1);
}
beforeReq = (requestOptions: STRequestOptions) => { beforeReq = (requestOptions: STRequestOptions) => {
if (this.resourceStatus) { if (this.resourceStatus) {
@ -300,22 +307,6 @@ export class InvoiceRequestedComponent {
} }
} }
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
// 导出 // 导出
exprot() { exprot() {
this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_export_invoice_requested_page); this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_export_invoice_requested_page);
@ -357,9 +348,6 @@ export class InvoiceRequestedComponent {
default: '', default: '',
ui: { ui: {
widget: 'select', widget: 'select',
visibleIf: {
expand: (value: boolean) => value
},
asyncData: () => this.service.getEnterpriseProject() asyncData: () => this.service.getEnterpriseProject()
} }
}, },
@ -369,9 +357,6 @@ export class InvoiceRequestedComponent {
ui: { ui: {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
visibleIf: {
expand: (value: boolean) => value
},
allowClear: true, allowClear: true,
asyncData: () => this.service.getNetworkFreightForwarder() asyncData: () => this.service.getNetworkFreightForwarder()
}, },
@ -379,12 +364,7 @@ export class InvoiceRequestedComponent {
}, },
otherremarks: { otherremarks: {
type: 'string', type: 'string',
title: '其他需求', title: '其他需求'
ui: {
visibleIf: {
expand: (value: boolean) => value
}
}
}, },
createTime: { createTime: {
title: '申请时间', title: '申请时间',
@ -393,10 +373,7 @@ export class InvoiceRequestedComponent {
widget: 'sl-from-to-search', widget: 'sl-from-to-search',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd',
placeholder: '请选择', placeholder: '请选择',
nzShowTime: true, nzShowTime: true
visibleIf: {
expand: (value: boolean) => value
}
} as SFDateWidgetSchema } as SFDateWidgetSchema
}, },
isdetail: { isdetail: {
@ -409,10 +386,7 @@ export class InvoiceRequestedComponent {
], ],
ui: { ui: {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择'
visibleIf: {
expand: (value: boolean) => value
}
}, },
default: '' default: ''
}, },
@ -425,10 +399,7 @@ export class InvoiceRequestedComponent {
searchDebounceTime: 300, searchDebounceTime: 300,
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
allowClear: true, allowClear: true,
onSearch: (q: any) => this.service.getEnterpriceList({ enterpriseName: q }), onSearch: (q: any) => this.service.getEnterpriceList({ enterpriseName: q })
visibleIf: {
expand: (value: boolean) => value
}
} }
} }
} }

View File

@ -1,14 +1,4 @@
<!-- <!-- <page-header-wrapper [title]="'已开发票'"> </page-header-wrapper>
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-01-19 20:19:59
* @LastEditors : Shiming
* @LastEditTime : 2022-01-26 14:27:32
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\invoiced-list\\invoiced-list.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="'已开发票'"> </page-header-wrapper>
<nz-card class="search-box" nzBordered> <nz-card class="search-box" nzBordered>
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
@ -19,17 +9,21 @@
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right"> <div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button> <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
<button nz-button (click)="resetSF()">重置</button> <button nz-button (click)="resetSF()">重置</button>
<!-- <button nz-button> 导出</button> -->
<button nz-button nzType="link" (click)="expandToggle()"> <button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }} {{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i> <i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
</button> </button>
</div> </div>
</div> </div>
</nz-card> </nz-card> -->
<nz-card nzBordered> <nz-card class="table-box">
<div class="d-flex align-items-center mb-md"> <div class="header_box">
<label class="page_title"> <label class="driver">|</label> 已开发票</label>
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
</div>
</div>
<!-- <button nz-button (click)="this.deletedInvoice()">作废发票</button> <!-- <button nz-button (click)="this.deletedInvoice()">作废发票</button>
<button nz-button (click)="this.invoiceHongChong()">发票红冲</button> --> <button nz-button (click)="this.invoiceHongChong()">发票红冲</button> -->
<!-- <div class="ml-md"> <!-- <div class="ml-md">
@ -38,10 +32,9 @@
<strong class="text-red">{{ totalCallNo }}</strong> <strong class="text-red">{{ totalCallNo }}</strong>
<a *ngIf="totalCallNo > 0" (click)="st.clearCheck()" class="ml-lg">清空</a> <a *ngIf="totalCallNo > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
</div> --> </div> -->
</div>
<st #st [data]="service.$api_get_invoice_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}" <st #st [data]="service.$api_get_invoice_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
[loading]="false" [scroll]="{ x: '1200px' }" (change)="stChange($event)"> [loading]="false" [scroll]="{ x: '1200px',y:scrollY }" (change)="stChange($event)">
<ng-template st-row="no" let-item let-index="index"> <ng-template st-row="no" let-item let-index="index">
{{ item.no }} {{ item.no }}
<a>预览发票</a> <a>预览发票</a>

View File

@ -1,27 +1,24 @@
import { CurrencyPipe } from '@angular/common'; import { Component, ViewChild } from '@angular/core';
import { Component, OnInit, ViewChild } from '@angular/core';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st'; import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form'; import { SFSchema, SFDateWidgetSchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TicketService } from '../../services/ticket.service'; import { TicketService } from '../../services/ticket.service';
@Component({ @Component({
selector: 'app-invoiced-list', selector: 'app-invoiced-list',
templateUrl: './invoiced-list.component.html', templateUrl: './invoiced-list.component.html',
styleUrls: ['../../../commom/less/box.less', '../../../commom/less/expend-but.less'] styleUrls: ['../../../commom/less/commom-table.less']
}) })
export class InvoicedListComponent implements OnInit { export class InvoicedListComponent extends BasicTableComponent {
@ViewChild('st', { static: true }) @ViewChild('st', { static: true })
st!: STComponent; st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
@ViewChild('logosticsLogsModal', { static: false }) @ViewChild('logosticsLogsModal', { static: false })
logosticsLogsModal!: any; logosticsLogsModal!: any;
columns: STColumn[] = this.initST(); columns: STColumn[] = this.initST();
searchSchema: SFSchema = this.initSF(); schema: SFSchema = this.initSF();
_$expand = false;
selectedRows: any[] = []; selectedRows: any[] = [];
totalCallNo = 0; totalCallNo = 0;
@ -34,12 +31,21 @@ export class InvoicedListComponent implements OnInit {
@ViewChild('requestedModal', { static: false }) @ViewChild('requestedModal', { static: false })
requestedModal!: any; requestedModal!: any;
openInfo: any = { expresscompany: null, expressno: null }; openInfo: any = { expresscompany: null, expressno: null };
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {} constructor(
public service: TicketService,
private nzModalService: NzModalService,
private router: Router,
public searchDrawerService: SearchDrawerService
) {
super(searchDrawerService);
}
ngOnInit(): void {} search() {
this.st?.load(1);
}
beforeReq = (requestOptions: STRequestOptions) => { beforeReq = (requestOptions: STRequestOptions) => {
Object.assign(requestOptions.body,{sts: '3'}) Object.assign(requestOptions.body, { sts: '3' });
if (this.sf) { if (this.sf) {
Object.assign(requestOptions.body, { Object.assign(requestOptions.body, {
...this.sf?.value, ...this.sf?.value,
@ -167,22 +173,6 @@ export class InvoicedListComponent implements OnInit {
}); });
} }
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
private initSF(): SFSchema { private initSF(): SFSchema {
return { return {
properties: { properties: {
@ -220,20 +210,14 @@ export class InvoicedListComponent implements OnInit {
widget: 'sl-from-to-search', widget: 'sl-from-to-search',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd',
placeholder: '请选择', placeholder: '请选择',
nzShowTime: true, nzShowTime: true
visibleIf: {
expand: (value: boolean) => value
}
} as SFDateWidgetSchema } as SFDateWidgetSchema
}, },
artoname: { artoname: {
type: 'string', type: 'string',
title: '购买人', title: '购买人',
ui: { ui: {
placeholder: '请输入', placeholder: '请输入'
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
ltdId: { ltdId: {
@ -243,9 +227,6 @@ export class InvoicedListComponent implements OnInit {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
allowClear: true, allowClear: true,
visibleIf: {
expand: (value: boolean) => value
},
asyncData: () => this.service.getNetworkFreightForwarder({}, true) asyncData: () => this.service.getNetworkFreightForwarder({}, true)
}, },
default: '' default: ''
@ -254,10 +235,7 @@ export class InvoicedListComponent implements OnInit {
type: 'string', type: 'string',
title: '分票编号', title: '分票编号',
ui: { ui: {
placeholder: '请输入', placeholder: '请输入'
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
invoicetype: { invoicetype: {
@ -269,10 +247,7 @@ export class InvoicedListComponent implements OnInit {
], ],
ui: { ui: {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择'
visibleIf: {
expand: (value: boolean) => value
}
}, },
default: '' default: ''
} }

View File

@ -36,10 +36,39 @@
</ng-template> </ng-template>
</page-header-wrapper> </page-header-wrapper>
<nz-card [nzLoading]="service.http.loading"> <nz-card [nzLoading]="service.http.loading" [nzBorderless]="true">
<div class="mb-md">
<div class="font-weight-blod text-md detail-title" style="justify-content: space-between;">
<div>
<a class="sign"></a>
<span>个人信息</span>
<label *ngIf="userIdentityDetail?.certificationStatus === 1" style="color: #52c41a" class="ml-md"><i nz-icon
nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label>
<label *ngIf="userIdentityDetail?.certificationStatus === 2" style="color: #ff4d4f" class="ml-md"><i nz-icon
nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回
</label>
</div>
<div>
<ng-container *ngIf="isEditUser; else elseTemplate">
<button [nzLoading]="service.http.loading" nz-button (click)="reset()"> 取消 </button>
<button [nzLoading]="service.http.loading" nz-button nzDanger (click)="saveUser()"> 保存 </button>
</ng-container>
<ng-template #elseTemplate>
<button nz-button nzType="default" nzDanger (click)="approveUser()"
*ngIf="userIdentityDetail?.certificationStatus === 0" acl
[acl-ability]="['USERCENTER-DRIVER-CAPTAIN-DETAIL-audit']">审核通过</button>
<button nz-button nzType="default" nzDanger (click)="rejectedUser()"
*ngIf="userIdentityDetail?.certificationStatus === 0" acl
[acl-ability]="['USERCENTER-DRIVER-CAPTAIN-DETAIL-audit']">驳回审核</button>
<button nz-button nzType="default" nzDanger (click)="ratify()" acl
[acl-ability]="['USERCENTER-DRIVER-CAPTAIN-DETAIL-edit']">修改</button>
</ng-template>
</div>
</div>
<div [class]="isEditUser ? 'edit-box' : 'readOnly-box'"> <div [class]="isEditUser ? 'edit-box' : 'readOnly-box'">
<sv-container col="2"> <sv-container col="2">
<sv-title>个人信息 <!-- <sv-title>个人信息
<label *ngIf="userIdentityDetail?.certificationStatus === 1" style="color: #52c41a" class="ml-md"><i nz-icon <label *ngIf="userIdentityDetail?.certificationStatus === 1" style="color: #52c41a" class="ml-md"><i nz-icon
nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过 nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label> </label>
@ -62,7 +91,7 @@
[acl-ability]="['USERCENTER-DRIVER-CAPTAIN-DETAIL-edit']">修改</button> [acl-ability]="['USERCENTER-DRIVER-CAPTAIN-DETAIL-edit']">修改</button>
</ng-template> </ng-template>
</div> </div>
</sv-title> </sv-title> -->
<sv label="姓名"> <sv label="姓名">
<input nz-input type="text" [(ngModel)]="userIdentityDetail.name" [readonly]="!isEditUser" <input nz-input type="text" [(ngModel)]="userIdentityDetail.name" [readonly]="!isEditUser"
[nzBorderless]="!isEditUser" [placeholder]="isEditUser ? '' : '-'" /> [nzBorderless]="!isEditUser" [placeholder]="isEditUser ? '' : '-'" />
@ -99,9 +128,17 @@
</sv> </sv>
</sv-container> </sv-container>
</div> </div>
</div>
<div>
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>银行结算信息</span>
<ng-container *ngIf="bankList?.length===0">(暂无银行信息)</ng-container>
</div>
<sv-container col="3" class="mt-md"> <sv-container col="3" class="mt-md">
<sv-title>银行结算信息<ng-container *ngIf="bankList?.length===0">(暂无银行信息)</ng-container></sv-title> <!-- <sv-title>银行结算信息<ng-container *ngIf="bankList?.length===0">(暂无银行信息)</ng-container>
</sv-title> -->
<ng-container *ngFor="let item of bankList"> <ng-container *ngFor="let item of bankList">
<sv label="开户银行"> <sv label="开户银行">
{{ item.bankName }} {{ item.bankName }}
@ -112,6 +149,7 @@
</ng-container> </ng-container>
</sv-container> </sv-container>
</div>
</nz-card> </nz-card>
<ng-template #redectModal> <ng-template #redectModal>

View File

@ -1,39 +1,14 @@
<!-- <!-- <page-header-wrapper></page-header-wrapper>
* @Author: your name
* @Date: 2021-11-29 15:22:34
* @LastEditTime : 2022-02-16 09:58:52
* @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\routes\\usercenter\\components\\driver\\captain\\captain.component.html
-->
<!-- 页头 -->
<page-header-wrapper></page-header-wrapper>
<nz-card> <nz-card>
<!-- 搜索区 -->
<!-- 搜索表单 -->
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24"> <div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div> </div>
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right"> <div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
<button <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)" acl
nz-button [acl-ability]="['USERCENTER-DRIVER-CAPTAIN-list']">查询</button>
nzType="primary" <button nz-button nzType="primary" [disabled]="false" (click)="exportList()" acl
[nzLoading]="service.http.loading" [acl-ability]="['USERCENTER-DRIVER-CAPTAIN-export']">导出</button>
(click)="st?.load(1)"
acl
[acl-ability]="['USERCENTER-DRIVER-CAPTAIN-list']"
>查询</button
>
<button
nz-button
nzType="primary"
[disabled]="false"
(click)="exportList()"
acl
[acl-ability]="['USERCENTER-DRIVER-CAPTAIN-export']"
>导出</button
>
<button nz-button (click)="resetSF()" [disabled]="false">重置</button> <button nz-button (click)="resetSF()" [disabled]="false">重置</button>
<button nz-button nzType="link" (click)="expandToggle()"> <button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }} {{ !_$expand ? '展开' : '收起' }}
@ -41,23 +16,22 @@
</button> </button>
</div> </div>
</div> </div>
</nz-card> </nz-card> -->
<nz-card> <nz-card class="table-box">
<!-- 数据列表 --> <div class="header_box">
<!-- 工具栏 --> <label class="page_title"> <label class="driver">|</label> 车队长列表</label>
<div class="toolbar" style="float: right; <div class="mr-sm">
padding-bottom: 15px;"> <button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
<button nz-button nzType="primary" (click)="add()">添加车队长</button> [acl-ability]="['USERCENTER-DRIVER-CAPTAIN-list']">筛选</button>
<button nz-button nzDanger (click)="exportList()" acl [acl-ability]="['USERCENTER-DRIVER-CAPTAIN-export']">
导出</button>
<button nz-button nzType="primary" (click)="add()" acl
[acl-ability]="['USERCENTER-DRIVER-CAPTAIN-add']">添加车队长</button>
</div> </div>
<st </div>
#st <!-- 数据列表 -->
[columns]="columns" <st #st [columns]="columns" [data]="service.$api_get_user_expand" [req]="{ params: reqParams }"
[data]="service.$api_get_user_expand" [res]="{ process: dataProcess }" [page]="{ }" [loading]="false" [scroll]="{ x: '1200px',y:scrollY }">
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' }, process: dataProcess }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loading]="false"
>
<ng-template st-row="promotersTelephone" let-item let-index="index"> <ng-template st-row="promotersTelephone" let-item let-index="index">
<a (click)="addPromoter(item)" acl [acl-ability]="['USERCENTER-DRIVER-CAPTAIN-promoter']"> <a (click)="addPromoter(item)" acl [acl-ability]="['USERCENTER-DRIVER-CAPTAIN-promoter']">
{{ item.promotersTelephone || '添加' }} {{ item.promotersTelephone || '添加' }}

View File

@ -3,29 +3,39 @@ import { ActivatedRoute, Router } from '@angular/router';
import { STColumn, STColumnBadge, STComponent, STData } from '@delon/abc/st'; import { STColumn, STColumnBadge, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFSchema, SFUISchema } from '@delon/form'; import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
import { ModalHelper } from '@delon/theme'; import { ModalHelper } from '@delon/theme';
import { DynamicSettingModalComponent } from '@shared'; import { DynamicSettingModalComponent, SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { UsermanageService } from '../../../services/usercenter.service'; import { UsermanageService } from '../../../services/usercenter.service';
import { CtcCaptatinAddComponent } from './add/add.component'; import { CtcCaptatinAddComponent } from './add/add.component';
@Component({ @Component({
selector: 'app-usercenter-components-driver-captain', selector: 'app-usercenter-components-driver-captain',
templateUrl: './captain.component.html', templateUrl: './captain.component.html',
styleUrls: ['./captain.component.less'] styleUrls: ['../../../../commom/less/commom-table.less']
}) })
export class UserCenterComponentsDriverCaptainComponent implements OnInit { export class UserCenterComponentsDriverCaptainComponent extends BasicTableComponent implements OnInit {
_$expand = false;
ui: SFUISchema = { '*': { spanLabelFixed: 120, grid: { lg: 8, md: 12, sm: 12, xs: 24 } } };
schema: SFSchema = this.initSF(); schema: SFSchema = this.initSF();
columns: STColumn[] = this.initST(); columns: STColumn[] = this.initST();
@ViewChild('st', { static: false }) st!: STComponent; @ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
@ViewChild('promoterModal', { static: false }) @ViewChild('promoterModal', { static: false })
promoterModal!: any; promoterModal!: any;
promotersTelephone = ''; promotersTelephone = '';
constructor(public service: UsermanageService, private modal: NzModalService, private router: Router, private ar: ActivatedRoute, private modalHelper: ModalHelper,) {} constructor(
public service: UsermanageService,
private modal: NzModalService,
private router: Router,
private ar: ActivatedRoute,
private modalHelper: ModalHelper,
public searchDrawerService: SearchDrawerService
) {
super(searchDrawerService);
}
search() {
this.st?.load(1);
}
/** /**
* 查询参数 * 查询参数
@ -98,19 +108,6 @@ export class UserCenterComponentsDriverCaptainComponent implements OnInit {
}); });
} }
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
exportList() { exportList() {
const params = this.reqParams; const params = this.reqParams;
this.service.downloadFile(this.service.$api_export_driver_cap, { ...params, pageSize: -1 }); this.service.downloadFile(this.service.$api_export_driver_cap, { ...params, pageSize: -1 });
@ -146,10 +143,7 @@ export class UserCenterComponentsDriverCaptainComponent implements OnInit {
type: 'string', type: 'string',
maxLength: 11, maxLength: 11,
ui: { ui: {
placeholder: '请输入', placeholder: '请输入'
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
identityStatus: { identityStatus: {
@ -163,10 +157,7 @@ export class UserCenterComponentsDriverCaptainComponent implements OnInit {
], ],
default: '', default: '',
ui: { ui: {
widget: 'select', widget: 'select'
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
source: { source: {
@ -176,14 +167,11 @@ export class UserCenterComponentsDriverCaptainComponent implements OnInit {
{ label: '全部', value: '' }, { label: '全部', value: '' },
{ label: '用户注册', value: 1 }, { label: '用户注册', value: 1 },
{ label: '货主添加', value: 2 }, { label: '货主添加', value: 2 },
{ label: '运营添加', value: 3 }, { label: '运营添加', value: 3 }
], ],
default: '', default: '',
ui: { ui: {
widget: 'select', widget: 'select'
visibleIf: {
expand: (value: boolean) => value
}
} }
} }
} }
@ -222,7 +210,7 @@ export class UserCenterComponentsDriverCaptainComponent implements OnInit {
this.router.navigate(['/usercenter/driver/captain/detail', item.appUserId]); this.router.navigate(['/usercenter/driver/captain/detail', item.appUserId]);
}, },
acl: { ability: ['USERCENTER-DRIVER-CAPTAIN-view'] } acl: { ability: ['USERCENTER-DRIVER-CAPTAIN-view'] }
}, }
// { // {
// text: '基础设置', // text: '基础设置',
// click: item => this.settingAction(item), // click: item => this.settingAction(item),

View File

@ -39,10 +39,60 @@
</page-header-wrapper> </page-header-wrapper>
<nz-card [nzLoading]="service.http.loading"> <nz-card [nzLoading]="service.http.loading" [nzBorderless]="true">
<div class="mb-md">
<div class="font-weight-blod text-md detail-title" style="justify-content: space-between;">
<div>
<a class="sign"></a>
<span>个人信息</span>
<label *ngIf="userIdentityDetail?.certificationStatus===1" style="color: #52c41a;" class="ml-md"><i nz-icon
nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label>
<label *ngIf="userIdentityDetail?.certificationStatus===2" style="color: #ff4d4f;" class="ml-md"><i nz-icon
nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回 驳回原因:{{userIdentityDetail?.certificationOpinions}}
</label>
<label *ngIf="faceStatus == 1" style="color: #bec8c8; position: relative;
bottom: 2px;" class="ml-md"><i nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs">人脸识别结果:已发起</i>
</label>
<label *ngIf="faceStatus == 0" style="color: #bec8c8; position: relative;
bottom: 2px;" class="ml-md"><i nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs">人脸识别结果:无</i>
</label>
<label *ngIf="faceStatus == 2" style="color: #bec8c8; position: relative;
bottom: 2px;" class="ml-md"><i nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs">人脸识别结果:进行中</i>
</label>
<label *ngIf="faceStatus == 3" style="color: #52c41a; position: relative;
bottom: 2px;" class="ml-md"><i nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs">人脸识别结果:已成功</i>
</label>
<label *ngIf="faceStatus == 4" style="color: #ff4d4f; position: relative;
bottom: 2px;" class="ml-md"><i nz-icon nzType="check-circle" nzTheme="fill"
class="mr-xs">人脸识别结果:已失败;失败原因:{{facetext}}</i>
</label>
</div>
<div style="float: right;">
<ng-container *ngIf="isEditUser; else elseTemplate">
<button [disabled]="false" nz-button (click)="reset(0)">
取消
</button>
<button [disabled]="false" nz-button nzDanger (click)="saveUser()">
保存
</button>
</ng-container>
<ng-template #elseTemplate>
<button nz-button nzType="default" nzDanger (click)="approveUser()"
*ngIf="userIdentityDetail?.certificationStatus===0" acl
[acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-auditUser']">审核通过</button>
<button nz-button nzType="default" nzDanger (click)="rejectedUser()"
*ngIf="userIdentityDetail?.certificationStatus===0" acl
[acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-auditUser']">驳回审核</button>
<button nz-button nzType="default" nzDanger (click)="ratify(0)" acl
[acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-editUser']">修改</button>
</ng-template>
</div>
</div>
<div [class]="isEditUser?'edit-box':'readOnly-box'"> <div [class]="isEditUser?'edit-box':'readOnly-box'">
<sv-container col="2"> <sv-container col="2">
<sv-title>个人信息 <!-- <sv-title>个人信息
<label *ngIf="userIdentityDetail?.certificationStatus===1" style="color: #52c41a;" class="ml-md"><i nz-icon <label *ngIf="userIdentityDetail?.certificationStatus===1" style="color: #52c41a;" class="ml-md"><i nz-icon
nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过 nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label> </label>
@ -85,7 +135,7 @@
[acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-editUser']">修改</button> [acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-editUser']">修改</button>
</ng-template> </ng-template>
</div> </div>
</sv-title> </sv-title> -->
<sv label="姓名"> <sv label="姓名">
<input nz-input type="text" [(ngModel)]="userIdentityDetail.name" [readonly]="!isEditUser" <input nz-input type="text" [(ngModel)]="userIdentityDetail.name" [readonly]="!isEditUser"
[nzBorderless]="!isEditUser" [placeholder]="isEditUser?'':'-'"> [nzBorderless]="!isEditUser" [placeholder]="isEditUser?'':'-'">
@ -96,14 +146,16 @@
</sv> </sv>
<sv label="有效期" col="1"> <sv label="有效期" col="1">
<nz-date-picker [(ngModel)]="userIdentityDetail.validStartTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" " <nz-date-picker [(ngModel)]="userIdentityDetail.validStartTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" "
[nzBorderless]="!isEditUser" [nzSuffixIcon]="isEditUser?'calendar':''" style="width: 110px;" class="calendar"> [nzBorderless]="!isEditUser" [nzSuffixIcon]="isEditUser?'calendar':''" style="width: 110px;"
class="calendar">
</nz-date-picker> </nz-date-picker>
- -
<ng-container *ngIf="!isEditUser && !userIdentityDetail?.validEndTime && userIdentityDetail?.validStartTime"> <ng-container *ngIf="!isEditUser && !userIdentityDetail?.validEndTime && userIdentityDetail?.validStartTime">
<label style="padding-left: 11px;">长期</label> <label style="padding-left: 11px;">长期</label>
</ng-container> </ng-container>
<nz-date-picker [(ngModel)]="userIdentityDetail.validEndTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" " <nz-date-picker [(ngModel)]="userIdentityDetail.validEndTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" "
[nzBorderless]="!isEditUser" [nzSuffixIcon]="isEditUser?'calendar':''" style="width: 110px;" class="calendar"> [nzBorderless]="!isEditUser" [nzSuffixIcon]="isEditUser?'calendar':''" style="width: 110px;"
class="calendar">
</nz-date-picker> </nz-date-picker>
<ng-container *ngIf="isEditUser"> <ng-container *ngIf="isEditUser">
<label nz-checkbox [ngModel]="!!!userIdentityDetail.validEndTime" <label nz-checkbox [ngModel]="!!!userIdentityDetail.validEndTime"
@ -123,11 +175,42 @@
</sv> </sv>
</sv-container> </sv-container>
</div> </div>
</div>
<nz-divider></nz-divider> <div class="mb-md">
<div class="font-weight-blod text-md detail-title" style="justify-content: space-between;">
<div>
<a class="sign"></a>
<span>驾驶证信息</span>
<label *ngIf="driverDetail?.approvalStatus===20" style="color: #52c41a;" class="ml-md"><i nz-icon
nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label>
<label *ngIf="driverDetail?.approvalStatus===30" style="color: #ff4d4f;" class="ml-md"><i nz-icon
nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回
</label>
</div>
<div>
<ng-container *ngIf="isEditDriver;else editDriverButton">
<button [disabled]="false" nz-button (click)="reset(1)">
取消
</button>
<button [disabled]="false" nz-button nzDanger (click)="saveDriver()">
保存
</button>
</ng-container>
<ng-template #editDriverButton>
<button *ngIf="driverDetail?.approvalStatus==10" nz-button nzType="default" nzDanger (click)="approveDriver()"
acl [acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-auditDriver']">审核通过</button>
<button *ngIf="driverDetail?.approvalStatus==10" nz-button nzType="default" nzDanger
(click)="rejectedDriver()" acl [acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-auditDriver']">驳回审核</button>
<button nz-button nzType="default" nzDanger (click)="ratify(1)" acl
[acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-editDriver']">修改</button>
</ng-template>
</div>
</div>
<div [class]="isEditDriver?'edit-box':'readOnly-box'"> <div [class]="isEditDriver?'edit-box':'readOnly-box'">
<sv-container col="3" class="mt16"> <sv-container col="3" class="mt16">
<sv-title>驾驶证信息 <!-- <sv-title>驾驶证信息
<label *ngIf="driverDetail?.approvalStatus===20" style="color: #52c41a;" class="ml-md"><i nz-icon <label *ngIf="driverDetail?.approvalStatus===20" style="color: #52c41a;" class="ml-md"><i nz-icon
nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过 nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label> </label>
@ -152,7 +235,7 @@
[acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-editDriver']">修改</button> [acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-editDriver']">修改</button>
</ng-template> </ng-template>
</div> </div>
</sv-title> </sv-title> -->
<sv label="驾驶证号"> <sv label="驾驶证号">
<input nz-input type="text" [(ngModel)]="driverDetail.licenseNo" [readonly]="!isEditDriver" <input nz-input type="text" [(ngModel)]="driverDetail.licenseNo" [readonly]="!isEditDriver"
[nzBorderless]="!isEditDriver" [placeholder]="isEditDriver?'':'-'"> [nzBorderless]="!isEditDriver" [placeholder]="isEditDriver?'':'-'">
@ -207,17 +290,28 @@
</ng-container> </ng-container>
</sv> </sv>
</sv-container> </sv-container>
</div>
<nz-divider></nz-divider> </div>
<sv-container col="3" class="mt16"> <div class="mb-md">
<sv-title>从业资格证信息 <div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>从业资格证信息</span>
<label *ngIf="licenseDetail?.approvalStatus===20" style="color: #52c41a;" class="ml-md"> <label *ngIf="licenseDetail?.approvalStatus===20" style="color: #52c41a;" class="ml-md">
<i nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过 <i nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label> </label>
<label *ngIf="licenseDetail?.approvalStatus===30" style="color: #ff4d4f;" class="ml-md"> <label *ngIf="licenseDetail?.approvalStatus===30" style="color: #ff4d4f;" class="ml-md">
<i nz-icon nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回 <i nz-icon nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回
</label> </label>
</sv-title> </div>
<sv-container col="3" class="mt16">
<!-- <sv-title>从业资格证信息
<label *ngIf="licenseDetail?.approvalStatus===20" style="color: #52c41a;" class="ml-md">
<i nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label>
<label *ngIf="licenseDetail?.approvalStatus===30" style="color: #ff4d4f;" class="ml-md">
<i nz-icon nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回
</label>
</sv-title> -->
<sv label="从业资格证号"> <sv label="从业资格证号">
<input nz-input type="text" [(ngModel)]="licenseDetail.licenseNo" [readonly]="!isEditDriver" <input nz-input type="text" [(ngModel)]="licenseDetail.licenseNo" [readonly]="!isEditDriver"
[nzBorderless]="!isEditDriver" [placeholder]="isEditDriver?'':'-'"> [nzBorderless]="!isEditDriver" [placeholder]="isEditDriver?'':'-'">
@ -262,9 +356,14 @@
</sv-container> </sv-container>
</div> </div>
<nz-divider></nz-divider> <div class="mb-md">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>载具信息</span>
<ng-container *ngIf="carList?.length===0">(暂无载具信息)</ng-container>
</div>
<sv-container col="3" class="mt16"> <sv-container col="3" class="mt16">
<sv-title>载具信息</sv-title> <!-- <sv-title>载具信息</sv-title> -->
<ng-container *ngFor="let carDatail of carList"> <ng-container *ngFor="let carDatail of carList">
<sv label="车牌号"> <sv label="车牌号">
{{ carDatail?.carNo }} {{ carDatail?.carNo }}
@ -285,7 +384,8 @@
{{ carDatail?.isSelf?'否':'是' }} {{ carDatail?.isSelf?'否':'是' }}
</sv> </sv>
<sv label="行驶证照片" col="1"> <sv label="行驶证照片" col="1">
<app-imagelist [imgList]="[carDatail?.certificatePhotoFrontWatermark,carDatail?.certificatePhotoBackWatermark]"> <app-imagelist
[imgList]="[carDatail?.certificatePhotoFrontWatermark,carDatail?.certificatePhotoBackWatermark]">
</app-imagelist> </app-imagelist>
</sv> </sv>
<sv label="道路运输证照片" col="3"> <sv label="道路运输证照片" col="3">
@ -298,10 +398,17 @@
</ng-container> </ng-container>
</sv-container> </sv-container>
</div>
<div class="mb-md">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>银行结算信息</span>
<ng-container *ngIf="bankList?.length===0">(暂无银行信息)</ng-container>
</div>
<sv-container col="3" class="mt-md"> <sv-container col="3" class="mt-md">
<sv-title>银行结算信息 <ng-container *ngIf="bankList?.length===0">(暂无银行信息)</ng-container> <!-- <sv-title>银行结算信息 <ng-container *ngIf="bankList?.length===0">(暂无银行信息)</ng-container>
</sv-title> </sv-title> -->
<ng-container *ngFor="let item of bankList"> <ng-container *ngFor="let item of bankList">
<sv label="开户银行"> <sv label="开户银行">
{{ item.bankName }} {{ item.bankName }}
@ -311,24 +418,33 @@
</sv> </sv>
</ng-container> </ng-container>
</sv-container> </sv-container>
</div>
<nz-divider></nz-divider> <div class="mb-md">
<sv-container col="3" class="mt-md"> <div class="font-weight-blod text-md detail-title">
<sv-title>服务评级 <a class="sign"></a>
<span>服务评级</span>
<ng-container *ngIf="billEvaluateList?.length===0">(暂无评级)</ng-container> <ng-container *ngIf="billEvaluateList?.length===0">(暂无评级)</ng-container>
</sv-title> </div>
<sv-container col="3" class="mt-md">
<!-- <sv-title>服务评级
<ng-container *ngIf="billEvaluateList?.length===0">(暂无评级)</ng-container>
</sv-title> -->
<sv [label]="item.evaluateTypeLabel" *ngFor="let item of billEvaluateList"> <sv [label]="item.evaluateTypeLabel" *ngFor="let item of billEvaluateList">
<nz-rate [ngModel]="item.evaluateFraction" nzDisabled></nz-rate> <nz-rate [ngModel]="item.evaluateFraction" nzDisabled></nz-rate>
</sv> </sv>
</sv-container> </sv-container>
</div>
<sv-container col="3" class="mt-md"> <div class="mb-md">
<sv-title>关联企业</sv-title> <div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>关联企业</span>
</div>
<st #st [columns]="columns" [data]="service.$api_get_driver_projects" size="small" <st #st [columns]="columns" [data]="service.$api_get_driver_projects" size="small"
[req]="{ method: 'POST', allInBody: true, params: {appUserId:route.snapshot.params.id} }" [page]="{ show: false }" [req]="{ method: 'POST', allInBody: true, params: {appUserId:route.snapshot.params.id} }" [page]="{ show: false }"
[res]="{ reName: { list: 'data' } }" style="width: 100%;"> [res]="{ reName: { list: 'data' } }" style="width: 100%;">
</st> </st>
</sv-container> </div>
</nz-card> </nz-card>

View File

@ -1,16 +1,5 @@
<!-- <!-- <page-header-wrapper></page-header-wrapper>
* @Author: your name
* @Date: 2021-11-29 15:22:34
* @LastEditTime : 2022-03-09 16:04:08
* @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\routes\\usercenter\\components\\driver\\driver-config\\driver-config.component.html
-->
<!-- 页头 -->
<page-header-wrapper></page-header-wrapper>
<nz-card> <nz-card>
<!-- 搜索区 -->
<!-- 搜索表单 -->
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col [nzXl]=" 18" [nzLg]="24" [nzSm]="24" [nzXs]="24"> <div nz-col [nzXl]=" 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
<sf #sf [schema]="schema" [ui]="{ '*': { spanLabelFixed: 120, grid: { lg: 8, md: 12, sm: 12, xs: 24 } } }" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="{ '*': { spanLabelFixed: 120, grid: { lg: 8, md: 12, sm: 12, xs: 24 } } }" [compact]="true" [button]="'none'"></sf>
@ -21,17 +10,22 @@
<button nz-button nzType="primary" [disabled]="false" (click)="exportList()" acl <button nz-button nzType="primary" [disabled]="false" (click)="exportList()" acl
[acl-ability]="['USERCENTER-DRIVER-CONFIG-export']">导出</button> [acl-ability]="['USERCENTER-DRIVER-CONFIG-export']">导出</button>
<button nz-button (click)="resetSF()" [disabled]="false">重置</button> <button nz-button (click)="resetSF()" [disabled]="false">重置</button>
<!-- <button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
</button> -->
</div> </div>
</div> </div>
</nz-card> </nz-card> -->
<nz-card> <nz-card class="table-box">
<div class="header_box">
<label class="page_title"> <label class="driver">|</label> 司机配置</label>
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
[acl-ability]="['USERCENTER-DRIVER-CONFIG-search']">筛选</button>
<button nz-button nzDanger (click)="exportList()" acl [acl-ability]="['USERCENTER-DRIVER-CONFIG-export']">
导出</button>
</div>
</div>
<!-- 数据列表 --> <!-- 数据列表 -->
<st #st [columns]="columns" [scroll]="{ x: '1200px' }"[data]="service.$api_configPage" [req]="{ params: reqParams }" <st #st [columns]="columns" [scroll]="{ x: '1200px',y:scrollY }" [data]="service.$api_configPage" [req]="{ params: reqParams }"
[loading]="false" [page]={}> [loading]="false" [page]="{}">
<ng-template st-row="monthFreightAmount" let-item let-index="index"> <ng-template st-row="monthFreightAmount" let-item let-index="index">
<div>{{item?.monthFreightAmount | currency}}</div> <div>{{item?.monthFreightAmount | currency}}</div>
</ng-template> </ng-template>

View File

@ -2,21 +2,23 @@ import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { STColumn, STComponent } from '@delon/abc/st'; import { STColumn, STComponent } from '@delon/abc/st';
import { SFComponent, SFSchema } from '@delon/form'; import { SFComponent, SFSchema } from '@delon/form';
import { DynamicSettingModalComponent } from '@shared'; import { DynamicSettingModalComponent, SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { UsermanageService } from '../../../services/usercenter.service'; import { UsermanageService } from '../../../services/usercenter.service';
@Component({ @Component({
selector: 'app-usercenter-components-driver-config', selector: 'app-usercenter-components-driver-config',
templateUrl: './driver-config.component.html', templateUrl: './driver-config.component.html',
styleUrls: ['./driver-config.component.less'] styleUrls: ['../../../../commom/less/commom-table.less']
}) })
export class UserCenterComponentsDriverConfigComponent implements OnInit { export class UserCenterComponentsDriverConfigComponent extends BasicTableComponent implements OnInit {
schema: SFSchema = this.initSF(); schema: SFSchema = this.initSF();
columns: STColumn[] = this.initST(); columns: STColumn[] = this.initST();
@ViewChild('st', { static: false }) st!: STComponent; @ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
constructor(public service: UsermanageService, private modal: NzModalService) {} constructor(public service: UsermanageService, private modal: NzModalService, public searchDrawerService: SearchDrawerService) {
super(searchDrawerService);
}
/** /**
* 查询参数 * 查询参数
@ -33,6 +35,10 @@ export class UserCenterComponentsDriverConfigComponent implements OnInit {
ngOnInit() {} ngOnInit() {}
search() {
this.st?.load(1);
}
settingAction(item?: any) { settingAction(item?: any) {
const modal = this.modal.create({ const modal = this.modal.create({
nzTitle: '配置', nzTitle: '配置',

View File

@ -257,7 +257,7 @@ export class FreightConfigComponent extends BasicTableComponent implements OnIni
format: item => `${item.contractSurchargeRatio}%` format: item => `${item.contractSurchargeRatio}%`
}, },
{ {
title: '合同单业务量(元)', title: '合同单业务量(元)',
index: 'contractQuota', index: 'contractQuota',
width: 170, width: 170,
type: 'widget', type: 'widget',
@ -265,7 +265,7 @@ export class FreightConfigComponent extends BasicTableComponent implements OnIni
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.contractQuota }) } widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.contractQuota }) }
}, },
{ {
title: '货源单业务量(元)', title: '货源单业务量(元)',
index: 'goodsQuota', index: 'goodsQuota',
width: 170, width: 170,
type: 'widget', type: 'widget',

View File

@ -114,10 +114,11 @@
</ng-template> </ng-template>
</page-header-wrapper> </page-header-wrapper>
<nz-card [class]="isEdit?'edit-box':'readOnly-box'"> <nz-card [class]="isEdit?'edit-box':'readOnly-box'" [nzBorderless]="true">
<sv-container col="2" class="mt16"> <div class="mb-md">
<sv-title> <div class="font-weight-blod text-md detail-title">
<label class="mr-md">企业基本信息</label> <a class="sign"></a>
<span class="mr-xs">企业基本信息</span>
<label *ngIf="detailData?.approvalStatus===10" style="color: #1890ff;"><i nz-icon nzType="info-circle" <label *ngIf="detailData?.approvalStatus===10" style="color: #1890ff;"><i nz-icon nzType="info-circle"
nzTheme="fill" class="mr-xs"></i>待审核 nzTheme="fill" class="mr-xs"></i>待审核
</label> </label>
@ -130,6 +131,23 @@
<label *ngIf="detailData?.isExpired" style="color: #fa8c16;"> <label *ngIf="detailData?.isExpired" style="color: #fa8c16;">
<i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>企业营业期限已过期 <i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>企业营业期限已过期
</label> </label>
</div>
<sv-container col="2" class="mt16">
<sv-title>
<!-- <label class="mr-md">企业基本信息</label>
<label *ngIf="detailData?.approvalStatus===10" style="color: #1890ff;"><i nz-icon nzType="info-circle"
nzTheme="fill" class="mr-xs"></i>待审核
</label>
<label *ngIf="detailData?.approvalStatus===20" style="color: #52c41a;"><i nz-icon nzType="check-circle"
nzTheme="fill" class="mr-xs"></i>审核通过
</label>
<label *ngIf="detailData?.approvalStatus===30" style="color: #ff4d4f;"><i nz-icon nzType="close-circle"
nzTheme="fill" class="mr-xs"></i>驳回&nbsp;驳回原因:{{detailData?.approvalOpinion}}
</label>
<label *ngIf="detailData?.isExpired" style="color: #fa8c16;">
<i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>企业营业期限已过期
</label> -->
<p style="margin-bottom: 0;"> <p style="margin-bottom: 0;">
四要素验证: 四要素验证:
<label *ngIf="detailData?.esignCheckStatus===0" style="color: #ff4d4f;"><i nz-icon nzType="info-circle" <label *ngIf="detailData?.esignCheckStatus===0" style="color: #ff4d4f;"><i nz-icon nzType="info-circle"
@ -187,7 +205,8 @@
</sv> </sv>
<sv label="成立日期"> <sv label="成立日期">
<nz-date-picker [(ngModel)]="detailData.enterpriseRegistrationTime" [nzDisabled]="!isEdit" <nz-date-picker [(ngModel)]="detailData.enterpriseRegistrationTime" [nzDisabled]="!isEdit"
[nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''"></nz-date-picker> [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''">
</nz-date-picker>
</sv> </sv>
<sv label="营业期限"> <sv label="营业期限">
<nz-date-picker [(ngModel)]="detailData.operatingStartTime" [nzDisabled]="!isEdit" nzPlaceHolder=" " <nz-date-picker [(ngModel)]="detailData.operatingStartTime" [nzDisabled]="!isEdit" nzPlaceHolder=" "
@ -241,8 +260,8 @@
</sv> </sv>
<sv label="经营范围" col="1"> <sv label="经营范围" col="1">
<ng-container *ngIf="isEdit; else businessScopeelseTemplate"> <ng-container *ngIf="isEdit; else businessScopeelseTemplate">
<input nz-input type="text" [(ngModel)]="detailData.businessScope" [readonly]="!isEdit" [nzBorderless]="!isEdit" <input nz-input type="text" [(ngModel)]="detailData.businessScope" [readonly]="!isEdit"
[placeholder]="isEdit?'':'-'"> [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</ng-container> </ng-container>
<ng-template #businessScopeelseTemplate> <ng-template #businessScopeelseTemplate>
<span style="word-break:break-all ">{{detailData.businessScope}}</span> <span style="word-break:break-all ">{{detailData.businessScope}}</span>
@ -263,20 +282,28 @@
</ng-container> </ng-container>
</sv> </sv>
</sv-container> </sv-container>
<nz-divider></nz-divider> </div>
<sv-container col="3" class="mt16"> <div class="mb-md">
<sv-title>法人信息 <div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>法人信息</span>
<label *ngIf="detailData?.legalPersonIdentityVO?.isExpired" style="color: #fa8c16;"> <label *ngIf="detailData?.legalPersonIdentityVO?.isExpired" style="color: #fa8c16;">
<i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>法人身份证期限已过期 <i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>法人身份证期限已过期
</label> </label>
</sv-title> </div>
<sv-container col="3" class="mt16">
<!-- <sv-title>法人信息
<label *ngIf="detailData?.legalPersonIdentityVO?.isExpired" style="color: #fa8c16;">
<i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>法人身份证期限已过期
</label>
</sv-title> -->
<sv label="法定代表人"> <sv label="法定代表人">
<input nz-input type="text" maxlength="32" [(ngModel)]="detailData.legalPersonIdentityVO.name" <input nz-input type="text" maxlength="32" [(ngModel)]="detailData.legalPersonIdentityVO.name"
[readonly]="!isEdit" [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'"> [readonly]="!isEdit" [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv> </sv>
<sv label="身份证号码"> <sv label="身份证号码">
<input nz-input type="text" [(ngModel)]="detailData.legalPersonIdentityVO.certificateNumber" [readonly]="!isEdit" <input nz-input type="text" [(ngModel)]="detailData.legalPersonIdentityVO.certificateNumber"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'"> [readonly]="!isEdit" [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv> </sv>
<sv label="身份证有效期" col="1"> <sv label="身份证有效期" col="1">
<nz-date-picker [(ngModel)]="detailData.legalPersonIdentityVO.validStartTime" [nzDisabled]="!isEdit" <nz-date-picker [(ngModel)]="detailData.legalPersonIdentityVO.validStartTime" [nzDisabled]="!isEdit"
@ -306,13 +333,21 @@
</div> </div>
</sv> </sv>
</sv-container> </sv-container>
<nz-divider></nz-divider> </div>
<sv-container col="3"> <div class="mb-md">
<sv-title>企业管理员信息 <div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>企业管理员信息</span>
<label *ngIf="detailData?.adminUserInfo?.isExpired" style="color: #fa8c16;"> <label *ngIf="detailData?.adminUserInfo?.isExpired" style="color: #fa8c16;">
<i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>企业营业期限已过期 <i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>企业营业期限已过期
</label> </label>
</sv-title> </div>
<sv-container col="3">
<!-- <sv-title>企业管理员信息
<label *ngIf="detailData?.adminUserInfo?.isExpired" style="color: #fa8c16;">
<i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>企业营业期限已过期
</label>
</sv-title> -->
<sv label="姓名"> <sv label="姓名">
<input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.name" [readonly]="!isEdit" <input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.name" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'"> [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
@ -335,10 +370,14 @@
</div> </div>
</sv> </sv>
</sv-container> </sv-container>
</div>
<nz-divider></nz-divider> <div class="mb-md">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>企业开票信息</span>
</div>
<sv-container col="3" class="mt16"> <sv-container col="3" class="mt16">
<sv-title>企业开票信息</sv-title> <!-- <sv-title>企业开票信息</sv-title> -->
<sv label="开户银行"> <sv label="开户银行">
<ng-container *ngIf="isEdit; else createBankTemplate"> <ng-container *ngIf="isEdit; else createBankTemplate">
<input nz-input type="text" [(ngModel)]="detailData.createBank" [readonly]="!isEdit" [nzBorderless]="!isEdit" <input nz-input type="text" [(ngModel)]="detailData.createBank" [readonly]="!isEdit" [nzBorderless]="!isEdit"
@ -366,15 +405,22 @@
</ng-template> </ng-template>
</sv> </sv>
</sv-container> </sv-container>
<nz-divider></nz-divider> </div>
<sv-container col="3" class="mt-md"> <div class="mb-md">
<sv-title>服务评级 <div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>服务评级</span>
<ng-container *ngIf="billEvaluateList?.length===0">(暂无评级)</ng-container> <ng-container *ngIf="billEvaluateList?.length===0">(暂无评级)</ng-container>
</sv-title> </div>
<sv-container col="3" class="mt-md">
<!-- <sv-title>服务评级
<ng-container *ngIf="billEvaluateList?.length===0">(暂无评级)</ng-container>
</sv-title> -->
<sv [label]="item.evaluateTypeLabel" *ngFor="let item of billEvaluateList"> <sv [label]="item.evaluateTypeLabel" *ngFor="let item of billEvaluateList">
<nz-rate [ngModel]="item.evaluateFraction" nzDisabled></nz-rate> <nz-rate [ngModel]="item.evaluateFraction" nzDisabled></nz-rate>
</sv> </sv>
</sv-container> </sv-container>
</div>
<!-- <nz-divider></nz-divider> --> <!-- <nz-divider></nz-divider> -->
<!-- <sv-container col="3" class="mt16"> <!-- <sv-container col="3" class="mt16">
<sv-title>合伙人信息</sv-title> <sv-title>合伙人信息</sv-title>

View File

@ -46,9 +46,42 @@
</ng-template> </ng-template>
</page-header-wrapper> </page-header-wrapper>
<nz-card [nzLoading]="service.http.loading"> <nz-card [nzLoading]="service.http.loading" [nzBorderless]="true" style="height: 100%;">
<div class="mb-md">
<div class="font-weight-blod text-md detail-title" style="justify-content: space-between;">
<div>
<a class="sign"></a>
<span>个人信息</span>
<label *ngIf="userIdentityDetail?.certificationStatus===1" style="color: #52c41a;"><i nz-icon
nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label>
<label *ngIf="userIdentityDetail?.certificationStatus===2" style="color: #ff4d4f;"><i nz-icon
nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回
</label>
</div>
<div>
<ng-container *ngIf="isEditUser; else elseTemplate">
<button [nzLoading]="service.http.loading" nz-button (click)="reset()">
取消
</button>
<button [nzLoading]="service.http.loading" nz-button nzDanger (click)="saveUser()">
保存
</button>
</ng-container>
<ng-template #elseTemplate>
<button nz-button nzType="default" nzDanger (click)="auditPass()"
*ngIf="userIdentityDetail.certificationStatus===0" [nzLoading]="service.http.loading" acl
[acl-ability]="['USERCENTER-FREIGHT-USER-D-audit']">审核通过</button>
<button nz-button nzType="default" nzDanger (click)="auditNo()"
*ngIf="userIdentityDetail.certificationStatus===0" [nzLoading]="service.http.loading" acl
[acl-ability]="['USERCENTER-FREIGHT-USER-D-audit']">驳回审核</button>
<button nz-button nzType="default" nzDanger (click)="ratify()" acl
[acl-ability]="['USERCENTER-FREIGHT-USER-D-edit']">修改</button>
</ng-template>
</div>
</div>
<sv-container col="2"> <sv-container col="2">
<sv-title>个人信息 <!-- <sv-title>个人信息
<label *ngIf="userIdentityDetail?.certificationStatus===1" style="color: #52c41a;"><i nz-icon <label *ngIf="userIdentityDetail?.certificationStatus===1" style="color: #52c41a;"><i nz-icon
nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过 nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label> </label>
@ -71,25 +104,28 @@
<button nz-button nzType="default" nzDanger (click)="ratify()" acl [acl-ability]="['USERCENTER-FREIGHT-USER-D-edit']" >修改</button> <button nz-button nzType="default" nzDanger (click)="ratify()" acl [acl-ability]="['USERCENTER-FREIGHT-USER-D-edit']" >修改</button>
</ng-template> </ng-template>
</div> </div>
</sv-title> </sv-title> -->
<sv label="姓名"> <sv label="姓名">
<input nz-input type="text" [maxlength]="32" [(ngModel)]="userIdentityDetail.name" [readonly]="!isEditUser" <input nz-input type="text" [maxlength]="32" [(ngModel)]="userIdentityDetail.name" [readonly]="!isEditUser"
[nzBorderless]="!isEditUser" [placeholder]="isEditUser?'':'-'"> [nzBorderless]="!isEditUser" [placeholder]="isEditUser?'':'-'">
</sv> </sv>
<sv label="身份证号码"> <sv label="身份证号码">
<input nz-input type="text" [minlength]="18" [maxlength]="18" [(ngModel)]="userIdentityDetail.certificateNumber" [readonly]="!isEditUser" <input nz-input type="text" [minlength]="18" [maxlength]="18"
[nzBorderless]="!isEditUser" [placeholder]="isEditUser?'':'-'"> [(ngModel)]="userIdentityDetail.certificateNumber" [readonly]="!isEditUser" [nzBorderless]="!isEditUser"
[placeholder]="isEditUser?'':'-'">
</sv> </sv>
<sv label="有效期" col="1"> <sv label="有效期" col="1">
<nz-date-picker [(ngModel)]="userIdentityDetail.validStartTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" " <nz-date-picker [(ngModel)]="userIdentityDetail.validStartTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" "
[nzBorderless]="!isEditUser" [nzSuffixIcon]="isEditUser?'calendar':''" style="width: 130px;" class="calendar"> [nzBorderless]="!isEditUser" [nzSuffixIcon]="isEditUser?'calendar':''" style="width: 130px;"
class="calendar">
</nz-date-picker> </nz-date-picker>
- -
<ng-container *ngIf="!isEditUser && !userIdentityDetail?.validEndTime && userIdentityDetail?.validStartTime"> <ng-container *ngIf="!isEditUser && !userIdentityDetail?.validEndTime && userIdentityDetail?.validStartTime">
<label style="padding-left: 11px;">长期</label> <label style="padding-left: 11px;">长期</label>
</ng-container> </ng-container>
<nz-date-picker [(ngModel)]="userIdentityDetail.validEndTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" " <nz-date-picker [(ngModel)]="userIdentityDetail.validEndTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" "
[nzBorderless]="!isEditUser" [nzSuffixIcon]="isEditUser?'calendar':''" style="width: 130px;" class="calendar"> [nzBorderless]="!isEditUser" [nzSuffixIcon]="isEditUser?'calendar':''" style="width: 130px;"
class="calendar">
</nz-date-picker> </nz-date-picker>
<ng-container *ngIf="isEditUser"> <ng-container *ngIf="isEditUser">
<label nz-checkbox [ngModel]="!!!userIdentityDetail.validEndTime" <label nz-checkbox [ngModel]="!!!userIdentityDetail.validEndTime"
@ -107,15 +143,21 @@
</div> </div>
</sv> </sv>
</sv-container> </sv-container>
<nz-divider></nz-divider> </div>
<sv-container col="3" class="mt16">
<sv-title>关联企业</sv-title> <div class="mb-md">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>关联企业</span>
</div>
<!-- <sv-title>关联企业</sv-title> -->
<st #st [columns]="columns" [data]="service.$api_get_driver_projects" size="small" <st #st [columns]="columns" [data]="service.$api_get_driver_projects" size="small"
[req]="{ method: 'POST', allInBody: true, params: {appUserId:route.snapshot.params.id} }" [req]="{ method: 'POST', allInBody: true, params: {appUserId:route.snapshot.params.id} }"
[res]="{ reName: { list: 'data' } }" [page]="{ show: false }" style="width: 100%;"> [res]="{ reName: { list: 'data' } }" [page]="{ show: false }" style="width: 100%;">
</st> </st>
</sv-container>
</div>
</nz-card> </nz-card>
</ng-container> </ng-container>

View File

@ -32,7 +32,7 @@
<div class="mr-sm"> <div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" acl [acl-ability]="['USERCENTER-FREIGHT-USER-list']" <button nz-button nzDanger [nzLoading]="service.http.loading" acl [acl-ability]="['USERCENTER-FREIGHT-USER-list']"
(click)="openDrawer()">筛选</button> (click)="openDrawer()">筛选</button>
<button nz-button nzDanger (click)="st?.load(1)" acl [acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-export']"> <button nz-button nzDanger (click)="exportList()" acl [acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-export']">
导出</button> 导出</button>
</div> </div>
</ng-template> </ng-template>

View File

@ -1,12 +0,0 @@
:host::ng-deep {
nz-range-picker {
width: 100%;
}
.content-box {
.ant-card-body {
padding-top: 6px;
}
}
}

View File

@ -22,7 +22,11 @@ export class FreightComponentsUserComponent extends BasicTableComponent implemen
resourceStatus: any = 0; resourceStatus: any = 0;
constructor(public service: UsermanageService, private modal: NzModalService, private router: Router, private ar: ActivatedRoute, constructor(
public service: UsermanageService,
private modal: NzModalService,
private router: Router,
private ar: ActivatedRoute,
public searchDrawerService: SearchDrawerService public searchDrawerService: SearchDrawerService
) { ) {
super(searchDrawerService); super(searchDrawerService);
@ -32,7 +36,6 @@ export class FreightComponentsUserComponent extends BasicTableComponent implemen
this.st?.load(1); this.st?.load(1);
} }
ngOnInit() { ngOnInit() {
this.ar.url.subscribe(params => { this.ar.url.subscribe(params => {
this.st?.load(1); this.st?.load(1);
@ -114,6 +117,16 @@ export class FreightComponentsUserComponent extends BasicTableComponent implemen
}); });
} }
exportList() {
const params = { certificationStatus: this.resourceStatus, pageSize: -1 };
if (this.sf) {
Object.assign(params, {
...this.sf?.value
});
}
this.service.downloadFile(this.service.$api_get_user_list_export, params);
}
private initSF(): SFSchema { private initSF(): SFSchema {
return { return {
properties: { properties: {
@ -157,7 +170,7 @@ export class FreightComponentsUserComponent extends BasicTableComponent implemen
], ],
default: '', default: '',
ui: { ui: {
widget: 'select', widget: 'select'
} }
}, },
promotersTelephone: { promotersTelephone: {
@ -165,7 +178,7 @@ export class FreightComponentsUserComponent extends BasicTableComponent implemen
type: 'string', type: 'string',
maxLength: 11, maxLength: 11,
ui: { ui: {
placeholder: '请输入手机号', placeholder: '请输入手机号'
} }
}, },
effectiveDate: { effectiveDate: {
@ -174,7 +187,7 @@ export class FreightComponentsUserComponent extends BasicTableComponent implemen
ui: { ui: {
widget: 'date', widget: 'date',
mode: 'range', mode: 'range',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
} as SFDateWidgetSchema } as SFDateWidgetSchema
} }
} }
@ -212,19 +225,19 @@ export class FreightComponentsUserComponent extends BasicTableComponent implemen
click: (item: any) => { click: (item: any) => {
this.router.navigate(['./view', item.appUserId], { relativeTo: this.ar }); this.router.navigate(['./view', item.appUserId], { relativeTo: this.ar });
}, },
acl: { ability: ['USERCENTER-FREIGHT-USER-view'] }, acl: { ability: ['USERCENTER-FREIGHT-USER-view'] }
}, },
{ {
text: '冻结', text: '冻结',
iif: item => item.stateLocked === 0, iif: item => item.stateLocked === 0,
click: (item: any) => this.userAction(0, [item.appUserId]), click: (item: any) => this.userAction(0, [item.appUserId]),
acl: { ability: ['USERCENTER-FREIGHT-USER-lock'] }, acl: { ability: ['USERCENTER-FREIGHT-USER-lock'] }
}, },
{ {
text: '启用', text: '启用',
iif: item => item.stateLocked === 1, iif: item => item.stateLocked === 1,
click: (item: any) => this.userAction(1, [item.appUserId]), click: (item: any) => this.userAction(1, [item.appUserId]),
acl: { ability: ['USERCENTER-FREIGHT-USER-lock'] }, acl: { ability: ['USERCENTER-FREIGHT-USER-lock'] }
} }
] ]
} }

View File

@ -49,6 +49,8 @@ export class UsermanageService extends ShipperBaseService {
// 货主员工列表(运营后台) // 货主员工列表(运营后台)
$api_get_user_list = '/api/mdc/cuc/userApp/getShipperUserInfoList'; $api_get_user_list = '/api/mdc/cuc/userApp/getShipperUserInfoList';
// 货主员工列表导出(运营后台-企业项目维度)
$api_get_user_list_export = '/api/mdc/cuc/userApp/shipperUserInfoExport';
// 冻结或恢复员工 // 冻结或恢复员工
$api_lock_staff = '/api/mdc/cuc/userApp/freezeOrResumeStaff'; $api_lock_staff = '/api/mdc/cuc/userApp/freezeOrResumeStaff';
// 冻结或恢复应用用户 // 冻结或恢复应用用户

View File

@ -1,26 +1,6 @@
<!-- <!-- <page-header-wrapper></page-header-wrapper>
* @Author: your name
* @Date: 2021-11-29 15:22:34
* @LastEditTime : 2022-04-20 17:06:02
* @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\routes\\vehicle\\components\\audit\\audit.component.html
-->
<!-- 页头 -->
<page-header-wrapper></page-header-wrapper>
<nz-card> <nz-card>
<!-- 搜索区 -->
<!-- 搜索表单 -->
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<!-- 查询字段小于或等于3个时不显示伸缩按钮 -->
<div nz-col nzSpan="24" *ngIf="queryFieldCount <= 4">
<sf #sf [schema]="schema" [ui]="ui" [mode]="'search'" [disabled]="!sf?.valid" (formSubmit)="st?.load(1)"
(formReset)="resetSF()"></sf>
</div>
<!-- [loading]="false" -->
<!-- 查询字段大于3个时根据展开状态调整布局 -->
<ng-container *ngIf="queryFieldCount > 4"> <ng-container *ngIf="queryFieldCount > 4">
<div nz-col [nzSpan]="_$expand ? 24 : 18"> <div nz-col [nzSpan]="_$expand ? 24 : 18">
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
@ -37,10 +17,10 @@
</div> </div>
</ng-container> </ng-container>
</div> </div>
</nz-card> </nz-card> -->
<nz-card> <nz-card class="table-box">
<!-- 数据列表 --> <div class="tab_header">
<!-- [data]="service.$api_get_supplier_page" --> <label class="page_title"><label class="driver">|</label>车辆审核列表</label>
<nz-tabset (nzSelectedIndexChange)="selectChange($event)" [nzSelectedIndex]='defaultTabs' <nz-tabset (nzSelectedIndexChange)="selectChange($event)" [nzSelectedIndex]='defaultTabs'
[nzTabBarExtraContent]="extraTemplate"> [nzTabBarExtraContent]="extraTemplate">
<nz-tab [nzTitle]="'全部'"></nz-tab> <nz-tab [nzTitle]="'全部'"></nz-tab>
@ -48,10 +28,23 @@
<nz-tab [nzTitle]="'审核通过'"></nz-tab> <nz-tab [nzTitle]="'审核通过'"></nz-tab>
<nz-tab [nzTitle]="'驳回'"></nz-tab> <nz-tab [nzTitle]="'驳回'"></nz-tab>
</nz-tabset> </nz-tabset>
<st #st [bordered]="true" [scroll]="{ x: '1200px' }" [columns]="columns" [data]='service.$api_get_userCarLicense_list' </div>
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' }, process: dataProcess }" <ng-template #extraTemplate>
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false"> <div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" acl [acl-ability]="['VEHICLE-AUDIT-search']"
(click)="openDrawer()">筛选</button>
<button nz-button nzDanger (click)="exportFire()" acl [acl-ability]="['VEHICLE-AUDIT-export']">
导出</button>
<button nz-button nzType="primary" (click)="addModal()" acl [acl-ability]="['VEHICLE-AUDIT-add']">添加车辆</button>
</div>
</ng-template>
<!-- 数据列表 -->
<!-- [data]="service.$api_get_supplier_page" -->
<st #st [bordered]="true" [scroll]="{ x: '1200px',y:scrollY }" [columns]="columns"
[data]='service.$api_get_userCarLicense_list' [req]="{ params: reqParams }" [res]="{ process: dataProcess }"
[page]="{ }" [loading]="false">
<ng-template st-row="carLength" let-item let-index="index"> <ng-template st-row="carLength" let-item let-index="index">
<div>{{item?.carModel}}-{{item?.carLengthLabel? item?.carLengthLabel + '米' : ''}}-{{ item?.carLoad? <div>{{item?.carModel}}-{{item?.carLengthLabel? item?.carLengthLabel + '米' : ''}}-{{ item?.carLoad?
item?.carLoad + '吨' : ''}}</div> item?.carLoad + '吨' : ''}}</div>
@ -70,10 +63,3 @@
</ng-template> </ng-template>
</st> </st>
</nz-card> </nz-card>
<ng-template #extraTemplate>
<!-- 工具栏 -->
<div class="toolbar" style="float: right;
padding-bottom: 15px;">
<button nz-button nzType="primary" (click)="addModal()">添加车辆</button>
</div>
</ng-template>

View File

@ -1,31 +0,0 @@
/*
* @Author: your name
* @Date: 2021-12-01 20:05:59
* @LastEditTime: 2021-12-01 20:35:33
* @LastEditors: your name
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\vehicle\components\list\list.component.spec.ts
*/
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { VehicleComponentsListComponent } from './list.component';
describe('VehicleComponentsListComponent', () => {
let component: VehicleComponentsListComponent;
let fixture: ComponentFixture<VehicleComponentsListComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [VehicleComponentsListComponent],
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(VehicleComponentsListComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -3,37 +3,32 @@ import { ActivatedRoute, Router } from '@angular/router';
import { STColumn, STColumnBadge, STComponent, STData } from '@delon/abc/st'; import { STColumn, STColumnBadge, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form'; import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
import { ModalHelper } from '@delon/theme'; import { ModalHelper } from '@delon/theme';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { of, Subject } from 'rxjs'; import { of, Subject } from 'rxjs';
import { map } from 'rxjs/operators'; import { map } from 'rxjs/operators';
import { BasicTableComponent } from 'src/app/routes/commom';
import { VehicleService } from '../../../vehicle/services/vehicle.service'; import { VehicleService } from '../../../vehicle/services/vehicle.service';
import { CarSettleCarauthComponent } from '../list/carauth/carauth.component'; import { CarSettleCarauthComponent } from '../list/carauth/carauth.component';
@Component({ @Component({
selector: 'app-Vehicle-components-audit', selector: 'app-Vehicle-components-audit',
templateUrl: './audit.component.html' templateUrl: './audit.component.html',
styleUrls: ['../../../commom/less/commom-table.less']
}) })
export class VehicleComponentsAuditComponent implements OnInit { export class VehicleComponentsAuditComponent extends BasicTableComponent implements OnInit {
_$expand = false;
resourceStatus: any = 1; resourceStatus: any = 1;
defaultTabs = 1; defaultTabs = 1;
ui!: SFUISchema;
schema!: SFSchema;
columns!: STColumn[]; columns!: STColumn[];
@ViewChild('st', { static: false }) st!: STComponent; @ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
constructor( constructor(
public service: VehicleService, public service: VehicleService,
private modal: NzModalService,
private router: Router, private router: Router,
private ar: ActivatedRoute, private ar: ActivatedRoute,
private modalHelper: ModalHelper private modalHelper: ModalHelper,
) {} public searchDrawerService: SearchDrawerService
/** ) {
* 查询字段个数navigate super(searchDrawerService);
*/
get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length;
} }
/** /**
@ -65,6 +60,11 @@ export class VehicleComponentsAuditComponent implements OnInit {
this.st?.load(1); this.st?.load(1);
}); });
} }
search() {
this.st?.load(1);
}
dataProcess(data: STData[]): STData[] { dataProcess(data: STData[]): STData[] {
return data.map((i, index) => { return data.map((i, index) => {
i.showSortFlag = false; i.showSortFlag = false;
@ -101,9 +101,6 @@ export class VehicleComponentsAuditComponent implements OnInit {
return of([]); return of([]);
} }
}, },
visibleIf: {
_$expand: (value: boolean) => value
}
} as SFSelectWidgetSchema } as SFSelectWidgetSchema
}, },
carNoColor: { carNoColor: {
@ -130,12 +127,7 @@ export class VehicleComponentsAuditComponent implements OnInit {
saveUser: { saveUser: {
type: 'string', type: 'string',
title: '录入人员', title: '录入人员',
ui: {
visibleIf: {
expand: (value: boolean) => value
} }
}
},
// approvalStatus: { // approvalStatus: {
// type: 'string', // type: 'string',
// title: '审核状态', // title: '审核状态',
@ -170,7 +162,6 @@ export class VehicleComponentsAuditComponent implements OnInit {
// } // }
} }
}; };
this.ui = { '*': { spanLabelFixed: 120, grid: { span: 8, gutter: 4 }, enter: () => this.st.load() } };
} }
initST() { initST() {
@ -228,20 +219,9 @@ export class VehicleComponentsAuditComponent implements OnInit {
daoyun(item: any) { daoyun(item: any) {
this.router.navigate(['./view', item], { relativeTo: this.ar }); this.router.navigate(['./view', item], { relativeTo: this.ar });
} }
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
creat() { creat() {
this.router.navigate(['./new'], { relativeTo: this.ar }); this.router.navigate(['./new'], { relativeTo: this.ar });
} }
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
// 导出 // 导出
exportFire() { exportFire() {
let params = Object.assign({}, this.reqParams || {}); let params = Object.assign({}, this.reqParams || {});

View File

@ -7,7 +7,7 @@
</ng-template> </ng-template>
<ng-template #content> <ng-template #content>
<sv-container col="3" class="new-sv-container"> <sv-container col="3" class="new-sv-container">
<h2>车牌号66{{ detailData?.carNo }} <h2>车牌号:{{ detailData?.carNo }}
</h2> </h2>
<sv-title style="font-weight: 700"> <sv-title style="font-weight: 700">
<!-- <span *ngIf="detailData?.approvalStatus === 1 || detailData?.approvalStatus === '1'">未上传</span> <!-- <span *ngIf="detailData?.approvalStatus === 1 || detailData?.approvalStatus === '1'">未上传</span>
@ -47,11 +47,7 @@
<div class="mb-xs common-order-header" nz-row> <div class="mb-xs common-order-header" nz-row>
<div style="display: flex;"> <div style="display: flex;">
<button nz-button nzType="primary" nzSize="small" nzDanger>{{ carStatus[detailData?.approvalStatus] }}</button> <button nz-button nzType="primary" nzSize="small" nzDanger>{{ carStatus[detailData?.approvalStatus] }}</button>
<div style="display: flex;align-items: center; ">
<b class="ml-md" style="font-size: 18px;padding-right: 10px;">车牌号: {{ detailData?.carNo }}</b> <b class="ml-md" style="font-size: 18px;padding-right: 10px;">车牌号: {{ detailData?.carNo }}</b>
<div *ngIf="detailData.networkStatus"> <span style="height: 5px; width: 5px; border-radius: 50%; background-color: green;display: inline-block;"></span> 已入网</div>
<div *ngIf="!detailData.networkStatus"><span style="height: 5px; width: 5px; border-radius: 50%; background-color: red;display: inline-block;"></span>未入网</div>
</div>
</div> </div>
<div> <div>
<ng-container *ngIf="!isEdit"> <ng-container *ngIf="!isEdit">

View File

@ -43,8 +43,9 @@
</div> </div>
</sf> </sf>
<img class="drivercard borderImg" height="104" src="/assets/images/vehicle/car.png" /> <img class="drivercard borderImg" height="104" src="/assets/images/vehicle/car.png" />
</div>
<div class="modal-footer"> <div class="modal-footer">
<button nz-button type="button" (click)="close()">关闭</button> <button nz-button type="button" (click)="close()">关闭</button>
<button nz-button type="button" nzType="primary" (click)="submitForm()" [disabled]="!(sf?.valid && i.flag !== 'view')" [nzLoading]="service.http.loading">确定</button> <button nz-button type="button" nzType="primary" (click)="submitForm()"
[disabled]="!(sf?.valid && i.flag !== 'view')" [nzLoading]="service.http.loading">确定</button>
</div> </div>

View File

@ -1,73 +1,9 @@
.sfBox { .sfBox {
position: relative; position: relative;
.example { height : 550px;
position: absolute; overflow: auto;
top: 215px;
right: 265px;
color: #1890ff;
cursor: pointer;
.popBox {
position: absolute;
top: -170px;
left: -125px;
width: 300px;
padding: 20px;
text-align: center;
background: #fff;
border: solid 1px #eee;
border-radius: 6px;
box-shadow: 0 1px 5px 1px #ececec;
&::before {
position: absolute;
bottom: -5px;
left: 50%;
width: 10px;
height: 10px;
margin-left: -5px;
background: #fff;
box-shadow: 0 1px 5px 1px #ececec;
transform: rotate(45deg);
content: '';
} }
&::after {
position: absolute;
bottom: 0;
left: 0;
z-index: 10;
width: 100%;
height: 10px;
background: #fff;
content: '';
}
img {
max-width: 100%;
max-height: 200px;
}
}
}
.positionSet{
top: 356px;
right: 235px;
}
.positionSet01{
top: 500px;
right: 200px;
}
.positionSet02{
top: 664px;
right: 265px;
}
.positionSet03{
top: 808px;
right: 205px;
}
}
.exaA{
position: absolute;
top: 0;
left: 300px
}
.pr { .pr {
position: relative; position: relative;
} }
@ -93,24 +29,15 @@
text-align : center; text-align : center;
} }
} }
.drivercard { .drivercard {
position: absolute; position: absolute;
top : 0; top : 0;
left : 325px; left : 325px;
border : solid 1px #ebf0fb; border : solid 1px #ebf0fb;
} }
.jopcard{
position: absolute;
top: 1356px;
left: 330px;
border: solid 1px #ebf0fb;
}
.agreement{
position: absolute;
top: 425px;
left: 330px;
border: solid 1px #ebf0fb;
}
:host { :host {
::ng-deep { ::ng-deep {
.ant-input-borderless { .ant-input-borderless {
@ -119,11 +46,23 @@
color : black; color : black;
resize : none; resize : none;
} }
.setCustom .ant-form-item-control{
.setCustom {
nz-form-item {
width: auto !important;
}
.ant-form-item-control {
margin-left: -100px !important margin-left: -100px !important
} }
}
.borderImg { .borderImg {
border: solid 1px #ebf0fb; border: solid 1px #ebf0fb;
} }
nz-date-picker {
width: 100%;
}
} }
} }

View File

@ -658,7 +658,7 @@ export class CarSettleCarauthComponent implements OnInit {
grid: { span: 12 } grid: { span: 12 }
}, },
$agreeImg: { $agreeImg: {
grid: { span: 4 }, grid: { span: 3 },
class: 'setCustom' class: 'setCustom'
}, },
$titleB: { $titleB: {

View File

@ -1,16 +1,15 @@
<!-- <!--
* @Author: your name * @Description :
* @Date: 2021-11-29 15:22:34 * @Version : 1.0
* @LastEditTime : 2022-02-17 17:25:34 * @Author : Shiming
* @Date : 2022-05-06 11:15:05
* @LastEditors : Shiming * @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @LastEditTime : 2022-05-06 15:28:50
* @FilePath : \\tms-obc-web\\src\\app\\routes\\vehicle\\components\\list\\list.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\vehicle\\components\\list\\list.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
<!-- 页头 --> <!-- <page-header-wrapper></page-header-wrapper>
<page-header-wrapper></page-header-wrapper>
<nz-card> <nz-card>
<!-- 搜索区 -->
<!-- 搜索表单 -->
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col [nzSpan]="_$expand ? 24 : 18"> <div nz-col [nzSpan]="_$expand ? 24 : 18">
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
@ -27,16 +26,25 @@
</button> </button>
</div> </div>
</div> </div>
</nz-card> </nz-card> -->
<nz-card> <nz-card class="table-box">
<!-- 数据列表 --> <div class="header_box">
<label class="page_title"> <label class="driver">|</label> 车辆列表</label>
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
[acl-ability]="['VEHICLE-LIST-search']">筛选</button>
<button nz-button nzDanger (click)="exportFire()" acl [acl-ability]="'VEHICLE-LIST-export'">
导出</button>
</div>
</div>
<st #st [bordered]="true" [scroll]="{ x: '1200px' }" [columns]="columns" [data]="service.$api_get_operate_list" <!-- 数据列表 -->
<st #st [bordered]="true" [scroll]="{ x: '1200px',y:scrollY }" [columns]="columns" [data]="service.$api_get_operate_list"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }" [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' }, process: dataProcess }" [res]="{ reName: { list: 'data.records', total: 'data.total' }, process: dataProcess }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false"> [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false">
<ng-template st-row="carLength" let-item let-index="index"> <ng-template st-row="carLength" let-item let-index="index">
<div>{{ item?.carModelLabel }}-{{ item?.carLengthLabel ? item?.carLengthLabel + '米' : '' }}-{{ <div>{{ item?.carModel ? item?.carModel + '-' : ''}}{{ item?.carLengthLabel ? item?.carLengthLabel + '米' : '' }}-{{
item?.carLoad ? item?.carLoad + '吨' : '' item?.carLoad ? item?.carLoad + '吨' : ''
}}</div> }}</div>
</ng-template> </ng-template>

View File

@ -1,25 +1,29 @@
import { Component, OnInit, ViewChild } from '@angular/core'; import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { STColumn, STComponent, STData } from '@delon/abc/st'; import { STColumn, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form'; import { SFSchemaEnum, SFSelectWidgetSchema } from '@delon/form';
import { NzModalService } from 'ng-zorro-antd/modal'; import { SearchDrawerService } from '@shared';
import { of } from 'rxjs'; import { of } from 'rxjs';
import { map } from 'rxjs/operators'; import { map } from 'rxjs/operators';
import { BasicTableComponent } from 'src/app/routes/commom';
import { VehicleService } from '../../../vehicle/services/vehicle.service'; import { VehicleService } from '../../../vehicle/services/vehicle.service';
@Component({ @Component({
selector: 'app-Vehicle-components-list', selector: 'app-Vehicle-components-list',
templateUrl: './list.component.html' templateUrl: './list.component.html',
styleUrls: ['../../../commom/less/commom-table.less']
}) })
export class VehicleComponentsListComponent implements OnInit { export class VehicleComponentsListComponent extends BasicTableComponent implements OnInit {
_$expand = false;
ui!: SFUISchema;
schema!: SFSchema;
columns!: STColumn[]; columns!: STColumn[];
@ViewChild('st', { static: false }) st!: STComponent; @ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
constructor(public service: VehicleService, private modal: NzModalService, private router: Router, private ar: ActivatedRoute) {} constructor(
public service: VehicleService,
private router: Router,
private ar: ActivatedRoute,
public searchDrawerService: SearchDrawerService
) {
super(searchDrawerService);
}
/** /**
* 查询参数 * 查询参数
@ -37,6 +41,10 @@ export class VehicleComponentsListComponent implements OnInit {
return params; return params;
} }
search() {
this.st?.load(1);
}
ngOnInit() { ngOnInit() {
this.initSF(); this.initSF();
this.initST(); this.initST();
@ -109,10 +117,7 @@ export class VehicleComponentsListComponent implements OnInit {
ui: { ui: {
widget: 'dict-select', widget: 'dict-select',
params: { dictKey: 'car:model' }, params: { dictKey: 'car:model' },
containsAllLabel: true, containsAllLabel: true
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
carLength: { carLength: {
@ -121,20 +126,12 @@ export class VehicleComponentsListComponent implements OnInit {
ui: { ui: {
widget: 'dict-select', widget: 'dict-select',
params: { dictKey: 'car:length' }, params: { dictKey: 'car:length' },
containsAllLabel: true, containsAllLabel: true
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
carLoad: { carLoad: {
title: '载重', title: '载重',
type: 'string', type: 'string'
ui: {
visibleIf: {
expand: (value: boolean) => value
}
}
}, },
isSelf: { isSelf: {
type: 'string', type: 'string',
@ -145,10 +142,7 @@ export class VehicleComponentsListComponent implements OnInit {
], ],
ui: { ui: {
widget: 'select', widget: 'select',
allowClear: true, allowClear: true
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
driverLicenseStatus: { driverLicenseStatus: {
@ -162,10 +156,7 @@ export class VehicleComponentsListComponent implements OnInit {
default: '', default: '',
ui: { ui: {
widget: 'select', widget: 'select',
allowClear: true, allowClear: true
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
roadTransportStatus: { roadTransportStatus: {
@ -178,12 +169,9 @@ export class VehicleComponentsListComponent implements OnInit {
], ],
ui: { ui: {
widget: 'select', widget: 'select',
allowClear: true, allowClear: true
visibleIf: {
expand: (value: boolean) => value
} }
} }
},
// isSelfs: { // isSelfs: {
// type: 'string', // type: 'string',
// title: '是否入网', // title: '是否入网',
@ -216,7 +204,6 @@ export class VehicleComponentsListComponent implements OnInit {
// }, // },
} }
}; };
this.ui = { '*': { spanLabelFixed: 130, grid: { span: 8, gutter: 4 }, enter: () => this.st.load() } };
} }
initST() { initST() {
@ -292,20 +279,9 @@ export class VehicleComponentsListComponent implements OnInit {
} }
]; ];
} }
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
creat() { creat() {
this.router.navigate(['./new'], { relativeTo: this.ar }); this.router.navigate(['./new'], { relativeTo: this.ar });
} }
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
// 导出 // 导出
exportFire() { exportFire() {
let params = Object.assign({}, this.reqParams || {}); let params = Object.assign({}, this.reqParams || {});

View File

@ -274,8 +274,14 @@
<div nz-col [nzSpan]="24"> <div nz-col [nzSpan]="24">
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList"> <amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList">
</amap-path-simplifier> </amap-path-simplifier>
<st [scroll]="{ y: '350px' }" #st [data]="addressItems" [noResult]='"暂无停车信息"' [columns]="logColumns2" [ps]="0" <st [scroll]="{ y: '350px' }" #st [data]="addressItems" [noResult]='fuck' [columns]="logColumns2" [ps]="0"
[page]="{ show: false, showSize: false }" size="small" class="map_st"> [page]="{ show: false, showSize: false }" size="small" class="map_st">
<ng-template #fuck>
<div>
<img class="mr-sm" [src]="'../../../../../assets/none.svg'" width="40" height="40" />
</div>
暂无停车信息
</ng-template>
</st> </st>
<nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)" class="map_radio"> <nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)" class="map_radio">
<label nz-radio-button nzValue="car">车辆轨迹</label> <label nz-radio-button nzValue="car">车辆轨迹</label>

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-12-03 15:31:52 * @Date: 2021-12-03 15:31:52
* @LastEditTime : 2022-05-06 10:04:19 * @LastEditTime : 2022-05-06 14:38:33
* @LastEditors : Shiming * @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\routes\\waybill-management\\components\\vehicle-detail\\vehicle-detail.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\waybill-management\\components\\vehicle-detail\\vehicle-detail.component.html
@ -272,8 +272,14 @@
<div nz-col [nzSpan]="24"> <div nz-col [nzSpan]="24">
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList"> <amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList">
</amap-path-simplifier> </amap-path-simplifier>
<st [scroll]="{ y: '350px' }" #st [data]="addressItems" [noResult]='"暂无停车信息"' [columns]="logColumns2" [ps]="0" <st [scroll]="{ y: '350px' }" #st [data]="addressItems" [noResult]='fuck' [columns]="logColumns2" [ps]="0"
[page]="{ show: false, showSize: false }" size="small" class="map_st"> [page]="{ show: false, showSize: false }" size="small" class="map_st">
<ng-template #fuck>
<div>
<img class="mr-sm" [src]="'../../../../../assets/none.svg'" width="40" height="40" />
</div>
暂无停车信息
</ng-template>
</st> </st>
<nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)" class="map_radio"> <nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)" class="map_radio">
<label nz-radio-button nzValue="car">车辆轨迹</label> <label nz-radio-button nzValue="car">车辆轨迹</label>

2
src/assets/none.svg Normal file
View File

@ -0,0 +1,2 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1651818563831" class="icon" viewBox="0 0 1837 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6717" xmlns:xlink="http://www.w3.org/1999/xlink" width="358.7890625" height="200"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
</style></defs><path d="M920.928443 169.843587m52.840157 0l573.693128 0q52.840157 0 52.840157 52.840156l0 0q0 52.840157-52.840157 52.840157l-573.693128 0q-52.840157 0-52.840157-52.840157l0 0q0-52.840157 52.840157-52.840156Z" fill="#FFFFFF" opacity=".5" p-id="6718"></path><path d="M1335.191496 381.204213h-195.331187A52.900545 52.900545 0 0 0 1192.67782 328.364057a52.896771 52.896771 0 0 0-52.840157-52.840157h195.361382A53.08926 53.08926 0 0 0 1283.260945 328.364057a53.081712 53.081712 0 0 0 51.926777 52.840156z" fill="#FFFFFF" opacity=".5" p-id="6719"></path><path d="M1068.126022 381.204213m52.840157 0l573.693128 0q52.840157 0 52.840157 52.840157l0 0q0 52.840157-52.840157 52.840156l-573.693128 0q-52.840157 0-52.840157-52.840156l0 0q0-52.840157 52.840157-52.840157Z" fill="#FFFFFF" opacity=".5" p-id="6720"></path><path d="M0 569.919058m52.840157 0l573.693128 0q52.840157 0 52.840157 52.840157l0 0q0 52.840157-52.840157 52.840156l-573.693128 0q-52.840157 0-52.840157-52.840156l0 0q0-52.840157 52.840157-52.840157Z" fill="#FFFFFF" opacity=".5" p-id="6721"></path><path d="M429.360241 781.279684h-195.331188A52.900545 52.900545 0 0 0 286.846564 728.439528a52.896771 52.896771 0 0 0-52.840156-52.840157h195.361381A53.08926 53.08926 0 0 0 377.42969 728.439528a53.081712 53.081712 0 0 0 51.926777 52.840156z" fill="#FFFFFF" opacity=".5" p-id="6722"></path><path d="M162.294767 781.279684m52.840156 0l573.693129 0q52.840157 0 52.840156 52.840157l0 0q0 52.840157-52.840156 52.840157l-573.693129 0q-52.840157 0-52.840156-52.840157l0 0q0-52.840157 52.840156-52.840157Z" fill="#FFFFFF" opacity=".5" p-id="6723"></path><path d="M662.370234 451.474073h427.329669v48.28458H662.370234z m0 212.458946h261.558775v48.284581h-261.558775z" fill="#DFDFDF" p-id="6724"></path><path d="M1183.861062 973.768826H567.408924a97.844873 97.844873 0 0 1-37.018304-7.242876 84.766934 84.766934 0 0 1-29.775428-20.120776 92.745798 92.745798 0 0 1-20.120777-29.775429 97.844873 97.844873 0 0 1-7.242876-37.014529V238.211201a97.844873 97.844873 0 0 1 7.242876-37.018304 84.766934 84.766934 0 0 1 20.120777-29.775428 92.742023 92.742023 0 0 1 29.775428-20.120777 97.844873 97.844873 0 0 1 37.018304-7.242876h93.35346v47.480655h-93.35346a47.556141 47.556141 0 0 0-47.480655 47.480655v641.400241a47.556141 47.556141 0 0 0 47.480655 47.480655h615.648213a47.556141 47.556141 0 0 0 47.480655-47.480655V238.211201a47.556141 47.556141 0 0 0-47.480655-47.480655H1090.507603v-47.480655h93.353459a97.844873 97.844873 0 0 1 37.018304 7.242876 84.766934 84.766934 0 0 1 29.775428 20.120776 92.742023 92.742023 0 0 1 20.120777 29.775429 97.844873 97.844873 0 0 1 7.242876 37.018304V878.807516a97.844873 97.844873 0 0 1-7.242876 37.018304 84.76316 84.76316 0 0 1-20.120777 29.775428 92.742023 92.742023 0 0 1-29.775428 20.120777 85.348176 85.348176 0 0 1-37.018304 8.046801z" fill="#DFDFDF" p-id="6725"></path><path d="M666.529509 117.807356V259.671853h413.979981V104.548251l-102.041891-9.956596s-35.67088-76.323832-104.548024-73.006225-102.876011 72.991128-102.87601 72.991128z" fill="#FFFFFF" p-id="6726"></path><path d="M1112.23623 285.691856H639.033756V131.175915a59.418756 59.418756 0 0 1 59.554631-59.554631h61.14361a130.869971 130.869971 0 0 1 233.383649 0h61.143609a59.418756 59.418756 0 0 1 59.581051 59.554631z m-425.74069-47.480655H1065.5595V131.175915a12.37592 12.37592 0 0 0-12.07775-12.07775h-94.149836l-5.635025-16.093602a82.634456 82.634456 0 0 0-156.123791 0l-5.635026 16.093602h-94.157384a12.37592 12.37592 0 0 0-12.07775 12.07775v107.035286z" fill="#DFDFDF" p-id="6727"></path></svg>

After

Width:  |  Height:  |  Size: 4.1 KiB