1.0.25 • Published 10 months ago

xydata-tools v1.0.25

Weekly downloads
-
License
MIT
Repository
-
Last release
10 months ago

鑫义科技前端开发者工具包

内网文档:http://172.16.1.254:8090/display/UX/xydata-tools

功能

  • 数据字典页面
  • 组织机构页面
  • aaa > 系统管理
  • sso > 系统管理
  • sso > SecurityLayout
  • 上传组件
  • 下载方法

全局注册 Service

//注册请求服务,可放到global.jsx或者app.js中
import { registerService } from 'xydata-tools';

registerService('替换你的项目服务');

数据字典使用方法

import React from 'react';
import { DictionaryFront } from 'xydata-tools';

const Demo = () => {
	return <DictionaryFront />;
};

export default Demo;

组织机构模块

import React from 'react';
import { OrganizationFront } from 'xydata-tools';

const Demo = () => {
	return <OrganizationFront />;
};

export default Demo;

附件上传组件

基于ProformUploadButton二次封装组件 1. 支持单独使用或在表单内使用 2. 支持上传图片、文件,可根据listType进行多种上传风格切换 3. 内置文件大小、格式校验 4. 内置常用请求头参数 5. 内置图片预览功能,listType为"picture", "picture-card"时可用(未传入form时,只能预览当前点击图片,不可切换) 6. 兼容所有原生组件功能

import React from 'react';
import { UploadFile } from 'xydata-tools';
import { Form } from "antd";

const Demo = () => {
 	 const [form] = Form.useForm();

	// 单独使用
	// <UploadFile onChange={(info)=>{// do something}}/>;
	// 在表单内使用
	return <Form form={form}>
		<UploadFile form={form} name="file" label="图片上传" listType="picture-card" />
	</Form>
};

export default Demo;
参数名类型描述默认值
formAntd.Form.Instance表单实例
labelstring表单标签
namestring表单字段
rulesArrayObject表单校验规则
acceptstring接受上传的文件类型
actionstring上传的地址/api/${注册的服务}/file/upload/v3?type=openFile
maxstring最大上传数量,超过最大数量就会隐藏上传按钮
multipleboolean是否支持多选文件,开启后按住 ctrl 可选择多个文件false
iconReactNodeButton/Dragger 的图标
titleReactNodeButton/Dragger 的标题
descriptionReactNode当listType为dragger时的描述
listTypestring上传列表的内建样式,text,picture,picture-card,draggertext
showUploadListBoolean/Object是否展示文件列表, 可设为一个对象,用于单独设定 showPreviewIcon, showRemoveIcon, showDownloadIcon, removeIcon 和 downloadIcontrue
readonlyboolean是否只读false
disabledboolean是否禁用false
checkFileObject文件校验 1.suffixs {Arraystring} :限制的文件格式,示例:"png", "jpg",、2.maxSize {number} :限制的文件大小(kb),示例:1024,表示限制1M
onChangeObject上传文件改变时的回调,上传中、完成、失败都会调用这个函数。
formItemOptionsObject表单项配置,若上述配置没有你需要的,可以使用这个字段进行配置,若有重复,覆盖以上设置
uploadOptionsObject上传配置,若上述配置没有你需要的,可以使用这个字段进行配置,若有重复,覆盖以上设置
buttonOptionsObject上传按钮的配置,listType为dragger时,配置无效默认配置了loading

附件下载组件

内置了下载功能的按钮组件 1. 支持格式为链接或流的文件下载 2. 兼容原生组件功能

import React from 'react';
import { DownloadFile } from 'xydata-tools'; 

 // 文件名一定需要加上后缀
const Demo = () => {
 	 const [form] = Form.useForm();

	return <DownloadFile
		shape="round"
		type="link"
		queryOption={{
			url: "/api/tb/exportTbExcel", 
			params: { peopleType: 0 },
		 	customField: {
            	url: "exportFileUrl",
            	fileName: "exportFileName",
			}
		}}
	/>
};

export default Demo;
参数名类型描述默认值
textString / ReactNode按钮内容下载按钮
queryOptionObject下载设置
queryOption.urlString接口地址
queryOption.headersObject请求头
queryOption.methodStringGET/POST
queryOption.fileNameString文件名称
queryOption.paramsObject请求参数
queryOption.customFieldString自定义返回接口返回的文件名和地址(返回json适用),如返回值为res.data.exportFileName时,customField: { url:'exportFileUrl'fileName:'exportFileName'}
queryOption.onErrorFunction接口异常回调
queryOption.downloadTypeString下载类型,类型pure意为传入的是一个下载地址(oss链接),而不是一个下载接口(/api)
其他--兼容Antd.Button所有原生参数

sso 模版的系统管理模块

  • 用户管理
import React from "react";
import { Sso } from "xydata-tools";
import { connect } from 'umi'

const UserPage = (props) => {
  const { currentUser } = props
  return <Sso.User currentUser={currentUser} />
};

export default connect(({ user }) => ({
  currentUser: user.currentUser,
}))(UserPage);
  • 权限管理
import React from "react";
import { Sso } from "xydata-tools";

const PermPage = () => {
  return <Sso.Permission />
};

export default PermPage;
  • 角色管理
代码和用户管理相同
<Sso.Role currentUser={currentUser} />
  • 设置权限
代码和用户管理相同
<Sso.PermRole currentUser={currentUser} />

SSO 模版的 SecurityLayout 使用方法

1、 全局保存 ENV_DATA

// 和全局注册Service的放置位置一样,也可以直接放在config.js
import { saveEnvData } from 'xydata-tools';
saveEnvData(envData)

2、 使用方法 getUserOk 方法中替换,具体项目中/api/currentUser 成功调用后的逻辑代码。

import React from "react";
import { Sso } from "xydata-tools";

const SecurityLayoutPage = (props) => {

  const getUserOk = data => {
    console.log("/api/currentUser", data);
  }

  return <Sso.SecurityLayout getUserOk={getUserOk}>{props.children}</Sso.SecurityLayout>
};

export default SecurityLayoutPage;

aaa 模版的系统管理模块

tips: 以下页面,也需要全局注册 Service

1、 用户管理

import React from 'react';
import { Aaa } from 'xydata-tools';
import { PageHeaderWrapper } from '@ant-design/pro-layout';

const UserPage = () => {
  return (
    <PageHeaderWrapper>
      <Aaa.User />
    </PageHeaderWrapper>
  );
};
export default UserPage;

2、 角色管理

<Aaa.Role />

3、 权限管理

<Aaa.Permission />

4、 URL 管理

<Aaa.Url />

本地开发

git:https://172.16.1.252/wuxiaohu/xydata-tools

1.在项目根目录执行

yarn dev

2.在/example 下执行

yarn start

3./example 是一个由 umi 搭建的正常后台项目,在页面内可直接引用'xydata-tools'内的组件进行预览,'xydata-tools'将映射到外部的/dist文件夹中

4.新组件可在/xydata-tools/src/components 下进行开发更新

5.在/src 内进行的修改操作将会被实时编译到/dist文件夹中

6.打包发布可执行

npm run build
npm config set registry https://registry.npmjs.org 
npm config set proxy false
npm publish -d

7.发布完成后,还原 npm 源(淘宝源)

npm config set registry https://registry.npmmirror.com
1.0.22

11 months ago

1.0.25

10 months ago

1.0.24

10 months ago

1.0.23

10 months ago

1.0.19

12 months ago

1.0.18

1 year ago

1.0.17

1 year ago

1.0.16

1 year ago

1.0.21

12 months ago

1.0.20

12 months ago

1.0.15

1 year ago

1.0.14

1 year ago

1.0.13

1 year ago

1.0.12

1 year ago

1.0.11

1 year ago

1.0.10

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago