1.0.25 • Published 9 months ago

xydata-tools v1.0.25

Weekly downloads
-
License
MIT
Repository
-
Last release
9 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

10 months ago

1.0.25

9 months ago

1.0.24

9 months ago

1.0.23

9 months ago

1.0.19

11 months ago

1.0.18

12 months ago

1.0.17

12 months ago

1.0.16

12 months ago

1.0.21

11 months ago

1.0.20

11 months ago

1.0.15

12 months 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