---
nav:
  title: 项目开发规范
  order: 4
group:
    title: 项目开发规范
title: 5.业务方法
---

## 按钮功能权限
> 主要针对页面内筛选栏按钮及表格操作栏按钮指定功能（接口对应字段funcCode)的权限，（有权限则显示按钮，无则不显示）

文件源：`src/utils/publicBusiness.js`
```js
 // 用法
  import { checkFuncPermissionByCodes } from '@/utils/utils';
  const { common: {funcPermissionCodes }} = props; // 值来源于 common 的 model内部state值
 // 筛选栏按钮组
  const controlBtn = [
    {
      code: 'codeBtnCreate', // 新增 直接配置code可不用配置 name 与 icon
      // disabled: !checkFuncPermissionByCodes(funcPermissionCodes, 'codeBtnCreate'), // 是否禁用，返回是则置反
      isHide: checkFuncPermissionByCodes(funcPermissionCodes, 'codeBtnCreate'), // 是否有权限，返回是则显示，返回否则隐藏
      fn: () => {},
    },
  ];
  <a onClick={() =>{}} isHide={checkFuncPermissionByCodes(funcPermissionCodes, 'codeBtnEdit')}>编辑</a>
```

| 参数名      | 类型 |   说明 | 必填项 |
|----------|------|---------|----|
| funcPermissionCodes |Array |  common 的 model内部state值,由接口请求返回 |是|
| code | String|  参考通用配置数据  `src/data/func.code.js` 的配置值 |是|

## 更新页面搜索条件

文件源：`src/utils/publicBusiness.js`
```js
 // 用法
import { refreshFetching } from '@/utils/utils';

// 用法1、累加原来的条件：
refreshFetching({newParam: 'xxx'}) 
// 如原路由 /retail/supplier?page=1&size=10 ，请求后路由为： /retail/supplier?page=1&size=10&newParam=xxx

// 用法2、清除原来已有条件并只使用当前传的条件
refreshFetching({
 param1: 'xxx',
 param2: 'xxx2'
}, true)
// 如原路由 /retail/supplier?page=1&size=10 ，请求后路由为： /retail/supplier?param1=xxx&param2=xxx

// 用法3、搜索条件不变
refreshFetching() // 或  refreshFetching({})
// 如原路由 /retail/supplier?page=1&size=10 ，请求后路由为： /retail/supplier?page=1&size=10

// 用法4、清除当前所有搜索条件
refreshFetching({}, true)
// 如原路由 /retail/supplier?page=1&size=10 ，请求后路由为： /retail/supplier
```
| 参数说明      | 数据类型 |   说明 | 必填项 |
|----------|------|---------|--- |
| newQuery | Object | 传递新的search参数 |否 |
| clear | Boolean | 是否清空原来的路由search条件 |否 |

## 数据字典

文件源：`src/utils/publicRequest.js`

```
import {WrapperContent  } from 'fan-standard-comp'
import { requestDictCode, requestDictCodes } from '@/utils/utils';
const demoContent = props => {
 const {dispatch} = props;
  useEffect(() => {
   // 获取数据字典（多个值）
    requestDictCodes(dispatch, ['sys_dict_data_status'， 'sys_role_status', 'yes_no']);
    // 获取数据字典（单个值用法）
    requestDictCode(dispatch, 'sys_dict_data_status'); 
  }, []);
 return <WrapperContent loading={contentLoading}>
    ...
  </WrapperContent>
} 

```
