npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

rd_plat

v1.3.24

Published

```shell npm i rd_plat ```

Readme

Install

npm i rd_plat

Usage

在main.js中引入所需组建包,并注册为Vue组件

// 目前仅支持按需加载
import {RdHeader, RdNav, ...} from 'rd_plat'

Vue.component('RdHeader', AppHeader)
Vue.component('RdNav', AppNav)

为避免iview的样式冲突,本组件中不再引用view-design的样式,需要在项目中安装view-design或iview(二选一)并引用样式。如果您的项目本身包含了iview或view-design可忽略此步骤

Components

RdHeader

平台的统一头部。参数和事件均可按组划分:program组productLine组search组yyzone组message组help组user组。开发者可根据项目需要使用的组进行配置。

props

| 属性 | 说明 | 类型 | 默认值| | --------------- | ------------------------------------------------------------ | ------ | --------------- | | *curProgram | 当前项目id | String | Number | | | *programs | 可选项目列表,可选项目对象包含属性:idtitle | Array | | | hasProductLine | 是否显示产品线选择栏 | Boolean |false| | curProductLine | 当产品线Id | String || | productLines | 可选产品线下拉列表,每一个产品线对象包含两个属性:idtitle | Array || | hasSearch | 是否显示搜索栏 | Boolean |false| | hasYyzone | 是否显示yyzone图标 | Boolean |false| | hasMessage | 是否显示信息 | Boolean |false| | messages | 消息列表,消息对象包含两个属性: idtitle | Array || | hasHelp | 是否显示帮助 | Boolean |false| | hasAvatar | 是否显示头像下拉列表 | Boolean |false| | avatarList | 头像下拉列表,每一项包含两个属性:idtitle | Array ||

events

| 事件名 | 说明 | 返回值 | | -------------- | ------------------------------------------------------------ | ------------ | | on-program | 选择项目,保持当前选择项目和curProgram相同则必须使用该事件。 | 所选项目Id | | on-productline | 选择产品线,同上 | 所选产品线Id | | on-search | 触发搜索 | 搜索框value | | on-yyzone | 出发yyzone图标 | | | on-message | 查看消息 | 所选消息的id | | on-help | 点击帮助按钮 | | | on-avatar | 点选头像下拉列表中的某一项 | 所选项的id |

代码示例

<template>
    <rd-header
         style="z-index:999"
         :curProgram="curProgram"
         :programs="programs"
         @on-program="handlechangeProgram"
         :hasProductLine="true"
         :curProductLine="curProductLine"
         :productLines="productLines"
         @on-productline="handleChangeProductLine"
         :hasSearch="true"
         @on-search="handleSearch"
         :hasYyzone="true"
         @on-yyzone="handleYyzone"
         :hasMessage="true"
         :messages="messages"
         @on-message="handleMessage"
         :hasHelp="true"
         @on-help="handleHelp"
         :hasAvatar="true"
         :avatarList="avatarList"
         @on-avatar="handleAvatar">
    </rd-header>
</template>
<script>
		export default {
      	data() {
          return {
              curProgram: 'program01',
              programs: [{
                  id: "program01",
                  title: "产品管理系统"
              }],
              curProductLine: 'line01',
              productLines: [{
                  id: 'line01',
                  title: '产品线1'
              }]
           }
        },
      methods: {
        	handlechangeProgram(id) {
            this.curProgram = id
          },
        	handleChangeProductLine(id) {
            this.curProductLine = id
          },
        	handleSearch(val) {
            console.log('search: ',val)
        	},
        	handleYyzone() {
            console.log('clicked yyzone')
          },
        	handleMessage(id) {
            console.log('message--', id)
        	},
        	handleHelp() {
            console.log('help---')
        	},
        	handleAvatar(id) {
            console.log('avatar---', id)
        	}
      }
    }
</script>

RdNav

平台的统一左侧菜单,支持离开页面的提示弹窗(注意:无论对弹窗进行何等操作页面都会跳转,区别在于在跳转之前是否执行本页面的一些操作例如保存数据等)

props

| 属性 | 说明 | 类型 | 默认值 | | ------------- | ------------------------------------------------------------ | ------- | ------ | | *data | 导航数组,导航对象必须包含以下属性: "code": "line", "title": "路线图", "type": "BUSINESS", // 或 "ADMIN" "childMenu": [{}..], // 子菜单(非必须) | Array | | | iconConfig | 用于配置菜单的图标 | Array | | | defaultClosed | 默认是否展开/关闭菜单 | Boolean | false |

// iconConfig 结构
[
  {
    'code': 'line',
    'icon': 'iconluxiantu',
  },{
    'code': 'theme',
    'icon': 'iconzhanlvezhuti',
  }
  ...
]

events**

| 事件名 | 说明 | 返回值 | | --------- | ------------------------------------------------------------ | -------------- | | on-select | 点选菜单,返回选中菜单等code,可以配合路由进行页面跳转。 | 选中菜单等code | | on-leave- | on-leave-pageon-leave-ok用于离开页面是弹窗操作,具体用法见代码示例 | |

代码示例

// app.vue
<template>
    <rd-nav
        :data="menuList"
        :iconConfig="iconConfig"
        :defaultClosed="true"
        @on-select="handlePageJump">
    </rd-nav>
</template>
<script>
		export default {
      data() {
          return {
             	menuList: [
                {
                  "code": "line",
                  "title": "路线图",
                  "type": "BUSINESS",
                }, {
									"code": "character",
                  "title": "需求管理",
                  "type": "BUSINESS",
                  "childMenu": [{
                    "code": "featureEntry",
                    "title": "特性录入",
                    "type": "BUSINESS",
                  }]
                }
              ]
           }
      },
      methods: {
        	handlePageJump(code) {
            this.$router.push({
                path: "/" + code
            })
        	}
      }
    }
</script>
// 离开时需要弹出提示的页面
<template>
   ...
</template>
<script>
		export default {
      data() {
          return {

          }
      },
      mounted() {
        // 监听离开页面
        this.$eventbus.$off('on-leave-page').$on('on-leave-page', (params) => {
            params.path = '/productlineGoal' // 当前离开页面的路有
            params.hasChange = this.hasChange // 是否需要弹窗,true为需要,false为不需要
            params.message = 'productlineGoal-changed' // 弹窗提示信息
        })
        // 监听弹窗确定按钮
        this.$eventbus.$off('on-leave-ok').$on('on-leave-ok', (path) => {
            if (path == '/productlineGoal') {
              	// do something
            }
        })
      }
    }
</script>

RdDropdown

Poptip风格的dropdown

props

| 属性 | 说明 | 类型 | 默认值 | | --------- | ----------------- | ---------------- | ---------------- | | value | 支持v-model,当前值 | String | Number || | data | 可选项数组,可选项对象包括两个属性:idtitle | Array || | placement | 提示框出现的位置,可选值为top,top-start,top-end,bottom,bottom-start,bottom-end,left,left-start,left-end,right,right-start,right-end。默认值为bottom | String |bottom|

events

| 事件名 | 说明 | 返回值 | | --------- | ------ | ---------- | | on-change | 值改变 | 选中项的id |

RdFilter

筛选条件管理组件

usage

// 使用
<rd-filter
 ref="RdFilter"
 :fields="fields"
 :remoteMethod="remoteMethod"
 dateFormat="YYYY-MM-DD"
 dateTimeFormat="YYYY-MM-DD HH:mm:ss"
 confirmBtn="OK"
 @on-filter="handleFilter">
</rd-filter>

props

1. fields 条件数组

[
  {
    "code":"字符串,字段编码,如:product",
    "parent":"字符串,上级编码,如:product-line",
    "label":"字符串,自编标签,如:人员",
    "dataType":"枚举型,值:STRING/DATE/DATETIME/NUMBER/,数据类型",
    "inputType": "枚举型,输入控件类型,包含文本框、下拉框、日期等 ~",
    "multi": "布尔型,是否同时具有多个值",
    "defaults": ["默认值"],
    "options": ["备选项1","备选项2"],
    "refs": {
        "from":"来源实体",
        "aid":"主键字段",
        "title":"名称字段",
        "relation":"关联字段名称,如本表产品线ID"
    }
	}
]

注:如果设置父级条件,dataType请设置为合理的类型,不使用介于操作符可以避免组件出现不必要的报错。

下面列出四种dataType对应的操作符类型:

STRING: 包含 / 不包含 / 等于 / 不等于 / 模糊匹配

DATE/DATETIME: 等于 / 大于 / 大于等于 / 小于 / 小于等于 / 介于

NUMBER: 等于 / 大于 / 大于等于 / 小于 / 小于等于

2. remoteMethod 远程获取select型输入框的option

remoteMethod方法有两个参数,第一个参数接受field对象的refs,用于发送远程获取options的请求,第二个参数为回调,需要将请求结果,传入回调,组件会根据回调函数接受的option渲染

remoteMethod(refs,callback) {
  // console.log('ajax_req_params(refs):', refs)
  setTimeout(()=>{
    let data = [
      {
        aid: 'id-01',
        title: '备选值111'+refs.relValue
      }, {
        aid: 'id-02',
        title: '备选值2'+refs.relValue
      }, {
        aid: 'id-03',
        title: '备选值3'+refs.relValue
      }
    ]
    callback(data)
  }, 500)
},

3. dateFormat 日期格式

用于规定datePicker输出日期的格式(YYYY-MM-DD),如果不传默认输出时间戳

4. dateTimeFormat 日期时间格式

用于规定dateTimePicker输出日期的格式(YYYY-MM-DD HH:mm:ss),如果不传默认输出时间戳

5. confirmBtn 是否显示提交按钮以及提交按钮的文字

如果需要组件提提交按钮需要设置此项,并将值设置为提交按钮的文字。触发提交的回调为on-filter事件。

如果不需要提交按钮则不设置此项或设置此项的值为false,通过组件提供的handleSubmit方法获取值。

event

1. on-filter 点击确定回调(设置了confirmBtn时有效)

返回值不为空的有效的条件

// 返回体
[
    {
        "code":"字符串,字段编码,如:product",
        "dataType":"枚举型,值:STRING/DATE/DATETIME/NUMBER,数据类型",
        "compareType":"枚举型, 值见CompareType对象,对比方式、默认是等于",
        "values":[]
    }
]

2. handleSubmit 手动获取已添加的条件

返回体同on-filter方法

// 调用方法
this.$refs.RdFilter.handleSubmit((data) => {
  console.log('fromEvent', data)
})

RdDashBoard

仪表盘

props

  1. draggable: 是否可以拖拽调整布局(默认值false)
  2. resizable: 是否允许拖拽调整单个卡片的大小(默认值false)
  3. editable: 是否允许编辑(目前只开放删除卡片)(默认值false)
  4. host: 卡片内请求的host,(接口是固定的)(必传)
  5. analyseId: 仪表盘(分析模型)的id(必传)

event

  1. on-update:仪表盘根据id获取分析模型后向外传出分析模型

methods

  1. addItem(item, itemId)
  该方法为 向 grid-layout 组件动态添加卡片的方法
  1. 完整的 item 对象,参照sizeOption
  2. itemId 在外部生成唯一的Id
  1. handleSaveLayout:保存布局,可传入resolve方法

usage

<rd-dash-board
    ref="DashBoard"
    :draggable="true"
    :resizable="true"
    :editable="true"
    :host="host"
    :analyseId="analyseId"
    @on-update="dashBoardUpdata">
</rd-dash-board>
// 添加方法需要引用组件的卡片配置
import sizeOption from 'rd_plat/src/components/DashBoard/sizeOption.js'
export default {
  methods: {
    // 新增卡片
    handleAddReport(card) {
      let itemId = 'CardId-' + new Date().getTime()
      let item = sizeOption[card.cardType]
      item.aid = card.aid
      this.$refs.DashBoard.addItem(item, itemId)
    },
    // 保存布局
    handleSaveLayout() {
      this.$refs.DashBoard.handleSaveLayout()
    },
    // 获取更新后的看版信息(标题)
    dashBoardUpdata(dashBoard) {
      this.title = dashBoard.title
    },
  }
}

RdCardBoard

(单个)报表展示看板

props

  1. host: 同仪表盘的host
  2. cardId: 卡片模型(报表)id

event

on-update:同仪表盘的on-update

usage

<rd-card-board
    :host="host"
    :cardId="sourceId"
    @on-update="cardBoardUpdata">
</rd-card-board>

Utils

工具类

// 与模块一同引入
import {..., RdTools} from 'rd_plat'

// 定义到Vue原型或者直接使用RdTools
Vue.prototype.$rdTools = RdTools

// 使用
this.$rdTools.loading(false)

functions

  1. loading 全屏加载遮罩层

参数:

(1) status: Boolean // 遮罩层的显示/隐藏

(2) contents: String // 自定义文字

// 开启
this.$rdTools.loading(true, 'loading。。。')
// 隐藏
this.$rdTools.loading(false)

Versions

| 版本 | 说明 | | ------ | -------------------------- | | 1.2.13 | 优化项目结构,采用非打包上传,完美解决静态文件引用 | | 1.2.17 | 增加loading,离开页面的提示等通用方法,nav,文档待完善 | | 1.2.18 | 废弃全局安装完善文档 | | 1.3.0 | RdHeader增加头像下拉和帮助 | | 1.3.1 | 组件中不再引用view-design的样式 | | 1.3.2 | 增加筛选组件 | | 1.3.4 | 筛选组件细节优化,支持远程获取option,支持传入日期和日期时间格式,完善文档 | | 1.3.5 | 筛选组件支持级联条件 | | 1.3.6 | 修复父级条件含有多个子级条件是的交互bug | | 1.3.8 | 增加被动更改路由切换当前菜单 | | 1.3.9 | 头像可配 | | 1.3.10 | 菜单组件样式优化支持关闭状态 | | 1.3.15 | 图标更新 | | 1.3.16 | 样式调整 | | 1.3.18 | 图标更新 | | 1.3.20 | 样式优化 | | 1.3.21 | 增加仪表盘组件 | | 1.3.23 | 增加cardBoard组件 | | 1.3.24 | filter组件更新 |