解决冲突

This commit is contained in:
wangshiming
2022-02-09 17:23:50 +08:00
18 changed files with 203 additions and 138 deletions

View File

@ -1,10 +1,10 @@
/* /*
* @Description : * @Description :
* @Version : 1.0 * @Version : 1.0
* @Author : Shiming * @Author : Shiming
* @Date : 2022-01-25 16:03:45 * @Date : 2022-01-25 16:03:45
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-01-26 18:04:46 * @LastEditTime : 2022-02-09 17:23:22
* @FilePath : \\tms-obc-web\\src\\app\\core\\guards\\auth.guard.ts * @FilePath : \\tms-obc-web\\src\\app\\core\\guards\\auth.guard.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -28,46 +28,56 @@ import { Observable, of } from 'rxjs';
import { delay, map, switchMap, tap } from 'rxjs/operators'; import { delay, map, switchMap, tap } from 'rxjs/operators';
@Injectable() @Injectable()
export class AuthGuard implements CanActivate, CanActivateChild { export class AuthGuard extends ACLGuard {
constructor( constructor(
private srv: ACLService, srv: ACLService,
public srv1: ACLService,
private baseService: BaseService, private baseService: BaseService,
private menuService: MenuService, private menuService: MenuService,
private router: Router, router: Router,
private injector: Injector private inject: Injector
) {} ) {
super(srv, router, inject);
}
canActivate(route: ActivatedRouteSnapshot, _state: RouterStateSnapshot | null): Observable<boolean> { canActivate(route: ActivatedRouteSnapshot, _state: RouterStateSnapshot): Observable<boolean> {
if (Object.keys(route.params)?.length > 0 || !route.routeConfig?.path) { if (Object.keys(route.params)?.length > 0 || !route.routeConfig?.path) {
return this.handle(); return this.handle(route, _state, 1);
} else { } else {
return this.handle(_state?.url); return this.handle(route, _state, 1, _state?.url);
} }
} }
canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> { canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {
return this.handle(this.settingRoute(childRoute.params, state.url)); return this.handle(childRoute, state, 2, this.settingRoute(childRoute.params, state.url));
} }
private handle(route?: string): Observable<boolean> { private handle(route: ActivatedRouteSnapshot, state: RouterStateSnapshot, type: 1 | 2, router?: string): Observable<boolean> {
if (!route) { if (!router) {
return of(true); if (type === 1) {
return super.canActivate(route, state);
} else {
return super.canActivateChild(route, state);
}
} }
return this.baseService.request('/api/mdc/cuc/functionButton/getUserFunctionButton', { link: route }).pipe( // console.log(route, state, type, router);
return this.baseService.request('/api/mdc/cuc/functionButton/getUserFunctionButton', { link: router }).pipe(
switchMap(res => { switchMap(res => {
if (res) { if (res) {
console.log('666') // if (router === '/ticket/invoice-requested') {
console.log(res) // this.srv1.setAbility(['TICKET-INVOICE-REQUESTED-list']);
// this.srv.setAbility(res.abilities || []); // } else {
// this.menuService.resume(); // this.srv1.setAbility(res.abilities || []);
this.baseService.request('/api/mdc/cuc/enterpriseProject/getUserDefaultEnterpriseProject').subscribe((res: any) => { // }
if(!res.enterpriseIdentity){ this.srv1.setAbility(res.abilities || []);
this.srv.setAbility(res.abilities || []); this.menuService.resume();
this.menuService.resume(); }
} if (type === 1) {
}) return super.canActivate(route, state);
} else {
return super.canActivateChild(route, state);
} }
return of(true);
}) })
); );
} }

View File

@ -1,5 +1,5 @@
import { Inject, Injectable, Injector } from '@angular/core'; import { Inject, Injectable, Injector } from '@angular/core';
import { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router'; import { ActivatedRouteSnapshot, CanActivate, CanActivateChild, Router, RouterStateSnapshot } from '@angular/router';
import { sysConf } from '@conf/sys.conf'; import { sysConf } from '@conf/sys.conf';
import { CoreService } from '@core'; import { CoreService } from '@core';
import { ACLGuard, ACLService } from '@delon/acl'; import { ACLGuard, ACLService } from '@delon/acl';
@ -7,10 +7,8 @@ import { EAUserService } from '@shared';
import { Observable, of } from 'rxjs'; import { Observable, of } from 'rxjs';
@Injectable() @Injectable()
export class EATokenGuard extends ACLGuard { export class EATokenGuard implements CanActivate, CanActivateChild {
constructor(srv: ACLService, router: Router, private eaUserSrv: CoreService, private router2: Router, private inject: Injector) { constructor(srv: ACLService, router: Router, private eaUserSrv: CoreService, private router2: Router, private inject: Injector) {}
super(srv, router, inject);
}
canActivate(route: ActivatedRouteSnapshot, _state: RouterStateSnapshot | null): Observable<boolean> { canActivate(route: ActivatedRouteSnapshot, _state: RouterStateSnapshot | null): Observable<boolean> {
const canOpen = this.eaUserSrv.loginStatus; const canOpen = this.eaUserSrv.loginStatus;
@ -22,7 +20,7 @@ export class EATokenGuard extends ACLGuard {
}); });
return of(!canOpen); return of(!canOpen);
} }
return super.canActivate(route, _state); return of(true);
} }
canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> { canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {
@ -35,6 +33,6 @@ export class EATokenGuard extends ACLGuard {
}); });
return of(!canOpen); return of(!canOpen);
} }
return super.canActivateChild(childRoute, state); return of(true);
} }
} }

View File

@ -288,7 +288,7 @@ export class CostManagementComponent implements OnInit {
{ title: '应付金额', render: 'hrmoney', width: 100 ,className: 'text-right',}, { title: '应付金额', render: 'hrmoney', width: 100 ,className: 'text-right',},
{ title: '收/付款金额', render: 'hrpaymoney', width: 120 ,className: 'text-right',}, { title: '收/付款金额', render: 'hrpaymoney', width: 120 ,className: 'text-right',},
{ title: '开/收票金额', render: 'hrvatmoney', width: 120 ,className: 'text-right',}, { title: '开/收票金额', render: 'hrvatmoney', width: 120 ,className: 'text-right',},
{ title: '创建时间', index: 'auditTime', type: 'date', width: 200 ,className: 'text-center',}, { title: '创建时间', index: 'createTime', type: 'date', width: 200 ,className: 'text-center',},
{ title: '状态', index: 'stsLabel', width: 90 ,className: 'text-center',}, { title: '状态', index: 'stsLabel', width: 90 ,className: 'text-center',},
{ {
title: '操作', title: '操作',

View File

@ -32,7 +32,7 @@
{{headerInfo?.payMoney}} {{headerInfo?.payMoney}}
</se> </se>
</div> </div>
<div nz-col [nzXl]="8" [nzLg]="8" [nzSm]="8" [nzXs]="8" se-container [labelWidth]="100" col="1"> <div nz-col [nzXl]="8" [nzLg]="8" [nzSm]="8" [nzXs]="8" se-container [labelWidth]="150" col="1">
<se label="要求付款日期" required> <se label="要求付款日期" required>
{{headerInfo?.payDate}} {{headerInfo?.payDate}}
</se> </se>
@ -46,7 +46,7 @@
{{headerInfo?.payRemarks}} {{headerInfo?.payRemarks}}
</se> </se>
</div> </div>
<div nz-col [nzXl]="8" [nzLg]="8" [nzSm]="8" [nzXs]="8" se-container [labelWidth]="100" col="1"> <div nz-col [nzXl]="8" [nzLg]="8" [nzSm]="8" [nzXs]="8" se-container [labelWidth]="150" col="1">
<se label="付款方式" required> <se label="付款方式" required>
{{headerInfo?.payModeLabel}} {{headerInfo?.payModeLabel}}
</se> </se>
@ -60,7 +60,7 @@
</div> </div>
</nz-card> </nz-card>
<nz-card class="search-box" nzBordered> <!-- <nz-card class="search-box" nzBordered>
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24"> <div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
<sf #sf [schema]="searchSchema" <sf #sf [schema]="searchSchema"
@ -89,4 +89,4 @@
{{index+1}} {{index+1}}
</ng-template> </ng-template>
</st> </st>
</nz-card> </nz-card> -->

View File

@ -29,9 +29,20 @@ export class PaymentOrderComponent implements OnInit {
beforeReq = (requestOptions: STRequestOptions) => { beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) { if (this.sf) {
Object.assign(requestOptions.body, { let params = {...this.sf.value};
...this.sf.value if(params.payDate){
}); const payDate = {start:this.sf?.value?.payDate?.[0],end:this.sf?.value?.payDate?.[1]}
params.payDate = payDate;
}
if(params.payDate2){
const payDate2 = {start:this.sf?.value?.payDate2?.[0],end:this.sf?.value?.payDate2?.[1]}
params.payDate2 = payDate2;
}
if(params.createTime){
const createTime = {start:this.sf?.value?.createTime?.[0],end:this.sf?.value?.createTime?.[1]}
params.createTime = createTime;
}
Object.assign(requestOptions.body,params );
} }
return requestOptions; return requestOptions;
}; };
@ -82,7 +93,7 @@ export class PaymentOrderComponent implements OnInit {
hidden: true hidden: true
} }
}, },
paycodes: { paycode: {
type: 'string', type: 'string',
title: '付款单号', title: '付款单号',
}, },
@ -111,9 +122,10 @@ export class PaymentOrderComponent implements OnInit {
type: 'string', type: 'string',
title: '付款类型', title: '付款类型',
ui: { ui: {
widget: 'select', widget: 'dict-select',
containsAllLable: true,
params: { dictKey: 'pay:type' },
placeholder: '请选择', placeholder: '请选择',
allowClear: true,
visibleIf: { visibleIf: {
expand: (value: boolean) => value expand: (value: boolean) => value
} }
@ -123,9 +135,10 @@ export class PaymentOrderComponent implements OnInit {
type: 'string', type: 'string',
title: '付款方式', title: '付款方式',
ui: { ui: {
widget: 'select', widget: 'dict-select',
containsAllLable: true,
params: { dictKey: 'pay:mode' },
placeholder: '请选择', placeholder: '请选择',
allowClear: true,
visibleIf: { visibleIf: {
expand: (value: boolean) => value expand: (value: boolean) => value
} }
@ -143,7 +156,7 @@ export class PaymentOrderComponent implements OnInit {
} }
} }
}, },
billHCodes: { billCode: {
type: 'string', type: 'string',
title: '订单号', title: '订单号',
ui: { ui: {
@ -155,7 +168,7 @@ export class PaymentOrderComponent implements OnInit {
} }
} }
}, },
paydate: { payDate: {
title: '要求付款日期', title: '要求付款日期',
type: 'string', type: 'string',
ui: { ui: {
@ -166,7 +179,7 @@ export class PaymentOrderComponent implements OnInit {
} }
} as SFDateWidgetSchema } as SFDateWidgetSchema
}, },
createTi1me: { payDate2: {
title: '确认日期', title: '确认日期',
type: 'string', type: 'string',
ui: { ui: {
@ -177,25 +190,19 @@ export class PaymentOrderComponent implements OnInit {
} }
} as SFDateWidgetSchema } as SFDateWidgetSchema
}, },
waybillHCodes: { waybillCode: {
type: 'string', type: 'string',
title: '运单号', title: '运单号',
ui: { ui: {
widget: 'select',
placeholder: '请选择',
allowClear: true,
visibleIf: { visibleIf: {
expand: (value: boolean) => value expand: (value: boolean) => value
} }
} }
}, },
feeHCodes: { feeCode: {
type: 'string', type: 'string',
title: '费用号', title: '费用号',
ui: { ui: {
widget: 'select',
placeholder: '请选择',
allowClear: true,
visibleIf: { visibleIf: {
expand: (value: boolean) => value expand: (value: boolean) => value
} }
@ -212,7 +219,7 @@ export class PaymentOrderComponent implements OnInit {
} }
} as SFDateWidgetSchema } as SFDateWidgetSchema
}, },
remarks: { payRemarks: {
type: 'string', type: 'string',
title: '付款备注', title: '付款备注',
ui: { ui: {
@ -240,7 +247,7 @@ export class PaymentOrderComponent implements OnInit {
className: 'text-right', className: 'text-right',
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.payMoney }) } widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.payMoney }) }
}, },
{ title: '付款类型', index: 'payType', width: 130 }, { title: '付款类型', index: 'payTypeLabel', width: 130 },
{ title: '付款方式', index: 'payModeLabel', width: 130 }, { title: '付款方式', index: 'payModeLabel', width: 130 },
{ title: '结算客户', index: 'cnoName', width: 160 }, { title: '结算客户', index: 'cnoName', width: 160 },
{ title: '收款人', index: 'hrToLabel', width: 150 }, { title: '收款人', index: 'hrToLabel', width: 150 },

View File

@ -20,6 +20,7 @@ import { of } from 'rxjs';
import { PublishSuccessComponent } from '../onecar-publish/publish-success/publish-success.component'; import { PublishSuccessComponent } from '../onecar-publish/publish-success/publish-success.component';
import { PublishAddressListComponent } from '../onecar-publish/address-list/address-list.component'; import { PublishAddressListComponent } from '../onecar-publish/address-list/address-list.component';
import { TranAgreementComponent } from '../tran-agreement/tran-agreement.component'; import { TranAgreementComponent } from '../tran-agreement/tran-agreement.component';
import differenceInCalendarDays from 'date-fns/differenceInCalendarDays';
@Component({ @Component({
selector: 'app-publish-goods-bulk-publish', selector: 'app-publish-goods-bulk-publish',
templateUrl: './bulk-publish.component.html', templateUrl: './bulk-publish.component.html',
@ -141,12 +142,26 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
} }
}, },
deadlineTime: { deadlineTime: {
title: '截日期', title: '截日期',
type: 'string', type: 'string',
format: 'date-time', format: 'date-time',
ui: { ui: {
placeholder: '请输入', placeholder: '请输入',
format: 'yyyy-MM-dd HH:mm:ss' format: 'yyyy-MM-dd HH:mm:ss',
disabledDate: (current: Date): boolean => {
let d = new Date();
let year = d.getFullYear();
let month = d.getMonth();
let date = d.getDate();
let mydate = new Date(year, month + 3, date);
return differenceInCalendarDays(current, new Date()) < 0 || differenceInCalendarDays(current, mydate) > 0;
},
validator: (val) => {
if( new Date(val) <new Date()){
return [{ keyword: 'validTime', message: '截止日期需大于当前时间' }];
}
return [];
},
} }
}, },
dispatchPhone: { dispatchPhone: {

View File

@ -20,6 +20,7 @@ import { PublishGoodsChooseFamifiarComponent } from '../choose-famifiar/choose-f
import { PublishAddressListComponent } from '../onecar-publish/address-list/address-list.component'; import { PublishAddressListComponent } from '../onecar-publish/address-list/address-list.component';
import { PublishSuccessComponent } from '../onecar-publish/publish-success/publish-success.component'; import { PublishSuccessComponent } from '../onecar-publish/publish-success/publish-success.component';
import { TranAgreementComponent } from '../tran-agreement/tran-agreement.component'; import { TranAgreementComponent } from '../tran-agreement/tran-agreement.component';
import differenceInCalendarDays from 'date-fns/differenceInCalendarDays';
@Component({ @Component({
selector: 'app-publish-goods-bulk-publish', selector: 'app-publish-goods-bulk-publish',
templateUrl: './bulk-release-publish.component.html', templateUrl: './bulk-release-publish.component.html',
@ -161,12 +162,26 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
} }
}, },
deadlineTime: { deadlineTime: {
title: '截日期', title: '截日期',
type: 'string', type: 'string',
format: 'date-time', format: 'date-time',
ui: { ui: {
placeholder: '请输入', placeholder: '请输入',
format: 'yyyy-MM-dd HH:mm:ss' format: 'yyyy-MM-dd HH:mm:ss',
disabledDate: (current: Date): boolean => {
let d = new Date();
let year = d.getFullYear();
let month = d.getMonth();
let date = d.getDate();
let mydate = new Date(year, month + 3, date);
return differenceInCalendarDays(current, new Date()) < 0 || differenceInCalendarDays(current, mydate) > 0;
},
validator: (val) => {
if( new Date(val) <new Date()){
return [{ keyword: 'validTime', message: '截止日期需大于当前时间' }];
}
return [];
},
} }
}, },
dispatchPhone: { dispatchPhone: {

View File

@ -9,8 +9,8 @@
<se-container se-container="1"> <se-container se-container="1">
<se label="角色权限" required [labelWidth]="120"> <se label="角色权限" required [labelWidth]="120">
<app-cuc-menu #menu (changeData)="getData($event)" [type]="i.id === 0 ? 'add' : 'edit'" [source]="source" <app-cuc-menu #menu (changeData)="getData($event)" [type]="i.id === 0 ? 'add' : 'edit'" [source]="source"
[roleId]="i.id" [isAuthorityIdDTOList]="roleInfoData.authority" [roleId]="i.id" [isAuthorityIdDTOList]="roleInfoData.authority || []"
[authorityAssistId]="roleInfoData.authorityAssistId"> [authorityAssistId]="roleInfoData.authorityAssistId || []">
</app-cuc-menu> </app-cuc-menu>
</se> </se>
</se-container> </se-container>

View File

@ -100,9 +100,10 @@ export class SettingRoleEditComponent implements OnInit {
id: this.i.id id: this.i.id
}; };
this.service.request(this.service.$api_getRoleInfo, params).subscribe(res => { this.service.request(this.service.$api_getRoleInfo, params).subscribe(res => {
this.roleInfoData = res; if (res) {
this.roleInfoData.authority = res.authority || []; this.roleInfoData = res;
this.roleInfoData.authorityAssistId = res.authorityAssistId || []; }
if (this.source === '') { if (this.source === '') {
this.initSF(); this.initSF();
} }
@ -121,14 +122,12 @@ export class SettingRoleEditComponent implements OnInit {
// this.service.msgSrv.warning('请选择权限!'); // this.service.msgSrv.warning('请选择权限!');
// return; // return;
// } // }
console.log(this.menu.nzTreeComponent.getCheckedNodeList()); const auths = this.menu?.washTree();
const selectedFun = this.menu?.nzTreeComponent?.getCheckedNodeList()?.map(node => ({ authorityId: node.key }));
const authorityAssistId = selectedFun?.map(node => node.authorityId);
const params: any = { const params: any = {
id: this.i.id, id: this.i.id,
...this.sf.value, ...this.sf.value,
authority: selectedFun, authority: auths.authority,
authorityAssistId: authorityAssistId authorityAssistId: auths.authorityAssistId
}; };
// if (this.sf) { // if (this.sf) {
// this.appList.forEach(item => { // this.appList.forEach(item => {

View File

@ -1,7 +1,7 @@
import { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnInit, Output, ViewChild } from '@angular/core'; import { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';
import { ModalHelper, _HttpClient } from '@delon/theme'; import { ModalHelper, _HttpClient } from '@delon/theme';
import { EAEnvironmentService } from '@shared'; import { EAEnvironmentService } from '@shared';
import { NzFormatEmitEvent, NzTreeNodeOptions } from 'ng-zorro-antd/core/tree'; import { NzFormatEmitEvent, NzTreeNode, NzTreeNodeOptions } from 'ng-zorro-antd/core/tree';
import { NzTreeComponent } from 'ng-zorro-antd/tree'; import { NzTreeComponent } from 'ng-zorro-antd/tree';
import { SystemService } from '../../../services/system.service'; import { SystemService } from '../../../services/system.service';
import { Funcs } from './funcs'; import { Funcs } from './funcs';
@ -11,9 +11,9 @@ import { Funcs } from './funcs';
templateUrl: './menu.component.html', templateUrl: './menu.component.html',
styleUrls: ['menu.less'] styleUrls: ['menu.less']
}) })
export class SettingMenuComponent implements OnInit { export class SettingMenuComponent implements OnInit, OnChanges {
@ViewChild('nzTreeComponent', { static: false }) nzTreeComponent!: NzTreeComponent; @ViewChild('nzTreeComponent', { static: false }) nzTreeComponent!: NzTreeComponent;
origin: any = { buttonInfoList: Funcs[0].children, dictList: Funcs[0].children }; origin: any = { buttonInfoList: [], dictList: [] };
node: any = {}; node: any = {};
authority: any[] = []; authority: any[] = [];
defaultSelectedKeys: any[] = []; defaultSelectedKeys: any[] = [];
@ -31,12 +31,15 @@ export class SettingMenuComponent implements OnInit {
constructor(public service: SystemService, private cdr: ChangeDetectorRef, private envSrv: EAEnvironmentService) { constructor(public service: SystemService, private cdr: ChangeDetectorRef, private envSrv: EAEnvironmentService) {
this.getAllFunction(); this.getAllFunction();
} }
ngOnChanges(changes: SimpleChanges): void {
ngOnInit() { if (changes.isAuthorityIdDTOList) {
if (this.type === 'edit') { if (this.type === 'edit') {
this.authority = this.isAuthorityIdDTOList; this.authority = this.isAuthorityIdDTOList || [];
}
} }
} }
ngOnInit() {}
getAllFunction() { getAllFunction() {
this.service this.service
.request(this.service.$api_getAllFunctionInfoByAppId, { appId: this.envSrv.env.appId }, 'POST', true, 'FORM') .request(this.service.$api_getAllFunctionInfoByAppId, { appId: this.envSrv.env.appId }, 'POST', true, 'FORM')
@ -51,7 +54,7 @@ export class SettingMenuComponent implements OnInit {
this.cdr.detectChanges(); this.cdr.detectChanges();
}); });
} }
addAuthority(origin: { id: any; all: any }, node: { buttonInfoList: any[] }, item?: { checked: any; id: any }) { addAuthority(origin: { id: any; all: any }, node: { buttonInfoList: any[] }, item?: { checked: any; functionButtonId: any }) {
if (this.authority.length && this.authority.filter(authItem => authItem.authorityId === origin.id).length) { if (this.authority.length && this.authority.filter(authItem => authItem.authorityId === origin.id).length) {
// 判断此菜单权限是否已经存在权限列表中 // 判断此菜单权限是否已经存在权限列表中
// 当前操作菜单id存在权限列表里 // 当前操作菜单id存在权限列表里
@ -61,14 +64,14 @@ export class SettingMenuComponent implements OnInit {
if (item) { if (item) {
// 单选 // 单选
if (item.checked) { if (item.checked) {
if (menuItem.buttonAuthorityIds.indexOf(item.id) === -1) { if (menuItem.buttonAuthorityIds.indexOf(item.functionButtonId) === -1) {
// 如果该按钮在数据权限数组中不存在 // 如果该按钮在数据权限数组中不存在
menuItem.buttonAuthorityIds.push(item.id); menuItem.buttonAuthorityIds.push(item.functionButtonId);
} }
} else { } else {
if (menuItem.buttonAuthorityIds && menuItem.buttonAuthorityIds.length) { if (menuItem.buttonAuthorityIds && menuItem.buttonAuthorityIds.length) {
menuItem.buttonAuthorityIds.forEach((btnItem: any, index: any) => { menuItem.buttonAuthorityIds.forEach((btnItem: any, index: any) => {
if (btnItem === item.id) { if (btnItem === item.functionButtonId) {
menuItem.buttonAuthorityIds.splice(index, 1); menuItem.buttonAuthorityIds.splice(index, 1);
} }
}); });
@ -99,7 +102,7 @@ export class SettingMenuComponent implements OnInit {
const buttonAuthorityIds = []; const buttonAuthorityIds = [];
if (item) { if (item) {
// 全选 // 全选
buttonAuthorityIds.push(item.id); buttonAuthorityIds.push(item.functionButtonId);
} else { } else {
node.buttonInfoList.forEach((nodeItem: { id: any; checked: boolean }) => { node.buttonInfoList.forEach((nodeItem: { id: any; checked: boolean }) => {
if (origin.all) { if (origin.all) {
@ -110,7 +113,8 @@ export class SettingMenuComponent implements OnInit {
} }
const obj: any = { const obj: any = {
authorityId: origin.id, authorityId: origin.id,
buttonAuthorityIds buttonAuthorityIds,
dataAuthority: []
}; };
this.authority.push(obj); this.authority.push(obj);
} }
@ -238,46 +242,44 @@ export class SettingMenuComponent implements OnInit {
}); });
} }
nzEvent(event: any): void { nzEvent(event: any): void {
const ele = event.event.target as HTMLElement;
this.origin = event.node.origin; this.origin = event.node.origin;
this.node = event.node.origin; this.node = event.node.origin;
if (!event.node.origin.isLeaf) { if (!event.node.origin.isLeaf) {
event.node.isExpanded = !event.node.isExpanded; event.node.isExpanded = !event.node.isExpanded;
} else { } else {
// this.initButtonList(event.node.key, event.node.origin); this.initButtonList(event.node.key, event.node.origin);
// this.initDictList(event.node.key, event.node.origin); // this.initDictList(event.node.key, event.node.origin);
} }
} }
washTree() { washTree() {
console.log(this.nzTreeComponent.getCheckedNodeList()); const authorityMenu: any[] = []; // this.authority
const tempAuthorityIdDTOListMenu: any[] = [];
// const authorityMenu: any[] = []; // this.authority const checkedNode: any = this.nzTreeComponent.getCheckedNodeList();
// const tempAuthorityIdDTOListMenu: any[] = []; const halfCheckedNode: any = this.nzTreeComponent.getHalfCheckedNodeList();
// const checkedNode: any = this.nzTreeComponent.getCheckedNodeList(); this.authorityAssistId = [];
// const halfCheckedNode: any = this.nzTreeComponent.getHalfCheckedNodeList(); halfCheckedNode.forEach((item: { key: any }) => {
// this.authorityAssistId = []; authorityMenu.push({ authorityId: item.key });
// halfCheckedNode.forEach((item: { key: any }) => { tempAuthorityIdDTOListMenu.push(item.key);
// authorityMenu.push({ authorityId: item.key }); });
// tempAuthorityIdDTOListMenu.push(item.key); this.overWashTree(checkedNode, tempAuthorityIdDTOListMenu, authorityMenu);
// }); if (this.authority && this.authority.length) {
// this.overWashTree(checkedNode, tempAuthorityIdDTOListMenu, authorityMenu); this.authority.forEach(item => {
// if (this.authority && this.authority.length) { if (tempAuthorityIdDTOListMenu.indexOf(item.authorityId) !== -1) {
// this.authority.forEach(item => { tempAuthorityIdDTOListMenu.forEach((oldItem, oldIndex) => {
// if (tempAuthorityIdDTOListMenu.indexOf(item.authorityId) !== -1) { if (oldItem === item.authorityId) {
// tempAuthorityIdDTOListMenu.forEach((oldItem, oldIndex) => { authorityMenu[oldIndex] = item;
// if (oldItem === item.authorityId) { }
// authorityMenu[oldIndex] = item; });
// } }
// }); });
// } }
// }); const result = {
// } authority: authorityMenu,
// const result = { authorityAssistId: this.authorityAssistId
// authority: authorityMenu, };
// authorityAssistId: this.authorityAssistId this.changeData.emit(result);
// }; return result;
// this.changeData.emit(result);
} }
overWashTree(children: any[], tempAuthorityIdDTOListMenu: any[], authorityMenu: any[]) { overWashTree(children: any[], tempAuthorityIdDTOListMenu: any[], authorityMenu: any[]) {
children.forEach((item: any) => { children.forEach((item: any) => {
@ -315,9 +317,9 @@ export class SettingMenuComponent implements OnInit {
// 如果当前菜单Id等于暂存权限数组的Id // 如果当前菜单Id等于暂存权限数组的Id
if (item.buttonAuthorityIds && item.buttonAuthorityIds.length) { if (item.buttonAuthorityIds && item.buttonAuthorityIds.length) {
// 如果当前菜单Id权限数组不为空 // 如果当前菜单Id权限数组不为空
origin.buttonInfoList.forEach((btnItem: { id: any; checked: boolean }) => { origin.buttonInfoList.forEach((btnItem: { functionButtonId: any; checked: boolean }) => {
// 判断已有权限id是否存在 // 判断已有权限id是否存在
if (item.buttonAuthorityIds.indexOf(btnItem.id) !== -1) { if (item.buttonAuthorityIds.indexOf(btnItem.functionButtonId) !== -1) {
btnItem.checked = true; btnItem.checked = true;
} else { } else {
btnItem.checked = false; btnItem.checked = false;

View File

@ -164,7 +164,7 @@ export class SystemService extends BaseService {
$api_getRoleTemplateInfo: string = ''; $api_getRoleTemplateInfo: string = '';
$api_getFunctionButtonInfo: string = ''; $api_getFunctionButtonInfo: string = '/api/mdc/cuc/functionButton/getFunctionButtonByFunctionId';
$api_getFunctionDataInfo: string = ''; $api_getFunctionDataInfo: string = '';
$api_getAppList: string = ''; $api_getAppList: string = '';
$api_getRoleTemplateListByAppId: string = ''; $api_getRoleTemplateListByAppId: string = '';

View File

@ -36,10 +36,10 @@
<nz-card class="content-box" nzBordered> <nz-card class="content-box" nzBordered>
<nz-tabset [nzTabBarExtraContent]="extraTemplate"> <nz-tabset [nzTabBarExtraContent]="extraTemplate">
<nz-tab nzTitle="待受理" (nzClick)="selectChange(1)"></nz-tab> <nz-tab nzTitle="待受理" (nzClick)="selectChange('1')"></nz-tab>
<nz-tab nzTitle="处理中" (nzClick)="selectChange(2)"></nz-tab> <nz-tab nzTitle="处理中" (nzClick)="selectChange('2')"></nz-tab>
<nz-tab nzTitle="已拒绝" (nzClick)="selectChange(4)"></nz-tab> <nz-tab nzTitle="已拒绝" (nzClick)="selectChange('4')"></nz-tab>
<nz-tab nzTitle="已完成" (nzClick)="selectChange(3)"></nz-tab> <nz-tab nzTitle="已完成" (nzClick)="selectChange('3')"></nz-tab>
<nz-tab nzTitle="全部" (nzClick)="selectChange(null)"></nz-tab> <nz-tab nzTitle="全部" (nzClick)="selectChange(null)"></nz-tab>
</nz-tabset> </nz-tabset>
<ng-template #extraTemplate> <ng-template #extraTemplate>
@ -70,7 +70,7 @@
> >
<ng-template st-row="vatappcode" let-item let-index="index" let-column="column"> <ng-template st-row="vatappcode" let-item let-index="index" let-column="column">
{{ item.vatappcode }} <br /> {{ item.vatappcode }} <br />
<label class="text-primary">待受理</label> <label class="text-primary">{{item.stsLabel}}</label>
</ng-template> </ng-template>
</st> </st>
</nz-card> </nz-card>

View File

@ -23,7 +23,7 @@ export class InvoiceRequestedComponent implements OnInit {
sf!: SFComponent; sf!: SFComponent;
@ViewChild('rejectModal', { static: false }) @ViewChild('rejectModal', { static: false })
rejectModal!: any; rejectModal!: any;
resourceStatus!: any; resourceStatus: any = '1';
columns: STColumn[] = this.initST(); columns: STColumn[] = this.initST();
searchSchema: SFSchema = this.initSF(); searchSchema: SFSchema = this.initSF();
@ -252,7 +252,7 @@ export class InvoiceRequestedComponent implements OnInit {
placeholder: '请输入' placeholder: '请输入'
} }
}, },
orderSn3: { feeHCode: {
type: 'string', type: 'string',
title: '费用号', title: '费用号',
ui: { ui: {
@ -271,7 +271,7 @@ export class InvoiceRequestedComponent implements OnInit {
asyncData: () => this.service.getEnterpriseProject() asyncData: () => this.service.getEnterpriseProject()
} }
}, },
ltd: { ltdId: {
type: 'string', type: 'string',
title: '网络货运人', title: '网络货运人',
ui: { ui: {
@ -285,7 +285,7 @@ export class InvoiceRequestedComponent implements OnInit {
}, },
default: '' default: ''
}, },
otherReq: { otherremarks: {
type: 'string', type: 'string',
title: '其他需求', title: '其他需求',
enum: [{ label: '全部', value: '' }], enum: [{ label: '全部', value: '' }],
@ -396,7 +396,14 @@ export class InvoiceRequestedComponent implements OnInit {
{ title: '注册地址', index: 'registerAddr', width: 140 }, { title: '注册地址', index: 'registerAddr', width: 140 },
{ title: '注册电话', index: 'registerPhone', width: 120 }, { title: '注册电话', index: 'registerPhone', width: 120 },
{ title: '服务名称', index: 'vatname', width: 100 }, { title: '服务名称', index: 'vatname', width: 100 },
{ title: '销货清单', index: 'isdetail', width: 100 }, {
title: '销货清单',
index: 'isdetail',
width: 100,
format: item => {
return item.isdetail === 0 ? '不需要' : '需要';
}
},
{ title: '其他要求', index: 'otherremarks', width: 100 }, { title: '其他要求', index: 'otherremarks', width: 100 },
{ title: '申请人', index: 'applyName', width: 90 }, { title: '申请人', index: 'applyName', width: 90 },
{ title: '申请时间', index: 'applyTime', type: 'date', width: 150 }, { title: '申请时间', index: 'applyTime', type: 'date', width: 150 },
@ -429,7 +436,7 @@ export class InvoiceRequestedComponent implements OnInit {
{ {
text: '查看原因<br/>', text: '查看原因<br/>',
click: item => this.showReason(item) click: item => this.showReason(item)
}, }
// { // {
// text: '下载对账单' // text: '下载对账单'
// // click: item => this.rejectAction(item) // // click: item => this.rejectAction(item)

View File

@ -15,7 +15,7 @@ import { InvoiceRequestedComponent } from './components/invoice-requested/invoic
import { InvoicedListComponent } from './components/invoiced-list/invoiced-list.component'; import { InvoicedListComponent } from './components/invoiced-list/invoiced-list.component';
const routes: Routes = [ const routes: Routes = [
{ path: 'invoice-requested', component: InvoiceRequestedComponent }, { path: 'invoice-requested', component: InvoiceRequestedComponent, data: { guard: { ability: ['TICKET-INVOICE-REQUESTED-list'] } } },
{ path: 'invoice-requested/detail/:id', component: InvoiceRequestedDetailComponent }, { path: 'invoice-requested/detail/:id', component: InvoiceRequestedDetailComponent },
{ path: 'invoice-list', component: InvoicedListComponent }, { path: 'invoice-list', component: InvoicedListComponent },
{ path: 'invoice-list/detail/:id', component: InvoiceDetailComponent }, { path: 'invoice-list/detail/:id', component: InvoiceDetailComponent },
@ -28,7 +28,7 @@ const routes: Routes = [
{ path: 'input-invoice', component: InputInvoiceComponent }, { path: 'input-invoice', component: InputInvoiceComponent },
{ path: 'input-invoice/detail/:id', component: InputInvoiceDetailComponent }, { path: 'input-invoice/detail/:id', component: InputInvoiceDetailComponent },
{ path: 'input-invoice/edit/:id', component: EditCollectionInvoiceComponent }, { path: 'input-invoice/edit/:id', component: EditCollectionInvoiceComponent },
{ path: 'express-info', component: ExpressInfoComponent }, { path: 'express-info', component: ExpressInfoComponent }
]; ];
@NgModule({ @NgModule({

View File

@ -33,7 +33,7 @@
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div> </div>
<div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right"> <div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right">
<button nz-button nzType="primary" acl [acl-ability]="['VEHICLE-LIST-search']" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button> <button nz-button nzType="primary" acl [acl-ability]="['VEHICLE-AUDIT-search']" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
<button nz-button nzType="primary" [disabled]="service.http.loading" (click)="exportFire()">导出</button> <button nz-button nzType="primary" [disabled]="service.http.loading" (click)="exportFire()">导出</button>
<button nz-button [disabled]="service.http.loading"(click)="resetSF()">重置</button> <button nz-button [disabled]="service.http.loading"(click)="resetSF()">重置</button>
<button nz-button nzType="link" (click)="expandToggle()"> <button nz-button nzType="link" (click)="expandToggle()">

View File

@ -8,8 +8,6 @@
*/ */
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router'; import { RouterModule, Routes } from '@angular/router';
import { ACLGuard, ACLGuardType } from '@delon/acl';
import { AuthGuard } from 'src/app/core/guards/auth.guard';
import { VehicleComponentsAuditComponent } from './components/audit/audit.component'; import { VehicleComponentsAuditComponent } from './components/audit/audit.component';
import { VehicleComponentsAuditDetailComponent } from './components/audit/detail/detail.component'; import { VehicleComponentsAuditDetailComponent } from './components/audit/detail/detail.component';
import { VehicleComponentsListDetailComponent } from './components/list/detail/detail.component'; import { VehicleComponentsListDetailComponent } from './components/list/detail/detail.component';

View File

@ -75,7 +75,7 @@ export class ShipperBaseService extends BaseService {
const list = res.map(((item: any) => { const list = res.map(((item: any) => {
return { return {
label: item.name, label: item.name,
value: item.userId value: item.appUserId
} }
})) }))
const obj = []; const obj = [];
@ -100,7 +100,7 @@ export class ShipperBaseService extends BaseService {
const list = res.map(((item: any) => { const list = res.map(((item: any) => {
return { return {
label: `${item.name}/${item.telephone}`, label: `${item.name}/${item.telephone}`,
value: item.userId value: item.appUserId
} }
})) }))
return [...list]; return [...list];

View File

@ -63,6 +63,20 @@
window._AMapSecurityConfig = { window._AMapSecurityConfig = {
securityJsCode: 'dde4610c3bd04617b99fb55ba5adbe9d', securityJsCode: 'dde4610c3bd04617b99fb55ba5adbe9d',
} }
var zoom = window.devicePixelRatio || window.screen.deviceXDPI / window.screen.logicalXDPI;
if (!!window.ActiveXObject || "ActiveXObject" in window) {
if (zoom != 1 && zoom !=2 && zoom !=3) {
alert('系统检测到您的设备对显示进行放大,可能导致页面显示不全,请调整后打开/或使用其他浏览器!')
}
} else {
if(document.body.clientWidth>=1280){
if (zoom != 1 && zoom !=2 && zoom !=3) {
var c = document.querySelector('body');
c.style.zoom = -0.62 * zoom + 1.65;
}
}
}
</script> </script>
<!-- <script type="text/javascript" src='//webapi.amap.com/maps?v=2.0&key=63f9573ca55fef2b92d4ffe0c85dea8f'></script> <!-- <script type="text/javascript" src='//webapi.amap.com/maps?v=2.0&key=63f9573ca55fef2b92d4ffe0c85dea8f'></script>
<script src="//webapi.amap.com/ui/1.1/main.js?v=1.1.1"></script> --> <script src="//webapi.amap.com/ui/1.1/main.js?v=1.1.1"></script> -->