index.jsx 905 Bytes
Newer Older
wuhao's avatar
wuhao committed
1 2 3 4 5 6
import React, { useState } from 'react';
import { Popconfirm, Button } from 'antd';
import { useModel } from '@umijs/max';

function PremButton(props) {
  const { initialState, setInitialState } = useModel('@@initialState');
TZW's avatar
TZW committed
7
  let buttonPerm = initialState?.newMenu?.buttonPerm;
wuhao's avatar
wuhao committed
8
  const { children, btn, pop, access } = props;
TZW's avatar
TZW committed
9 10
  let res =
    buttonPerm && buttonPerm.length > 0
TZW's avatar
TZW committed
11
      ? buttonPerm?.filter((it) => it.typeName == access && it.show == 1)
TZW's avatar
TZW committed
12 13
      : [];
  let accesses = access ? res.map((it) => it.typeName).includes(access) : true;
wuhao's avatar
wuhao committed
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
  //配置按钮权限接口

  return pop ? (
    <Popconfirm {...pop} disabled={pop?.disabled || !accesses}>
      <Button {...btn} disabled={btn?.disabled || !accesses}>
        {children}
      </Button>
    </Popconfirm>
  ) : (
    <Button {...btn} disabled={btn?.disabled || !accesses}>
      {children}
    </Button>
  );
}

export default PremButton;