UNPKG

@ovine/init

Version:

Apply ovine template more easily.

73 lines (61 loc) 1.7 kB
/** * 解析系统操作路径 * 基本能做到,项目每一个请求的的日志 * -- * 可根据自己项目内部实现 */ import { get, map } from 'lodash' import React from 'react' import { strDelimiter } from '@core/constants' import { getActionAddrMap } from '@core/routes/config' import { apis } from '~/app/common/apis' // 操作路径 解析 export const getActionAddrData = (transOptions) => { const actionAddrData = getActionAddrMap() // 自定义 API 默认都有权限 map(apis, ({ url, actionDesc }) => { if (url.indexOf('GET ') === -1) { actionAddrData[url] = { actionDesc, api: url, label: actionDesc, auth: true, } } }) // 用于 table cell 展示 if (!transOptions) { return actionAddrData } // 操作路径 select 选项 const actionsArr = [] map(actionAddrData, ({ label, actionDesc, api, auth }, key) => { const labelStr = label || actionDesc || '-' const [actionPath, actionItems = ''] = labelStr.split(strDelimiter) if (api.indexOf('GET ') === -1 && auth) { actionsArr.push({ value: key, label: `${actionPath} ${actionItems}`, }) } }) return actionsArr } // 操作路径列显示 export const ActionAddrCell = (props) => { const { actionAddr } = props.data const { label = '', api, auth = false } = get(getActionAddrData(), actionAddr) || {} const [actionPath, actionItems = ''] = label.split(strDelimiter) return ( <td> {!auth || !actionPath ? ( api || '-' ) : ( <> <span>{actionPath}</span> <span className="p-l-sm">{actionItems}</span> </> )} </td> ) }