Giter Site home page Giter Site logo

teemo's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

teemo's Issues

菜单组限制为2层,第1层为折叠形式,第2层为divider形式

过多的菜单组层级对于菜单的体验很差,所以需要限定支持的层数,个人感觉2层就足够了,一方面不会影响到体验,一方面2层对于绝大部分系统来说已经足够对菜单进行分类了。

第一层采用 antd pro 原生的可折叠的形式,第二层则以antd 的 Menu.ItemGroup 的方式呈现。

菜单项增加新功能标签

每次有新模块上线,在对应菜单项中增加 new 标签用于表明这是自最近一次迭代以来新增的功能。
在 menu.config.js 中增加一个配置项,用于配置标签:

// file: menu.config.js

export default [
  { type: 'module', id: 'authority.user-mgnt', icon: 'profile', 'label': 'new!' }
]

在渲染菜单时,根据 label 的取值 ,来决定是否显示标签以及标签的内容

使用service注解替代module.config.js中权限配置

尝试使用 AST 分析 Service 注解,获得Service方法需要在哪些模块或事件(event)中使用,依次关联模块或事件与资源之间的关联。
module.config.js 会变成如下:

export default {
  authority: {
    events: [
        { code: 'create-user', name: '创建用户' }
    ],
  }
}

xxx.service.js 会变成如下:

import { get, post, delete, put } from '@/utils/rest-accessor',

@entry
@event('create-user')
export createUser = (userObj) => {
  post('/users', userObj);
}

@entry 意味着这个 service 方法在进入模块时必须使用此方法的。
@event 意味着这个 service 方法在执行事件 create-user 时会被使用。

注意:某些资源是公开的,而注解无法识别某个资源是否是公开的,若是公开的,意味着在 currentUser 的 resources 列表中是没有的,因此在根据注解对模块或事件与资源做关联时要过滤掉那些无需权限的公开资源。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.