Skip to content

前端工具库,lerna 分包管理, 包含sharewinfo-utils 、 sharewinfo-ui 两个 package

License

Notifications You must be signed in to change notification settings

Just-Doing/yltui

Repository files navigation

yltui 是一个前端工具,包含一些和业务无关的公共方法

项目结构

project

sharewinfo-ui

安装

npm install sharewinfo-ui -S 或者 <script type="text/javascript" src='node_modules/sharewinfo-ui/dist/index.js' />

全局对象 sharewinfo

jsonForm 使用

import { jsonForm } from 'sharewinfo-ui';
const formJson = [
  {
    // 第一列
    type: 'col',
    span: 12, // 宽度 50%
    class: 'class1',
    style: 'style111',
    child: [
      {
        type: 'textbox',
        name: 'userName',
        label: {
          text: '用户名',
          span: 12,
        },
        waper: { span: 12 },
      },
      {
        type: 'checkboxGroup',
        name: '喜欢的水果',
        label: {
          text: ' ',
          span: 12,
        },
        waper: { span: 12 },
        items: [
          { value: 'pinguo', text: '苹果' },
          { value: 'taozi', text: '桃子' },
          { value: 'xiangjiao', text: '香蕉' },
        ],
      },
    ],
  },
  {
    // 第二列
    type: 'col',
    span: 12, // 宽度 50%
  },
];
const fieldChange = fieldValue => {}; // 字段值发生改变时 回调
const formInstance = jsonForm.render(document.getElementById('domid'), formJson, fieldChange);
// form 表单数据获取
var formData = formInstance.getData();

排版

以上 json 表示 一个 2 列 左右分布的表单,左右各占 50% 的宽度, 其中 col - span 12 / 24 * 100 计算的宽度占比, 按照数组的项数依次版本,每行固定显示 24 个 span,超过 24 换行处理,如果排版上有要求,可以试用空 col 指定宽度来灵活调整

样式

所有控件的样式为原始样式,用户可根据自己的样式表来美化。

Panel 收缩/展开

const formJson = [
  {
    type: 'col',
    span: 12,
    class: 'class1',
    style: 'style111',
    child: [
      {
        type: 'panels',
        text: 'Paenl Name',
        class: 'Class',
        id: 'panels1',
        child: [
          {
            type: 'textbox',
            name: 'username1',
            label: {
              text: '用户名',
              span: 8,
            },
            waper: { span: 16 },
          },
          {
            type: 'checkboxGroup',
            name: 'like',
            label: {
              text: '你喜欢的水果',
              span: 8,
            },
            waper: { span: 16 },
            items: [
              { value: 'pinguo', text: '苹果' },
              { value: 'taozi', text: '桃子' },
              { value: 'xiangjiao', text: '香蕉' },
            ],
          },
        ],
      },
      {
        type: 'panels',
        text: 'Paenl Name111111',
        class: 'Class11111',
        id: 'panels1222',
        child: [
          {
            type: 'textbox',
            name: 'e-mail',
            label: {
              text: '邮箱',
              span: 8,
            },
            waper: { span: 16 },
          },
          {
            type: 'select',
            name: 'gender',
            label: {
              text: '性别',
              span: 8,
            },
            waper: { span: 16 },
            value: 'FM',
            items: [
              { value: 'M', text: '男' },
              { value: 'FM', text: '女' },
            ],
          },
          {
            type: 'textbox',
            name: 'phone',
            label: {
              text: '电话',
              span: 8,
            },
            waper: { span: 16 },
          },
          {
            type: 'textbox',
            name: 'test',
            label: {
              text: '测试1',
              span: 8,
            },
            waper: { span: 16 },
          },
          {
            type: 'textbox',
            name: 'test2',
            label: {
              text: '测试2',
              span: 8,
            },
            waper: { span: 16 },
          },
          {
            type: 'textbox',
            name: 'test3',
            label: {
              text: '测试3',
              span: 8,
            },
            waper: { span: 16 },
          },
        ],
      },
    ],
  },
];

gif1

panel 可还原到默认值

color 组件

我们内置颜色选择器, 可指定 type 为 color 单个颜色选择,或者 colorGroup 颜色组 选择

jpg

json 属性 说明

1. 通用属性

  1. class:样式类名称
  2. style:样式表

2. type = 'col' 栅格

  1. span:宽度定义,总数为 24 ,按照配置的数量计算百分比,

  2. child:栅格内部的控件列表

  3. 通用属性

3. col -> child

  1. type: 控件类型
  2. name:控件名称 用于表单取值的 key
  3. id:控件 ID
  4. value:初始值
  5. label:标签 {text, span} text: 标签值, span:标签宽度, 总数 24
  6. waper:{span, class, style} span:控件宽度 总数 24, 需要和 label - span 配合使用
  7. items:对于集合控件类型的集合配置{value, text} value: 值, text:显示值
  8. 通用属性

4. type 取值

col | textBox | textarea | password(待开发) | text | select | image(待开发) | hidden(待开发) | file(待开发) | color | colorGroup | checkbox | checkboxGroup | radio | radioGroup | number

sharewinfo-utils

安装

npm install sharewinfo-utils -S 或者 <script type="text/javascript" src='node_modules/sharewinfo-utils/dist/index.js' />

全局对象 sharewinfo

data

  1. 延时 异步操作
      delayToDo: (fun: Function, ms: number) => number;
  2. 递归数据 input: [{id:1, pid:0, name:'test1'},{id:2, pid:1, name:'test1'}]
    result: [{id:1, pid:0, name:'test1', children:[{id:2, pid:1, name:'test1'}]}]
    recursionData: (list: Array, keyName: string, parentKeyName: string, rootValue: string) => Array;
  3. 数组去重
    distincetData: (arrat: Array, key: string) => Array;
  4. 度合并对象
    distincetData: (arrat: Array, key: string) => Array;
  5. 判断对象全等
    shallowEqual: (objA: object, objB: object) => boolean;

time

  1. 格式化时间 YYYY-MM-dd HH:mm:ss
    ormate: (inputDate: any) => string;

file

  1. 上传文件
    UploadFile: (url: string, param: object, cab: Function, errcbk: Function) => void;

url

  1. 获取 url 参数
    getPageQuery: () => object;
  2. 校验 url
    isUrl: (url: string) => boolean;

security

  1. RSA 加密 对应服务端可解密
    rsaEncrypt: (input: string, publicKey: string) => string;
  2. RSA 解密
    saDecode: (input: string, privateKey: string) => string;

About

前端工具库,lerna 分包管理, 包含sharewinfo-utils 、 sharewinfo-ui 两个 package

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published