解决冲突

This commit is contained in:
wangshiming
2022-02-24 10:33:35 +08:00
parent 6f8929037e
commit 0147e0034d
16 changed files with 565 additions and 165 deletions

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-01-07 13:29:57 * @Date : 2022-01-07 13:29:57
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-02-23 16:04:18 * @LastEditTime : 2022-02-24 10:08:53
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-frame\\contract-frame.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-frame\\contract-frame.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -29,8 +29,9 @@
<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 [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'">
<ng-template sf-template="signTime" let-me let-ui="ui" let-schema="schema"> <ng-template sf-template="signTime" let-me let-ui="ui" let-schema="schema">
<!-- <input placeholder="请输入1-30" type="number" [ngModel]="sf.value.description3" style="width: 200px;" nz-input /> <ng-template sf-template="effectiveEndTime" let-me let-ui="ui" let-schema="schema">
<span> 天内支付运费</span> --> <nz-range-picker [nzShowTime]="true" [(ngModel)]="sf.value.effectiveEndTime"></nz-range-picker>
</ng-template>
<nz-range-picker [nzShowTime]="true" [(ngModel)]="sf.value.signTime"></nz-range-picker> <nz-range-picker [nzShowTime]="true" [(ngModel)]="sf.value.signTime"></nz-range-picker>
</ng-template> </ng-template>
</sf> </sf>

View File

@ -1,14 +1,17 @@
import { DatePipe } from '@angular/common';
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, STChange } from '@delon/abc/st'; import { STComponent, STColumn, STChange } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema, SFUISchema } from '@delon/form'; import { SFComponent, SFSchema, SFDateWidgetSchema, SFUISchema, SFSelectWidgetSchema } from '@delon/form';
import { ShipperBaseService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { ContractManagementService } from '../../services/contract-management.service'; import { ContractManagementService } from '../../services/contract-management.service';
@Component({ @Component({
selector: 'app-contract-management-contract-frame', selector: 'app-contract-management-contract-frame',
templateUrl: './contract-frame.component.html', templateUrl: './contract-frame.component.html',
styleUrls: ['./contract-frame.component.less'] styleUrls: ['./contract-frame.component.less'],
providers: [DatePipe]
}) })
export class ContractManagementFrameComponent implements OnInit { export class ContractManagementFrameComponent implements OnInit {
url = `/rule?_allow_anonymous=true`; url = `/rule?_allow_anonymous=true`;
@ -22,19 +25,48 @@ export class ContractManagementFrameComponent implements OnInit {
columns: STColumn[] = []; columns: STColumn[] = [];
ui: SFUISchema = {}; ui: SFUISchema = {};
_$expand = false; _$expand = false;
reqParams = {};
selectedRows: any[] = []; selectedRows: any[] = [];
constructor(public service: ContractManagementService, private nzModalService: NzModalService, private router: Router) {} constructor(
public service: ContractManagementService,
private nzModalService: NzModalService,
private router: Router,
public shipperservice: ShipperBaseService,
private datePipe: DatePipe,
) {}
ngOnInit(): void { ngOnInit(): void {
this.initST() this.initST();
this.initSF() this.initSF();
} }
/**
* 查询参数
*/
get reqParams() {
const params = {
...this.sf?.value,
}
delete params.signTime;
delete params._$expand;
if(this.datePipe.transform(this.sf?.value?.signTime?.[0], 'yyyy-MM-dd HH:mm:ss') && this.datePipe.transform(this.sf?.value?.signTime?.[1], 'yyyy-MM-dd HH:mm:ss')) {
params.signTime = {
start: this.datePipe.transform(this.sf?.value?.signTime?.[0], 'yyyy-MM-dd HH:mm:ss'),
end: this.datePipe.transform(this.sf?.value?.signTime?.[1], 'yyyy-MM-dd HH:mm:ss'),
}
}
if(this.datePipe.transform(this.sf?.value?.effectiveEndTime?.[0], 'yyyy-MM-dd HH:mm:ss') && this.datePipe.transform(this.sf?.value?.effectiveEndTime?.[1], 'yyyy-MM-dd HH:mm:ss')) {
params.effectiveEndTime = {
start: this.datePipe.transform(this.sf?.value?.effectiveEndTime?.[0], 'yyyy-MM-dd HH:mm:ss'),
end: this.datePipe.transform(this.sf?.value?.effectiveEndTime?.[1], 'yyyy-MM-dd HH:mm:ss'),
}
}
return {
...params
};
}
/** /**
* 初始化数据列表 * 初始化数据列表
*/ */
initST() { initST() {
this.columns = [ this.columns = [
{ {
title: '合同编号', title: '合同编号',
@ -42,14 +74,26 @@ export class ContractManagementFrameComponent implements OnInit {
className: 'text-center', className: 'text-center',
render: 'contractCode' render: 'contractCode'
}, },
{
title: '签约对象',
width: '100px',
className: 'text-center',
index: 'signingObject'
},
{
title: '合同类型',
width: '100px',
className: 'text-center',
index: 'contractType'
},
{ {
title: '合同名称', title: '合同名称',
width: '100px', width: '100px',
className: 'text-center', className: 'text-center',
index:'contractName' index: 'contractName'
}, },
{ title: '运人', index: 'shipperName', width: '120px', className: 'text-center' }, { title: '网络货运人', index: 'enterpriseInfoName', width: '120px', className: 'text-center' },
{ title: '承运人', index: 'carrierName', width: '120px', className: 'text-center' }, { title: '合同对象', index: 'contractObjectName', width: '120px', className: 'text-center' },
{ {
title: '有效期至', title: '有效期至',
className: 'text-center', className: 'text-center',
@ -75,47 +119,108 @@ export class ContractManagementFrameComponent implements OnInit {
'3': { text: '已撤销', color: 'warning' }, '3': { text: '已撤销', color: 'warning' },
'4': { text: '已作废', color: 'warning' }, '4': { text: '已作废', color: 'warning' },
'5': { text: '已过期', color: 'warning' }, '5': { text: '已过期', color: 'warning' },
'7': { text: '已拒签', color: 'warning' }, '7': { text: '已拒签', color: 'warning' }
}, }
}, }
]; ];
} }
/** /**
* 初始化查询表单 * 初始化查询表单
*/ */
initSF() { initSF() {
this.schema = { this.schema = {
properties: { properties: {
_$expand: { type: 'boolean', ui: { hidden: true } }, _$expand: { type: 'boolean', ui: { hidden: true } },
contractCode: { contractCode: {
type: 'string', type: 'string',
title: '合同编号', title: '合同编号'
},
shipperName: {
type: 'string',
title: '托运人'
},
carrierName: {
type: 'string',
title: '承运人',
},
signTime: {
title: '签署日期',
type: 'string',
ui: {
widget: 'custom',
visibleIf: {
_$expand: (value: boolean) => value,
},
}
},
}, },
type: 'object', signingObject: {
}; type: 'string',
this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } }; title: '签约对象',
} enum: [
/** { label: '全部', value: '' },
{ label: '货主', value: 1 },
{ label: '司机', value: 2 },
],
ui: {
widget: 'select',
placeholder: '请选择',
}
},
contractType: {
title: '合同类型',
type: 'string',
default: '',
ui: {
widget: 'dict-select',
containsAllLable: true,
params: { dictKey: 'contract:type' },
containAllLable:true,
} as SFSelectWidgetSchema,
},
enterpriseInfoId: {
type: 'string',
title: '网络货运人',
ui: {
widget: 'select',
placeholder: '请选择',
allowClear: true,
visibleIf: {
_$expand: (value: boolean) => value
},
asyncData: () => this.shipperservice.getNetworkFreightForwarder()
}
},
contractObjectName: {
type: 'string',
title: '合同对象',
ui: {
visibleIf: {
_$expand: (value: boolean) => value,
},
}
},
signTime: {
title: '签署日期',
type: 'string',
ui: {
widget: 'custom',
visibleIf: {
_$expand: (value: boolean) => value,
},
}
},
effectiveEndTime: {
title: '有效期',
type: 'string',
ui: {
widget: 'custom',
visibleIf: {
_$expand: (value: boolean) => value,
},
}
},
esignFlowStatus: {
title: '状态',
type: 'string',
default: '',
ui: {
widget: 'dict-select',
containsAllLable: true,
params: { dictKey: 'esign:flow:status' },
containAllLable:true,
visibleIf: {
_$expand: (value: boolean) => value,
},
} as SFSelectWidgetSchema,
},
},
type: 'object'
};
this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } };
}
/**
* 查询字段个数 * 查询字段个数
*/ */
get queryFieldCount(): number { get queryFieldCount(): number {
@ -193,7 +298,7 @@ export class ContractManagementFrameComponent implements OnInit {
/** /**
* 伸缩查询条件 * 伸缩查询条件
*/ */
expandToggle(): void { expandToggle(): void {
this._$expand = !this._$expand; this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand); this.sf?.setValue('/_$expand', this._$expand);
} }

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-07 15:57:49 * @Date : 2021-12-07 15:57:49
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-01-18 17:16:12 * @LastEditTime : 2022-02-23 20:11:50
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-list\\contract-list.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-list\\contract-list.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -53,6 +53,10 @@
<ng-template st-row="contractCode" let-item let-index="index"> <ng-template st-row="contractCode" let-item let-index="index">
<a [routerLink]="'/contract-management/index/detail/' + item.id">{{ item?.contractCode }}</a> <a [routerLink]="'/contract-management/index/detail/' + item.id">{{ item?.contractCode }}</a>
</ng-template> </ng-template>
<ng-template st-row="signingObject" let-item let-index="index">
<span *ngIf="item.signingObject == 0"></span>
<span></span>
</ng-template>
</st> </st>
</nz-card> </nz-card>

View File

@ -5,6 +5,7 @@ import { SFComponent, SFSchema, SFDateWidgetSchema, SFUISchema, SFSelectWidgetSc
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { ContractManagementService } from '../../services/contract-management.service'; import { ContractManagementService } from '../../services/contract-management.service';
import { DatePipe } from '@angular/common'; import { DatePipe } from '@angular/common';
import { ShipperBaseService } from '@shared';
@Component({ @Component({
selector: 'app-contract-management-contract-list', selector: 'app-contract-management-contract-list',
@ -47,6 +48,7 @@ export class ContractManagementContractListComponent implements OnInit {
constructor( constructor(
public service: ContractManagementService, public service: ContractManagementService,
private nzModalService: NzModalService, private nzModalService: NzModalService,
public shipperservice: ShipperBaseService,
private router: Router, private router: Router,
private datePipe: DatePipe, private datePipe: DatePipe,
) {} ) {}
@ -67,19 +69,31 @@ export class ContractManagementContractListComponent implements OnInit {
render: 'contractCode' render: 'contractCode'
}, },
{ {
title: '单据类型', title: '签约对象',
width: '100px', width: '100px',
className: 'text-center', className: 'text-center',
index:'documentType' index:'signingObject'
}, },
{ {
title: '合同名称', title: '合同类型',
width: '100px', width: '100px',
className: 'text-center', className: 'text-center',
index:'contractName' index:'contractType'
},
{
title: '货源类型',
width: '100px',
className: 'text-center',
index:'resourceType'
},
{ title: '合同名称', index: 'contractName', width: '120px', className: 'text-center' },
{ title: '网络货运人', index: 'enterpriseInfoName', width: '120px', className: 'text-center' },
{
title: '合同对象',
className: 'text-center',
width: '120px',
index: 'contractObjectName'
}, },
{ title: '托运人', index: 'shipperName', width: '120px', className: 'text-center' },
{ title: '承运人', index: 'carrierName', width: '120px', className: 'text-center' },
{ {
title: '业务单号', title: '业务单号',
className: 'text-center', className: 'text-center',
@ -126,21 +140,35 @@ export class ContractManagementContractListComponent implements OnInit {
type: 'string', type: 'string',
title: '业务单号' title: '业务单号'
}, },
shipperName: { signingObject: {
type: 'string', type: 'string',
title: '托运人' title: '签约对象',
}, enum: [
carrierName: { { label: '全部', value: '' },
type: 'string', { label: '货主', value: 1 },
title: '承运人', { label: '司机', value: 2 },
],
ui: { ui: {
widget: 'select',
placeholder: '请选择',
}
},
contractType: {
title: '合同类型',
type: 'string',
default: '',
ui: {
widget: 'dict-select',
containsAllLable: true,
params: { dictKey: 'contract:type' },
containAllLable:true,
visibleIf: { visibleIf: {
_$expand: (value: boolean) => value, _$expand: (value: boolean) => value,
}, },
} } as SFSelectWidgetSchema,
}, },
documentType: { resourceType: {
title: '单据类型', title: '货源类型',
type: 'string', type: 'string',
default: '', default: '',
ui: { ui: {
@ -153,6 +181,28 @@ export class ContractManagementContractListComponent implements OnInit {
}, },
} as SFSelectWidgetSchema, } as SFSelectWidgetSchema,
}, },
enterpriseInfoId: {
type: 'string',
title: '网络货运人',
ui: {
widget: 'select',
placeholder: '请选择',
allowClear: true,
visibleIf: {
_$expand: (value: boolean) => value
},
asyncData: () => this.shipperservice.getNetworkFreightForwarder()
}
},
contractObjectName: {
type: 'string',
title: '合同对象',
ui: {
visibleIf: {
_$expand: (value: boolean) => value,
},
}
},
signTime: { signTime: {
title: '签署日期', title: '签署日期',
type: 'string', type: 'string',
@ -163,6 +213,20 @@ export class ContractManagementContractListComponent implements OnInit {
}, },
} }
}, },
esignFlowStatus: {
title: '状态',
type: 'string',
default: '',
ui: {
widget: 'dict-select',
containsAllLable: true,
params: { dictKey: 'esign:flow:status' },
containAllLable:true,
visibleIf: {
_$expand: (value: boolean) => value,
},
} as SFSelectWidgetSchema,
},
}, },
type: 'object', type: 'object',
}; };

View File

@ -4,8 +4,8 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-01-07 13:29:57 * @Date : 2022-01-07 13:29:57
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-02-23 16:04:18 * @LastEditTime : 2022-02-24 10:08:28
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-frame\\contract-frame.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-partner\\contract-partner.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
<nz-card> <nz-card>
@ -29,10 +29,11 @@
<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 [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'">
<ng-template sf-template="signTime" let-me let-ui="ui" let-schema="schema"> <ng-template sf-template="signTime" let-me let-ui="ui" let-schema="schema">
<!-- <input placeholder="请输入1-30" type="number" [ngModel]="sf.value.description3" style="width: 200px;" nz-input />
<span> 天内支付运费</span> -->
<nz-range-picker [nzShowTime]="true" [(ngModel)]="sf.value.signTime"></nz-range-picker> <nz-range-picker [nzShowTime]="true" [(ngModel)]="sf.value.signTime"></nz-range-picker>
</ng-template> </ng-template>
<ng-template sf-template="effectiveEndTime" let-me let-ui="ui" let-schema="schema">
<nz-range-picker [nzShowTime]="true" [(ngModel)]="sf.value.effectiveEndTime"></nz-range-picker>
</ng-template>
</sf> </sf>
</div> </div>
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand"> <div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand">
@ -69,7 +70,7 @@
<st <st
#st #st
[data]="service.$api_listFrame_page" [data]="service.$api_listPartner_page"
[columns]="columns" [columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }" [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }" [res]="{ reName: { list: 'data.records', total: 'data.total' } }"

View File

@ -1,14 +1,17 @@
import { DatePipe } from '@angular/common';
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, STChange } from '@delon/abc/st'; import { STComponent, STColumn, STChange } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema, SFUISchema } from '@delon/form'; import { SFComponent, SFSchema, SFDateWidgetSchema, SFUISchema, SFSelectWidgetSchema } from '@delon/form';
import { ShipperBaseService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { ContractManagementService } from '../../services/contract-management.service'; import { ContractManagementService } from '../../services/contract-management.service';
@Component({ @Component({
selector: 'app-contract-management-contract-partner', selector: 'app-contract-management-contract-partner',
templateUrl: './contract-partner.component.html', templateUrl: './contract-partner.component.html',
styleUrls: ['./contract-partner.component.less'] styleUrls: ['./contract-partner.component.less'],
providers: [DatePipe]
}) })
export class ContractManagementPartnerComponent implements OnInit { export class ContractManagementPartnerComponent implements OnInit {
url = `/rule?_allow_anonymous=true`; url = `/rule?_allow_anonymous=true`;
@ -22,19 +25,48 @@ export class ContractManagementPartnerComponent implements OnInit {
columns: STColumn[] = []; columns: STColumn[] = [];
ui: SFUISchema = {}; ui: SFUISchema = {};
_$expand = false; _$expand = false;
reqParams = {};
selectedRows: any[] = []; selectedRows: any[] = [];
constructor(public service: ContractManagementService, private nzModalService: NzModalService, private router: Router) {} constructor(
public service: ContractManagementService,
private nzModalService: NzModalService,
private router: Router,
public shipperservice: ShipperBaseService,
private datePipe: DatePipe,
) {}
ngOnInit(): void { ngOnInit(): void {
this.initST() this.initST();
this.initSF() this.initSF();
} }
/**
* 查询参数
*/
get reqParams() {
const params = {
...this.sf?.value,
}
delete params.signTime;
delete params._$expand;
if(this.datePipe.transform(this.sf?.value?.signTime?.[0], 'yyyy-MM-dd HH:mm:ss') && this.datePipe.transform(this.sf?.value?.signTime?.[1], 'yyyy-MM-dd HH:mm:ss')) {
params.signTime = {
start: this.datePipe.transform(this.sf?.value?.signTime?.[0], 'yyyy-MM-dd HH:mm:ss'),
end: this.datePipe.transform(this.sf?.value?.signTime?.[1], 'yyyy-MM-dd HH:mm:ss'),
}
}
if(this.datePipe.transform(this.sf?.value?.effectiveEndTime?.[0], 'yyyy-MM-dd HH:mm:ss') && this.datePipe.transform(this.sf?.value?.effectiveEndTime?.[1], 'yyyy-MM-dd HH:mm:ss')) {
params.effectiveEndTime = {
start: this.datePipe.transform(this.sf?.value?.effectiveEndTime?.[0], 'yyyy-MM-dd HH:mm:ss'),
end: this.datePipe.transform(this.sf?.value?.effectiveEndTime?.[1], 'yyyy-MM-dd HH:mm:ss'),
}
}
return {
...params
};
}
/** /**
* 初始化数据列表 * 初始化数据列表
*/ */
initST() { initST() {
this.columns = [ this.columns = [
{ {
title: '合同编号', title: '合同编号',
@ -43,13 +75,25 @@ export class ContractManagementPartnerComponent implements OnInit {
render: 'contractCode' render: 'contractCode'
}, },
{ {
title: '合同名称', title: '签约对象',
width: '100px', width: '100px',
className: 'text-center', className: 'text-center',
index:'contractName' index: 'signingObject'
},
{
title: '合同类型',
width: '100px',
className: 'text-center',
index: 'contractType'
},
{ title: '合同名称', index: 'contractName', width: '120px', className: 'text-center' },
{ title: '网络货运人', index: 'enterpriseInfoName', width: '120px', className: 'text-center' },
{
title: '合同对象',
className: 'text-center',
width: '120px',
index: 'contractObjectName'
}, },
{ title: '托运人', index: 'shipperName', width: '120px', className: 'text-center' },
{ title: '承运人', index: 'carrierName', width: '120px', className: 'text-center' },
{ {
title: '有效期至', title: '有效期至',
className: 'text-center', className: 'text-center',
@ -75,47 +119,108 @@ export class ContractManagementPartnerComponent implements OnInit {
'3': { text: '已撤销', color: 'warning' }, '3': { text: '已撤销', color: 'warning' },
'4': { text: '已作废', color: 'warning' }, '4': { text: '已作废', color: 'warning' },
'5': { text: '已过期', color: 'warning' }, '5': { text: '已过期', color: 'warning' },
'7': { text: '已拒签', color: 'warning' }, '7': { text: '已拒签', color: 'warning' }
}, }
}, }
]; ];
} }
/** /**
* 初始化查询表单 * 初始化查询表单
*/ */
initSF() { initSF() {
this.schema = { this.schema = {
properties: { properties: {
_$expand: { type: 'boolean', ui: { hidden: true } }, _$expand: { type: 'boolean', ui: { hidden: true } },
contractCode: { contractCode: {
type: 'string', type: 'string',
title: '合同编号', title: '合同编号'
},
shipperName: {
type: 'string',
title: '托运人'
},
carrierName: {
type: 'string',
title: '承运人',
},
signTime: {
title: '签署日期',
type: 'string',
ui: {
widget: 'custom',
visibleIf: {
_$expand: (value: boolean) => value,
},
}
},
}, },
type: 'object', signingObject: {
}; type: 'string',
this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } }; title: '签约对象',
} enum: [
/** { label: '全部', value: '' },
{ label: '货主', value: 1 },
{ label: '司机', value: 2 }
],
ui: {
widget: 'select',
placeholder: '请选择'
}
},
contractType: {
title: '合同类型',
type: 'string',
default: '',
ui: {
widget: 'dict-select',
containsAllLable: true,
params: { dictKey: 'contract:type' },
containAllLable: true,
} as SFSelectWidgetSchema
},
enterpriseInfoId: {
type: 'string',
title: '网络货运人',
ui: {
widget: 'select',
placeholder: '请选择',
allowClear: true,
visibleIf: {
_$expand: (value: boolean) => value
},
asyncData: () => this.shipperservice.getNetworkFreightForwarder()
}
},
contractObjectName: {
type: 'string',
title: '合同对象',
ui: {
visibleIf: {
_$expand: (value: boolean) => value
}
}
},
signTime: {
title: '签署日期',
type: 'string',
ui: {
widget: 'custom',
visibleIf: {
_$expand: (value: boolean) => value
}
}
},
effectiveEndTime: {
title: '有效期',
type: 'string',
ui: {
widget: 'custom',
visibleIf: {
_$expand: (value: boolean) => value,
},
}
},
esignFlowStatus: {
title: '状态',
type: 'string',
default: '',
ui: {
widget: 'dict-select',
containsAllLable: true,
params: { dictKey: 'esign:flow:status' },
containAllLable: true,
visibleIf: {
_$expand: (value: boolean) => value
}
} as SFSelectWidgetSchema
}
},
type: 'object'
};
this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } };
}
/**
* 查询字段个数 * 查询字段个数
*/ */
get queryFieldCount(): number { get queryFieldCount(): number {
@ -193,7 +298,7 @@ export class ContractManagementPartnerComponent implements OnInit {
/** /**
* 伸缩查询条件 * 伸缩查询条件
*/ */
expandToggle(): void { expandToggle(): void {
this._$expand = !this._$expand; this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand); this.sf?.setValue('/_$expand', this._$expand);
} }

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-01-05 11:01:55 * @Date : 2022-01-05 11:01:55
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-01-25 14:25:49 * @LastEditTime : 2022-02-24 10:23:53
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-template-detail\\contract-template-detail.component.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-template-detail\\contract-template-detail.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -16,12 +16,12 @@ import { NzModalService } from 'ng-zorro-antd/modal';
import { ContractManagementService } from '../../services/contract-management.service'; import { ContractManagementService } from '../../services/contract-management.service';
@Component({ @Component({
selector: 'app-contract-management-template-detail-complaint', selector: 'app-contract-management-template-text-complaint',
templateUrl: './contract-template-detail.component.html', templateUrl: './contract-template-detail.component.html',
styleUrls: ['./contract-template-detail.component.less'], styleUrls: ['./contract-template-detail.component.less'],
providers: [DatePipe] providers: [DatePipe]
}) })
export class ContractManagementTemplateDetailComponent implements OnInit { export class ContractManagementTemplateTextComponent implements OnInit {
constructor( constructor(
private nzModalService: NzModalService, private nzModalService: NzModalService,
public service: ContractManagementService, public service: ContractManagementService,

View File

@ -4,13 +4,12 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-01-12 10:52:50 * @Date : 2022-01-12 10:52:50
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-01-18 17:16:18 * @LastEditTime : 2022-02-24 10:31:05
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-template\\contract-template.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-template\\contract-template.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * 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">
<!-- 查询字段小于或等于3个时不显示伸缩按钮 --> <!-- 查询字段小于或等于3个时不显示伸缩按钮 -->
@ -28,9 +27,16 @@
</div> </div>
<!-- 查询字段大于3个时根据展开状态调整布局 --> <!-- 查询字段大于3个时根据展开状态调整布局 -->
<ng-container *ngIf="queryFieldCount > 4"> <ng-container>
<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'">
<ng-template sf-template="signTime" let-me let-ui="ui" let-schema="schema">
<nz-range-picker [nzShowTime]="true" [(ngModel)]="sf.value.signTime"></nz-range-picker>
</ng-template>
<ng-template sf-template="effectiveEndTime" let-me let-ui="ui" let-schema="schema">
<nz-range-picker [nzShowTime]="true" [(ngModel)]="sf.value.effectiveEndTime"></nz-range-picker>
</ng-template>
</sf>
</div> </div>
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand"> <div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand">
<button <button
@ -40,10 +46,9 @@
[nzLoading]="service.http.loading" [nzLoading]="service.http.loading"
(click)="st?.load(1)" (click)="st?.load(1)"
acl acl
[acl-ability]="['CONTRACT-TEMPLATE-search']" [acl-ability]="['CONTRACT-INDEX-listFrame']"
>查询</button >查询</button
> >
<button nz-button nzType="primary" acl [acl-ability]="['CONTRACT-TEMPLATE-export']">导出</button>
<button nz-button (click)="resetSF()">重置</button> <button nz-button (click)="resetSF()">重置</button>
<button nz-button nzType="link" (click)="expandToggle()"> <button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }} {{ !_$expand ? '展开' : '收起' }}

View File

@ -4,27 +4,27 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-01-05 09:45:47 * @Date : 2022-01-05 09:45:47
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-01-18 17:16:22 * @LastEditTime : 2022-02-24 10:25:58
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-template\\contract-template.component.spec.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-template\\contract-template.component.spec.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
import { ContractManagementTemplateComponent } from './contract-template.component'; import { ContractManagementTemplateDetailComponent } from './contract-template.component';
describe('ContractManagementTemplateComponent', () => { describe('ContractManagementTemplateDetailComponent', () => {
let component: ContractManagementTemplateComponent; let component: ContractManagementTemplateDetailComponent;
let fixture: ComponentFixture<ContractManagementTemplateComponent>; let fixture: ComponentFixture<ContractManagementTemplateDetailComponent>;
beforeEach(waitForAsync(() => { beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
declarations: [ ContractManagementTemplateComponent ] declarations: [ ContractManagementTemplateDetailComponent ]
}) })
.compileComponents(); .compileComponents();
})); }));
beforeEach(() => { beforeEach(() => {
fixture = TestBed.createComponent(ContractManagementTemplateComponent); fixture = TestBed.createComponent(ContractManagementTemplateDetailComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
fixture.detectChanges(); fixture.detectChanges();
}); });

View File

@ -9,11 +9,11 @@ import { ContractManagementService } from '../../services/contract-management.se
@Component({ @Component({
selector: 'app-contract-management-template-complaint', selector: 'app-contract-management-template-detail-complaint',
templateUrl: './contract-template.component.html', templateUrl: './contract-template.component.html',
styleUrls: ['./contract-template.component.less'] styleUrls: ['./contract-template.component.less']
}) })
export class ContractManagementTemplateComponent implements OnInit { export class ContractManagementTemplateDetailComponent implements OnInit {
ui: SFUISchema = {}; ui: SFUISchema = {};
uiView: SFUISchema = {}; uiView: SFUISchema = {};
schema: SFSchema = {}; schema: SFSchema = {};
@ -69,12 +69,37 @@ export class ContractManagementTemplateComponent implements OnInit {
initSF() { initSF() {
this.schema = { this.schema = {
properties: { properties: {
_$expand: { type: 'boolean', ui: { hidden: true } },
templateName: { templateName: {
type: 'string', type: 'string',
title: '模板名称', title: '模板名称',
}, },
templateType: { signingObject: {
title: '模板类型', type: 'string',
title: '签约对象',
enum: [
{ label: '全部', value: '' },
{ label: '货主', value: 1 },
{ label: '司机', value: 2 }
],
ui: {
widget: 'select',
placeholder: '请选择'
}
},
contractType: {
title: '合同类型',
type: 'string',
default: '',
ui: {
widget: 'dict-select',
containsAllLable: true,
params: { dictKey: 'contract:type' },
containAllLable: true,
} as SFSelectWidgetSchema
},
templateType2: {
title: '货源类型',
type: 'string', type: 'string',
default: '', default: '',
ui: { ui: {
@ -82,7 +107,7 @@ export class ContractManagementTemplateComponent implements OnInit {
params: { dictKey: 'contract:template:type' }, params: { dictKey: 'contract:template:type' },
containsAllLable: true, containsAllLable: true,
visibleIf: { visibleIf: {
_$expand: (value: boolean) => value, _$expand: (value: boolean) => value
}, },
} as SFSelectWidgetSchema, } as SFSelectWidgetSchema,
}, },
@ -102,14 +127,22 @@ export class ContractManagementTemplateComponent implements OnInit {
render: 'templateName' render: 'templateName'
}, },
{ {
title: '模板类型', title: '签约对象',
width: '100px',
className: 'text-center', className: 'text-center',
index: 'templateType' index: 'signingObject'
}, },
{ {
title: '单据类型', title: '合同类型',
index: 'contractType', width: '100px',
className: 'text-center', className: 'text-center',
index: 'contractType'
},
{
title: '货源类型',
width: '100px',
className: 'text-center',
index: 'contractType'
}, },
{ title: '创建人', index: 'createUserId', width: '120px', className: 'text-center' }, { title: '创建人', index: 'createUserId', width: '120px', className: 'text-center' },
{ {
@ -160,9 +193,9 @@ export class ContractManagementTemplateComponent implements OnInit {
get queryFieldCount(): number { get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length; return Object.keys(this.schema?.properties || {}).length;
} }
/** /**
* 伸缩查询条件 * 伸缩查询条件
*/ */
expandToggle(): void { expandToggle(): void {
this._$expand = !this._$expand; this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand); this.sf?.setValue('/_$expand', this._$expand);
@ -178,14 +211,14 @@ export class ContractManagementTemplateComponent implements OnInit {
} }
edit(value: any) { edit(value: any) {
this.router.navigate(['/contract-management/template/detail/' + value.id],{ this.router.navigate(['/contract-management/template/text/' + value.id],{
queryParams: { queryParams: {
status: 2 status: 2
} }
}) })
} }
creatTemplate() { creatTemplate() {
this.router.navigate(['/contract-management/template/detail/' + 0], { this.router.navigate(['/contract-management/template/text/' + 0], {
queryParams: { queryParams: {
status: 1 status: 1
} }
@ -195,7 +228,7 @@ export class ContractManagementTemplateComponent implements OnInit {
window.history.go(-1) window.history.go(-1)
} }
view(value: any) { view(value: any) {
this.router.navigate(['/contract-management/template/detail/' + value.id],{ this.router.navigate(['/contract-management/template/text/' + value.id],{
queryParams: { queryParams: {
status: 3 status: 3
} }

View File

@ -0,0 +1,26 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-01-07 13:27:10
* @LastEditors : Shiming
* @LastEditTime : 2022-02-23 19:39:38
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\index\\index.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper title="合同模板" [tab]="tpTab">
</page-header-wrapper>
<ng-template #tpTab>
<nz-tabset [(nzSelectedIndex)]="selectedIndex">
<nz-tab nzTitle="明细合同">
<app-contract-management-template-detail-complaint></app-contract-management-template-detail-complaint>
</nz-tab>
<nz-tab nzTitle="框架合同">
<app-contract-management-contract-frame></app-contract-management-contract-frame>
</nz-tab>
<nz-tab nzTitle="合伙人合同">
<app-contract-management-contract-partner></app-contract-management-contract-partner>
</nz-tab>
</nz-tabset>
</ng-template>

View File

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

View File

@ -0,0 +1,27 @@
/*
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-01-07 13:27:10
* @LastEditors : Shiming
* @LastEditTime : 2022-02-24 10:20:23
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\template\\template.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
import { Component, OnInit } from '@angular/core';
import { ModalHelper, _HttpClient } from '@delon/theme';
@Component({
selector: 'app-supply-management-template',
templateUrl: './template.component.html',
})
export class ContractManagementTemplateComponent implements OnInit {
selectedIndex = 0;
constructor(private http: _HttpClient, private modal: ModalHelper) { }
ngOnInit(): void { }
}

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-01-04 21:05:49 * @Date : 2022-01-04 21:05:49
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-02-23 19:39:21 * @LastEditTime : 2022-02-24 10:24:16
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\contract-management-routing.module.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\contract-management-routing.module.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -14,15 +14,15 @@ import { RouterModule, Routes } from '@angular/router';
import { ContractManagementDetailComponent } from './components/contract-detail/contract-detail.component'; import { ContractManagementDetailComponent } from './components/contract-detail/contract-detail.component';
import { ContractManagementContractListComponent } from './components/contract-list/contract-list.component'; import { ContractManagementContractListComponent } from './components/contract-list/contract-list.component';
import { ContractManagementPartnerComponent } from './components/contract-partner/contract-partner.component'; import { ContractManagementPartnerComponent } from './components/contract-partner/contract-partner.component';
import { ContractManagementTemplateDetailComponent } from './components/contract-template-detail/contract-template-detail.component'; import { ContractManagementTemplateTextComponent } from './components/contract-template-detail/contract-template-detail.component';
import { ContractManagementTemplateComponent } from './components/contract-template/contract-template.component';
import { ContractManagementIndexComponent } from './components/index/index.component'; import { ContractManagementIndexComponent } from './components/index/index.component';
import { ContractManagementPolicyComponent } from './components/policy/policy.component'; import { ContractManagementPolicyComponent } from './components/policy/policy.component';
import { ContractManagementTemplateComponent } from './components/template/template.component';
const routes: Routes = [ const routes: Routes = [
{ path: 'index', component: ContractManagementIndexComponent }, { path: 'index', component: ContractManagementIndexComponent },
{ path: 'index/detail/:id', component: ContractManagementDetailComponent }, { path: 'index/detail/:id', component: ContractManagementDetailComponent },
{ path: 'template', component: ContractManagementTemplateComponent }, { path: 'template', component: ContractManagementTemplateComponent },
{ path: 'template/detail/:id', component: ContractManagementTemplateDetailComponent }, { path: 'template/text/:id', component: ContractManagementTemplateTextComponent },
{ path: 'policy', component: ContractManagementPolicyComponent }, { path: 'policy', component: ContractManagementPolicyComponent },
{ path: 'partner', component: ContractManagementPartnerComponent }, { path: 'partner', component: ContractManagementPartnerComponent },
]; ];

View File

@ -15,22 +15,25 @@ import { SharedModule } from '@shared';
import { ContractManagementManagementRoutingModule } from './contract-management-routing.module'; import { ContractManagementManagementRoutingModule } from './contract-management-routing.module';
import { ContractManagementContractListComponent } from './components/contract-list/contract-list.component'; import { ContractManagementContractListComponent } from './components/contract-list/contract-list.component';
import { ContractManagementPolicyComponent } from './components/policy/policy.component'; import { ContractManagementPolicyComponent } from './components/policy/policy.component';
import { ContractManagementTemplateComponent } from './components/contract-template/contract-template.component'; import { ContractManagementTemplateDetailComponent } from './components/contract-template/contract-template.component';
import { ContractManagementIndexComponent } from './components/index/index.component'; import { ContractManagementIndexComponent } from './components/index/index.component';
import { ContractManagementFrameComponent } from './components/contract-frame/contract-frame.component'; import { ContractManagementFrameComponent } from './components/contract-frame/contract-frame.component';
import { ContractManagementTemplateDetailComponent } from './components/contract-template-detail/contract-template-detail.component';
import { ContractManagementDetailComponent } from './components/contract-detail/contract-detail.component'; import { ContractManagementDetailComponent } from './components/contract-detail/contract-detail.component';
import { ContractManagementPartnerComponent } from './components/contract-partner/contract-partner.component'; import { ContractManagementPartnerComponent } from './components/contract-partner/contract-partner.component';
import { ContractManagementTemplateComponent } from './components/template/template.component';
import { ContractManagementTemplateTextComponent } from './components/contract-template-detail/contract-template-detail.component';
const COMPONENTS: any = [ const COMPONENTS: any = [
ContractManagementContractListComponent, ContractManagementContractListComponent,
ContractManagementPolicyComponent, ContractManagementPolicyComponent,
ContractManagementTemplateComponent, ContractManagementTemplateDetailComponent,
ContractManagementTemplateDetailComponent, ContractManagementTemplateDetailComponent,
ContractManagementIndexComponent, ContractManagementIndexComponent,
ContractManagementFrameComponent, ContractManagementFrameComponent,
ContractManagementDetailComponent, ContractManagementDetailComponent,
ContractManagementPartnerComponent ContractManagementPartnerComponent,
ContractManagementTemplateComponent,
ContractManagementTemplateTextComponent
]; ];
const NOTROUTECOMPONENTS: any = []; const NOTROUTECOMPONENTS: any = [];
@NgModule({ @NgModule({

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-01-04 21:05:49 * @Date : 2022-01-04 21:05:49
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-01-18 17:17:10 * @LastEditTime : 2022-02-24 10:00:59
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\services\\contract-management.service.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\services\\contract-management.service.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -31,6 +31,8 @@ export class ContractManagementService extends BaseService {
$api_listDetailed_page = `/api/sdc/contract/listDetailed/page`; $api_listDetailed_page = `/api/sdc/contract/listDetailed/page`;
// 查询框架合同 // 查询框架合同
$api_listFrame_page = `/api/sdc/contract/listFrame/page`; $api_listFrame_page = `/api/sdc/contract/listFrame/page`;
// 查询合伙人合同
$api_listPartner_page = `/api/sdc/contract/listPartner/page`;
// 获取订单合同表 // 获取订单合同表
$api_contract_get = `/api/sdc/contract/get`; $api_contract_get = `/api/sdc/contract/get`;
constructor(public injector: Injector) { constructor(public injector: Injector) {