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

This commit is contained in:
潘晓云
2022-05-10 14:23:42 +08:00
106 changed files with 1498 additions and 1382 deletions

View File

@ -1,5 +1,5 @@
/*
* @Description :
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2021-12-27 10:30:56
@ -9,14 +9,11 @@
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
import { Component, Inject, OnInit, ViewChild } from '@angular/core';
import { FormBuilder, FormControl, FormGroup, ValidatorFn, Validators } from '@angular/forms';
import { ActivatedRoute, Router } from '@angular/router';
import { STChange, STColumn, STComponent, STData, STRequestOptions } from '@delon/abc/st';
import { Component, Inject, OnInit } from '@angular/core';
import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
import { Router } from '@angular/router';
import { DA_SERVICE_TOKEN, ITokenService } from '@delon/auth';
import { SFComponent, SFSchema, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
import { NzDrawerRef, NzDrawerService } from 'ng-zorro-antd/drawer';
import { NzFormTooltipIcon } from 'ng-zorro-antd/form';
import { NzModalRef } from 'ng-zorro-antd/modal';
import { AccountService } from '../../services/account.service';
@ -30,14 +27,13 @@ export class AccountComponentsCenterEditComponent implements OnInit {
record: any;
count = 0;
type = 'create';
isVisibleView = false
isVisibleView = false;
passwordVisible = false;
passwordVisible2 = false;
password: any;
password2: any;
interval$: any;
confirmationValidator =
(control: FormControl): { [s: string]: boolean } => {
confirmationValidator = (control: FormControl): { [s: string]: boolean } => {
if (!control.value) {
return { required: true };
} else if (control?.value !== this.validateForm?.value?.passWord) {
@ -51,7 +47,6 @@ export class AccountComponentsCenterEditComponent implements OnInit {
};
constructor(
public router: Router,
public ar: ActivatedRoute,
private modalRef: NzModalRef,
private fb: FormBuilder,
public service: AccountService,
@ -61,19 +56,21 @@ export class AccountComponentsCenterEditComponent implements OnInit {
ngOnInit() {
this.initForm();
}
initForm () {
this.validateForm = this.fb.group({
passWord: [null,
[
Validators.required,
Validators.maxLength(16),
Validators.minLength(8),
Validators.pattern('^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z-_]{8,16}$')
]],
passWordTo: [null, [ Validators.required, Validators.maxLength(16), Validators.minLength(8), this.confirmationValidator,]],
smsVerifyCode: [null, [Validators.required]],
});
}
initForm() {
this.validateForm = this.fb.group({
passWord: [
null,
[
Validators.required,
Validators.maxLength(16),
Validators.minLength(8),
Validators.pattern('^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z-_]{8,16}$')
]
],
passWordTo: [null, [Validators.required, Validators.maxLength(16), Validators.minLength(8), this.confirmationValidator]],
smsVerifyCode: [null, [Validators.required]]
});
}
destroyModal(): void {
this.modalRef.destroy();
}
@ -84,28 +81,28 @@ export class AccountComponentsCenterEditComponent implements OnInit {
this.service.msgSrv.success('发送成功');
e.preventDefault();
this.codeCountDown();
}else {
} else {
this.service.msgSrv.success(res.msg);
}
});
}
save() {
if(!this.validateForm.valid) {
this.service.msgSrv.warning('必填项为空或格式错误,请检查!')
if (!this.validateForm.valid) {
this.service.msgSrv.warning('必填项为空或格式错误,请检查!');
return;
}
const params = {
const params = {
...this.validateForm.value
};
this.service.request(this.service.$api_set_phoneUpdatePassword, params).subscribe((res) => {
this.service.request(this.service.$api_set_phoneUpdatePassword, params).subscribe(res => {
if (res) {
this.service.msgSrv.success('修改密码成功!');
this.isVisibleView = true;
setTimeout(() => {
this.tokenService.clear();
this.router.navigate(['/passport/login'])
this.modalRef.close()
}, 3000)
this.router.navigate(['/passport/login']);
this.modalRef.close();
}, 3000);
}
});
}
@ -120,11 +117,11 @@ export class AccountComponentsCenterEditComponent implements OnInit {
}, 1000);
}
handleCancel() {
this.isVisibleView = false
}
handleOK() {
this.modalRef.close()
this.tokenService.clear();
this.router.navigate(['/passport/login'])
}
this.isVisibleView = false;
}
handleOK() {
this.modalRef.close();
this.tokenService.clear();
this.router.navigate(['/passport/login']);
}
}

View File

@ -113,9 +113,10 @@
line-height: 21px;
}
// .text-truncate {
// white-space: normal;
// }
.text-truncate {
white-space: normal;
}
// 强制头部居中
.ant-table-container table>thead>tr>.options {
text-align: center !important;

View File

@ -80,7 +80,8 @@
(change)="stChange($event)"
>
<ng-template st-row="contractCode" let-item let-index="index">
<a [routerLink]="'/contract-management/index/detail/' + item.id">{{ item?.contractCode }}</a>
<a *ngIf="item.esignFlowStatus == '2'" (click)="service.openURL(item?.contractFilePath)">{{ item?.contractCode }}</a>
<a *ngIf="item.esignFlowStatus !== '2'" [routerLink]="'/contract-management/index/detail/' + item.id">{{ item?.contractCode }}</a>
</ng-template>
</st>
</nz-card>

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2021-12-07 15:57:49
* @LastEditors : Shiming
* @LastEditTime : 2022-02-23 20:11:50
* @LastEditTime : 2022-05-07 17:52:57
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-list\\contract-list.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -51,8 +51,8 @@
<st #st [data]="service.$api_listDetailed_page" [columns]="columns" [req]="{ params: reqParams }" [loading]="false"
[scroll]="{ x: '1200px', y: '370px' }" (change)="stChange($event)">
<ng-template st-row="contractCode" let-item let-index="index">
<a (click)="service.openURL(item?.contractFilePath)">{{ item?.contractCode }}</a>
<!-- <a [routerLink]="'/contract-management/index/detail/' + item.id">{{ item?.contractCode }}</a> -->
<a *ngIf="item.esignFlowStatus == '2'" (click)="service.openURL(item?.contractFilePath)">{{ item?.contractCode }}</a>
<a *ngIf="item.esignFlowStatus !== '2'" [routerLink]="'/contract-management/index/detail/' + item.id">{{ item?.contractCode }}</a>
</ng-template>
<ng-template st-row="signingObject" let-item let-index="index">
<span *ngIf="item.signingObject == 0"></span>

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-01-07 13:29:57
* @LastEditors : Shiming
* @LastEditTime : 2022-02-24 10:08:28
* @LastEditTime : 2022-05-07 17:56:08
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-partner\\contract-partner.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -80,7 +80,8 @@
(change)="stChange($event)"
>
<ng-template st-row="contractCode" let-item let-index="index">
<a [routerLink]="'/contract-management/index/detail/' + item.id">{{ item?.contractCode }}</a>
<a *ngIf="item.esignFlowStatus == '2'" (click)="service.openURL(item?.contractFilePath)">{{ item?.contractCode }}</a>
<a *ngIf="item.esignFlowStatus !== '2'" [routerLink]="'/contract-management/index/detail/' + item.id">{{ item?.contractCode }}</a>
</ng-template>
</st>
</nz-card>

View File

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

View File

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

View File

@ -86,6 +86,8 @@ export class DatatableOperationtableComponent implements OnInit {
this.service.request(this.service.$api_operationalReportHistogram, params).subscribe(res => {
if (res) {
this.chartData = res
this.pillar.reRender()
this.curve.reRender()
if(flag) { // 除第一次加载外
this.pillar.reRender()
this.curve.reRender()

View File

@ -1,8 +1,6 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STChange, STColumn, STComponent, STData } from '@delon/abc/st';
import { STColumn, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
import { _HttpClient } from '@delon/theme';
import { NzModalService } from 'ng-zorro-antd/modal';
import { DownloadService } from '../../services/download.service';
@ -16,7 +14,7 @@ export class DownloadComponentsListComponent implements OnInit {
columns: STColumn[] = [];
@ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
constructor(public service: DownloadService, private modal: NzModalService, private router: Router, private ar: ActivatedRoute) {}
constructor(public service: DownloadService, private modal: NzModalService) {}
/**
* 查询参数

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2021-12-30 19:36:30
* @LastEditors : Shiming
* @LastEditTime : 2022-02-23 16:35:15
* @LastEditTime : 2022-05-07 17:33:01
* @FilePath : \\tms-obc-web\\src\\app\\routes\\financial-management\\components\\cost-management\\cost-management.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -50,11 +50,11 @@
</div> -->
<st #st [data]="service.$api_get_cost_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
[loading]="false" [scroll]="{ x: '2000px',y:scrollY }">
<ng-template st-row="armoeny" let-item let-index="index">
<!-- <ng-template st-row="armoeny" let-item let-index="index">
{{ item.armoeny | currency }}
</ng-template>
</ng-template> -->
<ng-template st-row="hrmoney" let-item let-index="index">
{{ item.hrmoney | currency }}
{{ item.armoeny ? (item.armoeny| currency ): '--' }} / {{ item.hrmoney? (item.hrmoney | currency) : '--'}}
</ng-template>
<ng-template st-row="artocode" let-item let-index="index"> {{ item.cnoCode }}/{{ item.cnoName }} </ng-template>
<ng-template st-row="hrpaymoney" let-item let-index="index">

View File

@ -84,7 +84,7 @@ export class CostManagementComponent extends BasicTableComponent implements OnIn
exportList() {
this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_get_exportPlatformAccountBalanceByOperator);
this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_get_cost_page_export);
}
routeTo(url: string, params?: any, status?: any) {
@ -252,8 +252,8 @@ export class CostManagementComponent extends BasicTableComponent implements OnIn
{ title: '结算客户', render: 'artocode', width: 200, className: 'text-left' },
{ title: '应收对象', index: 'artoname', width: 200, className: 'text-left' },
{ title: '应付对象', index: 'hrtoname', width: 200, className: 'text-left' },
{ title: '应收金额', render: 'armoeny', width: 150, className: 'text-right' },
{ title: '应付金额', render: 'hrmoney', width: 150, className: 'text-right' },
{ title: '应收/应付金额', render: 'hrmoney', width: 150, className: 'text-right' },
// { title: '应付金额', render: 'hrmoney', width: 150, className: 'text-right' },
{ title: '收/付款金额', render: 'hrpaymoney', width: 150, className: 'text-right' },
{ title: '开/收票金额', render: 'hrvatmoney', width: 150, className: 'text-right' },
{ title: '创建时间', index: 'createTime', type: 'date', width: 200, className: 'text-center' },

View File

@ -48,6 +48,9 @@
<div></div>
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
<button nz-button nzDanger [disabled]="service.http.loading" acl
[acl-ability]="['FINANCIAL-PAYABLE-export']" (click)='exportList()'>
导出</button>
</div>
</div>
<st #st [data]="service.$api_get_fico_ph_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"

View File

@ -21,11 +21,7 @@ export class PayableOrderComponent extends BasicTableComponent implements OnInit
selectedRows: any[] = [];
info: any = {};
constructor(
public service: FreightAccountService,
private router: Router,
public searchDrawerService: SearchDrawerService
) {
constructor(public service: FreightAccountService, private router: Router, public searchDrawerService: SearchDrawerService) {
super(searchDrawerService);
}
@ -77,6 +73,9 @@ export class PayableOrderComponent extends BasicTableComponent implements OnInit
}
}
exportList() {
this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_get_fico_ph_page_export);
}
private initSF(): SFSchema {
return {
@ -118,7 +117,7 @@ export class PayableOrderComponent extends BasicTableComponent implements OnInit
enum: [{ value: '1', label: '费用款项' }],
ui: {
widget: 'select',
placeholder: '请选择',
placeholder: '请选择'
}
},
cno: {
@ -128,7 +127,7 @@ export class PayableOrderComponent extends BasicTableComponent implements OnInit
widget: 'select',
placeholder: '请选择',
allowClear: true,
asyncData: () => this.service.getCloseAccount(),
asyncData: () => this.service.getCloseAccount()
}
},
driver2IdName: {
@ -136,7 +135,7 @@ export class PayableOrderComponent extends BasicTableComponent implements OnInit
title: '收款人',
ui: {
widget: 'select',
placeholder: '请选择',
placeholder: '请选择'
}
},
sts: {
@ -148,7 +147,7 @@ export class PayableOrderComponent extends BasicTableComponent implements OnInit
],
ui: {
widget: 'select',
placeholder: '请选择',
placeholder: '请选择'
}
},
phxdate: {
@ -156,7 +155,7 @@ export class PayableOrderComponent extends BasicTableComponent implements OnInit
type: 'string',
ui: {
widget: 'sl-from-to-search',
format: 'yyyy-MM-dd',
format: 'yyyy-MM-dd'
} as SFDateWidgetSchema
},
createTime: {
@ -164,21 +163,21 @@ export class PayableOrderComponent extends BasicTableComponent implements OnInit
type: 'string',
ui: {
widget: 'sl-from-to-search',
format: 'yyyy-MM-dd',
format: 'yyyy-MM-dd'
} as SFDateWidgetSchema
},
billHCode: {
type: 'string',
title: '订单号',
ui: {
placeholder: '请输入',
placeholder: '请输入'
}
},
feeHCode: {
type: 'string',
title: '费用号',
ui: {
placeholder: '请输入',
placeholder: '请输入'
}
},
remarks: {
@ -186,7 +185,7 @@ export class PayableOrderComponent extends BasicTableComponent implements OnInit
title: '核销备注',
ui: {
autocomplete: 'off',
placeholder: '请选择',
placeholder: '请选择'
}
}
}

View File

@ -34,6 +34,9 @@
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
[acl-ability]="['FINANCIAL-PAYMENT-ORDER-list']">筛选</button>
<button nz-button nzDanger [disabled]="service.http.loading" acl
[acl-ability]="['FINANCIAL-PAYMENT-ORDER-export']" (click)='exportList()'>
导出</button>
</div>
</div>

View File

@ -77,6 +77,10 @@ export class PaymentOrderComponent extends BasicTableComponent implements OnInit
});
}
exportList() {
this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_get_payment_page_export);
}
private initSF(): SFSchema {
return {
properties: {
@ -213,7 +217,7 @@ export class PaymentOrderComponent extends BasicTableComponent implements OnInit
{ title: '收款人', index: 'hrToLabel', width: 150 },
{ title: '应付已核销', index: 'ishrhxLabel', width: 150 },
{ title: '确认日期', index: 'payDate2', type: 'date', className: 'text-center', width: 150 },
{ title: '创建时间', index: 'payDate', type: 'date', className: 'text-center', width: 150 },
{ title: '创建时间', index: 'createTime', type: 'date', className: 'text-center', width: 150 },
{ title: '创建人', index: 'createUserIdLabel', width: 160 },
{ title: '付款备注', index: 'payRemarks', width: 200 },
{

View File

@ -21,17 +21,20 @@
<nz-card class="table-box">
<div class="header_box">
<div>
<label class="page_title"> <label class="driver">|</label> 收款单</label>
<label class="ml-md">
已选择
<strong class="text-primary">{{ selectedRows.length }}</strong> 张单
<a *ngIf="selectedRows.length > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
</label>
</div>
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
</div>
<div>
<label class="page_title"> <label class="driver">|</label> 收款单</label>
<label class="ml-md">
已选择
<strong class="text-primary">{{ selectedRows.length }}</strong> 张单
<a *ngIf="selectedRows.length > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
</label>
</div>
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
<button nz-button nzDanger [disabled]="service.http.loading" acl [acl-ability]="['FINANCIAL-RECEIPT-export']"
(click)='exportList()'>
导出</button>
</div>
</div>
<!-- <div class="d-flex align-items-center mb-md mt-md">
<button nz-button (click)="this.addInvoice()" nzType="primary">添加收款</button>

View File

@ -81,6 +81,10 @@ export class ReceiptOrderComponent extends BasicTableComponent implements OnInit
// });
}
exportList() {
this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_get_receipt_page_export);
}
private initSF(): SFSchema {
return {
properties: {

View File

@ -48,6 +48,9 @@
<div></div>
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
<button nz-button nzDanger [disabled]="service.http.loading" acl [acl-ability]="['FINANCIAL-RECEIVABLE-export']"
(click)='exportList()'>
导出</button>
</div>
</div>

View File

@ -12,7 +12,7 @@ import { FreightAccountService } from '../../services/freight-account.service';
@Component({
selector: 'app-receivable-order',
templateUrl: './receivable-order.component.html',
styleUrls: ['../../../commom/less/commom-table.less','../../../commom/less/common-table-bar.less']
styleUrls: ['../../../commom/less/commom-table.less', '../../../commom/less/common-table-bar.less']
})
export class ReceivableOrderComponent extends BasicTableComponent implements OnInit {
@ViewChild('st', { static: true })
@ -80,6 +80,9 @@ export class ReceivableOrderComponent extends BasicTableComponent implements OnI
}
}
exportList() {
this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_get_fico_page_export);
}
private initSF(): SFSchema {
return {
@ -121,7 +124,7 @@ export class ReceivableOrderComponent extends BasicTableComponent implements OnI
ui: {
widget: 'dict-select',
params: { dictKey: 'driverrecord:receive:type' },
placeholder: '请选择',
placeholder: '请选择'
}
},
arvattype: {
@ -130,7 +133,7 @@ export class ReceivableOrderComponent extends BasicTableComponent implements OnI
ui: {
widget: 'dict-select',
params: { dictKey: 'pay:type' },
placeholder: '请选择',
placeholder: '请选择'
}
},
cno: {
@ -140,7 +143,7 @@ export class ReceivableOrderComponent extends BasicTableComponent implements OnI
widget: 'select',
placeholder: '请选择',
allowClear: true,
asyncData: () => this.service.getCloseAccount(),
asyncData: () => this.service.getCloseAccount()
}
},
arto: {
@ -152,7 +155,7 @@ export class ReceivableOrderComponent extends BasicTableComponent implements OnI
searchDebounceTime: 300,
searchLoadingText: '搜索中...',
allowClear: true,
onSearch: (q: any) => this.service.getEnterpriceList({ enterpriseName: q }),
onSearch: (q: any) => this.service.getEnterpriceList({ enterpriseName: q })
}
},
sts: {
@ -164,8 +167,7 @@ export class ReceivableOrderComponent extends BasicTableComponent implements OnI
],
ui: {
widget: 'select',
placeholder: '请选择',
placeholder: '请选择'
}
},
banktype: {
@ -178,8 +180,7 @@ export class ReceivableOrderComponent extends BasicTableComponent implements OnI
],
ui: {
widget: 'select',
placeholder: '请选择',
placeholder: '请选择'
},
default: ''
},
@ -188,8 +189,7 @@ export class ReceivableOrderComponent extends BasicTableComponent implements OnI
type: 'string',
ui: {
widget: 'sl-from-to-search',
format: 'yyyy-MM-dd',
format: 'yyyy-MM-dd'
} as SFDateWidgetSchema
},
createTime: {
@ -197,14 +197,14 @@ export class ReceivableOrderComponent extends BasicTableComponent implements OnI
type: 'string',
ui: {
widget: 'sl-from-to-search',
format: 'yyyy-MM-dd',
format: 'yyyy-MM-dd'
} as SFDateWidgetSchema
},
billHCode: {
type: 'string',
title: '订单号',
ui: {
placeholder: '请输入',
placeholder: '请输入'
}
},
// orderS3: {
@ -222,7 +222,7 @@ export class ReceivableOrderComponent extends BasicTableComponent implements OnI
title: '核销备注',
ui: {
autocomplete: 'off',
placeholder: '请选择',
placeholder: '请选择'
}
}
}

View File

@ -41,9 +41,10 @@
{{ item.orderRefundCode }} <br> {{ item.refundStatusLabel }}
</ng-template>
<ng-template st-row="refundAmount" let-item let-index="index" let-column="column">
<ng-container *ngFor="let cost of item.billRefundDetailVOS">
{{cost.costName}}{{ cost.refundAmount |currency }}<br>
</ng-container>
<p *ngFor="let cost of item.billRefundDetailVOS"
style="display: flex;align-items: center;justify-content: space-between;margin: 0;">
<label> {{cost.costName}}</label><label>{{ cost.refundAmount |currency }}</label>
</p>
</ng-template>
<ng-template st-row="billRefundPaymentVOS" let-item let-index="index" let-column="column">
<ng-container *ngFor="let bill of item.billRefundPaymentVOS">

View File

@ -174,6 +174,13 @@ export class RefundRecordComponent extends BasicTableComponent implements OnInit
placeholder: '请输入'
}
},
captainName: {
type: 'string',
title: '收款人',
ui: {
placeholder: '请输入'
}
},
enterpriseProjectName: {
type: 'string',
title: '所属项目',
@ -226,6 +233,14 @@ export class RefundRecordComponent extends BasicTableComponent implements OnInit
{ title: '退款单号', render: 'orderRefundCode', width: 190 },
{ title: '退款类型', index: 'refundTypeLabel', width: 140 },
{ title: '退款金额', render: 'refundAmount', className: 'text-right', width: 180 },
{
title: '合计金额',
index: 'refundAmount',
width: 150,
type: 'widget',
className: 'text-right',
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.refundAmount }) }
},
{ title: '退款时间', index: 'refundExecuteTime', width: 170 },
{ title: '货主', index: 'enterpriseInfoName', width: 150 },
{ title: '所属项目', index: 'enterpriseProjectName', width: 140 },

View File

@ -27,6 +27,8 @@
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
[acl-ability]="['FINANCIAL-VOUCHER-list']">筛选</button>
<button nz-button nzDanger [disabled]="service.http.loading" (click)="exprot()" acl
[acl-ability]="['FINANCIAL-VOUCHER-export']">导出</button>
</div>
</div>

View File

@ -61,6 +61,11 @@ export class VoucherManagementComponent extends BasicTableComponent {
}
}
// 导出
exprot() {
this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_get_fico_vch_export);
}
private initSF(): SFSchema {
return {
properties: {

View File

@ -1,3 +1,13 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-28 20:27:07
* @LastEditors : Shiming
* @LastEditTime : 2022-05-07 16:22:32
* @FilePath : \\tms-obc-web\\src\\app\\routes\\financial-management\\components\\voucher-summary\\voucher-summary.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<!-- <page-header-wrapper [title]="'凭证汇总'">
</page-header-wrapper>
@ -29,7 +39,8 @@
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
[acl-ability]="['FINANCIAL-VOUCHER-list']">筛选</button>
<button nz-button nzDanger (click)='exportList()'> 导出</button>
<button nz-button nzDanger acl
[acl-ability]="['FINANCIAL-VOUCHER-SUMMARY-export']" (click)='exportList()'> 导出</button>
</div>
</div>
<st #st [data]="service.$api_get_fico_vch_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"

View File

@ -59,7 +59,9 @@ export class WithdrawalsRecordComponent extends BasicTableComponent {
};
afterRes = (data: any[], rawData?: any) => {
data = data.map(node => ({ ...node, disabled: node.refundStatus !== '1' }));
data = data.map(node => ({ ...node,
disabled: node.refundStatus !== '1'
}));
return data;
};
@ -84,7 +86,7 @@ export class WithdrawalsRecordComponent extends BasicTableComponent {
params = [item.id];
} else {
console.log(this.selectedRows);
if (this.selectedRows.length <= 0) {
this.service.msgSrv.error('请选择提现单!');
return;

View File

@ -83,6 +83,8 @@ export class FreightAccountService extends ShipperBaseService {
// 查询费用单抬头
$api_get_cost_page = '/api/fcc/ficoFeeH/list/page';
// 导出费用单列表数据
$api_get_cost_page_export = '/api/fcc/ficoFeeH/asyncExport';
// 根据费用头ID查询费用单及开票明细
$api_get_cost_detail = '/api/fcc/ficoFeeL/detail';
// 费用关联的应收核销明细
@ -90,6 +92,8 @@ export class FreightAccountService extends ShipperBaseService {
// 查询应收核销抬头
$api_get_fico_page = '/api/fcc/ficoAhxH/list/page';
// 应收核销列表数据导出
$api_get_fico_page_export = '/api/fcc/ficoAhxH/asyncExport';
// 应收核销汇总
$api_get_fico_sum = '/api/fcc/ficoAhxH/getSum';
// 获取应收核销抬头
@ -99,6 +103,8 @@ export class FreightAccountService extends ShipperBaseService {
// 查询应付核销抬头
$api_get_fico_ph_page = '/api/fcc/ficoPhxH/list/page';
// 应付核销列表数据导出
$api_get_fico_ph_page_export = '/api/fcc/ficoPhxH/asyncExport';
// 应付核销汇总
$api_get_fico_ph_sum = '/api/fcc/ficoPhxH/getSum';
// 获取应付核销抬头
@ -108,6 +114,8 @@ export class FreightAccountService extends ShipperBaseService {
// 查询总账凭证表
$api_get_fico_vch_page = '/api/fcc/ficoVcH/list/page';
// 导出总账凭证列表数据
$api_get_fico_vch_export = '/api/fcc/ficoVcH/asyncExport';
// 导出总账凭证表
$api_export_fico_vch_page = '/api/fcc/ficoVcH/reportVchListPage';
// 获取总账凭证表详情信息
@ -115,6 +123,8 @@ export class FreightAccountService extends ShipperBaseService {
// 查询付款单抬头
$api_get_payment_page = '/api/fcc/ficoPayH/listFicoPayHPage';
// 付款单列表数据导出
$api_get_payment_page_export = '/api/fcc/ficoPayH/asyncExport';
// 查询付款单明细
$api_get_payment_detail = '/api/fcc/ficoPayL/list/page';
// 付款单抬头信息
@ -122,6 +132,8 @@ export class FreightAccountService extends ShipperBaseService {
// 查询收款单抬头
$api_get_receipt_page = '/api/fcc/ficoBrmH/list/page';
// 收款单列表数据导出
$api_get_receipt_page_export = '/api/fcc/ficoBrmH/asyncExport';
// 收款单抬头信息
$api_get_receipt_header = '/api/fcc/ficoBrmH/get';
// 获取收款单抬头

View File

@ -8,15 +8,7 @@
* @FilePath : \\tms-obc-web\\src\\app\\routes\\insurance-management\\components\\set\\set.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
import { Router } from '@angular/router';
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { STColumn } from '@delon/abc/st';
import { _HttpClient } from '@delon/theme';
import { NzMessageService } from 'ng-zorro-antd/message';
import { NzModalService } from 'ng-zorro-antd/modal';
import { InsuranceManagementService } from '../../services/insurance-management.service';
import { NzCardComponent } from 'ng-zorro-antd/card';
@Component({
selector: 'app-insurance-management-set',
templateUrl: './set.component.html',
@ -24,11 +16,7 @@ import { NzCardComponent } from 'ng-zorro-antd/card';
})
export class insuranceManagementSetComponent implements OnInit {
constructor(
private route: ActivatedRoute,
private msgSrv: NzMessageService,
private service: InsuranceManagementService,
) {
constructor() {
}

View File

@ -9,32 +9,19 @@
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { NzMessageService } from 'ng-zorro-antd/message';
import {InterfaceDockingService} from '../../services/interface-docking.service';
@Component({
selector: 'app-interface-docking-set',
templateUrl: './set.component.html',
styleUrls: ['./set.component.less']
})
export class interfaceDockingSetComponent implements OnInit {
constructor(
private route: ActivatedRoute,
private msgSrv: NzMessageService,
private service: InterfaceDockingService,
) {
}
constructor() {}
ngOnInit(): void {
this.initData()
}
initData() {
this.initData();
}
initData() {}
goBack() {
window.history.go(-1);
}
}

View File

@ -112,7 +112,6 @@ export class OrderManagementBulkDetailChangeComponent implements OnInit {
public shipperservice: ShipperBaseService,
fb: FormBuilder,
private envSrv: EAEnvironmentService,
private ar: ActivatedRoute
) {
this.validateForm1 = fb.group({
loadTime: [null, []],

View File

@ -88,7 +88,6 @@ export class OrderManagementBulkeDetailComponent implements OnInit {
) {}
ngOnInit(): void {
console.log(this.route?.snapshot?.queryParams?.sts);
this.initData();
this.getTrajectory();
}

View File

@ -31,7 +31,8 @@
<div class="tab_header">
<label class="page_title">
<label class="driver">|</label>
大宗订单</label>
大宗订单</label
>
<nz-tabset (nzSelectedIndexChange)="selectChange($event)" [nzTabBarExtraContent]="extraTemplate">
<nz-tab [nzTitle]="'全部(' + tabs?.totalCount + ')'"></nz-tab>
<nz-tab [nzTitle]="'待接单(' + tabs?.receivedQuantity + ')'"></nz-tab>
@ -44,10 +45,17 @@
</div>
<div>
<st #st [bordered]="true" [scroll]="{ x: '2000px',y:scrollY }" [data]="service.$api_get_listBulkPage"
[columns]="columns" [req]="{ process: beforeReq }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } , process: afterRes}"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false">
<st
#st
[bordered]="true"
[scroll]="{ x: '2000px', y: scrollY }"
[data]="service.$api_get_listBulkPage"
[columns]="columns"
[req]="{ process: beforeReq }"
[res]="{ reName: { list: 'data.records', total: 'data.total' }, process: afterRes }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loading]="false"
>
<ng-template st-row="freightPrice" let-item let-index="index">
{{ item.freightPrice | currency }}
</ng-template>
@ -56,19 +64,19 @@
<div *ngIf="item?.unloadTime">卸 | {{ item?.unloadTime }}</div>
</ng-template>
<ng-template st-row="driverName" let-item let-index="index">
<div> {{ item?.driverName }}{{ item?.driverPhone ? "/" + item?.driverPhone : '' }}{{ item?.carNo ? "/" +
item?.carNo : ''}} </div>
<div> {{ item?.driverName }}{{ item?.driverPhone ? '/' + item?.driverPhone : '' }}{{ item?.carNo ? '/' + item?.carNo : '' }} </div>
</ng-template>
<ng-template st-row="settlementWeight" let-item let-index="index">
<div> {{ item.settlementWeight ? item.settlementWeight + '吨/ ': ''}} {{ item.settlementVolume ?
item.settlementVolume + ' ': ''}}</div>
<div>
{{ item.settlementWeight ? item.settlementWeight + '吨/ ' : '' }}
{{ item.settlementVolume ? item.settlementVolume + '方 ' : '' }}</div
>
</ng-template>
<ng-template st-row="payeeName" let-item let-index="index">
<div *ngIf="item.payeeName !== item.driverName"> {{ item?.payeeName }}{{ item?.payeePhone ? "/" +
item?.payeePhone : '' }} </div>
<div *ngIf="item.payeeName !== item.driverName"> {{ item?.payeeName }}{{ item?.payeePhone ? '/' + item?.payeePhone : '' }} </div>
</ng-template>
<ng-template st-row="createUserName" let-item let-index="index">
<div> {{ item?.createUserName }}{{ item?.createUserPhone ? "/" + item?.createUserPhone : '' }} </div>
<div> {{ item?.createUserName }}{{ item?.createUserPhone ? '/' + item?.createUserPhone : '' }} </div>
</ng-template>
<ng-template st-row="billCode" let-item let-index="index">
<a [routerLink]="'bulk-detail/' + item.id">{{ item.billCode }}</a>
@ -91,8 +99,7 @@
<div *ngIf="item.mybidDetailInfo.length > 0">
<p *ngFor="let data of item.mybidDetailInfo">
<span *ngIf="data.expenseCode !== 'FL'">{{ data.expenseName }}{{ data.price | currency }}</span>
<span *ngIf="data.expenseCode === 'FL'">{{ data.expenseName }}{{ (data.price * 100).toFixed(2) + '%'
}}</span>
<span *ngIf="data.expenseCode === 'FL'">{{ data.expenseName }}{{ (data.price * 100).toFixed(2) + '%' }}</span>
<span *ngIf="data.paymentStatusLabel" style="color: #f59a63">{{ data.paymentStatusLabel }}</span>
</p>
</div>
@ -101,13 +108,25 @@
</div>
</nz-card>
<nz-modal [(nzVisible)]="isVisible" [nzWidth]="600" [nzFooter]="nzModalFooter" nzTitle="运费变更记录" (nzOnOk)="handleOK()"
(nzOnCancel)="handleCancel('0')">
<nz-modal
[(nzVisible)]="isVisible"
[nzWidth]="600"
[nzFooter]="nzModalFooter"
nzTitle="运费变更记录"
(nzOnOk)="handleOK()"
(nzOnCancel)="handleCancel('0')"
>
<ng-container *nzModalContent>
<st #stFloat size="small" [bordered]="true" [data]="service.$api_get_listChangeApply" [columns]="columnsFloat"
[req]="{ process: beforeReq }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } , process: afterRes}"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }">
<st
#stFloat
size="small"
[bordered]="true"
[data]="service.$api_get_listChangeApply"
[columns]="columnsFloat"
[req]="{ process: beforeReq }"
[res]="{ reName: { list: 'data.records', total: 'data.total' }, process: afterRes }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
>
<ng-template st-row="order" let-item let-index="index">
{{ index + 1 }}
</ng-template>
@ -127,8 +146,14 @@
</ng-template>
</nz-modal>
<nz-modal [(nzVisible)]="isVisibleView" [nzWidth]="600" [nzFooter]="nzModalFooterview" nzTitle="查看"
(nzOnOk)="handleOK()" (nzOnCancel)="handleCancel('1')">
<nz-modal
[(nzVisible)]="isVisibleView"
[nzWidth]="600"
[nzFooter]="nzModalFooterview"
nzTitle="查看"
(nzOnOk)="handleOK()"
(nzOnCancel)="handleCancel('1')"
>
<ng-container *nzModalContent>
<sf #sfView [schema]="schemaView" [ui]="uiView" [formData]="ViewCause" [compact]="true" [button]="'none'">
<ng-template sf-template="no" let-me let-ui="uiView" let-schema="schemaView">
@ -138,21 +163,30 @@
</div>
</ng-template>
</sf>
<st #stFloatView multiSort size="small" [bordered]="true" [data]="service.$api_getChangeRecordBulkDetail"
<st
#stFloatView
multiSort
size="small"
[bordered]="true"
[data]="service.$api_getChangeRecordBulkDetail"
[columns]="columnsFloatView"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: changeViewParams }"
[res]="{ reName: { list: 'data.list', total: 'data.total' } }">
[res]="{ reName: { list: 'data.list', total: 'data.total' } }"
>
<ng-template st-row="amountBeforeChange" let-item let-index="index">
{{ item.amountBeforeChange | currency }}
</ng-template>
<ng-template st-row="amountchangeValue" let-item let-index="index"> ¥{{ item.amountchangeValue | number: '0.2-2'
}} </ng-template>
<ng-template st-row="amountchangeValue" let-item let-index="index"> ¥{{ item.amountchangeValue | number: '0.2-2' }} </ng-template>
<ng-template st-row="amountAfterChange" let-item let-index="index">
{{ item.amountAfterChange | currency }}
</ng-template>
</st>
<div><span>变更原因:{{ ViewCause?.changeCause }}</span></div>
<div><span>拒绝原因:{{ ViewCause?.refuseCause }}</span></div>
<div
><span>变更原因:{{ ViewCause?.changeCause }}</span></div
>
<div
><span>拒绝原因:{{ ViewCause?.refuseCause }}</span></div
>
<div><span>注:附加费依据调整后的运输费用重新计算</span></div>
</ng-container>
<ng-template #nzModalFooterview>
@ -161,8 +195,13 @@
</ng-template>
</nz-modal>
<nz-modal [(nzVisible)]="isVisibleEvaluate" [nzWidth]="600" [nzFooter]="nzModalFooterEvaluate" (nzOnOk)="handleOK()"
(nzOnCancel)="handleCancel('2')">
<nz-modal
[(nzVisible)]="isVisibleEvaluate"
[nzWidth]="600"
[nzFooter]="nzModalFooterEvaluate"
(nzOnOk)="handleOK()"
(nzOnCancel)="handleCancel('2')"
>
<ng-container *nzModalContent>
<nz-tabset>
<nz-tab nzTitle="货主评价">
@ -191,21 +230,29 @@
<ng-template #enable>
<div class="ant-popover-message">
<i nz-icon nzType="info-circle" nzTheme="fill"></i>
<div class="ant-popover-message-title ng-star-inserted self-ant-popover-title" style="font-size: 16px">已选择{{
selectedRows?.length || 0 }}条订单,确认批量签收吗?
<div class="ant-popover-message-title ng-star-inserted self-ant-popover-title" style="font-size: 16px"
>已选择{{ selectedRows?.length || 0 }}条订单,确认批量签收吗?
</div>
<div class="ant-popover-message-title ng-star-inserted"> 签收后不可再修改运费,请确保运费等信息准确无误后,再进行签收。 </div>
</div>
</ng-template>
<ng-template #extraTemplate>
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="loading" (click)="openDrawer()" acl
[acl-ability]="['ORDER-BULK-search']">筛选</button>
<button nz-button nzDanger [nzLoading]="loading" (click)="openDrawer()" acl [acl-ability]="['ORDER-BULK-search']">筛选</button>
<button nz-button nzDanger [disabled]="loading" (click)="exprot()">导出</button>
<button *ngIf="resourceStatus == 4" nz-button nzType="primary" nzGhost nz-popconfirm [nzPopconfirmTitle]="enable"
(nzOnConfirm)="userAction()" nzPopconfirmPlacement="bottomRight" acl
[acl-ability]="['ORDER-BULK-batchSignBulkOrder']">
<button
*ngIf="resourceStatus == 4"
nz-button
nzType="primary"
nzGhost
nz-popconfirm
[nzPopconfirmTitle]="enable"
(nzOnConfirm)="userAction()"
nzPopconfirmPlacement="bottomRight"
acl
[acl-ability]="['ORDER-BULK-batchSignBulkOrder']"
>
批量签收
</button>
</div>
</ng-template>
</ng-template>

View File

@ -824,4 +824,5 @@ export class OrderManagementBulkComponent extends BasicTableComponent implements
exprot() {
this.service.exportStart({ ...this.reqParams, pageSize: -1 }, this.service.$api_get_asyncExportBulkList);
}
}

View File

@ -37,8 +37,6 @@ export class OrderManagementComplaintDetailComponent implements OnInit {
if (this.id)
{
this.getDetail(this.id);
console.log(this.ar.snapshot.queryParams.sts);
this.initSF();
this.initSTAudit()
}

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-01-12 10:52:50
* @LastEditors : Shiming
* @LastEditTime : 2022-04-29 10:29:12
* @LastEditTime : 2022-05-10 13:55:39
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\receipts-audit\\receipts-audit.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -39,10 +39,17 @@
</div>
<div>
<st #st [bordered]="true" [scroll]="{ x: '2000px',y:scrollY }" [data]="service.$api_get_billExamine_page"
[columns]="columns" [req]="{ process: beforeReq }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } , process: afterRes}"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false">
<st
#st
[bordered]="true"
[scroll]="{ x: '2000px', y: scrollY }"
[data]="service.$api_get_billExamine_page"
[columns]="columns"
[req]="{ process: beforeReq }"
[res]="{ reName: { list: 'data.records', total: 'data.total' }, process: afterRes }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loading]="false"
>
<ng-template st-row="freightPrice" let-item let-index="index">
{{ item.freightPrice | currency }}
</ng-template>
@ -62,8 +69,7 @@
<app-imagelist style="width: 40px" [imgList]="[item.unloadingLadingBillFilePath]"> </app-imagelist>
</div>
<div *ngIf="item.unloadingPeopleVehiclesGoodsFilePath">
<app-imagelist style="width: 40px" [imgList]="[item.unloadingPeopleVehiclesGoodsFilePath]">
</app-imagelist>
<app-imagelist style="width: 40px" [imgList]="[item.unloadingPeopleVehiclesGoodsFilePath]"> </app-imagelist>
</div>
</div>
</ng-template>
@ -72,26 +78,21 @@
<div *ngIf="item?.unloadingTime">卸 | {{ item?.unloadingTime }}</div>
</ng-template>
<ng-template st-row="driverName" let-item let-index="index">
<div> {{ item?.driverName }}{{ item?.driverPhone ? "/" + item?.driverPhone : ''}}{{ item?.carNo ? "/" +
item?.carNo : '' }} </div>
</ng-template>
<ng-template st-row="payeeName" let-item let-index="index">
<div> {{ item?.payeeName }}{{item?.payeePhone ? "/" + item?.payeePhone : '' }} </div>
<div> {{ item?.driverName }}{{ item?.driverPhone ? '/' + item?.driverPhone : '' }}{{ item?.carNo ? '/' +
item?.carNo : '' }} </div><br />
<div *ngIf="item.payeeName !== item.driverName">车队长: {{ item?.payeeName ? item?.payeeName + '/' : ''}}{{
item?.payeePhone }} </div>
</ng-template>
<ng-template st-row="billCode" let-item let-index="index">
<!-- <div>{{ item.billCode }}</div> -->
<a *ngIf="item.resourceType == '1'" [routerLink]="'/order-management/vehicle/vehicle-detail/' + item.id">{{
item.billCode }}</a>
<a *ngIf="item.resourceType == '2'" [routerLink]="'/order-management/bulk/bulk-detail/' + item.id">{{
item.billCode }}</a>
<a *ngIf="item.resourceType == '3'" [routerLink]="'/order-management/vehicle/vehicle-detail/' + item.id">{{
item.billCode }}</a>
<a *ngIf="item.resourceType == '1'" [routerLink]="'/order-management/vehicle/vehicle-detail/' + item.id">{{ item.billCode }}</a>
<a *ngIf="item.resourceType == '2'" [routerLink]="'/order-management/bulk/bulk-detail/' + item.id">{{ item.billCode }}</a>
<a *ngIf="item.resourceType == '3'" [routerLink]="'/order-management/vehicle/vehicle-detail/' + item.id">{{ item.billCode }}</a>
<div>
<span>{{item?.billStatusLabel}}</span>
<span>{{ item?.billStatusLabel }}</span>
</div>
<div>
<span>{{item?.resourceTypeLabel}}{{item?.serviceTypeLabel === item?.resourceTypeLabel ?
'':item?.serviceTypeLabel}}</span>
<span>{{ item?.resourceTypeLabel }}{{ item?.serviceTypeLabel === item?.resourceTypeLabel ? '' : item?.serviceTypeLabel }}</span>
</div>
</ng-template>
<ng-template st-row="goodsName" let-item let-index="index">
@ -116,20 +117,18 @@
<ng-template #extraTemplate>
<div>
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
[acl-ability]="['ORDER-RECEIPTS-search']">筛选</button>
<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()" 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>
更多<i nz-icon nzType="down" nzTheme="outline"></i
></button>
<nz-dropdown-menu #menu="nzDropdownMenu">
<ul nz-menu>
<li nz-menu-item (click)="sign('1')" acl [acl-ability]="['ORDER-RECEIPTS-billAuditPassBatch']">
批量通过
</li>
<li nz-menu-item (click)="sign1('1')" acl [acl-ability]="['ORDER-RECEIPTS- electronicBilling']">
批量生成电子单据
</li>
<li nz-menu-item (click)="sign('1')" acl [acl-ability]="['ORDER-RECEIPTS-billAuditPassBatch']"> 批量通过 </li>
<li nz-menu-item (click)="sign1('1')" acl [acl-ability]="['ORDER-RECEIPTS- electronicBilling']"> 批量生成电子单据 </li>
</ul>
</nz-dropdown-menu>
</div>
</ng-template>
</ng-template>

View File

@ -127,7 +127,6 @@ export class OrderManagementReceiptsAuditComponent extends BasicTableComponent i
this.initST();
setTimeout(() => {
this.st.load();
this.getGoodsSourceStatistical();
}, 500);
}
ngOnInit(): void {
@ -337,13 +336,6 @@ export class OrderManagementReceiptsAuditComponent extends BasicTableComponent i
index: 'driverName',
render: 'driverName'
},
{
title: '车队长',
className: 'text-left',
width: '180px',
index: 'payeeName',
render: 'payeeName'
},
{
title: '装卸货时间',
width: '200px',

View File

@ -101,7 +101,6 @@ export class OrderManagementVehicleDetailChangeComponent implements OnInit {
private modalService: NzModalService,
private amapService: AmapService,
public shipperservice: ShipperBaseService,
private ar: ActivatedRoute,
fb: FormBuilder,
private envSrv: EAEnvironmentService
) {
@ -566,7 +565,7 @@ export class OrderManagementVehicleDetailChangeComponent implements OnInit {
this.service.request(this.service.$api_set_modifyWholeOrder, params).subscribe((res: any) => {
if (res) {
this.service.msgSrv.success('修改成功!');
this.router.navigate(['/order-management/vehicle/vehicle-detail/', this.id], { relativeTo: this.ar });
this.router.navigate(['/order-management/vehicle/vehicle-detail/', this.id], { relativeTo: this.route });
} else {
this.service.msgSrv.error(res?.msg);
}

View File

@ -72,7 +72,6 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme
private modal: NzModalService,
public shipperservice: ShipperBaseService,
public router: Router,
public ar: ActivatedRoute,
public searchDrawerService: SearchDrawerService
) {
super(searchDrawerService);

View File

@ -47,7 +47,9 @@ export class PartnerAccountManagementWithdrawalsRecordComponent implements OnIni
};
afterRes = (data: any[], rawData?: any) => {
data = data.map(node => ({ ...node, disabled: node.refundStatus !== '1' }));
data = data.map(node => ({ ...node,
disabled: node.refundStatus !== '1'
}));
return data;
};
@ -74,16 +76,19 @@ export class PartnerAccountManagementWithdrawalsRecordComponent implements OnIni
const stList = this.st.list;
stList.forEach(item => {
if (!item.checked) {
const index = this.selectedRows.findIndex(_item => item.id === _item.id);
if (index !== -1) this.selectedRows.splice(index, 1);
}
})
}
let totalCallNo = 0;
this.totalCallNo = 0;
this.selectedRows.forEach((item => {
totalCallNo = new Big(this.totalCallNo).plus(item?.amount).parse();
}));
this.totalCallNo = totalCallNo;
}));
} else if (e.type === 'loaded') {
// 页面加载时勾选
(e?.loaded || []).forEach((r) => {

View File

@ -1,9 +1,7 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { Router } from '@angular/router';
import { STColumn, STComponent, STData, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
import { processSingleSort } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { AdviceFeedbackService } from '../../services/advice-feedback.service';
@Component({
@ -20,15 +18,10 @@ export class ParterAdviceFeedbackListComponent implements OnInit {
@ViewChild('sf', { static: false })
sf!: SFComponent;
_$expand = false;
selectedIndex = 0;
selectedIndex = 0;
data=[{name1:1111}]
constructor(
public router: Router,
public ar: ActivatedRoute,
public service: AdviceFeedbackService,
private modalService: NzModalService
) {}
data = [{ name1: 1111 }];
constructor(public router: Router, public service: AdviceFeedbackService) {}
/**
* 查询参数
@ -36,19 +29,19 @@ export class ParterAdviceFeedbackListComponent implements OnInit {
get reqParams() {
return { ...this.sf?.value };
}
/**
/**
* 查询字段个数
*/
get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length;
}
/**
* 伸缩查询条件
*/
expandToggle(): void {
this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand);
}
get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length;
}
/**
* 伸缩查询条件
*/
expandToggle(): void {
this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand);
}
ngOnInit() {
this.initSF();
@ -89,7 +82,7 @@ export class ParterAdviceFeedbackListComponent implements OnInit {
_$expand: (value: boolean) => value
}
}
},
}
}
};
this.ui = {
@ -139,12 +132,12 @@ export class ParterAdviceFeedbackListComponent implements OnInit {
buttons: [
{
text: '详情',
click: (_record, _modal, _instance) => this.partnerView(_record),
click: (_record, _modal, _instance) => this.partnerView(_record)
},
{
text: '处理',
click: (_record, _modal, _instance) => this.partnerView(_record),
},
click: (_record, _modal, _instance) => this.partnerView(_record)
}
]
}
];
@ -182,13 +175,12 @@ export class ParterAdviceFeedbackListComponent implements OnInit {
buttons: [
{
text: '详情',
click: (_record, _modal, _instance) => this.channelView(_record),
click: (_record, _modal, _instance) => this.channelView(_record)
},
{
text: '审核',
click: (_record, _modal, _instance) => this.channelView(_record),
},
click: (_record, _modal, _instance) => this.channelView(_record)
}
]
}
];
@ -197,7 +189,7 @@ export class ParterAdviceFeedbackListComponent implements OnInit {
partnerView(record: STData) {
this.router.navigate(['/partner/advice-feedback/detail'], { queryParams: {} });
}
channelView(record: STData) {
this.router.navigate(['/partner/advice-feedback/detail'], { queryParams: {} });
}
@ -211,8 +203,8 @@ export class ParterAdviceFeedbackListComponent implements OnInit {
// this.st1?.load(1);
}
tabChange(index:any){
console.log(index)
tabChange(index: any) {
console.log(index);
switch (index) {
case 0:
this.initST1();
@ -224,5 +216,4 @@ export class ParterAdviceFeedbackListComponent implements OnInit {
break;
}
}
}

View File

@ -1,11 +1,15 @@
import { AfterViewInit, ChangeDetectorRef, Component, OnChanges, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Component, OnInit, ViewChild } from '@angular/core';
import { apiConf } from '@conf/api.conf';
import { SFComponent, SFRadioWidgetSchema, SFSchema, SFSchemaEnumType, SFSelectWidgetSchema, SFTextareaWidgetSchema, SFUISchema, SFUploadWidgetSchema } from '@delon/form';
import { _HttpClient } from '@delon/theme';
import {
SFComponent,
SFRadioWidgetSchema,
SFSchema,
SFSelectWidgetSchema,
SFTextareaWidgetSchema,
SFUISchema,
SFUploadWidgetSchema
} from '@delon/form';
import { Observable, Observer } from 'rxjs';
import { map } from 'rxjs/operators';
import { AmapPoiPickerComponent } from 'src/app/shared/components/amap';
import { ChannelSalesService } from '../../services/channel-sales.service';
@Component({
@ -19,12 +23,7 @@ export class ParterArticleManagementEditComponent implements OnInit {
i: any;
type: any;
constructor(
public http: _HttpClient,
private cdr: ChangeDetectorRef,
private route: ActivatedRoute,
public service: ChannelSalesService,
) {}
constructor(public service: ChannelSalesService) {}
ngOnInit(): void {
this.initSF();
@ -44,8 +43,8 @@ export class ParterArticleManagementEditComponent implements OnInit {
ui: {
widget: 'textarea',
autosize: { minRows: 3, maxRows: 6 },
placeholder:'请输入50字符'
} as SFTextareaWidgetSchema,
placeholder: '请输入50字符'
} as SFTextareaWidgetSchema
},
name2: {
type: 'string',
@ -54,8 +53,8 @@ export class ParterArticleManagementEditComponent implements OnInit {
ui: {
widget: 'textarea',
autosize: { minRows: 3, maxRows: 6 },
placeholder:'请输入50字符'
} as SFTextareaWidgetSchema,
placeholder: '请输入50字符'
} as SFTextareaWidgetSchema
},
name3: {
type: 'string',
@ -89,12 +88,10 @@ export class ParterArticleManagementEditComponent implements OnInit {
name: {
title: '分类',
type: 'string',
enum: [
{ label: '管理员', value: '1'},
],
enum: [{ label: '管理员', value: '1' }],
ui: {
widget: 'select',
} as SFSelectWidgetSchema,
widget: 'select'
} as SFSelectWidgetSchema
},
name4: {
type: 'number',
@ -102,21 +99,21 @@ export class ParterArticleManagementEditComponent implements OnInit {
minimum: 0,
maximum: 99,
ui: {
widgetWidth: 300 ,
placeholder:'请输入0~99数字越大排序越靠前'
widgetWidth: 300,
placeholder: '请输入0~99数字越大排序越靠前'
}
},
name5: {
type: 'string',
title: '跳转路径',
enum: [
{ label: '图文', value: '1'},
{ label: '视频', value: '2'},
{ label: '图文', value: '1' },
{ label: '视频', value: '2' }
],
ui: {
widget: 'radio',
widget: 'radio'
} as SFRadioWidgetSchema,
default: '1',
default: '1'
},
content: {
type: 'string',
@ -128,7 +125,7 @@ export class ParterArticleManagementEditComponent implements OnInit {
height: 450
},
visibleIf: { name5: (value: string) => value === '1' }
},
}
},
name6: {
type: 'string',
@ -159,7 +156,7 @@ export class ParterArticleManagementEditComponent implements OnInit {
},
visibleIf: { name5: (value: string) => value === '2' }
} as SFUploadWidgetSchema
},
}
},
required: ['name1', 'name2']
};
@ -167,17 +164,14 @@ export class ParterArticleManagementEditComponent implements OnInit {
'*': {
spanLabelFixed: 150,
grid: { span: 20 }
},
}
};
}
close() {
}
close() {}
save() {
this.sf.validator({ emitError: true });
if(!this.sf.valid) return;
if (!this.sf.valid) return;
// this.service.request('', { ...this.sf?.value }).subscribe(res => {
// if (res) {
// this.modalRef.destroy(true);

View File

@ -1,11 +1,9 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { Router } from '@angular/router';
import { STColumn, STComponent, STData, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
import { processSingleSort } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { ChannelSalesService } from '../../services/channel-sales.service';
import { ParterArticleManagementEditComponent } from '../edit/edit.component';
@Component({
selector: 'app-parter-article-management-list',
@ -22,13 +20,8 @@ export class ParterArticleManagementListComponent implements OnInit {
spuStatus = '1';
_$expand = false;
data=[{name1:1111}]
constructor(
public router: Router,
public ar: ActivatedRoute,
public service: ChannelSalesService,
private modalService: NzModalService
) {}
data = [{ name1: 1111 }];
constructor(public router: Router, public service: ChannelSalesService, private modalService: NzModalService) {}
/**
* 查询参数
@ -40,7 +33,7 @@ export class ParterArticleManagementListComponent implements OnInit {
/**
* 重置表单
*/
resetSF() {
resetSF() {
this.sf.reset();
this.st.load(1);
}
@ -49,19 +42,19 @@ export class ParterArticleManagementListComponent implements OnInit {
// this.st1?.load(1);
}
/**
/**
* 查询字段个数
*/
get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length;
}
/**
* 伸缩查询条件
*/
expandToggle(): void {
this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand);
}
get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length;
}
/**
* 伸缩查询条件
*/
expandToggle(): void {
this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand);
}
ngOnInit() {
this.initSF();
this.initST();
@ -91,8 +84,7 @@ export class ParterArticleManagementListComponent implements OnInit {
_$expand: (value: boolean) => value
}
}
},
}
}
};
this.ui = {
@ -138,19 +130,19 @@ export class ParterArticleManagementListComponent implements OnInit {
buttons: [
{
text: '修改',
click: (_record, _modal, _instance) => this.edit(_record),
click: (_record, _modal, _instance) => this.edit(_record)
},
{
text: '禁用',
click: (_record, _modal, _instance) => this.stop(_record),
click: (_record, _modal, _instance) => this.stop(_record)
},
{
text: '启用',
click: (_record, _modal, _instance) => this.start(_record.id),
click: (_record, _modal, _instance) => this.start(_record.id)
},
{
text: '推荐到首页',
click: (_record, _modal, _instance) => this.recommend(_record.id),
click: (_record, _modal, _instance) => this.recommend(_record.id)
}
]
}
@ -166,11 +158,10 @@ export class ParterArticleManagementListComponent implements OnInit {
this.router.navigate(['/partner/knowledge/article-management-edit'], { queryParams: {} });
}
stop(record: STData) {
this.modalService.confirm({
nzTitle: '<i>禁用确认</i>',
nzContent: `<b>确定禁用此文章吗?</br>`,
nzContent: `<b>确定禁用此文章吗?</br>`
// nzOnOk: () =>
// this.service.request('', '').subscribe(res => {
// if (res) {
@ -183,7 +174,7 @@ export class ParterArticleManagementListComponent implements OnInit {
start(record: STData) {
this.modalService.confirm({
nzTitle: '<i>启用确认</i>',
nzContent: `<b>确定启用此文章吗?</br>`,
nzContent: `<b>确定启用此文章吗?</br>`
// nzOnOk: () =>
// this.service.request('', '').subscribe(res => {
// if (res) {
@ -193,8 +184,5 @@ export class ParterArticleManagementListComponent implements OnInit {
// })
});
}
recommend(record: STData) {
}
recommend(record: STData) {}
}

View File

@ -1,8 +1,7 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STColumn, STComponent, STData, STRequestOptions } from '@delon/abc/st';
import { Router } from '@angular/router';
import { STColumn, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
import { processSingleSort } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { ChannelSalesService } from '../../services/channel-sales.service';
import { ParterChannelSalesEditComponent } from '../edit/edit.component';
@ -24,7 +23,6 @@ export class ParterChannelSalesListComponent implements OnInit {
data = [{ name1: 1111 }]
constructor(
public router: Router,
public ar: ActivatedRoute,
public service: ChannelSalesService,
private modalService: NzModalService
) { }
@ -135,7 +133,13 @@ export class ParterChannelSalesListComponent implements OnInit {
acl: { ability: ['channelSales-frozen'] },
iif: (item) => {return item.stateLocked == false},
click: (_record, _modal, _instance) => this.stop(_record),
}
},
{
text: '启用',
acl: { ability: ['channelSales-open'] },
iif: (item) => {return item.stateLocked == true},
click: (_record, _modal, _instance) => this.open(_record),
},
]
}
];
@ -187,6 +191,24 @@ export class ParterChannelSalesListComponent implements OnInit {
});
}
}
open(record: STData) {
if (record.stateLocked) {
const params = {
id: record.id
}
this.modalService.confirm({
nzTitle: '<i>启用确认</i>',
nzContent: `<b>确定启用该账号吗?</br>`,
nzOnOk: () =>
this.service.request(this.service.$api_activeChannelSales, params).subscribe(res => {
if (res) {
this.service.msgSrv.success('启用成功!');
this.st.reload();
}
})
});
}
}
/**
* 重置表单

View File

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

View File

@ -1,13 +1,8 @@
import { AfterViewInit, ChangeDetectorRef, Component, OnChanges, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { SFComponent, SFRadioWidgetSchema, SFSchema, SFSchemaEnumType, SFSelectWidgetSchema, SFTextareaWidgetSchema, SFUISchema } from '@delon/form';
import { _HttpClient } from '@delon/theme';
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
import { map } from 'rxjs/operators';
import { AmapPoiPickerComponent } from 'src/app/shared/components/amap';
import { Component, OnInit, ViewChild } from '@angular/core';
import { SFComponent, SFSchema, SFTextareaWidgetSchema, SFUISchema } from '@delon/form';
import { NzModalRef } from 'ng-zorro-antd/modal';
import { ClaimAuditService } from '../../services/claim-audit.service';
@Component({
selector: 'app-parter-claim-audit-channel-approve',
templateUrl: './channel-approve.component.html'
@ -19,14 +14,7 @@ export class ParterClaimAuditListChannelApproveComponent implements OnInit {
i: any;
type: any;
constructor(
public http: _HttpClient,
private cdr: ChangeDetectorRef,
private route: ActivatedRoute,
private modalService: NzModalService,
public service: ClaimAuditService,
private modalRef: NzModalRef
) {}
constructor(public service: ClaimAuditService, private modalRef: NzModalRef) {}
ngOnInit(): void {
this.initSF();
@ -43,20 +31,20 @@ export class ParterClaimAuditListChannelApproveComponent implements OnInit {
title: '合伙人(认领人)',
type: 'string',
ui: {
widget: 'text',
} ,
widget: 'text'
}
},
name2: {
title: '认领客户名称',
type: 'string',
ui: {
widget: 'text',
} ,
widget: 'text'
}
},
data: {
title: '结算起算日期',
type: 'string',
format: 'date',
format: 'date'
},
name3: {
type: 'string',
@ -65,9 +53,9 @@ export class ParterClaimAuditListChannelApproveComponent implements OnInit {
ui: {
widget: 'textarea',
autosize: { minRows: 3, maxRows: 6 },
placeholder:'请不要超过50个字'
} as SFTextareaWidgetSchema,
},
placeholder: '请不要超过50个字'
} as SFTextareaWidgetSchema
}
},
required: ['name3']
};
@ -75,7 +63,7 @@ export class ParterClaimAuditListChannelApproveComponent implements OnInit {
'*': {
spanLabelFixed: 120,
grid: { span: 24 }
},
}
};
}
@ -84,7 +72,7 @@ export class ParterClaimAuditListChannelApproveComponent implements OnInit {
}
save() {
this.sf.validator({ emitError: true });
if(!this.sf.valid) return;
if (!this.sf.valid) return;
// this.service.request('', { ...this.sf?.value }).subscribe(res => {
// if (res) {
// this.modalRef.destroy(true);
@ -93,6 +81,4 @@ export class ParterClaimAuditListChannelApproveComponent implements OnInit {
// }
// });
}
}

View File

@ -2,11 +2,7 @@
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STColumn } from '@delon/abc/st';
import { _HttpClient } from '@delon/theme';
import { NzCardComponent } from 'ng-zorro-antd/card';
import { NzMessageService } from 'ng-zorro-antd/message';
import { NzModalService } from 'ng-zorro-antd/modal';
import format from 'date-fns/format';
import { ClaimAuditService } from '../../services/claim-audit.service';
import { ParterClaimAuditListChannelApproveComponent } from '../channel-approve/channel-approve.component';
@ -34,10 +30,8 @@ export class ParterClaimAuditListChannelDetailComponent implements OnInit {
constructor(
private route: ActivatedRoute,
private msgSrv: NzMessageService,
private service: ClaimAuditService,
private modalService: NzModalService,
private router: Router
) {}
ngOnInit(): void {

View File

@ -1,13 +1,8 @@
import { AfterViewInit, ChangeDetectorRef, Component, OnChanges, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { SFComponent, SFRadioWidgetSchema, SFSchema, SFSchemaEnumType, SFSelectWidgetSchema, SFTextareaWidgetSchema, SFUISchema } from '@delon/form';
import { _HttpClient } from '@delon/theme';
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
import { map } from 'rxjs/operators';
import { AmapPoiPickerComponent } from 'src/app/shared/components/amap';
import { Component, OnInit, ViewChild } from '@angular/core';
import { SFComponent, SFSchema, SFTextareaWidgetSchema, SFUISchema } from '@delon/form';
import { NzModalRef } from 'ng-zorro-antd/modal';
import { ClaimAuditService } from '../../services/claim-audit.service';
@Component({
selector: 'app-parter-claim-audit-channel-reject',
templateUrl: './channel-reject.component.html'
@ -19,14 +14,7 @@ export class ParterClaimAuditListChannelRejectComponent implements OnInit {
i: any;
type: any;
constructor(
public http: _HttpClient,
private cdr: ChangeDetectorRef,
private route: ActivatedRoute,
private modalService: NzModalService,
public service: ClaimAuditService,
private modalRef: NzModalRef
) {}
constructor(public service: ClaimAuditService, private modalRef: NzModalRef) {}
ngOnInit(): void {
this.initSF();
@ -43,20 +31,20 @@ export class ParterClaimAuditListChannelRejectComponent implements OnInit {
title: '合伙人(认领人)',
type: 'string',
ui: {
widget: 'text',
} ,
widget: 'text'
}
},
name2: {
title: '认领客户名称',
type: 'string',
ui: {
widget: 'text',
} ,
widget: 'text'
}
},
data: {
title: '结算起算日期',
type: 'string',
format: 'date',
format: 'date'
},
name3: {
type: 'string',
@ -65,9 +53,9 @@ export class ParterClaimAuditListChannelRejectComponent implements OnInit {
ui: {
widget: 'textarea',
autosize: { minRows: 3, maxRows: 6 },
placeholder:'请不要超过50个字'
} as SFTextareaWidgetSchema,
},
placeholder: '请不要超过50个字'
} as SFTextareaWidgetSchema
}
},
required: ['name3']
};
@ -75,7 +63,7 @@ export class ParterClaimAuditListChannelRejectComponent implements OnInit {
'*': {
spanLabelFixed: 120,
grid: { span: 24 }
},
}
};
}
@ -84,7 +72,7 @@ export class ParterClaimAuditListChannelRejectComponent implements OnInit {
}
save() {
this.sf.validator({ emitError: true });
if(!this.sf.valid) return;
if (!this.sf.valid) return;
// this.service.request('', { ...this.sf?.value }).subscribe(res => {
// if (res) {
// this.modalRef.destroy(true);
@ -93,6 +81,4 @@ export class ParterClaimAuditListChannelRejectComponent implements OnInit {
// }
// });
}
}

View File

@ -1,9 +1,7 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STColumn, STComponent, STData, STRequestOptions } from '@delon/abc/st';
import { Router } from '@angular/router';
import { STColumn, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
import { processSingleSort } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { ClaimAuditService } from '../../services/claim-audit.service';
@Component({
@ -22,15 +20,10 @@ export class ParterClaimAuditListComponent implements OnInit {
@ViewChild('sf', { static: false })
sf!: SFComponent;
_$expand = false;
selectedIndex = 0;
selectedIndex = 0;
data=[{name1:1111}]
constructor(
public router: Router,
public ar: ActivatedRoute,
public service: ClaimAuditService,
private modalService: NzModalService
) {}
data = [{ name1: 1111 }];
constructor(public router: Router, public service: ClaimAuditService) {}
/**
* 查询参数
@ -38,19 +31,19 @@ export class ParterClaimAuditListComponent implements OnInit {
get reqParams() {
return { ...this.sf?.value };
}
/**
/**
* 查询字段个数
*/
get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length;
}
/**
* 伸缩查询条件
*/
expandToggle(): void {
this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand);
}
get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length;
}
/**
* 伸缩查询条件
*/
expandToggle(): void {
this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand);
}
ngOnInit() {
this.initSF();
@ -91,7 +84,7 @@ export class ParterClaimAuditListComponent implements OnInit {
_$expand: (value: boolean) => value
}
}
},
}
}
};
this.ui = {
@ -141,12 +134,12 @@ export class ParterClaimAuditListComponent implements OnInit {
buttons: [
{
text: '详情',
click: (_record, _modal, _instance) => this.partnerView(_record),
click: (_record, _modal, _instance) => this.partnerView(_record)
},
{
text: '审核',
click: (_record, _modal, _instance) => this.partnerView(_record),
},
click: (_record, _modal, _instance) => this.partnerView(_record)
}
]
}
];
@ -184,13 +177,12 @@ export class ParterClaimAuditListComponent implements OnInit {
buttons: [
{
text: '详情',
click: (_record, _modal, _instance) => this.channelView(_record),
click: (_record, _modal, _instance) => this.channelView(_record)
},
{
text: '审核',
click: (_record, _modal, _instance) => this.channelView(_record),
},
click: (_record, _modal, _instance) => this.channelView(_record)
}
]
}
];
@ -199,7 +191,7 @@ export class ParterClaimAuditListComponent implements OnInit {
partnerView(record: STData) {
this.router.navigate(['/partner/claim-audit/partner-detail'], { queryParams: {} });
}
channelView(record: STData) {
this.router.navigate(['/partner/claim-audit/channel-detail'], { queryParams: {} });
}
@ -213,8 +205,8 @@ export class ParterClaimAuditListComponent implements OnInit {
// this.st1?.load(1);
}
tabChange(index:any){
console.log(index)
tabChange(index: any) {
console.log(index);
switch (index) {
case 0:
this.initST1();
@ -226,5 +218,4 @@ export class ParterClaimAuditListComponent implements OnInit {
break;
}
}
}

View File

@ -1,13 +1,9 @@
import { AfterViewInit, ChangeDetectorRef, Component, OnChanges, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { SFComponent, SFRadioWidgetSchema, SFSchema, SFSchemaEnumType, SFSelectWidgetSchema, SFTextareaWidgetSchema, SFUISchema } from '@delon/form';
import { Component, OnInit, ViewChild } from '@angular/core';
import { SFComponent, SFSchema, SFTextareaWidgetSchema, SFUISchema } from '@delon/form';
import { _HttpClient } from '@delon/theme';
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
import { map } from 'rxjs/operators';
import { AmapPoiPickerComponent } from 'src/app/shared/components/amap';
import { NzModalRef } from 'ng-zorro-antd/modal';
import { ClaimAuditService } from '../../services/claim-audit.service';
@Component({
selector: 'app-parter-claim-audit-partner-approve',
templateUrl: './partner-approve.component.html'
@ -19,14 +15,7 @@ export class ParterClaimAuditListPartnerApproveComponent implements OnInit {
i: any;
type: any;
constructor(
public http: _HttpClient,
private cdr: ChangeDetectorRef,
private route: ActivatedRoute,
private modalService: NzModalService,
public service: ClaimAuditService,
private modalRef: NzModalRef
) {}
constructor(public service: ClaimAuditService, private modalRef: NzModalRef) {}
ngOnInit(): void {
this.initSF();
@ -43,20 +32,20 @@ export class ParterClaimAuditListPartnerApproveComponent implements OnInit {
title: '合伙人(认领人)',
type: 'string',
ui: {
widget: 'text',
} ,
widget: 'text'
}
},
name2: {
title: '认领客户名称',
type: 'string',
ui: {
widget: 'text',
} ,
widget: 'text'
}
},
data: {
title: '结算起算日期',
type: 'string',
format: 'date',
format: 'date'
},
name3: {
type: 'string',
@ -65,9 +54,9 @@ export class ParterClaimAuditListPartnerApproveComponent implements OnInit {
ui: {
widget: 'textarea',
autosize: { minRows: 3, maxRows: 6 },
placeholder:'请不要超过50个字'
} as SFTextareaWidgetSchema,
},
placeholder: '请不要超过50个字'
} as SFTextareaWidgetSchema
}
},
required: ['name3']
};
@ -75,7 +64,7 @@ export class ParterClaimAuditListPartnerApproveComponent implements OnInit {
'*': {
spanLabelFixed: 120,
grid: { span: 24 }
},
}
};
}
@ -84,7 +73,7 @@ export class ParterClaimAuditListPartnerApproveComponent implements OnInit {
}
save() {
this.sf.validator({ emitError: true });
if(!this.sf.valid) return;
if (!this.sf.valid) return;
// this.service.request('', { ...this.sf?.value }).subscribe(res => {
// if (res) {
// this.modalRef.destroy(true);
@ -93,6 +82,4 @@ export class ParterClaimAuditListPartnerApproveComponent implements OnInit {
// }
// });
}
}

View File

@ -1,15 +1,9 @@
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { ActivatedRoute } from '@angular/router';
import { STColumn } from '@delon/abc/st';
import { _HttpClient } from '@delon/theme';
import { NzCardComponent } from 'ng-zorro-antd/card';
import { NzMessageService } from 'ng-zorro-antd/message';
import { NzModalService } from 'ng-zorro-antd/modal';
import format from 'date-fns/format';
import { ClaimAuditService } from '../../services/claim-audit.service';
import { ParterClaimAuditListPartnerRejectComponent } from '../partner-reject/partner-reject.component';
import { ParterClaimAuditListPartnerApproveComponent } from '../partner-approve/partner-approve.component';
import { ParterClaimAuditListPartnerApproveComponent } from '../partner-approve/partner-approve.component';
@Component({
selector: 'app-parter-claim-audit-partner-detail',
@ -23,21 +17,15 @@ export class ParterClaimAuditListPartnerDetailComponent implements OnInit {
isVisible = false;
columns: STColumn[] = [
{ title: '操作时间', index: 'id', width: 120 },
{ title: '操作人', type: 'img', width: 120, },
{ title: '操作人', type: 'img', width: 120 },
{ title: '操作人手机号', index: 'email', width: 120 },
{ title: '操作页面', index: 'phone' },
{ title: '操作内容', index: 'registered' }
];
data=[{id:11111}]
data = [{ id: 11111 }];
constructor(
private route: ActivatedRoute,
private msgSrv: NzMessageService,
private service: ClaimAuditService,
private modalService: NzModalService,
private router: Router
) {}
constructor(private route: ActivatedRoute, private modalService: NzModalService) {}
ngOnInit(): void {
this.initData();
@ -47,7 +35,7 @@ export class ParterClaimAuditListPartnerDetailComponent implements OnInit {
// this.service.request(this.service.$api_getBulkBillDetail, { id: this.id }).subscribe(res => {
// if (res) {
// this.i = res;
//
//
// }
// });
}
@ -77,6 +65,4 @@ export class ParterClaimAuditListPartnerDetailComponent implements OnInit {
goBack() {
window.history.go(-1);
}
}

View File

@ -1,13 +1,8 @@
import { AfterViewInit, ChangeDetectorRef, Component, OnChanges, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { SFComponent, SFRadioWidgetSchema, SFSchema, SFSchemaEnumType, SFSelectWidgetSchema, SFTextareaWidgetSchema, SFUISchema } from '@delon/form';
import { _HttpClient } from '@delon/theme';
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
import { map } from 'rxjs/operators';
import { AmapPoiPickerComponent } from 'src/app/shared/components/amap';
import { Component, OnInit, ViewChild } from '@angular/core';
import { SFComponent, SFSchema, SFTextareaWidgetSchema, SFUISchema } from '@delon/form';
import { NzModalRef } from 'ng-zorro-antd/modal';
import { ClaimAuditService } from '../../services/claim-audit.service';
@Component({
selector: 'app-parter-claim-audit-partner-reject',
templateUrl: './partner-reject.component.html'
@ -19,14 +14,7 @@ export class ParterClaimAuditListPartnerRejectComponent implements OnInit {
i: any;
type: any;
constructor(
public http: _HttpClient,
private cdr: ChangeDetectorRef,
private route: ActivatedRoute,
private modalService: NzModalService,
public service: ClaimAuditService,
private modalRef: NzModalRef
) {}
constructor(public service: ClaimAuditService, private modalRef: NzModalRef) {}
ngOnInit(): void {
this.initSF();
@ -43,20 +31,20 @@ export class ParterClaimAuditListPartnerRejectComponent implements OnInit {
title: '合伙人(认领人)',
type: 'string',
ui: {
widget: 'text',
} ,
widget: 'text'
}
},
name2: {
title: '认领客户名称',
type: 'string',
ui: {
widget: 'text',
} ,
widget: 'text'
}
},
data: {
title: '结算起算日期',
type: 'string',
format: 'date',
format: 'date'
},
name3: {
type: 'string',
@ -65,9 +53,9 @@ export class ParterClaimAuditListPartnerRejectComponent implements OnInit {
ui: {
widget: 'textarea',
autosize: { minRows: 3, maxRows: 6 },
placeholder:'请不要超过50个字'
} as SFTextareaWidgetSchema,
},
placeholder: '请不要超过50个字'
} as SFTextareaWidgetSchema
}
},
required: ['name3']
};
@ -75,7 +63,7 @@ export class ParterClaimAuditListPartnerRejectComponent implements OnInit {
'*': {
spanLabelFixed: 120,
grid: { span: 24 }
},
}
};
}
@ -84,7 +72,7 @@ export class ParterClaimAuditListPartnerRejectComponent implements OnInit {
}
save() {
this.sf.validator({ emitError: true });
if(!this.sf.valid) return;
if (!this.sf.valid) return;
// this.service.request('', { ...this.sf?.value }).subscribe(res => {
// if (res) {
// this.modalRef.destroy(true);
@ -93,6 +81,4 @@ export class ParterClaimAuditListPartnerRejectComponent implements OnInit {
// }
// });
}
}

View File

@ -12,7 +12,6 @@ import { BannerService } from '../../services/banner.service';
templateUrl: './list.component.html',
styleUrls: ['./list.component.less']
})
export class BannerComponentsListComponent implements OnInit {
schema: SFSchema = {};
columns: STColumn[] = [];
@ -27,7 +26,14 @@ export class BannerComponentsListComponent implements OnInit {
@ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
constructor(public service: BannerService, private modal: ModalHelper, private msg: NzMessageService, private router: Router, private modalSrv: NzModalService, private ar: ActivatedRoute) { }
constructor(
public service: BannerService,
private modal: ModalHelper,
private msg: NzMessageService,
private router: Router,
private modalSrv: NzModalService,
private ar: ActivatedRoute
) {}
/**
* 查询字段个数
@ -51,14 +57,14 @@ export class BannerComponentsListComponent implements OnInit {
if (params.navigationId === '') {
delete params.navigationId;
}
return { ...params};
return { ...params };
}
/**
* 选中行
*/
get selectedRows() {
return this.st?.list.filter((item) => item.checked) || [];
return this.st?.list.filter(item => item.checked) || [];
}
ngOnInit() {
this.initSF();
@ -80,8 +86,8 @@ export class BannerComponentsListComponent implements OnInit {
_$expand: {
type: 'boolean',
ui: {
hidden: true,
},
hidden: true
}
},
name: {
type: 'string',
@ -89,7 +95,7 @@ export class BannerComponentsListComponent implements OnInit {
maxLength: 10,
ui: {
widget: '',
placeholder: '请输入',
placeholder: '请输入'
}
},
status: {
@ -98,21 +104,21 @@ export class BannerComponentsListComponent implements OnInit {
ui: {
widget: 'select',
placeholder: '请选择',
allowClear: true,
allowClear: true
} as SFSelectWidgetSchema,
enum: [
{ label: '全部', value: 1 },
{ label: '正常', value: 2 },
{ label: '禁用', value: 3 }
]
},
},
}
}
};
this.ui = {
'*': {
spanLabelFixed: 110,
grid: { span: 8 },
},
grid: { span: 8 }
}
};
}
@ -138,9 +144,9 @@ export class BannerComponentsListComponent implements OnInit {
index: 'style',
className: 'text-center',
type: 'enum',
enum: {
enum: {
1: '正常',
2: '禁用',
2: '禁用'
}
},
{
@ -157,7 +163,7 @@ export class BannerComponentsListComponent implements OnInit {
{
text: '修改',
acl: { ability: ['banner-change'] },
click: (item) => {
click: item => {
this.router.navigate(['../detail'], { queryParams: { id: item.id, type: 'edit' }, relativeTo: this.ar });
}
},
@ -167,12 +173,12 @@ export class BannerComponentsListComponent implements OnInit {
pop: {
title: `确定禁用此banner图吗`,
okType: 'danger',
icon: 'alert',
icon: 'alert'
},
click: (item) => {
click: item => {
this.changeStatus(item.id);
},
iif: (item) => item.status === 1
iif: item => item.status === 1
},
{
text: '启用',
@ -180,15 +186,15 @@ export class BannerComponentsListComponent implements OnInit {
pop: {
title: `确定启用此banner图吗`,
okType: 'danger',
icon: 'success',
icon: 'success'
},
click: (item) => {
click: item => {
this.changeStatus(item);
},
iif: (item) => item.status === 2
},
],
},
iif: item => item.status === 2
}
]
}
];
}
changeStatus(item: any) {
@ -216,7 +222,7 @@ export class BannerComponentsListComponent implements OnInit {
resetSF() {
this.sf.reset();
this._$expand = false;
this.isLoading = true
this.isLoading = true;
}
/**

View File

@ -1,10 +1,17 @@
import { AfterViewInit, ChangeDetectorRef, Component, OnChanges, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { SFComponent, SFRadioWidgetSchema, SFSchema, SFSchemaEnumType, SFSelectWidgetSchema, SFTextareaWidgetSchema, SFUISchema } from '@delon/form';
/*
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-28 20:27:22
* @LastEditors : Shiming
* @LastEditTime : 2022-05-07 18:04:15
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\level-config\\components\\edit\\edit.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
import { Component, OnInit, ViewChild } from '@angular/core';
import { SFComponent, SFSchema, SFTextareaWidgetSchema, SFUISchema } from '@delon/form';
import { _HttpClient } from '@delon/theme';
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
import { map } from 'rxjs/operators';
import { AmapPoiPickerComponent } from 'src/app/shared/components/amap';
import { NzModalRef } from 'ng-zorro-antd/modal';
import { ChannelSalesService } from '../../services/level-config.service';
@Component({
@ -19,10 +26,6 @@ export class ParterLevelConfigEditComponent implements OnInit {
type: any;
constructor(
public http: _HttpClient,
private cdr: ChangeDetectorRef,
private route: ActivatedRoute,
private modalService: NzModalService,
public service: ChannelSalesService,
private modalRef: NzModalRef
) {}
@ -41,10 +44,17 @@ export class ParterLevelConfigEditComponent implements OnInit {
gradeName: {
title: '等级名称',
type: 'string',
maxLength: 12
},
sortId: {
title: '排序',
type: 'string',
minimum: 0,
type:"number",
ui: {
change: (item: any) => {
this.sf.setValue('/sortId', item?.toFixed(0))
}
}
},
remark: {
type: 'string',

View File

@ -1,8 +1,6 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STColumn, STComponent, STData, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
import { processSingleSort } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { ChannelSalesService } from '../../services/level-config.service';
import { ParterLevelConfigEditComponent } from '../edit/edit.component';
@ -23,8 +21,6 @@ export class ParterLevelConfigListComponent implements OnInit {
data = [{ name1: 1111 }];
constructor(
public router: Router,
public ar: ActivatedRoute,
public service: ChannelSalesService,
private modalService: NzModalService
) {}

View File

@ -1,5 +1,4 @@
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { STColumn } from '@delon/abc/st';
import { PartnerListService } from '../../services/partner-list.service';
@ -10,7 +9,7 @@ import { PartnerListService } from '../../services/partner-list.service';
export class ChannelLogModalComponent implements OnInit {
columns: { changeColumn: STColumn[]; beChangeColumn: STColumn[] } = this.initST();
id = '';
constructor(public service: PartnerListService, public route: ActivatedRoute) {}
constructor(public service: PartnerListService) {}
ngOnInit(): void {}

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-04-29 17:28:23
* @LastEditors : Shiming
* @LastEditTime : 2022-05-06 14:20:04
* @LastEditTime : 2022-05-10 11:39:19
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\partner-list\\components\\index\\partner-list.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -13,11 +13,15 @@
<nz-card class="search-box" nzBordered>
<div nz-row nzGutter="8">
<div nz-col [nzXl]="_$expand ? 24 : 17" [nzLg]="24" [nzSm]="24" [nzXs]="24">
<sf #sf [schema]="searchSchema" [ui]="{ '*': { spanLabelFixed: 110, grid: { lg: 8, md: 12, sm: 12, xs: 24 } } }"
[compact]="true" [button]="'none'"></sf>
<sf
#sf
[schema]="searchSchema"
[ui]="{ '*': { spanLabelFixed: 110, grid: { lg: 8, md: 12, sm: 12, xs: 24 } } }"
[compact]="true"
[button]="'none'"
></sf>
</div>
<div nz-col [nzXl]="_$expand ? 24 : 7" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right"
[class.expend-options]="_$expand">
<div nz-col [nzXl]="_$expand ? 24 : 7" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right" [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 nzType="link" (click)="expandToggle()">
@ -30,20 +34,48 @@
<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" acl [acl-ability]="['ENTERPRISE-saveEnterprise']">新增企业合伙人</button>
<button nz-button (click)="this.routeTo('/partner/partner-list/add-personal-partner')"
nzType="primary" acl [acl-ability]="['ENTERPRISE-savePersonally']">新增个人合伙人</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"
acl
[acl-ability]="['ENTERPRISE-savePersonally']"
>新增个人合伙人</button
>
</div>
<st #st [data]="service.$api_get_partner_page" [columns]="columns" [req]="{ process: beforeReq }"
[loading]="service.http.loading" [scroll]="{ x: '1200px' }" [page]="{}">
<st
#st
[data]="service.$api_get_partner_page"
[columns]="columns"
[req]="{ process: beforeReq }"
[loading]="service.http.loading"
[scroll]="{ x: '1200px' }"
[page]="{}"
>
<ng-template st-row="enterpriseName" let-item let-index="index">
<div>
{{item.partnerType ? item.enterpriseName || item.contactName : ''}}
</div>
<div *ngIf="item.partnerType == 1">
管理员: {{item.contactName }}
</div>
</ng-template>
</st>
</nz-card>
<ng-template #editTemplate>
<div nz-row nzGutter="8">
<div nz-col nzSpan="24" se-container [labelWidth]="120">
<se [col]="1" label="合伙人名称"> {{selectItem?.enterpriseName || selectItem?.contactName}} </se>
<se [col]="1" label="合伙人名称"> {{ selectItem?.enterpriseName || selectItem?.contactName }} </se>
<se [col]="1" label="返佣模板" required>
<nz-select [(ngModel)]="templateId" style="width: 100%">
<nz-option [nzValue]="item.value" [nzLabel]="item.label" *ngFor="let item of customers"></nz-option>
@ -57,32 +89,52 @@
<ng-template #editCannel>
<div nz-row nzGutter="8">
<div nz-col nzSpan="24" se-container [labelWidth]="140" [col]="1">
<se label="合伙人名称"> {{selectItem?.enterpriseName || selectItem?.contactName}} </se>
<se label="当前渠道销售"> {{selectItem?.channelIdLabel}} </se>
<se label="合伙人名称"> {{ selectItem?.enterpriseName || selectItem?.contactName }} </se>
<se label="当前渠道销售"> {{ selectItem?.channelIdLabel }} </se>
<se label="渠道销售修改为" required>
<nz-select [(ngModel)]="cannelItem.channelId" style="width: 100%">
<nz-option [nzValue]="item.value" [nzLabel]="item.label" *ngFor="let item of cannels"></nz-option>
</nz-select>
<nz-select
nzMode="multiple"
nzPlaceHolder="请搜索"
nzAllowClear
nzShowSearch
nzServerSearch
[(ngModel)]="cannelItem.channelId"
(nzOnSearch)="onSearch($event)"
>
<ng-container *ngFor="let item of cannels">
<nz-option [nzValue]="item.value" [nzLabel]="item.label"></nz-option>
</ng-container>
</nz-select>
</se>
<se label="备注" required>
<textarea rows="3" nz-input [(ngModel)]="cannelItem.remark"></textarea>
</se>
<se label="一并转移的客户">
<p style="margin-top: 8px">已选({{selectedRows?.length}}</p>
<st #rest [data]="service.$api_get_enterprice_rel_list" [columns]="[
{ title: '', index: 'key', type: 'checkbox' },
{ title: '客户名称', index: 'enterpriceName' }
]" [req]="{ process: beforeReq,params:{effectiveStatus:2 ,newPartnerId:selectItem.id} }"
[loading]="service.http.loading" [page]="{show:false}" (change)="stChange($event)">
<p style="margin-top: 8px">已选({{ selectedRows?.length }}</p>
<st
#rest
[data]="service.$api_get_enterprice_rel_list"
[columns]="[
{ title: '', index: 'key', type: 'checkbox' },
{ title: '客户名称', index: 'enterpriseName' }
]"
[res]="{ reName: { list: 'data', total: 'data.total' } }"
[req]="{ process: beforeReq, params: { effectiveStatus: 2, newPartnerId: selectItem.id } }"
[loading]="service.http.loading"
[page]="{ show: false }"
(change)="stChange($event)"
>
</st>
</se>
<se label="生效节点" required>
<nz-radio-group [(ngModel)]="cannelItem.effectiveNode">
<label nz-radio [nzValue]="1">修改成功后立即生效</label>
<label nz-radio [nzValue]="2">CRM流程审核通过后生</label>
<!-- <label nz-radio [nzValue]="2">CRM流程审核通过后生效</label> -->
</nz-radio-group>
</se>
</div>
</div>
<p class="text-center mt-md">客户转移客户跟着上级合伙人转移一并到新渠道销售下会同步发起CRM《客户转移》流程不转移的客户会与上级合伙人解绑成为渠道销售的直客</p>
</ng-template>
<p class="text-center mt-md"
>客户转移客户跟着上级合伙人转移一并到新渠道销售下会同步发起CRM《客户转移》流程不转移的客户会与上级合伙人解绑成为渠道销售的直客</p
>
</ng-template>

View File

@ -4,13 +4,12 @@ import { Router } from '@angular/router';
import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema, SFAutoCompleteWidgetSchema, SFSelectWidgetSchema } from '@delon/form';
import { NzModalService } from 'ng-zorro-antd/modal';
import { of } from 'rxjs';
import { BehaviorSubject, Observable, of } from 'rxjs';
import { AddCollectionInvoiceModalComponent } from 'src/app/routes/ticket-management/components/input-invoice/add-collection-invoice-modal/add-collection-invoice-modal.component';
import { PartnerListService } from '../../services/partner-list.service';
import { PartnerAuditModalComponent } from '../partner-audit-modal/partner-audit-modal.component';
import { map } from 'rxjs/operators';
import { catchError, debounceTime, map, switchMap } from 'rxjs/operators';
@Component({
selector: 'app-partner-list',
templateUrl: './partner-list.component.html',
@ -24,7 +23,7 @@ export class PartnerListComponent {
columns: STColumn[] = this.initST();
searchSchema: SFSchema = this.initSF();
_$expand = false;
isLoading: boolean = false;
@ViewChild('editTemplate', { static: true })
editTemplate: any;
templateId: any;
@ -36,13 +35,14 @@ export class PartnerListComponent {
cannels: any[] = [];
selectedRows: any[] = [];
cannelItem: any = { channelId: null, effectiveNode: 1, enterpriseIdList: [], remark: '' };
searchChange$ = new BehaviorSubject('');
selectItem: any = {};
constructor(public service: PartnerListService, private nzModalService: NzModalService, private router: Router) {
this.loadSelectOptions();
}
ngOnInit(): void {
}
beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) {
let params = { ...this.sf?.value };
@ -55,18 +55,13 @@ export class PartnerListComponent {
};
loadSelectOptions() {
this.service.getRebateConfig({stateLocked: 1}).subscribe(res => {
this.service.getRebateConfig({ stateLocked: 1 }).subscribe(res => {
if (res) {
console.log(res);
this.customers = res;
}
});
this.service.getChannel().subscribe(res => {
if (res) {
this.cannels = res;
}
});
}
auditPartner(item: any) {
@ -162,7 +157,7 @@ export class PartnerListComponent {
const modal = this.nzModalService.confirm({
nzTitle: '确定提交吗?',
nzOnOk: () => {
this.cannelItem.enterpriseIdList = this.selectedRows.map(row => row.id);
this.cannelItem.enterpriseIdList = this.selectedRows.map(row => row.enterpriseId);
this.service
.request(this.service.$api_update_partner_channel_by_id, {
...this.cannelItem,
@ -236,10 +231,6 @@ export class PartnerListComponent {
type: 'string',
title: '合伙人名称'
},
contactName: {
type: 'string',
title: '企业管理员'
},
contactMobile: {
type: 'string',
title: '手机号'
@ -252,9 +243,6 @@ export class PartnerListComponent {
searchDebounceTime: 300,
searchLoadingText: '搜索中...',
allowClear: true,
visibleIf: {
expand: (value: boolean) => value
},
onSearch: (q: any) => {
let str = q.replace(/^\s+|\s+$/g, '');
if (str) {
@ -326,7 +314,7 @@ export class PartnerListComponent {
{ value: '', label: '全部' },
{ value: '0', label: '未同步' },
{ value: 10, label: '同步失败' },
{ value: 20, label: '同步成功' },
{ value: 20, label: '同步成功' }
],
ui: {
widget: 'select',
@ -360,21 +348,21 @@ export class PartnerListComponent {
widget: 'select',
placeholder: '请选择',
asyncData: () =>
this.service.request(this.service.$api_get_rebate_config, {}, 'POST').pipe(
map(data => {
if(data) {
return data.map((m: any) => {
return { label: m.configName, value: m.id };
});
} else {
return [];
}
})
),
this.service.request(this.service.$api_get_rebate_config, {}, 'POST').pipe(
map(data => {
if (data) {
return data.map((m: any) => {
return { label: m.configName, value: m.id };
});
} else {
return [];
}
})
),
visibleIf: {
expand: (value: boolean) => value
} } as SFDateWidgetSchema
}
} as SFDateWidgetSchema
},
lockedStatus: {
type: 'string',
@ -412,13 +400,11 @@ export class PartnerListComponent {
return [
{
title: '合伙人名称',
index: 'enterpriseName',
width: 180,
format: item => (item.partnerType ? `${item.enterpriseName || item.contactName}` : '')
render: 'enterpriseName',
width: 180
},
{ title: '付款编码', index: 'payCode', width: 160 },
{ title: '邀请码', index: 'invitationCode', className: 'text-center', width: 130 },
{ title: '企业管理员', index: 'contactName', width: 150, format: item => (item.partnerType ? `${item.contactName}` : '') },
{ title: '手机号', index: 'contactMobile', className: 'text-center', width: 150 },
{ title: '类型', index: 'partnerType', className: 'text-center', width: 130, type: 'enum', enum: { 1: '企业', 2: '个人' } },
{ title: '注册渠道', index: 'source', type: 'enum', enum: { 1: '合伙人注册', 2: '平台添加' }, width: 130 },
@ -518,4 +504,34 @@ export class PartnerListComponent {
}
];
}
onSearch(value: string): void {
this.isLoading = true;
let params: any = {};
if (value) {
console.log(+value);
// 数字
if (+value) {
params.phoneNumber = value;
} else {
// 中文
params.name = value;
}
this.service.request(this.service.$api_get_channel, params).subscribe(res => {
let NewList: { label: string; value: any; }[] = [];
let List = res.filter((i: any) => {
NewList.push({ label: `${i.name}/${i.telephone}`, value: i.id }) ;
});
this.cannels = NewList
});
this.searchChange$.next(value);
} else if(value === '') {
this.service.request(this.service.$api_get_channel, {name: '清空数X'}).subscribe(res => {
let NewList: { label: string; value: any; }[] = [];
let List = res.filter((i: any) => {
NewList.push({ label: `${i.name}/${i.telephone}`, value: i.id }) ;
});
this.cannels = NewList
});
}
}
}

View File

@ -1,7 +1,8 @@
import { Component, Input, OnInit, ViewChild } from '@angular/core';
import { SFComponent, SFSchema, SFValue } from '@delon/form';
import { SFComponent, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFValue } from '@delon/form';
import { ModalHelper } from '@delon/theme';
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
import { of } from 'rxjs';
import { map } from 'rxjs/operators';
import { PartnerListService } from '../../services/partner-list.service';
@ -24,7 +25,6 @@ export class PartnerAuditModalComponent implements OnInit {
console.log(this.info);
this.initSF(this.info);
// asyncData: () => this.service.getChannel(),
if(this.info.channelId) {
const value = [{
label: this.info.channelIdLabel,
@ -38,25 +38,26 @@ export class PartnerAuditModalComponent implements OnInit {
}
})
} else {
console.log()
this.service.getChannel().pipe(map(data => {
console.log(data);
}
// else {
// console.log()
// this.service.getChannel().pipe(map(data => {
// console.log(data);
}))
this.service.getChannel().subscribe((res) => {
console.log(res);
const value :any= res;
setTimeout(() => {
if(this.sf) {
this.sf.getProperty('/channelId')!.schema.enum = value;
this.sf.getProperty('/channelId')!.widget.reset(value);
this.sf.setValue('/channelId', value);
}
})
})
// }))
// this.service.getChannel().subscribe((res) => {
// console.log(res);
// const value :any= res;
// setTimeout(() => {
// if(this.sf) {
// this.sf.getProperty('/channelId2')!.schema.enum = value;
// this.sf.getProperty('/channelId2')!.widget.reset(value);
// this.sf.setValue('/channelId2', value);
// }
// })
// })
}
// }
}
initSF(user: any) {
@ -90,21 +91,36 @@ export class PartnerAuditModalComponent implements OnInit {
default: this.info.isPass !== undefined ? this.info.isPass : true
},
channelId: {
title: '渠道销售',
type: 'string',
title: '渠道销售',
ui: {
widget: 'select',
placeholder: '请选择',
allowClear: true,
hidden: this.info.isPass === false,
visibleIf: {
status: value => value
serverSearch: true,
searchDebounceTime: 300,
searchLoadingText: '搜索中...',
allowClear: true,
onSearch: (q: any) => {
let str = q.replace(/^\s+|\s+$/g, '');
let params :any= {}
if (str) {
console.log(+str);
if(+str) {
console.log('数字');
params.phoneNumber = str
} else {
console.log('中文');
params.name = str
}
return this.service
.request(this.service.$api_get_channel, params)
.pipe(map((res: any) => (res as any[]).map(i => ({ label: `${i.name}/${i.telephone}`, value: i.id } as SFSchemaEnum))))
.toPromise();
} else {
return of([]);
}
},
errors: {
required: ' '
}
},
default: user.channelId
} as SFSelectWidgetSchema
},
approvalOpinion: {
title: '备注',
@ -124,10 +140,8 @@ export class PartnerAuditModalComponent implements OnInit {
}
}
},
required: ['channelId', 'approvalOpinion']
required: [ 'approvalOpinion','channelId']
};
console.log('666');
}
sure() {

View File

@ -1,9 +1,7 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STColumn, STComponent, STData, STRequestOptions } from '@delon/abc/st';
import { STColumn, STComponent } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
import { processSingleSort, ShipperBaseService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { ShipperBaseService } from '@shared';
import { RebateManagementService } from '../../services/rebate-management.service';
@Component({
@ -27,10 +25,7 @@ export class ParterRebateManageMentParticularsComponent implements OnInit {
resourceStatus: any;
data = this.service.$api_get_searchPageList;
constructor(
public router: Router,
public ar: ActivatedRoute,
public service: RebateManagementService,
private modalService: NzModalService,
public shipperservice: ShipperBaseService
) {}
/**

View File

@ -1,6 +1,4 @@
import { ModalHelper } from '@delon/theme';
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STColumn, STComponent, STData, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
import { processSingleSort, ShipperBaseService } from '@shared';
@ -25,8 +23,6 @@ export class ParterRebateManageMentRecordComponent implements OnInit {
_$expand = false;
data = [{ name1: 1111 }];
constructor(
public router: Router,
public ar: ActivatedRoute,
public service: RebateManagementService,
private modal: NzModalService,
public shipperservice: ShipperBaseService,

View File

@ -54,12 +54,24 @@ export class ParterRebateManageMentAddPartnerListComponent implements OnInit {
buttons: [
{
text: '添加',
iifBehavior: 'disabled',
iif: (item:any) => {
return this.filterArr(item)
},
click: _record => this.add(_record),
}
]
}
];
filterArr (item: { id: any; }) {
let real = true
this.i.forEach((element:any) => {
if(element.id == item.id) {
real = false
}
});
return real
}
get reqParams() {
// signStatus固定传20 代表签约完成 signStatus: 20
let params: any = { ...this.sf?.value, };
@ -78,6 +90,8 @@ export class ParterRebateManageMentAddPartnerListComponent implements OnInit {
) {}
ngOnInit(): void {
console.log(this.i);
this.initSF();
}
initSF() {

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-02-24 20:09:49
* @LastEditors : Shiming
* @LastEditTime : 2022-05-05 17:04:31
* @LastEditTime : 2022-05-07 15:42:10
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add\\add.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -58,7 +58,7 @@
<nz-option nzValue="2" nzLabel="新注册合伙人"></nz-option>
<nz-option nzValue="3" nzLabel="自定义合伙人"></nz-option>
</nz-select>
<span *ngIf="addStatus" style="padding-left: 15px; color: #0000ff" (click)="add()">添加</span>
<span *ngIf="addStatus" style="padding-left: 15px; color: #0000ff" (click)="add(this.partnerPeopleList)">添加</span>
<st
*ngIf="partnerPeopleList?.length > 0"
#st

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-03-21 09:26:45
* @LastEditors : Shiming
* @LastEditTime : 2022-05-05 14:04:53
* @LastEditTime : 2022-05-07 15:38:49
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add\\add.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
@ -127,59 +127,70 @@ export class ParterRebateManageMentAddComponent implements OnInit {
if (res) {
if (Array.isArray(res)) {
this.partnerPeopleList = this.partnerPeopleList.concat(res);
this.partnerPeopleList = [...this.setArr(this.partnerPeopleList, 'id')];
res.forEach((ele: any) => {
this.partnerId.push(ele?.id);
});
} else {
this.partnerPeopleList = this.partnerPeopleList.concat(res);
this.partnerPeopleList = [...this.setArr(this.partnerPeopleList, 'id')];
this.partnerId.push(res?.id);
}
}
});
}
// 数组去重
setArr(arr: any[], id: string) {
let obj: any = {};
const arrays = arr.reduce((setArr, item) => {
obj[item[id]] ? '' : (obj[item[id]] = true && setArr.push(item));
return setArr;
}, []);
return arrays;
}
delete(item: any) {
this.partnerPeopleList = this.partnerPeopleList.filter((d: any, i: any) => {
return item.id != d.id;
});
}
save() {
if(!this.configName) {
if (!this.configName) {
this.service.msgSrv.warning('请输入配置名称!');
return
return;
}
if(!this.accountingRate) {
if (!this.accountingRate) {
this.service.msgSrv.warning('请输入固定结算费率!');
return
return;
}
if(!this.partnerType) {
if (!this.partnerType) {
this.service.msgSrv.warning('请选择合伙人范围!');
return
return;
}
if(!this.priority) {
if (!this.priority) {
this.service.msgSrv.warning('请选择优先级!');
return
return;
}
if(!this.sf?.value.ruleDescription) {
if (!this.sf?.value.ruleDescription) {
this.service.msgSrv.warning('请输入规则说明!');
return
return;
}
if(!this.remark) {
if (!this.remark) {
this.service.msgSrv.warning('请输入备注!');
return
return;
}
if(this.partnerType == '3' && this.partnerPeopleList?.length == 0) {
if (this.partnerType == '3' && this.partnerPeopleList?.length == 0) {
this.service.msgSrv.warning('请选择合伙人!');
return
return;
}
let real = false;
if(this.configType == '2') {
this.table.data.forEach((element: any) => {
if (element.startAmount > element.endAmount) {
real = true;
return;
}
});
}
if (this.configType == '2') {
this.table.data.forEach((element: any) => {
if (element.startAmount > element.endAmount) {
real = true;
return;
}
});
}
if (real) {
this.service.msgSrv.warning('初始业务量不能超过到达业务量!');
return;
@ -197,7 +208,7 @@ export class ParterRebateManageMentAddComponent implements OnInit {
partnerType: this.partnerType
};
console.log(params);
this.service.request(this.service.$api_save_rebateConfig, params).subscribe((res: any) => {
if (res) {
this.service.msgSrv.success('新增成功!');

View File

@ -1,12 +1,10 @@
import { ModalHelper } from '@delon/theme';
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STColumn, STComponent, STData, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
import { processSingleSort, ShipperBaseService } from '@shared';
import { Router } from '@angular/router';
import { STColumn, STComponent } from '@delon/abc/st';
import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
import { ShipperBaseService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { RebateManagementService } from '../../services/rebate-management.service';
import { ParterRebateManageMenRecordDetailComponent } from '../../model/record-detail/record-detail.component';
import { ParterRebateManageMenAbnormalFeedbackComponent } from '../../model/abnormal-feedback/abnormal-feedback.component';
@Component({
@ -25,19 +23,18 @@ export class ParterRebateManageMentSettingComponent implements OnInit {
_$expand = false;
constructor(
public router: Router,
public ar: ActivatedRoute,
public service: RebateManagementService,
private modal: NzModalService,
public shipperservice: ShipperBaseService,
public shipperservice: ShipperBaseService
) {}
/**
* 查询参数
*/
get reqParams() {
* 查询参数
*/
get reqParams() {
const params: any = Object.assign({}, this.sf?.value || {});
return {
...params,
};
return {
...params
};
}
ngOnInit() {
this.initSF();
@ -49,21 +46,20 @@ export class ParterRebateManageMentSettingComponent implements OnInit {
properties: {
configName: {
type: 'string',
title: '模板名称',
title: '模板名称'
},
stateLocked: {
type: 'string',
title: '状态',
enum: [
{label: '全部', value: ''},
{label: '生效中', value: 1},
{label: '失效', value: 0},
{ label: '全部', value: '' },
{ label: '生效中', value: 1 },
{ label: '失效', value: 0 }
],
ui: {
widget: 'select',
},
},
widget: 'select'
}
}
}
};
this.ui = {
@ -79,43 +75,42 @@ export class ParterRebateManageMentSettingComponent implements OnInit {
{
title: '模板名称',
index: 'configName',
width: '200px',
width: '200px'
},
{
title: '等级类型',
render: 'configType',
width: '200px',
width: '200px'
},
{
title: '备注',
index: 'remark',
width: '250px',
width: '250px'
},
{
title: '合伙人范围',
render: 'partnerType',
width: '200px',
width: '200px'
},
{
title: '创建时间',
index: 'enableTime',
width: '200px',
width: '200px'
},
{
title: '生效时间',
index: 'enableTime',
width: '200px',
width: '200px'
},
{
title: '优先级',
index: 'priority',
width: '100px',
width: '100px'
},
{
title: '状态',
render: 'stateLocked',
width: '100px',
width: '100px'
},
{
title: '操作',
@ -126,20 +121,24 @@ export class ParterRebateManageMentSettingComponent implements OnInit {
{
text: '查看',
acl: { ability: ['REBATE-SETTING-detail'] },
click: _record => this.configAction(_record),
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),
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),
},
iif: _record => {
return _record.stateLocked == false;
},
click: _record => this.viewEvaluate(_record)
}
]
}
];
@ -147,52 +146,52 @@ export class ParterRebateManageMentSettingComponent implements OnInit {
/**
*禁用
*/
viewEvaluate(item: any) {
console.log(item.stateLocked);
let title = ''
let stateLocked: boolean;
if(item.stateLocked) {
title = '是否禁用该配置?'
stateLocked = false
} else {
title = '是否启用该配置?'
stateLocked = true
}
viewEvaluate(item: any) {
console.log(item.stateLocked);
let title = '';
let stateLocked: boolean;
if (item.stateLocked) {
title = '是否禁用该配置?';
stateLocked = false;
} else {
title = '是否启用该配置?';
stateLocked = true;
}
this.modal.confirm({
nzTitle: title,
nzOnOk: () => {
const params = {
id: item?.id,
stateLocked: stateLocked,
}
this.service.request(this.service.$api_set_updateRebateConfig,params).subscribe((res: any) => {
if(res) {
this.service.msgSrv.success('设置成功!')
this.st.reload();
}
})
stateLocked: stateLocked
};
this.service.request(this.service.$api_set_updateRebateConfig, params).subscribe((res: any) => {
if (res) {
this.service.msgSrv.success('设置成功!');
this.st.reload();
}
});
}
});
}
/**
*查看
*/
feedback(item?: any) {
const modal = this.modal.create({
nzTitle: '查看',
nzWidth: 580,
nzContent: ParterRebateManageMenAbnormalFeedbackComponent,
nzComponentParams: { i: item },
nzFooter: null
});
modal.afterClose.subscribe((res: any) => {
if (res) {
}
});
feedback(item?: any) {
const modal = this.modal.create({
nzTitle: '查看',
nzWidth: 580,
nzContent: ParterRebateManageMenAbnormalFeedbackComponent,
nzComponentParams: { i: item },
nzFooter: null
});
modal.afterClose.subscribe((res: any) => {
if (res) {
}
});
}
configAction(value?: any) {
this.router.navigate(['/partner/rebate/setting/add/', '0'], {queryParams: value})
}
this.router.navigate(['/partner/rebate/setting/add/', '0'], { queryParams: value });
}
/**
* 重置表单
*/

View File

@ -1,5 +1,5 @@
/*
* @Description :
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-03-10 14:50:45
@ -8,15 +8,11 @@
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\model\\abnormal-feedback\\abnormal-feedback.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
import { ModalHelper } from '@delon/theme';
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STColumn, STComponent, STData, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFSelectWidgetSchema, SFTextareaWidgetSchema, SFUISchema } from '@delon/form';
import { processSingleSort, ShipperBaseService } from '@shared';
import { NzModalService, NzModalRef } from 'ng-zorro-antd/modal';
import { SFComponent, SFSchema, SFTextareaWidgetSchema, SFUISchema } from '@delon/form';
import { ShipperBaseService } from '@shared';
import { NzModalRef } from 'ng-zorro-antd/modal';
import { RebateManagementService } from '../../services/rebate-management.service';
import { NzButtonSize } from 'ng-zorro-antd/button';
@Component({
selector: 'app-parter-channel-rebate-management-abnormal-feedback',
@ -29,15 +25,7 @@ export class ParterRebateManageMenAbnormalFeedbackComponent implements OnInit {
sf!: SFComponent;
i!: any;
data = [{ name1: 1111 }];
constructor(
public router: Router,
public ar: ActivatedRoute,
public service: RebateManagementService,
private modalService: NzModalService,
public shipperservice: ShipperBaseService,
public modalRef: NzModalRef,
) {}
constructor(public service: RebateManagementService, public shipperservice: ShipperBaseService, public modalRef: NzModalRef) {}
ngOnInit() {
this.initSF();
@ -53,20 +41,19 @@ export class ParterRebateManageMenAbnormalFeedbackComponent implements OnInit {
ui: {
widget: 'textarea',
autosize: { minRows: 3, maxRows: 6 },
placeholder:'请不要超过50个字'
} as SFTextareaWidgetSchema,
},
placeholder: '请不要超过50个字'
} as SFTextareaWidgetSchema
}
}
};
this.ui = {
'*': {
spanLabelFixed: 60,
grid: { span: 16 },
grid: { span: 16 }
}
};
}
close() {
this.modalRef.destroy()
this.modalRef.destroy();
}
}

View File

@ -1,10 +1,8 @@
import { ModalHelper } from '@delon/theme';
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STColumn, STComponent, STData, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
import { processSingleSort, ShipperBaseService } from '@shared';
import { NzModalService, NzModalRef } from 'ng-zorro-antd/modal';
import { STColumn, STComponent } from '@delon/abc/st';
import { SFComponent, SFSchema, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
import { ShipperBaseService } from '@shared';
import { NzModalRef } from 'ng-zorro-antd/modal';
import { RebateManagementService } from '../../services/rebate-management.service';
import { NzButtonSize } from 'ng-zorro-antd/button';
@ -24,36 +22,29 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
size: NzButtonSize = 'large';
_$expand = false;
data = [{ name1: 1111 }];
constructor(
public router: Router,
public ar: ActivatedRoute,
public service: RebateManagementService,
private modalService: NzModalService,
public shipperservice: ShipperBaseService,
public modalRef: NzModalRef,
) {}
constructor(public service: RebateManagementService, public shipperservice: ShipperBaseService, public modalRef: NzModalRef) {}
/**
* 查询字段个数
*/
get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length;
}
/**
* 伸缩查询条件
*/
expandToggle(): void {
this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand);
}
/**
* 查询参数
*/
get reqParams() {
* 伸缩查询条件
*/
expandToggle(): void {
this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand);
}
/**
* 查询参数
*/
get reqParams() {
const params: any = Object.assign({}, this.sf?.value || {});
delete params._$expand;
return {
...params,
};
return {
...params
};
}
ngOnInit() {
this.initSF();
@ -72,8 +63,8 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
allowClear: true,
asyncData: () => this.shipperservice.getNetworkFreightForwarder(),
change: (value: any) => {
console.log(value)
this.st.reload()
console.log(value);
this.st.reload();
}
}
},
@ -85,11 +76,11 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
params: { dictKey: 'overall:payment:status' },
containsAllLabel: true,
change: (value: any) => {
console.log(value)
this.st.reload()
console.log(value);
this.st.reload();
}
} as SFSelectWidgetSchema
},
}
}
};
this.ui = {
@ -165,7 +156,6 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
this.st.load(1);
}
close() {
this.modalRef.destroy()
this.modalRef.destroy();
}
}

View File

@ -1,7 +1,6 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { NzModalService } from 'ng-zorro-antd/modal';
import { FreightAccountService } from 'src/app/routes/financial-management/services/freight-account.service';
import { RecordedService } from '../../services/recorded.service';

View File

@ -1,5 +1,4 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { cacheConf } from '@conf/cache.conf';
import { STColumn, STComponent, STChange, STData } from '@delon/abc/st';
import { SFUISchema, SFSchema, SFComponent } from '@delon/form';
@ -28,7 +27,7 @@ export class CarAddmodalComponent implements OnInit {
constructor(
private modal: NzModalRef,
private eaCacheSrv: EACacheService,
public service: SupplyManagementService, private router: Router, private ar: ActivatedRoute,
public service: SupplyManagementService,
private modalHelper: ModalHelper
) { }

View File

@ -39,7 +39,7 @@
name="loadName{{ idx }}" maxlength="30" placeholder="请输入联系人姓名" />
</nz-form-control>
<nz-form-control [nzSpan]="12" [nzErrorTip]="'请输入联系人电话'">
<input nz-input [(ngModel)]="data1.contractTelephone" maxlength="11"
<input nz-input [(ngModel)]="data1.contractTelephone" maxlength="11" (ngModelChange)="onChangePhone(data1.contractTelephone)"
formControlName="loadPhone{{ idx }}" name="loadPhone{{ idx }}" placeholder="请输入联系人电话" />
</nz-form-control>
</div>
@ -74,7 +74,7 @@
name="unloadAddress{{ idx }}" placeholder="请输入联系人姓名" />
</nz-form-control>
<nz-form-control [nzSpan]="12" [nzErrorTip]="'请输入联系人电话'">
<input nz-input [(ngModel)]="data2.contractTelephone"
<input nz-input [(ngModel)]="data2.contractTelephone" (ngModelChange)="onChangePhone(data2.contractTelephone)"
formControlName="unloadPhone{{ idx }}" name="unloadAddress{{ idx }}" maxlength="11"
placeholder="请输入联系人电话" />
</nz-form-control>

View File

@ -10,7 +10,6 @@ import {
SFTextareaWidgetSchema,
SFUISchema
} from '@delon/form';
import { _HttpClient } from '@delon/theme';
import { AmapPoiPickerComponent, AmapService, ShipperBaseService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { PublishGoodsChooseFamifiarComponent } from '../choose-famifiar/choose-famifiar.component';
@ -20,7 +19,6 @@ import { of } from 'rxjs';
import { PublishSuccessComponent } from '../onecar-publish/publish-success/publish-success.component';
import { PublishAddressListComponent } from '../onecar-publish/address-list/address-list.component';
import { TranAgreementComponent } from '../tran-agreement/tran-agreement.component';
import differenceInCalendarDays from 'date-fns/differenceInCalendarDays';
import { SupplyManagementQrcodePageComponent } from '../qrcode-page/qrcode-page.component';
@Component({
selector: 'app-publish-goods-bulk-publish',
@ -56,8 +54,8 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
maxTrainNumber: 99999,
maxFreight: 9999999
};
patternStr = `^((13[0-9])|(14[0-1,4-9])|(15([0-3,5-9]))|(17[0-8])|(18[0-9])|(19[0-3,5-9])|(16[2,5,6,7]))\\d{8}$`;
constructor(
private http: _HttpClient,
fb: FormBuilder,
private router: Router,
private route: ActivatedRoute,
@ -69,10 +67,10 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
this.validateForm1 = fb.group({
loadAddress0: [null, [Validators.required]],
loadName0: [null, [Validators.required]],
loadPhone0: [null, [Validators.required, Validators.pattern('^[0-9]*$')]],
loadPhone0: [null, [Validators.required, Validators.pattern(this.patternStr)]],
unloadAddress0: [null, [Validators.required]],
unloadName0: [null, [Validators.required]],
unloadPhone0: [null, [Validators.required, Validators.pattern('^[0-9]*$')]]
unloadPhone0: [null, [Validators.required, Validators.pattern(this.patternStr)]]
});
}
@ViewChild('sf1', { static: false }) sf1!: SFComponent;
@ -221,13 +219,23 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
// }
}
},
goodsName: {
type: 'string',
title: '货物名称',
ui: {
// hidden: true,
// visibleIf: {
// goodsTypeName: (value: any) => value && value !== '其它'
// }
}
},
goodsTypeId: {
type: 'string',
title: '货物类型',
title: '',
ui: {
widget: 'select',
placeholder: '请选择',
errors: { required: '请选择货物类型' },
errors: { required: '请选择货物名称' },
asyncData: () =>
this.shipperSrv.loadConfigByKey('goods.name.config.type').pipe(
map((data: any) => {
@ -249,47 +257,38 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
hidden: true
}
},
goodsNameId: {
type: 'string',
title: '',
ui: {
widget: 'select',
placeholder: '请选择',
errors: { required: '请填写货物类型' },
change: (value: any, data: any) => {
this.sf3.setValue('/goodsName', data.label);
},
visibleIf: {
goodsTypeName: (value: any) => value && value !== '其它'
}
}
},
goodsName: {
type: 'string',
title: '',
ui: {
hidden: true,
visibleIf: {
goodsTypeName: (value: any) => value && value !== '其它'
}
}
},
goodsName1: {
type: 'string',
title: '',
maxLength: 20,
ui: {
errors: { required: '请填写货物类型' },
visibleIf: {
goodsTypeName: (value: any) => value && value === '其它'
},
blur: (value: any) => {
this.checkGoodsName();
}
}
}
// goodsName1: {
// type: 'string',
// title: '',
// maxLength: 20,
// ui: {
// errors: { required: '请填写货物名称' },
// visibleIf: {
// goodsTypeName: (value: any) => value && value === '其它'
// },
// blur: (value: any) => {
// this.checkGoodsName();
// }
// }
// },
// goodsNameId: {
// type: 'string',
// title: '',
// ui: {
// widget: 'select',
// placeholder: '请选择',
// errors: { required: '请填写货物名称' },
// change: (value: any, data: any) => {
// // this.sf3.setValue('/goodsName', data.label);
// },
// visibleIf: {
// goodsTypeName: (value: any) => value && value !== '其它'
// }
// }
// },
},
required: ['goodsTypeId', 'goodsName', 'goodsNameId', 'goodsName1']
required: ['goodsTypeId', 'goodsName', ]
};
this.ui3 = {
'*': {
@ -710,10 +709,6 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
const LoadingList = this.startInfo.concat(this.endInfo);
// 货物信息
const sf3Values = { ...this.sf3.value };
if (sf3Values.goodsTypeName === '其它') {
sf3Values.goodsName = sf3Values.goodsName1;
delete sf3Values.goodsName1;
}
if (this.sf4.value.carModel.includes('999')) {
this.sf4.value.carModel = ['999'];
}
@ -1170,4 +1165,17 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
}
});
}
onChangePhone(value: string): void {
console.log(value);
this.updateValue(value);
}
updateValue(value: string): void {
const reg = /^-?(0|[1-9][0-9]*)(\.[0-9]*)?$/;
// if ((!isNaN(+value) && reg.test(value)) || value === '' || value === '-') {
// this.value = value;
// }
// this.inputElement!.nativeElement.value = this.value;
// this.updateTitle();
}
}

View File

@ -17,7 +17,7 @@
<div class="card-title">装卸货信息<span class="tip-font">预计公里数:<em>{{ totalDistance }}km</em>,预计行程耗时:<em>{{ totalTime }}小时</em></span>
</div>
<form #ngForm="ngForm" nz-form role="form">
<form #ngForm="ngForm" [formGroup]="validateForm1" nz-form role="form">
<div nz-row [nzGutter]="24">
<div nz-col [nzSpan]="10">
<div *ngFor="let data1 of startInfo; let idx = index">

View File

@ -1,6 +1,6 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { NgForm } from '@angular/forms';
import { ActivatedRoute, Router } from '@angular/router';
import { FormBuilder, FormGroup, Validators, FormControl, NgForm } from '@angular/forms';
import { Router } from '@angular/router';
import {
SFComponent,
SFSchema,
@ -9,7 +9,6 @@ import {
SFTextareaWidgetSchema,
SFUISchema
} from '@delon/form';
import { SettingsService, _HttpClient } from '@delon/theme';
import { ShipperBaseService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { of } from 'rxjs';
@ -20,7 +19,6 @@ import { PublishGoodsChooseFamifiarComponent } from '../choose-famifiar/choose-f
import { PublishAddressListComponent } from '../onecar-publish/address-list/address-list.component';
import { PublishSuccessComponent } from '../onecar-publish/publish-success/publish-success.component';
import { TranAgreementComponent } from '../tran-agreement/tran-agreement.component';
import differenceInCalendarDays from 'date-fns/differenceInCalendarDays';
import { SupplyManagementQrcodePageComponent } from '../qrcode-page/qrcode-page.component';
@Component({
selector: 'app-publish-goods-bulk-publish',
@ -28,7 +26,7 @@ import { SupplyManagementQrcodePageComponent } from '../qrcode-page/qrcode-page.
styleUrls: ['./bulk-release-publish.component.less']
})
export class SupplyManagementBulkReleasePublishComponent implements OnInit {
@ViewChild('ngForm')
validateForm1: FormGroup;
ngForm!: NgForm;
sf1data: any; // 货源单设置回显
sf3data: any; // 货源单设置回显
@ -50,6 +48,7 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
maxFreight: 9999999
}
shipperName = '';
patternStr = `^((13[0-9])|(14[0-1,4-9])|(15([0-3,5-9]))|(17[0-8])|(18[0-9])|(19[0-3,5-9])|(16[2,5,6,7]))\\d{8}$`;
// // 单位
startInfo: any[] = [];
endInfo: any[] = [];
@ -57,16 +56,21 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
totalTime = 0.0; //路程总时间
freightTypeOptions: any;
constructor(
private http: _HttpClient,
fb: FormBuilder,
private modalService: NzModalService,
private settingSrv: SettingsService,
private service: SupplyManagementService,
private router: Router,
private route: ActivatedRoute,
private amapService: AmapService,
public shipperSrv: ShipperBaseService
) {
this.validateForm1 = fb.group({
loadAddress0: [null, [Validators.required]],
loadName0: [null, [Validators.required]],
loadPhone0: [null, [Validators.required, Validators.pattern(this.patternStr)]],
unloadAddress0: [null, [Validators.required]],
unloadName0: [null, [Validators.required]],
unloadPhone0: [null, [Validators.required, Validators.pattern(this.patternStr)]]
});
}
@ViewChild('sf1', { static: false }) sf1!: SFComponent;
schema1: SFSchema = {};
@ -231,13 +235,34 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
initSF3() {
this.schema3 = {
properties: {
goodsTypeId: {
goodsTips: {
type: 'string',
title: '',
ui: {
widget: 'custom',
class: 'goods_Tips_item',
// visibleIf: {
// goodsTypeName: (value: any) => value && value === '其它'
// }
}
},
goodsName: {
type: 'string',
title: '货物名称',
ui: {
// hidden: true,
// visibleIf: {
// goodsTypeName: (value: any) => value && value !== '其它'
// }
}
},
goodsTypeId: {
type: 'string',
title: '',
ui: {
widget: 'select',
placeholder: '请选择',
errors: { required: '请选择货物类型' },
errors: { required: '请选择货物名称' },
asyncData: () =>
this.shipperSrv.loadConfigByKey('goods.name.config.type').pipe(
map((data: any) => {
@ -259,44 +284,8 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
hidden: true
}
},
goodsNameId: {
type: 'string',
title: '',
ui: {
widget: 'select',
placeholder: '请选择',
errors: { required: '请填写货物名称' },
change: (value: any, data: any) => {
this.sf3.setValue('/goodsName', data.label);
},
visibleIf: {
goodsTypeName: (value: any) => value && value !== '其它'
}
}
},
goodsName: {
type: 'string',
title: '',
ui: {
hidden: true,
visibleIf: {
goodsTypeName: (value: any) => value && value !== '其它'
}
}
},
goodsName1: {
type: 'string',
title: '',
maxLength: 20,
ui: {
errors: { required: '请填写货物名称' },
visibleIf: {
goodsTypeName: (value: any) => value && value === '其它'
}
}
}
},
required: ['goodsTypeId', 'goodsName', 'goodsNameId','goodsName1']
required: ['goodsTypeId', 'goodsName', ]
};
this.ui3 = {
'*': {
@ -620,10 +609,6 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
// 货物信息
const sf3Values = { ...this.sf3.value };
if (sf3Values.goodsTypeName === '其它') {
sf3Values.goodsName = sf3Values.goodsName1;
delete sf3Values.goodsName1;
}
if (this.sf4.value.carModel.includes('999')) {
this.sf4.value.carModel = ['999']
}

View File

@ -1,9 +1,5 @@
import { AfterViewInit, ChangeDetectorRef, Component, OnChanges, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { SFComponent, SFSchema, SFSchemaEnumType, SFUISchema } from '@delon/form';
import { _HttpClient } from '@delon/theme';
import { NzModalRef } from 'ng-zorro-antd/modal';
import { map } from 'rxjs/operators';
import { Component, OnInit, ViewChild } from '@angular/core';
import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
@Component({
selector: 'app-choose-famifiar-add',
@ -16,7 +12,7 @@ export class PublishchooseFamifiarAddComponent implements OnInit {
i: any;
constructor(public http: _HttpClient, private cdr: ChangeDetectorRef, private route: ActivatedRoute) {}
constructor() {}
ngOnInit(): void {
this.initSF();

View File

@ -1,10 +1,8 @@
import { Component, Input, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STColumn, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
import { ModalHelper } from '@delon/theme';
import { EAEnvironmentService } from '@shared';
import { NzDrawerService } from 'ng-zorro-antd/drawer';
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
import { SupplyManagementAddDriversComponent } from 'src/app/routes/supply-management/components/add-drivers/add-drivers.component';
import { SupplyManagementService } from '../../services/supply-management.service';
@ -39,9 +37,6 @@ export class PublishGoodsChooseFamifiarComponent implements OnInit {
constructor(
private modal: NzModalRef,
public router: Router,
public ar: ActivatedRoute,
private drawerService: NzDrawerService,
public service: SupplyManagementService,
private modalService: NzModalService,
private modalHelper: ModalHelper,

View File

@ -8,12 +8,9 @@
* @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\components\\choose-famifiar\\set-captain\\set-captain.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
import { AfterViewInit, ChangeDetectorRef, Component, OnChanges, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { SFComponent, SFSchema, SFSchemaEnumType, SFUISchema } from '@delon/form';
import { _HttpClient } from '@delon/theme';
import { Component, OnInit, ViewChild } from '@angular/core';
import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
import { NzModalRef } from 'ng-zorro-antd/modal';
import { map } from 'rxjs/operators';
@Component({
selector: 'app-choose-famifiar-set-captain',
@ -26,7 +23,7 @@ export class PublishchooseFamifiarSetCaptainComponent implements OnInit {
i: any;
constructor(public http: _HttpClient, private cdr: ChangeDetectorRef, private route: ActivatedRoute, private modal: NzModalRef,) {}
constructor( private modal: NzModalRef,) {}
ngOnInit(): void {
this.initSF();

View File

@ -10,11 +10,8 @@
*/
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STChange, STColumn, STComponent, STRequestOptions } from '@delon/abc/st';
import { processSingleSort } from '@shared';
import { NzDrawerService } from 'ng-zorro-antd/drawer';
import { NzModalService } from 'ng-zorro-antd/modal';
import { SupplyManagementService } from '../../../services/supply-management.service';
@Component({
selector: 'app-publish-address-list',
@ -30,11 +27,7 @@ export class PublishAddressListComponent implements OnInit {
spuStatus = '1'; // '1'客户地址,'2'收回单地址
constructor(
public router: Router,
public ar: ActivatedRoute,
private drawerService: NzDrawerService,
public service: SupplyManagementService,
private modalService: NzModalService
) {}
/**

View File

@ -3,9 +3,8 @@ import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms'
import differenceInCalendarDays from 'date-fns/differenceInCalendarDays';
import format from 'date-fns/format';
import { Subject } from 'rxjs';
import { ActivatedRoute, Router } from '@angular/router';
import { ActivatedRoute } from '@angular/router';
import {
SFCheckboxWidgetSchema,
SFComponent,
SFNumberWidgetSchema,
SFSchema,
@ -14,7 +13,6 @@ import {
SFTextareaWidgetSchema,
SFUISchema
} from '@delon/form';
import { _HttpClient } from '@delon/theme';
import { AmapPoiPickerComponent, AmapService, EACacheService, ShipperBaseService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { of } from 'rxjs';
@ -43,6 +41,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
intervalDays: 999,
maxTimes: 5
};
patternStr = `^((13[0-9])|(14[0-1,4-9])|(15([0-3,5-9]))|(17[0-8])|(18[0-9])|(19[0-3,5-9])|(16[2,5,6,7]))\\d{8}$`;
sf1data: any; // 货源单设置回显
sf3data: any; // 货源单设置回显
sf4data: any; // 货源单设置回显
@ -66,9 +65,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
envCache: any;
enterpriseProjectIds: any;
constructor(
private http: _HttpClient,
fb: FormBuilder,
private router: Router,
private route: ActivatedRoute,
private modalService: NzModalService,
public service: SupplyManagementService,
@ -78,7 +75,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
) {
this.validateForm1 = fb.group({
loadingTime: [null, [Validators.required]],
unloadingTime: [null, [Validators.required]]
unloadingTime: [null, [Validators.required]],
});
this.envCache = this.eaCacheSrv.get(cacheConf.env);
}
@ -267,13 +264,23 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
// }
}
},
goodsName: {
type: 'string',
title: '货物名称',
ui: {
// hidden: true,
// visibleIf: {
// goodsTypeName: (value: any) => value && value !== '其它'
// }
}
},
goodsTypeId: {
type: 'string',
title: '货物类型',
title: '',
ui: {
widget: 'select',
placeholder: '请选择',
errors: { required: '请选择货物类型' },
errors: { required: '请选择货物名称' },
asyncData: () =>
this.shipperSrv.loadConfigByKey('goods.name.config.type').pipe(
map((data: any) => {
@ -295,47 +302,38 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
hidden: true
}
},
goodsNameId: {
type: 'string',
title: '',
ui: {
widget: 'select',
placeholder: '请选择',
errors: { required: '请填写货物类型' },
change: (_value: any, data: any) => {
this.sf3.setValue('/goodsName', data.label);
},
visibleIf: {
goodsTypeName: (value: any) => value && value !== '其它'
}
}
},
goodsName: {
type: 'string',
title: '',
ui: {
hidden: true,
visibleIf: {
goodsTypeName: (value: any) => value && value !== '其它'
}
}
},
goodsName1: {
type: 'string',
title: '',
maxLength: 20,
ui: {
errors: { required: '请填写货物类型' },
visibleIf: {
goodsTypeName: (value: any) => value && value === '其它'
},
blur: (value: any) => {
this.checkGoodsName();
}
}
}
// goodsName1: {
// type: 'string',
// title: '',
// maxLength: 20,
// ui: {
// errors: { required: '请填写货物名称' },
// visibleIf: {
// goodsTypeName: (value: any) => value && value === '其它'
// },
// blur: (value: any) => {
// this.checkGoodsName();
// }
// }
// },
// goodsNameId: {
// type: 'string',
// title: '',
// ui: {
// widget: 'select',
// placeholder: '请选择',
// errors: { required: '请填写货物名称' },
// change: (value: any, data: any) => {
// // this.sf3.setValue('/goodsName', data.label);
// },
// visibleIf: {
// goodsTypeName: (value: any) => value && value !== '其它'
// }
// }
// },
},
required: ['goodsTypeId', 'goodsName', 'goodsNameId', 'goodsName1']
required: ['goodsTypeId', 'goodsName', ]
};
this.ui3 = {
'*': {
@ -806,7 +804,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
});
this.validateForm1.addControl(`loadAddress${controlId}`, new FormControl(null, Validators.required));
this.validateForm1.addControl(`loadName${controlId}`, new FormControl(null, Validators.required));
this.validateForm1.addControl(`loadPhone${controlId}`, new FormControl(null, [Validators.required, Validators.pattern('^[0-9]*$')]));
this.validateForm1.addControl(`loadPhone${controlId}`, new FormControl(null, [Validators.required, Validators.pattern(this.patternStr)]));
}
}
@ -862,7 +860,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
this.validateForm1.addControl(`unloadName${controlId}`, new FormControl(null, Validators.required));
this.validateForm1.addControl(
`unloadPhone${controlId}`,
new FormControl(null, [Validators.required, Validators.pattern('^[0-9]*$')])
new FormControl(null, [Validators.required, Validators.pattern(this.patternStr)])
);
}
}
@ -1016,10 +1014,8 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
// 货物信息
const sf3Values = { ...this.sf3.value };
if (sf3Values.goodsTypeName === '其它') {
sf3Values.goodsName = sf3Values.goodsName1;
delete sf3Values.goodsName1;
}
console.log(sf3Values);
if (this.sf4.value.carModel.includes('999')) {
this.sf4.value.carModel = ['999'];
}
@ -1370,6 +1366,15 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
this.sf7.setValue('/toPay', this.sf7data.toPay);
this.sf7.setValue('/receiptPay', this.sf7data.receiptPay);
this.payChange();
// console.log('88888');
// this.validateForm1.reset();
// for (const key in this.validateForm1.controls) {
// if (this.validateForm1.controls.hasOwnProperty(key)) {
// this.validateForm1.controls[key].markAsPristine();
// this.validateForm1.controls[key].updateValueAndValidity();
// }
// }
}
// 选择地址

View File

@ -1,10 +1,8 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
import { ActivatedRoute, Router } from '@angular/router';
import { cacheConf } from '@conf/cache.conf';
import differenceInCalendarDays from 'date-fns/differenceInCalendarDays';
import {
SFCheckboxWidgetSchema,
SFComponent,
SFNumberWidgetSchema,
SFSchema,
@ -13,7 +11,6 @@ import {
SFTextareaWidgetSchema,
SFUISchema
} from '@delon/form';
import { SettingsService, _HttpClient } from '@delon/theme';
import { EACacheService, ShipperBaseService } from '@shared';
import format from 'date-fns/format';
import { NzModalService } from 'ng-zorro-antd/modal';
@ -52,14 +49,11 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
totalTime = 0.0; //路程总时间
currentRate = 0; //实时计算的费率
shipperName = '';
patternStr = `^((13[0-9])|(14[0-1,4-9])|(15([0-3,5-9]))|(17[0-8])|(18[0-9])|(19[0-3,5-9])|(16[2,5,6,7]))\\d{8}$`;
constructor(
private http: _HttpClient,
fb: FormBuilder,
private modalService: NzModalService,
private settingSrv: SettingsService,
public service: SupplyManagementService,
private router: Router,
private route: ActivatedRoute,
private eaCacheSrv: EACacheService,
private amapService: AmapService,
public shipperSrv: ShipperBaseService
@ -67,10 +61,10 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
this.validateForm1 = fb.group({
loadAddress0: [null, [Validators.required]],
loadName0: [null, [Validators.required]],
loadPhone0: [null, [Validators.required, Validators.pattern('^[0-9]*$')]],
loadPhone0: [null, [Validators.required, Validators.pattern(this.patternStr)]],
unloadAddress0: [null, [Validators.required]],
unloadName0: [null, [Validators.required]],
unloadPhone0: [null, [Validators.required, Validators.pattern('^[0-9]*$')]],
unloadPhone0: [null, [Validators.required, Validators.pattern(this.patternStr)]],
loadingTime: [null, [Validators.required]],
unloadingTime: [null, [Validators.required]]
});
@ -257,13 +251,23 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
// }
}
},
goodsName: {
type: 'string',
title: '货物名称',
ui: {
// hidden: true,
// visibleIf: {
// goodsTypeName: (value: any) => value && value !== '其它'
// }
}
},
goodsTypeId: {
type: 'string',
title: '货物类型',
title: '',
ui: {
widget: 'select',
placeholder: '请选择',
errors: { required: '请选择货物类型' },
errors: { required: '请选择货物名称' },
asyncData: () =>
this.shipperSrv.loadConfigByKey('goods.name.config.type').pipe(
map((data: any) => {
@ -285,47 +289,38 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
hidden: true
}
},
goodsNameId: {
type: 'string',
title: '',
ui: {
widget: 'select',
placeholder: '请选择',
errors: { required: '请填写货物类型' },
change: (value: any, data: any) => {
this.sf3.setValue('/goodsName', data.label);
},
visibleIf: {
goodsTypeName: (value: any) => value && value !== '其它'
}
}
},
goodsName: {
type: 'string',
title: '',
ui: {
hidden: true,
visibleIf: {
goodsTypeName: (value: any) => value && value !== '其它'
}
}
},
goodsName1: {
type: 'string',
title: '',
maxLength: 20,
ui: {
errors: { required: '请填写货物类型' },
visibleIf: {
goodsTypeName: (value: any) => value && value === '其它'
},
blur: (value: any) => {
this.checkGoodsName();
}
}
}
// goodsName1: {
// type: 'string',
// title: '',
// maxLength: 20,
// ui: {
// errors: { required: '请填写货物名称' },
// visibleIf: {
// goodsTypeName: (value: any) => value && value === '其它'
// },
// blur: (value: any) => {
// this.checkGoodsName();
// }
// }
// },
// goodsNameId: {
// type: 'string',
// title: '',
// ui: {
// widget: 'select',
// placeholder: '请选择',
// errors: { required: '请填写货物名称' },
// change: (value: any, data: any) => {
// // this.sf3.setValue('/goodsName', data.label);
// },
// visibleIf: {
// goodsTypeName: (value: any) => value && value !== '其它'
// }
// }
// },
},
required: ['goodsTypeId', 'goodsName', 'goodsNameId', 'goodsName1']
required: ['goodsTypeId', 'goodsName', ]
};
this.ui3 = {
'*': {
@ -609,7 +604,6 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
receiptUserPhone: {
type: 'string',
title: '联系电话',
format: 'mobile',
maxLength: 11,
ui: {
errors: {
@ -836,7 +830,7 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
});
this.validateForm1.addControl(`loadAddress${controlId}`, new FormControl(null, Validators.required));
this.validateForm1.addControl(`loadName${controlId}`, new FormControl(null, Validators.required));
this.validateForm1.addControl(`loadPhone${controlId}`, new FormControl(null, [Validators.required, Validators.pattern('^[0-9]*$')]));
this.validateForm1.addControl(`loadPhone${controlId}`, new FormControl(null, [Validators.required, Validators.pattern(this.patternStr)]));
}
}
// 添加 删除发货卸货地址
@ -865,7 +859,7 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
this.validateForm1.addControl(`unloadName${controlId}`, new FormControl(null, Validators.required));
this.validateForm1.addControl(
`unloadPhone${controlId}`,
new FormControl(null, [Validators.required, Validators.pattern('^[0-9]*$')])
new FormControl(null, [Validators.required, Validators.pattern(this.patternStr)])
);
}
}
@ -985,10 +979,6 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
// 货物信息
const sf3Values = { ...this.sf3.value };
if (sf3Values.goodsTypeName === '其它') {
sf3Values.goodsName = sf3Values.goodsName1;
delete sf3Values.goodsName1;
}
if (this.sf4.value.carModel.includes('999')) {
this.sf4.value.carModel = ['999'];
}
@ -1027,19 +1017,18 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
insurancePackagedGoods: this.sf4.value.insurancePackagedGoods,
goodsValue: this.sf4.value.goodsValue
};
console.log(params);
// const modalRef = this.modalService.create({
// nzTitle: '运输协议',
// nzContent: TranAgreementComponent,
// nzWidth: 900,
// nzFooter: null,
// nzComponentParams: { object: params, shipperName: this.shipperName, type: 'onecar' }
// });
// modalRef.afterClose.subscribe(result => {
// if (result) {
// this.submit(submitType, params);
// }
// });
const modalRef = this.modalService.create({
nzTitle: '运输协议',
nzContent: TranAgreementComponent,
nzWidth: 900,
nzFooter: null,
nzComponentParams: { object: params, shipperName: this.shipperName, type: 'onecar' }
});
modalRef.afterClose.subscribe(result => {
if (result) {
this.submit(submitType, params);
}
});
}
// 提交
submit(submitType?: string, params?: any): void {
@ -1294,7 +1283,7 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
this.service.request(this.service.$api_checkGoodsName, name).subscribe(res => {
if (res === false) {
const modalRef = this.modalService.error({
nzTitle: '货物类型含有违禁词,请重新输入!',
nzTitle: '货物名称含有违禁词,请重新输入!',
});
modalRef.afterClose.subscribe(result => {
// this.sf3.setValue('/goodsName1', null);

View File

@ -2,12 +2,10 @@ import { ActivatedRoute, Router } from '@angular/router';
import { Component, OnInit, ViewChild, OnChanges } from '@angular/core';
import { STColumn, STComponent, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
import { ModalHelper, _HttpClient } from '@delon/theme';
import { NzModalService } from 'ng-zorro-antd/modal';
import { map } from 'rxjs/operators';
import { SupplyManagementService } from '../../services/supply-management.service';
import { SupplyManagementVehicleAssignedCarComponent } from '../assigned-car/assigned-car.component';
import { SupplyManagementUpdateExternalSnComponent } from '../update-external-sn/update-external-sn.component';
import { of } from 'rxjs';
import { SearchDrawerService, ShipperBaseService } from '@shared';
import { SupplyManagementImportSupplyComponent } from '../../model/import-supply/import-supply.component';
@ -44,7 +42,6 @@ export class SupplyManagementVehicleComponent extends BasicTableComponent implem
public service: SupplyManagementService,
private modal: NzModalService,
private router: Router,
private ar: ActivatedRoute,
public shipperSrv: ShipperBaseService,
public searchDrawerService: SearchDrawerService
) {

View File

@ -9,10 +9,8 @@
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema } from '@delon/form';
import { NzModalService } from 'ng-zorro-antd/modal';
import { SystemService } from '../../services/system.service';
@Component({
@ -20,7 +18,7 @@ import { SystemService } from '../../services/system.service';
templateUrl: './note-management.component.html',
styleUrls: ['../../../commom/less/box.less']
})
export class NoTeManagementComponent implements OnInit {
export class NoTeManagementComponent {
@ViewChild('st', { static: true })
st!: STComponent;
@ViewChild('sf', { static: false })
@ -52,11 +50,9 @@ export class NoTeManagementComponent implements OnInit {
},
];
constructor(public service: SystemService, private nzModalService: NzModalService, private route: ActivatedRoute) {
constructor(public service: SystemService) {
}
ngOnInit(): void {}
beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) {
Object.assign(requestOptions.body, { ...this.sf?.value });

View File

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

View File

@ -202,7 +202,7 @@ export class TaxManagementIndividualDeclareComponent extends BasicTableComponent
{ title: '证件类型', index: 'sfzjlx', className: 'text-center', width: '200px' },
{ title: '证件号码', index: 'sfzjhm', className: 'text-center', width: '200px' },
{ title: '联系电话', index: 'lxdh', className: 'text-center', width: '200px' },
{ title: '国家(地区)', index: ' gjdq', className: 'text-center', width: '200px' },
{ title: '国家(地区)', index: 'gjdq', className: 'text-center', width: '200px' },
{ title: '所属行业', index: 'hy', className: 'text-center', width: '200px' },
{ title: '征收项目', index: 'zsxm', className: 'text-center', width: '200px' },
{ title: '征收品目', index: 'zsmp', className: 'text-center', width: '200px' },

View File

@ -31,7 +31,7 @@
</div>
</div>
<st #st [data]="service.$api_invoicedBillInfo_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
[loading]="false" [scroll]="{ x:'1200px' }">
[loading]="false" [scroll]="{ x:'1200px', y: scrollY }">
<ng-template st-row="serviceType" let-item let-index="index">
<span>{{item.billTypeLabel + item.serviceTypeLabel}}</span>
</ng-template>

View File

@ -1,9 +1,8 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { Router } from '@angular/router';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema, SFSelectWidgetSchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TicketService } from '../../services/ticket.service';
@ -214,7 +213,7 @@ export class BillingOrderComponent extends BasicTableComponent {
className: 'text-center',
index: 'paymentMethodRate',
width: 130,
format: record => `${record.paymentMethodRate*100}%`
format: record => `${(record.paymentMethodRate*100).toFixed(2)}%`
},
{ title: '货主名称', index: 'shipperAppUserName', width: '180px', className: 'text-center' },
{ title: '所属项目', index: 'enterpriseProjectName', width: '180px', className: 'text-center' },

View File

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

View File

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

View File

@ -1,3 +1,13 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-05-06 15:31:19
* @LastEditors : Shiming
* @LastEditTime : 2022-05-10 11:13:28
* @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>
<nz-card class="search-box" nzBordered>
@ -21,18 +31,26 @@
</nz-card> -->
<nz-card class="table-box">
<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()">筛选</button>
<button nz-button nzDanger (click)="exportList()" acl
[acl-ability]="['TICKET-ETC-INVOICE-LOGS-export']">导出</button>
</div>
<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()">筛选</button>
<button nz-button nzDanger (click)="exportList()" acl [acl-ability]="['TICKET-ETC-INVOICE-LOGS-export']">导出</button>
<button nz-button nzDanger (click)="batchInvoice()" acl [acl-ability]="['TICKET-ETC-INVOICE-LOGS-BatchCreateFicoInpinv']">批量收票</button>
</div>
<st #st [data]="service.$api_get_invoice_logs_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
[loading]="false" [scroll]="{ x:'1200px',y:scrollY }">
<ng-template st-row="call3No" let-item let-index="index" let-column="column">
{{item.driverName}}<br>{{item.driverCellphone}}
</ng-template>
</st>
</nz-card>
</div>
<st
#st
[data]="service.$api_get_invoice_logs_page"
[columns]="columns"
[req]="{ process: beforeReq }"
[res]="{ reName: { list: 'data.records', total: 'data.total' }, process: afterRes }"
[page]="{}"
[loading]="false"
[scroll]="{ x: '1200px', y: scrollY }"
>
<ng-template st-row="call3No" let-item let-index="index" let-column="column">
{{ item.driverName }}<br />{{ item.driverCellphone }}
</ng-template>
</st>
</nz-card>

View File

@ -41,7 +41,12 @@ export class ETCInvoicedLogsComponent extends BasicTableComponent {
}
return requestOptions;
};
afterRes = (data: any[], rawData?: any) => {
return data.map(item => ({
...item,
disabled: item.isCreationInpinv == '1'
}));
};
routeTo(item: any) {
return;
this.router.navigate(['/ticket/invoice-requested-detail/1']);
@ -135,6 +140,7 @@ export class ETCInvoicedLogsComponent extends BasicTableComponent {
private initST(): STColumn[] {
return [
{ title: '', type: 'checkbox', fixed: 'left', width: '50px', className: 'text-center' },
{ title: '发票号码', index: 'invoiceNum', width: 100, type: 'link', click: item => this.routeTo(item) },
{ title: '发票代码', index: 'invoiceCode', width: 130 },
{ title: '订单号', index: 'billCode', width: 180 },
@ -183,7 +189,46 @@ export class ETCInvoicedLogsComponent extends BasicTableComponent {
{ title: '交易时间', index: 'exTime', type: 'date', width: 150 },
{ title: '开票日期', index: 'invoiceMakeTime', type: 'date', width: 150 },
{ title: '销售方', index: 'sellerName', width: 150 },
{ title: '网络货运人', index: 'enterpriseInfoName', width: 220 }
{ title: '网络货运人', index: 'enterpriseInfoName', width: 220 },
{
title: '操作',
width: '120px',
fixed: 'right',
className: 'text-center',
buttons: [
{
text: '收票',
acl: { ability: ['TICKET-ETC-INVOICE-LOGS-createFicoInpinv'] },
click: item => {
this.batchInvoice(item)
}
}
]
}
];
}
get selectedRows() {
return this.st?.list.filter(item => item.checked) || [];
}
batchInvoice(item?: { id: any; }) {
let params: any[] = [];
if(item) {
params.push(item.id);
} else {
if (this.selectedRows.length <= 0) {
this.service.msgSrv.error('请选择订单!');
return;
}
this.selectedRows.forEach(item => {
params.push(item.id);
});
}
this.service.request(this.service.$api_createFicoInpinv, params).subscribe(res => {
if (res) {
this.service.msgSrv.success('收票成功!')
this.st.load(1);
}
});
}
}

View File

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-12-23 16:50:17
* @LastEditTime : 2022-04-28 13:54:14
* @LastEditTime : 2022-05-10 10:58:56
* @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\invoice-requested\\requested-invoice-modal\\requested-invoice-modal.component.ts

View File

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-12-29 13:12:35
* @LastEditTime : 2022-04-11 16:41:43
* @LastEditTime : 2022-05-10 09:51:30
* @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\services\\ticket.service.ts
@ -150,6 +150,8 @@ export class TicketService extends ShipperBaseService {
$api_invoicedBillInfo_page = '/api/fcc/invoicedBillInfo/getInvoicedBillInfoPage';
// 可开票订单导出
$api_export_InvoicedBillInfoPage = '/api/fcc/invoicedBillInfo/exportInvoicedBillInfoPage'
// 批量生成进项发票
$api_createFicoInpinv = '/api/fcc/ficoEtcInvoiceL/createFicoInpinv'
constructor(public injector: Injector) {
super(injector);

View File

@ -1,7 +1,7 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STColumn, STColumnBadge, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
import { Router } from '@angular/router';
import { STColumn, STComponent, STData } from '@delon/abc/st';
import { SFSchema } from '@delon/form';
import { ModalHelper } from '@delon/theme';
import { DynamicSettingModalComponent, SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
@ -26,7 +26,6 @@ export class UserCenterComponentsDriverCaptainComponent extends BasicTableCompon
public service: UsermanageService,
private modal: NzModalService,
private router: Router,
private ar: ActivatedRoute,
private modalHelper: ModalHelper,
public searchDrawerService: SearchDrawerService
) {
@ -57,8 +56,7 @@ export class UserCenterComponentsDriverCaptainComponent extends BasicTableCompon
return this.st?.list.filter(item => item.checked) || [];
}
ngOnInit() {
}
ngOnInit() {}
dataProcess(data: STData[]): STData[] {
return data.map((i, index) => {
i.showSortFlag = false;

View File

@ -42,15 +42,25 @@
<nz-card [nzLoading]="service.http.loading" [nzBorderless]="true">
<div class="mb-md">
<div class="font-weight-blod text-md detail-title" style="justify-content: space-between;">
<div>
<div style="display: flex; justify-content: center;align-items: center;">
<a class="sign"></a>
<span>个人信息</span>
<label *ngIf="userIdentityDetail?.certificationStatus===1" style="color: #52c41a;" class="ml-md"><i nz-icon
nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label>
<label *ngIf="userIdentityDetail?.certificationStatus===2" style="color: #ff4d4f;" class="ml-md"><i nz-icon
nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回 驳回原因:{{userIdentityDetail?.certificationOpinions}}
<p style="margin-bottom: 0">
个人信息
<label *ngIf="userIdentityDetail?.certificationStatus===2" style="color: #ff4d4f"><i nz-icon nzType="info-circle"
nzTheme="fill" class="mr-xs"></i>驳回:<span nz-popover [nzPopoverTitle]="titleTemplate1" [nzPopoverContent]="contentTemplate2">
驳回原因
<ng-template #titleTemplate1>
原因
</ng-template>
<ng-template #contentTemplate2>
{{userIdentityDetail?.tips}}
</ng-template>
</span>
</label>
<label *ngIf="userIdentityDetail?.certificationStatus===1" style="color: #52c41a"><i nz-icon nzType="check-circle"
nzTheme="fill" class="mr-xs"></i>审核通过
</label>
</p>
<label *ngIf="faceStatus == 1" style="color: #bec8c8; position: relative;
bottom: 2px;" class="ml-md"><i nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs">人脸识别结果:已发起</i>
</label>
@ -179,15 +189,25 @@
<div class="mb-md">
<div class="font-weight-blod text-md detail-title" style="justify-content: space-between;">
<div>
<div style="display: flex; justify-content: center;align-items: center;">
<a class="sign"></a>
<span>驾驶证信息</span>
<label *ngIf="driverDetail?.approvalStatus===20" style="color: #52c41a;" class="ml-md"><i nz-icon
nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label>
<label *ngIf="driverDetail?.approvalStatus===30" style="color: #ff4d4f;" class="ml-md"><i nz-icon
nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回
<p style="margin-bottom: 0">
驾驶证信息
<label *ngIf="driverDetail?.approvalStatus===30" style="color: #ff4d4f"><i nz-icon nzType="info-circle"
nzTheme="fill" class="mr-xs"></i>驳回:<span nz-popover [nzPopoverTitle]="titleTemplate1" [nzPopoverContent]="contentTemplate1">
驳回原因
<ng-template #titleTemplate1>
原因
</ng-template>
<ng-template #contentTemplate1>
{{driverDetail?.tips}}
</ng-template>
</span>
</label>
<label *ngIf="driverDetail?.approvalStatus===20" style="color: #52c41a"><i nz-icon nzType="check-circle"
nzTheme="fill" class="mr-xs"></i>审核通过
</label>
</p>
</div>
<div>
<ng-container *ngIf="isEditDriver;else editDriverButton">

View File

@ -2,16 +2,11 @@ import { DatePipe } from '@angular/common';
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { apiConf } from '@conf/api.conf';
import { STColumn, STComponent } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFTagWidgetSchema, SFTextWidgetSchema, SFUISchema } from '@delon/form';
import { ModalHelper, _HttpClient } from '@delon/theme';
import { STColumn } from '@delon/abc/st';
import { _HttpClient } from '@delon/theme';
import { NzImageService } from 'ng-zorro-antd/image';
import { NzMessageService } from 'ng-zorro-antd/message';
import { NzModalService } from 'ng-zorro-antd/modal';
import { Subject } from 'rxjs';
import { ImageViewComponent } from 'src/app/shared/components/imagelist';
import { UsermanageService } from '../../../services/usercenter.service';
import { debounceTime } from 'rxjs/operators';
@Component({
selector: 'app-usercenter-components-driver-detail',
@ -73,6 +68,8 @@ export class UserCenterComponentsDriverDetailComponent implements OnInit {
) {}
ngOnInit() {
console.log(this.route.snapshot.queryParams);
this.initData();
this.initDetailByCode();
}

View File

@ -1,5 +1,4 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { STColumn, STComponent } from '@delon/abc/st';
import { SFComponent, SFSchema } from '@delon/form';
import { DynamicSettingModalComponent, SearchDrawerService } from '@shared';

View File

@ -62,8 +62,7 @@ export class UserCenterComponentsDriverComponent extends BasicTableComponent imp
return params;
}
ngOnInit() {
}
ngOnInit() {}
selectChange(e: any) {
this.resourceStatus = e;
@ -306,7 +305,12 @@ export class UserCenterComponentsDriverComponent extends BasicTableComponent imp
{
text: '查看<br/>',
click: item => {
this.router.navigate(['./detail', item.appUserId], { relativeTo: this.ar });
this.router.navigate(['./detail', item.appUserId], {
relativeTo: this.ar,
queryParams: {
status: item.driverLicenseStatus
}
});
},
acl: { ability: ['USERCENTER-DRIVER-LIST-view'] }
},

View File

@ -1,5 +1,5 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { Router } from '@angular/router';
import { STChange, STColumn, STComponent, STData, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
import { SearchDrawerService } from '@shared';

View File

@ -1,5 +1,4 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { STColumn, STComponent, STRequestOptions, STData, STChange } from '@delon/abc/st';
import { SFUISchema, SFSchema, SFComponent, SFDateWidgetSchema } from '@delon/form';
import { ShipperBaseService, DynamicSettingModalComponent, SearchDrawerService } from '@shared';

View File

@ -48,30 +48,31 @@
保存
</button>
<button [disabled]="false" nz-button nzDanger (click)="auditPass(true)"
*ngIf="detailData?.approvalStatus===10" acl [acl-ability]="['USERCENTER-FREIGHT-LIST-DETAIL-pass']">
*ngIf="detailData?.approvalStatus===10" acl
[acl-ability]="['USERCENTER-FREIGHT-LIST-DETAIL-pass','USERCENTER-FREIGHT-ENTERPRISE-D-audit']">
通过
</button>
</ng-container>
<ng-template #editButton>
<ng-container *ngIf="detailData?.approvalStatus===10">
<button [disabled]="false" nz-button nzDanger (click)="auditPass(false)" acl
[acl-ability]="['USERCENTER-FREIGHT-LIST-DETAIL-pass']">
[acl-ability]="['USERCENTER-FREIGHT-LIST-DETAIL-pass','USERCENTER-FREIGHT-ENTERPRISE-D-audit']">
通过
</button>
<button [disabled]="false" nz-button nzDanger (click)="auditNo()" acl
[acl-ability]="['USERCENTER-FREIGHT-LIST-DETAIL-pass']">
[acl-ability]="['USERCENTER-FREIGHT-LIST-DETAIL-pass','USERCENTER-FREIGHT-ENTERPRISE-D-audit']">
驳回
</button>
</ng-container>
<ng-container *ngIf="detailData?.approvalStatus!=10">
<button [disabled]="false" nz-button nzDanger nz-popconfirm [nzPopconfirmTitle]="enable"
(nzOnConfirm)="freezeOrResume(0)" nzPopconfirmPlacement="bottomRight" *ngIf="detailData?.stateLocked"
acl [acl-ability]="['USERCENTER-FREIGHT-LIST-DETAIL-lock']">
acl [acl-ability]="['USERCENTER-FREIGHT-LIST-DETAIL-lock','USERCENTER-FREIGHT-ENTERPRISE-D-lock']">
启用
</button>
<button [disabled]="false" nz-button nzDanger nz-popconfirm [nzPopconfirmTitle]="frozen"
(nzOnConfirm)="freezeOrResume(1)" nzPopconfirmPlacement="bottomRight" *ngIf="!detailData?.stateLocked"
acl [acl-ability]="['USERCENTER-FREIGHT-LIST-DETAIL-lock']">
acl [acl-ability]="['USERCENTER-FREIGHT-LIST-DETAIL-lock','USERCENTER-FREIGHT-ENTERPRISE-D-lock']">
冻结
</button>
<button [disabled]="false" nz-button nzDanger nz-popconfirm [nzPopconfirmTitle]="Payfrozen"
@ -84,7 +85,7 @@
</button>
</ng-container>
<button [disabled]="false" nz-button nzDanger (click)="ratify()" acl
[acl-ability]="['USERCENTER-FREIGHT-LIST-DETAIL-save']">
[acl-ability]="['USERCENTER-FREIGHT-LIST-DETAIL-save','USERCENTER-FREIGHT-ENTERPRISE-D-save']">
修改
</button>
</ng-template>
@ -557,4 +558,4 @@
</div>
</div>
</nz-upload>
</ng-template>
</ng-template>

View File

@ -1,14 +1,7 @@
import { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { SFComponent, SFDateWidgetSchema, SFRadioWidgetSchema, SFSchema, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
import { _HttpClient } from '@delon/theme';
import { EAEnvironmentService, ShipperBaseService } from '@shared';
import differenceInCalendarDays from 'date-fns/differenceInCalendarDays';
import format from 'date-fns/format';
import { Component, OnInit, ViewChild } from '@angular/core';
import { SFComponent, SFRadioWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
import { ShipperBaseService } from '@shared';
import { NzMessageService } from 'ng-zorro-antd/message';
import { NzUploadFile } from 'ng-zorro-antd/upload';
import { Observable, Observer, of } from 'rxjs';
import { apiConf } from '@conf/api.conf';
import { UsermanageService } from 'src/app/routes/usercenter/services/usercenter.service';
import { NzModalRef } from 'ng-zorro-antd/modal';
@ -23,39 +16,33 @@ export class EditPartnerComponentsAddComponent implements OnInit {
sts: any;
rows: any;
schema: SFSchema = {};
detailData: any = {}
detailData: any = {};
ui: SFUISchema = {};
constructor(
public msgSrv: NzMessageService,
public http: _HttpClient,
private route: ActivatedRoute,
private router: Router,
public service: UsermanageService,
private envSrv: EAEnvironmentService,
private modal: NzModalRef,
public shipperservice: ShipperBaseService
) { }
) {}
ngOnInit(): void {
if(this.sts == '2') {
this.initDetailData()
if (this.sts == '2') {
this.initDetailData();
}
this.initSF();
}
initDetailData() {
const params = {
id: this.i.id
}
};
this.service.request(this.service.$api_partnerChannelUpdateDetaiList, params).subscribe(res => {
if(res) {
this.detailData = res
if (res) {
this.detailData = res;
} else {
this.service.msgSrv.error(res.msg)
this.service.msgSrv.error(res.msg);
}
})
});
}
initSF() {
this.schema = {
@ -98,7 +85,7 @@ export class EditPartnerComponentsAddComponent implements OnInit {
settStartTime: {
title: '结算起算日期',
type: 'string',
format: 'date',
format: 'date'
},
remark: {
type: 'string',
@ -107,30 +94,29 @@ export class EditPartnerComponentsAddComponent implements OnInit {
widget: 'textarea',
placeholder: '请不要超过50个字',
maxLength: 50,
autosize: { minRows: 2, maxRows: 6 },
},
autosize: { minRows: 2, maxRows: 6 }
}
},
effectiveNode: {
type: 'string',
title: '生效节点',
ui: {
widget: 'radio',
showRequired: true,
showRequired: true
} as SFRadioWidgetSchema,
enum: [
{ label: '修改成功后立即生效', value: 1 },
{ label: 'CRM流程审核后生效', value: 2 },
{ label: 'CRM流程审核通过后生效', value: 3 }
// { label: 'CRM流程审核通过后生效', value: 2 },
],
},
},
required: ['channelId', 'remark', 'effectiveNode'],
required: ['channelId', 'remark', 'effectiveNode']
};
this.ui = {
'*': {
spanLabelFixed: 180,
grid: { span: 18 },
width: 600,
width: 600
}
};
}
@ -138,27 +124,27 @@ export class EditPartnerComponentsAddComponent implements OnInit {
return {};
}
close(): void {
this.modal.close(true)
this.modal.close(true);
}
save() {
console.log(this?.rows);
let enterId : any;
if(this.sts == '1') {
enterId = this.rows
let enterId: any;
if (this.sts == '1') {
enterId = this.rows;
} else {
enterId = [this.i.id]
enterId = [this.i.id];
}
const params = {
...this.sf?.value,
enterpriceIds: enterId,
settStartTime: this.sf?.value?.settStartTime + ' 00:00:00'
}
};
this.service.request(this.service.$api_batchUpdateEnterpricePartner, params).subscribe(res => {
if(res) {
if (res) {
this.service.msgSrv.success('修改成功');
this.modal.destroy(true)
this.modal.destroy(true);
}
})
});
}
}

View File

@ -1,16 +1,11 @@
import { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { SFComponent, SFRadioWidgetSchema, SFSchema, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
import { _HttpClient } from '@delon/theme';
import { EAEnvironmentService, ShipperBaseService } from '@shared';
import differenceInCalendarDays from 'date-fns/differenceInCalendarDays';
import format from 'date-fns/format';
import { Component, OnInit, ViewChild } from '@angular/core';
import { SFComponent, SFRadioWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
import { ShipperBaseService } from '@shared';
import { NzMessageService } from 'ng-zorro-antd/message';
import { NzUploadFile } from 'ng-zorro-antd/upload';
import { Observable, Observer, of } from 'rxjs';
import { apiConf } from '@conf/api.conf';
import { UsermanageService } from 'src/app/routes/usercenter/services/usercenter.service';
import { NzModalRef } from 'ng-zorro-antd/modal';
import { map } from 'rxjs/operators';
import { of } from 'rxjs';
@Component({
selector: 'app-ad-components-Sale',
@ -24,55 +19,80 @@ export class EditSaleComponentsAddComponent implements OnInit {
sts: any;
rows: any;
schema: SFSchema = {};
detailData: any = {}
detailData: any = {};
ui: SFUISchema = {};
constructor(
public msgSrv: NzMessageService,
public http: _HttpClient,
private route: ActivatedRoute,
private router: Router,
public service: UsermanageService,
private envSrv: EAEnvironmentService,
private modal: NzModalRef,
public shipperservice: ShipperBaseService
) { }
) {}
ngOnInit(): void {
if(this.sts == '2') {
this.initDetailData()
}
if (this.sts == '2') {
this.initDetailData();
}
this.initSF();
}
initDetailData() {
const params = {
id: this.i.id
}
};
this.service.request(this.service.$api_partnerChannelUpdateDetaiList, params).subscribe(res => {
if(res) {
this.detailData = res
if (res) {
this.detailData = res;
} else {
this.service.msgSrv.error(res.msg)
this.service.msgSrv.error(res.msg);
}
})
});
}
initSF() {
this.schema = {
properties: {
// channelId: {
// type: 'string',
// title: '渠道销售修改为',
// ui: {
// widget: 'select',
// placeholder: '请选择',
// allowClear: true,
// visibleIf: {
// _$expand: (value: boolean) => value
// },
// asyncData: () => this.shipperservice.getChanners()
// }
// },
channelId: {
type: 'string',
title: '渠道销售修改为',
ui: {
widget: 'select',
placeholder: '请选择',
serverSearch: true,
searchDebounceTime: 300,
searchLoadingText: '搜索中...',
allowClear: true,
visibleIf: {
_$expand: (value: boolean) => value
onSearch: (q: any) => {
let str = q.replace(/^\s+|\s+$/g, '');
let params :any= {}
if (str) {
console.log(+str);
if(+str) {
console.log('数字');
params.phoneNumber = str
} else {
console.log('中文');
params.name = str
}
return this.service
.request(this.service.$api_get_channel, params)
.pipe(map((res: any) => (res as any[]).map(i => ({ label: `${i.name}/${i.telephone}`, value: i.channelId } as SFSchemaEnum))))
.toPromise();
} else {
return of([]);
}
},
asyncData: () => this.shipperservice.getChanners()
}
} as SFSelectWidgetSchema
},
remark: {
type: 'string',
@ -81,30 +101,29 @@ export class EditSaleComponentsAddComponent implements OnInit {
widget: 'textarea',
placeholder: '请不要超过50个字',
maxLength: 50,
autosize: { minRows: 2, maxRows: 6 },
},
autosize: { minRows: 2, maxRows: 6 }
}
},
effectiveNode: {
type: 'string',
title: '生效节点',
ui: {
widget: 'radio',
showRequired: true,
showRequired: true
} as SFRadioWidgetSchema,
enum: [
{ label: '修改成功后立即生效', value: 1 },
{ label: 'CRM流程审核后生效', value: 2 },
{ label: 'CRM流程审核通过后生效', value: 3 }
// { label: 'CRM流程审核通过后生效', value: 2 },
],
},
},
required: ['channelId', 'remark', 'effectiveNode'],
required: ['channelId', 'remark', 'effectiveNode']
};
this.ui = {
'*': {
spanLabelFixed: 180,
grid: { span: 18 },
width: 600,
width: 600
}
};
}
@ -112,31 +131,30 @@ export class EditSaleComponentsAddComponent implements OnInit {
return {};
}
save() {
let enterId : any;
if(this.sts == '1') {
enterId = this.rows
let enterId: any;
if (this.sts == '1') {
enterId = this.rows;
} else {
enterId = [this.i.id]
enterId = [this.i.id];
}
this.service.nzModalService.create({
nzContent: '确定提交吗?',
nzOnOk: () => {
const params = {
...this.sf?.value,
enterpriceIds: enterId,
}
enterpriceIds: enterId
};
this.service.request(this.service.$api_batchUpdateEnterpriceChannel, params).subscribe(res => {
if(res) {
this.service.msgSrv.success('修改成功')
this.modal.destroy(true)
if (res) {
this.service.msgSrv.success('修改成功');
this.modal.destroy(true);
}
})
});
}
});
}
close(): void {
this.modal.close(true)
this.modal.close(true);
}
}

View File

@ -1,5 +1,5 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { Router } from '@angular/router';
import { apiConf } from '@conf/api.conf';
import {
SFCascaderWidgetSchema,

Some files were not shown because too many files have changed in this diff Show More