Merge branch 'develop'

This commit is contained in:
wangshiming
2022-05-09 16:35:21 +08:00
17 changed files with 385 additions and 374 deletions

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-01-18 09:51:21 * @Date : 2022-01-18 09:51:21
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-05-09 11:25:41 * @LastEditTime : 2022-05-09 15:14:15
* @FilePath : \\tms-obc-web\\proxy.conf.js * @FilePath : \\tms-obc-web\\proxy.conf.js
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -30,7 +30,7 @@ module.exports = {
// }, // },
'//api': { '//api': {
target: { target: {
host: 'tms-api-dev.eascs.com', host: 'tms-api-test.eascs.com',
protocol: 'https:', protocol: 'https:',
port: 443 port: 443
}, },

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-04-06 10:57:56 * @Date : 2022-04-06 10:57:56
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-05-07 09:43:16 * @LastEditTime : 2022-05-09 13:59:19
* @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\datascreen\\datascreen.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\datascreen\\datascreen.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -48,31 +48,6 @@
<nz-card nzTitle="本年交易趋势"> <nz-card nzTitle="本年交易趋势">
<app-financetable-curve-min #curve [chartData]="chartData2"></app-financetable-curve-min> <app-financetable-curve-min #curve [chartData]="chartData2"></app-financetable-curve-min>
</nz-card> </nz-card>
<nz-card nzTitle="实时货源" style="height: 400px">
<st
#st
multiSort
[columns]="columns"
[scroll]="{ y: '280px' }"
[data]="service.$api_getRealTimeSupply"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data' } }"
[page]="{ show: false, showSize: false, pageSizes: [5, 50, 100] }"
[loading]="service.http.loading"
>
<ng-template st-row="index" let-item let-index="index">
{{ index + 1 }}
</ng-template>
<ng-template st-row="weight" let-item let-index="index">
{{ item.weight ? item.weight + '吨' : '' }}
{{ item.volume ? item.volume + '方' : '' }}
</ng-template>
<ng-template st-row="weight" let-item let-index="index">
{{ item.weight ? item.weight + '吨' : '' }}
{{ item.volume ? item.volume + '方' : '' }}
</ng-template>
</st>
</nz-card>
</div> </div>
<div nz-col class="gutter-row" nzXs="12" nzSm="12" nzMd="12" nzLg="12" nzXl="8" nzXXl="8"> <div nz-col class="gutter-row" nzXs="12" nzSm="12" nzMd="12" nzLg="12" nzXl="8" nzXXl="8">
<nz-card> <nz-card>
@ -91,11 +66,6 @@
<div style="min-height: 550px"> <div style="min-height: 550px">
<app-datatable-customindex-map style="max-height: 680px" #map [chartData]="chartData"></app-datatable-customindex-map> <app-datatable-customindex-map style="max-height: 680px" #map [chartData]="chartData"></app-datatable-customindex-map>
</div> </div>
<nz-card>
<nz-row [nzGutter]="24">
<g2-bar #bar height="350" [delay]="300" repaint="true" [title]="'本月发货量排名'" [data]="salesData2" (ready)="genData()"></g2-bar>
</nz-row>
</nz-card>
</div> </div>
<div nz-col class="gutter-row" nzXs="12" nzSm="12" nzMd="12" nzLg="12" nzXl="8" nzXXl="8"> <div nz-col class="gutter-row" nzXs="12" nzSm="12" nzMd="12" nzLg="12" nzXl="8" nzXXl="8">
<nz-card> <nz-card>
@ -156,11 +126,48 @@
</nz-col> </nz-col>
</nz-row> </nz-row>
</nz-card> </nz-card>
</div>
</div>
<div nz-row [nzGutter]="24">
<div nz-col class="gutter-row" nzXs="12" nzSm="12" nzMd="12" nzLg="12" nzXl="8" nzXXl="8">
<nz-card nzTitle="实时货源" style="height: 400px">
<st
#st
multiSort
[columns]="columns"
[scroll]="{ y: '280px' }"
[data]="service.$api_getRealTimeSupply"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data' } }"
[page]="{ show: false, showSize: false, pageSizes: [5, 50, 100] }"
[loading]="service.http.loading"
>
<ng-template st-row="index" let-item let-index="index">
{{ index + 1 }}
</ng-template>
<ng-template st-row="weight" let-item let-index="index">
{{ item.weight ? item.weight + '吨' : '' }}
{{ item.volume ? item.volume + '方' : '' }}
</ng-template>
<ng-template st-row="weight" let-item let-index="index">
{{ item.weight ? item.weight + '吨' : '' }}
{{ item.volume ? item.volume + '方' : '' }}
</ng-template>
</st>
</nz-card>
</div>
<div nz-col class="gutter-row" nzXs="12" nzSm="12" nzMd="12" nzLg="12" nzXl="8" nzXXl="8">
<nz-card style="height: 400px">
<g2-bar #bar height="350" [delay]="300" repaint="true" [title]="'本月发货量排名'" [data]="salesData2" (ready)="genData()"></g2-bar>
</nz-card>
</div>
<div nz-col class="gutter-row" nzXs="12" nzSm="12" nzMd="12" nzLg="12" nzXl="8" nzXXl="8">
<nz-card nzTitle="实时运单风控" style="height: 400px"> <nz-card nzTitle="实时运单风控" style="height: 400px">
<st <st
#st #st
multiSort multiSort
[scroll]="{ y: '280px' }" [scroll]="{ y: '300px' }"
[columns]="orderColumns" [columns]="orderColumns"
[data]="service.$api_getRealTimeWaybillRiskControl" [data]="service.$api_getRealTimeWaybillRiskControl"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqOrderParams }" [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqOrderParams }"

View File

@ -8,7 +8,7 @@
font-size: 14px; font-size: 14px;
} }
.ant-table-thead > tr > th, .ant-table-tbody > tr > td, .ant-table tfoot > tr > th, .ant-table tfoot > tr > td { .ant-table-thead > tr > th, .ant-table-tbody > tr > td, .ant-table tfoot > tr > th, .ant-table tfoot > tr > td {
padding: 0; padding: 5px;
font-size: 12px; font-size: 12px;
} }
} }

View File

@ -39,10 +39,17 @@
</div> </div>
<div> <div>
<st #st [bordered]="true" [scroll]="{ x: '2000px',y:scrollY }" [data]="service.$api_get_billExamine_page" <st
[columns]="columns" [req]="{ process: beforeReq }" #st
[res]="{ reName: { list: 'data.records', total: 'data.total' } , process: afterRes}" [bordered]="true"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false"> [scroll]="{ x: '2000px', y: scrollY }"
[data]="service.$api_get_billExamine_page"
[columns]="columns"
[req]="{ process: beforeReq }"
[res]="{ reName: { list: 'data.records', total: 'data.total' }, process: afterRes }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loading]="false"
>
<ng-template st-row="freightPrice" let-item let-index="index"> <ng-template st-row="freightPrice" let-item let-index="index">
{{ item.freightPrice | currency }} {{ item.freightPrice | currency }}
</ng-template> </ng-template>
@ -62,8 +69,7 @@
<app-imagelist style="width: 40px" [imgList]="[item.unloadingLadingBillFilePath]"> </app-imagelist> <app-imagelist style="width: 40px" [imgList]="[item.unloadingLadingBillFilePath]"> </app-imagelist>
</div> </div>
<div *ngIf="item.unloadingPeopleVehiclesGoodsFilePath"> <div *ngIf="item.unloadingPeopleVehiclesGoodsFilePath">
<app-imagelist style="width: 40px" [imgList]="[item.unloadingPeopleVehiclesGoodsFilePath]"> <app-imagelist style="width: 40px" [imgList]="[item.unloadingPeopleVehiclesGoodsFilePath]"> </app-imagelist>
</app-imagelist>
</div> </div>
</div> </div>
</ng-template> </ng-template>
@ -72,26 +78,21 @@
<div *ngIf="item?.unloadingTime">卸 | {{ item?.unloadingTime }}</div> <div *ngIf="item?.unloadingTime">卸 | {{ item?.unloadingTime }}</div>
</ng-template> </ng-template>
<ng-template st-row="driverName" let-item let-index="index"> <ng-template st-row="driverName" let-item let-index="index">
<div> {{ item?.driverName }}{{ item?.driverPhone ? "/" + item?.driverPhone : ''}}{{ item?.carNo ? "/" + <div> {{ item?.driverName }}{{ item?.driverPhone ? '/' + item?.driverPhone : '' }}{{ item?.carNo ? '/' + item?.carNo : '' }} </div>
item?.carNo : '' }} </div>
</ng-template> </ng-template>
<ng-template st-row="payeeName" let-item let-index="index"> <ng-template st-row="payeeName" let-item let-index="index">
<div> {{ item?.payeeName }}{{item?.payeePhone ? "/" + item?.payeePhone : '' }} </div> <div> {{ item?.payeeName }}{{ item?.payeePhone ? '/' + item?.payeePhone : '' }} </div>
</ng-template> </ng-template>
<ng-template st-row="billCode" let-item let-index="index"> <ng-template st-row="billCode" let-item let-index="index">
<!-- <div>{{ item.billCode }}</div> --> <!-- <div>{{ item.billCode }}</div> -->
<a *ngIf="item.resourceType == '1'" [routerLink]="'/order-management/vehicle/vehicle-detail/' + item.id">{{ <a *ngIf="item.resourceType == '1'" [routerLink]="'/order-management/vehicle/vehicle-detail/' + item.id">{{ item.billCode }}</a>
item.billCode }}</a> <a *ngIf="item.resourceType == '2'" [routerLink]="'/order-management/bulk/bulk-detail/' + item.id">{{ item.billCode }}</a>
<a *ngIf="item.resourceType == '2'" [routerLink]="'/order-management/bulk/bulk-detail/' + item.id">{{ <a *ngIf="item.resourceType == '3'" [routerLink]="'/order-management/vehicle/vehicle-detail/' + item.id">{{ item.billCode }}</a>
item.billCode }}</a>
<a *ngIf="item.resourceType == '3'" [routerLink]="'/order-management/vehicle/vehicle-detail/' + item.id">{{
item.billCode }}</a>
<div> <div>
<span>{{item?.billStatusLabel}}</span> <span>{{ item?.billStatusLabel }}</span>
</div> </div>
<div> <div>
<span>{{item?.resourceTypeLabel}}{{item?.serviceTypeLabel === item?.resourceTypeLabel ? <span>{{ item?.resourceTypeLabel }}{{ item?.serviceTypeLabel === item?.resourceTypeLabel ? '' : item?.serviceTypeLabel }}</span>
'':item?.serviceTypeLabel}}</span>
</div> </div>
</ng-template> </ng-template>
<ng-template st-row="goodsName" let-item let-index="index"> <ng-template st-row="goodsName" let-item let-index="index">
@ -116,20 +117,18 @@
<ng-template #extraTemplate> <ng-template #extraTemplate>
<div> <div>
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl <button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl [acl-ability]="['ORDER-RECEIPTS-search']"
[acl-ability]="['ORDER-RECEIPTS-search']">筛选</button> >筛选</button
>
<button nz-button nzDanger [disabled]="false" (click)="exprot()" acl [acl-ability]="['ORDER-RECEIPTS-export']">导出</button> <button nz-button nzDanger [disabled]="false" (click)="exprot()" acl [acl-ability]="['ORDER-RECEIPTS-export']">导出</button>
<button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft"> <button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
更多<i nz-icon nzType="down" nzTheme="outline"></i></button> 更多<i nz-icon nzType="down" nzTheme="outline"></i
></button>
<nz-dropdown-menu #menu="nzDropdownMenu"> <nz-dropdown-menu #menu="nzDropdownMenu">
<ul nz-menu> <ul nz-menu>
<li nz-menu-item (click)="sign('1')" acl [acl-ability]="['ORDER-RECEIPTS-billAuditPassBatch']"> <li nz-menu-item (click)="sign('1')" acl [acl-ability]="['ORDER-RECEIPTS-billAuditPassBatch']"> 批量通过 </li>
批量通过 <li nz-menu-item (click)="sign1('1')" acl [acl-ability]="['ORDER-RECEIPTS- electronicBilling']"> 批量生成电子单据 </li>
</li>
<li nz-menu-item (click)="sign1('1')" acl [acl-ability]="['ORDER-RECEIPTS- electronicBilling']">
批量生成电子单据
</li>
</ul> </ul>
</nz-dropdown-menu> </nz-dropdown-menu>
</div> </div>
</ng-template> </ng-template>

View File

@ -133,7 +133,13 @@ export class ParterChannelSalesListComponent implements OnInit {
acl: { ability: ['channelSales-frozen'] }, acl: { ability: ['channelSales-frozen'] },
iif: (item) => {return item.stateLocked == false}, iif: (item) => {return item.stateLocked == false},
click: (_record, _modal, _instance) => this.stop(_record), click: (_record, _modal, _instance) => this.stop(_record),
} },
{
text: '启用',
acl: { ability: ['channelSales-open'] },
iif: (item) => {return item.stateLocked == true},
click: (_record, _modal, _instance) => this.open(_record),
},
] ]
} }
]; ];
@ -185,6 +191,24 @@ export class ParterChannelSalesListComponent implements OnInit {
}); });
} }
} }
open(record: STData) {
if (record.stateLocked) {
const params = {
id: record.id
}
this.modalService.confirm({
nzTitle: '<i>启用确认</i>',
nzContent: `<b>确定启用该账号吗?</br>`,
nzOnOk: () =>
this.service.request(this.service.$api_activeChannelSales, params).subscribe(res => {
if (res) {
this.service.msgSrv.success('启用成功!');
this.st.reload();
}
})
});
}
}
/** /**
* 重置表单 * 重置表单

View File

@ -21,6 +21,8 @@ export class ChannelSalesService extends BaseService {
$api_getChannelSalesInfo = '/api/mdc/channelSalesManagement/getChannelSalesInfo'; $api_getChannelSalesInfo = '/api/mdc/channelSalesManagement/getChannelSalesInfo';
// 冻结渠道销售 // 冻结渠道销售
$api_frozenChannelSales = '/api/mdc/channelSalesManagement/frozenChannelSales'; $api_frozenChannelSales = '/api/mdc/channelSalesManagement/frozenChannelSales';
// 激活渠道销售
$api_activeChannelSales = '/api/mdc/channelSalesManagement/activeChannelSales';
constructor(public injector: Injector) { constructor(public injector: Injector) {

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-04-29 17:28:23 * @Date : 2022-04-29 17:28:23
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-05-09 11:33:34 * @LastEditTime : 2022-05-09 14:40:09
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\partner-list\\components\\index\\partner-list.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\partner-list\\components\\index\\partner-list.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -61,6 +61,14 @@
[scroll]="{ x: '1200px' }" [scroll]="{ x: '1200px' }"
[page]="{}" [page]="{}"
> >
<ng-template st-row="enterpriseName" let-item let-index="index">
<div>
{{item.partnerType ? item.enterpriseName || item.contactName : ''}}
</div>
<div *ngIf="item.partnerType == 1">
管理员: {{item.contactName }}
</div>
</ng-template>
</st> </st>
</nz-card> </nz-card>
@ -104,7 +112,6 @@
[req]="{ process: beforeReq, params: { effectiveStatus: 2, newPartnerId: selectItem.id } }" [req]="{ process: beforeReq, params: { effectiveStatus: 2, newPartnerId: selectItem.id } }"
[loading]="service.http.loading" [loading]="service.http.loading"
[page]="{ show: false }" [page]="{ show: false }"
(change)="stChange($event)" (change)="stChange($event)"
> >
</st> </st>

View File

@ -236,10 +236,6 @@ export class PartnerListComponent {
type: 'string', type: 'string',
title: '合伙人名称' title: '合伙人名称'
}, },
contactName: {
type: 'string',
title: '企业管理员'
},
contactMobile: { contactMobile: {
type: 'string', type: 'string',
title: '手机号' title: '手机号'
@ -252,9 +248,6 @@ export class PartnerListComponent {
searchDebounceTime: 300, searchDebounceTime: 300,
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
allowClear: true, allowClear: true,
visibleIf: {
expand: (value: boolean) => value
},
onSearch: (q: any) => { onSearch: (q: any) => {
let str = q.replace(/^\s+|\s+$/g, ''); let str = q.replace(/^\s+|\s+$/g, '');
if (str) { if (str) {
@ -412,13 +405,11 @@ export class PartnerListComponent {
return [ return [
{ {
title: '合伙人名称', title: '合伙人名称',
index: 'enterpriseName', render: 'enterpriseName',
width: 180, width: 180,
format: item => (item.partnerType ? `${item.enterpriseName || item.contactName}` : '')
}, },
{ title: '付款编码', index: 'payCode', width: 160 }, { title: '付款编码', index: 'payCode', width: 160 },
{ title: '邀请码', index: 'invitationCode', className: 'text-center', width: 130 }, { title: '邀请码', index: 'invitationCode', className: 'text-center', width: 130 },
{ title: '企业管理员', index: 'contactName', width: 150, format: item => (item.partnerType ? `${item.contactName}` : '') },
{ title: '手机号', index: 'contactMobile', className: 'text-center', width: 150 }, { title: '手机号', index: 'contactMobile', className: 'text-center', width: 150 },
{ title: '类型', index: 'partnerType', className: 'text-center', width: 130, type: 'enum', enum: { 1: '企业', 2: '个人' } }, { title: '类型', index: 'partnerType', className: 'text-center', width: 130, type: 'enum', enum: { 1: '企业', 2: '个人' } },
{ title: '注册渠道', index: 'source', type: 'enum', enum: { 1: '合伙人注册', 2: '平台添加' }, width: 130 }, { title: '注册渠道', index: 'source', type: 'enum', enum: { 1: '合伙人注册', 2: '平台添加' }, width: 130 },

View File

@ -219,13 +219,23 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
// } // }
} }
}, },
goodsName: {
type: 'string',
title: '货物名称',
ui: {
// hidden: true,
// visibleIf: {
// goodsTypeName: (value: any) => value && value !== '其它'
// }
}
},
goodsTypeId: { goodsTypeId: {
type: 'string', type: 'string',
title: '货物类型', title: '',
ui: { ui: {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
errors: { required: '请选择货物类型' }, errors: { required: '请选择货物名称' },
asyncData: () => asyncData: () =>
this.shipperSrv.loadConfigByKey('goods.name.config.type').pipe( this.shipperSrv.loadConfigByKey('goods.name.config.type').pipe(
map((data: any) => { map((data: any) => {
@ -247,47 +257,38 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
hidden: true hidden: true
} }
}, },
goodsNameId: {
type: 'string', // goodsName1: {
title: '', // type: 'string',
ui: { // title: '',
widget: 'select', // maxLength: 20,
placeholder: '请选择', // ui: {
errors: { required: '请填写货物类型' }, // errors: { required: '请填写货物名称' },
change: (value: any, data: any) => { // visibleIf: {
this.sf3.setValue('/goodsName', data.label); // goodsTypeName: (value: any) => value && value === '其它'
}, // },
visibleIf: { // blur: (value: any) => {
goodsTypeName: (value: any) => value && value !== '其它' // this.checkGoodsName();
} // }
} // }
}, // },
goodsName: { // goodsNameId: {
type: 'string', // type: 'string',
title: '', // title: '',
ui: { // ui: {
hidden: true, // widget: 'select',
visibleIf: { // placeholder: '请选择',
goodsTypeName: (value: any) => value && value !== '其它' // errors: { required: '请填写货物名称' },
} // change: (value: any, data: any) => {
} // // this.sf3.setValue('/goodsName', data.label);
}, // },
goodsName1: { // visibleIf: {
type: 'string', // goodsTypeName: (value: any) => value && value !== '其它'
title: '', // }
maxLength: 20, // }
ui: { // },
errors: { required: '请填写货物类型' },
visibleIf: {
goodsTypeName: (value: any) => value && value === '其它'
},
blur: (value: any) => {
this.checkGoodsName();
}
}
}
}, },
required: ['goodsTypeId', 'goodsName', 'goodsNameId', 'goodsName1'] required: ['goodsTypeId', 'goodsName', ]
}; };
this.ui3 = { this.ui3 = {
'*': { '*': {
@ -708,10 +709,6 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
const LoadingList = this.startInfo.concat(this.endInfo); const LoadingList = this.startInfo.concat(this.endInfo);
// 货物信息 // 货物信息
const sf3Values = { ...this.sf3.value }; const sf3Values = { ...this.sf3.value };
if (sf3Values.goodsTypeName === '其它') {
sf3Values.goodsName = sf3Values.goodsName1;
delete sf3Values.goodsName1;
}
if (this.sf4.value.carModel.includes('999')) { if (this.sf4.value.carModel.includes('999')) {
this.sf4.value.carModel = ['999']; this.sf4.value.carModel = ['999'];
} }

View File

@ -235,13 +235,34 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
initSF3() { initSF3() {
this.schema3 = { this.schema3 = {
properties: { properties: {
goodsTypeId: { goodsTips: {
type: 'string',
title: '',
ui: {
widget: 'custom',
class: 'goods_Tips_item',
// visibleIf: {
// goodsTypeName: (value: any) => value && value === '其它'
// }
}
},
goodsName: {
type: 'string', type: 'string',
title: '货物名称', title: '货物名称',
ui: {
// hidden: true,
// visibleIf: {
// goodsTypeName: (value: any) => value && value !== '其它'
// }
}
},
goodsTypeId: {
type: 'string',
title: '',
ui: { ui: {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
errors: { required: '请选择货物类型' }, errors: { required: '请选择货物名称' },
asyncData: () => asyncData: () =>
this.shipperSrv.loadConfigByKey('goods.name.config.type').pipe( this.shipperSrv.loadConfigByKey('goods.name.config.type').pipe(
map((data: any) => { map((data: any) => {
@ -263,44 +284,8 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
hidden: true hidden: true
} }
}, },
goodsNameId: {
type: 'string',
title: '',
ui: {
widget: 'select',
placeholder: '请选择',
errors: { required: '请填写货物名称' },
change: (value: any, data: any) => {
this.sf3.setValue('/goodsName', data.label);
},
visibleIf: {
goodsTypeName: (value: any) => value && value !== '其它'
}
}
},
goodsName: {
type: 'string',
title: '',
ui: {
hidden: true,
visibleIf: {
goodsTypeName: (value: any) => value && value !== '其它'
}
}
},
goodsName1: {
type: 'string',
title: '',
maxLength: 20,
ui: {
errors: { required: '请填写货物名称' },
visibleIf: {
goodsTypeName: (value: any) => value && value === '其它'
}
}
}
}, },
required: ['goodsTypeId', 'goodsName', 'goodsNameId','goodsName1'] required: ['goodsTypeId', 'goodsName', ]
}; };
this.ui3 = { this.ui3 = {
'*': { '*': {
@ -624,10 +609,6 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
// 货物信息 // 货物信息
const sf3Values = { ...this.sf3.value }; const sf3Values = { ...this.sf3.value };
if (sf3Values.goodsTypeName === '其它') {
sf3Values.goodsName = sf3Values.goodsName1;
delete sf3Values.goodsName1;
}
if (this.sf4.value.carModel.includes('999')) { if (this.sf4.value.carModel.includes('999')) {
this.sf4.value.carModel = ['999'] this.sf4.value.carModel = ['999']
} }

View File

@ -264,13 +264,23 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
// } // }
} }
}, },
goodsName: {
type: 'string',
title: '货物名称',
ui: {
// hidden: true,
// visibleIf: {
// goodsTypeName: (value: any) => value && value !== '其它'
// }
}
},
goodsTypeId: { goodsTypeId: {
type: 'string', type: 'string',
title: '货物类型', title: '',
ui: { ui: {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
errors: { required: '请选择货物类型' }, errors: { required: '请选择货物名称' },
asyncData: () => asyncData: () =>
this.shipperSrv.loadConfigByKey('goods.name.config.type').pipe( this.shipperSrv.loadConfigByKey('goods.name.config.type').pipe(
map((data: any) => { map((data: any) => {
@ -292,47 +302,38 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
hidden: true hidden: true
} }
}, },
goodsNameId: {
type: 'string', // goodsName1: {
title: '', // type: 'string',
ui: { // title: '',
widget: 'select', // maxLength: 20,
placeholder: '请选择', // ui: {
errors: { required: '请填写货物类型' }, // errors: { required: '请填写货物名称' },
change: (_value: any, data: any) => { // visibleIf: {
this.sf3.setValue('/goodsName', data.label); // goodsTypeName: (value: any) => value && value === '其它'
}, // },
visibleIf: { // blur: (value: any) => {
goodsTypeName: (value: any) => value && value !== '其它' // this.checkGoodsName();
} // }
} // }
}, // },
goodsName: { // goodsNameId: {
type: 'string', // type: 'string',
title: '', // title: '',
ui: { // ui: {
hidden: true, // widget: 'select',
visibleIf: { // placeholder: '请选择',
goodsTypeName: (value: any) => value && value !== '其它' // errors: { required: '请填写货物名称' },
} // change: (value: any, data: any) => {
} // // this.sf3.setValue('/goodsName', data.label);
}, // },
goodsName1: { // visibleIf: {
type: 'string', // goodsTypeName: (value: any) => value && value !== '其它'
title: '', // }
maxLength: 20, // }
ui: { // },
errors: { required: '请填写货物类型' },
visibleIf: {
goodsTypeName: (value: any) => value && value === '其它'
},
blur: (value: any) => {
this.checkGoodsName();
}
}
}
}, },
required: ['goodsTypeId', 'goodsName', 'goodsNameId', 'goodsName1'] required: ['goodsTypeId', 'goodsName', ]
}; };
this.ui3 = { this.ui3 = {
'*': { '*': {
@ -1013,10 +1014,8 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
// 货物信息 // 货物信息
const sf3Values = { ...this.sf3.value }; const sf3Values = { ...this.sf3.value };
if (sf3Values.goodsTypeName === '其它') { console.log(sf3Values);
sf3Values.goodsName = sf3Values.goodsName1;
delete sf3Values.goodsName1;
}
if (this.sf4.value.carModel.includes('999')) { if (this.sf4.value.carModel.includes('999')) {
this.sf4.value.carModel = ['999']; this.sf4.value.carModel = ['999'];
} }

View File

@ -251,13 +251,23 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
// } // }
} }
}, },
goodsName: {
type: 'string',
title: '货物名称',
ui: {
// hidden: true,
// visibleIf: {
// goodsTypeName: (value: any) => value && value !== '其它'
// }
}
},
goodsTypeId: { goodsTypeId: {
type: 'string', type: 'string',
title: '货物类型', title: '',
ui: { ui: {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
errors: { required: '请选择货物类型' }, errors: { required: '请选择货物名称' },
asyncData: () => asyncData: () =>
this.shipperSrv.loadConfigByKey('goods.name.config.type').pipe( this.shipperSrv.loadConfigByKey('goods.name.config.type').pipe(
map((data: any) => { map((data: any) => {
@ -279,47 +289,38 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
hidden: true hidden: true
} }
}, },
goodsNameId: {
type: 'string', // goodsName1: {
title: '', // type: 'string',
ui: { // title: '',
widget: 'select', // maxLength: 20,
placeholder: '请选择', // ui: {
errors: { required: '请填写货物类型' }, // errors: { required: '请填写货物名称' },
change: (value: any, data: any) => { // visibleIf: {
this.sf3.setValue('/goodsName', data.label); // goodsTypeName: (value: any) => value && value === '其它'
}, // },
visibleIf: { // blur: (value: any) => {
goodsTypeName: (value: any) => value && value !== '其它' // this.checkGoodsName();
} // }
} // }
}, // },
goodsName: { // goodsNameId: {
type: 'string', // type: 'string',
title: '', // title: '',
ui: { // ui: {
hidden: true, // widget: 'select',
visibleIf: { // placeholder: '请选择',
goodsTypeName: (value: any) => value && value !== '其它' // errors: { required: '请填写货物名称' },
} // change: (value: any, data: any) => {
} // // this.sf3.setValue('/goodsName', data.label);
}, // },
goodsName1: { // visibleIf: {
type: 'string', // goodsTypeName: (value: any) => value && value !== '其它'
title: '', // }
maxLength: 20, // }
ui: { // },
errors: { required: '请填写货物类型' },
visibleIf: {
goodsTypeName: (value: any) => value && value === '其它'
},
blur: (value: any) => {
this.checkGoodsName();
}
}
}
}, },
required: ['goodsTypeId', 'goodsName', 'goodsNameId', 'goodsName1'] required: ['goodsTypeId', 'goodsName', ]
}; };
this.ui3 = { this.ui3 = {
'*': { '*': {
@ -978,10 +979,6 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
// 货物信息 // 货物信息
const sf3Values = { ...this.sf3.value }; const sf3Values = { ...this.sf3.value };
if (sf3Values.goodsTypeName === '其它') {
sf3Values.goodsName = sf3Values.goodsName1;
delete sf3Values.goodsName1;
}
if (this.sf4.value.carModel.includes('999')) { if (this.sf4.value.carModel.includes('999')) {
this.sf4.value.carModel = ['999']; this.sf4.value.carModel = ['999'];
} }
@ -1020,19 +1017,18 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
insurancePackagedGoods: this.sf4.value.insurancePackagedGoods, insurancePackagedGoods: this.sf4.value.insurancePackagedGoods,
goodsValue: this.sf4.value.goodsValue goodsValue: this.sf4.value.goodsValue
}; };
console.log(params); const modalRef = this.modalService.create({
// const modalRef = this.modalService.create({ nzTitle: '运输协议',
// nzTitle: '运输协议', nzContent: TranAgreementComponent,
// nzContent: TranAgreementComponent, nzWidth: 900,
// nzWidth: 900, nzFooter: null,
// nzFooter: null, nzComponentParams: { object: params, shipperName: this.shipperName, type: 'onecar' }
// nzComponentParams: { object: params, shipperName: this.shipperName, type: 'onecar' } });
// }); modalRef.afterClose.subscribe(result => {
// modalRef.afterClose.subscribe(result => { if (result) {
// if (result) { this.submit(submitType, params);
// this.submit(submitType, params); }
// } });
// });
} }
// 提交 // 提交
submit(submitType?: string, params?: any): void { submit(submitType?: string, params?: any): void {
@ -1287,7 +1283,7 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
this.service.request(this.service.$api_checkGoodsName, name).subscribe(res => { this.service.request(this.service.$api_checkGoodsName, name).subscribe(res => {
if (res === false) { if (res === false) {
const modalRef = this.modalService.error({ const modalRef = this.modalService.error({
nzTitle: '货物类型含有违禁词,请重新输入!', nzTitle: '货物名称含有违禁词,请重新输入!',
}); });
modalRef.afterClose.subscribe(result => { modalRef.afterClose.subscribe(result => {
// this.sf3.setValue('/goodsName1', null); // this.sf3.setValue('/goodsName1', null);

View File

@ -19,10 +19,10 @@
<div class="box"> <div class="box">
<se-container se-container="1"> <se-container se-container="1">
<se label="角色权限" required [labelWidth]="120"> <se label="角色权限" required [labelWidth]="120">
<app-cuc-menu #menu (changeData)="getData($event)" [type]="params.id === 0 ? 'add' : 'edit'" [roleId]="params.id" [appId]="params.appId" <app-menu-tree #menu (changeData)="getData($event)" [type]="params.id === 0 ? 'add' : 'edit'" [roleId]="params.id"
[isAuthorityIdDTOList]="roleInfoData.authority || []" [appId]="params.appId" [isAuthorityIdDTOList]="roleInfoData.authority || []"
[authorityAssistId]="roleInfoData.authorityAssistId || []" (changeIF)="changeIF($event)"> [authorityAssistId]="roleInfoData.authorityAssistId || []" (changeIF)="changeIF($event)">
</app-cuc-menu> </app-menu-tree>
</se> </se>
</se-container> </se-container>
</div> </div>

View File

@ -19,91 +19,99 @@
</nz-card> --> </nz-card> -->
<nz-card class="table-box"> <nz-card class="table-box">
<div class="tab_header"> <div class="tab_header">
<label class="page_title"> <label class="page_title">
<label class="driver">|</label> <label class="driver">|</label>
销票处理</label> 销票处理</label
<nz-tabset [nzTabBarExtraContent]="extraTemplate" (nzSelectedIndexChange)="selectChange($event)"> >
<nz-tab nzTitle="全部"></nz-tab> <nz-tabset [nzTabBarExtraContent]="extraTemplate" (nzSelectedIndexChange)="selectChange($event)">
<nz-tab nzTitle="待处理"></nz-tab> <nz-tab nzTitle="全部"></nz-tab>
<nz-tab nzTitle="待确认"></nz-tab> <nz-tab nzTitle="待处理"></nz-tab>
<!-- <nz-tab nzTitle="已确认"></nz-tab> --> <nz-tab nzTitle="待确认"></nz-tab>
</nz-tabset> <!-- <nz-tab nzTitle="已确认"></nz-tab> -->
</div> </nz-tabset>
</div>
<ng-template #extraTemplate> <ng-template #extraTemplate>
<div class="d-flex align-items-center mr-sm"> <div class="d-flex align-items-center mr-sm">
<div class="mr-md"> <div class="mr-md">
已选择 已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 张发票&nbsp;&nbsp; 发票金额总计 <strong class="text-red">{{ selectedRows.length }}</strong> 张发票&nbsp;&nbsp; 发票金额总计
<strong class="text-red">{{totalCallNo }}</strong> <strong class="text-red">{{ totalCallNo }}</strong>
<a *ngIf="totalCallNo > 0" (click)="st.clearCheck();totalCallNo=0" class="ml-lg">清空</a> <a *ngIf="totalCallNo > 0" (click)="st.clearCheck(); totalCallNo = 0" class="ml-lg">清空</a>
</div> </div>
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button> <button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
<!-- <button nz-button *ngIf="resourceStatus===1 || !resourceStatus" (click)="this.batchPush()">推送开票</button> --> <!-- <button nz-button *ngIf="resourceStatus===1 || !resourceStatus" (click)="this.batchPush()">推送开票</button> -->
<!-- <button nz-button *ngIf="resourceStatus===1 || !resourceStatus" <!-- <button nz-button *ngIf="resourceStatus===1 || !resourceStatus"
(click)="this.batchRemove(selectedRows)">移除</button> (click)="this.batchRemove(selectedRows)">移除</button>
<button nz-button *ngIf="resourceStatus===2 || !resourceStatus" <button nz-button *ngIf="resourceStatus===2 || !resourceStatus"
(click)="this.batchWithdraw(selectedRows)">撤回</button> --> (click)="this.batchWithdraw(selectedRows)">撤回</button> -->
</div> </div>
</ng-template>
<st
#st
[scroll]="{ x: '2000px', y: scrollY }"
[data]="service.$api_ficoVatinvHList"
[columns]="columns"
[page]="{}"
[req]="{ process: beforeReq }"
[res]="{ process: afterRes }"
[loading]="false"
(change)="stChange($event)"
>
<ng-template st-row="vatinvcode" let-item let-index="index" let-column="column">
{{ item.vatinvcode }} <br />
<label class="text-primary">{{ item.stsLabel }}</label>
</ng-template> </ng-template>
</st>
<st #st [scroll]="{ x: '2000px',y:scrollY }" [data]="service.$api_ficoVatinvHList" [columns]="columns" [page]="{}"
[req]="{process: beforeReq }" [res]="{process:afterRes }" [loading]="false" (change)="stChange($event)">
<ng-template st-row="vatinvcode" let-item let-index="index" let-column="column">
{{ item.vatinvcode }} <br>
<label class="text-primary">{{item.stsLabel}}</label>
</ng-template>
</st>
</nz-card> </nz-card>
<ng-template #requestedModal> <ng-template #requestedModal>
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col nzSpan="24" se-container [labelWidth]="100" [col]="1"> <div nz-col nzSpan="24" se-container [labelWidth]="100" [col]="1">
<se label="购买方" class="mb-sm"> <se label="购买方" class="mb-sm">
{{openInfo?.artoname}} {{ openInfo?.artoname }}
</se> </se>
<se label="纳税号" class="mb-sm"> <se label="纳税号" class="mb-sm">
{{openInfo?.artotaxno}} {{ openInfo?.artotaxno }}
</se> </se>
<se label="注册地址" class="mb-sm"> <se label="注册地址" class="mb-sm">
{{openInfo?.artoadd}} {{ openInfo?.artoadd }}
</se> </se>
<se label="注册电话" class="mb-sm"> <se label="注册电话" class="mb-sm">
{{openInfo?.artotel}} {{ openInfo?.artotel }}
</se> </se>
<se label="开户行" class="mb-sm"> <se label="开户行" class="mb-sm">
{{openInfo?.artobank}} {{ openInfo?.artobank }}
</se> </se>
<se label="银行账户" class="mb-sm"> <se label="银行账户" class="mb-sm">
{{openInfo?.artoacc}} {{ openInfo?.artoacc }}
</se> </se>
<se label="服务名称" class="mb-sm"> <se label="服务名称" class="mb-sm">
{{openInfo?.vatnameLabel}} {{ openInfo?.vatnameLabel }}
</se> </se>
<se label="发票备注栏" class="mb-sm"> <se label="发票备注栏" class="mb-sm">
{{openInfo?.vatremarks}} {{ openInfo?.vatremarks }}
</se> </se>
<se label="其它要求" class="mb-sm"> <se label="其它要求" class="mb-sm">
{{openInfo?.otherremarks}} {{ openInfo?.otherremarks }}
</se> </se>
<se label="销货清单" class="mb-sm"> <se label="销货清单" class="mb-sm">
{{openInfo?.isdetail?'需要':'不需要'}} {{ openInfo?.isdetail ? '需要' : '不需要' }}
</se> </se>
<se label="开票金额" class="mb-sm"> <se label="开票金额" class="mb-sm">
{{openInfo?.vatmoney | currency}} {{ openInfo?.vatmoney | currency }}
</se> </se>
<se label="开票日期" required> <se label="开票日期" required>
<nz-date-picker [(ngModel)]="openInfo.invoicedate" nzShowTime nzPlaceHolder="请选择" style=" width: 100%;"> <nz-date-picker [(ngModel)]="openInfo.invoicedate" nzShowTime nzPlaceHolder="请选择" style="width: 100%"> </nz-date-picker>
</nz-date-picker> </se>
</se> <se label="发票号码" required>
<se label="发票号码" required> <input nz-input [(ngModel)]="openInfo.invoiceno" placeholder="请输入" />
<input nz-input [(ngModel)]="openInfo.invoiceno" placeholder="请输入" /> </se>
</se> <se label="发票代码" required>
<se label="发票代码" required> <input nz-input [(ngModel)]="openInfo.invoiceno2" placeholder="请输入" />
<input nz-input [(ngModel)]="openInfo.invoiceno2" placeholder="请输入" /> </se>
</se>
</div>
</div> </div>
</ng-template> </div>
</ng-template>

View File

@ -279,16 +279,16 @@ export class CancellationInvoiceComponent extends BasicTableComponent {
asyncData: () => this.service.getNetworkFreightForwarder() asyncData: () => this.service.getNetworkFreightForwarder()
} }
}, },
sts: { // sts: {
title: '发票状态', // title: '发票状态',
type: 'string', // type: 'string',
ui: { // ui: {
widget: 'dict-select', // widget: 'dict-select',
containsAllLabel: true, // containsAllLabel: true,
params: { dictKey: 'vatinv:status' }, // params: { dictKey: 'vatinv:status' },
containAllLable: true // containAllLable: true
} as SFSelectWidgetSchema // } as SFSelectWidgetSchema
}, // },
// or2derSn: { // or2derSn: {
// type: 'string', // type: 'string',
// title: '订单号', // title: '订单号',

View File

@ -46,12 +46,12 @@
<li nz-menu-item (click)="creat()" acl [acl-ability]="['USERCENTER-FREIGHT-LIST-save']"> <li nz-menu-item (click)="creat()" acl [acl-ability]="['USERCENTER-FREIGHT-LIST-save']">
新增企业 新增企业
</li> </li>
<!-- <li nz-menu-item (click)="editPartner()" acl [acl-ability]="['USERCENTER-FREIGHT-LIST-partner']"> <li nz-menu-item (click)="editPartner()" acl [acl-ability]="['USERCENTER-FREIGHT-LIST-partner']">
修改合伙人 修改合伙人
</li> </li>
<li nz-menu-item (click)="editSale()" acl [acl-ability]="['USERCENTER-FREIGHT-LIST-sale']"> <li nz-menu-item (click)="editSale()" acl [acl-ability]="['USERCENTER-FREIGHT-LIST-sale']">
修改渠道销售 修改渠道销售
</li> --> </li>
</ul> </ul>
</nz-dropdown-menu> </nz-dropdown-menu>
</div> </div>

View File

@ -469,14 +469,14 @@ export class FreightComponentsListComponent extends BasicTableComponent implemen
text: '分配客服<br>', text: '分配客服<br>',
click: item => this.showService(item) click: item => this.showService(item)
}, },
// { {
// text: '修改合伙人', text: '修改合伙人',
// click: item => this.editPartner(item) click: item => this.editPartner(item)
// }, },
// { {
// text: '修改渠道销售', text: '修改渠道销售',
// click: item => this.editSale(item) click: item => this.editSale(item)
// } }
] ]
} }
]; ];