Explorar o código

✨鉴权按钮属性完善/首页待审核添加 移库 数量

shaogen1995 %!s(int64=2) %!d(string=hai) anos
pai
achega
b8ed11c001

+ 47 - 3
src/components/AuthButton/index.tsx

@@ -4,20 +4,64 @@ import { useSelector } from "react-redux";
 import { RootState } from "@/store";
 
 type Props = {
-  [x: string]: any;
   children?: ReactNode;
   id: number;
+  danger?: boolean; //设置危险按钮
+  block?: boolean; //将按钮宽度调整为其父宽度的选项
+  disabled?: boolean; //设置按钮失效状态
+  ghost?: boolean; //ghost
+  href?: string; //点击跳转的地址,指定此属性 button 的行为和 a 链接一致
+  htmlType?: "button" | "submit" | "reset" | undefined; //设置 button 原生的 type 值,可选值请参考 HTML 标准
+  icon?: ReactNode; //设置按钮的图标组件
+  loading?: boolean; //设置按钮载入状态
+  shape?: "default" | "circle" | "round"; //设置按钮形状
+  size?: "large" | "middle" | "small"; //设置按钮大小
+  target?: string; //相当于 a 链接的 target 属性,href 存在时生效
+  type?: "primary" | "ghost" | "dashed" | "link" | "text" | "default"; //设置按钮类型
+  onClick?: () => void; //点击按钮时的回调
 };
 
 // console.log('有权限的按钮集合',buttonArr);
 
-function AuthButton({ children, id, ...rest }: Props) {
+function AuthButton({
+  children,
+  id,
+  danger = false,
+  block = false,
+  disabled = false,
+  ghost = false,
+  href,
+  htmlType = "button",
+  icon,
+  loading = false,
+  shape = "default",
+  size = "middle",
+  target,
+  type = "default",
+  onClick,
+}: Props) {
   const buttonArr = useSelector(
     (state: RootState) => state.loginStore.authButtonArr
   );
 
   return buttonArr.some((v: any) => v.id === id) || id === -1 ? (
-    <Button {...rest}>{children}</Button>
+    <Button
+      danger={danger}
+      block={block}
+      disabled={disabled}
+      ghost={ghost}
+      href={href}
+      htmlType={htmlType}
+      icon={icon}
+      loading={loading}
+      shape={shape}
+      size={size}
+      target={target}
+      type={type}
+      onClick={onClick}
+    >
+      {children}
+    </Button>
   ) : null;
 }
 

+ 3 - 0
src/pages/Home/index.tsx

@@ -35,6 +35,7 @@ export default function Home() {
       { id: 3, done: false, path: "/object/4", num: 0, name: "出库管理" },
       { id: 4, done: false, path: "/object/5", num: 0, name: "藏品修改" },
       { id: 5, done: false, path: "/object/6", num: 0, name: "藏品注销" },
+      { id: 6, done: false, path: "/stores/3", num: 0, name: "藏品移库" },
     ];
   }, []);
 
@@ -51,6 +52,7 @@ export default function Home() {
       if (v.id === 400) tabListTemp[3].done = tempDone[2].done = true;
       if (v.id === 500) tempDone[3].done = true;
       if (v.id === 600) tabListTemp[4].done = tempDone[4].done = true;
+      if (v.id === 800) tempDone[5].done = true;
     });
 
     window.setTimeout(() => {
@@ -193,6 +195,7 @@ export default function Home() {
       else if (v.groupKey === "out") data[2].num = v.count;
       else if (v.groupKey === "edit") data[3].num = v.count;
       else if (v.groupKey === "cancel") data[4].num = v.count;
+      else if (v.groupKey === "move") data[5].num = v.count;
     });
     setDoneList(data);
   }, [tempDone]);

+ 6 - 2
src/pages/ObjectSon/Object1/index.tsx

@@ -202,9 +202,13 @@ export default function Object1() {
             >
               查看
             </Button>
-
             {item.status === 0 || item.status === 2 ? (
-              <AuthButton id={102} type="text" danger onClick={() => addObject(item.id)}>
+              <AuthButton
+                id={102}
+                type="text"
+                danger
+                onClick={() => addObject(item.id)}
+              >
                 编辑
               </AuthButton>
             ) : null}