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

zl-react-component

v3.3.4

Published

react component library for zeling

Downloads

125

Readme

zl的组件封装

参考自:https://www.jianshu.com/p/db6113c94dbc

说明:

  1. 使用npm或cnpm进行包的安装更新

  2. 组件编译 npm run build

  3. 项目关联到本地 npm link

  4. 其他项目引用本项目 npm link zl-react-component

    1、本地更新版本号
        比如我想来个1.0.1版本,这个是补丁的意思,补丁最合适;
        :npm version patch
        比如我想来个1.1.0版本,这个是小修小改;
        :npm version minor
        比如我想来个2.0.0版本,这个是大改咯;
        :npm version major
    2、修改远端的版本,提交到远端npm中:
        npm publish 

配置文件简要说明:

.babelrc:

编译的配置文件,用于react,es6编译成es5。具体请查看注释

webpack.config:

webpack的配置文件,这里使用的是webpack3。具体请查看注释

项目中使用的插件说明:

文件拷贝:copy-webpack-plugin

dist文件清理:clean-webpack-plugin

request的页面跳转:history

React-Router v4.0上已经不推荐使用hashRouter,主推browserRouter,但是因为使用browserRouter需要服务端配合可能造成不便,有时还是需要用到hashRouter。下面是v4.0的React-Router中hashRouter以js方式跳转的实现步骤。

开发注意事项:

在基于antd开发时,没有完善对组件的样式加载,需要进行手动一个一个的引入

如何使用

组件都没有默认导出,都要用花括号的哦

import { zlrequest as request } from 'zl-react-component';

zlrequest请求组件

zlrequest 请求组件依赖包如下

"antd": "^3.11.2",      
"axios": "^0.18.0",
"history": "^4.7.2",
"react": "^16.6.3",
"react-amap": "^1.2.7",
"react-dom": "^16.6.3",
"react-json-view": "^1.19.1"

请保证项目安装了以下依赖

API:

参数 | 说明 | 类型 | 默认值 ---|---|---|--- OpenParamsNotification | 开启参数提示,这个参数是保存子啊sessionStory里面的 | String | null

地图组件的使用

我们提供了三个地图组件的使用。

对于地图组件,需要使用搞得地图提供的key,你可以定义window的全局变量。也可以传递进来

1. MapPointInfo 地图上选择坐标点

    <MapPointInfo mapInfoFn={this.mapInfoFn} mapstyle={mapstyle} />

API:

参数 | 说明 | 类型 | 默认值 ---|---|---|--- mapInfoFn | 地图的点击回调 | function | null mapstyle | 地图的样式 | object | null center | 地图的中心点 | object | 天安门 markerPoint | 默认显示的marker点 | object | null version | 版本号 | string | 1.44.1 zoom | 放大级别 | number | 15 mapConfig | 地图的配置项,可以直接传递一个这个来覆盖前面的配置 | object | {}

2. MapPoint 地图上显示一个marker点

    <MapPoint point={point} />

API:

参数 | 说明 | 类型 | 默认值 ---|---|---|--- gis | 后台返回的gis对象{lat: '', lng: '', address: '', addressinfo: '', } | object | null mapstyle | 地图的样式 | object | null center | 地图的中心点 | object | 天安门 markerPoint | 默认显示的marker点 | object | null version | 版本号 | string | 1.44.1 zoom | 放大级别 | number | 15 mapConfig | 地图的配置项,可以直接传递一个这个来覆盖前面的配置 | object | {}

3. MapPolygon 地图是哪个显示一个多边形

    <MapPolygon areaList={areaList} height={350} {...amapConfig} />

API:

参数 | 说明 | 类型 | 默认值 ---|---|---|--- amapConfig | 坐标点对象{point: '', center: '', version: '', amapkey: '', } | object | null height | 高度 | number | 不可为空 areaList | 接收带有区域坐标的数据 | array | []

4. zllayouts 统一的布局

    <Col {...colOption2}>
        <GisInfo gis={project} />
    </Col>

API:

名称 | 说明 ---|--- rowGutterOption | 栅格配置(100%) colOption2 | 栅格配置(二等份) colOption3 | 栅格配置(三等份) searchLayout | 搜索布局 timeLayout | 时间布局 formItemLayout | 表单布局(labelCol和WrapperCol)

5. zlnetwork 下载文件的方法

 /**
  * 获取文件的上下文
  * @param suffix 后缀名
  * @return {string}
  */
 export const fileMIME = (suffix) => {
     switch (suffix) {
         case 'txt':
             return 'text/plain';
         case 'doc':
             return 'application/msword';
         default:
             return '';
     }
 };
/**
* 文件下载
* @param { function } downloadFile 下载文件的方法
* @param { string } fileid 文件的id
* @param { string } name 文件的名称
* @param { string } suffix 文件的后缀名
* @param { string } alias 别名
*/
export const downloadFileUtil = (downloadFile,fileid,name,suffix,alias) => {
   // 获取文件的名字
   const getName = alias ? name + "_" + alias : name;
   // 获得mime配置
   const mime = fileMIME(suffix);
   downloadFile({ fileid }).then(res => {
       // 这里res.data是返回的blob对象
       // application/vnd.openxmlformats-officedocument.spreadsheetml.sheet这里表示xlsx类型
       const blob = new Blob([res], { type: mime + ';charset=utf-8' });
       const downloadElement = document.createElement('a');
       // 创建下载的链接
       const href = window.URL.createObjectURL(blob);
       downloadElement.href = href;
       // 下载后文件名
       downloadElement.download = getName;
       document.body.appendChild(downloadElement);
       // 点击下载
       downloadElement.click();
       // 下载完成移除元素
       document.body.removeChild(downloadElement);
       // 释放掉blob对象
       window.URL.revokeObjectURL(href);
   });
};

6.zlobject封装好的一些方法(区域颜色样式、假数据数组等)

7.zlrequest 发送请求

  • @param params 参数数组

  • @param apiUrl 请求的地址

  • @returns {*}

  • @constructor

8. ImageUpload 图片上传组件

<ImageUpload
    saveImgList={this.saveImgList}
    boxType="picture-card"
/>

API:

参数 | 说明 | 类型 | 默认值 ---|---|---|--- saveImgList | 上传文件后的回调 | func | null boxType | 上传文件的样式 | string | 'picture-card' maxNum | 文件上传的最大数量 | number | 6

9. BaseForm 表单构建组件

<BaseForm itemList={itemList} form={form} col={24} />

API:

参数 | 说明 | 类型 | 默认值 ---|---|---|--- itemList | 表单配置数据 | Array | null itemObj | 表单配置数据 | Object | null form | 表单对象,基于ant提供的form组件 | Obj | null col | 布局 | number | 12

itemList是一个有着固定规范的表单对象

栗子:

 const itemList = [{
    id: 'name',
    name: '名字',
    type: 'input',
    must: true
}, {
    id: 'uniscid',
    name: '统一社会信用代码',
    type: 'text',
    must: true
}, {
    id: 'sex',
    value: '', // 默认值
    name: '性别',
    type: 'select',
    must: true,
    opts: [
        {
            text: '男',
            id: '01'
        },
        {
            text: '女',
            id: '02'
        }
    ]
}];

对象栗子:

const itemObj = {
    id: 'rangeTime',
    name: '选择日期',
    type: 'rangeTime',
    value: '',
    must: true,
}

关于type的说明:

参数 | 说明 | 其他参数 ---|---|--- input | 输入框 | select | 单选框 | selectMu | 多选框 | text | 文本输入-默认三行 | number | 数字-使用数字的时候 | 最小值-min,最大值-max time | 日期选择 | rangeTime | 开始时间-结束时间 | cascader | 级联选择 | 直接查看ant的级联选择 radio | 单选点击 | 竖布局-vertical true或者false rate | 评分 |

10. BaseFormItem(推荐使用)单个Form组件渲染

在使用BaseForm进行开发的时候,出现了这么一个需求,我们要点击想要的输入框,然后动态的编辑他的文本,所以弄了一个单个的FormItem组件

注意:在BaseFormItem里面,使用了Col组件,所以,在开发中,我们要求这么使用

<Row>
    {formData.map(item => (
        <div key={item.id}>
            <BaseFormItem itemObj={item} form={form} />
        </div>
    ))}
</Row>

对于BaseFormItem,它只接收对象,不能接收数组,

数据格式:

const formObj = {
    id: 'rangeTime',
    name: '选择日期',
    type: 'rangeTime',
    value: '',
    must: true,
}

关于type的说明:

参数 | 说明 | 其他参数 ---|---|--- input | 输入框 | select | 单选框 | selectMu | 多选框 | text | 文本输入-默认三行 | number | 数字-使用数字的时候 | 最小值-min,最大值-max time | 日期选择 | rangeTime | 开始时间-结束时间 | cascader | 级联选择 | 直接查看ant的级联选择 radio | 单选点击 | 竖布局-vertical true或者false rate | 评分 | checkbox | 复选框 | 打勾勾的