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

This commit is contained in:
潘晓云
2022-04-13 15:21:17 +08:00
16 changed files with 99 additions and 66 deletions

View File

@ -1,3 +1,4 @@
<span class="mr-md">客服电话0755-88393483</span>
<!--Search--> <!--Search-->
<layout-pro-search class="hidden-xs"></layout-pro-search> <layout-pro-search class="hidden-xs"></layout-pro-search>
<!--Link--> <!--Link-->

View File

@ -4,8 +4,8 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-04-06 17:57:07 * @Date : 2022-04-06 17:57:07
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-04-13 10:17:44 * @LastEditTime : 2022-04-13 14:30:10
* @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\datascreen\\map\\map.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\datascreen\\map\\map.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
<g2-custom div style="height: 680px; " delay="200" (render)="render($event)" ></g2-custom> <g2-custom #map div style="height: 680px; " delay="200" (render)="render($event)" ></g2-custom>

View File

@ -1,4 +1,4 @@
import { Component, ElementRef, Input, NgZone, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core'; import { Component, ElementRef, Input, NgZone, OnChanges, OnInit, SimpleChanges, ViewChild, AfterViewInit } from '@angular/core';
import { Chart } from '@antv/g2'; import { Chart } from '@antv/g2';
import DataSet from '@antv/data-set'; import DataSet from '@antv/data-set';
import { DataService } from 'src/app/routes/datatable/services/data.service'; import { DataService } from 'src/app/routes/datatable/services/data.service';
@ -7,9 +7,11 @@ import { DataService } from 'src/app/routes/datatable/services/data.service';
templateUrl: './map.component.html', templateUrl: './map.component.html',
styleUrls: ['./map.component.less'] styleUrls: ['./map.component.less']
}) })
export class DatatableCustomindexMapComponent implements OnInit, OnChanges { export class DatatableCustomindexMapComponent implements OnInit, OnChanges, AfterViewInit {
el: any; el: any;
@Input() chartData: any; @Input() chartData: any;
@ViewChild('auditModal', { static: false }) auditModal!: any;
@ViewChild('map',{static: false}) map!: any;
chart: any; chart: any;
mapData: any; mapData: any;
ds!: DataSet ; ds!: DataSet ;
@ -18,6 +20,10 @@ export class DatatableCustomindexMapComponent implements OnInit, OnChanges {
userDv: any; userDv: any;
userData: any = []; userData: any = [];
constructor(private service: DataService, private ngZone: NgZone) {} constructor(private service: DataService, private ngZone: NgZone) {}
ngAfterViewInit(): void {
this.map.el.nativeElement.style.height = this.map.el.nativeElement.clientWidth + 'px'
this.chart.render();
}
ngOnChanges(changes: SimpleChanges): void { ngOnChanges(changes: SimpleChanges): void {
if (this.chartData) { if (this.chartData) {
@ -84,18 +90,6 @@ export class DatatableCustomindexMapComponent implements OnInit, OnChanges {
stroke: '#ccc', stroke: '#ccc',
lineWidth: 1 lineWidth: 1
}); });
// 可视化用户数据
// this.userData = [
// { name: '山东', value: 21 },
// { name: '山东', value: 22},
// { name: '广东', value: 20, },
// { name: '广东', value: 20 },
// { name: '四川', value: 120 },
// { name: '湖南', value: 200 },
// { name: '河北', value: 30 },
// ];
let value: any = [] let value: any = []
this.service.request(this.service.$api_getTransactionDistribution).subscribe((res: any) => { this.service.request(this.service.$api_getTransactionDistribution).subscribe((res: any) => {
if(res) { if(res) {

View File

@ -90,7 +90,9 @@ export class OrderManagementBulkeDetailComponent implements OnInit {
markerLabel: '装', markerLabel: '装',
color: 'blue', color: 'blue',
position: [res.startingPoint.longitude, res.startingPoint.latitude], position: [res.startingPoint.longitude, res.startingPoint.latitude],
title: `发货地:${res.startingPoint.province}${res.startingPoint.city}${res.startingPoint.area}${res.startingPoint.detailedAddress}`, title: `发货地:${res.startingPoint.province}${res.startingPoint.city}${res.startingPoint.area || ''}${
res.startingPoint.detailedAddress
}`,
time: '计划出发时间:' + res.loadPlanTime time: '计划出发时间:' + res.loadPlanTime
}, },
{ {

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-01-04 17:29:18 * @Date : 2022-01-04 17:29:18
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-03-29 16:26:09 * @LastEditTime : 2022-04-13 10:50:02
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\complaint-detail\\complaint-detail.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\complaint-detail\\complaint-detail.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -24,8 +24,12 @@
<h2>投诉单号:{{datailList?.complaintCode}}</h2> <h2>投诉单号:{{datailList?.complaintCode}}</h2>
<sf #sf [compact]="true" [ui]="ui" [schema]="schema" [button]="'none'" *ngIf="schema" [formData]="datailList"> <sf #sf [compact]="true" [ui]="ui" [schema]="schema" [button]="'none'" *ngIf="schema" [formData]="datailList">
<ng-template sf-template="imgUrls" let-schema="schema" let-item let-ui="ui"> <ng-template sf-template="imgUrls" let-schema="schema" let-item let-ui="ui">
<app-imagelist [imgList]="datailList?.imgUrls"></app-imagelist> <!-- <app-imagelist [imgList]="datailList?.imgUrls"></app-imagelist> -->
<img nz-image width="100px" height="100%" *ngFor="let item of datailList?.imgUrls" [nzSrc]="item"
style="margin:0 10px 0 0" alt="" />
</ng-template> </ng-template>
</sf> </sf>
</nz-card> </nz-card>

View File

@ -202,15 +202,28 @@ export class OrderManagementRiskComponent implements OnInit {
} as SFSelectWidgetSchema } as SFSelectWidgetSchema
}, },
shipperId: { shipperId: {
title: '托运人',
type: 'string', type: 'string',
title: '托运人',
ui: { ui: {
widget: 'dict-select', widget: 'select',
params: { dictKey: 'BulkFreightUnitPriceType' }, serverSearch: true,
containsAllLabel: true, searchDebounceTime: 300,
searchLoadingText: '搜索中...',
allowClear: true,
visibleIf: { visibleIf: {
_$expand: (value: boolean) => value _$expand: (value: boolean) => value
},
onSearch: (q: any) => {
let str =q.replace(/^\s+|\s+$/g,"");
if (str) {
return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: str })
.pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
.toPromise();
} else {
return of([]);
} }
},
} as SFSelectWidgetSchema } as SFSelectWidgetSchema
}, },
enterpriseInfoId: { enterpriseInfoId: {

View File

@ -80,7 +80,7 @@ export class OrderManagementVehicleDetailComponent implements OnInit {
markerLabel: '装', markerLabel: '装',
color: 'blue', color: 'blue',
position: [res.startingPoint.longitude, res.startingPoint.latitude], position: [res.startingPoint.longitude, res.startingPoint.latitude],
title: `发货地:${res.startingPoint.province}${res.startingPoint.city}${res.startingPoint.area}${res.startingPoint.detailedAddress}`, title: `发货地:${res.startingPoint.province}${res.startingPoint.city}${res.startingPoint.area || ''}${res.startingPoint.detailedAddress}`,
time: '计划出发时间:' +res.loadPlanTime time: '计划出发时间:' +res.loadPlanTime
}, },
{ {

View File

@ -94,7 +94,7 @@
<sv-title>货物信息</sv-title> <sv-title>货物信息</sv-title>
<ng-container *ngFor="let item of i?.goodsInfoVOList"> <ng-container *ngFor="let item of i?.goodsInfoVOList">
<sv label="货物名称"> <sv label="货物名称">
{{ item.goodsName }} {{ item.goodsTypeName }} - {{ item.goodsName }}
</sv> </sv>
<sv label="货物数量"> {{ item.weight }}吨,{{ item.volume }}方,{{ item.number }}件 </sv> <sv label="货物数量"> {{ item.weight }}吨,{{ item.volume }}方,{{ item.number }}件 </sv>
</ng-container> </ng-container>
@ -190,7 +190,7 @@
</span> </span>
<span>(运费{{ i?.totalFreight | currency }}含附加运费 {{ i?.totalSurcharge | currency }}</span> <span>(运费{{ i?.totalFreight | currency }}含附加运费 {{ i?.totalSurcharge | currency }}</span>
</h3> </h3>
<div>车队长:{{ i?.payeeName }}/{{ i?.payeePhone }}/{{ i?.payeeCardNo }}</div> <div *ngIf='i?.resourceStatus !== "1"' >车队长:{{ i?.payeeName }}/{{ i?.payeePhone }}/{{ i?.payeeCardNo }}</div>
</div> </div>
</div> </div>
</nz-card> </nz-card>
@ -220,6 +220,11 @@
[page]="{}" [page]="{}"
[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' } }">
<ng-template st-row="operator" let-item>
<div>
{{ item?.operator }} {{ item?.telephone ? '/' + item?.telephone : '' }}
</div>
</ng-template>
</st> </st>
</nz-card> </nz-card>
</div> </div>

View File

@ -23,7 +23,7 @@ export class SupplyManagementVehicleDetailComponent implements OnInit {
} }
logColumns: STColumn[] = [ logColumns: STColumn[] = [
{ title: '内容', index: 'operationContent' }, { title: '内容', index: 'operationContent' },
{ title: '操作人', index: 'operator' }, { title: '操作人', render: 'operator' },
{ title: '操作时间', index: 'operatorTimestamp' }, { title: '操作时间', index: 'operatorTimestamp' },
]; ];
totalObj: any; totalObj: any;

View File

@ -8,7 +8,8 @@
[button]="'none'"></sf> [button]="'none'"></sf>
</div> </div>
<div nz-col [nzSpan]="8" nzOffset="1"> <div nz-col [nzSpan]="8" nzOffset="1">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)" acl [acl-ability]="['SYSTEM-STAFF-list']">查询</button> <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)" acl
[acl-ability]="['SYSTEM-STAFF-list']">查询</button>
<button nz-button (click)="resetSF()">重置</button> <button nz-button (click)="resetSF()">重置</button>
</div> </div>
</div> </div>
@ -18,8 +19,9 @@
<div class="d-flex justify-content-between mb-sm"> <div class="d-flex justify-content-between mb-sm">
<label style="font-size: 18px;"></label> <label style="font-size: 18px;"></label>
<div> <div>
<button nz-button nzType="primary" (click)="staffAction()" acl [acl-ability]="['SYSTEM-STAFF-add']">添加员工</button> <button nz-button nzType="primary" (click)="staffAction()" acl
<button nz-button acl [acl-ability]="['SYSTEM-STAFF-export']">导出</button> [acl-ability]="['SYSTEM-STAFF-add']">添加员工</button>
<button nz-button acl [acl-ability]="['SYSTEM-STAFF-export']" (click)="exportList()">导出</button>
</div> </div>
</div> </div>
@ -33,6 +35,6 @@
</div> </div>
<st #st [data]="service.$api_get_enterprise_staff_page" [columns]="columns" [page]="{}" <st #st [data]="service.$api_get_enterprise_staff_page" [columns]="columns" [page]="{}"
[req]="{ params: {nameOrPhone: this.sf.value?.nameOrPhone} }" [loading]="false" [req]="{ params: {nameOrPhone: this.sf.value?.nameOrPhone} }" [loading]="false" [scroll]="{ y: '370px' }"
[scroll]="{ y: '370px' }" (change)="stChange($event)"></st> (change)="stChange($event)"></st>
</nz-card> </nz-card>

View File

@ -67,7 +67,8 @@ export class StaffManagementComponent implements OnInit {
}, },
{ {
text: '冻结', text: '冻结',
iif: item => item.stateLocked === 0 && item.roleCode.split(',').indexOf('Administrator') === -1 && item.telephone !== this.user.phone, iif: item =>
item.stateLocked === 0 && item.roleCode.split(',').indexOf('Administrator') === -1 && item.telephone !== this.user.phone,
click: item => this.action(item, 1), click: item => this.action(item, 1),
acl: { ability: ['SYSTEM-STAFF-lock'] } acl: { ability: ['SYSTEM-STAFF-lock'] }
}, },
@ -79,7 +80,8 @@ export class StaffManagementComponent implements OnInit {
}, },
{ {
text: '删除', text: '删除',
iif: item => item.stateLocked === 0 && item.roleCode.split(',').indexOf('Administrator') === -1 && item.telephone !== this.user.phone, iif: item =>
item.stateLocked === 0 && item.roleCode.split(',').indexOf('Administrator') === -1 && item.telephone !== this.user.phone,
click: item => this.action(item, 3), click: item => this.action(item, 3),
acl: { ability: ['SYSTEM-STAFF-delete'] } acl: { ability: ['SYSTEM-STAFF-delete'] }
} }
@ -167,6 +169,11 @@ export class StaffManagementComponent implements OnInit {
this.sf.reset(); this.sf.reset();
} }
exportList() {
const params = { nameOrPhone: this.sf.value?.nameOrPhone };
this.service.downloadFile(this.service.$api_export_staff, { ...params, pageSize: -1 });
}
private deleteStaff(params: any) { private deleteStaff(params: any) {
this.service.request(this.service.$api_delete_staff, params).subscribe(res => { this.service.request(this.service.$api_delete_staff, params).subscribe(res => {
if (res) { if (res) {

View File

@ -15,6 +15,8 @@ import { BaseService } from 'src/app/shared/services';
export class SystemService extends BaseService { export class SystemService extends BaseService {
// 分页查询企业项目员工列表 // 分页查询企业项目员工列表
$api_get_enterprise_staff_page = '/api/mdc/cuc/userApp/getEnterpriseProjectStaffListPage'; $api_get_enterprise_staff_page = '/api/mdc/cuc/userApp/getEnterpriseProjectStaffListPage';
// 分页查询企业项目员工列表
$api_export_staff = '/api/mdc/cuc/userApp/enterpriseProjectStaffExport';
// 添加员工 // 添加员工
$api_add_staff = '/api/mdc/cuc/userApp/addStaff'; $api_add_staff = '/api/mdc/cuc/userApp/addStaff';
// 编辑员工 // 编辑员工

View File

@ -256,7 +256,7 @@ export class CancellationInvoiceComponent implements OnInit {
hidden: true hidden: true
} }
}, },
vatappHId: { vatappHCode: {
type: 'string', type: 'string',
title: '申请编号', title: '申请编号',
ui: { ui: {
@ -330,18 +330,18 @@ export class CancellationInvoiceComponent implements OnInit {
private initST(): STColumn[] { private initST(): STColumn[] {
return [ return [
{ title: '', index: 'key', type: 'checkbox', fixed: 'left', width: 50, className: 'text-center' }, { title: '', index: 'key', type: 'checkbox', fixed: 'left', width: 50, className: 'text-center' },
{ title: '分票编号', render: 'vatinvcode', width: 200 }, { title: '分票编号', render: 'vatinvcode', width: 220 },
{ {
title: '申请编号', title: '申请编号',
index: 'vatappHCode', index: 'vatappHCode',
width: 150, width: 220,
type: 'link', type: 'link',
click: item => this.router.navigate(['/ticket/invoice-requested/detail/' + item?.vatappHId]) click: item => this.router.navigate(['/ticket/invoice-requested/detail/' + item?.vatappHId])
}, },
{ title: '申请时间', index: 'createTime', type: 'date', width: 150 }, { title: '申请时间', index: 'createTime', type: 'date', width: 150 },
{ title: '发票类型', index: 'vatapptypeLabel', width: 150 }, { title: '发票类型', index: 'vatapptypeLabel', width: 150 },
{ title: '网络货运人', index: 'ltdName', width: 160 }, { title: '网络货运人', index: 'ltdName', width: 220 },
{ title: '购买人', index: 'artoname', width: 160 }, { title: '购买人', index: 'artoname', width: 220 },
{ title: '订单数', index: 'ordlines', width: 90, className: 'text-right' }, { title: '订单数', index: 'ordlines', width: 90, className: 'text-right' },
{ {
title: '价税合计', title: '价税合计',
@ -376,7 +376,7 @@ export class CancellationInvoiceComponent implements OnInit {
}, },
{ title: '服务名称', index: 'vatname', width: 120 }, { title: '服务名称', index: 'vatname', width: 120 },
{ title: '销货清单', index: 'isdetail', width: 120, type: 'enum', enum: { 1: '是', 0: '否' }, className: 'text-center' }, { title: '销货清单', index: 'isdetail', width: 120, type: 'enum', enum: { 1: '是', 0: '否' }, className: 'text-center' },
{ title: '票面备注', index: 'remarks', width: 250 }, { title: '票面备注', index: 'remarks', width: 300 },
{ title: '其他要求', index: 'otherremarks', width: 100 }, { title: '其他要求', index: 'otherremarks', width: 100 },
{ {
title: '操作', title: '操作',

View File

@ -118,7 +118,7 @@
(ngModelChange)="invoiceST.setRow(index, { vatname: $event })" style="width: 100%"> (ngModelChange)="invoiceST.setRow(index, { vatname: $event })" style="width: 100%">
<nz-option [nzValue]="item.value" [nzLabel]="item.label" *ngFor="let item of services"></nz-option> <nz-option [nzValue]="item.value" [nzLabel]="item.label" *ngFor="let item of services"></nz-option>
</nz-select> </nz-select>
<ng-container *ngIf="!isEdit">{{ item.vatname }}</ng-container> <ng-container *ngIf="!isEdit">{{ item.vatnameLabel || item.vatname }}</ng-container>
</ng-template> </ng-template>
<ng-template st-row="vatmodel" let-item let-index="index"> <ng-template st-row="vatmodel" let-item let-index="index">
<input *ngIf="isEdit" nz-input [ngModel]="item.vatmodel" <input *ngIf="isEdit" nz-input [ngModel]="item.vatmodel"

View File

@ -17,7 +17,7 @@ export class UserCenterComponentsDriverComponent implements OnInit {
_$expand = false; _$expand = false;
@ViewChild('st', { static: false }) st!: STComponent; @ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent; @ViewChild('sf', { static: false }) sf!: SFComponent;
ui: SFUISchema = { '*': { spanLabelFixed: 120, grid: { lg: 8, md: 12, sm: 12, xs: 24 }, enter: () => this.st.load() } }; ui: SFUISchema = { '*': { spanLabelFixed: 130, grid: { lg: 8, md: 12, sm: 12, xs: 24 }, enter: () => this.st.load() } };
schema: SFSchema = this.initSF(); schema: SFSchema = this.initSF();
columns: STColumn[] = this.initST(); columns: STColumn[] = this.initST();
@ -199,10 +199,10 @@ export class UserCenterComponentsDriverComponent implements OnInit {
title: '从业资格证状态', title: '从业资格证状态',
enum: [ enum: [
{ label: '全部', value: '' }, { label: '全部', value: '' },
{ label: '待审核', value: 10 }, { label: '未提交 ', value: -1 },
{ label: '审核通过', value: 20 }, { label: '已提交', value: 1 },
{ label: '驳回', value: 30 }, { label: '已通过', value: 2 },
{ label: '证件过期', value: 40 } { label: '过期', value: 3 }
], ],
default: '', default: '',
ui: { ui: {
@ -302,10 +302,13 @@ export class UserCenterComponentsDriverComponent implements OnInit {
type: 'badge', type: 'badge',
badge: { badge: {
'-1': { text: '未提交', color: 'default' }, '-1': { text: '未提交', color: 'default' },
10: { text: '待审核', color: 'default' }, 1: { text: '已提交', color: 'processing' },
20: { text: '审核通过', color: 'success' }, 2: { text: '通过', color: 'success' },
30: { text: '驳回', color: 'warning' }, 3: { text: '已过期', color: 'error' },
40: { text: '证件过期', color: 'error' } // 10: { text: '待审核', color: 'default' },
// 20: { text: '审核通过', color: 'success' },
// 30: { text: '驳回', color: 'warning' },
// 40: { text: '证件过期', color: 'error' }
}, },
width: 180 width: 180
}, },

View File

@ -155,19 +155,19 @@ export class VehicleComponentsAuditComponent implements OnInit {
// }, // },
// }, // },
// }, // },
approvalPassTime: { // approvalPassTime: {
type: 'string', // type: 'string',
title: '审核通过时间', // title: '审核通过时间',
ui: { // ui: {
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: { // visibleIf: {
expand: (value: boolean) => value // expand: (value: boolean) => value
} // }
} as SFDateWidgetSchema // } as SFDateWidgetSchema
} // }
} }
}; };
this.ui = { '*': { spanLabelFixed: 120, grid: { span: 8, gutter: 4 }, enter: () => this.st.load() } }; this.ui = { '*': { spanLabelFixed: 120, grid: { span: 8, gutter: 4 }, enter: () => this.st.load() } };