From df711ddcb83c8e01f194aa649d37a4b9838f6f40 Mon Sep 17 00:00:00 2001 From: Taric Xin Date: Thu, 2 Dec 2021 10:10:24 +0800 Subject: [PATCH] edit --- .../basic-setting.component.html | 166 +++++++++++ .../basic-setting.component.less | 22 ++ .../basic-setting/basic-setting.component.ts | 51 ++++ .../cart-config-action-modal.component.ts | 5 +- .../system-config.component.html | 187 +++++++++++++ .../system-config.component.less | 22 ++ .../system-config/system-config.component.ts | 258 ++++++++++++++++++ .../sys-setting/sys-setting-routing.module.ts | 4 + .../routes/sys-setting/sys-setting.module.ts | 6 +- src/app/shared/shared-zorro.module.ts | 10 +- src/assets/mocks/menu-data.json | 4 +- src/styles.less | 10 + 12 files changed, 739 insertions(+), 6 deletions(-) create mode 100644 src/app/routes/sys-setting/components/basic-setting/basic-setting.component.html create mode 100644 src/app/routes/sys-setting/components/basic-setting/basic-setting.component.less create mode 100644 src/app/routes/sys-setting/components/basic-setting/basic-setting.component.ts create mode 100644 src/app/routes/sys-setting/components/system-config/system-config.component.html create mode 100644 src/app/routes/sys-setting/components/system-config/system-config.component.less create mode 100644 src/app/routes/sys-setting/components/system-config/system-config.component.ts diff --git a/src/app/routes/sys-setting/components/basic-setting/basic-setting.component.html b/src/app/routes/sys-setting/components/basic-setting/basic-setting.component.html new file mode 100644 index 00000000..de6dd3ad --- /dev/null +++ b/src/app/routes/sys-setting/components/basic-setting/basic-setting.component.html @@ -0,0 +1,166 @@ + +
+
+
    +
  • + {{ item.name }} +
  • +
+
+ +
+ +

货主提现设置

+
+
+ + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+ + + + +
+
+
+
+
+ + +

路桥发票设置

+
+
+ + + + + + + +

开启自动申请后,运单完成卸货后会自动根据运单信息申请ETC发票。

+
+
+
+
+ + +

风险单监控

+
+
+ + + + + + + + + + +

当前时间与计划时间对比,允许如上合理范围内执行不报异常,差异在范围外则报异常

+
+ + + + + + + + + + +

当前时间与计划时间对比,允许如上合理范围内执行不报异常,差异在范围外则报异常

+
+ + + + + + + + + + +

签收量与装运量对比,允许如上合理范围内损耗不报异常,差异在范围外则报异常

+
+ + + + + + + + + + +

装货地和发货地、签收地和收货地距离对比,允许如上合理范围内执行不报异常,差异在范围外则报异常

+
+
+
+
+ +
+ +
+
+
+
\ No newline at end of file diff --git a/src/app/routes/sys-setting/components/basic-setting/basic-setting.component.less b/src/app/routes/sys-setting/components/basic-setting/basic-setting.component.less new file mode 100644 index 00000000..c5cbb76e --- /dev/null +++ b/src/app/routes/sys-setting/components/basic-setting/basic-setting.component.less @@ -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; + } + } +} \ No newline at end of file diff --git a/src/app/routes/sys-setting/components/basic-setting/basic-setting.component.ts b/src/app/routes/sys-setting/components/basic-setting/basic-setting.component.ts new file mode 100644 index 00000000..d8bba040 --- /dev/null +++ b/src/app/routes/sys-setting/components/basic-setting/basic-setting.component.ts @@ -0,0 +1,51 @@ +import { Component, OnInit, ViewChild } from '@angular/core'; +import { SFComponent, SFSchema, SFUISchema } from '@delon/form'; +import { SystemService } from '../../services/system.service'; + +@Component({ + selector: 'app-basic-setting', + templateUrl: './basic-setting.component.html', + styleUrls: ['./basic-setting.component.less'] +}) +export class BasicSettingComponent implements OnInit { + formDate: any = { + isAudit: false, + isEveryDay: false, + isEveryWeek: false + }; + tabs = [ + { + name: '货主提现设置' + }, + { + name: '司机提现设置' + }, + { + name: '路桥发票设置' + }, + { + name: '风险单监控' + } + ]; + selectedTab = 0; + + checkOptionsOne = [ + { label: '周一', value: '周一', checked: true }, + { label: '周二', value: '周二' }, + { label: '周三', value: '周三' }, + { label: '周四', value: '周四' }, + { label: '周五', value: '周五' }, + { label: '周六', value: '周六' }, + { label: '周日', value: '周日' } + ]; + + constructor(private service: SystemService) {} + + ngOnInit() {} + + changeType(type: number): void { + this.selectedTab = type; + console.log(type); + + } +} diff --git a/src/app/routes/sys-setting/components/cart-config/cart-config-action-modal/cart-config-action-modal.component.ts b/src/app/routes/sys-setting/components/cart-config/cart-config-action-modal/cart-config-action-modal.component.ts index 3dc63a29..e891497d 100644 --- a/src/app/routes/sys-setting/components/cart-config/cart-config-action-modal/cart-config-action-modal.component.ts +++ b/src/app/routes/sys-setting/components/cart-config/cart-config-action-modal/cart-config-action-modal.component.ts @@ -1,5 +1,5 @@ import { Component, Input, OnInit, ViewChild } from '@angular/core'; -import { SFComponent, SFRadioWidgetSchema, SFSchema, SFUISchema } from '@delon/form'; +import { SFComponent, SFRadioWidgetSchema, SFSchema, SFStringWidgetSchema, SFUISchema } from '@delon/form'; import { NzMessageService } from 'ng-zorro-antd/message'; import { NzModalRef } from 'ng-zorro-antd/modal'; import { SystemService } from '../../../services/system.service'; @@ -60,8 +60,9 @@ export class CartConfigActionModalComponent implements OnInit { type: 'string', ui: { placeholder: '请输入', + addOnAfter: '米', hidden: this.configType === 1 || this.configType === 3 - }, + } as SFStringWidgetSchema, default: staff.phone2 }, phone3: { diff --git a/src/app/routes/sys-setting/components/system-config/system-config.component.html b/src/app/routes/sys-setting/components/system-config/system-config.component.html new file mode 100644 index 00000000..9606bc20 --- /dev/null +++ b/src/app/routes/sys-setting/components/system-config/system-config.component.html @@ -0,0 +1,187 @@ + +
+
+
    +
  • + {{ item.name }} +
  • +
+
+ +
+ +

货主端配置

+

图片配置

+ + + + + +
可输入字符
+ +
+
+

短信配置

+
+
+ +

配置用户端登陆页注册帐号、修改密码、修改手机号时的短信内容

+ +
+
+
+

通知配置

+
+
+ + + + +
+
+

客服电话配置

+
+
+ + + +
+
+
+ + +

司机端配置

+

图片配置

+ + + + + +
可输入字符
+ +
+
+

短信配置

+
+
+ +

配置用户端登陆页注册帐号、修改密码、修改手机号时的短信内容

+ +
+
+
+

通知配置

+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+

客服电话配置

+
+
+ + + +
+
+

证件提醒配置

+
+
+ + 距离到期时间 + + 天开始提醒,每隔 + + 天提醒一次 + +
+
+
+ +
+ + +
+
+
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+
\ No newline at end of file diff --git a/src/app/routes/sys-setting/components/system-config/system-config.component.less b/src/app/routes/sys-setting/components/system-config/system-config.component.less new file mode 100644 index 00000000..09e68362 --- /dev/null +++ b/src/app/routes/sys-setting/components/system-config/system-config.component.less @@ -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; + } + } + } \ No newline at end of file diff --git a/src/app/routes/sys-setting/components/system-config/system-config.component.ts b/src/app/routes/sys-setting/components/system-config/system-config.component.ts new file mode 100644 index 00000000..f1a42dbf --- /dev/null +++ b/src/app/routes/sys-setting/components/system-config/system-config.component.ts @@ -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) => { + 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 + } + } + ]; + } +} diff --git a/src/app/routes/sys-setting/sys-setting-routing.module.ts b/src/app/routes/sys-setting/sys-setting-routing.module.ts index 0a484aa6..8d7b72f3 100644 --- a/src/app/routes/sys-setting/sys-setting-routing.module.ts +++ b/src/app/routes/sys-setting/sys-setting-routing.module.ts @@ -3,9 +3,11 @@ import { RouterModule, Routes } from '@angular/router'; import { AgreementConfigComponentsBaseComponent } from './components/agreement-config/agreement-config.component'; import { AuditReasonConfigComponent } from './components/audit-reason-config/audit-reason-config.component'; import { BasicConfigComponent } from './components/basic-config/basic-config.component'; +import { BasicSettingComponent } from './components/basic-setting/basic-setting.component'; import { CartConfigComponent } from './components/cart-config/cart-config.component'; import { RoleManagementComponent } from './components/role-management/role-management.component'; import { StaffManagementComponent } from './components/staff-management/staff-management.component'; +import { SystemConfigComponent } from './components/system-config/system-config.component'; import { SystemLogsComponent } from './components/system-logs/system-logs.component'; import { UserLogsComponent } from './components/user-logs/user-logs.component'; import { VersionLogsComponent } from './components/version-logs/version-logs.component'; @@ -13,6 +15,7 @@ import { VersionLogsComponent } from './components/version-logs/version-logs.com const routes: Routes = [ { path: 'staff-management', component: StaffManagementComponent }, { path: 'role-management', component: RoleManagementComponent }, + { path: 'basic-setting', component: BasicSettingComponent }, { path: 'basic-config', component: BasicConfigComponent }, { path: 'system-logs', component: SystemLogsComponent }, { path: 'user-logs', component: UserLogsComponent }, @@ -20,6 +23,7 @@ const routes: Routes = [ { path: 'audit-reason-config', component: AuditReasonConfigComponent }, { path: 'cart-config', component: CartConfigComponent }, { path: 'agreement-config', component: AgreementConfigComponentsBaseComponent }, + { path: 'system-config', component: SystemConfigComponent }, ]; @NgModule({ diff --git a/src/app/routes/sys-setting/sys-setting.module.ts b/src/app/routes/sys-setting/sys-setting.module.ts index fa314014..91cc11f9 100644 --- a/src/app/routes/sys-setting/sys-setting.module.ts +++ b/src/app/routes/sys-setting/sys-setting.module.ts @@ -16,6 +16,8 @@ import { AuditResonConfigActionModalComponent } from './components/audit-reason- import { CartConfigComponent } from './components/cart-config/cart-config.component'; import { CartConfigActionModalComponent } from './components/cart-config/cart-config-action-modal/cart-config-action-modal.component'; import { AgreementConfigComponentsBaseComponent } from './components/agreement-config/agreement-config.component'; +import { BasicSettingComponent } from './components/basic-setting/basic-setting.component'; +import { SystemConfigComponent } from './components/system-config/system-config.component'; const COMPONENTS = [ StaffManagementComponent, @@ -26,7 +28,9 @@ const COMPONENTS = [ VersionLogsComponent, AuditReasonConfigComponent, CartConfigComponent, - AgreementConfigComponentsBaseComponent + AgreementConfigComponentsBaseComponent, + BasicSettingComponent, + SystemConfigComponent ]; const NOTROUTECOMPONENTS = [ BuyerTranspowerComponent, diff --git a/src/app/shared/shared-zorro.module.ts b/src/app/shared/shared-zorro.module.ts index 91585a38..4051261b 100644 --- a/src/app/shared/shared-zorro.module.ts +++ b/src/app/shared/shared-zorro.module.ts @@ -32,6 +32,10 @@ import { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm'; import { NzRateModule } from 'ng-zorro-antd/rate'; import { NzResultModule } from 'ng-zorro-antd/result'; import { NzTabsModule } from 'ng-zorro-antd/tabs'; +import { NzRadioModule } from 'ng-zorro-antd/radio'; +import { NzTimePickerModule } from 'ng-zorro-antd/time-picker'; +import { NzCheckboxModule } from 'ng-zorro-antd/checkbox'; +import { NzInputNumberModule } from 'ng-zorro-antd/input-number'; export const SHARED_ZORRO_MODULES = [ NzButtonModule, NzGridModule, @@ -57,5 +61,9 @@ export const SHARED_ZORRO_MODULES = [ NzResultModule, NzTreeModule, NzTableModule, - NzTabsModule + NzTabsModule, + NzRadioModule, + NzTimePickerModule, + NzCheckboxModule, + NzInputNumberModule ]; diff --git a/src/assets/mocks/menu-data.json b/src/assets/mocks/menu-data.json index b28aa34f..77e27649 100644 --- a/src/assets/mocks/menu-data.json +++ b/src/assets/mocks/menu-data.json @@ -127,7 +127,7 @@ }, { "text": "基础设置", - "link": "/system/basic-config" + "link": "/system/basic-setting" }, { "text": "车型车长配置", @@ -159,7 +159,7 @@ }, { "text": "系统配置", - "link": "/demo/alain" + "link": "/system/system-config" }, { "text": "货物名称配置", diff --git a/src/styles.less b/src/styles.less index 4368dd61..ba701d83 100644 --- a/src/styles.less +++ b/src/styles.less @@ -17,4 +17,14 @@ background : #d9d9d9; cursor : pointer; border-radius: (@layout-gutter) / 2; +} + +/* 全局隐藏input-number上下箭头 谷歌*/ +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + -webkit-appearance: none; +} +/* 全局隐藏input-number上下箭头 火狐*/ +input[type="number"] { + -moz-appearance: textfield; } \ No newline at end of file