返佣
This commit is contained in:
		| @ -4,7 +4,7 @@ | ||||
|  * @Author       : Shiming | ||||
|  * @Date         : 2022-02-24 15:07:57 | ||||
|  * @LastEditors  : Shiming | ||||
|  * @LastEditTime : 2022-03-11 15:22:36 | ||||
|  * @LastEditTime : 2022-04-20 15:42:10 | ||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\partner\\partner-routing.module.ts | ||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||
|  */ | ||||
| @ -49,6 +49,7 @@ import { BannerComponentsAddComponent } from './knowledge/banner/components/add/ | ||||
| import { PersonalPartnerDetailComponent } from './partner-list/components/personal-partner-detail/personal-partner-detail.component'; | ||||
| import { ParterAdviceFeedbackListComponent } from './advice-feedback/components/list/list.component'; | ||||
| import { ParterAdviceFeedbackDetailComponent } from './advice-feedback/components/feedback-detail/feedback-detail.component'; | ||||
| import { PartnerSystemConfigComponent } from './system-config/components/config/config.component'; | ||||
|  | ||||
| const routes: Routes = [ | ||||
|   { | ||||
| @ -152,6 +153,12 @@ const routes: Routes = [ | ||||
|       { path: 'record/detail/:id', component: PartnerRecordedDetailComponent } | ||||
|     ] | ||||
|   }, | ||||
|   { | ||||
|     path: 'config', | ||||
|     children: [ | ||||
|       { path: '', component: PartnerSystemConfigComponent }, | ||||
|     ] | ||||
|   }, | ||||
|   { | ||||
|     path: 'knowledge', | ||||
|     children: [ | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
|  * @Author       : Shiming | ||||
|  * @Date         : 2022-03-09 14:34:55 | ||||
|  * @LastEditors  : Shiming | ||||
|  * @LastEditTime : 2022-03-11 15:28:01 | ||||
|  * @LastEditTime : 2022-04-20 15:45:20 | ||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\partner\\partner.module.ts | ||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||
|  */ | ||||
| @ -63,6 +63,7 @@ import { ParterAdviceFeedbackListComponent } from './advice-feedback/components/ | ||||
| import { ParterAdviceFeedbackDetailComponent } from './advice-feedback/components/feedback-detail/feedback-detail.component'; | ||||
| import { ParterRebateManageMentAddPartnerListComponent } from './rebate-management/components/rebate-setting/add-partnerlist/add-partnerlist.component'; | ||||
| import { ChannelLogModalComponent } from './partner-list/components/channel-log-modal/channel-log-modal.component'; | ||||
| import { PartnerSystemConfigComponent } from './system-config/components/config/config.component'; | ||||
|  | ||||
| const COMPONENTS: any[] = [ | ||||
|   PartnerBusinessStatisticsIndexComponent, | ||||
| @ -115,7 +116,8 @@ const COMPONENTS: any[] = [ | ||||
|   ParterAdviceFeedbackListComponent, | ||||
|   ParterAdviceFeedbackDetailComponent, | ||||
|   ParterRebateManageMentAddPartnerListComponent, | ||||
|   ChannelLogModalComponent | ||||
|   ChannelLogModalComponent, | ||||
|   PartnerSystemConfigComponent | ||||
| ]; | ||||
|  | ||||
| @NgModule({ | ||||
|  | ||||
| @ -0,0 +1,187 @@ | ||||
| <nz-card> | ||||
|     <div nz-row [nzGutter]="8"> | ||||
|         <div nz-col nzSpan="4"> | ||||
|             <ul nz-menu nzMode="inline" class="card-height"> | ||||
|                 <li nz-menu-item [nzSelected]="idx === 0" (click)="changeType(idx)" | ||||
|                     *ngFor="let item of tabs; let idx = index"> | ||||
|                     {{ item.name }} | ||||
|                 </li> | ||||
|             </ul> | ||||
|         </div> | ||||
|  | ||||
|         <div nz-col nzSpan="20" style="overflow: scroll"> | ||||
|             <nz-card class="card-height" [nzBordered]="null" nzSize="small" *ngIf="selectedTab===0 "> | ||||
|                 <h2 style="font-weight: 800;">货主端配置</h2> | ||||
|                 <h3 style="font-weight: 600;margin-left: 120px;">图片配置</h3> | ||||
|                 <sf style="margin-left: 30px" #sf mode="default" [formData]="i" [schema]="schema2" | ||||
|                     [ui]="{ '*': { spanLabelFixed: 200,grid: { span: 24 }} }" button="none"> | ||||
|                     <ng-template sf-template="start" let-me let-ui="ui" let-schema="schema"> | ||||
|                     </ng-template> | ||||
|                     <template id="tpl"> | ||||
|                         <span>so good </span> | ||||
|                     </template> | ||||
|                     <ng-template sf-template="time2" let-me let-ui="ui" let-schema="schema"> | ||||
|                         <div class="text-left">可输入字符</div> | ||||
|                         <nz-range-picker extend nzFormat="HH:mm:ss"></nz-range-picker> | ||||
|                     </ng-template> | ||||
|                 </sf> | ||||
|                 <h3 style="font-weight: 600;margin-left: 140px;" class="mb-md">短信配置</h3> | ||||
|                 <div nz-row nzGutter="8"> | ||||
|                     <div nz-col nzSpan="24" se-container [labelWidth]="230" [se-container]="1"> | ||||
|                         <se label="短信内容设置" style="margin-bottom: 0;"> | ||||
|                             <p style="margin-top: 6px;">配置用户端登陆页注册帐号、修改密码、修改手机号时的短信内容</p> | ||||
|                             <textarea nz-input rows="4" | ||||
|                                 placeholder="【运多星】您的验证码:XXXXXX。有效期10分钟,请及时输入,请勿向他人泄露您的验证码。如非本人操作,请忽略。" | ||||
|                                 style="width: 400px;"></textarea> | ||||
|                         </se> | ||||
|                     </div> | ||||
|                 </div> | ||||
|                 <h3 style="font-weight: 600;margin-left: 140px;" class="mb-md">通知配置</h3> | ||||
|                 <div nz-row nzGutter="8"> | ||||
|                     <div nz-col nzSpan="24"> | ||||
|                         <ng-container *ngTemplateOutlet="textMessage;context:{$implicit: 'World', title:'用户实名认证审核'}"> | ||||
|                         </ng-container> | ||||
|                         <ng-container *ngTemplateOutlet="textMessage;context:{$implicit: 'World', title: '企业认证审核'}"> | ||||
|                         </ng-container> | ||||
|                     </div> | ||||
|                 </div> | ||||
|                 <h3 style="font-weight: 600;margin-left: 140px;" class="mb-md">客服电话配置</h3> | ||||
|                 <div nz-row nzGutter="8"> | ||||
|                     <div nz-col nzSpan="24" se-container [labelWidth]="230"> | ||||
|                         <se label="客服电话" style="margin-bottom: 0;"> | ||||
|                             <input nz-input style="width: 325px;" /> | ||||
|                         </se> | ||||
|                     </div> | ||||
|                 </div> | ||||
|             </nz-card> | ||||
|  | ||||
|             <nz-card class="card-height" [nzBordered]="null" nzSize="small" *ngIf="selectedTab===1"> | ||||
|                 <h2 style="font-weight: 800;">司机端配置</h2> | ||||
|                 <h3 style="font-weight: 600;margin-left: 120px;">图片配置</h3> | ||||
|                 <sf style="margin-left: 30px" #sf mode="default" [formData]="i" [schema]="schema" | ||||
|                     [ui]="{ '*': { spanLabelFixed: 200,grid: { span: 24 }} }" button="none"> | ||||
|                     <ng-template sf-template="start" let-me let-ui="ui" let-schema="schema"> | ||||
|                     </ng-template> | ||||
|                     <template id="tpl"> | ||||
|                         <span>so good </span> | ||||
|                     </template> | ||||
|                     <ng-template sf-template="time2" let-me let-ui="ui" let-schema="schema"> | ||||
|                         <div class="text-left">可输入字符</div> | ||||
|                         <nz-range-picker extend nzFormat="HH:mm:ss"></nz-range-picker> | ||||
|                     </ng-template> | ||||
|                 </sf> | ||||
|                 <h3 style="font-weight: 600;margin-left: 140px;" class="mb-md">短信配置</h3> | ||||
|                 <div nz-row nzGutter="8"> | ||||
|                     <div nz-col nzSpan="24" se-container [labelWidth]="230" [se-container]="1"> | ||||
|                         <se label="短信内容设置" style="margin-bottom: 0;"> | ||||
|                             <p style="margin-top: 6px;">配置用户端登陆页注册帐号、修改密码、修改手机号时的短信内容</p> | ||||
|                             <textarea nz-input rows="4" | ||||
|                                 placeholder="【运多星】您的验证码:XXXXXX。有效期10分钟,请及时输入,请勿向他人泄露您的验证码。如非本人操作,请忽略。" | ||||
|                                 style="width: 400px;"></textarea> | ||||
|                         </se> | ||||
|                     </div> | ||||
|                 </div> | ||||
|                 <h3 style="font-weight: 600;margin-left: 140px;" class="mb-md">通知配置</h3> | ||||
|                 <div nz-row nzGutter="8"> | ||||
|                     <div nz-col nzSpan="24"> | ||||
|                         <ng-container *ngTemplateOutlet="textMessage;context:{$implicit: 'World', title:'司机实名认证审核'}"> | ||||
|                         </ng-container> | ||||
|                         <ng-container *ngTemplateOutlet="textMessage;context:{$implicit: 'World', title: '司机驾驶证证审核'}"> | ||||
|                         </ng-container> | ||||
|                         <div se-container [labelWidth]="230" [se-container]="1"> | ||||
|                             <se class="mb-sm"> | ||||
|                                 <nz-radio-group [(ngModel)]="formDate.isAudit"> | ||||
|                                     <label nz-radio [nzValue]="false" class="mt-sm">到期系统通知</label> | ||||
|                                     <label nz-radio [nzValue]="true" class="mt-sm">短信通知</label> | ||||
|                                 </nz-radio-group> | ||||
|                             </se> | ||||
|                             <se label="司机驾驶证证审核" class="mb-sm"> | ||||
|                                 <nz-radio-group [(ngModel)]="formDate.isAudit"> | ||||
|                                     <label nz-radio [nzValue]="false" class="mt-sm">审核通过系统通知</label> | ||||
|                                     <label nz-radio [nzValue]="true" class="mt-sm">短信通知</label> | ||||
|                                 </nz-radio-group> | ||||
|                             </se> | ||||
|                             <se class="mb-sm"> | ||||
|                                 <nz-radio-group [(ngModel)]="formDate.isAudit"> | ||||
|                                     <label nz-radio [nzValue]="false" class="mt-sm">审核驳回系统通知</label> | ||||
|                                     <label nz-radio [nzValue]="true" class="mt-sm">短信通知</label> | ||||
|                                 </nz-radio-group> | ||||
|                             </se> | ||||
|                             <se class="mb-sm"> | ||||
|                                 <nz-radio-group [(ngModel)]="formDate.isAudit"> | ||||
|                                     <label nz-radio [nzValue]="false" class="mt-sm">到期系统通知</label> | ||||
|                                     <label nz-radio [nzValue]="true" class="mt-sm">短信通知</label> | ||||
|                                 </nz-radio-group> | ||||
|                             </se> | ||||
|                         </div> | ||||
|                     </div> | ||||
|                 </div> | ||||
|                 <h3 style="font-weight: 600;margin-left: 140px;" class="mt-md">客服电话配置</h3> | ||||
|                 <div nz-row nzGutter="8"> | ||||
|                     <div nz-col nzSpan="24" se-container [labelWidth]="230"> | ||||
|                         <se label="客服电话" > | ||||
|                             <input nz-input style="width: 325px;" /> | ||||
|                         </se> | ||||
|                     </div> | ||||
|                 </div> | ||||
|                 <h3 style="font-weight: 600;margin-left: 140px;" class="mt-md">证件提醒配置</h3> | ||||
|                 <div nz-row nzGutter="8"> | ||||
|                     <div nz-col nzSpan="24" se-container [labelWidth]="230" [se-container]="1"> | ||||
|                         <se label="证件临期提醒" style="margin-bottom: 0;"> | ||||
|                             距离到期时间 | ||||
|                             <input type="number" nz-input  style="width: 40px;"/> | ||||
|                             天开始提醒,每隔 | ||||
|                             <input type="number" nz-input  style="width: 40px;" /> | ||||
|                             天提醒一次 | ||||
|                         </se> | ||||
|                     </div> | ||||
|                 </div> | ||||
|             </nz-card> | ||||
|  | ||||
|             <div class="mb-md save-btn"> | ||||
|                 <button class="ml-lg" nz-button nzSize="large" nzType="primary">保存</button> | ||||
|                 <button class="ml-lg" nz-button nzSize="large">取消</button> | ||||
|             </div> | ||||
|         </div> | ||||
|     </div> | ||||
| </nz-card> | ||||
|  | ||||
| <ng-template #textMessage let-data="data" let-title="title"> | ||||
|     <div se-container [labelWidth]="230" [se-container]="1"> | ||||
|         <se [label]="title" style="margin-bottom: 0;"> | ||||
|             <nz-radio-group [(ngModel)]="formDate.isAudit"> | ||||
|                 <label nz-radio [nzValue]="false" class="mt-sm">审核通过系统通知</label> | ||||
|                 <label nz-radio [nzValue]="true" class="mt-sm">短信通知</label> | ||||
|             </nz-radio-group> | ||||
|         </se> | ||||
|         <se class="mb-sm"> | ||||
|             <label for="">通知标题 : </label> | ||||
|             <input nz-input placeholder="请不要超过20个汉字" style="width: 325px;" maxlength="20" /> | ||||
|         </se> | ||||
|         <se class="mb-sm"> | ||||
|             <label for="">通知内容 : </label> | ||||
|             <input nz-input placeholder="请不要超过50个汉字" style="width: 325px;" maxlength="50" /> | ||||
|         </se> | ||||
|         <se class="mb-sm"> | ||||
|             <nz-radio-group [(ngModel)]="formDate.isAudit"> | ||||
|                 <label nz-radio [nzValue]="false" class="mt-sm">审核驳回系统通知</label> | ||||
|                 <label nz-radio [nzValue]="true" class="mt-sm">短信通知</label> | ||||
|             </nz-radio-group> | ||||
|         </se> | ||||
|         <se class="mb-sm"> | ||||
|             <label for="">通知标题 : </label> | ||||
|             <input nz-input placeholder="请不要超过20个汉字" style="width: 325px;" maxlength="20" /> | ||||
|         </se> | ||||
|         <se class="mb-sm"> | ||||
|             <label for="">通知内容 : </label> | ||||
|             <input nz-input placeholder="请不要超过50个汉字" style="width: 325px;" maxlength="50" /> | ||||
|         </se> | ||||
|         <se class="mb-sm"> | ||||
|             <div class=" d-flex"> | ||||
|                 <label for="">短信内容 : </label> | ||||
|                 <textarea nz-input rows="3" placeholder="【运多星】您的账号:XXXXXX。实名认证审核已被驳回,请重新上传" | ||||
|                     style="width: 325px;margin-left: 14px;"></textarea> | ||||
|             </div> | ||||
|         </se> | ||||
|     </div> | ||||
| </ng-template> | ||||
| @ -0,0 +1,22 @@ | ||||
| :host { | ||||
|     ::ng-deep { | ||||
|       .card-height { | ||||
|         min-height: 600px; | ||||
|       } | ||||
|    | ||||
|       .save-btn { | ||||
|         width     : 100%; | ||||
|         text-align: right; | ||||
|       } | ||||
|    | ||||
|       .block-radio { | ||||
|         display    : flex; | ||||
|         min-height     : 32px; | ||||
|       } | ||||
|    | ||||
|       input { | ||||
|         width      : 100px; | ||||
|         margin-left: 10px; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| @ -0,0 +1,258 @@ | ||||
| import { Component, OnInit, ViewChild } from '@angular/core'; | ||||
| import { SFComponent, SFSchema, SFUploadWidgetSchema } from '@delon/form'; | ||||
| import { Observable, Observer } from 'rxjs'; | ||||
| import { ConfigService } from '../../services/config.service'; | ||||
|  | ||||
| @Component({ | ||||
|   selector: 'app-config', | ||||
|   templateUrl: './config.component.html', | ||||
|   styleUrls: ['./config.component.less'] | ||||
| }) | ||||
| export class PartnerSystemConfigComponent 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: ConfigService) {} | ||||
|  | ||||
|   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 | ||||
|         } | ||||
|       } | ||||
|     ]; | ||||
|   } | ||||
| } | ||||
| @ -0,0 +1,12 @@ | ||||
| import { Injectable, Injector } from '@angular/core'; | ||||
| import { BaseService } from '@shared'; | ||||
|  | ||||
| @Injectable({ | ||||
|   providedIn: 'root', | ||||
| }) | ||||
| export class ConfigService extends BaseService { | ||||
|  | ||||
|   constructor(public injector: Injector) { | ||||
|     super(injector); | ||||
|   } | ||||
| } | ||||
| @ -107,7 +107,7 @@ export class VehicleComponentsListDetailComponent implements OnInit { | ||||
|           { | ||||
|             text: '上传协议', | ||||
|             click: _record => this.updateEvaluate(_record), | ||||
|             iif: item => item.auditStatusEnum == -1 | ||||
|             // iif: item => item.auditStatusEnum == -1 | ||||
|           } | ||||
|         ] | ||||
|       } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user