0.2.0 • Published 3 years ago

doga-design v0.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

🐶 简介

doga-design 是基于 Doga Design 设计体系的 UI 组件库,主要用于研发企业级产品,献给那些热爱前端开发的程序猿们。

✨ 特性

  • 📦 开箱即用的高质量 React UI 组件
  • 🛡 使用 TypeScript 开发,提供完整的类型定义文件
  • 🎨 一个懂设计的前端开发工程师倾力打造

🛡 TypeScript

使用 TypeScript 开发,提供完整的类型定义文件,建议在 TypeScript 项目中使用

推荐使用 colin-cli 研发脚手架 or react 官方脚手架创建项目:

colin-cli(推荐)

1.安装
npm install -g @colin-cli/core
2.运行命令
colin-cli init [projectName]

react(强烈推荐)

npx create-react-app doga-demo-ts --template typescript

📦 安装

运行命令:

npm install doga-design --save
yarn add doga-design

引入样式:

import 'doga-design/dist/index.css';

🔨 组件示例

Button 按钮

import { Button } from 'doga-design';

const App = () => (
  <>
    <Button>Default Button</Button>
    <Button btnType='primary' size='lg'>
      Primary Button
    </Button>
    <Button btnType='text'>Text Button</Button>
    <Button btnType='link' href='https://github.com/colin-online/doga-design'>
      Link Button
    </Button>
  </>
);
属性说明类型默认值
btnType设置按钮类型primary success info warning danger link text defaultdefault
size设置按钮大小lg sm-
href点击跳转的地址,指定此属性 button 的 btnType 需同步设置为 linkstring-
onClick点击按钮时的回调function-

Inpu 输入框

import { Input } from 'doga-design';

const App = () => (
  <>
    <Input value='东林' />
    <Input disabled />
    <Input size='lg' />
    <Input prependIcon={<SearchIcon />} appendIcon={<ClearIcon />} />
    <Input prepend='http://' append='.com' />
    <Input.TextArea />
    <Input.Number />
  </>
);

Input 文本框

属性说明类型默认值
icon设置输入框的图标组件*-
size设置按钮大小lg sm-
prepend设置前置标签string-
append设置后置标签string-
disabled是否禁用状态booleanfalse
focus设置选中状态boolean-

TextArea 文本域

属性说明类型默认值
showCount是否显示字数boolean-
maxLength内容最大长度number-
autosize自适应高度boolean-
disabled是否禁用状态booleanfalse

Number 数字框

属性说明类型默认值
disabled是否禁用状态booleanfalse

AutoComplete 自动完成

import { AutoComplete } from 'doga-design';

const handleFetch = (query: string) => {
  return fetch(`https://api.github.com/search/users?q=${query}`)
    .then((res) => res.json())
    .then(({ items }) => {
      console.log(items);
      return items.slice(0, 10).map((item: any) => ({ value: item.login, ...item }));
    });
};

const App = () => (
  <>
    <AutoComplete fetchSuggestions={handleFetch} onSelect={(e) => console.log(e)} placeholder='输入你的Github账号试试?' />
  </>
);
属性说明类型默认值
fetchSuggestions返回输入建议的方法,可以拿到当前的输入,然后返回同步的数组或者是异步的 Promisefunction-
onSelect点击选中建议项时触发的回调function-
renderOption支持自定义渲染下拉项,返回 ReactElementarray-

Slider 滑动条

import { Slider } from 'doga-design';

const App = () => (
  <>
    <Slider min={1} max={100} step={1} append='px' />
  </>
);
属性说明类型默认值
min最小值number-
max最大值number-
step步长number-
append后缀string-
disabled是否禁用状态booleanfalse

ColorPicker 选择器

import { ColorPicker } from 'doga-design';

const App = () => (
  <>
    <ColorPicker title='文字颜色' defaultColor='#ffffff' defaultColorList={[ hex: '#ffffff', rgba: 'rgba(255,255,255,1)']} />
  </>
);
属性说明类型默认值
title标题string-
defaultColor默认颜色string-
defaultColorList默认颜色列表arrary-

Switch 选择器

import { Switch } from 'doga-design';

const App = () => (
  <>
    <Switch checked={false} onChange={val => console.log(val)} />
    <Switch.Icon checked={false} icon={<i className='iconfont icon-color' />} />
    <Switch.IconMore
      checked='center'
      options={[
        { icon: <i className='iconfont icon-color' />, value: 'left' },
        { icon: <i className='iconfont icon-cloud-upload' />, value: 'center' },
        { icon: <i className='iconfont icon-upload' />, value: 'right' },
      ]}
      onChange={val => console.log(val)}
    />
  </>
);
属性说明类型默认值
checked是否选中boolean-
icon图标string-

Select 选择器

import { Select } from 'doga-design';

const App = () => (
  <>
    <Select
      checked={false}
      appendIcon={<i className='iconfont icon-switch' />}
      options={[
        { index: 0, value: '"SimSun","STSong"', label: '宋体宋体宋体宋体', icon: <i className='iconfont icon-loading' /> },
        { index: 1, value: '"SimHei","STHeiti"', label: '黑体', icon: <i className='iconfont icon-loading' /> },
        { index: 2, value: '"KaiTi","STKaiti"', label: '楷体楷体', icon: <i className='iconfont icon-loading' /> },
        { index: 3, value: '"FangSong","STFangsong"', label: '仿宋', icon: <i className='iconfont icon-loading' /> },
      ]}
    />
  </>
);
属性说明类型默认值
checked是否选中boolean-
appendIcon后置图标string-
options选项列表arrary-

Json 数据源

import { Select } from 'doga-design';

const dataSource = {
  name: 'colin',
  age: 18,
}

const App = () => (
  <>
    <Json selectedList={[{ name: 'biPv', namespace: [], type: 'string', value: '' }]} dataSource={dataSource} onChange={val => console.log(val)} />
  </>
);
属性说明类型默认值
selectedList默认选中列表array-
dataSource数据源object-

Popup 弹出层

import { Popup } from 'doga-design';

const App = () => (
  <>
    <Popup title='标题' maskClosable />
  </>
);
属性说明类型默认值
className样式名称string-
title标题string-
visible显示隐藏boolean-
maskClosable点击蒙层是否关闭boolean-

Image 图片

import { Image } from 'doga-design';

const App = () => (
  <>
    <Image
      title='标题'
      cloud={
       {
          Bucket: 'xxxxxx',
          Region: 'xxxxxx',
          SecretId: 'xxxxxx',
          SecretKey: 'xxxxxx',
          folderName: 'xxxxxx',
       }
      }
      isReplace
      isCropper
      isTint
      isRestore
      isRemove
    />
  </>
);
属性说明类型默认值
src图片string-
cloudOSS 对象存储参数object-
cloud.Bucket存储桶,必须string-
cloud.Region存储桶所在地域,必须string-
cloud.SecretId密钥 SecretIdstring-
cloud.SecretKey密钥 SecretKeystring-
cloud.folderName存储文件夹名称string-
isReplace是否可更换,必须配置 cloud 参数boolean-
isCropper是否可裁剪boolean-
isTint是否可调色boolean-
isRestore是否可还原boolean-
isRemove是否可删除boolean-

CloudUpload OSS 上传

import { CloudUpload } from 'doga-design';

const App = () => (
  <>
    <CloudUpload
      cloud= {
        {
          Bucket: 'xxxxxx',
          Region: 'xxxxxx',
          SecretId: 'xxxxxx',
          SecretKey: 'xxxxxx',
          folderName: 'xxxxxx',
        }
      },
      onProgress={e => console.log(e)}
      onError={e => console.log(e)}
      onChange={e => console.log(e)}
      accept='image/*'
      drag
    />
  </>
);
属性说明类型默认值
cloudOSS 对象存储参数object-
cloud.Bucket存储桶,必须string-
cloud.Region存储桶所在地域,必须string-
cloud.SecretId密钥 SecretIdstring-
cloud.SecretKey密钥 SecretKeystring-
cloud.folderName存储文件夹名称string-
accept可选参数, 接受上传的文件类型string-
multiple是否支持多选文件boolean-
drag是否支持拖拽上传boolean-
beforeUpload上传文件之前的钩子,参数为上传的文件,若返回 false 或者 Promise 则停止上传boolean-
onProgress文件上传时的钩子,获取进度等function-
onSuccess文件上传成功时的钩子function-
onError文件上传失败时的钩子function-
onChange文件状态改变时的钩子,上传成功或者失败时都会被调用function-
onRemove文件列表移除文件时的钩子function-

Upload 上传(手动/拖拽)

import { Upload } from 'doga-design';

const App = () => (
  <>
    <Upload
      action='https://jsonplaceholder.typicode.com/posts'
      name='file'
      onProgress={(e) => console.log('onProgress', e)}
      onSuccess={() => console.log('onSuccess')}
      onError={() => console.log('onError')}
      onChange={() => console.log('onChange')}
      onRemove={() => console.log('onRemove')}
      beforeUpload={(file) => console.log(file)}
      accept='.jpg'
      multiple
      drag
    >
      ...
    </Upload>
  </>
);
属性说明类型默认值
action必选参数, 上传的地址string-
defaultFileList上传的文件列表array-
headers设置上传的请求头部object-
name上传的文件字段名称string-
data上传时附带的额外参数object-
withCredentials支持发送 cookie 凭证信息boolean-
accept可选参数, 接受上传的文件类型string-
multiple是否支持多选文件boolean-
drag是否支持拖拽上传boolean-
beforeUpload上传文件之前的钩子,参数为上传的文件,若返回 false 或者 Promise 则停止上传boolean-
onProgress文件上传时的钩子,获取进度等function-
onSuccess文件上传成功时的钩子function-
onError文件上传失败时的钩子function-
onChange文件状态改变时的钩子,上传成功或者失败时都会被调用function-
onRemove文件列表移除文件时的钩子function-

Menu 导航菜单

import { Menu } from 'doga-design';

const App = () => (
  <>
    <Menu defaultIndex='0' defaultOpenSubMenus={[]} mode='horizontal' onSelect={function noRefCheck() {}}>
      <Menu.Item>下拉选项</Menu.Item>
      <Menu.Item>下拉选项</Menu.Item>
      <Menu.Item disabled>禁用</Menu.Item>
      <Menu.SubMenu title='下拉选项'>
        <Menu.Item>下拉选项一</Menu.Item>
        <Menu.Item>下拉选项二</Menu.Item>
      </Menu.SubMenu>
    </Menu>
  </>
);

Menu

属性说明类型默认值
defaultIndex默认 active 的菜单项的索引值string-
mode菜单类型 横向或者纵向horizontal verticalhorizontal
defaultOpenSubMenus设置子菜单的默认打开 只在纵向模式下生效array-
className下拉菜单的扩展类名string-

MenuItem

属性说明类型默认值
index-string-
disabled选项是否被禁用boolean-
className下拉菜单选项的扩展类名string-

SubMenu

属性说明类型默认值
title下拉菜单选项的文字string-
className下拉菜单子菜单的扩展类名string-

📧 召唤作者

如果您在使用的过程中碰到问题,可直接通过以下方式联系我

电子邮箱:80868215@qq.com

0.2.0

3 years ago

0.1.9

3 years ago

0.1.8

3 years ago

0.1.7

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago