# comm-utils

> antd components library

Latest version **0.1.0** (published 2021-10-31) · MIT license · 0 weekly downloads

## Install

```sh
npm install comm-utils
pnpm add comm-utils
yarn add comm-utils
bun add comm-utils
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.0 |
| Published | 2021-10-31 |
| First published | 2021-10-31 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 11 |
| Unpacked size | 22.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | xiaoxiaoyuanwang |
| Maintainers | xiaoxiaoyuanwang |
| Keywords | React, js, 开发中常用的公共方法 |

## Links

- npm: https://www.npmjs.com/package/comm-utils
- Repository: https://github.com/xiaoxiaoyuanwang/comm-utils
- Homepage: https://github.com/xiaoxiaoyuanwang/comm-utils.git
- Issues: https://github.com/xiaoxiaoyuanwang/comm-utils/issues
- npm.io page: https://npm.io/package/comm-utils

## Dependencies (11)

- [antd](https://npm.io/package/antd.md) ^4.16.13
- [react](https://npm.io/package/react.md) ^17.0.2
- [moment](https://npm.io/package/moment.md) ^2.29.1
- [react-dom](https://npm.io/package/react-dom.md) ^17.0.2
- [typescript](https://npm.io/package/typescript.md) ^4.4.2
- [web-vitals](https://npm.io/package/web-vitals.md) ^1.0.1
- [react-scripts](https://npm.io/package/react-scripts.md) 4.0.3
- [@testing-library/react](https://npm.io/package/@testing-library/react.md) ^11.1.0
- [@testing-library/jest-dom](https://npm.io/package/@testing-library/jest-dom.md) ^5.11.4
- [@testing-library/user-event](https://npm.io/package/@testing-library/user-event.md) ^12.1.10
- [react-docgen-typescript-loader](https://npm.io/package/react-docgen-typescript-loader.md) ^3.7.2

## Alternatives

- [@mapbox/jsonlint-lines-primitives](https://npm.io/package/@mapbox/jsonlint-lines-primitives.md) — 5.3M weekly downloads
- [reftools](https://npm.io/package/reftools.md) — 3.5M weekly downloads
- [@hey-api/openapi-ts](https://npm.io/package/@hey-api/openapi-ts.md) — 3.5M weekly downloads
- [@mapbox/geojson-rewind](https://npm.io/package/@mapbox/geojson-rewind.md) — 2.4M weekly downloads
- [turbo-stream](https://npm.io/package/turbo-stream.md) — 1.7M weekly downloads

## Recent versions

- 0.1.0 (latest) — 2021-10-31

## README

# 组件使用说明

本地开发组件，建议使用npm run storybook启动


## 安装并引入组件
```
npm install comm-utils -S

import * as commUtils from "comm-utils";
```

## 数组-字符串转换方法
```
/*
将传入数据转换成数组并返回, separa：截取分隔符，默认“,”分割（可选）
*/
let resStr = commUtils.checkTypeBackArray(str, separa)
```
| 输入 | 输出 |
| --------- | --------- |
| commUtils.checkTypeBackArray('1,2,3,4')| ["1","2","3","4"]
| commUtils.checkTypeBackArray("1;2;3;4", ";")| ["1","2","3","4"]
```
/*
将传入数据转换成字符串并返回, separa：截取分隔符，默认“,”拼接（可选）
*/
let resArr = commUtils.checkTypeBackString(arr, separa?)
```
| 输入 | 输出 |
| --------- | --------- |
| commUtils.checkTypeBackString([1,2,3,4])| "1,2,3,4"
| commUtils.checkTypeBackString([1,2,3,4], ";")| "1;2;3;4"


## 时间-常用转化方法

### 禁止选择星期天
```
import { DatePicker } from "antd";

/*
禁止选择星期天--commUtils.disableDateWeek(e)
*/
<DatePicker
  disabledDate={e => commUtils.disableDateWeek(e)}
/>
```

### 禁止日期选择区间
```
/*
禁止日期选择区间
startDt: 开始日期（可选）
endDt: 结束日期（可选）
disBeforeToday: 选择今天之前的日期，默认false（可选）
dtFormat: 时间格式，默认“YYYY-MM-DD”（可选）
*/
开始日期使用--commUtils.disabledStartDt(e, startDt, endDt, disBeforeToday, dtFormat)
结束日期使用--commUtils.disabledEndDt(e, startDt, endDt, disBeforeToday, dtFormat)
<DatePicker
  disabledDate={e => commUtils.disabledStartDt(e, startDate, endDate)}
/>
<DatePicker
  disabledDate={e => commUtils.disabledEndDt(e, startDate, endDate)}
/>
```

### 传入日期，返回指定格式的日期
```
/*
  传入日期，返回指定格式的日期
  t: 不穿返回原数据， t=today返回当前日期（可选）
  dtFormat: 时间格式，默认"YYYY-MM-DD"（可选）
*/
commUtils.backFormatDate(t, dtFormat)
```

### 传入日期，返回moment格式的日期
```
/*
  传入日期，返回指定格式的日期
  dtFormat: 时间格式，默认"YYYY-MM-DD"（可选）
*/
commUtils.backFormatMoment(t, dtFormat)
```

## 对象-常用转化方法

### 判断对象多层结构数据是否存在、 不存在返回undefined
```
/*
  判断对象多层结构数据是否存在、 不存在返回undefined
  let KM_TEMPNOTICE_RECONSITU = commUtils.checkHasData(obj, ['OA_TACASEMGTAPPROVE', 'XML4CLOBINFO', 'CLOBINFO', 'KM_TEMPNOTICE_RECONSITU'])
*/
```

### 判断对象1中的值在对象2中是否相等 相等返回 true, 如果有一个值不相等返回false, objNew中新加的字段不作处理, 只对objPrep中的字段作处理
```
/*
  判断对象1中的值在对象2中是否相等 相等返回 true, 如果有一个值不相等返回false, objNew中新加的字段不作处理, 只对objPrep中的字段作处理
  objPrep原对象，objNew新对象
  arr指定数组里的key不比较，如['userID'] (可选)
  let objPrep = {
    a: 1,
    b: 2
  }
  let objNew = {
    a: 11,
    b: 2
  }
  commUtils.compareDataBlur(objPrep, objNew)
*/
```
| 输入 | 输出 |
| --------- | --------- |
| commUtils.compareDataBlur(objPrep, objNew)| false
| commUtils.compareDataBlur(objPrep, objNew, ["a"])| true

### 输入正数限制，解析不出来返回undefined
```
/*
输入正数限制，解析不出来返回undefined
建议onChange方法使用
input输入数字限制e(value)
dotNum(小数位数) (可选)
commUtils.inputOnlyNumber(e, dotNum = 2)
*/
```

### 数字改千位分割
```
/*
数字改千位分割
commUtils.changeToThousand(num)
*/
```

### 千位字符串转正常数字
```
/*
千位字符串转正常数字
commUtils.stringToThousand(num)
*/
```

### 判断指是否为空 空位false 不为空为true
```
/*
判断指是否为空 空位false 不为空为true
commUtils.notNull(value)
*/
```

### 类组件专属方法change方法
```
/* 类组件专属方法
建议onChange方法使用
输入改变 e输入框值，obj={objKey: '对象的值', key: '键值'}，
如：this.state.obj={a: '1'},则obj={objKey: 'obj', key: 'a'}
objKey 不存在直接设置到obj={ key: 'a'}，this.state.a = '1'
type类型time、inputNumber，剩下的走默认 (可选)
cd回掉 (可选)
*/
commUtils.changeFun(e, _this, obj, type, cd)
```

---
_Source: https://npm.io/package/comm-utils · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
