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

This commit is contained in:
Taric Xin
2021-12-27 15:16:12 +08:00
20 changed files with 592 additions and 103 deletions

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: 2021-12-24 17:49:33 * @LastEditTime: 2021-12-27 13:28:13
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @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\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
@ -25,6 +25,7 @@
<div> <div>
<div style="display: flex; justify-content: space-between;"> <div style="display: flex; justify-content: space-between;">
<div sv-container> <div sv-container>
<sv label="网络货运人">{{ i?.goodsResource?.[0]?.enterpriseInfoName }} </sv>
<sv label="货主">{{ i?.goodsResource?.[0]?.shipperAppUserName }} </sv> <sv label="货主">{{ i?.goodsResource?.[0]?.shipperAppUserName }} </sv>
<sv label="所属项目">{{i?.goodsResource?.[0]?.enterpriseProjectName}}</sv> <sv label="所属项目">{{i?.goodsResource?.[0]?.enterpriseProjectName}}</sv>
<sv label="服务类型">{{i?.goodsResource?.[0]?.serviceTypeLabel}}</sv> <sv label="服务类型">{{i?.goodsResource?.[0]?.serviceTypeLabel}}</sv>

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: 2021-12-24 17:39:12 * @LastEditTime: 2021-12-27 13:37:18
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @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\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
@ -27,6 +27,7 @@
<div> <div>
<div style="display: flex; justify-content: space-between;"> <div style="display: flex; justify-content: space-between;">
<div sv-container> <div sv-container>
<sv label="网络货运人">{{ i?.goodsResource?.[0]?.enterpriseInfoName }} </sv>
<sv label="货主">{{ i?.goodsResource?.[0]?.shipperAppUserName }} </sv> <sv label="货主">{{ i?.goodsResource?.[0]?.shipperAppUserName }} </sv>
<sv label="所属项目">{{i?.goodsResource?.[0]?.enterpriseProjectName}}</sv> <sv label="所属项目">{{i?.goodsResource?.[0]?.enterpriseProjectName}}</sv>
<sv label="服务类型">{{i?.goodsResource?.[0]?.serviceTypeLabel}}</sv> <sv label="服务类型">{{i?.goodsResource?.[0]?.serviceTypeLabel}}</sv>
@ -95,7 +96,7 @@
<nz-card nzTitle="装卸货信息(一装一卸)" id="distannce1" > <nz-card nzTitle="装卸货信息(一装一卸)" id="distannce1" >
<div class="mt-md"> <div class="mt-md">
<div nz-row [nzGutter]="24"> <div nz-row [nzGutter]="24">
<div nz-col [nzSpan]="12"> <div nz-col [nzSpan]="8">
<div class="handling-info p-md"> <div class="handling-info p-md">
<div class="flex" *ngFor="let item of i?.unLoadingPlaceList;let idx = index"> <div class="flex" *ngFor="let item of i?.unLoadingPlaceList;let idx = index">
<div *ngIf="item?.type === '1'" class="loading-row"> <div *ngIf="item?.type === '1'" class="loading-row">
@ -107,7 +108,12 @@
</div> </div>
</div> </div>
</div> </div>
<div nz-col [nzSpan]="12"> <div nz-col [nzSpan]="8" style="display: flex; justify-content: center; align-items: center;">
<div >
<span style="padding: 24 px; font-size: 30px;"><img style="width: 48px;" src="../../../../../assets/images/usercenter/彩色-箭头-向右-1.png" alt=""></span>
</div>
</div>
<div nz-col [nzSpan]="8">
<div class="handling-info p-md"> <div class="handling-info p-md">
<div class="flex" *ngFor="let item of i?.unLoadingPlaceList;let idx = index"> <div class="flex" *ngFor="let item of i?.unLoadingPlaceList;let idx = index">
<div *ngIf="item?.type === '2'" class="loading-row"> <div *ngIf="item?.type === '2'" class="loading-row">

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-12-03 11:10:14 * @Date: 2021-12-03 11:10:14
* @LastEditTime: 2021-12-24 17:32:00 * @LastEditTime: 2021-12-27 13:25:20
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @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\supply-management\components\vehicle\vehicle.component.html * @FilePath: \tms-obc-web\src\app\routes\supply-management\components\vehicle\vehicle.component.html
@ -78,7 +78,7 @@
<div *ngIf="item.mybidDetailInfo.length > 0"> <div *ngIf="item.mybidDetailInfo.length > 0">
<p *ngFor="let data of item.mybidDetailInfo"> <p *ngFor="let data of item.mybidDetailInfo">
{{ data.expenseName }}{{ data.price }} {{ data.expenseName }}{{ data.price }}
<span *ngIf="data.paymentStatus" style="color: #f59a63">{{ data.paymentStatus }}</span> <span *ngIf="data.paymentStatusLabel" style="color: #f59a63">{{ data.paymentStatusLabel }}</span>
</p> </p>
</div> </div>
</ng-template> </ng-template>

View File

@ -632,17 +632,9 @@ tabs = {
nzWidth: 580, nzWidth: 580,
nzContent: UpdateFreightComponent, nzContent: UpdateFreightComponent,
nzComponentParams: { data: { ...data, billId: item.id } }, nzComponentParams: { data: { ...data, billId: item.id } },
nzOnOk: sin => {
this.service.request(this.service.$api_insertFreightChangeBulk, { billId: item.id, ...sin.sf.value }).subscribe(res => {
if (res) {
this.service.msgSrv.success('变更运费成功');
modal.destroy();
this.st.reload();
}
});
return false;
}
}); });
modal.afterClose.subscribe(_ => this.st.reload());
} }
}); });
} }

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: 2021-12-24 16:42:46 * @LastEditTime: 2021-12-27 11:45:44
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @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\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
@ -25,6 +25,7 @@
<div> <div>
<div style="display: flex; justify-content: space-between;"> <div style="display: flex; justify-content: space-between;">
<div sv-container> <div sv-container>
<sv label="网络货运人">{{ i?.goodsResource?.[0]?.enterpriseInfoName }} </sv>
<sv label="货主">{{ i?.goodsResource?.[0]?.shipperAppUserName }} </sv> <sv label="货主">{{ i?.goodsResource?.[0]?.shipperAppUserName }} </sv>
<sv label="所属项目">{{i?.goodsResource?.[0]?.enterpriseProjectName}}</sv> <sv label="所属项目">{{i?.goodsResource?.[0]?.enterpriseProjectName}}</sv>
<sv label="服务类型">{{i?.goodsResource?.[0]?.serviceTypeLabel}}</sv> <sv label="服务类型">{{i?.goodsResource?.[0]?.serviceTypeLabel}}</sv>

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: 2021-12-24 15:13:40 * @LastEditTime: 2021-12-27 13:56:18
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @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\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
@ -27,11 +27,12 @@
<div> <div>
<div style="display: flex; justify-content: space-between;"> <div style="display: flex; justify-content: space-between;">
<div sv-container> <div sv-container>
<sv label="货主">{{ i?.goodsResource?.[0]?.shipperAppUserName }} </sv> <sv label="网络货运人">{{ i?.goodsResource?.enterpriseInfoName }} </sv>
<sv label="所属项目">{{i?.goodsResource?.[0]?.enterpriseProjectName}}</sv> <sv label="货主">{{ i?.goodsResource?.shipperAppUserName }} </sv>
<sv label="服务类型">{{i?.goodsResource?.[0]?.serviceTypeLabel}}</sv> <sv label="所属项目">{{i?.goodsResource?.enterpriseProjectName}}</sv>
<sv label="录单员">{{i?.goodsResource?.[0]?.dispatchName}} 18100000000 </sv> <sv label="服务类型">{{i?.goodsResource?.serviceTypeLabel}}</sv>
<sv label="调度员">{{i?.goodsResource?.[0]?.dispatchName}} </sv> <sv label="录单员">{{i?.goodsResource?.dispatchName}} 18100000000 </sv>
<sv label="调度员">{{i?.goodsResource?.dispatchName}} </sv>
</div> </div>
<div> <div>
<div>状态</div> <div>状态</div>
@ -95,7 +96,7 @@
<nz-card nzTitle="装卸货信息(一装一卸)" id="distannce1" > <nz-card nzTitle="装卸货信息(一装一卸)" id="distannce1" >
<div class="mt-md"> <div class="mt-md">
<div nz-row [nzGutter]="24"> <div nz-row [nzGutter]="24">
<div nz-col [nzSpan]="12"> <div nz-col [nzSpan]="8">
<div class="handling-info p-md"> <div class="handling-info p-md">
<div class="flex" *ngFor="let item of i?.unLoadingPlaceList;let idx = index"> <div class="flex" *ngFor="let item of i?.unLoadingPlaceList;let idx = index">
<div *ngIf="item?.type === '1'" class="loading-row"> <div *ngIf="item?.type === '1'" class="loading-row">
@ -105,10 +106,15 @@
</div> </div>
</div> </div>
</div> </div>
<p class="time-info">计划装货时间:{{i?.goodsResource?.[0]?.loadingTime}}</p> <p class="time-info">计划装货时间:{{i?.goodsResource?.loadingTime}}</p>
</div> </div>
</div> </div>
<div nz-col [nzSpan]="12"> <div nz-col [nzSpan]="8" style="display: flex; justify-content: center; align-items: center;">
<div >
<span style="padding: 24 px; font-size: 30px;"><img style="width: 48px;" src="../../../../../assets/images/usercenter/彩色-箭头-向右-1.png" alt=""></span>
</div>
</div>
<div nz-col [nzSpan]="8">
<div class="handling-info p-md"> <div class="handling-info p-md">
<div class="flex" *ngFor="let item of i?.unLoadingPlaceList;let idx = index"> <div class="flex" *ngFor="let item of i?.unLoadingPlaceList;let idx = index">
<div *ngIf="item?.type === '2'" class="loading-row"> <div *ngIf="item?.type === '2'" class="loading-row">
@ -118,7 +124,7 @@
</div> </div>
</div> </div>
</div> </div>
<p class="time-info">计划卸货时间:{{i?.goodsResource?.[0]?.unloadingTime}}</p> <p class="time-info">计划卸货时间:{{i?.goodsResource?.unloadingTime}}</p>
</div> </div>
</div> </div>
</div> </div>
@ -127,7 +133,7 @@
<nz-card nzTitle="基本信息" id="distannce2"> <nz-card nzTitle="基本信息" id="distannce2">
<sv-container col="1"> <sv-container col="1">
<sv label="网络货运人"> <sv label="网络货运人">
{{i?.goodsResource?.[0]?.enterpriseInfoName}} {{i?.goodsResource?.enterpriseInfoName}}
</sv> </sv>
<sv label="货物名称"> <sv label="货物名称">
{{i?.goodsInfoList?.[0]?.goodsName}} {{i?.goodsInfoList?.[0]?.goodsName}}
@ -227,7 +233,7 @@
<nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" nzTitle="附件信息" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()"> <nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" nzTitle="附件信息" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">
<ng-container *nzModalContent> <ng-container *nzModalContent>
<app-imagelist [imgList]="imges"></app-imagelist> <app-imagelist [imgList]="[imges]"></app-imagelist>
</ng-container> </ng-container>
<ng-template #nzModalFooter> <ng-template #nzModalFooter>
<button nz-button nzType="primary" (click)="handleOK()" [disabled]="">取消</button> <button nz-button nzType="primary" (click)="handleOK()" [disabled]="">取消</button>

View File

@ -2,7 +2,7 @@ import { ViewChild } from '@angular/core';
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-12-03 15:31:52 * @Date: 2021-12-03 15:31:52
* @LastEditTime: 2021-12-24 17:20:40 * @LastEditTime: 2021-12-27 13:54:45
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @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\order-management\components\vehicle-detail\vehicle-detail.component.ts * @FilePath: \tms-obc-web\src\app\routes\order-management\components\vehicle-detail\vehicle-detail.component.ts
@ -95,9 +95,9 @@ export class OrderManagementVehicleDetailComponent implements OnInit {
} }
agreement(value: any) { agreement(value: any) {
if(value === '1') { if(value === '1') {
this.imges = this.i?.supplementAgreement this.imges = this.i?.agreementFilePath
} else if (value === '2') { } else if (value === '2') {
this.imges = this.i?.supplementAgreement this.imges = this.i?.agreementFilePath
} }
this.isVisible = true; this.isVisible = true;
} }

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-12-03 11:10:14 * @Date: 2021-12-03 11:10:14
* @LastEditTime: 2021-12-23 11:28:00 * @LastEditTime: 2021-12-27 13:25:08
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @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\supply-management\components\vehicle\vehicle.component.html * @FilePath: \tms-obc-web\src\app\routes\supply-management\components\vehicle\vehicle.component.html
@ -83,7 +83,7 @@
<div *ngIf="item.mybidDetailInfo.length > 0"> <div *ngIf="item.mybidDetailInfo.length > 0">
<p *ngFor="let data of item.mybidDetailInfo"> <p *ngFor="let data of item.mybidDetailInfo">
{{ data.expenseName }}{{ data.price }} {{ data.expenseName }}{{ data.price }}
<span *ngIf="data.paymentStatus" style="color: #f59a63">{{ data.paymentStatus }}</span> <span style="color: #f59a63">{{ data.paymentStatusLabel }}</span>
</p> </p>
</div> </div>
</ng-template> </ng-template>

View File

@ -240,7 +240,7 @@ resourceStatus: any;
}, },
} as SFSelectWidgetSchema, } as SFSelectWidgetSchema,
}, },
createTime: { creationTime: {
title: '创建时间', title: '创建时间',
type: 'string', type: 'string',
ui: { ui: {
@ -328,7 +328,7 @@ resourceStatus: any;
}, },
{ {
title: '运费明细', title: '运费明细',
width: '100px', width: '200px',
className: 'text-center', className: 'text-center',
render: 'mybidDetailInfo', render: 'mybidDetailInfo',
}, },
@ -369,7 +369,7 @@ resourceStatus: any;
{ {
title: '创建时间', title: '创建时间',
className: 'text-center', className: 'text-center',
index: 'createTime', index: 'creationTime',
}, },
{ {
title: '操作', title: '操作',

View File

@ -0,0 +1,70 @@
<!--
* @Author: your name
* @Date: 2021-12-24 15:38:08
* @LastEditTime: 2021-12-27 11:21:35
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\sys-setting\components\crm-management\crm-management.component.html
-->
<page-header-wrapper title="结算客户管理">
</page-header-wrapper>
<nz-card >
<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]="service.http.loading"
(formSubmit)="st?.load(1)" (formReset)="resetSF()"></sf>
</div>
<!-- 查询字段大于3个时根据展开状态调整布局 -->
<ng-container *ngIf="queryFieldCount > 4">
<div nz-col [nzSpan]="_$expand ? 24 : 18">
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div>
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand">
<button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="service.http.loading"
(click)="st?.load(1)">查询</button>
<button nz-button nzType="primary"
>导出</button>
<button nz-button (click)="resetSF()">重置</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
</button>
</div>
</ng-container>
</div>
</nz-card>
<nz-card class="content-box">
<div class="d-flex justify-content-end mb-sm">
<div>
<button nz-button nzType="primary" (click)="roleAction('',1)" >新增结算客户</button>
</div>
</div>
<st #st [data]="service.$api_settlementCustomer_page" [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]="service.http.loading" [scroll]="{ y: '370px' }" (change)="stChange($event)">
<ng-template st-row="customerType" let-item let-index="index">
<div>
<span *ngIf="item?.customerType == 1">客户</span>
<span *ngIf="item?.customerType == 2">供应商</span>
</div>
</ng-template>
</st>
</nz-card>
<nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" [nzTitle]="editText" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">
<ng-container *nzModalContent>
<sf #sfFre [schema]="addSchema" [ui]="ui2" [formData]="formData" [compact]="false" [button]="'none'">
</sf>
</ng-container>
<ng-template #nzModalFooter>
<button nz-button nzType="primary" (click)="handleCancel()" [disabled]="">取消</button>
<button nz-button nzType="default" (click)="handleOK()">确 定</button>
</ng-template>
</nz-modal>

View File

@ -0,0 +1,13 @@
:host::ng-deep{
.search-box{
.ant-card-body{
padding-bottom: 18px;
}
}
.content-box{
.ant-card-body{
padding-top: 14px;
}
}
}

View File

@ -0,0 +1,249 @@
import { Component, OnInit, ViewChild, Type } from '@angular/core';
import { STComponent, STColumn, STChange } from '@delon/abc/st';
import { SFComponent, SFRadioWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
import { ShipperBaseService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { of } from 'rxjs';
import { map } from 'rxjs/operators';
import { SystemService } from '../../services/system.service';
@Component({
selector: 'app-close-account',
templateUrl: './close-account.component.html',
styleUrls: ['./close-account.component.less']
})
export class CloseAccountComponent implements OnInit {
@ViewChild('st', { static: true })
st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
@ViewChild('sfFre', { static: false }) sfFre!: SFComponent;
ui: SFUISchema = {};
ui2: SFUISchema = {};
schema: SFSchema = {};
addSchema: SFSchema = {};
_$expand = false;
editText = '';
formData :any;
isVisible = false;
edit = false;
editId = false;
columns: STColumn[] = [
{ title: '结算客户名称', index: 'customerName' },
{ title: '结算客户编码', index: 'customerCode' },
{ title: '网络货运人', index: 'networkTransporterName' },
{ title: '货主名称', index: 'enterpriseName' },
{ title: '客户编码', index: 'crmCustomerCode' },
{ title: '供应商编码', index: 'crmSupplierCode' },
{
title: '操作',
buttons: [
{
text: '编辑',
click: item => this.roleAction(item, 2)
},
]
}
];
selectedRows: any[] = [];
get reqParams (){
return {
...this.sf?.value,
}};
constructor(
public service: SystemService,
private nzModalService: NzModalService,
public service2: ShipperBaseService,
) {}
ngOnInit(): void {
this.initSF()
this.initSFFre()
}
stChange(e: STChange): void {
switch (e.type) {
case 'checkbox':
this.selectedRows = e.checkbox!;
break;
case 'filter':
this.st.load();
break;
}
}
/**
* 伸缩查询条件
*/
expandToggle(): void {
this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand);
}
/**
* 查询字段个数
*/
get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length;
}
initSF(){
this.schema = {
properties: {
_$expand: { type: 'boolean', ui: { hidden: true } },
customerName: {
type: 'string',
title: '结算客户名称',
ui: { placeholder: '请输入' }
},
customerShortName: {
type: 'string',
title: '结算客户编码',
ui: { placeholder: '请输入' }
},
networkTransporterId: {
title: '网络货运人',
type: 'string',
ui: {
placeholder: '请选择',
widget: 'select',
asyncData: () => this.service2.getNetworkFreightForwarder(),
visibleIf: {
_$expand: (value: boolean) => value,
},
}
},
enterpriseName: {
type: 'string',
title: '货主名称',
ui: { placeholder: '请输入',
visibleIf: {
_$expand: (value: boolean) => value
} }
},
crmSupplierCode: {
type: 'string',
title: '供应商编码',
ui: { placeholder: '请输入',
visibleIf: {
_$expand: (value: boolean) => value
} }
},
}
};
this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } };
}
initSFFre() {
this.addSchema = {
properties: {
customerName: {
type: 'string',
title: '结算客户名称',
ui: { placeholder: '请输入' }
},
customerCode: {
type: 'string',
title: '结算客户编码',
ui: { placeholder: '请输入' }
},
networkTransporterId: {
title: '网络货运人',
type: 'string',
ui: {
placeholder: '请选择',
widget: 'select',
asyncData: () => this.service2.getNetworkFreightForwarder(),
visibleIf: {
_$expand: (value: boolean) => value,
},
}
},
enterpriseId: {
title: '货主',
type: 'string',
maxLength: 30,
ui: {
widget: 'select',
serverSearch: true,
searchDebounceTime: 300,
searchLoadingText: '搜索中...',
onSearch: (q: any) => {
console.log(q)
if (!!q) {
return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: q})
.pipe(map((res: any) => (res as any[]).map((i) => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
.toPromise();
} else {
return of([]);
}
},
} as SFSelectWidgetSchema,
},
},
required: ['customerName', 'customerCode', 'networkTransporterId', 'enterpriseId']
};
this.ui2 = { '*': { spanLabelFixed: 120, grid: { span: 24 } } };
}
roleAction(value: any,item?: any) {
if(item === 1) {
this.edit = false;
this.editText = '新增';
} else {
this.service.request(this.service.$api_settlementCustomer_get, {id: value.id}).subscribe((res: any) => {
console.log(res)
if(res) {
this.formData = res;
}
})
this.edit = true;
this.editId = value.id;
this.editText = '编辑';
}
this.isVisible = true;
}
deleteAction(item?: any) {
this.nzModalService.error({
nzTitle: '确认删除?',
nzClosable: false,
nzCancelText: '取消',
nzOnOk: () => {}
});
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
}
handleCancel() {
this.isVisible = false
}
handleOK() {
console.log(this.sfFre.value)
if(!this.sfFre.valid) {
this.service.msgSrv.warning('请正确填写完整!')
return
}
const params ={
...this.sfFre.value
}
if(this.editId) {
params.id = this.editId
}
this.service.request(this.service.$api_settlementCustomer_save, params).subscribe((res:any) => {
if(res) {
this.service.msgSrv.success('保存成功!')
this.isVisible = false
this.st.reload();
} else {
this.service.msgSrv.warning(res?.msg)
}
})
}
}

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-12-24 15:38:08 * @Date: 2021-12-24 15:38:08
* @LastEditTime: 2021-12-24 15:58:48 * @LastEditTime: 2021-12-27 10:46:43
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @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\sys-setting\components\crm-management\crm-management.component.html * @FilePath: \tms-obc-web\src\app\routes\sys-setting\components\crm-management\crm-management.component.html
@ -9,29 +9,50 @@
<page-header-wrapper title="网络货运人"> <page-header-wrapper title="网络货运人">
</page-header-wrapper> </page-header-wrapper>
<nz-card class="search-box"> <nz-card >
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col [nzSpan]="6"> <!-- 查询字段小于或等于3个时不显示伸缩按钮 -->
<sf #sf [schema]="searchSchema" [ui]="{ '*': { spanLabelFixed: 90,grid: { span: 24 } }}" [compact]="true" <div nz-col nzSpan="24" *ngIf="queryFieldCount <= 4">
[button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="ui" [mode]="'search'" [disabled]="!sf?.valid" [loading]="service.http.loading"
(formSubmit)="st?.load(1)" (formReset)="resetSF()"></sf>
</div> </div>
<div nz-col [nzSpan]="8" nzOffset="1">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button> <!-- 查询字段大于3个时根据展开状态调整布局 -->
<ng-container *ngIf="queryFieldCount > 4">
<div nz-col [nzSpan]="_$expand ? 24 : 18">
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div>
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand">
<button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="service.http.loading"
(click)="st?.load(1)">查询</button>
<button nz-button nzType="primary"
>导出</button>
<button nz-button (click)="resetSF()">重置</button> <button nz-button (click)="resetSF()">重置</button>
</div> <button nz-button nzType="link" (click)="expandToggle()">
</div> {{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
</button>
</div>
</ng-container>
</div>
</nz-card> </nz-card>
<nz-card class="content-box"> <nz-card class="content-box">
<st #st [data]="service.$api_networkTransporter_page" [columns]="columns"
<div class="d-flex justify-content-end mb-sm">
<div>
<button nz-button nzType="primary" (click)="roleAction()" >新建角色</button>
</div>
</div>
<st #st [data]="url" [columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }" [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }" [res]="{ reName: { list: 'data.records', total: 'data.total' } }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loading]="service.http.loading" [scroll]="{ y: '370px' }" (change)="stChange($event)"></st> [loading]="service.http.loading" [scroll]="{ y: '370px' }" (change)="stChange($event)">
</st>
</nz-card> </nz-card>
<nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" nzTitle="财务设置" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">
<ng-container *nzModalContent>
<sf #sfFre [schema]="addSchema" [ui]="ui2" [formData]="formData" [compact]="false" [button]="'none'">
</sf>
</ng-container>
<ng-template #nzModalFooter>
<button nz-button nzType="primary" (click)="handleCancel()" [disabled]="">取消</button>
<button nz-button nzType="default" (click)="handleOK()">确 定</button>
</ng-template>
</nz-modal>

View File

@ -1,6 +1,6 @@
import { Component, OnInit, ViewChild } from '@angular/core'; import { Component, OnInit, ViewChild } from '@angular/core';
import { STComponent, STColumn, STChange } from '@delon/abc/st'; import { STComponent, STColumn, STChange } from '@delon/abc/st';
import { SFComponent, SFSchema } from '@delon/form'; import { SFComponent, SFRadioWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { SystemService } from '../../services/system.service'; import { SystemService } from '../../services/system.service';
@ -12,52 +12,56 @@ import { SystemService } from '../../services/system.service';
export class NetworkFreightComponent implements OnInit { export class NetworkFreightComponent implements OnInit {
@ViewChild('st', { static: true }) @ViewChild('st', { static: true })
st!: STComponent; st!: STComponent;
@ViewChild('sf', { static: false }) @ViewChild('sf', { static: false }) sf!: SFComponent;
sf!: SFComponent; @ViewChild('sfFre', { static: false }) sfFre!: SFComponent;
ui: SFUISchema = {};
url = `/rule?_allow_anonymous=true`; ui2: SFUISchema = {};
schema: SFSchema = {};
searchSchema: SFSchema = { addSchema: SFSchema = {};
properties: { _$expand = false;
receiveName: { formData :any;
type: 'string', isVisible = false;
title: '角色名称', edit = false;
ui: { placeholder: '请输入' } editId = false;
}
}
};
columns: STColumn[] = [ columns: STColumn[] = [
{ title: '角色名称', index: 'no' }, { title: '公司名称', index: 'enterpriseName' },
{ title: '角色描述', index: 'description' }, { title: '纳税人识别号', index: 'taxCode' },
{ title: '创建人手机号', index: 'description' }, { title: '发票税率', index: 'invoiceTaxRate' },
{ { title: '电子发票账号', index: 'electronicInvoiceAccount' },
title: '创建时间', { title: 'ETC账号', index: 'etcAccount' },
index: 'updatedAt', { title: '电子合同账号', index: 'electronicContractAccount' },
type: 'date' { title: '开户行', index: 'bankName' },
}, { title: '虚拟账户', index: 'virtualAccount' },
{ title: '附加费比例', index: 'surchargeRate', format: (item: any) => {return item.surchargeRate + '%'} },
{ {
title: '操作', title: '操作',
buttons: [ buttons: [
{ {
text: '编辑', text: '财务设置',
click: item => this.roleAction(item) click: item => this.roleAction(item, 2)
}, },
{ {
text: '删除', text: '合同设置',
click: item => this.deleteAction(item) click: item => this.roleAction(item, 2)
} },
] ]
} }
]; ];
selectedRows: any[] = []; selectedRows: any[] = [];
reqParams = { pageIndex: 1, pageSize: 10 }; get reqParams (){
return {
...this.sf?.value,
}};
constructor(public service: SystemService, private nzModalService: NzModalService) {} constructor(public service: SystemService, private nzModalService: NzModalService) {}
ngOnInit(): void {} ngOnInit(): void {
this.initSF()
this.initSFFre()
}
stChange(e: STChange): void { stChange(e: STChange): void {
switch (e.type) { switch (e.type) {
@ -69,17 +73,83 @@ export class NetworkFreightComponent implements OnInit {
break; break;
} }
} }
/**
* 伸缩查询条件
*/
expandToggle(): void {
this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand);
}
/**
* 查询字段个数
*/
get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length;
}
initSF(){
this.schema = {
properties: {
_$expand: { type: 'boolean', ui: { hidden: true } },
enterpriseName: {
type: 'string',
title: '公司名称',
ui: { placeholder: '请输入' }
},
taxCode: {
type: 'string',
title: '纳税人识别号',
ui: { placeholder: '请输入' }
},
}
roleAction(item?: any) { };
const modal = this.nzModalService.create({ this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } };
// nzContent: SettingRoleEditComponent, }
nzWidth: 900, initSFFre() {
nzComponentParams: item ? { i: { ...item } } : { i: { id: 0 } }, this.addSchema = {
nzFooter: null properties: {
}); enterpriseName: {
modal.afterClose.subscribe(res => { type: 'string',
this.st.load(); title: '公司名称',
}); ui: { placeholder: '请输入' }
},
taxCode: {
type: 'string',
title: '纳税人识别号',
ui: { placeholder: '请输入' }
},
customerCode: {
type: 'string',
title: '税收分类编码',
ui: { placeholder: '请输入' }
},
invoiceTaxRate: {
type: 'string',
title: '发票税率',
ui: { placeholder: '请输入' }
},
surchargeRate: {
type: 'string',
title: '附加费比例',
ui: { placeholder: '请输入' }
},
},
required: ['enterpriseName', 'taxCode', 'customerType', 'invoiceTaxRate', 'surchargeRate']
};
this.ui2 = { '*': { spanLabelFixed: 120, grid: { span: 24 } } };
}
roleAction(value: any,item?: any) {
this.service.request(this.service.$api_get_crmCustomer, {id: value.id}).subscribe((res: any) => {
console.log(res)
if(res) {
this.formData = res;
}
})
this.edit = true;
this.editId = value.id;
this.isVisible = true;
} }
deleteAction(item?: any) { deleteAction(item?: any) {
@ -97,4 +167,31 @@ export class NetworkFreightComponent implements OnInit {
resetSF() { resetSF() {
this.sf.reset(); this.sf.reset();
} }
handleCancel() {
this.isVisible = false
}
handleOK() {
console.log(this.sfFre.value)
if(!this.sfFre.valid) {
this.service.msgSrv.warning('请正确填写完整!')
return
}
const params ={
...this.sfFre.value
}
if(this.editId) {
params.id = this.editId
}
this.service.request(this.service.$api_save_crmCustomer, params).subscribe((res:any) => {
if(res) {
this.service.msgSrv.success('保存成功!')
this.isVisible = false
this.st.reload();
} else {
this.service.msgSrv.warning(res?.msg)
}
})
}
} }

View File

@ -1,8 +1,8 @@
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-12-20 17:18:43 * @Date: 2021-12-20 17:18:43
* @LastEditTime: 2021-12-27 09:30:39 * @LastEditTime: 2021-12-27 14:09:14
* @LastEditors: your name * @LastEditors: Please set LastEditors
* @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\sys-setting\services\system.service.ts * @FilePath: \tms-obc-web\src\app\routes\sys-setting\services\system.service.ts
*/ */
@ -55,6 +55,31 @@ export class SystemService extends BaseService {
// 获取某个应用的所有菜单 // 获取某个应用的所有菜单
$api_getAllFunctionInfoByAppId: string = '/api/mdc/cuc/functionInfo/getAllFunctionInfoByAppId'; $api_getAllFunctionInfoByAppId: string = '/api/mdc/cuc/functionInfo/getAllFunctionInfoByAppId';
// 查询网络货运信息表
$api_networkTransporter_page = '/api/mdc/networkTransporter/list/page';
// 获取网络货运信息表(id)
$api_get_networkTransporter = '/api/mdc/networkTransporter/get';
// 批量获取网络货运信息
$api_findNetworkTransporterByIds = '/api/mdc/networkTransporter/findNetworkTransporterByIds';
// 查找所有网络货运信息(下拉)
$api_networkTransporter_findAll = '/api/mdc/networkTransporter/findAll';
// 删除网络货运信息表
$api_networkTransporter_deletebatch = '/api/mdc/networkTransporter/deletebatch';
// 保存网络货运信息表
$api_networkTransporter_save = '/api/mdc/networkTransporter/save';
// 查询结算客户表
$api_settlementCustomer_page = '/api/mdc/settlementCustomer/list/page';
// 获取结算客户表
$api_settlementCustomer_get = '/api/mdc/settlementCustomer/get';
// 保存结算客户表
$api_settlementCustomer_save = '/api/mdc/settlementCustomer/save';
// 删除结算客户表
$api_settlementCustomer_deletebatch = '/api/mdc/settlementCustomer/deletebatch';
// 获取货主企业列表
public $api_enterpriceList = '/api/mdc/cuc/enterpriseInfo/operate/enterpriceList';
$api_getRoleTemplateInfo: string = ''; $api_getRoleTemplateInfo: string = '';
$api_getFunctionButtonInfo: string = ''; $api_getFunctionButtonInfo: string = '';
$api_getFunctionDataInfo: string = ''; $api_getFunctionDataInfo: string = '';

View File

@ -1,8 +1,8 @@
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-12-03 15:23:05 * @Date: 2021-12-03 15:23:05
* @LastEditTime: 2021-12-24 15:57:37 * @LastEditTime: 2021-12-27 11:11:12
* @LastEditors: your name * @LastEditors: Please set LastEditors
* @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\sys-setting\sys-setting-routing.module.ts * @FilePath: \tms-obc-web\src\app\routes\sys-setting\sys-setting-routing.module.ts
*/ */
@ -13,6 +13,7 @@ import { AuditReasonConfigComponent } from './components/audit-reason-config/aud
import { BasicConfigComponent } from './components/basic-config/basic-config.component'; import { BasicConfigComponent } from './components/basic-config/basic-config.component';
import { BasicSettingComponent } from './components/basic-setting/basic-setting.component'; import { BasicSettingComponent } from './components/basic-setting/basic-setting.component';
import { CartConfigComponent } from './components/cart-config/cart-config.component'; import { CartConfigComponent } from './components/cart-config/cart-config.component';
import { CloseAccountComponent } from './components/close-account/close-account.component';
import { CrmManagementComponent } from './components/crm-management/crm-management.component'; import { CrmManagementComponent } from './components/crm-management/crm-management.component';
import { GoodsNameConfigComponent } from './components/goods-name-config/goods-name-config.component'; import { GoodsNameConfigComponent } from './components/goods-name-config/goods-name-config.component';
import { NetworkFreightComponent } from './components/network-freight/network-freight.component'; import { NetworkFreightComponent } from './components/network-freight/network-freight.component';
@ -38,6 +39,7 @@ const routes: Routes = [
{ path: 'goods-name-config', component: GoodsNameConfigComponent }, { path: 'goods-name-config', component: GoodsNameConfigComponent },
{ path: 'crm-management', component: CrmManagementComponent }, { path: 'crm-management', component: CrmManagementComponent },
{ path: 'network-freight', component: NetworkFreightComponent }, { path: 'network-freight', component: NetworkFreightComponent },
{ path: 'close-account', component: CloseAccountComponent },
]; ];
@NgModule({ @NgModule({

View File

@ -23,6 +23,7 @@ import { SettingMenuComponent } from './components/role-management/menu/menu.com
import { GoodsNameConfigComponent } from './components/goods-name-config/goods-name-config.component'; import { GoodsNameConfigComponent } from './components/goods-name-config/goods-name-config.component';
import { CrmManagementComponent } from './components/crm-management/crm-management.component'; import { CrmManagementComponent } from './components/crm-management/crm-management.component';
import { NetworkFreightComponent } from './components/network-freight/network-freight.component'; import { NetworkFreightComponent } from './components/network-freight/network-freight.component';
import { CloseAccountComponent } from './components/close-account/close-account.component';
const COMPONENTS = [ const COMPONENTS = [
StaffManagementComponent, StaffManagementComponent,
@ -38,7 +39,8 @@ const COMPONENTS = [
SystemConfigComponent, SystemConfigComponent,
GoodsNameConfigComponent, GoodsNameConfigComponent,
CrmManagementComponent, CrmManagementComponent,
NetworkFreightComponent NetworkFreightComponent,
CloseAccountComponent
]; ];
const NOTROUTECOMPONENTS = [ const NOTROUTECOMPONENTS = [
BuyerTranspowerComponent, BuyerTranspowerComponent,

View File

@ -9,7 +9,7 @@ export class ShipperBaseService extends BaseService {
$api_get_carless_carrier = ``; // 获取承运人 $api_get_carless_carrier = ``; // 获取承运人
$api_get_enterprise_project = `/api/mdc/cuc/enterpriseProject/getEnterpriseProjectList `; // 所属项目列表 $api_get_enterprise_project = `/api/mdc/cuc/enterpriseProject/getEnterpriseProjectList `; // 所属项目列表
$api_get_staff_list = `/api/mdc/cuc/userApp/getStaffList`; //查询企业项目员工列表(录单员) $api_get_staff_list = `/api/mdc/cuc/userApp/getStaffList`; //查询企业项目员工列表(录单员)
$api_get_network_freight_forwarder = ``; // 获取网络货运人 $api_get_network_freight_forwarder = `/api/mdc/networkTransporter/findAll`; // 获取网络货运人
constructor(public injector: Injector) { constructor(public injector: Injector) {
@ -92,8 +92,8 @@ export class ShipperBaseService extends BaseService {
} }
const list = res.map(((item: any) => { const list = res.map(((item: any) => {
return { return {
label: item.name, label: item.enterpriseName,
value: item.userId value: item.id
} }
})) }))
const obj = [{ value: '', label: '全部' }]; const obj = [{ value: '', label: '全部' }];

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -409,6 +409,10 @@
"text": "CRM客户管理", "text": "CRM客户管理",
"link": "/system/crm-management" "link": "/system/crm-management"
}, },
{
"text": "结算客户管理",
"link": "/system/close-account"
},
{ {
"text": "网络货运人", "text": "网络货运人",
"link": "/system/network-freight" "link": "/system/network-freight"