This commit is contained in:
Taric Xin
2021-12-02 10:10:24 +08:00
parent 1ea3377be7
commit df711ddcb8
12 changed files with 739 additions and 6 deletions

View File

@ -0,0 +1,258 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { SFComponent, SFSchema, SFUploadWidgetSchema } from '@delon/form';
import { Observable, Observer } from 'rxjs';
import { SystemService } from '../../services/system.service';
@Component({
selector: 'app-system-config',
templateUrl: './system-config.component.html',
styleUrls: ['./system-config.component.less']
})
export class SystemConfigComponent implements OnInit {
@ViewChild('sf', { static: false }) sf!: SFComponent;
formDate: any = {
isAudit: false,
isEveryDay: false,
isEveryWeek: false
};
tabs = [
{
name: '货主端配置'
},
{
name: '司机端配置'
}
];
selectedTab = 0;
checkOptionsOne = [
{ label: '周一', value: '周一', checked: true },
{ label: '周二', value: '周二' },
{ label: '周三', value: '周三' },
{ label: '周四', value: '周四' },
{ label: '周五', value: '周五' },
{ label: '周六', value: '周六' },
{ label: '周日', value: '周日' }
];
i: any;
schema!: SFSchema;
schema2!: SFSchema;
imageConfig = {
widget: 'upload',
action: `/scm/cms/cms/upload/multipartFile/fileModel`,
limit: 1,
limitFileCount: 1,
resReName: 'url',
urlReName: 'url',
data: {
appId: this.service.envSrv.getEnvironment().appId
},
multiple: false,
listType: 'picture-card',
showRequired: true
};
constructor(private service: SystemService) {}
ngOnInit() {
this.initSF();
}
changeType(type: number): void {
this.selectedTab = type;
}
initSF() {
this.schema = {
properties: {
sysMinLogo: {
type: 'string',
title: '系统LOGO',
// enum: [],
ui: {
...this.imageConfig,
descriptionI18n: '大尺寸logo支持JPG、PNG格式文件小于2M建议尺寸300*170px。',
change: args => {
if (args.type === 'success') {
const avatar = this.getImageModel(args, 'sysMinLogo');
this.sf?.setValue('/sysMinLogo', avatar);
this.i.sysMinLogo = avatar;
}
},
beforeUpload: this.uploadBefore
} as SFUploadWidgetSchema
},
sysMaxLogo: {
type: 'string',
title: '用户默认头像',
ui: {
...this.imageConfig,
descriptionI18n: '支持JPG、PNG格式文件小于2M建议尺寸60*60px。',
change: args => {
if (args.type === 'success') {
const avatar = this.getImageModel(args, -1);
this.sf?.setValue('/sysMaxLogo', avatar);
this.i.sysMaxLogo = avatar;
}
},
beforeUpload: this.uploadBefore
} as SFUploadWidgetSchema
},
sysMaxLogo1: {
type: 'string',
title: '用户默认头像',
ui: {
...this.imageConfig,
descriptionI18n: '支持JPG、PNG格式文件小于5M建议尺寸375*773px。',
change: args => {
if (args.type === 'success') {
const avatar = this.getImageModel(args, -1);
this.sf?.setValue('/sysMaxLogo1', avatar);
this.i.sysMaxLogo1 = avatar;
}
},
beforeUpload: this.uploadBefore
} as SFUploadWidgetSchema
},
},
required: ['sysMinLogo', 'sysMaxLogo', 'sysMaxLogo1']
};
this.schema2 = {
properties: {
sysMinLogo: {
type: 'string',
title: '系统LOGO(小)',
// enum: [],
ui: {
...this.imageConfig,
descriptionI18n: '小尺寸logo支持JPG、PNG格式文件小于2M建议尺寸32*32px。',
change: args => {
if (args.type === 'success') {
const avatar = this.getImageModel(args, 'sysMinLogo');
this.sf?.setValue('/sysMinLogo', avatar);
this.i.sysMinLogo = avatar;
}
},
beforeUpload: this.uploadBefore
} as SFUploadWidgetSchema
},
sysMaxLogo: {
type: 'string',
title: '系统LOGO(大)',
ui: {
...this.imageConfig,
descriptionI18n: '小尺寸logo支持JPG、PNG格式文件小于2M建议尺寸32*32px。',
change: args => {
if (args.type === 'success') {
const avatar = this.getImageModel(args, -1);
this.sf?.setValue('/sysMaxLogo', avatar);
this.i.sysMaxLogo = avatar;
}
},
beforeUpload: this.uploadBefore
} as SFUploadWidgetSchema
},
sysMaxLogo1: {
type: 'string',
title: '用户默认头像',
ui: {
...this.imageConfig,
descriptionI18n: '支持JPG、PNG格式文件小于2M建议尺寸60*60px。',
change: args => {
if (args.type === 'success') {
const avatar = this.getImageModel(args, -1);
this.sf?.setValue('/sysMaxLogo1', avatar);
this.i.sysMaxLogo1 = avatar;
}
},
beforeUpload: this.uploadBefore
} as SFUploadWidgetSchema
},
sysMaxLogo2: {
type: 'string',
title: '企业默认头像',
ui: {
...this.imageConfig,
descriptionI18n: '支持JPG、PNG格式文件小于2M建议尺寸60*60px。',
change: args => {
if (args.type === 'success') {
const avatar = this.getImageModel(args, -1);
this.sf?.setValue('/sysMaxLogo2', avatar);
this.i.sysMaxLogo2 = avatar;
}
},
beforeUpload: this.uploadBefore
} as SFUploadWidgetSchema
},
sysMaxLogo3: {
type: 'string',
title: '货主PC端登陆页海报',
ui: {
...this.imageConfig,
descriptionI18n: '支持JPG、PNG格式文件小于5M建议尺寸1920*630px。',
change: args => {
if (args.type === 'success') {
const avatar = this.getImageModel(args, -1);
this.sf?.setValue('/sysMaxLogo3', avatar);
this.i.sysMaxLogo3 = avatar;
}
},
beforeUpload: this.uploadBefore
} as SFUploadWidgetSchema
},
sysMaxLogo4: {
type: 'string',
title: 'APP开屏海报',
ui: {
...this.imageConfig,
descriptionI18n: '支持JPG、PNG格式文件小于5M建议尺寸375*773px。',
change: args => {
if (args.type === 'success') {
const avatar = this.getImageModel(args, -1);
this.sf?.setValue('/sysMaxLogo4', avatar);
this.i.sysMaxLogo4 = avatar;
}
},
beforeUpload: this.uploadBefore
} as SFUploadWidgetSchema
},
},
required: ['sysMinLogo', 'sysMaxLogo', 'sysMaxLogo1', 'sysMaxLogo2', 'sysMaxLogo3', 'sysMaxLogo4']
};
}
private uploadBefore = (file: any, fileList: any) => {
return new Observable((observer: Observer<boolean>) => {
const isLt1M = file.size / 1024 / 1024 < 2;
const fileType = 'image/png,image/jpeg';
if (fileType.indexOf(file.type) === -1) {
this.service.msgSrv.warning('图片格式不正确!');
observer.complete();
return;
}
if (!isLt1M) {
// this.service.msgSrv.warning('图片需小于1M');
this.service.msgSrv.warning('图片大小超过2M!');
observer.complete();
return;
}
observer.next(isLt1M);
observer.complete();
});
};
private getImageModel(args: any, key: any) {
return [
{
uid: key,
name: 'LOGO',
status: 'done',
url: args.fileList[0].response.url,
response: {
url: args.fileList[0].response.url
}
}
];
}
}