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 🙏

© 2024 – Pkg Stats / Ryan Hefner

estone-ui

v1.0.17

Published

EStone UI

Downloads

4

Readme

安装

npm install estone-ui

引入样式

import { EModal, EInfoGroup, EDrawer, HView } from "estone-ui";

参考组件库

| 组件库 | 说明 | | ----------------------------------------- | ------------------------------------------ | | Ant Design | 服务于企业级产品的设计体系(本项目样式参考) |

引用示例

高阶组件

查询 STable

import { HView } from "estone-ui";
const {STable} = HView;

| 属性 | 说明 | 类型 | 默认值 | | ---------------- | -------------------- | --------------------- | --------------- | | conditions | 查询条件,具体配置项conditions | List | | | showLabel | 展示label | Boolean | true | | theme | 主题色 | dark 、 light 、 none | dark | | init | 初始查询 | Boolean | false | | loading | 加载状态 | Boolean | false | | collapseCount | 查询条件最多展示数量 | Number | -1 | | collapseRowCount | 查询条件最多行数 | Number | -1 | | column | 查询条件每行展示列 | Number | 4 | | rowKey | 表格行 key 的取值 | string : function(record) | key | | onSearch | 查询函数 | function(values) | | | total | 总条数 | Number | 0 | | data | 数据域 | Number | 0 | | columns | 表格列的配置描述columns | Number | [] | | renderButton | 功能按钮 | List [ ReactNode ] | -- | | command | 查询内置指令 | Object | -- | | tableProps | 表格拓展属性 | Object | -- | | getContainer | 挂载容器 | ReactElement | -- |

###conditions

| 属性 | 说明 | 类型 | 默认值 | | ---------------- | -------------------- | --------------------- | --------------- | | name | 条件id | String | | | label | 文本描述 | String | | | type | 类型 | String | | | options | 选项(select、checkbox、radio) | List | | | props | FormItem属性 | Object | | | attr | ReactNode属性 | Object | | | span | 占据栅格 | Number | 1 | | dependencies | 条件联动 | string[] : function(val, _form) | | | visible | 隐藏字段 | Boolean | false |

###columns

| 属性 | 说明 | 类型 | 默认值 | | ---------------- | -------------------- | --------------------- | --------------- | | key | 唯一标志 | String | | | title | 列头显示文字 | String | | | align | 对齐方式 | String | | | dataIndex | 对应数据项data属性 | String | | | width | 列宽度 | String、Number | 单位:px | | drawer | 行抽屉属性 | Object | | | ellipsis | 自动省略 | Boolen | false | | copyable | 复制内容 | Boolen | false | | responsive | 响应式布局 | String[] | |

drawer:

width: 600,
title : '测试抽屉',
render : (record) => {}

command:

//关闭抽屉
closeDrawer: (func) =>{},//
//刷新
refresh: (func) => {},
//刷新并关闭抽屉
closeDrawerAndRefresh: (func) => {},

表格左右滑动时,需配置父级容器getContainer【容器样式:style={{height: '100%', overflow: 'auto'}}】 表格横向宽度根据列宽度计算,若tableProps配置scroll:{x:'xxx'}, 参数需大于所有固定列和

表单 Form

import { HView } from "estone-ui";
const {Form} = HView;

| 属性 | 说明 | 类型 | 默认值 | | ---------------- | -------------------- | --------------------- | --------------- | | fields | 表单字段描述 | List | | | labelCol | label 标签布局 | Number | 6 | | wrapperCol | 控件布局 | Number | 14 | | loading | 加载状态 | Boolen | false | | column | 表单每行展示列 | Number[1, 2, 3] | 2 | | actions | 查询条件每行展示列 | Array | ['cancel', 'reset', 'finish'] | | actionsAlign | 按钮组对齐 | Boolen | true | | actionSpace | 按钮间距 | String | '40px' | | onFinish | 提交表单(数据验证成功) | function(values) | -- | | onReset | 重置表单 | function(values) | -- | | onCancel | 表格列的配置描述columns | function() | -- | | onFinishFailed | 取消类事件 | function() | -- | | finishText | 提交按钮文本 | String | '提交' | | resetText | 重置按钮文本 | String | '重置' | | cancelText | 取消类按钮文本 | LString | '返回' | | command | 表单内置指令 | Object | -- |

fields

| 属性 | 说明 | 类型 | 默认值 | | ---------------- | -------------------- | --------------------- | --------------- | | name | 字段id | String | | | label | label 标签文本 | String | | | type | 类型 | String | | | options | 选项(select、checkbox、radio) | List | | | props | FormItem属性 | Object:function() | | | attr | ReactNode属性 | Object | | | span | 占据栅格 | Number | 1 | | dependencies | 条件联动 | string[] : function(val, _form) | | | visible | 隐藏字段 | Boolean | false | | component | 控件内容 | ReactElement:ReactElement[]| -- |

type

    input:文本;input-text:多行文本;input-number:数字输入框;select:选择框;
	date:日期框;date-range:日期范围框;date-time:时间框;switch:switch开关;
	radio:单选框;radio-button:单选框-按钮;checkbox:多选框;upload:文件上传;
	tree-select:树选择;static:ReactElement;multiple:多种组合;

command:

//表单提交
onFinish: (func) =>{},
//表单重置
onReset: (func) => {},

dependencies:

//写法1,关联字段重置
dependencies: ['field1', 'field2'],
//写法2,表单用法延伸
dependencies: (val, _form) => {
  _form.setFieldsValue({order_id : val})
},

props引用已有正则校验

(_props) => _props('mobile', {
  rules:[
    { required: true, message: '请输入手机号'}
  ]
})
mobile:手机号校验;identity:身份证校验;email:邮箱校验;
password:密码校验-6-12位数字、大/小写字母、特殊字符至少三种组成;
number:数字校验;money:金额校验;

attr组件案例

  • upload

      //操作节点
      uploadNode: <Button >上传</Button>,
      accept: "image/*,.pdf",
      //支持多选
      multiple: true,
      //限制上传文件
      maxCount: 4,
      //列表交互图标
      showUploadList: {
      	showDownloadIcon: true
      },
      //text:附件样式; picture:图片列表; picture-card:图片卡片排列
      listType: "picture-card",
      //文件上传前操作,true:action请求; false:无action请求,进入列表; Upload.LIST_IGNORE:无action请求,不进入列表
      beforeUpload: (file) => {
      	return true;
      	//不进入列表
      	// return Upload.LIST_IGNORE
      },
      onChange: info => {
      	console.log(info.fileList);
      },
      //自定义请求
      action: "/action?",
      customRequest: (options) => {
      	console.log(options)
      },
      //点击文件链接或预览图标时的回调
      onPreview: file => {
      }
      //进度条样式
      progress: {
      	strokeColor: {
      	  '0%': '#108ee9',
      	  '100%': '#87d068',
      	},
      	strokeWidth: 3,
      	format: percent => `${parseFloat(percent.toFixed(2))}%`,
      },	

描述列表 EDescriptionGroup

import { EDescriptionGroup } from "estone-ui";

| 属性 | 说明 | 类型 | 默认值 | | ---------------- | -------------------- | --------------------- | --------------- | | data | 数据内容 | Object:Array | | | labelAlign | label 对齐方式 | String['left', 'right'] | 'left' | | labelStyle | label 样式 | CssStyle | | | contentStyle | content 样式 | CssStyle | | | column | 每行展示列 | Object:Number | {xs:1,sm:1,md:2,xxl:3} | | indicator | 指示器(内容过渡) | String | '>>>' |

data

__: 数据值1; _$_: 数据值2; __#proto__: (function - 内容处理;object - 枚举转换)

//数据-基本
const data = {
  "编号" : 'XXX',
  "类型" : {
    '__': '0',
    '_$_': '1',
    '__#proto__': {
      '0': '类型1',
      '1': '类型2'
    }
  },
  '审批金额': {
      '__': 1000,
      '_$_': 5000,
      '__#proto__': (val) => <div >{val}</div>
  },
  '附件': {
    '__': <div style={{color: 'blue', cursor: 'pointer'}} >附件1 </div>,
    '_$_': <span style={{color: 'pink', cursor: 'pointer'}} >附件2 </span>
  },
  '文本内容': <span >自定义<span>可点击</span></span>
}

//数据-Node
const data = <Tabel />

//数据组
const info = [
  {
  value: {
      "编号" : 'XXX',
      "内容" : 'XXX',
  },
  {
      title: '表格',
      value: <Table columns={_columns} dataSource={_list} size="small" />
  },
  {
      title: '列表',
      value: <List size="small" dataSource={_list1} renderItem={item => <List.Item>{item}</List.Item>} />
  }
  ,
  {
      title: '自定义',
      value: <div style={{width: 400, height: 400, border: '1px solid grey', margin: 'auto'}} >内容</div>
  }
]

图标 Icon

import { EIcon } from "estone-ui";
<EIcon type='icon-infopersonal' />

| 属性 | 说明 | 类型 | 默认值 | | ---------------- | -------------------- | --------------------- | --------------- | | type | 图标类型 | String | |

type

antd图标:驼峰式(LeftOutlined)、短线(left-outlined)

iconfont: EIcon.createFromIconfontCN({
  scriptUrl: ['//at.alicdn.com/t/font_2921613_jksnlrm7rf.js']
})
  • 图标展示

    <EIcon.Grid bordered onClick={(val, Icon) => console.log(val, Icon)} />

| 属性 | 说明 | 类型 | 默认值 | | ---------------- | -------------------- | --------------------- | --------------- | | bordered | 结果显示边框 | Boolean | true | | copyText | 点击复制 | Boolean | true |

服务加载 loading

import { loading } from "estone-ui";
//开启加载
//lock:锁定屏幕的滚动; text: 加载文字,false-无文字; loadingIcon: 加载图标; background:背景颜色
loading.loading();
loading.loading({
	lock: true, 
	text: 'loading', 
	loadingIcon : <LoadingOutlined style={{ fontSize: 24 }} spin />, 
	background: 'rgba(0, 0, 0, 0.6)'
});
//取消加载
loading.close();

PDF预览 EFilePdf

import { EFilePdf } from "estone-ui";

| 属性 | 说明 | 类型 | 默认值 | | ---------------- | -------------------- | --------------------- | --------------- | | src | 文件路径 | String | | | scale | 缩放比例 | Number | | | async | 同步加载 | Boolean | false | | loadingCompoment | 加载中组件 | ReactElement | | | errorCompoment | 加载失败组件 | ReactElement | |