This commit is contained in:
Taric Xin
2022-04-29 17:48:21 +08:00
87 changed files with 786 additions and 611 deletions

View File

@ -1,26 +1,33 @@
@{alain-pro-prefix} {
&__menu {
display: block;
&-item {
&--disabled {
pointer-events: none;
}
}
&-only-icon {
@{alain-pro-prefix}__menu-item {
padding-right: 8px !important;
padding-left: 8px !important;
&:first-child {
padding-left: 0;
}
}
@{alain-pro-prefix}__menu-icon {
margin-right: 0;
font-size: @alain-pro-top-nav-only-icon-fs;
min-width: 14px;
}
}
&-title {
position: relative;
&-badge {
display: flex;
justify-content: center;
@ -31,27 +38,34 @@
line-height: 18px;
background: @alain-pro-header-title-badge-bg;
border-radius: 50%;
> em {
>em {
color: @alain-pro-header-title-badge-color;
font-style: normal;
}
}
}
&-img {
width: @alain-pro-sider-menu-img-wh !important;
height: @alain-pro-sider-menu-img-wh !important;
width: @alain-pro-sider-menu-img-wh !important;
height: @alain-pro-sider-menu-img-wh !important;
}
}
&__side-nav {
@{alain-pro-prefix}__menu {
&-title {
display: flex;
align-items: center;
&-text {
flex: 1;
// opacity: 0;
}
}
}
.@{ant-prefix}-menu-inline-collapsed {
@{alain-pro-prefix}__menu-title-badge {
position: absolute;
@ -59,10 +73,28 @@
right: -16px;
width: 8px;
height: 8px;
> em {
>em {
display: none;
}
}
}
}
}
@{aside-collapsed-prefix} {
@{alain-pro-prefix} {
&__menu {
&-icon {
overflow: inherit;
}
&-title {
&-text {
opacity: 0;
}
}
}
}
}

View File

@ -6,6 +6,11 @@
<ng-template st-row="checkStatus" let-item>
<span [ngClass]="{'text-red-dark':item?.checkStatus === 2}">{{filterCheckStatus(item?.checkStatus)}}</span>
</ng-template>
<ng-template st-row="fieldValue" let-item>
<ellipsis lines="3" tooltip>
<div>{{item?.fieldValue}}</div>
</ellipsis>
</ng-template>
</st>
</div>

View File

@ -55,7 +55,7 @@ export class DatatableReportingFundInfoComponent implements OnInit {
1: '是',
},
},
{ title: '上传值', index: 'fieldValue', className: 'text-center', width: '15%', },
{ title: '上传值', render: 'fieldValue', className: 'text-center', width: '15%', },
{
title: '本地校验',
render: 'checkStatus',

View File

@ -12,6 +12,11 @@
<ng-template st-row="checkStatus" let-item>
<span [ngClass]="{'text-red-dark':item?.checkStatus === 2}">{{filterCheckStatus(item?.checkStatus)}}</span>
</ng-template>
<ng-template st-row="fieldValue" let-item>
<ellipsis lines="3" tooltip>
<div>{{item?.fieldValue}}</div>
</ellipsis>
</ng-template>
</st>
</div>
</div>

View File

@ -62,7 +62,7 @@ export class DatatableReportingVerifyResultComponent implements OnInit {
1: '是'
}
},
{ title: '上传值', index: 'fieldValue', className: 'text-center', width: '150px', },
{ title: '上传值', render: 'fieldValue', className: 'text-center', width: '150px', },
{
title: '本地校验', render: 'checkStatus', className: 'text-center', width: '100px',
// type: 'enum',

View File

@ -36,7 +36,7 @@
<ng-template #extraTemplate>
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
<button nz-button nzDanger (click)="exprot()"> 导出</button>
<button nz-button nzDanger (click)="exprot()" acl [acl-ability]="['FINANCIAL-ABNORMAL-export']"> 导出</button>
</div>
</ng-template>

View File

@ -171,6 +171,7 @@ export class AbnormalGoldComponent extends BasicTableComponent implements OnInit
buttons: [
{
text: '查看',
acl: { ability: ['FINANCIAL-ABNORMAL-view'] },
click: item => this.router.navigate(['/financial-management/abnormal-gold/detail/' + item.id])
}
]

View File

@ -207,6 +207,7 @@ export class PlatformAccountComponent extends BasicTableComponent implements OnI
{
text: '提现',
click: item => this.withdraw(item),
acl: { ability: ['FINANCIAL-PLATFORM-withdraw'] },
iif: _record => _record.bankType !== '1'
},
// {
@ -216,6 +217,7 @@ export class PlatformAccountComponent extends BasicTableComponent implements OnI
{
text: '查看银行卡',
click: item => this.viewBankcard(item),
acl: { ability: ['FINANCIAL-PLATFORM-viewBankcard'] },
iif: _record => _record.bankType !== '1'
}
]

View File

@ -25,7 +25,7 @@
<label class="page_title"> <label class="driver">|</label> 交易流水</label>
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
<button nz-button nzDanger (click)="exportList()"> 导出</button>
<button nz-button nzDanger (click)="exportList()" acl [acl-ability]="['FINANCIAL-TRANSACTION-export']"> 导出</button>
</div>
</div>
<st #st [data]="service.$api_get_account_blance" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"

View File

@ -210,6 +210,7 @@ export class TransactionFlowComponent extends BasicTableComponent {
{
text: '查看回单',
iif: item => item.tradeType !== '9' && item.tradeType !== '10',
acl: { ability: ['FINANCIAL-TRANSACTION-receiptApply'] },
click: item =>
this.service.getReceiptUrl(item.receiptUrl, {
bankType: item.bankType,

View File

@ -251,10 +251,12 @@ export class WithdrawalsRecordComponent extends BasicTableComponent {
{
text: '审核',
iif: item => item.refundStatus === '1',
acl: { ability: ['FINANCIAL-WITHDRAWALS-audit'] },
click: item => this.auditAction(item)
},
{
text: '详情<br>',
acl: { ability: ['FINANCIAL-WITHDRAWALS-view'] },
click: item =>
this.router.navigate([`/financial-management/withdrawals-record/detail/${item.id}`], {
queryParams: { type: item.accountType }
@ -262,6 +264,7 @@ export class WithdrawalsRecordComponent extends BasicTableComponent {
},
{
text: '查看回单',
acl: { ability: ['FINANCIAL-WITHDRAWALS-receiptApply'] },
iif: item => item.refundStatus === '3',
click: item =>
this.service.getReceiptUrl(item.receiptUrl, {

View File

@ -55,7 +55,7 @@ const routes: Routes = [
data: { guard: { ability: ['FINANCIAL-PLATFORM-DETAIL-detail'] } }
},
{ path: 'recharge-record', component: RechargeRecordComponent, data: { guard: { ability: ['FINANCIAL-RECHARGE-list'] } } },
{ path: 'withdrawals-record', component: WithdrawalsRecordComponent },
{ path: 'withdrawals-record', component: WithdrawalsRecordComponent, data: { guard: { ability: ['FINANCIAL-WITHDRAWALS-list'] } } },
{ path: 'withdrawals-record/detail/:id', component: WithdrawalsDetailComponent },
{ path: 'refund-record', component: RefundRecordComponent },
{ path: 'voucher-management', component: VoucherManagementComponent, data: { guard: { ability: ['FINANCIAL-VOUCHER-list'] } } },
@ -72,10 +72,10 @@ const routes: Routes = [
},
{ path: 'cost-management/expenses-receivable/:id', component: ExpensesReceivableComponent },
{ path: 'cost-management/expenses-payable/:id', component: ExpensesPayableComponent },
{ path: 'abnormal-gold', component: AbnormalGoldComponent },
{ path: 'abnormal-gold', component: AbnormalGoldComponent , data: { guard: { ability: ['FINANCIAL-ABNORMAL-list'] } } },
{ path: 'abnormal-gold/detail/:id', component: AbnormalGoldDetailComponent },
{ path: 'payment-record', component: PaymentRecordComponent },
{ path: 'transaction-flow', component: TransactionFlowComponent },
{ path: 'transaction-flow', component: TransactionFlowComponent , data: { guard: { ability: ['FINANCIAL-TRANSACTION-list'] } } },
{ path: 'payment-order', component: PaymentOrderComponent, data: { guard: { ability: ['FINANCIAL-PAYMENT-ORDER-list'] } } },
{ path: 'payment-order/detail/:id', component: PaymentOrderDetailComponent },
{ path: 'receipt-order', component: ReceiptOrderComponent, data: { guard: { ability: ['FINANCIAL-RECEIPT-list'] } } },

View File

@ -1,3 +1,13 @@
/*
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-21 13:49:21
* @LastEditors : Shiming
* @LastEditTime : 2022-04-29 15:25:49
* @FilePath : \\tms-obc-web\\src\\app\\routes\\logs\\logs-routing.module.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { SystemLogsComponent } from './components/system-logs/system-logs.component';
@ -7,11 +17,11 @@ import { UserLogsComponent } from './components/user-logs/user-logs.component';
import { VersionLogsComponent } from './components/version-logs/version-logs.component';
const routes: Routes = [
{ path: 'system-logs', component: SystemLogsComponent },
{ path: 'user-logs', component: UserLogsComponent },
{ path: 'version-logs', component: VersionLogsComponent },
{ path: 'system-supply-logs', component: SystemSupplyLogsComponent },
{ path: 'system-waybill-logs', component: SystemWaybillLogsComponent }
{ path: 'system-logs', component: SystemLogsComponent, data: { guard: { ability: ['LOGS-LOGS-list'] } } },
{ path: 'user-logs', component: UserLogsComponent, data: { guard: { ability: ['LOGS-USER-LOGS-list'] } } },
{ path: 'version-logs', component: VersionLogsComponent , data: { guard: { ability: ['LOGS-VERSION-LOGS-list'] } }},
{ path: 'system-supply-logs', component: SystemSupplyLogsComponent , data: { guard: { ability: ['LOGS-SUPPLY-LOGS-list'] } }},
{ path: 'system-waybill-logs', component: SystemWaybillLogsComponent , data: { guard: { ability: ['LOGS-WAYBILL-LOGS-list'] } }}
];
@NgModule({

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-01-12 10:52:50
* @LastEditors : Shiming
* @LastEditTime : 2022-04-08 16:34:26
* @LastEditTime : 2022-04-29 10:41:20
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\abnormal-warning\\abnormal-warning.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -35,25 +35,27 @@
<div class="header_box">
<label class="page_title"> <label class="driver">|</label> 异常预警</label>
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
[acl-ability]="['ORDER-COMPLIANCE-AUDIT-search']">筛选</button>
<button nz-button nzDanger acl [acl-ability]="['ORDER-COMPLIANCE-AUDIT-export']" (click)="exprot()">导出</button>
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
<button nz-button nzDanger acl [acl-ability]="['ORDER-ABNORMAL-export']" (click)="exprot()">导出</button>
</div>
</div>
<div>
<st #st [bordered]="true" [scroll]="{ x: '2000px' ,y:scrollY }" [data]="service.$api_get_abnormalWarning"
<st
#st
[bordered]="true"
[scroll]="{ x: '2000px', y: scrollY }"
[data]="service.$api_get_abnormalWarning"
[columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false">
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loading]="false"
>
<ng-template st-row="driverName" let-item let-index="index">
<div> {{ item?.driverName }}{{ item?.driverPhone ? "/" + item?.driverPhone : '' }} </div>
<div> {{ item?.driverName }}{{ item?.driverPhone ? '/' + item?.driverPhone : '' }} </div>
</ng-template>
<ng-template st-row="longitude" let-item let-index="index">
<div> {{ item?.longitude }}
{{ item?.latitude ? "," + item?.latitude : '' }} </div>
<div> {{ item?.longitude }} {{ item?.latitude ? ',' + item?.latitude : '' }} </div>
</ng-template>
<ng-template st-row="billCode" let-item let-index="index">
<!-- <a *ngIf="item.billType == '1'" [routerLink]="'/order-management/vehicle/vehicle-detail/' + item.id">{{ item.billCode }}</a>
@ -63,14 +65,11 @@
<span>{{ item?.billStatusLabel }}</span>
</div>
<div>
<span>{{item?.billTypeLabel}}{{item?.serviceTypeLabel === item?.billTypeLabel ?
'':item?.serviceTypeLabel}}</span>
<span>{{ item?.billTypeLabel }}{{ item?.serviceTypeLabel === item?.billTypeLabel ? '' : item?.serviceTypeLabel }}</span>
</div>
</ng-template>
</st>
</div>
</nz-card>
<ng-template #extraTemplate>
</ng-template>
<ng-template #extraTemplate> </ng-template>

View File

@ -219,57 +219,71 @@
<div *ngIf=" i?.payeeId !== i?.driverId" class="mt-xs">车队长:{{ i?.payeeName }}/{{ i?.payeePhone }}/{{ i?.payeeIdNo }}
</div>
</nz-card>
<nz-card [nzBorderless]="true" class="mb0" #distannce4>
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>附件信息</span>
<div nz-row>
<div nzSpan="12" nz-col>
<nz-card [nzBorderless]="true" class="mb0 attch-card" #distannce4>
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>附件信息</span>
</div>
<div class="attachment-info">
<sv-container col="1">
<sv label="协议附件">
<a *ngIf="i?.contractContent?.contractContent" (click)="agreement('1')">查看附件</a> &nbsp;&nbsp;&nbsp;&nbsp;
<a *ngIf="i?.supplementContent?.contractContent" (click)="agreement('2')">补充协议</a>
</sv>
</sv-container>
<sv-container col="2" class="mt-md" layout="vertical">
<sv label="装货凭证">
<app-imagelist *ngIf="i?.loadingLadingBillFilePath || i?.loadingPeopleVehiclesGoodsFilePath"
[imgList]="[i?.loadingLadingBillFilePath, i?.loadingPeopleVehiclesGoodsFilePath]"
[style]="'width:120px;height:120px;'"> </app-imagelist>
</sv>
<sv label="卸货凭证">
<app-imagelist *ngIf="i?.unloadingLadingBillFilePath || i?.unloadingPeopleVehiclesGoodsFilePath "
[imgList]="[i?.unloadingLadingBillFilePath, i?.unloadingPeopleVehiclesGoodsFilePath]"
[style]="'width:120px;height:120px;'"> </app-imagelist>
</sv>
</sv-container>
</div>
</nz-card>
</div>
<sv-container>
<sv label="协议附件">
<a *ngIf="i?.contractContent?.contractContent" (click)="agreement('1')">查看附件</a> &nbsp;&nbsp;&nbsp;&nbsp;
<a *ngIf="i?.supplementContent?.contractContent" (click)="agreement('2')">补充协议</a>
</sv>
</sv-container>
<sv-container col="2" class="mt-md">
<sv label="装货凭证">
<app-imagelist *ngIf="i?.loadingLadingBillFilePath || i?.loadingPeopleVehiclesGoodsFilePath"
[imgList]="[i?.loadingLadingBillFilePath, i?.loadingPeopleVehiclesGoodsFilePath]"> </app-imagelist>
</sv>
<sv label="卸货凭证">
<app-imagelist *ngIf="i?.unloadingLadingBillFilePath || i?.unloadingPeopleVehiclesGoodsFilePath "
[imgList]="[i?.unloadingLadingBillFilePath, i?.unloadingPeopleVehiclesGoodsFilePath]"> </app-imagelist>
</sv>
</sv-container>
</nz-card>
<nz-card [nzBorderless]="true" class="mb0">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>补充信息</span>
<div nzSpan="12" nz-col>
<nz-card [nzBorderless]="true" class="mb0 attch-card">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>补充信息</span>
</div>
<div class="attachment-info">
<sv-container col="1">
<sv label="是否回单">
{{ i?.supplementaryInformationVO?.stateReceipt ? '是' : '否' }}
</sv>
<sv label="回单类型" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.receiptType === '1' ? '电子回单' : '纸质回单' }}
</sv>
<ng-container
*ngIf="i?.supplementaryInformationVO?.stateReceipt && i?.supplementaryInformationVO?.receiptType==='2'">
<sv label="联系人" *ngIf="i?.supplementaryInformationVO?.stateReceipt"> {{
i?.supplementaryInformationVO?.receiptUserName }} / {{ i?.supplementaryInformationVO?.phon }} </sv>
<sv label="所在地区" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.area }}
</sv>
<sv label="详细地址" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.address }}
</sv>
</ng-container>
<sv label="备注">
{{ i?.goodsResource?.remarks }}
</sv>
<sv col="1" label="回单凭证" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
<app-imagelist [imgList]="i?.receiptFilePath" [style]="'width:120px;height:120px;'"></app-imagelist>
</sv>
</sv-container>
</div>
</nz-card>
</div>
<sv-container>
<sv label="是否回单">
{{ i?.supplementaryInformationVO?.stateReceipt ? '是' : '否' }}
</sv>
<sv label="回单类型" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.receiptType === '1' ? '电子回单' : '纸质回单' }}
</sv>
<sv label="联系人" *ngIf="i?.supplementaryInformationVO?.stateReceipt"> {{
i?.supplementaryInformationVO?.receiptUserName }} / {{ i?.supplementaryInformationVO?.phon }} </sv>
<sv label="所在地区" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.area }}
</sv>
<sv label="详细地址" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.address }}
</sv>
<sv label="备注">
{{ i?.goodsResource?.remarks }}
</sv>
<sv col="1" label="回单凭证" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
<app-imagelist [imgList]="i?.receiptFilePath"></app-imagelist>
</sv>
</sv-container>
</nz-card>
</div>
<nz-card #distannce5 [nzBorderless]="true" class="mb0">
<p class="detail_title"><span>|</span> 轨迹信息</p>

View File

@ -32,38 +32,5 @@
padding-right: 100px;
}
.handling-info {
min-height: 90px;
border: 1px solid #ccc;
.loading-row {
display: flex;
}
.handling-info-icon {
width: 32px;
height: 32px;
margin-right: 24px;
color: #fff;
line-height: 32px;
text-align: center;
border-radius: 50%;
&.loading-bg {
background-color: #50D4AB;
}
&.unloaing-bg {
background: #F66F6A;
}
}
.info {
flex: 1;
}
.time-info {
margin-left: 56px;
}
}
}

View File

@ -528,7 +528,7 @@ export class OrderManagementBulkComponent extends BasicTableComponent implements
text: '确认签收',
click: _record => this.confirmReceipt(_record),
iif: item => item.billStatus == '4',
acl: { ability: ['VEHICLE-LIST-view'] }
acl: { ability: ['ORDER-BULK-signBulkOrder'] }
},
{
text: '取消订单',

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-01-12 10:52:50
* @LastEditors : Shiming
* @LastEditTime : 2022-04-06 11:06:05
* @LastEditTime : 2022-04-29 10:29:12
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\receipts-audit\\receipts-audit.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -118,7 +118,7 @@
<div>
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
[acl-ability]="['ORDER-RECEIPTS-search']">筛选</button>
<button nz-button nzDanger [disabled]="false" (click)="exprot()">导出</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">
更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
<nz-dropdown-menu #menu="nzDropdownMenu">

View File

@ -194,7 +194,8 @@
<a class="sign"></a>
<span>运费信息</span>
</div>
<st #st [data]="billExpenses" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
<st #st [data]="billExpenses" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }"
[size]="'small'">
<ng-template st-row="price" let-item let-index="index">
{{ item.price | currency }}
</ng-template>
@ -214,58 +215,74 @@
i?.payeePhone : '' }}/{{ i?.payeeIdNo }}</div>
</nz-card>
<nz-card [nzBorderless]="true" class="mb0" #distannce4>
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>附件信息</span>
<div nz-row>
<div nzSpan="12" nz-col>
<nz-card [nzBorderless]="true" class="mb0 attch-card" #distannce4>
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>附件信息</span>
</div>
<div class="attachment-info">
<sv-container>
<sv label="协议附件" col="1">
<a *ngIf="i?.contractContent?.contractContent" (click)="agreement('1')">查看附件</a> &nbsp;&nbsp;&nbsp;&nbsp;
<a *ngIf="i?.supplementContent?.contractContent" (click)="agreement('2')">补充协议</a>
</sv>
</sv-container>
<sv-container col="2" class="mt-md" layout="vertical">
<sv label="装货凭证">
<app-imagelist *ngIf="i?.loadingLadingBillFilePath|| i?.loadingPeopleVehiclesGoodsFilePath"
[imgList]="[i?.loadingLadingBillFilePath, i?.loadingPeopleVehiclesGoodsFilePath]"
[style]="'width:120px;height:120px;'">
</app-imagelist>
</sv>
<sv label="卸货凭证">
<app-imagelist *ngIf="i?.unloadingLadingBillFilePath || i?.unloadingPeopleVehiclesGoodsFilePath"
[imgList]="[i?.unloadingLadingBillFilePath, i?.unloadingPeopleVehiclesGoodsFilePath]"
[style]="'width:120px;height:120px;'">
</app-imagelist>
</sv>
</sv-container>
</div>
</nz-card>
</div>
<sv-container>
<sv label="协议附件">
<a *ngIf="i?.contractContent?.contractContent" (click)="agreement('1')">查看附件</a> &nbsp;&nbsp;&nbsp;&nbsp;
<a *ngIf="i?.supplementContent?.contractContent" (click)="agreement('2')">补充协议</a>
</sv>
</sv-container>
<sv-container col="2" class="mt-md">
<sv label="装货凭证">
<app-imagelist [imgList]="[i?.loadingLadingBillFilePath, i?.loadingPeopleVehiclesGoodsFilePath]"> </app-imagelist>
</sv>
<sv label="卸货凭证">
<app-imagelist [imgList]="[i?.unloadingLadingBillFilePath, i?.unloadingPeopleVehiclesGoodsFilePath]">
</app-imagelist>
</sv>
</sv-container>
</nz-card>
<nz-card [nzBorderless]="true" class="mb0">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>补充信息</span>
<div nzSpan="12" nz-col>
<nz-card [nzBorderless]="true" class="mb0 attch-card">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>补充信息</span>
</div>
<div class="attachment-info">
<sv-container col="1">
<sv label="是否回单">
{{ i?.supplementaryInformationVO?.stateReceipt ? '是' : '否' }}
</sv>
<sv label="回单类型" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.receiptType === '1' ? '电子回单' : '纸质回单' }}
</sv>
<ng-container
*ngIf="i?.supplementaryInformationVO?.stateReceipt && i?.supplementaryInformationVO?.receiptType==='2'">
<sv label=" 联系人" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.receiptUserName }} / {{ i?.supplementaryInformationVO?.phon }}
</sv>
<sv label="所在地区" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.area }}
</sv>
<sv label="详细地址" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.address }}
</sv>
</ng-container>
<sv label="备注">
{{ i?.goodsResource?.remarks }}
</sv>
<sv label="回单凭证" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
<app-imagelist [imgList]="i?.receiptFilePath" [style]="'width:120px;height:120px;'"></app-imagelist>
</sv>
</sv-container>
</div>
</nz-card>
</div>
<sv-container>
<sv label="是否回单">
{{ i?.supplementaryInformationVO?.stateReceipt ? '是' : '否' }}
</sv>
<sv label="回单类型" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.receiptType === '1' ? '电子回单' : '纸质回单' }}
</sv>
<sv label="联系人" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.receiptUserName }} / {{ i?.supplementaryInformationVO?.phon }}
</sv>
<sv label="所在地区" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.area }}
</sv>
<sv label="详细地址" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.address }}
</sv>
</sv-container>
<sv-container col="1" class="mt-md">
<sv label="回单凭证" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
<app-imagelist [imgList]="i?.receiptFilePath"></app-imagelist>
</sv>
<sv label="备注">
{{ i?.goodsResource?.remarks }}
</sv>
</sv-container>
</nz-card>
</div>
<nz-card [nzBorderless]="true" class="mb0" #distannce5>
<p class="detail_title"><span>|</span> 轨迹信息</p>

View File

@ -36,44 +36,7 @@
display: none;
}
.handling-col {
min-height: 90px;
.handling-info {
height: 100%;
border: 1px solid #ccc;
.loading-row {
display: flex;
}
.handling-info-icon {
width: 32px;
height: 32px;
margin-right: 24px;
color: #fff;
line-height: 32px;
text-align: center;
border-radius: 50%;
&.loading-bg {
background-color: #50D4AB;
}
&.unloaing-bg {
background: #F66F6A;
}
}
}
.info {
flex: 1;
}
.time-info {
margin-left: 56px;
}
}
.target-fix {
display: block;

View File

@ -1,10 +1,10 @@
/*
* @Description :
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-01-06 09:24:00
* @LastEditors : Shiming
* @LastEditTime : 2022-04-28 20:50:36
* @LastEditTime : 2022-04-29 10:41:21
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\order-management-routing.module.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
@ -25,22 +25,34 @@ import { OrderManagementVehicleDetailComponent } from './components/vehicle-deta
import { OrderManagementVehicleComponent } from './components/vehicle/vehicle.component';
const routes: Routes = [
{ path: 'vehicle', component: OrderManagementVehicleComponent },
{ path: 'vehicle/vehicle-detail/:id', component: OrderManagementVehicleDetailComponent },
{ path: 'vehicle', component: OrderManagementVehicleComponent, data: { guard: { ability: ['ORDER-VEHICLE-search'] } } },
{
path: 'vehicle/vehicle-detail/:id',
component: OrderManagementVehicleDetailComponent,
data: { guard: { ability: ['ORDER-VEHICLE-DETAIL-search'] } }
},
{ path: 'vehicle-detailChange/:id', component: OrderManagementVehicleDetailChangeComponent },
{ path: 'bulk', component: OrderManagementBulkComponent },
{ path: 'bulk/bulk-detail/:id', component: OrderManagementBulkeDetailComponent },
{ path: 'bulk', component: OrderManagementBulkComponent, data: { guard: { ability: ['ORDER-BULK-search'] } } },
{
path: 'bulk/bulk-detail/:id',
component: OrderManagementBulkeDetailComponent,
data: { guard: { ability: ['ORDER-BULK-DETAIL-search'] } }
},
{ path: 'bulk-detailChange/:id', component: OrderManagementBulkDetailChangeComponent },
{ path: 'risk', component: OrderManagementRiskComponent },
{ path: 'risk', component: OrderManagementRiskComponent, data: { guard: { ability: ['ORDER-RISK-search'] } } },
{ path: 'risk-detail/:id', component: OrderManagementRiskDetailComponent },
{ path: 'complaint', component: OrderManagementComplaintComponent },
{ path: 'complaint', component: OrderManagementComplaintComponent, data: { guard: { ability: ['ORDER-COMPLAINT-search'] } } },
{ path: 'complaint-detail/:id', component: OrderManagementComplaintDetailComponent },
{ path: 'receipts-audit', component: OrderManagementReceiptsAuditComponent },
{ path: 'compliance-audit', component: OrderManagementComplianceAuditComponent },
{ path: 'abnormal-warning', component: OrderManagementAbnormalWarningComponent },
]
{ path: 'receipts-audit', component: OrderManagementReceiptsAuditComponent, data: { guard: { ability: ['ORDER-RECEIPTS-search'] } } },
{
path: 'compliance-audit',
component: OrderManagementComplianceAuditComponent,
data: { guard: { ability: ['ORDER-COMPLIANCE-AUDIT-search'] } }
},
{ path: 'abnormal-warning', component: OrderManagementAbnormalWarningComponent, data: { guard: { ability: ['ORDER-ABNORMAL-search'] } } }
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class OrderManagementRoutingModule { }
export class OrderManagementRoutingModule {}

View File

@ -32,7 +32,7 @@
<div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right">
<button nz-button nzType="primary" [disabled]="!sf.valid" (click)="st?.load(1)">查询</button>
<button nz-button (click)="resetSF()">重置</button>
<button nz-button (click)="export()" nzType="primary" nzGhost>导出</button>
<button nz-button (click)="export()" nzType="primary" acl [acl-ability]="['AM-DETAIL-export']" nzGhost>导出</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>

View File

@ -8,7 +8,7 @@
<sf [schema]="schema" [mode]="'search'" [ui]="ui" [button]="'none'" #sf>
<button nz-button nzType="primary" [disabled]="!sf.valid" (click)="st?.load(1)">查询</button>
<button nz-button (click)="resetSF()">重置</button>
<button nz-button (click)="export()" nzType="primary" nzGhost>导出</button>
<button nz-button (click)="export()" nzType="primary" nzGhost acl [acl-ability]="['AM-LIST-export']">导出</button>
</sf>
</nz-card>
@ -24,7 +24,7 @@
<ng-template st-row="unEntryAmount" let-item>
<a class="text-right text-blue-dark"
[routerLink]="'/partner/account-management/am/recorded/detail/'+item?.roleId">{{item.unEntryAmount | currency:'
'}}</a>
'}} acl [acl-ability]="['AM-LIST-unEntryAmount']"</a>
</ng-template>
<ng-template st-row="availableBalance" let-item>
<div class="text-right">{{item.availableBalance | currency:' '}}</div>

View File

@ -77,6 +77,7 @@ export class PartnerAccountManagementListComponent implements OnInit {
buttons: [
{
text: '虚拟账户明细',
acl: { ability: ['AM-LIST-viewVirtual'] },
click: (_record) => this.viewVirtual(_record)
}
]

View File

@ -92,10 +92,12 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit {
buttons: [
{
text: '查看入账记录',
acl: { ability: ['AN-RECORDED-DETAIL-viewRecord'] },
click: (_record) => this.viewBookedRecord(_record)
},
{
text: '查看账单明细',
acl: { ability: ['AN-RECORDED-DETAIL-viewBill'] },
click: (_record) => this.viewAccountDetail(_record)
},
]

View File

@ -10,7 +10,7 @@
class="text-right">
<button nz-button nzType="primary" (click)="st?.load(1)">查询</button>
<button nz-button (click)="resetSF()">重置</button>
<button nz-button> 导出</button>
<button nz-button acl [acl-ability]="['AM-WITHDRAW-RECORD-export']"> 导出</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
@ -37,7 +37,7 @@
totalCallNo }}</strong>
<!-- <a *ngIf="totalCallNo > 0" (click)="st.clearCheck()" class="ml-lg">清空</a> -->
</div>
<button nz-button (click)="this.auditAction(null)">审核</button>
<button nz-button (click)="this.auditAction(null)" acl [acl-ability]="['AM-WITHDRAW-RECORD-audit']">审核</button>
</div>
</ng-template>

View File

@ -309,6 +309,7 @@ export class PartnerAccountManagementWithdrawalsRecordComponent implements OnIni
{
text: '查看回单',
iif: item => item.refundStatus === '3',
acl: { ability: ['AM-WITHDRAW-RECORD-viewRefund'] },
click: item =>
this.service.getReceiptUrl(item.receiptUrl, {
bankType: item.bankType,
@ -322,15 +323,18 @@ export class PartnerAccountManagementWithdrawalsRecordComponent implements OnIni
{
text: '查看原因',
iif: item => item.refundStatus === '4',
acl: { ability: ['AM-WITHDRAW-RECORD-viewResult'] },
click: item => this.showReason(item)
},
{
text: '审核',
iif: item => item.refundStatus === '1',
acl: { ability: ['AM-WITHDRAW-RECORD-oneAudit'] },
click: item => this.auditAction(item)
},
{
text: '详情',
acl: { ability: ['AM-WITHDRAW-RECORD-detail'] },
click: item => this.router.navigate(['./../detail/' + item.id], { relativeTo: this.ar })
}
]

View File

@ -21,7 +21,7 @@
</nz-card>
<nz-card>
<button nz-button nzType="primary" style="margin-bottom: 24px" (click)="add()"><i nz-icon nzType="plus"></i>新增</button>
<button nz-button nzType="primary" style="margin-bottom: 24px" acl [acl-ability]="['channelSales-add']" (click)="add()"><i nz-icon nzType="plus"></i>新增</button>
<!-- 数据列表 -->
<st
#st

View File

@ -126,10 +126,12 @@ export class ParterChannelSalesListComponent implements OnInit {
buttons: [
{
text: '编辑',
acl: { ability: ['channelSales-edit'] },
click: (_record, _modal, _instance) => this.edit(_record),
},
{
text: '冻结',
acl: { ability: ['channelSales-frozen'] },
click: (_record, _modal, _instance) => this.stop(_record),
}
]

View File

@ -27,7 +27,7 @@
<!-- 工具栏 -->
<div nz-row>
<div nz-col nzSpan="24">
<button nz-button nzType="primary" (click)="add()">新增banner</button>
<button nz-button nzType="primary" (click)="add()" acl [acl-ability]="['banner-add']">新增banner</button>
</div>
</div>

View File

@ -156,12 +156,14 @@ export class BannerComponentsListComponent implements OnInit {
buttons: [
{
text: '修改',
acl: { ability: ['banner-change'] },
click: (item) => {
this.router.navigate(['../detail'], { queryParams: { id: item.id, type: 'edit' }, relativeTo: this.ar });
}
},
{
text: '禁用',
acl: { ability: ['banner-forbidden'] },
pop: {
title: `确定禁用此banner图吗`,
okType: 'danger',
@ -174,6 +176,7 @@ export class BannerComponentsListComponent implements OnInit {
},
{
text: '启用',
acl: { ability: ['banner-startUseing'] },
pop: {
title: `确定启用此banner图吗`,
okType: 'danger',

View File

@ -11,7 +11,7 @@
</nz-card>
<nz-card>
<button nz-button nzType="primary" style="margin-bottom: 24px" (click)="add()"><i nz-icon nzType="plus"></i>新增</button>
<button nz-button nzType="primary" style="margin-bottom: 24px" (click)="add()" acl [acl-ability]="['LevelConfig-add']"><i nz-icon nzType="plus"></i>新增</button>
<!-- 数据列表 -->
<st
#st

View File

@ -105,15 +105,18 @@ export class ParterLevelConfigListComponent implements OnInit {
buttons: [
{
text: '编辑',
acl: { ability: ['LevelConfig-edit'] },
click: (_record, _modal, _instance) => this.edit(_record)
},
{
text: '禁用',
acl: { ability: ['LevelConfig-forbidden'] },
click: (_record, _modal, _instance) => this.stop(_record),
iif: item => !item.stateLocked
},
{
text: '启用',
acl: { ability: ['LevelConfig-startUseing'] },
click: (_record, _modal, _instance) => this.restart(_record),
iif: item => item.stateLocked
}

View File

@ -20,9 +20,9 @@
<nz-card class="content-box" nzBordered>
<div class="d-flex align-items-center mb-md mt-md">
<button nz-button (click)="this.routeTo('/partner/partner-list/add-etp-partner')" nzType="primary">新增企业合伙人</button>
<button nz-button (click)="this.routeTo('/partner/partner-list/add-etp-partner')" nzType="primary" acl [acl-ability]="['ENTERPRISE-saveEnterprise']">新增企业合伙人</button>
<button nz-button (click)="this.routeTo('/partner/partner-list/add-personal-partner')"
nzType="primary">新增个人合伙人</button>
nzType="primary" acl [acl-ability]="['ENTERPRISE-savePersonally']">新增个人合伙人</button>
</div>
<st #st [data]="service.$api_get_partner_page" [columns]="columns" [req]="{ process: beforeReq }"

View File

@ -449,12 +449,14 @@ export class PartnerListComponent {
{ type: 'divider' },
{
text: '审核',
acl: { ability: ['ENTERPRISE-audit'] },
iif: item => item.id && item.approvalStatus === 10,
click: item => this.auditPartner(item)
},
{
text: '详情<br>',
iif: item => item.id,
acl: { ability: ['ENTERPRISE-detail'] },
click: item => {
if (item.partnerType === 1) {
this.router.navigate([`/partner/partner-list/etp-detail/${item.id}`]);
@ -466,15 +468,18 @@ export class PartnerListComponent {
{
text: '修改返佣模板',
iif: item => item.id,
acl: { ability: ['ENTERPRISE-updateTemplate'] },
click: item => this.editTemplateAction(item)
},
{
text: '修改渠道销售',
iif: item => item.id,
acl: { ability: ['ENTERPRISE-updateChannelCheck'] },
click: item => this.editCannelAction(item)
},
{
text: '重发CRM流程',
acl: { ability: ['ENTERPRISE-reSendCrm'] },
click: item => item.id && this.reSendCRM(item),
iif: item => item.crmStatus === 10
}

View File

@ -162,7 +162,7 @@
nzTheme="fill" class="mr-xs"></i>通过
</label>
<label *ngIf="detailData?.esignCheckStatus === 2" style="color: #1890ff"><i nz-icon nzType="close-circle"
nzTheme="fill" class="mr-xs"></i>未认证
nzTheme="fill" class="mr-xs"></i>未认证&nbsp;&nbsp;{{detailData?.esignCheckMsg}}
</label>
</p>
</sv-title>

View File

@ -66,7 +66,8 @@ const routes: Routes = [
{
path: 'channel-sales',
children: [
{ path: '', component: ParterChannelSalesListComponent },
{ path: '', component: ParterChannelSalesListComponent,
data: { guard: { ability: ['channelSales-search'] } } },
{ path: 'list', component: ParterChannelSalesListComponent },
{ path: 'edit', component: ParterChannelSalesEditComponent }
]
@ -74,20 +75,27 @@ const routes: Routes = [
{
path: 'level-config',
children: [
{ path: '', component: ParterLevelConfigListComponent },
{ path: 'list', component: ParterLevelConfigListComponent },
{ path: '', component: ParterLevelConfigListComponent,
data: { guard: { ability: ['LevelConfig-search'] } } },
{ path: 'list', component: ParterLevelConfigListComponent ,
data: { guard: { ability: ['LevelConfig-search'] } } },
{ path: 'edit', component: ParterLevelConfigEditComponent }
]
},
{
path: 'rebate',
children: [
{ path: 'particulars', component: ParterRebateManageMentParticularsComponent },
{ path: 'record', component: ParterRebateManageMentRecordComponent },
{ path: 'setting', component: ParterRebateManageMentSettingComponent },
{
path: 'particulars',
component: ParterRebateManageMentParticularsComponent,
data: { guard: { ability: ['REBATE-PARTICULARS-search'] } }
},
{ path: 'record', component: ParterRebateManageMentRecordComponent, data: { guard: { ability: ['REBATE-RECORD-search'] } } },
{ path: 'setting', component: ParterRebateManageMentSettingComponent, data: { guard: { ability: ['REBATE-SETTING-search'] } } },
{ path: 'setting/add/:id', component: ParterRebateManageMentAddComponent }
]
},
// 账户管理
{
path: 'account-management',
children: [
@ -95,16 +103,30 @@ const routes: Routes = [
path: 'am',
children: [
{ path: '', redirectTo: 'list' },
{ path: 'list', component: PartnerAccountManagementListComponent },
{ path: 'detail/:id', component: PartnerAccountManagementAccountDetailComponent },
{ path: 'recorded/detail/:id', component: PartnerAccountManagementRecordedDetailComponent }
{ path: 'list', component: PartnerAccountManagementListComponent, data: { guard: { ability: ['AM-LIST-search'] } } },
// 合伙人账户明细
{
path: 'detail/:id',
component: PartnerAccountManagementAccountDetailComponent,
data: { guard: { ability: ['AM-LIST-search'] } }
},
// 待入账明细
{
path: 'recorded/detail/:id',
component: PartnerAccountManagementRecordedDetailComponent,
data: { guard: { ability: ['AN-RECORDED-DETAIL-search'] } }
}
]
},
{
path: 'withdraw-record',
children: [
{ path: '', redirectTo: 'list' },
{ path: 'list', component: PartnerAccountManagementWithdrawalsRecordComponent },
{
path: 'list',
component: PartnerAccountManagementWithdrawalsRecordComponent,
data: { guard: { ability: ['AM-WITHDRAW-RECORD-search'] } }
},
{ path: 'detail/:id', component: PartnerAccountManagementWithdralDetailComponent }
]
}
@ -113,7 +135,7 @@ const routes: Routes = [
{
path: 'partner-list',
children: [
{ path: '', component: PartnerListComponent },
{ path: '', component: PartnerListComponent, data: { guard: { ability: ['ENTERPRISE-search'] } } },
{ path: 'etp-detail/:id', component: PartnerDetailComponent },
{ path: 'personal-detail/:id', component: PersonalPartnerDetailComponent },
{ path: 'add-etp-partner', component: AddEtpPartnerComponent },
@ -133,7 +155,7 @@ const routes: Routes = [
path: 'scrollimg',
children: [
{ path: '', component: ScrollImgComponentsListComponent },
{ path: 'list', component: ScrollImgComponentsListComponent },
{ path: 'list', component: ScrollImgComponentsListComponent, data: { guard: { ability: ['scrollimg-search'] } } },
{ path: 'detail', component: ScrollimgComponentsAddComponent }
]
},
@ -148,7 +170,7 @@ const routes: Routes = [
{
path: 'recorded',
children: [
{ path: 'record', component: PartnerRecordedRecordComponent },
{ path: 'record', component: PartnerRecordedRecordComponent, data: { guard: { ability: ['RECORDED-LIST-search'] } } },
{ path: 'record/detail/:id', component: PartnerRecordedDetailComponent }
]
},
@ -159,7 +181,7 @@ const routes: Routes = [
{ path: 'article-management-list', component: ParterArticleManagementListComponent },
{ path: 'article-management-add', component: ParterArticleManagementEditComponent },
{ path: 'article-management-edit', component: ParterArticleManagementEditComponent },
{ path: 'banner', component: BannerComponentsListComponent },
{ path: 'banner', component: BannerComponentsListComponent, data: { guard: { ability: ['banner-search'] } } },
{ path: 'banner/detail', component: BannerComponentsAddComponent }
]
}

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-03-09 14:34:55
* @LastEditors : Shiming
* @LastEditTime : 2022-04-27 11:28:31
* @LastEditTime : 2022-04-29 15:29:58
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\partner.module.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/

View File

@ -32,7 +32,7 @@
</div>
<div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1);">查询</button>
<button nz-button nzType="primary" [disabled]="service.http.loading" >导出</button>
<button nz-button nzType="primary" [disabled]="service.http.loading" acl [acl-ability]="['REBATE-PARTICULARS-export']" >导出</button>
<button nz-button [disabled]="service.http.loading" (click)="resetSF()">重置</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}

View File

@ -23,7 +23,7 @@
></sf>
<div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1);">查询</button>
<button nz-button nzType="primary" [disabled]="service.http.loading" >导出</button>
<button nz-button nzType="primary" [disabled]="service.http.loading" acl [acl-ability]="['REBATE-RECORD-export']">导出</button>
<button nz-button [disabled]="service.http.loading" (click)="resetSF()">重置</button>
</div>
</div>

View File

@ -106,6 +106,7 @@ export class ParterRebateManageMentRecordComponent implements OnInit {
buttons: [
{
text: '明细',
acl: { ability: ['REBATE-RECORD-detail'] },
click: _record => this.viewEvaluate(_record),
}
]

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-03-21 09:26:45
* @LastEditors : Shiming
* @LastEditTime : 2022-04-27 14:14:32
* @LastEditTime : 2022-04-29 16:23:18
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add\\add.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
@ -143,29 +143,29 @@ export class ParterRebateManageMentAddComponent implements OnInit {
});
}
save() {
// if(!this.configName) {
// this.service.msgSrv.warning('请输入配置名称!');
// return
// }
// if(!this.accountingRate) {
// this.service.msgSrv.warning('请输入固定结算费率!');
// return
// }
// if(!this.partnerType) {
// this.service.msgSrv.warning('请选择合伙人范围!');
// return
// }
// if(this.partnerType == '3' && this.partnerPeopleList?.length == 0) {
// this.service.msgSrv.warning('请选择合伙人!');
// return
// }
// let real = false;
// this.table.data.forEach((element: any) => {
// if (element.startAmount > element.endAmount) {
// real = true;
// return;
// }
// });
if(!this.configName) {
this.service.msgSrv.warning('请输入配置名称!');
return
}
if(!this.accountingRate) {
this.service.msgSrv.warning('请输入固定结算费率!');
return
}
if(!this.partnerType) {
this.service.msgSrv.warning('请选择合伙人范围!');
return
}
if(this.partnerType == '3' && this.partnerPeopleList?.length == 0) {
this.service.msgSrv.warning('请选择合伙人!');
return
}
let real = false;
this.table.data.forEach((element: any) => {
if (element.startAmount > element.endAmount) {
real = true;
return;
}
});
// if (real) {
// this.service.msgSrv.warning('初始业务量不能超过到达业务量!');
// return;
@ -184,12 +184,12 @@ export class ParterRebateManageMentAddComponent implements OnInit {
};
console.log(params);
// this.service.request(this.service.$api_save_rebateConfig, params).subscribe((res: any) => {
// if (res) {
// this.service.msgSrv.success('新增成功!');
// this.router.navigate(['/partner/rebate/setting']);
// }
// });
this.service.request(this.service.$api_save_rebateConfig, params).subscribe((res: any) => {
if (res) {
this.service.msgSrv.success('新增成功!');
this.router.navigate(['/partner/rebate/setting']);
}
});
}
initData(id: string) {
this.service.request(this.service.$api_get_getPartnerRebateConfigInfo, { id: id }).subscribe((res: any) => {

View File

@ -23,7 +23,7 @@
></sf>
<div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1);">查询</button>
<button nz-button nzType="primary" [disabled]="service.http.loading" >导出</button>
<button nz-button nzType="primary" [disabled]="service.http.loading" acl [acl-ability]="['REBATE-SETTING-export']">导出</button>
<button nz-button [disabled]="service.http.loading" (click)="resetSF()">重置</button>
</div>
</div>
@ -34,7 +34,7 @@
<!-- +新增 -->
<div class="d-flex justify-content-end mb-sm">
<div>
<button nz-button nzType="primary" (click)="configAction()">新增</button>
<button nz-button nzType="primary" (click)="configAction()" acl [acl-ability]="['REBATE-SETTING-add']">新增</button>
</div>
</div>
<st

View File

@ -125,15 +125,18 @@ export class ParterRebateManageMentSettingComponent implements OnInit {
buttons: [
{
text: '查看',
acl: { ability: ['REBATE-SETTING-detail'] },
click: _record => this.configAction(_record),
},
{
text: '禁用',
acl: { ability: ['REBATE-SETTING-forbidden'] },
iif: (_record) =>{ return _record.stateLocked == true && (_record.partnerType == 3 || _record.partnerType == 2)},
click: _record => this.viewEvaluate(_record),
},
{
text: '启用',
acl: { ability: ['REBATE-SETTING-startUseing'] },
iif: (_record) =>{ return _record.stateLocked == false},
click: _record => this.viewEvaluate(_record),
},

View File

@ -10,7 +10,7 @@
class="text-right">
<button nz-button nzType="primary" (click)="search()">查询</button>
<button nz-button (click)="resetSF()">重置</button>
<button nz-button> 导出</button>
<button nz-button acl [acl-ability]="['RECORDED-LIST-export']"> 导出</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
@ -36,7 +36,7 @@
totalCallNo }}</strong>
<!-- <a *ngIf="totalCallNo > 0" (click)="st.clearCheck()" class="ml-lg">清空</a> -->
</div>
<button nz-button (click)="this.auditAction(null)">审核</button>
<button nz-button (click)="this.auditAction(null)" acl [acl-ability]="['RECORDED-LIST-audit']">审核</button>
</div>
</ng-template>

View File

@ -316,15 +316,18 @@ export class PartnerRecordedRecordComponent implements OnInit {
{
text: '审核',
iif: item => item.sts === '0',
acl: { ability: ['RECORDED-LIST-oneAudit'] },
click: item => this.auditAction(item)
},
{
text: '复审',
iif: item => item.sts === '1',
acl: { ability: ['RECORDED-LIST-recheck'] },
click: item => this.router.navigate(['./detail/' + item.id], { relativeTo: this.ar })
},
{
text: '详情',
acl: { ability: ['RECORDED-LIST-detail'] },
click: item => this.router.navigate(['./detail/' + item.id], { relativeTo: this.ar })
}
]

View File

@ -27,7 +27,7 @@
<!-- 工具栏 -->
<div nz-row>
<div nz-col nzSpan="24">
<button nz-button nzType="primary" (click)="add()">新增轮播图</button>
<button nz-button nzType="primary" (click)="add()" acl [acl-ability]="['scrollimg-add']">新增轮播图</button>
</div>
</div>

View File

@ -176,12 +176,14 @@ export class ScrollImgComponentsListComponent implements OnInit {
buttons: [
{
text: '修改',
acl: { ability: ['scrollimg-change'] },
click: (item) => {
this.router.navigate(['../detail'], { queryParams: { id: item.id, type: 'edit' }, relativeTo: this.ar });
}
},
{
text: '禁用',
acl: { ability: ['scrollimg-forbidden'] },
pop: {
title: `是否确认禁用?`,
okType: 'danger',
@ -194,6 +196,7 @@ export class ScrollImgComponentsListComponent implements OnInit {
},
{
text: '启用',
acl: { ability: ['scrollimg-startUseing'] },
pop: {
title: `是否确认启用?`,
okType: 'danger',
@ -206,12 +209,14 @@ export class ScrollImgComponentsListComponent implements OnInit {
},
{
text: '查看',
acl: { ability: ['scrollimg-detail'] },
click: (item) => {
this.router.navigate(['../view'], { queryParams: { id: item.id, type: 'view' }, relativeTo: this.ar });
}
},
{
text: '删除',
acl: { ability: ['scrollimg-delete'] },
pop: {
title: `确定删除吗?`,
okType: 'danger',

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-01-13 19:22:47
* @LastEditors : Shiming
* @LastEditTime : 2022-03-30 14:09:00
* @LastEditTime : 2022-04-29 15:26:30
* @FilePath : \\tms-obc-web\\src\\app\\routes\\routes-routing.module.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
@ -42,7 +42,6 @@ const routes: Routes = [
{ path: 'system', loadChildren: () => import('./sys-setting/sys-setting.module').then(m => m.SysSettingModule) },
{ path: 'logs', loadChildren: () => import('./logs/logs.module').then(m => m.LogsModule) },
{ path: 'ticket', loadChildren: () => import('./ticket-management/ticket-management.module').then(m => m.TicketManagementModule) },
{ path: 'supplygoods', loadChildren: () => import('./supply-goods/supply-goods.module').then(m => m.SupplyGoodsModule) },
{ path: 'vehicle', loadChildren: () => import('./vehicle/vehicle.module').then(m => m.VehicleModule) },
{
path: 'supply-management',

View File

@ -47,38 +47,4 @@
}
}
.handling-info {
min-height: 90px;
border: 1px solid #ccc;
.loading-row {
display: flex;
}
.handling-info-icon {
width: 32px;
height: 32px;
margin-right: 24px;
color: #fff;
line-height: 32px;
text-align: center;
border-radius: 50%;
&.loading-bg {
background-color: #50D4AB;
}
&.unloaing-bg {
background: #F66F6A;
}
}
.info {
flex: 1;
}
.time-info {
margin-left: 56px;
}
}
}

View File

@ -13,8 +13,7 @@
</nz-card>
<nz-card>
<div class="card-title"x
>装卸货信息<span class="tip-font">预计公里数:{{ totalDistance }}km预计行程耗时{{ totalTime }}小时</span></div
<div class="card-title">装卸货信息<span class="tip-font">预计公里数:{{ totalDistance }}km预计行程耗时{{ totalTime }}小时</span></div
>
<form #ngForm="ngForm" nz-form role="form">

View File

@ -47,39 +47,4 @@
}
}
.handling-info {
min-height: 100px;
border: 1px solid #ccc;
.loading-row {
display: flex;
}
.handling-info-icon {
width: 32px;
height: 32px;
margin-right: 24px;
color: #fff;
line-height: 32px;
text-align: center;
border-radius: 50%;
&.loading-bg {
background-color: #50D4AB;
}
&.unloaing-bg {
background: #F66F6A;
}
}
.info {
flex: 1;
}
.time-info {
margin-left: 56px;
margin-bottom: 0;
}
}
}

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2021-12-24 15:54:08
* @LastEditors : Shiming
* @LastEditTime : 2022-03-24 11:10:44
* @LastEditTime : 2022-04-29 10:20:21
* @FilePath : \\tms-obc-web\\src\\app\\routes\\sys-setting\\components\\network-freight\\network-freight.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -48,7 +48,7 @@
<nz-card class="content-box">
<!-- 工具栏 -->
<div class="toolbar" style="float: right; padding-bottom: 15px">
<button nz-button nzType="primary" (click)="creat()">新增</button>
<button nz-button nzType="primary" (click)="creat()" acl [acl-ability]="['SYSTEM-NETWORK-FREIGHT-ADD']">新增</button>
</div>
<st
#st

View File

@ -129,24 +129,29 @@ export class NetworkFreightComponent implements OnInit {
{ type: 'divider' },
{
text: '基础设置<br>',
click: item => this.creat(item)
click: item => this.creat(item),
acl: { ability: ['SYSTEM-NETWORK-FREIGHT-basicSetting'] },
},
{
text: '财务设置<br>',
click: item => this.ticket(item)
click: item => this.ticket(item),
acl: { ability: ['SYSTEM-NETWORK-FREIGHT-finanical'] },
},
{
text: '充值账户<br>',
click: item => this.settingPay(item)
click: item => this.settingPay(item),
acl: { ability: ['SYSTEM-NETWORK-FREIGHT-TOPUP'] },
},
{
text: '应用设置<br>',
click: item => this.settingApp(item)
click: item => this.settingApp(item),
acl: { ability: ['SYSTEM-NETWORK-FREIGHT-APPLY'] },
},
{
text: '系统配置<br>',
click: item => this.settingAction(item)
click: item => this.settingAction(item),
acl: { ability: ['SYSTEM-NETWORK-FREIGHT-SYSTEMCONFIG'] },
},
// {
// text: '合同设置',

View File

@ -8,7 +8,12 @@
* @FilePath : \\tms-obc-web\\src\\app\\routes\\sys-setting\\components\\network-freight\\new\\new.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="TabText"></page-header-wrapper>
<page-header-wrapper [title]="TabText" [logo]="logo">
<ng-template #logo>
<button nz-button nz-tooltip nzTooltipTitle="返回上一页" (click)="goBack()">
<i nz-icon nzType="left" nzTheme="outline"></i>
</button> </ng-template
></page-header-wrapper>
<nz-card>
<sf #sf1 [ui]="ui" [schema]="schema1" [formData]="sf1FormData" [button]="'none'">
<ng-template sf-template="tipsS" let-me let-ui="ui" let-schema="schema">
@ -17,15 +22,13 @@
<dt>正面照</dt>
<dd>示例</dd>
</dl>
<div class="pa2"> <app-imagelist style="height: 102px;" [imgList]="['./assets/images/company.png']"></app-imagelist></div>
<div class="pa2"> <app-imagelist style="height: 102px" [imgList]="['./assets/images/company.png']"></app-imagelist></div>
</div>
</ng-template>
<ng-template sf-template="legalPersonIdentityVO/tipsY" let-me let-ui="ui" let-schema="schema">
<div class="pr" style="height: 0;">
<dl >
请上传道运证照片支持JPG、PNG格式文件小于5M。蓝牌绿牌车辆可不用传道运证
</dl>
<div class="pa"> <app-imagelist style="height: 152px;" [imgList]="['./assets/images/road.png']"></app-imagelist></div>
<div class="pr" style="height: 0">
<dl> 请上传道运证照片支持JPG、PNG格式文件小于5M。蓝牌绿牌车辆可不用传道运证 </dl>
<div class="pa"> <app-imagelist style="height: 152px" [imgList]="['./assets/images/road.png']"></app-imagelist></div>
</div>
</ng-template>
<ng-template sf-template="title1" let-me let-ui="ui" let-schema="schema">
@ -42,14 +45,14 @@
</ng-template>
<ng-template sf-template="legalPersonIdentityVO/title2" let-me let-ui="ui" let-schema="schema">
<div class="form-title" style="margin-top: 40px;margin-left: -180px;">营业执照法人信息</div>
<div class="form-title" style="margin-top: 40px; margin-left: -180px">营业执照法人信息</div>
</ng-template>
<ng-template sf-template="legalPersonIdentityVO/title3" let-me let-ui="ui" let-schema="schema">
<div class="form-title" style="margin-top: 40px;margin-left: -180px;">道运证信息</div>
<div class="form-title" style="margin-top: 40px; margin-left: -180px">道运证信息</div>
</ng-template>
<ng-template sf-template="legalPersonIdentityVO/roadImg" let-me let-ui="ui" let-schema="schema">
<img height="104" src="./assets/images/road.png" class="borderImg" />
</ng-template>
</ng-template>
<ng-template sf-template="legalPersonIdentityVO/tipsC" let-me let-ui="ui" let-schema="schema">
<div class="pr">
<div>请上传身份证原件的高清照片,若上传复印件,则需申请人签字;</div>
@ -83,7 +86,7 @@
</sf>
<div style="padding-left: 379px">
<button nz-button type="button" nzType="primary" (click)="submitForm()">{{subText}}</button>
<button nz-button type="button" nzType="primary" (click)="submitForm()">{{ subText }}</button>
<button nz-button (click)="goBack()">返回</button>
</div>
</nz-card>
</nz-card>

View File

@ -180,14 +180,8 @@ export class NetworkFreightNewComponent implements OnInit {
if (this.sf1.value.isLoingDate) {
this.sf1.value.operatingEndTime = '';
}
console.log(this.sf1.value);
console.log(this.sf1.valid);
console.log(this.sf?.value);
console.log(this.sf.valid);
const sfVlaue = this.sf1.value;
const params: any = {};
console.log(this.sf1.value);
Object.assign(params, {
...this.sf?.value,
enterpriseInfoDTO: {
@ -203,7 +197,6 @@ export class NetworkFreightNewComponent implements OnInit {
roadTransportLicenceNo: this.sf1.value.legalPersonIdentityVO.roadTransportLicenceNo, //道路运输照片
});
delete params.enterpriseInfoDTO.legalPersonIdentityVO;
console.log(params);
params.enterpriseInfoDTO.enterpriseAddressCode = this.sf1.value?.enterpriseAddressCode?.[2];
if (this.route.snapshot.params.id !== 'undefined') {
params.id = this.route.snapshot.params.id;

View File

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-12-03 15:23:05
* @LastEditTime : 2022-04-28 21:40:03
* @LastEditTime : 2022-04-29 15:08:29
* @LastEditors : Shiming
* @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

View File

@ -17,9 +17,10 @@
<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]="isLoading && st.loading" (click)="search()" acl [acl-ability]="['TAX-ORDERREPORT-search']">查询</button>
<button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="isLoading && st.loading" (click)="search()"
acl [acl-ability]="['TAX-ORDERREPORT-search']">查询</button>
<button nz-button (click)="resetSF()">重置</button>
<button nz-button (click)="resetSF()" acl [acl-ability]="['TAX-ORDERREPORT-export']">导出</button>
<button nz-button (click)="resetSF()" acl [acl-ability]="['TAX-ORDERREPORT-export']">导出</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
@ -43,7 +44,7 @@
<span *ngIf="item?.putStatus == '0'">待上传</span>
<span *ngIf="item?.putStatus == '1'">已上传</span>
<span *ngIf="item?.putStatus == '3'">上传中</span>
<span *ngIf="item?.putStatus == '2'" style="color: red;" (click)="unnormal(item)">上传异常</span>
<span *ngIf="item?.putStatus == '2'" style="color: red;" (click)="unnormal(item)">上传异常</span>
</ng-template>
<ng-template st-row="checkStatus" let-item let-index="index">
@ -51,11 +52,11 @@
<span *ngIf="item?.checkStatus == '0'">校验中</span>
<span *ngIf="item?.checkStatus == '1'">通过</span>
<!-- <span *ngIf="item?.checkStatus == '2'" style="color: red;" (click)="unnormal(item)">不通过</span> -->
<span *ngIf="item?.checkStatus == '2'" style="color: red;" (click)="viewResult(item)">不通过</span>
<a *ngIf="item?.checkStatus == '2'" style="color: red;" (click)="viewResult(item)">不通过</a>
</ng-template>
<ng-template st-row="driverName" let-item let-index="index">
<div> {{ item?.driverName }}{{ item?.driverPhone ? "/" + item?.driverPhone : '' }} </div>
<div> {{ item?.driverName }}{{ item?.driverPhone ? "/" + item?.driverPhone : '' }} </div>
</ng-template>
<!-- <ng-template st-row="localValid" let-item let-index="index">
<a (click)="viewResult(item)" *ngIf="item?.billStatus === '2'">{{item?.billStatusLabel}}</a>
@ -100,9 +101,11 @@
已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据
</div>
<button nz-button nzType="primary" (click)="upload()" acl [acl-ability]="['TAX-ORDERREPORT-upload']">上传</button>
<button nz-button nzType="primary" (click)="recall() " acl [acl-ability]="['TAX-ORDERREPORT-recall']">撤回</button>
<button nz-button nzType="primary" (click)="resetData()" acl [acl-ability]="['TAX-ORDERREPORT-resetData']">更新数据</button>
<button nz-button nzType="primary" (click)="uploadSetting()" acl [acl-ability]="['TAX-ORDERREPORT-uploadSetting']">税务设置</button>
<button nz-button nzType="primary" (click)="upload()" acl [acl-ability]="['TAX-ORDERREPORT-upload']">上传</button>
<button nz-button nzType="primary" (click)="recall() " acl [acl-ability]="['TAX-ORDERREPORT-recall']">撤回</button>
<button nz-button nzType="primary" (click)="resetData()" acl
[acl-ability]="['TAX-ORDERREPORT-resetData']">更新数据</button>
<button nz-button nzType="primary" (click)="uploadSetting()" acl
[acl-ability]="['TAX-ORDERREPORT-uploadSetting']">税务设置</button>
</div>
</ng-template>

View File

@ -445,10 +445,11 @@ export class TaxManagementOrderReportingComponent implements OnInit {
this.service.msgSrv.warning('选择了已上传,请重新勾选!');
return;
}
if(this.selectedRows.find(item => item.checkStatus !== '1')) {
this.service.msgSrv.warning('选择了未通过校验的订单,请重新勾选!');
return;
}
// if(this.selectedRows.find(item => item.checkStatus !== 1)) {
// this.service.msgSrv.warning('选择了未通过校验的订单,请重新勾选!');
// return;
// }
let params: any[] = [];
this.selectedRows.forEach(item => {
params.push(item.id);

View File

@ -1,5 +1,5 @@
<!--
* @Description :
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-03-31 11:10:10
@ -15,22 +15,19 @@
</nz-tabset>
</div>
<div style="width: 90%">
<st
#st
[scroll]="{ x: '1000px', y: '600px' }"
[data]="service.$api_get_getTaxFieldCheckList"
[columns]="columns"
[req]="{ process: beforeReq }"
[res]="{ reName: { list: 'data', total: 'data' } , process: afterRes}"
[page]="{ show: false }"
[loading]="false"
[bordered]="true"
>
<st #st [scroll]="{ x: '1000px', y: '600px' }" [data]="service.$api_get_getTaxFieldCheckList" [columns]="columns"
[req]="{ process: beforeReq }" [res]="{ reName: { list: 'data', total: 'data' } , process: afterRes}"
[page]="{ show: false }" [loading]="false" [bordered]="true">
<ng-template st-row="freightDetails" let-item>
<div *ngFor="let item of item.freightDetails">
<div>{{ item.expenseName }}:{{ item.price | currency }} </div>
</div>
</ng-template>
<ng-template st-row="fieldValue" let-item>
<ellipsis lines="3" tooltip>
<div>{{item?.fieldValue}}</div>
</ellipsis>
</ng-template>
</st>
</div>
</div>

View File

@ -1,5 +1,5 @@
/*
* @Description :
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-03-30 14:26:01
@ -48,25 +48,26 @@ export class TaxManagementOrderVerifyResultComponent implements OnInit {
// }
// return params;
// }
beforeReq = (requestOptions: STRequestOptions) => {let a: string = '';
beforeReq = (requestOptions: STRequestOptions) => {
let a: string = '';
switch (this.subjectType) {
case '0':
a = this.record?.networkTransporterId;
break
a = this.record?.networkTransporterId;
break
case '1':
a = this.record?.shipperId;
break
a = this.record?.shipperId;
break
case '2':
a = this.record?.driverId;
break
a = this.record?.driverId;
break
case '3':
a = this.record?.wayBillId;
break
a = this.record?.wayBillId;
break
}
Object.assign(requestOptions.body, {
subjectId: a ,
subjectType: this.subjectType,
});
Object.assign(requestOptions.body, {
subjectId: a,
subjectType: this.subjectType,
});
return requestOptions;
};
afterRes = (data: any[], rawData?: any) => {
@ -80,7 +81,7 @@ export class TaxManagementOrderVerifyResultComponent implements OnInit {
ngOnInit(): void {
console.log(this.record);
this.initST();
}
@ -102,7 +103,7 @@ export class TaxManagementOrderVerifyResultComponent implements OnInit {
1: '是'
}
},
{ title: '上传值', index: 'fieldValue', className: 'text-center', width: '150px', },
{ title: '上传值', render: 'fieldValue', className: 'text-center', width: '150px', },
{
title: '本地校验', index: 'checkStatus', className: 'text-center', width: '100px',
type: 'enum',
@ -126,7 +127,7 @@ export class TaxManagementOrderVerifyResultComponent implements OnInit {
selectTab(e: any) {
setTimeout(() => {
console.log(e?.value);
this.subjectType = e?.value;
console.log(this.subjectType);
this.st.load(1);

View File

@ -20,14 +20,14 @@ export class BillingOrderComponent implements OnInit {
_$expand = false;
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router, private ar: ActivatedRoute) { }
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router, private ar: ActivatedRoute) {}
ngOnInit(): void { }
ngOnInit(): void {}
beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) {
Object.assign(requestOptions.body, {
...this.sf?.value,
...this.sf?.value
});
}
return requestOptions;
@ -77,34 +77,41 @@ export class BillingOrderComponent implements OnInit {
serviceType: {
title: '服务类型',
type: 'string',
enum: [{
label: '全部',
value: ''
},{
label: '整车抢单',
value: 1
},{
label: '整车指派',
value: 2
},{
label: '大宗抢单',
value: 3
},{
label: '大宗指派',
value: 4
},{
label: '结算单',
value: 5
}],
enum: [
{
label: '全部',
value: ''
},
{
label: '整车抢单',
value: 1
},
{
label: '整车指派',
value: 2
},
{
label: '大宗抢单',
value: 3
},
{
label: '大宗指派',
value: 4
},
{
label: '结算单',
value: 5
}
],
ui: {
widget: 'select',
widget: 'select'
}
},
shipperAppUserName: {
type: 'string',
title: '货主名称',
ui: {
placeholder: '请输入',
placeholder: '请输入'
}
},
vatappcode: {
@ -245,7 +252,7 @@ export class BillingOrderComponent implements OnInit {
format: record => `${record.paymentMethodRate}%`
},
{ title: '货主名称', index: 'shipperAppUserName', width: '180px', className: 'text-center' },
{ title: '所属项目', index: 'enterpriseProjectName', width: '180px', className: 'text-center', },
{ title: '所属项目', index: 'enterpriseProjectName', width: '180px', className: 'text-center' },
{
title: '服务类型',
render: 'serviceType',
@ -260,30 +267,34 @@ export class BillingOrderComponent implements OnInit {
title: '承运司机',
index: 'driverName',
className: 'text-center',
width: '120px',
width: '120px'
},
{
title: '车队长',
className: 'text-center',
width: '120px',
index: 'carCaptainName',
index: 'carCaptainName'
},
{ title: '业务员', width: '100px', index: 'salesmanName', className: 'text-center', },
{ title: '业务员', width: '100px', index: 'salesmanName', className: 'text-center' },
// { title: '录单时间', index: 'recordTime', type: 'date', className: 'text-center', width: '150px' }, //TODO
{ title: '装货时间', index: 'loadTime', type: 'date', width: '150px', className: 'text-center', },
{ title: '卸货时间', index: 'unloadTime', type: 'date', width: '150px', className: 'text-center', },
{ title: '订单完成时间', index: 'orderReceivingTime', type: 'date', width: 150, className: 'text-center', },
{ title: '支付完成时间', index: 'overallPaymentTime', type: 'date', width: 150, className: 'text-center', },
{ title: '装货时间', index: 'loadTime', type: 'date', width: '150px', className: 'text-center' },
{ title: '卸货时间', index: 'unloadTime', type: 'date', width: '150px', className: 'text-center' },
{ title: '订单完成时间', index: 'orderReceivingTime', type: 'date', width: 150, className: 'text-center' },
{ title: '支付完成时间', index: 'overallPaymentTime', type: 'date', width: 150, className: 'text-center' },
{ title: '开票状态', index: 'sts', render: 'sts', className: 'text-center', width: 120 },
{ title: '申请开票时间', index: 'vatappdate', type: 'date', className: 'text-center', width: 180 },
{ title: '申请开票编号', index: 'vatappcode', className: 'text-center', width: 190 },
{ title: '分票编号', index: 'vatinvcode', width: '200px', className: 'text-center', },
{ title: '发票号码', index: 'invoiceno', width: 130, className: 'text-center', },
{ title: '分票编号', index: 'vatinvcode', width: '200px', className: 'text-center' },
{ title: '发票号码', index: 'invoiceno', width: 130, className: 'text-center' },
{ title: '发票代码', index: 'invoiceno2', width: 130, className: 'text-center' },
{ title: '开票日期', index: 'invoicedate', type: 'date', width: 150, className: 'text-center' },
// { title: '作废日期', index: 'invalidTime', type: 'date', width: 150 }, // TODO
{
title: 'ETC开票金额', index: 'etcInvoiceMoney', className: 'text-center', width: 120, type: 'widget',
title: 'ETC开票金额',
index: 'etcInvoiceMoney',
className: 'text-center',
width: 120,
type: 'widget',
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.etcInvoiceMoney }) }
}
];

View File

@ -392,6 +392,7 @@ export class CancellationInvoiceComponent implements OnInit {
{ type: 'divider' },
{
text: '查看明细<br>',
acl: { ability: ['TICKET-CANCELLATION-view'] },
click: item =>
this.router.navigate(['ticket/cancellation-invoice/detail/' + item.id], {
queryParams: { type: 1, expressno: item.expressno, ltdId: item.shipperId }
@ -399,11 +400,13 @@ export class CancellationInvoiceComponent implements OnInit {
},
{
text: '销货清单<br>',
acl: { ability: ['TICKET-CANCELLATION-downLoadDetail'] },
iif: item => item.isdetail,
click: item => this.downLoadDetail(item)
},
{
text: '手工开票<br>',
acl: { ability: ['TICKET-CANCELLATION-apply'] },
iif: item => item.sts != '3' && item.sts != '4' ,
click: item => this.requestedAction(item)
}

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-04-06 10:57:56
* @LastEditors : Shiming
* @LastEditTime : 2022-04-09 17:07:02
* @LastEditTime : 2022-04-29 14:34:09
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\etc-blacklist\\etc-blacklist.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -28,17 +28,17 @@
></sf>
</div>
<div nz-col [nzXl]="6" [nzLg]="24" [nzMd]="24" [nzSm]="24" [nzXs]="24" class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)" acl [acl-ability]="[tabType === 1 ?'TICKET-ETC-BLACK_LIST-freightList' : 'TICKET-ETC-BLACK_LIST-cartList']">查询</button>
<button nz-button (click)="resetSF()">重置</button>
<button nz-button (click)="exprot()"> 导出</button>
<button nz-button (click)="exprot()" acl [acl-ability]="[tabType === 1 ?'TICKET-ETC-BLACK_LIST-exportFreight' : 'TICKET-ETC-BLACK_LIST-exportCart']"> 导出</button>
</div>
</div>
</nz-card>
<nz-card>
<div class="d-flex align-items-center mb-md">
<button nz-button (click)="configAction()">添加</button>
<button nz-button (click)="deleteAction()">删除</button>
<button nz-button (click)="configAction()" acl [acl-ability]="[tabType === 1 ? 'TICKET-ETC-BLACK_LIST-addFreight' : 'TICKET-ETC-BLACK_LIST-addCart']">添加</button>
<button nz-button (click)="deleteAction()" acl [acl-ability]="[tabType === 1 ? 'TICKET-ETC-BLACK_LIST-deleteFreight' : 'TICKET-ETC-BLACK_LIST-deleteCart']">删除</button>
<div class="ml-md">
已选择
<strong class="text-primary">{{ selectedRows.length }}</strong> 条数据

View File

@ -1,3 +1,13 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-28 20:27:08
* @LastEditors : Shiming
* @LastEditTime : 2022-04-29 14:19:10
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\etc-invoiced-list\\etc-invoiced-list.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="'运单开票记录'">
</page-header-wrapper>
@ -11,7 +21,7 @@
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
<button nz-button (click)="resetSF()">重置</button>
<button nz-button (click)="exprot()"> 导出</button>
<button nz-button (click)="exprot()" acl [acl-ability]="['TICKET-ETC-INVOICE-LIST-export']"> 导出</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>

View File

@ -182,10 +182,12 @@ export class ETCInvoicedListComponent implements OnInit {
{
title: '操作',
className: 'text-center',
fixed: 'right',
width: 120,
buttons: [
{
text: '交易明细',
acl: { ability: ['TICKET-ETC-INVOICE-LIST-transaction'] },
click: item => this.showDetail(item)
}
]

View File

@ -1,3 +1,13 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-28 20:27:08
* @LastEditors : Shiming
* @LastEditTime : 2022-04-29 14:21:05
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\etc-invoiced-logs\\etc-invoiced-logs.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="'已开发票'">
</page-header-wrapper>
@ -13,7 +23,7 @@
class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
<button nz-button (click)="resetSF()">重置</button>
<button nz-button (click)="exportList()"> 导出</button>
<button nz-button (click)="exportList()" acl [acl-ability]="['TICKET-ETC-INVOICE-LOGS-export']"> 导出</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>

View File

@ -21,7 +21,7 @@
class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
<button nz-button (click)="resetSF()">重置</button>
<button nz-button (click)="exprot()"> 导出</button>
<button nz-button (click)="exprot()" acl [acl-ability]="['TICKET-ETC-INVOICE-REQUESTED-export']"> 导出</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
@ -33,7 +33,7 @@
<nz-card class="content-box" nzBordered>
<div class="d-flex align-items-center mb-md mt-md">
<button nz-button (click)="this.auditAction()">申请开票</button>
<button nz-button (click)="this.auditAction()" acl [acl-ability]="['TICKET-ETC-INVOICE-REQUESTED-apply']">申请开票</button>
<div class="ml-md">
已选择
<strong class="text-primary">{{ selectedRows.length }}</strong> 条运单

View File

@ -17,7 +17,7 @@
<nz-card class="content-box">
<div class="mt-md mb-sm">
<button nz-button nzType="primary" (click)="printOrder()">打印面单</button>
<button nz-button nzType="primary" (click)="printOrder()" acl [acl-ability]="['TICKET-EXPRESS-INFO-print']">打印面单</button>
</div>
<st #st [data]="url" [columns]="columns" [req]="{ process:beforeReq }" [loading]="false" [page]="{}" [scroll]="{x:'1200px'}"
(change)="stChange($event)"></st>

View File

@ -1,3 +1,13 @@
/*
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-28 20:27:22
* @LastEditors : Shiming
* @LastEditTime : 2022-04-29 14:14:59
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\express-info\\express-info.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
import { Component, OnInit, ViewChild } from '@angular/core';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema } from '@delon/form';
@ -49,6 +59,7 @@ export class ExpressInfoComponent implements OnInit {
width: 120,
type: 'link',
click: (record: any) => this.showDetail(record.expressCode),
acl: { ability: ['TICKET-EXPRESS-INFO-expressInvoices'] },
className: 'text-right'
},
{ title: '寄件人姓名', index: 'sname', width: 150 },

View File

@ -12,7 +12,7 @@
[class.expend-options]="_$expand">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
<button nz-button (click)="resetSF()">重置</button>
<button nz-button> 导出</button>
<button nz-button acl [acl-ability]="['VEHICLE-LIST-search']"> 导出</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
@ -24,7 +24,7 @@
<nz-card class="content-box" nzBordered>
<div class="d-flex align-items-center mb-md mt-md">
<button nz-button (click)="this.addInvoice()" nzType="primary">添加发票</button>
<button nz-button (click)="this.addInvoice()" nzType="primary" acl [acl-ability]="['TICKET-INPUT-INVOICE-addInvoice']">添加发票</button>
<div class="ml-md">
已选择
<strong class="text-primary">{{ selectedRows.length }}</strong> 张发票

View File

@ -256,10 +256,12 @@ export class InputInvoiceComponent implements OnInit {
buttons: [
{
text: '浏览',
acl: { ability: ['TICKET-INPUT-INVOICE-view'] },
click: item => this.router.navigate(['/ticket/input-invoice/detail/' + item.id])
},
{
text: '修改',
acl: { ability: ['TICKET-INPUT-INVOICE-edit'] },
click: item => this.router.navigate(['/ticket/input-invoice/edit/1'])
}
]

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-01-21 15:39:30
* @LastEditors : Shiming
* @LastEditTime : 2022-01-26 09:36:07
* @LastEditTime : 2022-04-29 13:55:16
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\invoice-requested\\invoice-requested.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -20,7 +20,7 @@
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
<button nz-button (click)="resetSF()">重置</button>
<button nz-button (click)="exprot()"> 导出</button>
<button nz-button (click)="exprot()" acl [acl-ability]="['TICKET-INVOICE-REQUESTED-export']"> 导出</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
@ -47,12 +47,12 @@
<strong class="text-red">{{ totalCallNo }}</strong>
<a *ngIf="totalCallNo > 0" (click)="st.clearCheck();totalCallNo=0" class="ml-lg">清空</a>
</div>
<button nz-button *ngIf="resourceStatus==='1' || !resourceStatus" (click)="this.batchRequested()">批量受理</button>
<button nz-button *ngIf="resourceStatus==='1' || !resourceStatus" (click)="this.batchRequested()" acl [acl-ability]="['TICKET-INVOICE-REQUESTED-userApply']">批量受理</button>
<button nz-button *ngIf="resourceStatus==='1' || !resourceStatus"
(click)="this.rejectAction(selectedRows)">驳回</button>
(click)="this.rejectAction(selectedRows)" acl [acl-ability]="['TICKET-INVOICE-REQUESTED-reject']">驳回</button>
<button nz-button *ngIf="resourceStatus !=='4' && resourceStatus !=='5'"
(click)="changeAddress(selectedRows)">修改地址</button>
<button nz-button *ngIf="resourceStatus==='3' || !resourceStatus" (click)="printOrder(selectedRows)">快递下单</button>
(click)="changeAddress(selectedRows)" acl [acl-ability]="['VEHICLE-LIST-search']">修改地址</button>
<button nz-button *ngIf="resourceStatus==='3' || !resourceStatus" (click)="printOrder(selectedRows)" acl [acl-ability]="['VEHICLE-LIST-search']">快递下单</button>
</div>
</ng-template>

View File

@ -513,25 +513,30 @@ export class InvoiceRequestedComponent {
{
text: '开票受理<br/>',
click: item => this.requestedInvoiceAction(item),
acl: { ability: ['TICKET-INVOICE-REQUESTED-requestedInvoiceAction'] },
iif: item => item.sts === '1'
},
{
text: '驳回申请<br/>',
click: item => this.rejectAction([item]),
acl: { ability: ['TICKET-INVOICE-REQUESTED-rejectAction'] },
iif: item => item.sts === '1'
},
{
text: '订单明细<br/>',
acl: { ability: ['TICKET-INVOICE-REQUESTED-detail'] },
click: item => this.router.navigate([`/ticket/invoice-requested/detail/${item?.id}`], { queryParams: { sts: item.sts } })
},
{
text: '查看原因<br/>',
click: item => this.showReason(item),
acl: { ability: ['TICKET-INVOICE-REQUESTED-viewResult'] },
iif: item => item.sts === '4'
},
{
text: '下载对账单',
iif: item => item.sts === '3',
acl: { ability: ['TICKET-INVOICE-REQUESTED-downloadPDF'] },
click: item => this.downloadPdf(item)
}
]

View File

@ -347,6 +347,7 @@ export class InvoicedListComponent implements OnInit {
{ type: 'divider' },
{
text: '查看明细<br>',
acl: { ability: ['TICKET-INVOICE-LIST-view'] },
click: item =>
this.router.navigate(['/ticket/invoice-list/detail/' + item.id], {
queryParams: { expressno: item.expressno, type: 2, ltdId: item.shipperId }
@ -354,26 +355,31 @@ export class InvoicedListComponent implements OnInit {
},
{
text: '取消开票<br>',
acl: { ability: ['TICKET-INVOICE-LIST-canceInvoice'] },
click: item => this.canceInvoice(item),
iif: item => item.sts === '1'
},
{
text: '发票作废<br>',
acl: { ability: ['TICKET-INVOICE-LIST-deletedInvoice'] },
click: item => this.deletedInvoice(item),
iif: item => item.sts === '3'
},
{
text: '查看物流<br>',
acl: { ability: ['TICKET-INVOICE-LIST-showExpress'] },
click: item => this.showlogosticsLogs(item),
iif: item => item.expresscompany
},
{
text: '填写物流<br>',
acl: { ability: ['TICKET-INVOICE-LIST-writeExpress'] },
click: item => this.requestedAction(item),
iif: item => !item.expresscompany
},
{
text: '修改物流<br>',
acl: { ability: ['TICKET-INVOICE-LIST-updateExpress'] },
click: item => this.requestedAction(item),
iif: item => item.expresscompany
}

View File

@ -1,3 +1,13 @@
/*
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-28 20:27:08
* @LastEditors : Shiming
* @LastEditTime : 2022-04-29 14:40:29
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\ticket-management-routing.module.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { BillingOrderComponent } from './components/billing-order/billing-order.component';
@ -16,21 +26,21 @@ import { InvoiceRequestedComponent } from './components/invoice-requested/invoic
import { InvoicedListComponent } from './components/invoiced-list/invoiced-list.component';
const routes: Routes = [
{ path: 'invoice-requested', component: InvoiceRequestedComponent },
{ path: 'invoice-requested', component: InvoiceRequestedComponent, data: { guard: { ability: ['TICKET-INVOICE-REQUESTED-list'] } } },
{ path: 'invoice-requested/detail/:id', component: InvoiceRequestedDetailComponent },
{ path: 'invoice-list', component: InvoicedListComponent },
{ path: 'invoice-list', component: InvoicedListComponent , data: { guard: { ability: ['TICKET-INVOICE-LIST-list'] } }},
{ path: 'invoice-list/detail/:id', component: InvoiceDetailComponent },
{ path: 'cancellation-invoice', component: CancellationInvoiceComponent },
{ path: 'cancellation-invoice', component: CancellationInvoiceComponent , data: { guard: { ability: ['TICKET-CANCELLATION-list'] } }},
{ path: 'cancellation-invoice/detail/:id', component: InvoiceDetailComponent },
{ path: 'etc-invoice-requested', component: ETCInvoicedRequestedComponent },
{ path: 'etc-invoice-list', component: ETCInvoicedListComponent },
{ path: 'etc-invoiced-logs', component: ETCInvoicedLogsComponent },
{ path: 'etc-blacklist', component: ETCBlacklistComponent },
{ path: 'input-invoice', component: InputInvoiceComponent },
{ path: 'etc-invoice-requested', component: ETCInvoicedRequestedComponent , data: { guard: { ability: ['TICKET-ETC-INVOICE-REQUESTED-list'] } } },
{ path: 'etc-invoice-list', component: ETCInvoicedListComponent, data: { guard: { ability: ['TICKET-ETC-INVOICE-LIST-list'] } } },
{ path: 'etc-invoiced-logs', component: ETCInvoicedLogsComponent , data: { guard: { ability: ['TICKET-ETC-INVOICE-LOGS-list'] } }},
{ path: 'etc-blacklist', component: ETCBlacklistComponent , data: { guard: { ability: ['TICKET-ETC-BLACK_LIST-freightList'] } }},
{ path: 'input-invoice', component: InputInvoiceComponent , data: { guard: { ability: ['TICKET-INPUT-INVOICE-list'] } }},
{ path: 'input-invoice/detail/:id', component: InputInvoiceDetailComponent },
{ path: 'input-invoice/edit/:id', component: EditCollectionInvoiceComponent },
{ path: 'express-info', component: ExpressInfoComponent },
{ path: 'billing-order', component: BillingOrderComponent }
{ path: 'express-info', component: ExpressInfoComponent , data: { guard: { ability: ['TICKET-EXPRESS-INFO-list'] } }},
{ path: 'billing-order', component: BillingOrderComponent, data: { guard: { ability: ['TICKET-BILLING-ORDER-search'] } } }
];
@NgModule({

View File

@ -139,7 +139,7 @@
nzTheme="fill" class="mr-xs"></i>通过
</label>
<label *ngIf="detailData?.esignCheckStatus===2" style="color: #1890ff;"><i nz-icon nzType="close-circle"
nzTheme="fill" class="mr-xs"></i>未认证
nzTheme="fill" class="mr-xs"></i>未认证&nbsp;&nbsp;{{detailData?.esignCheckMsg}}
</label>
</p>
</sv-title>

View File

@ -85,6 +85,17 @@
<nz-option *ngFor="let i of contenCarLength" [nzLabel]="i.label" [nzValue]="i.value"></nz-option>
</nz-select>
</sv>
<sv label="车辆能源类型">
<nz-select
[(ngModel)]="detailData.carEnergyType"
[nzPlaceHolder]="isEdit ? '' : '-'"
[nzBorderless]="!isEdit"
[nzShowArrow]="isEdit"
[nzDisabled]="!isEdit"
>
<nz-option *ngFor="let i of contenCarEnergy" [nzLabel]="i.label" [nzValue]="i.value"></nz-option>
</nz-select>
</sv>
<sv label="是否为挂车">
<nz-select
[(ngModel)]="detailData.isTrailer"
@ -210,7 +221,7 @@
</sv-container>
<sv-container col="3">
<sv label="载重(吨)">
<sv label="核定载质量(吨)">
<input
nz-input
type="text"
@ -230,6 +241,16 @@
[placeholder]="isEdit ? '' : '-'"
/>
</sv>
<sv label="总质量">
<input
nz-input
type="text"
[(ngModel)]="detailData.carTotalLoad"
[readonly]="!isEdit"
[nzBorderless]="!isEdit"
[placeholder]="isEdit ? '' : '-'"
/>
</sv>
<sv label="所有人">
<input
nz-input

View File

@ -31,6 +31,7 @@ export class VehicleComponentsAuditDetailComponent implements OnInit, OnDestroy
contenCarNoColor: any;
contencarModel: any;
contenCarLength: any;
contenCarEnergy: any;
isEdit = false;
approvalOpinion = '';
uploadURl = apiConf.waterFileUpload;
@ -243,6 +244,7 @@ export class VehicleComponentsAuditDetailComponent implements OnInit, OnDestroy
this.Serveice('car:color');
this.Serveice('car:model');
this.Serveice('car:length');
this.Serveice('car:energy:type');
}
Serveice(param: any) {
let value: any;
@ -257,6 +259,8 @@ export class VehicleComponentsAuditDetailComponent implements OnInit, OnDestroy
this.contencarModel = res;
} else if (param === 'car:length') {
this.contenCarLength = res;
} else if (param === 'car:energy:type') {
this.contenCarEnergy = res;
}
});
return value;

View File

@ -72,6 +72,17 @@
<nz-option *ngFor="let i of contenCarLength" [nzLabel]="i.label" [nzValue]="i.value"></nz-option>
</nz-select>
</sv>
<sv label="车辆能源类型">
<nz-select
[(ngModel)]="detailData.carEnergyType"
[nzPlaceHolder]="isEdit ? '' : '-'"
[nzBorderless]="!isEdit"
[nzShowArrow]="isEdit"
[nzDisabled]="!isEdit"
>
<nz-option *ngFor="let i of contenCarEnergy" [nzLabel]="i.label" [nzValue]="i.value"></nz-option>
</nz-select>
</sv>
<sv label="是否挂靠">
<nz-select
[(ngModel)]="detailData.isSelf"
@ -210,7 +221,7 @@
</sv-container>
<sv-container col="3">
<sv label="载重(吨)">
<sv label="核定载质量(吨)">
<input
nz-input
type="text"
@ -230,6 +241,16 @@
[placeholder]="isEdit ? '' : '-'"
/>
</sv>
<sv label="总质量">
<input
nz-input
type="text"
[(ngModel)]="detailData.carTotalLoad"
[readonly]="!isEdit"
[nzBorderless]="!isEdit"
[placeholder]="isEdit ? '' : '-'"
/>
</sv>
<sv label="所有人">
<input
style="width: '300px'"
@ -241,6 +262,7 @@
[placeholder]="isEdit ? '' : '-'"
/>
</sv>
</sv-container>
<sv-container col="1">
<sv label="行驶证照片">

View File

@ -41,6 +41,7 @@ export class VehicleComponentsListDetailComponent implements OnInit {
contenCarNoColor: any;
contencarModel: any;
contenCarLength: any;
contenCarEnergy: any;
constructor(
private http: _HttpClient,
@ -158,6 +159,8 @@ export class VehicleComponentsListDetailComponent implements OnInit {
this.Serveice('car:color');
this.Serveice('car:model');
this.Serveice('car:length');
this.Serveice('car:energy:type');
}
Serveice(param: any) {
let value: any;
@ -172,6 +175,8 @@ export class VehicleComponentsListDetailComponent implements OnInit {
this.contencarModel = res;
} else if (param === 'car:length') {
this.contenCarLength = res;
} else if (param === 'car:energy:type') {
this.contenCarEnergy = res;
}
});
return value;

View File

@ -6,6 +6,7 @@
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\routes\\waybill-management\\components\\bulk-detail\\bulk-detail.component.html
-->
<page-header-wrapper [title]="'大宗运单详情'" [logo]="logo">
<ng-template #logo>
<button nz-button nz-tooltip nzTooltipTitle="返回上一页" (click)="goBack()">
@ -109,12 +110,10 @@
<a class="sign"></a>
<span>基本信息</span>
</div>
<sv-container col="1">
<sv-container col="3">
<sv label="货物名称">
{{i?.goodsInfos?.[0]?.goodsName}}
</sv>
</sv-container>
<sv-container col="2">
<sv label="货物数量">
{{i?.goodsInfos?.[0]?.weight}}吨,{{i?.goodsInfos?.[0]?.volume}}方,{{i?.goodsInfos?.[0]?.number}}件
</sv>
@ -204,60 +203,70 @@
</div>
<div *ngIf=" i?.payeeId !== i?.driverId" class="mt-xs">车队长:{{ i?.payeeName }}/{{ i?.payeePhone }}</div>
</nz-card>
<nz-card [nzBorderless]="true" class="mb0" #distannce4>
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>附件信息</span>
<div nz-row>
<div nz-col nzSpan="12">
<nz-card [nzBorderless]="true" class="mb0 attch-card" #distannce4>
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>附件信息</span>
</div>
<div class="attachment-info">
<sv-container col="1">
<sv label="协议附件" col="1">
<a *ngIf="i?.contractContent?.contractContent" (click)="agreement('1')">查看附件</a> &nbsp;&nbsp;&nbsp;&nbsp;
<a *ngIf="i?.supplementContent?.contractContent" (click)="agreement('2')">补充协议</a>
</sv>
</sv-container>
<sv-container col="2" layout="vertical" class="mt-md">
<sv label="装货凭证">
<app-imagelist *ngIf="i?.loadingCertificate && i?.loadingCertificate.length >0"
[imgList]="i?.loadingCertificate" [style]="'width:120px;height:120px;'">
</app-imagelist>
</sv>
<sv label="卸货凭证">
<app-imagelist *ngIf="i?.unLoadingCertificate && i?.unLoadingCertificate.length >0"
[imgList]="i?.unLoadingCertificate" [style]="'width:120px;height:120px;'">
</app-imagelist>
</sv>
</sv-container>
</div>
</nz-card>
</div>
<sv-container>
<sv label="协议附件">
<a *ngIf="i?.contractContent?.contractContent" (click)="agreement('1')">查看附件</a> &nbsp;&nbsp;&nbsp;&nbsp;
<a *ngIf="i?.supplementContent?.contractContent" (click)="agreement('2')">补充协议</a>
</sv>
</sv-container>
<sv-container col="2" class="mt-md">
<sv label="装货凭证">
<app-imagelist [imgList]="i?.loadingCertificate">
</app-imagelist>
</sv>
<sv label="卸货凭证">
<app-imagelist [imgList]="i?.unLoadingCertificate">
</app-imagelist>
</sv>
</sv-container>
</nz-card>
<nz-card [nzBorderless]="true" class="mb0">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>补充信息</span>
</div>
<sv-container>
<sv label="是否回单">
{{i?.receiptType == 1 ?'是':'否'}}
</sv>
<sv label="回单类型" *ngIf="i?.receiptType == 1">
{{i?.receiptTypeLabel}}
</sv>
<sv label="联系人" *ngIf="i?.receiptType == 1">
{{i?.receiptUser}} / {{i?.receiptUserPhone}}
</sv>
<sv label="所在地区" *ngIf="i?.receiptType == 1">
{{i?.receiptPlace}}
</sv>
<sv label="详细地址" *ngIf="i?.receiptType == 1">
{{i?.receiptAddress}}
</sv>
<div nz-col nzSpan="12">
<nz-card [nzBorderless]="true" class="mb0 attch-card">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>补充信息</span>
</div>
<div class="attachment-info">
<sv-container col="1">
<sv label="是否回单">
{{i?.receiptType == 1 ?'是':'否'}}
</sv>
<sv label="回单类型" *ngIf="i?.receiptType == '1'">
{{i?.receiptTypeLabel}}
</sv>
</sv-container>
<sv-container col="1" class="mt-md">
<sv label="回单凭证" *ngIf="i?.receiptType == 1">
<app-imagelist [imgList]="[i?.receiptFilePath]"></app-imagelist>
</sv>
<sv label="备注">
{{i?.goodsResource?.remarks}}
</sv>
</sv-container>
</nz-card>
<sv label="联系人" *ngIf="i?.receiptType == '2'">
{{i?.receiptUser}} / {{i?.receiptUserPhone}}
</sv>
<sv label="所在地区" *ngIf="i?.receiptType == '2'">
{{i?.receiptPlace}}
</sv>
<sv label="详细地址" *ngIf="i?.receiptType == '2'">
{{i?.receiptAddress}}
</sv>
<sv label="备注">
{{i?.goodsResource?.remarks}}
</sv>
<sv col="1" label="回单凭证" *ngIf="i?.receiptType == '1'">
<app-imagelist [imgList]="[i?.receiptFilePath]" [style]="'width:120px;height:120px;'"></app-imagelist>
</sv>
</sv-container>
</div>
</nz-card>
</div>
</div>
<nz-card class="mb0" [nzBorderless]="true">
<p class="detail_title" #distannce5><span>|</span> 轨迹信息</p>

View File

@ -129,12 +129,10 @@
<a class="sign"></a>
<span>基本信息</span>
</div>
<sv-container col="1">
<sv-container col="3">
<sv label="货物名称">
{{i?.goodsInfos?.[0]?.goodsName}}
</sv>
</sv-container>
<sv-container col="2">
<sv label="货物数量">
{{i?.goodsInfos?.[0]?.weight}}吨,{{i?.goodsInfos?.[0]?.volume}}方,{{i?.goodsInfos?.[0]?.number}}件
</sv>
@ -179,9 +177,10 @@
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>运费信息</span>
<span>(到货后{{i?.paymentDays}}天内支付运费)</span>
<span class="pl-sm text-warning">(到货后{{i?.paymentDays}}天内支付运费)</span>
</div>
<st #st [data]="billExpenses" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
<st #st [data]="billExpenses" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }"
[size]="'small'">
<ng-template st-row="price" let-item let-index="index">
{{ item.price | currency }}
</ng-template>
@ -200,62 +199,73 @@
<div *ngIf="i?.payee?.phone && i?.payee?.phone !== i?.driverVo.phone">车队长:{{ i?.payee?.name }}/{{ i?.payee?.phone
}}/{{ i?.payee?.idNo }}</div>
</nz-card>
<div nz-row>
<div nz-col nzSpan="12">
<nz-card [nzBorderless]="true" class="mb0 attch-card" #distannce4>
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>附件信息</span>
</div>
<div class="attachment-info">
<sv-container>
<sv label="协议附件">
<a *ngIf="i?.contractContent?.contractContent" (click)="agreement('1')">查看附件</a> &nbsp;&nbsp;&nbsp;&nbsp;
<a *ngIf="i?.supplementContent?.contractContent" (click)="agreement('2')">补充协议</a>
</sv>
</sv-container>
<sv-container col="2" class="mt-md" layout="vertical">
<sv label="装货凭证">
<nz-card [nzBorderless]="true" class="mb0" nzTitle="附件信息" #distannce4>
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>附件信息</span>
<app-imagelist *ngIf="i?.loadingCertificate && i?.loadingCertificate.length>0"
[imgList]="i?.loadingCertificate" [style]="'width:120px;height:120px;'">
</app-imagelist>
</sv>
<sv label="卸货凭证">
<app-imagelist *ngIf="i?.unLoadingCertificate && i?.unLoadingCertificate.length>0 "
[imgList]="i?.unLoadingCertificate" [style]="'width:120px;height:120px;'">
</app-imagelist>
</sv>
</sv-container>
</div>
</nz-card>
</div>
<sv-container>
<sv label="协议附件">
<a *ngIf="i?.contractContent?.contractContent" (click)="agreement('1')">查看附件</a> &nbsp;&nbsp;&nbsp;&nbsp;
<a *ngIf="i?.supplementContent?.contractContent" (click)="agreement('2')">补充协议</a>
</sv>
</sv-container>
<sv-container col="2" class="mt-md">
<sv label="装货凭证">
<app-imagelist *ngIf="i?.loadingCertificate" [imgList]="i?.loadingCertificate">
</app-imagelist>
</sv>
<sv label="卸货凭证">
<app-imagelist *ngIf="i?.unLoadingCertificate" [imgList]="i?.unLoadingCertificate">
</app-imagelist>
</sv>
</sv-container>
</nz-card>
<nz-card [nzBorderless]="true" class="mb0">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>补充信息</span>
<div nz-col nzSpan="12">
<nz-card [nzBorderless]="true" class="mb0 attch-card">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>补充信息</span>
</div>
<div class="attachment-info">
<sv-container col="1">
<sv label="是否回单">
{{ i?.supplementaryInformationVO?.stateReceipt ? '是' : '否' }}
</sv>
<sv label="回单类型" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.receiptType === '1' ? '电子回单' : '纸质回单' }}
</sv>
<ng-container
*ngIf="i?.supplementaryInformationVO?.stateReceipt && i?.supplementaryInformationVO?.receiptType === '2'">
<sv label="联系人" *ngIf="i?.supplementaryInformationVO?.stateReceipt"> {{
i?.supplementaryInformationVO?.receiptUserName }} / {{ i?.supplementaryInformationVO?.phon }} </sv>
<sv label="所在地区" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.area }}
</sv>
<sv label="详细地址" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.address }}
</sv>
</ng-container>
<sv label="备注">
{{ i?.supplementaryInformationVO?.remarks }}
</sv>
<sv col="1" label="回单凭证" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
<app-imagelist [imgList]="i?.receiptFilePath" [style]="'width:120px;height:120px;'"></app-imagelist>
</sv>
</sv-container>
</div>
</nz-card>
</div>
<sv-container>
<sv label="是否回单">
{{ i?.supplementaryInformationVO?.stateReceipt ? '是' : '否' }}
</sv>
<sv label="回单类型" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.receiptType === '1' ? '电子回单' : '纸质回单' }}
</sv>
<sv label="联系人" *ngIf="i?.supplementaryInformationVO?.stateReceipt"> {{
i?.supplementaryInformationVO?.receiptUserName }} / {{ i?.supplementaryInformationVO?.phon }} </sv>
<sv label="所在地区" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.area }}
</sv>
<sv label="详细地址" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.address }}
</sv>
<sv label="备注">
{{ i?.supplementaryInformationVO?.remarks }}
</sv>
<sv col="1" label="回单凭证" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
<app-imagelist [imgList]="i?.receiptFilePath"></app-imagelist>
</sv>
</sv-container>
</nz-card>
</div>
<nz-card [nzBorderless]="true" class="mb0">
<p class="detail_title" #distannce5><span>|</span> 轨迹信息</p>
<div nz-row>

View File

@ -1,5 +1,5 @@
<!--
* @Description :
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-03-23 14:24:05
@ -11,10 +11,10 @@
<div class="imgBox">
<ng-container *ngFor="let item of imgList; let i = index">
<ng-container *ngIf="item;">
<img nz-image [nzSrc]="item" />
<img [style]="style" nz-image [nzSrc]="item" />
</ng-container>
<ng-template #elseTemplate>
<div style="background-color: darkgrey;border-radius: 5px;width: 200px;height: 160px;" class="mr-sm"></div>
<div style="background-color: darkgrey;border-radius: 5px;width: 120px;height: 120px;" class="mr-sm"></div>
</ng-template>
</ng-container>
</div>
</div>

View File

@ -19,15 +19,16 @@ import { ImageViewComponent } from './imageview/imageview.component';
})
export class ImageListComponent implements OnInit {
@Input() imgList: any = [];
@Input() style = '';
constructor(
private modal: ModalHelper,
public msgSrv: NzMessageService,
public http: _HttpClient,
private nzImageService: NzImageService
) {}
) { }
ngOnInit(): void {
this.style = this.style || '';
}
showImg(index: any) {
const params = {
@ -35,7 +36,7 @@ export class ImageListComponent implements OnInit {
index
};
const images = this.imgList.map((url: string) => {
if(url) {
if (url) {
console.log(url);
({ src: url })
}

View File

@ -4,5 +4,6 @@ import { STModule } from '@delon/abc/st';
import { SVModule } from '@delon/abc/sv';
import { DelonFormModule } from '@delon/form';
import { QRModule } from '@delon/abc/qr';
import { EllipsisModule } from '@delon/abc/ellipsis';
export const SHARED_DELON_MODULES = [PageHeaderModule, STModule, SVModule, SEModule, DelonFormModule, QRModule];
export const SHARED_DELON_MODULES = [PageHeaderModule, STModule, SVModule, SEModule, DelonFormModule, QRModule, EllipsisModule];

View File

@ -65,7 +65,7 @@
.handling-info {
min-height: 100%;
border: 1px solid #ccc;
border: 1px solid #EAECEF;
.loading-row {
display: flex;
@ -99,3 +99,18 @@
}
}
}
.attch-card {
height: 100%;
.ant-card-body {
height: 100%;
.attachment-info {
height: calc(100% - 32px);
border: 1px solid #EAECEF;
padding: 10px;
}
}
}