diff --git a/src/app/routes/sys-setting/components/goods-name-config/goods-name-config.component.html b/src/app/routes/sys-setting/components/goods-name-config/goods-name-config.component.html new file mode 100644 index 00000000..cd4caae6 --- /dev/null +++ b/src/app/routes/sys-setting/components/goods-name-config/goods-name-config.component.html @@ -0,0 +1,52 @@ + + + + +
+
+ + +
+ + +
+ +
    +
  • 编辑{{i}}
  • +
  • 上移
  • +
  • 下移
  • +
  • 删除
  • +
+
+
+
+ +
+ + +
+
+
+ +
+
+ + + + + +
+ + +
+
+ + + +
\ No newline at end of file diff --git a/src/app/routes/sys-setting/components/goods-name-config/goods-name-config.component.less b/src/app/routes/sys-setting/components/goods-name-config/goods-name-config.component.less new file mode 100644 index 00000000..48111074 --- /dev/null +++ b/src/app/routes/sys-setting/components/goods-name-config/goods-name-config.component.less @@ -0,0 +1,11 @@ +:host::ng-deep { + .ant-list-items { + max-height: 600px; + overflow : auto; + } +} + +.select-type { + color : #1890ff; + background-color: rgb(230 247 255); +} \ No newline at end of file diff --git a/src/app/routes/sys-setting/components/goods-name-config/goods-name-config.component.ts b/src/app/routes/sys-setting/components/goods-name-config/goods-name-config.component.ts new file mode 100644 index 00000000..b07c48c5 --- /dev/null +++ b/src/app/routes/sys-setting/components/goods-name-config/goods-name-config.component.ts @@ -0,0 +1,74 @@ +import { Component, OnInit, ViewChild } from '@angular/core'; +import { STComponent, STColumn } from '@delon/abc/st'; +import { NzModalService } from 'ng-zorro-antd/modal'; +import { SystemService } from '../../services/system.service'; + +@Component({ + selector: 'app-goods-name-config', + templateUrl: './goods-name-config.component.html', + styleUrls: ['./goods-name-config.component.less'] +}) +export class GoodsNameConfigComponent implements OnInit { + typeList = [ + { title: '零件配件', sort: 1, id: 1 }, + { title: '衣用物资', sort: 2, id: 2 }, + { title: '空包装', sort: 3, id: 3 }, + { title: '废品废料', sort: 4, id: 4 }, + { title: '家具家居', sort: 8, id: 5 }, + { title: '衣用物资', sort: 6, id: 6 }, + { title: '空包装', sort: 7, id: 7 }, + { title: '衣用物资', sort: 8, id: 8 }, + { title: '空包装', sort: 9, id: 9 }, + { title: '废品废料', sort: 10, id: 10 }, + { title: '废品废料2', sort: 11, id: 11 }, + { title: '废品废料3', sort: 12, id: 12 }, + { title: '零件配件', sort: 1, id: 1 }, + { title: '衣用物资', sort: 2, id: 2 }, + { title: '空包装', sort: 3, id: 3 }, + { title: '废品废料', sort: 4, id: 4 }, + { title: '家具家居', sort: 8, id: 5 }, + { title: '衣用物资', sort: 6, id: 6 }, + { title: '空包装', sort: 7, id: 7 }, + { title: '衣用物资', sort: 8, id: 8 }, + { title: '空包装', sort: 9, id: 9 }, + { title: '废品废料', sort: 10, id: 10 }, + { title: '废品废料2', sort: 11, id: 11 }, + { title: '废品废料3', sort: 12, id: 12 } + ]; + selectedType = 1; + + @ViewChild('st', { static: true }) + st!: STComponent; + url = `/rule?_allow_anonymous=true`; + reqParams = {}; + columns: STColumn[] = [ + { title: '货物名称', index: 'no' }, + { title: '更新时间', index: 'description' }, + { + title: '操作', + buttons: [ + { + text: '编辑' + // click: item => this.staffAction(item) + }, + { + text: '上移', + iif: item => item.no !== 0 + // click: item => this.action(2) + }, + { + text: '下移', + iif: item => item.status !== 10 + // click: item => this.action(1) + }, + { + text: '删除', + // click: item => this.action(3) + } + ] + } + ]; + constructor(public service: SystemService, private nzModalService: NzModalService) {} + + ngOnInit(): void {} +} diff --git a/src/app/routes/sys-setting/components/role-management/edit/edit.component.html b/src/app/routes/sys-setting/components/role-management/edit/edit.component.html new file mode 100644 index 00000000..d10a8c6f --- /dev/null +++ b/src/app/routes/sys-setting/components/role-management/edit/edit.component.html @@ -0,0 +1,23 @@ + + +
+ +
+
+ + + + + + +
+ + \ No newline at end of file diff --git a/src/app/routes/sys-setting/components/role-management/edit/edit.component.spec.ts b/src/app/routes/sys-setting/components/role-management/edit/edit.component.spec.ts new file mode 100644 index 00000000..0690cbe6 --- /dev/null +++ b/src/app/routes/sys-setting/components/role-management/edit/edit.component.spec.ts @@ -0,0 +1,23 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { CucRoleEditComponent } from './edit.component'; + +describe('CucRoleEditComponent', () => { + let component: CucRoleEditComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [CucRoleEditComponent], + }).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(CucRoleEditComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/routes/sys-setting/components/role-management/edit/edit.component.ts b/src/app/routes/sys-setting/components/role-management/edit/edit.component.ts new file mode 100644 index 00000000..6528cb3e --- /dev/null +++ b/src/app/routes/sys-setting/components/role-management/edit/edit.component.ts @@ -0,0 +1,151 @@ +import { AfterViewInit, ChangeDetectorRef, Component, OnChanges, OnInit, ViewChild } from '@angular/core'; +import { SFComponent, SFSchema, SFSchemaEnumType, SFUISchema } from '@delon/form'; +import { _HttpClient } from '@delon/theme'; +import { NzModalRef } from 'ng-zorro-antd/modal'; +import { of } from 'rxjs'; +import { delay, map } from 'rxjs/operators'; +import { SystemService } from '../../../services/system.service'; +import { SettingMenuComponent } from '../menu/menu.component'; + +@Component({ + selector: 'app-cuc-edit', + templateUrl: './edit.component.html', + styleUrls: ['./edit.less'] +}) +export class SettingRoleEditComponent implements OnInit { + @ViewChild('sf', { static: false }) + sf!: SFComponent; + @ViewChild('menu', { static: false }) + menu!: SettingMenuComponent; + record: any = {}; + roleInfoData: any = {}; + authorityAssistId: any[] = []; + appList: any[] = []; + source = ''; + i: any; + schema!: SFSchema; + authority: any[] = []; + roleTplData: any[] = []; + appId = ''; + ui!: SFUISchema; + constructor(private modal: NzModalRef, public service: SystemService, public http: _HttpClient, private cdr: ChangeDetectorRef) {} + + ngOnInit(): void { + console.log('i', this.i, this.source); + if (this.i.id) { + this.getRoleInfo(); + } else { + this.getTplList(); + } + if (this.source === '') { + this.initSF(); + } + } + initSF() { + this.schema = { + properties: { + roleName: { + title: '角色名称', + type: 'string', + default: this.roleInfoData.roleName, + maxLength: 20, + ui: { + placeholder: '请输入角色名称' + } + }, + roleDescription: { + title: '角色描述', + type: 'string', + maxLength: 100, + default: this.roleInfoData.roleDescription, + ui: { + autosize: { minRows: 3 }, + hidden: this.i.lookType === 'detail', + placeholder: '请输入角色描述', + widget: 'textarea' + } + } + }, + required: ['roleName'] + }; + this.ui = { + '*': { + spanLabelFixed: 120, + grid: { span: 24 } + } + }; + } + getAppList() { + const params = { + pageSize: 10000, + pageIndex: 1 + }; + return this.service.request(this.service.$api_getAppList, params).pipe( + map(res => { + this.appList = res; + const versionArr: any[] = []; + const resArr = res; + if (resArr && resArr.length) { + resArr.forEach((item: any) => { + versionArr.push({ + label: item.appName, + value: item.appId + }); + }); + } + return versionArr; + }) + ); + } + getTplList() { + // this.menu.getAllFunction(); + } + getRoleInfo() { + const params = { + id: this.i.id + }; + this.service.request(this.service.$api_getRoleInfo, params).subscribe(res => { + this.roleInfoData = res; + this.roleInfoData.authority = res.authority || []; + this.roleInfoData.authorityAssistId = res.authorityAssistId || []; + if (this.source === '') { + this.initSF(); + } + this.getTplList(); + }); + } + getData(res: { authority: any[]; authorityAssistId: any[] }) { + this.authority = res.authority; + this.authorityAssistId = res.authorityAssistId; + } + close() { + this.modal.destroy(); + } + sure() { + this.menu.washTree(); + if (this.authorityAssistId.length === 0) { + this.service.msgSrv.warning('请选择权限!'); + return; + } + const params: any = { + id: this.i.id, + ...this.sf.value, + authority: this.authority, + authorityAssistId: this.authorityAssistId + }; + if (this.sf) { + this.appList.forEach(item => { + if (item.appId === this.sf.value.appId) { + params.tenantId = item.tenantId; + } + }); + } + delete params.tplId; + if (this.i.id === 0) { + delete params.id; + } + this.service.request(this.service.$api_updateRoleInfo, params).subscribe(res => { + this.modal.close(true); + }); + } +} diff --git a/src/app/routes/sys-setting/components/role-management/edit/edit.less b/src/app/routes/sys-setting/components/role-management/edit/edit.less new file mode 100644 index 00000000..a902f302 --- /dev/null +++ b/src/app/routes/sys-setting/components/role-management/edit/edit.less @@ -0,0 +1,17 @@ +:host { + ::ng-deep { + .box { + width: 100%; + margin: 0 auto; + } + + .sv__label { + display: inline-block; + float: left; + width: 120px; + color: #000; + font-size: 13px; + text-align: right; + } + } +} diff --git a/src/app/routes/sys-setting/components/role-management/menu/funcs.ts b/src/app/routes/sys-setting/components/role-management/menu/funcs.ts new file mode 100644 index 00000000..e120aa3f --- /dev/null +++ b/src/app/routes/sys-setting/components/role-management/menu/funcs.ts @@ -0,0 +1,1897 @@ +export const Funcs = [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 0, + icon: '', + link: '', + title: '主导航', + isLeaf: false, + parentId: '0', + i18n: 'menu.main', + hide: false, + sorted: '0', + expanded: true, + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 1, + icon: 'anticon anticon-dashboard', + link: '/dashboard', + title: '工作台', + isLeaf: true, + parentId: '1420203656199319554', + i18n: 'menu.dashboard', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '工作台', + id: '1420203657109483522', + functionType: 0, + key: '1420203657109483522' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 1, + icon: 'anticon anticon-appstore', + link: '', + title: '设置中心', + isLeaf: false, + parentId: '1420203656199319554', + i18n: 'menu.systemset', + hide: false, + sorted: '0', + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 2, + icon: 'anticon anticon-dashboard', + link: '/system/info', + title: '企业信息', + isLeaf: true, + parentId: '1420203657138843649', + i18n: 'menu.systemset.info', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '企业信息', + id: '1420203659714146306', + functionType: 0, + key: '1420203659714146306' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 2, + icon: '', + link: '/system/base', + title: '通用设置', + isLeaf: true, + parentId: '1420203657138843649', + i18n: 'menu.systemset.base', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '通用设置', + id: '1420203659827392514', + functionType: 0, + key: '1420203659827392514' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 2, + icon: 'anticon anticon-dashboard', + link: '/system/staffmanagement', + title: '员工管理', + isLeaf: true, + parentId: '1420203657138843649', + i18n: 'menu.systemset.staffmanagement', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '员工管理', + id: '1420203659911278594', + functionType: 0, + key: '1420203659911278594' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 2, + icon: '', + link: '/system/roles', + title: '角色管理', + isLeaf: true, + parentId: '1420203657138843649', + i18n: 'menu.systemset.roles', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '角色管理', + id: '1420203659923861505', + functionType: 0, + key: '1420203659923861505' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 2, + icon: '', + link: '/system/violationType', + title: '违规类型配置', + isLeaf: true, + parentId: '1420203657138843649', + i18n: 'menu.systemset.violationType', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '违规类型配置', + id: '1420203660024524802', + functionType: 0, + key: '1420203660024524802' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 2, + icon: '', + link: '/system/log', + title: '操作日志', + isLeaf: true, + parentId: '1420203657138843649', + i18n: 'menu.systemset.log', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '操作日志', + id: '1420203660209074178', + functionType: 0, + key: '1420203660209074178' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '设置中心', + id: '1420203657138843649', + functionType: 0, + key: '1420203657138843649' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 1, + icon: 'anticon anticon-dashboard', + link: '', + title: '商品中心', + isLeaf: false, + parentId: '1420203656199319554', + i18n: 'menu.cmc', + hide: false, + sorted: '0', + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 2, + icon: 'anticon anticon-dashboard', + link: '', + title: '商品管理', + isLeaf: false, + parentId: '1420203657289838594', + i18n: 'menu.cmc.goods', + hide: false, + sorted: '0', + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/cmc/goods', + title: '商品列表', + isLeaf: true, + parentId: '1420203661043740674', + i18n: 'menu.cmc.goods.list', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '商品列表', + id: '1420203666928349186', + functionType: 0, + key: '1420203666928349186' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/cmc/goods/view', + title: '商品详情', + isLeaf: true, + parentId: '1420203661043740674', + i18n: 'menu.cmc.goods.view', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '商品详情', + id: '1420203666974486530', + functionType: 0, + key: '1420203666974486530' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/cmc/goods/check', + title: '商品审核', + isLeaf: true, + parentId: '1420203661043740674', + i18n: 'menu.cmc.goods.check', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '商品审核', + id: '1420203667297447938', + functionType: 0, + key: '1420203667297447938' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/cmc/goods/record', + title: '违规下架记录', + isLeaf: true, + parentId: '1420203661043740674', + i18n: 'menu.cmc.goods.record', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '违规下架记录', + id: '1420203667339390978', + functionType: 0, + key: '1420203667339390978' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/cmc/goods/check/checkdetail', + title: '商品审核详情', + isLeaf: true, + parentId: '1420203661043740674', + i18n: 'menu.cmc.goods.checkdetail', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '商品审核详情', + id: '1420203667813347330', + functionType: 0, + key: '1420203667813347330' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '商品管理', + id: '1420203661043740674', + functionType: 0, + key: '1420203661043740674' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 2, + icon: 'anticon anticon-dashboard', + link: '', + title: '服务管理', + isLeaf: false, + parentId: '1420203657289838594', + i18n: 'menu.cmc.service', + hide: false, + sorted: '0', + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/cmc/service/view', + title: '服务详情', + isLeaf: true, + parentId: '1420203661475753985', + i18n: 'menu.cmc.service.view', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '服务详情', + id: '1420203668606070786', + functionType: 0, + key: '1420203668606070786' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/cmc/service', + title: '服务列表', + isLeaf: true, + parentId: '1420203661475753985', + i18n: 'menu.cmc.service.list', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '服务列表', + id: '1420203668987752449', + functionType: 0, + key: '1420203668987752449' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/cmc/service/check/checkdetail', + title: '服务审核详情', + isLeaf: true, + parentId: '1420203661475753985', + i18n: 'menu.cmc.service.checkdetail', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '服务审核详情', + id: '1420203668996141057', + functionType: 0, + key: '1420203668996141057' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/cmc/service/check', + title: '服务审核', + isLeaf: true, + parentId: '1420203661475753985', + i18n: 'menu.cmc.service.check', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '服务审核', + id: '1420203669059055617', + functionType: 0, + key: '1420203669059055617' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '服务管理', + id: '1420203661475753985', + functionType: 0, + key: '1420203661475753985' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 2, + icon: 'anticon anticon-dashboard', + link: '', + title: '标签管理', + isLeaf: false, + parentId: '1420203657289838594', + i18n: 'menu.cmc.tags', + hide: false, + sorted: '0', + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/cmc/tags', + title: '服务列表', + isLeaf: true, + parentId: '1420203661479948291', + i18n: 'menu.cmc.tags.list', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '服务列表', + id: '1420203669025501186', + functionType: 0, + key: '1420203669025501186' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/cmc/tags/add', + title: '新增标签', + isLeaf: true, + parentId: '1420203661479948291', + i18n: 'menu.cmc.tags.add', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '新增标签', + id: '1420203669025501187', + functionType: 0, + key: '1420203669025501187' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '标签管理', + id: '1420203661479948291', + functionType: 0, + key: '1420203661479948291' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '商品中心', + id: '1420203657289838594', + functionType: 0, + key: '1420203657289838594' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 1, + icon: 'anticon anticon-dashboard', + link: '', + title: '用户中心', + isLeaf: false, + parentId: '1420203656199319554', + i18n: 'menu.usercenter', + hide: false, + sorted: '0', + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 2, + icon: 'anticon anticon-appstore', + link: '', + title: '供应商管理', + isLeaf: false, + parentId: '1420203657306615810', + i18n: 'menu.usercenter.supplier', + hide: false, + sorted: '0', + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 3, + icon: 'anticon anticon-dashboard', + link: '/usercenter/supplier/list', + title: '供应商列表', + isLeaf: false, + parentId: '1420203660372652033', + i18n: 'menu.usercenter.supplier.list', + hide: false, + sorted: '0', + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 4, + icon: 'anticon anticon-dashboard', + link: '/usercenter/supplier/list/save', + title: '独立店铺', + isLeaf: true, + parentId: '1420203666026573825', + i18n: 'menu.usercenter.supplier.list.save', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '独立店铺', + id: '1465976910655643649', + functionType: 0, + key: '1465976910655643649' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '供应商列表', + id: '1420203666026573825', + functionType: 0, + key: '1420203666026573825' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: 'anticon anticon-dashboard', + link: '/usercenter/supplier/list/view', + title: '供应商详情', + isLeaf: true, + parentId: '1420203660372652033', + i18n: 'menu.usercenter.supplier.detail', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '供应商详情', + id: '1420203666148208641', + functionType: 0, + key: '1420203666148208641' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: 'anticon anticon-dashboard', + link: '/usercenter/supplier/authority', + title: '供应商权限', + isLeaf: true, + parentId: '1420203660372652033', + i18n: 'menu.usercenter.supplier.authority', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '供应商权限', + id: '1420203666160791555', + functionType: 0, + key: '1420203666160791555' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/usercenter/supplier/apply/view', + title: '入驻详情', + isLeaf: true, + parentId: '1420203660372652033', + i18n: 'menu.usercenter.supplier.apply.detail', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '入驻详情', + id: '1420203666160791556', + functionType: 0, + key: '1420203666160791556' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: 'anticon anticon-dashboard', + link: '/usercenter/supplier/apply', + title: '供应商入驻', + isLeaf: true, + parentId: '1420203660372652033', + i18n: 'menu.usercenter.supplier.apply', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '供应商入驻', + id: '1420203666454392835', + functionType: 0, + key: '1420203666454392835' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '供应商管理', + id: '1420203660372652033', + functionType: 0, + key: '1420203660372652033' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 2, + icon: 'anticon anticon-dashboard', + link: '/usercenter/user', + title: '用户查询', + isLeaf: true, + parentId: '1420203657306615810', + i18n: 'menu.usercenter.user', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '用户查询', + id: '1420203660372652034', + functionType: 0, + key: '1420203660372652034' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 2, + icon: 'anticon anticon-dashboard', + link: '', + title: '采购商管理', + isLeaf: false, + parentId: '1420203657306615810', + i18n: 'menu.usercenter.buyer', + hide: false, + sorted: '0', + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/usercenter/buyer/authentication-view', + title: '认证详情', + isLeaf: true, + parentId: '1420203660582367233', + i18n: 'menu.usercenter.buyer.authentication.detail', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '认证详情', + id: '1420203666043351042', + functionType: 0, + key: '1420203666043351042' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/usercenter/buyer/authentication', + title: '采购商认证', + isLeaf: true, + parentId: '1420203660582367233', + i18n: 'menu.usercenter.buyer.authentication', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '采购商认证', + id: '1420203666517307393', + functionType: 0, + key: '1420203666517307393' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/usercenter/buyer/search', + title: '采购商查询', + isLeaf: true, + parentId: '1420203660582367233', + i18n: 'menu.usercenter.buyer.search', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '采购商查询', + id: '1420203666915766273', + functionType: 0, + key: '1420203666915766273' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '采购商管理', + id: '1420203660582367233', + functionType: 0, + key: '1420203660582367233' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '用户中心', + id: '1420203657306615810', + functionType: 0, + key: '1420203657306615810' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 1, + icon: 'anticon anticon-dashboard', + link: '', + title: '订单中心', + isLeaf: false, + parentId: '1420203656199319554', + i18n: 'menu.ctc', + hide: false, + sorted: '0', + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 2, + icon: '', + link: '/ctc/order/orderlist', + title: '商品订单', + isLeaf: true, + parentId: '1420203657315004417', + i18n: 'menu.ctc.order.orderlist', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '商品订单', + id: '1420203660645281793', + functionType: 0, + key: '1420203660645281793' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 2, + icon: '', + link: '/ctc/order/purpose-order', + title: '采购意向单', + isLeaf: true, + parentId: '1420203657315004417', + i18n: 'menu.ctc.order.purpose-order', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '采购意向单', + id: '1420203660649476097', + functionType: 0, + key: '1420203660649476097' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 2, + icon: '', + link: '/ctc/order/service-order', + title: '服务订单', + isLeaf: true, + parentId: '1420203657315004417', + i18n: 'menu.ctc.order.service-order', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '服务订单', + id: '1420203660691419138', + functionType: 0, + key: '1420203660691419138' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 2, + icon: '', + link: '/ctc/order/serviceorderdetail', + title: '服务订单详情', + isLeaf: true, + parentId: '1420203657315004417', + i18n: 'menu.ctc.order.serviceorderdetail', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '服务订单详情', + id: '1420203661047934978', + functionType: 0, + key: '1420203661047934978' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 2, + icon: '', + link: '/ctc/order/orderdetail', + title: '订单详情', + isLeaf: true, + parentId: '1420203657315004417', + i18n: 'menu.ctc.order.orderdetail', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '订单详情', + id: '1420203661047934979', + functionType: 0, + key: '1420203661047934979' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '订单中心', + id: '1420203657315004417', + functionType: 0, + key: '1420203657315004417' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 1, + icon: 'anticon anticon-appstore', + link: '/download/list', + title: '下载中心', + isLeaf: true, + parentId: '1420203656199319554', + i18n: 'menu.download', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '下载中心', + id: '1420203657327587329', + functionType: 0, + key: '1420203657327587329' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 1, + icon: 'anticon anticon-dashboard', + link: '', + title: '运营中心', + isLeaf: false, + parentId: '1420203656199319554', + i18n: 'menu.operationcenter', + hide: false, + sorted: '0', + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 2, + icon: 'anticon anticon-dashboard', + link: '', + title: '前台配置', + isLeaf: false, + parentId: '1420203657663131650', + i18n: 'menu.operationcenter.frontconfig', + hide: false, + sorted: '0', + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/operationcenter/frontconfig/category', + title: '前台商品类目', + isLeaf: true, + parentId: '1420203661471559682', + i18n: 'menu.operationcenter.category', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '前台商品类目', + id: '1420203667372945409', + functionType: 0, + key: '1420203667372945409' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/operationcenter/frontconfig/ad/list/editad', + title: '编辑广告位', + isLeaf: true, + parentId: '1420203661471559682', + i18n: 'menu.operationcenter.ad.editad', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '编辑广告位', + id: '1420203667758821377', + functionType: 0, + key: '1420203667758821377' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/operationcenter/frontconfig/service', + title: '前台服务类目', + isLeaf: true, + parentId: '1420203661471559682', + i18n: 'menu.operationcenter.service', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '前台服务类目', + id: '1420203667767209986', + functionType: 0, + key: '1420203667767209986' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: 'icon-appstore', + link: '/operationcenter/frontconfig/ad/list', + title: '广告位管理', + isLeaf: true, + parentId: '1420203661471559682', + i18n: 'menu.operationcenter.ad', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '广告位管理', + id: '1420203667796570114', + functionType: 0, + key: '1420203667796570114' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/operationcenter/frontconfig/ad/list/addad', + title: '新增广告位', + isLeaf: true, + parentId: '1420203661471559682', + i18n: 'menu.operationcenter.ad.addad', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '新增广告位', + id: '1420203667934982145', + functionType: 0, + key: '1420203667934982145' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: 'icon-appstore', + link: '/operationcenter/frontconfig/addata', + title: '宣传数据', + isLeaf: true, + parentId: '1420203661471559682', + i18n: 'menu.operationcenter.addata', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '宣传数据', + id: '1420203668182446082', + functionType: 0, + key: '1420203668182446082' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: 'icon-appstore', + link: '/operationcenter/frontconfig/supplier', + title: '推荐供应商', + isLeaf: true, + parentId: '1420203661471559682', + i18n: 'menu.operationcenter.supplier', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '推荐供应商', + id: '1420203668186640385', + functionType: 0, + key: '1420203668186640385' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 3, + icon: 'icon-appstore', + link: '/operationcenter/frontconfig/adimg/list', + title: '广告图管理', + isLeaf: false, + parentId: '1420203661471559682', + i18n: 'menu.operationcenter.adimg', + hide: false, + sorted: '0', + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 4, + icon: '', + link: '/operationcenter/frontconfig/adimg/list/addad', + title: '新增广告', + isLeaf: true, + parentId: '1420203668203417601', + i18n: 'menu.operationcenter.adimg.addad', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '新增广告', + id: '1420203671172984833', + functionType: 0, + key: '1420203671172984833' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 4, + icon: '', + link: '/operationcenter/frontconfig/adimg/list/editad', + title: '编辑广告', + isLeaf: true, + parentId: '1420203668203417601', + i18n: 'menu.operationcenter.adimg.editad', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '编辑广告', + id: '1420203671294619649', + functionType: 0, + key: '1420203671294619649' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 4, + icon: '', + link: '/operationcenter/frontconfig/adimg/list/view', + title: '广告图详情', + isLeaf: true, + parentId: '1420203668203417601', + i18n: 'menu.operationcenter.adimg.detail', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '广告图详情', + id: '1449064125224194049', + functionType: 0, + key: '1449064125224194049' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '广告图管理', + id: '1420203668203417601', + functionType: 0, + key: '1420203668203417601' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 3, + icon: 'icon-appstore', + link: '/operationcenter/frontconfig/net-config/list', + title: '服务网点配置', + isLeaf: false, + parentId: '1420203661471559682', + i18n: 'menu.operationcenter.service.net', + hide: false, + sorted: '0', + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 4, + icon: '', + link: '/operationcenter/frontconfig/net-config/list/addad', + title: '新增', + isLeaf: true, + parentId: '1449064113471754242', + i18n: 'menu.operationcenter.service.net.add', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '新增', + id: '1449064125211611138', + functionType: 0, + key: '1449064125211611138' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 4, + icon: '', + link: '/operationcenter/frontconfig/net-config/list/editad', + title: '编辑', + isLeaf: true, + parentId: '1449064113471754242', + i18n: 'menu.operationcenter.service.net.edit', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '编辑', + id: '1449064125215805441', + functionType: 0, + key: '1449064125215805441' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '服务网点配置', + id: '1449064113471754242', + functionType: 0, + key: '1449064113471754242' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: 'icon-appstore', + link: '/operationcenter/frontconfig/cooperate', + title: '合作页面配置', + isLeaf: true, + parentId: '1420203661471559682', + i18n: 'menu.operationcenter.cooperate', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '合作页面配置', + id: '1449064114306420737', + functionType: 0, + key: '1449064114306420737' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/operationcenter/frontconfig/homepage', + title: '首页配置', + isLeaf: true, + parentId: '1420203661471559682', + i18n: 'menu.operationcenter.HonePage', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '首页配置', + id: '1449064114730045442', + functionType: 0, + key: '1449064114730045442' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/operationcenter/frontconfig/cooperation', + title: '合作详情页', + isLeaf: true, + parentId: '1420203661471559682', + i18n: 'menu.operationcenter.cooperation.detail', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '合作详情页', + id: '1449064115136892929', + functionType: 0, + key: '1449064115136892929' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/operationcenter/frontconfig/platform', + title: '平台介绍页面配置', + isLeaf: true, + parentId: '1420203661471559682', + i18n: 'menu.operationcenter.platform', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '平台介绍页面配置', + id: '1449064115581489153', + functionType: 0, + key: '1449064115581489153' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '前台配置', + id: '1420203661471559682', + functionType: 0, + key: '1420203661471559682' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 2, + icon: '', + link: '', + title: '合伙人管理', + isLeaf: false, + parentId: '1420203657663131650', + i18n: 'menu.oc.partners', + hide: false, + sorted: '0', + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/oc/partners/invite', + title: '合伙人邀请统计', + isLeaf: true, + parentId: '1420203661479948290', + i18n: 'menu.oc.partners.invite', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '合伙人邀请统计', + id: '1420203668597682177', + functionType: 0, + key: '1420203668597682177' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/oc/partners/list', + title: '合伙人申请管理', + isLeaf: true, + parentId: '1420203661479948290', + i18n: 'menu.oc.partners.list', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '合伙人申请管理', + id: '1420203668643819522', + functionType: 0, + key: '1420203668643819522' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '合伙人管理', + id: '1420203661479948290', + functionType: 0, + key: '1420203661479948290' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 2, + icon: '', + link: '', + title: '资讯管理', + isLeaf: false, + parentId: '1420203657663131650', + i18n: 'menu.oc.info-manage', + hide: false, + sorted: '0', + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/oc/info-manage/add-info', + title: '添加资讯', + isLeaf: true, + parentId: '1420203661903572994', + i18n: 'menu.oc.info-manage.add-info', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '添加资讯', + id: '1420203669696589826', + functionType: 0, + key: '1420203669696589826' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/oc/info-manage/info-details', + title: '查看资讯', + isLeaf: true, + parentId: '1420203661903572994', + i18n: 'menu.oc.info-manage.info-details', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '查看资讯', + id: '1420203669872750594', + functionType: 0, + key: '1420203669872750594' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/oc/info-manage/info-list', + title: '资讯列表', + isLeaf: true, + parentId: '1420203661903572994', + i18n: 'menu.oc.info-manage.info-list', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '资讯列表', + id: '1420203669885333505', + functionType: 0, + key: '1420203669885333505' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/oc/info-manage/edit-info', + title: '编辑资讯', + isLeaf: true, + parentId: '1420203661903572994', + i18n: 'menu.oc.info-manage.edit-info', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '编辑资讯', + id: '1420203669910499330', + functionType: 0, + key: '1420203669910499330' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '资讯管理', + id: '1420203661903572994', + functionType: 0, + key: '1420203661903572994' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 2, + icon: 'icon-appstore', + link: '', + title: '业务资讯管理', + isLeaf: false, + parentId: '1420203657663131650', + i18n: 'menu.operationcenter.business', + hide: false, + sorted: '0', + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 3, + icon: '', + link: '/operationcenter/business/audit', + title: '业务资讯审核', + isLeaf: false, + parentId: '1420203661907767298', + i18n: 'menu.operationcenter.business.audit', + hide: false, + sorted: '0', + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 4, + icon: '', + link: '/operationcenter/business/list/detail', + title: '业务资讯详情', + isLeaf: true, + parentId: '1420203669432348674', + i18n: 'menu.operationcenter.business.lsit.detail', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '业务资讯详情', + id: '1420203671445614594', + functionType: 0, + key: '1420203671445614594' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 4, + icon: '', + link: '/operationcenter/business/list/detail', + title: '业务资讯详情', + isLeaf: true, + parentId: '1420203669432348674', + i18n: 'menu.operationcenter.business.lsit.detail1', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '业务资讯详情', + id: '1449064125215805442', + functionType: 0, + key: '1449064125215805442' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '业务资讯审核', + id: '1420203669432348674', + functionType: 0, + key: '1420203669432348674' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 3, + icon: '', + link: '/operationcenter/business/list', + title: '业务资讯列表', + isLeaf: false, + parentId: '1420203661907767298', + i18n: 'menu.operationcenter.business.list', + hide: false, + sorted: '0', + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 4, + icon: '', + link: '/operationcenter/business/list/detail', + title: '业务资讯详情', + isLeaf: true, + parentId: '1420203669621092353', + i18n: 'menu.operationcenter.business.lsit.detail', + hide: true, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '业务资讯详情', + id: '1420203671495946241', + functionType: 0, + key: '1420203671495946241' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '业务资讯列表', + id: '1420203669621092353', + functionType: 0, + key: '1420203669621092353' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/operationcenter/business/deal', + title: '业务资讯处理', + isLeaf: true, + parentId: '1420203661907767298', + i18n: 'menu.operationcenter.business.deal', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '业务资讯处理', + id: '1420203669704978433', + functionType: 0, + key: '1420203669704978433' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '业务资讯管理', + id: '1420203661907767298', + functionType: 0, + key: '1420203661907767298' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 2, + icon: '', + link: '', + title: '更多管理', + isLeaf: false, + parentId: '1420203657663131650', + i18n: 'menu.ope.center.more', + hide: false, + sorted: '0', + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/oc/announcements/list', + title: '公告管理', + isLeaf: true, + parentId: '1420203662058762242', + i18n: 'menu.ope.center.notice', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '公告管理', + id: '1420203670275403777', + functionType: 0, + key: '1420203670275403777' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/oc/hc/content-conf-index', + title: '帮助中心', + isLeaf: true, + parentId: '1420203662058762242', + i18n: 'menu.ope.center.help', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '帮助中心', + id: '1420203670279598081', + functionType: 0, + key: '1420203670279598081' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/oc/feekback/list', + title: '意见反馈', + isLeaf: true, + parentId: '1420203662058762242', + i18n: 'menu.ope.center.opinion', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '意见反馈', + id: '1420203670434787330', + functionType: 0, + key: '1420203670434787330' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/oc/feekback-type/list', + title: '反馈类型', + isLeaf: true, + parentId: '1420203662058762242', + i18n: 'menu.ope.center.back.type', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '反馈类型', + id: '1420203670602559489', + functionType: 0, + key: '1420203670602559489' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '更多管理', + id: '1420203662058762242', + functionType: 0, + key: '1420203662058762242' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 2, + icon: '', + link: '', + title: '项目管理', + isLeaf: false, + parentId: '1420203657663131650', + i18n: 'menu.operationcenter.object.manage', + hide: false, + sorted: '0', + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/ctc/order/object', + title: '项目列表', + isLeaf: true, + parentId: '1449064098389037058', + i18n: 'menu.operationcenter.object.list', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '项目列表', + id: '1449064112561590274', + functionType: 0, + key: '1449064112561590274' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '项目管理', + id: '1449064098389037058', + functionType: 0, + key: '1449064098389037058' + }, + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: false, + level: 2, + icon: '', + link: '', + title: '项目管理', + isLeaf: false, + parentId: '1420203657663131650', + i18n: 'menu.operationcenter.object.manage1', + hide: false, + sorted: '0', + shortcut: 0, + children: [ + { + hideInBreadcrumb: 0, + reuse: 0, + isLea: true, + level: 3, + icon: '', + link: '/ctc/order/object', + title: '项目列表', + isLeaf: true, + parentId: '1449078391142617090', + i18n: 'menu.operationcenter.object.list1', + hide: false, + sorted: '0', + shortcut: 0, + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '项目列表', + id: '1449078669807980545', + functionType: 0, + key: '1449078669807980545' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '项目管理', + id: '1449078391142617090', + functionType: 0, + key: '1449078391142617090' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '运营中心', + id: '1420203657663131650', + functionType: 0, + key: '1420203657663131650' + } + ], + appId: '2537B72DDA534361AE4931903F0BFEB3', + menuType: 0, + text: '主导航', + id: '1420203656199319554', + functionType: 0, + key: '1420203656199319554' + } +]; diff --git a/src/app/routes/sys-setting/components/role-management/menu/menu.component.html b/src/app/routes/sys-setting/components/role-management/menu/menu.component.html new file mode 100644 index 00000000..5ddab19d --- /dev/null +++ b/src/app/routes/sys-setting/components/role-management/menu/menu.component.html @@ -0,0 +1,39 @@ +
+
+ + +
+
+ + +
+ +
+ + +
+ +
+ + + + + + + + + + + + + + +
+

此应用功能模块无数据权限限制,如需添加,请联系系统管理员。

+
+
+
+
+ \ No newline at end of file diff --git a/src/app/routes/sys-setting/components/role-management/menu/menu.component.ts b/src/app/routes/sys-setting/components/role-management/menu/menu.component.ts new file mode 100644 index 00000000..4cff236d --- /dev/null +++ b/src/app/routes/sys-setting/components/role-management/menu/menu.component.ts @@ -0,0 +1,361 @@ +import { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnInit, Output, ViewChild } from '@angular/core'; +import { ModalHelper, _HttpClient } from '@delon/theme'; +import { NzFormatEmitEvent, NzTreeNodeOptions } from 'ng-zorro-antd/core/tree'; +import { NzTreeComponent } from 'ng-zorro-antd/tree'; +import { SystemService } from '../../../services/system.service'; +import { Funcs } from './funcs'; + +@Component({ + selector: 'app-cuc-menu', + templateUrl: './menu.component.html', + styleUrls: ['menu.less'] +}) +export class SettingMenuComponent implements OnInit { + @ViewChild('nzTreeComponent', { static: false }) nzTreeComponent!: NzTreeComponent; + origin: any = { buttonInfoList: Funcs[0].children, dictList: Funcs[0].children }; + node: any = {}; + authority: any[] = []; + defaultSelectedKeys: any[] = []; + defaultExpandedKeys: any[] = []; + defaultCheckedKeys: any[] = []; + functionList: any[] = Funcs; + selectProject: any = {}; + selectApp: any = {}; + @Input() type = 'edit'; + @Input() source = ''; + @Input() isAuthorityIdDTOList: any[] = []; + @Input() authorityAssistId: any[] = []; + @Input() roleId: any; + @Output() changeData = new EventEmitter(); + constructor(public service: SystemService, private cdr: ChangeDetectorRef) {} + + ngOnInit() { + if (this.type === 'edit') { + this.authority = this.isAuthorityIdDTOList; + } + } + getAllFunction() { + this.service.request(this.service.$api_getAllFunctionInfoByAppId, { appId: '' }, 'POST', true, 'FORM').subscribe(res => { + if (this.source === 'onlyRelationAuth') { + this.addDisabledTree(res); + } else { + // this.addDisabledLeafTree(res); + } + this.functionList = res; + this.defaultCheckedKeys = this.authorityAssistId; + this.cdr.detectChanges(); + }); + } + addAuthority(origin: { id: any; all: any }, node: { buttonInfoList: any[] }, item?: { checked: any; id: any }) { + if (this.authority.length && this.authority.filter(authItem => authItem.authorityId === origin.id).length) { + // 判断此菜单权限是否已经存在权限列表中 + // 当前操作菜单id存在权限列表里 + this.authority.forEach((menuItem, menuIndex) => { + if (menuItem.authorityId === origin.id) { + menuItem.buttonAuthorityIds = menuItem.buttonAuthorityIds || []; // 防止属性不存在,给属性指定数据类型 + if (item) { + // 单选 + if (item.checked) { + if (menuItem.buttonAuthorityIds.indexOf(item.id) === -1) { + // 如果该按钮在数据权限数组中不存在 + menuItem.buttonAuthorityIds.push(item.id); + } + } else { + if (menuItem.buttonAuthorityIds && menuItem.buttonAuthorityIds.length) { + menuItem.buttonAuthorityIds.forEach((btnItem: any, index: any) => { + if (btnItem === item.id) { + menuItem.buttonAuthorityIds.splice(index, 1); + } + }); + } + } + } else { + // 全选 + if (origin.all) { + node.buttonInfoList.forEach((nodeItem: { id: any; checked: boolean }) => { + if (menuItem.buttonAuthorityIds.indexOf(nodeItem.id) === -1) { + menuItem.buttonAuthorityIds.push(nodeItem.id); + nodeItem.checked = true; + } + }); + } else { + if (menuItem.buttonAuthorityIds && menuItem.buttonAuthorityIds.length) { + menuItem.buttonAuthorityIds = []; + node.buttonInfoList.forEach((nodeItem: { checked: boolean }) => { + nodeItem.checked = false; + }); + } + } + } + } + }); + } else { + // 数组为空的时候 + const buttonAuthorityIds = []; + if (item) { + // 全选 + buttonAuthorityIds.push(item.id); + } else { + node.buttonInfoList.forEach((nodeItem: { id: any; checked: boolean }) => { + if (origin.all) { + buttonAuthorityIds.push(nodeItem.id); + nodeItem.checked = true; + } + }); + } + const obj: any = { + authorityId: origin.id, + buttonAuthorityIds + }; + this.authority.push(obj); + } + this.checkTreeNode(node, origin); + } + addDict(item: { checked: any; itemId: any; itemKey: any }, dictItem: { dictId: any }, origin: { id: any }, node: any) { + if (this.authority.length) { + // 判断此菜单权限是否已经存在权限列表中 + if (this.authority.filter(authItem => authItem.authorityId === origin.id).length) { + // 当前操作菜单id存在权限列表里 + this.authority.forEach((menuItem, menuIndex) => { + if (menuItem.authorityId === origin.id) { + menuItem.dataAuthority = menuItem.dataAuthority || []; // 防止属性不存在,给属性指定数据类型 + if (item.checked) { + if (menuItem.dataAuthority.filter((ele: { dictItemId: any }) => ele.dictItemId === item.itemId).length === 0) { + // 如果该按钮在数据权限数组中不存在 + menuItem.dataAuthority.push({ dictItemId: item.itemId, itemKey: item.itemKey, dictId: dictItem.dictId }); + } + } else { + if (menuItem.dataAuthority && menuItem.dataAuthority.length) { + menuItem.dataAuthority.forEach((btnItem: { dictItemId: any }, index: any) => { + if (btnItem.dictItemId === item.itemId) { + menuItem.dataAuthority.splice(index, 1); + } + }); + } + } + } + }); + } else { + // 当前操作菜单id不存在权限列表里 + const dataAuthority = []; + dataAuthority.push({ dictItemId: item.itemId, itemKey: item.itemKey, dictId: dictItem.dictId }); + const obj: any = { + authorityId: origin.id, + dataAuthority + }; + this.authority.push(obj); + } + } else { + // 数组为空的时候 + const dataAuthority = []; + dataAuthority.push({ dictItemId: item.itemId, itemKey: item.itemKey, dictId: dictItem.dictId }); + const obj: any = { + authorityId: origin.id, + dataAuthority + }; + this.authority.push(obj); + } + this.checkTreeNode(node, origin); + } + checkTreeNode(node: any, origin: { id: any }) { + const checkedNode: any = this.nzTreeComponent.getCheckedNodeList(); + const allCheckedArr: any[] = []; + this.overTree(checkedNode, allCheckedArr); + this.authority.forEach(authItem => { + if (authItem.authorityId === origin.id) { + if ( + (authItem.buttonAuthorityIds && authItem.buttonAuthorityIds.length) || + (authItem.dataAuthority && authItem.dataAuthority.length) + ) { + if (allCheckedArr.indexOf(node.key) === -1) { + allCheckedArr.push(node.key); + } + } else { + if (allCheckedArr.indexOf(node.key) !== -1) { + allCheckedArr.forEach((ele, index) => { + if (ele === origin.id) { + allCheckedArr.splice(index, 1); + } + }); + } + } + } + }); + this.defaultCheckedKeys = allCheckedArr; + } + addAuthorityAll(origin: any, node: { checked: any; buttonInfoList: any[] }) { + if (node.checked) { + node.buttonInfoList.forEach((item: any) => {}); + } else { + } + } + overTree(children: any[], a: any[]) { + children.forEach(item => { + a.push(item.key); + if (item.isLeaf) { + return; + } + if (item.children && item.children.length) { + this.overTree(item.children, a); + } + }); + } + // 获取角色模板权限 + getRoleTpl(id: any) { + const params = { + id + }; + this.service.request(this.service.$api_getRoleTemplateInfo, params).subscribe(res => { + this.authority = res.authority; + this.defaultCheckedKeys = res.authorityAssistId; + }); + } + addDisabledTree(arr: any[]) { + arr.forEach((item: any) => { + item.disableCheckbox = true; + if (item.isLeaf) { + return; + } + if (item.children && item.children.length) { + this.addDisabledTree(item.children); + } + }); + } + addDisabledLeafTree(arr: any[]) { + arr.forEach((item: any) => { + if (item.isLeaf) { + return; + } + item.disableCheckbox = true; + if (item.children && item.children.length) { + this.addDisabledLeafTree(item.children); + } + }); + } + nzEvent(event: any): void { + const ele = event.event.target as HTMLElement; + this.origin = event.node.origin; + this.node = event.node.origin; + if (!event.node.origin.isLeaf) { + event.node.isExpanded = !event.node.isExpanded; + } else { + // this.initButtonList(event.node.key, event.node.origin); + // this.initDictList(event.node.key, event.node.origin); + } + } + + washTree() { + const authorityMenu: any[] = []; // this.authority + const tempAuthorityIdDTOListMenu: any[] = []; + const checkedNode: any = this.nzTreeComponent.getCheckedNodeList(); + const halfCheckedNode: any = this.nzTreeComponent.getHalfCheckedNodeList(); + this.authorityAssistId = []; + halfCheckedNode.forEach((item: { key: any }) => { + authorityMenu.push({ authorityId: item.key }); + tempAuthorityIdDTOListMenu.push(item.key); + }); + this.overWashTree(checkedNode, tempAuthorityIdDTOListMenu, authorityMenu); + if (this.authority && this.authority.length) { + this.authority.forEach(item => { + if (tempAuthorityIdDTOListMenu.indexOf(item.authorityId) !== -1) { + tempAuthorityIdDTOListMenu.forEach((oldItem, oldIndex) => { + if (oldItem === item.authorityId) { + authorityMenu[oldIndex] = item; + } + }); + } + }); + } + const result = { + authority: authorityMenu, + authorityAssistId: this.authorityAssistId + }; + this.changeData.emit(result); + } + overWashTree(children: any[], tempAuthorityIdDTOListMenu: any[], authorityMenu: any[]) { + children.forEach((item: any) => { + this.authorityAssistId.push(item.key); + tempAuthorityIdDTOListMenu.push(item.key); + authorityMenu.push({ authorityId: item.key }); + if (item.isLeaf) { + return; + } + if (item.children) { + this.overWashTree(item.children, tempAuthorityIdDTOListMenu, authorityMenu); + } + }); + } + initButtonList(id: any, origin: any) { + const params = { + id + }; + this.service.request(this.service.$api_getFunctionButtonInfo, params).subscribe(res => { + if (res) { + origin.buttonInfoList = res; + origin.all = false; + // 判断此菜单下是否已有此按钮权限 + this.againGetBtn(id, origin); + } + }); + } + // 再次请求,需要判断暂存权限数组是否已有此权限 + againGetBtn(id: any, origin: any) { + if (this.authority.length === 0) { + return; + } + this.authority.forEach(item => { + if (item.authorityId === id) { + // 如果当前菜单Id等于暂存权限数组的Id + if (item.buttonAuthorityIds && item.buttonAuthorityIds.length) { + // 如果当前菜单Id权限数组不为空 + origin.buttonInfoList.forEach((btnItem: { id: any; checked: boolean }) => { + // 判断已有权限id是否存在 + if (item.buttonAuthorityIds.indexOf(btnItem.id) !== -1) { + btnItem.checked = true; + } else { + btnItem.checked = false; + } + }); + } + } + }); + } + initDictList(id: any, origin: any) { + const params = { + id + }; + this.service.request(this.service.$api_getFunctionDataInfo, params).subscribe(res => { + if (res) { + origin.dictList = res; + // 判断此菜单下是否已有此按钮权限 + this.againGetDict(id, origin); + } + }); + } + // 再次请求,需要判断暂存权限数组是否已有此权限 + againGetDict(id: any, origin: any) { + if (this.authority.length === 0) { + return; + } + this.authority.forEach(item => { + if (item.authorityId === id) { + // 如果当前菜单Id等于暂存权限数组的Id + if (item.dataAuthority && item.dataAuthority.length) { + // 如果当前菜单Id权限数组不为空 + origin.dictList.forEach((ele: { dictItem: any[] }) => { + // 判断已有权限id是否存在 + ele.dictItem.forEach((dictItem: { itemId: any; checked: boolean; cheked: boolean }) => { + item.dataAuthority.forEach((dataItem: { dictItemId: any }) => { + if (dataItem.dictItemId === dictItem.itemId) { + dictItem.checked = true; + } else { + dictItem.cheked = false; + } + }); + }); + }); + } + } + }); + } +} diff --git a/src/app/routes/sys-setting/components/role-management/menu/menu.less b/src/app/routes/sys-setting/components/role-management/menu/menu.less new file mode 100644 index 00000000..4e400d45 --- /dev/null +++ b/src/app/routes/sys-setting/components/role-management/menu/menu.less @@ -0,0 +1,202 @@ +:host { + .toolbar-btn { + padding-left: 0; + } + + ::ng-deep { + .ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin: 0; + } + + .listDiv { + cdk-virtual-scroll-viewport { + border: 1px solid rgba(242, 242, 240, 1); + } + + .selectedItem { + background: #e6f7ff; + + span { + a { + color: rgba(212, 72, 86, 1); + } + } + + ul>li>a>i { + color: rgba(212, 72, 86, 1); + } + } + + .listBottom { + height : 2.5rem; + overflow : hidden; + text-align : center; + background-color: rgba(245, 245, 245, 0.7); + + &:hover { + background-color: rgba(245, 245, 245, 1); + transition : all 1s; + } + } + } + + .ant-tabs-nav { + width : 100%; + margin: 0 !important; + } + + .buttons { + padding: 0; + + button { + display : block; + max-width: 10rem; + margin : 0.3rem 0.5rem 0 0; + } + + .ant-btn+.ant-btn:not(.ant-btn-link), + .ant-btn+nz-popconfirm, + nz-popconfirm+.ant-btn, + nz-popconfirm+nz-popconfirm, + .ant-btn+nz-button-group, + nz-button-group+.ant-btn, + .ant-btn+nz-dropdown, + nz-dropdown+.ant-btn, + nz-popconfirm+nz-button-group, + nz-button-group+nz-popconfirm { + margin-left: 0; + } + } + + .ant-tabs-bar { + margin: 0; + } + + // .ant-tree-node-selected { + // background: none !important; + // } + // .ant-tree-node-content-wrapper:hover { + // background: none; + // } + .ant-tree-node-content-wrapper { + width: 100%; + } + + .ant-tabs .ant-tabs-tabpane { + padding : 10px 10px 2px 10px; + background : #fdfdfd; + border-right : solid 1px #eee; + border-bottom: solid 1px #eee; + border-left : solid 1px #eee; + } + + // .ant-tabs-tab { + // width: 50%; + // text-align: center; + // } + // .ant-tabs-tab-arrow-show { + // display: none; + // } + ul { + margin : 0; + padding: 0; + } + } +} + +.firstStepBox { + width : 100%; + line-height: 50px; + text-align : center; + background : #f7f7f7; +} + +.itemBox { + width : 100%; + height : 50px; + padding : 0 0 0 60px; + color : #5f5f5f; + line-height: 50px; + cursor : pointer; + + &:hover { + background: #e6f7ff; + } +} + +.twoStepBox { + width : 100%; + line-height: 50px; + text-align : center; + background : #f7f7f7; + + span { + display: inline-block; + margin : 0 auto; + } + + >i { + float : right; + margin: 20px 20px 0 0; + } + + button { + float : right; + margin: 8px 20px 0 0; + } + + .blueFont { + color: #1890ff; + } +} + +.folder-desc i { + margin: 0 5px; +} + +.flexBox { + .titleBox { + display : flex; + justify-content: space-between; + + i { + margin: 0 8px; + } + } +} + +ul { + display: block; +} + +li { + line-height: 30px; + list-style : none; +} + + +label { + color : #666; + font-size: 13px; +} + +.treeWrap { + display: flex; + width : 700px; + + .leftBox { + width : 250px; + border : 1px solid #d1d1d1; + max-height: 500px; + overflow : auto; + } + + .rightBox { + flex : 1; + margin : 0 0 0 20px; + padding-left: 12px; + border : 1px solid #d1d1d1; + max-height : 500px; + overflow : auto; + } +} \ No newline at end of file diff --git a/src/app/routes/sys-setting/components/role-management/role-management.component.ts b/src/app/routes/sys-setting/components/role-management/role-management.component.ts index c0ba32d1..15468bd2 100644 --- a/src/app/routes/sys-setting/components/role-management/role-management.component.ts +++ b/src/app/routes/sys-setting/components/role-management/role-management.component.ts @@ -3,6 +3,7 @@ import { STComponent, STColumn, STChange } from '@delon/abc/st'; import { SFComponent, SFSchema } from '@delon/form'; import { NzModalService } from 'ng-zorro-antd/modal'; import { SystemService } from '../../services/system.service'; +import { SettingRoleEditComponent } from './edit/edit.component'; @Component({ selector: 'app-role-management', @@ -40,12 +41,12 @@ export class RoleManagementComponent implements OnInit { title: '操作', buttons: [ { - text: '编辑' - // click: item => this.staffAction(item) + text: '编辑', + click: item => this.roleAction(item) }, { - text: '删除' - // click: item => this.action(3) + text: '删除', + click: item => this.deleteAction(item) } ] } @@ -70,7 +71,26 @@ export class RoleManagementComponent implements OnInit { } } - roleAction(item?: any) {} + roleAction(item?: any) { + const modal = this.nzModalService.create({ + nzContent: SettingRoleEditComponent, + nzWidth: 900, + nzComponentParams: item ? { i: { ...item } } : { i: { id: 0 } }, + nzFooter: null + }); + modal.afterClose.subscribe(res => { + this.st.load(); + }); + } + + deleteAction(item?: any) { + this.nzModalService.error({ + nzTitle: '确认删除?', + nzClosable: false, + nzCancelText: '取消', + nzOnOk: () => {} + }); + } /** * 重置表单 diff --git a/src/app/routes/sys-setting/services/system.service.ts b/src/app/routes/sys-setting/services/system.service.ts index b6bbf64e..85b356d3 100644 --- a/src/app/routes/sys-setting/services/system.service.ts +++ b/src/app/routes/sys-setting/services/system.service.ts @@ -5,6 +5,14 @@ import { BaseService } from 'src/app/shared/services'; providedIn: 'root' }) export class SystemService extends BaseService { + $api_getAllFunctionInfoByAppId: string = ''; + $api_getRoleTemplateInfo: string = ''; + $api_getFunctionButtonInfo: string = ''; + $api_getFunctionDataInfo: string = ''; + $api_getAppList: string = ''; + $api_getRoleTemplateListByAppId: string = ''; + $api_getRoleInfo: string = ''; + $api_updateRoleInfo: string = ''; constructor(public injector: Injector) { super(injector); } 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 8d7b72f3..4cb9395f 100644 --- a/src/app/routes/sys-setting/sys-setting-routing.module.ts +++ b/src/app/routes/sys-setting/sys-setting-routing.module.ts @@ -5,6 +5,7 @@ import { AuditReasonConfigComponent } from './components/audit-reason-config/aud 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 { GoodsNameConfigComponent } from './components/goods-name-config/goods-name-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'; @@ -24,6 +25,7 @@ const routes: Routes = [ { path: 'cart-config', component: CartConfigComponent }, { path: 'agreement-config', component: AgreementConfigComponentsBaseComponent }, { path: 'system-config', component: SystemConfigComponent }, + { path: 'goods-name-config', component: GoodsNameConfigComponent }, ]; @NgModule({ diff --git a/src/app/routes/sys-setting/sys-setting.module.ts b/src/app/routes/sys-setting/sys-setting.module.ts index 91cc11f9..dd2b9727 100644 --- a/src/app/routes/sys-setting/sys-setting.module.ts +++ b/src/app/routes/sys-setting/sys-setting.module.ts @@ -18,6 +18,9 @@ import { CartConfigActionModalComponent } from './components/cart-config/cart-co 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'; +import { SettingRoleEditComponent } from './components/role-management/edit/edit.component'; +import { SettingMenuComponent } from './components/role-management/menu/menu.component'; +import { GoodsNameConfigComponent } from './components/goods-name-config/goods-name-config.component'; const COMPONENTS = [ StaffManagementComponent, @@ -30,14 +33,17 @@ const COMPONENTS = [ CartConfigComponent, AgreementConfigComponentsBaseComponent, BasicSettingComponent, - SystemConfigComponent + SystemConfigComponent, + GoodsNameConfigComponent ]; const NOTROUTECOMPONENTS = [ BuyerTranspowerComponent, SystemStaffStaffModalComponent, BasicConfigActionModalComponent, AuditResonConfigActionModalComponent, - CartConfigActionModalComponent + CartConfigActionModalComponent, + SettingRoleEditComponent, + SettingMenuComponent ]; @NgModule({ declarations: [...COMPONENTS, ...NOTROUTECOMPONENTS], diff --git a/src/app/shared/shared-zorro.module.ts b/src/app/shared/shared-zorro.module.ts index bc6ebba4..35a08d18 100644 --- a/src/app/shared/shared-zorro.module.ts +++ b/src/app/shared/shared-zorro.module.ts @@ -36,6 +36,7 @@ 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 { NzEmptyModule } from 'ng-zorro-antd/empty'; export const SHARED_ZORRO_MODULES = [ NzButtonModule, NzGridModule, @@ -64,5 +65,6 @@ export const SHARED_ZORRO_MODULES = [ NzRadioModule, NzTimePickerModule, NzCheckboxModule, - NzInputNumberModule + NzInputNumberModule, + NzEmptyModule ]; diff --git a/src/assets/mocks/menu-data.json b/src/assets/mocks/menu-data.json index 77326531..51e65ba8 100644 --- a/src/assets/mocks/menu-data.json +++ b/src/assets/mocks/menu-data.json @@ -174,7 +174,7 @@ }, { "text": "货物名称配置", - "link": "/demo/alain" + "link": "/system/goods-name-config" } ] } diff --git a/src/style-icons-auto.ts b/src/style-icons-auto.ts index a07c78c9..a88a9cdd 100644 --- a/src/style-icons-auto.ts +++ b/src/style-icons-auto.ts @@ -52,7 +52,8 @@ import { UsbOutline, UserOutline, WeiboCircleOutline, - EyeInvisibleOutline + EyeInvisibleOutline, + MoreOutline } from '@ant-design/icons-angular/icons'; export const ICONS_AUTO = [ @@ -105,4 +106,5 @@ export const ICONS_AUTO = [ UserOutline, WeiboCircleOutline, EyeInvisibleOutline, + MoreOutline ];