公用方法 utils
# 基础工具类
## 将数组转换成字符串 ==transArrToString (arr)==
> ### `return` String
```js
let arr = [1,2,3]
this.BaseUtil.transArrToString(arr)
// return '1,2,3'
```
## 将字符串转换成数组 ==transStringToArr (string)=
> ### `return` Array
```js
let arr = 1,2,3
this.BaseUtil.transStringToArr(arr)
// return [1,2,3]
```
## 获取数组的最后一位 ==getArrLast (arr)==
> ### `return`object || string
```js
let arr = [1,2,3]
this.BaseUtil.getArrLast(arr)
// return 3
```
## 判断对象中的字段是否为空 ==isObjectEmpty (obj, fieldArr)==
> ### `return` Boolean
> ### `params` obj 需要校验的对象
> ### `params` fieldArr 对象中需要校验的字段数组
```js
let obj = {
a: '',
b: '123'
}
this.BaseUtil.isObjectEmpty(obj, ['a','b'])
// return false
```
# 身份证工具类
## 根据身份证号获取性别 ==getSexByIdcard(idcard)==
> ### `return` String 字典表中性别的value
```js
let idcard = '320681199203302222'
this.BaseUtil.getSexByIdcard(idcard)
// return '1'
```
## 根据身份证号获取出生日期 ==getBirthByIdcard(idcard)==
> ### `return` String 字典表中性别的value
```js
let idcard = '320681199203302222'
this.BaseUtil.getBirthByIdcard(idcard)
// return '1992-03-30'
```
## 根据身份证号获取出生日期 ==getBirthByIdcard(idcard)==
> ### `return` String
```js
let idcard = '320681199203302222'
this.BaseUtil.getBirthByIdcard(idcard)
// return '1992-03-30'
```
## 根据身份证号获取年龄 ==getAgeByIdcard(idcard)==
> ### `return` Number
```js
let idcard = '320681199203302222'
this.BaseUtil.getAgeByIdcard(idcard)
// return 30
```
## 加密身份证 ==encryptionIdCard(idcard)==
> ### `return` Number
```js
let idcard = '320681199203302222'
this.BaseUtil.encryptionIdCard(idcard)
// return 320681****2222
```
# 区划树
## 根据当前code获取上级到本级区划树 ==getAllAreaByCode(areaCode, field, type)==
> ### `return` Array
> ### `params` areaCode 当前区划的areacode
> ### `params` field 需要获取的字段
> ### `params` type 返回的数据类型
```js
let areaCode = '110101000000'
this.BaseUtil.getAllAreaByCode(areaCode, 'name')
// return ['北京市', '东城区']
this.BaseUtil.getAllAreaByCode(areaCode, 'name', 'str')
// return "北京市/东城区"
```
## 根据当前id获取上级到本级区划树 ==getAllAreaById(areaId, field, type)==
> ### `return` Array
> ### `params` areaId 当前区划的id
> ### `params` field 需要获取的字段
> ### `params` type 返回的数据类型
```js
let areaId = 'c1e8c759ef4c49fd90a10691cb42f544'
this.BaseUtil.getAllAreaByCode(areaId, 'name')
// return ['北京市', '东城区']
this.BaseUtil.getAllAreaByCode(areaId, 'name', 'str')
// return "北京市/东城区"
```
# 普通tree
## 加密身份证 ==encryptionIdCard(idcard)==
> ### `return` Number
```js
let idcard = '32068119920330222'
this.BaseUtil.encryptionIdCard(idcard)
// return 320681****2222
```
# 字典表
## 根据最后一位的key,获取最后一位的obj格式 ==getLastInTree(arr, field, key, childName)==
>### `return` Object
>### `params` arr 当前区划树
>### `params` field 需要匹配的字段名称
>### `params` key 需要匹配的字段值
>### `params` childName children的名称,默认为‘children’
```js
let arr = [
{
key:1,
value:'a',
children:[
{
key:2,
value: 'b'
}
]
}
]
this.BaseUtil.getLastInTree(arr, 'key', 2)
// return { key: 2, value: 'b' }
```
## 根据最后一位的key,获取最后一位的obj格式 ==getFirstObjInTreeByKey(arr, field, key)==
>### `return` Object
>### `params` arr 当前区划树
>### `params` field 需要匹配的字段名称
>### `params` key 需要匹配的字段值
```js
let arr = [
{
key:1,
value:'a',
children:[
{
key:2,
value: 'b'
},
{
key:3,
value: 'c'
}
]
}
]
this.BaseUtil.getFirstObjInTreeByKey(arr, 'key', 2)
// return
{
key:1,
value:'a',
children:[
{
key:2,
value: 'b'
}
]
}
```
## 根据key获取tree数组 ==getArrInTreeByKey(arr, field, key, childName)==
>### `return` Array
>### `params` arr 当前区划树
>### `params` field 需要匹配的字段名称
>### `params` key 需要匹配的字段值
>### `params` childName children的名称,默认为‘children’
```js
let arr = [
{
key:1,
value:'a',
children:[
{
key:'23',
value: 'b'
},
{
key: '233',
value: 'c'
}
]
}
]
this.BaseUtil.getLastInTree(arr, 'key', '23')
// return [{ key: '23', value: 'b' },{ key: '233', value: 'c' }]
```
## 根据树形数据计算出深度 ==getTreeDeep(treeData)==
>### `return` Number
>### `params` arr 当前区划树
```js
let arr = [
{
key:1,
value:'a',
children:[
{
key:'23',
value: 'b'
},
{
key: '233',
value: 'c'
}
]
}
]
this.BaseUtil.getTreeDeep(arr)
// return 2
```