• 给弹窗添加水印


    继上一篇 https://www.cnblogs.com/wangwenhui/p/16130394.html

    // src\components\public\Hoc\HocWatermark.js

    import React, {useEffect, useState} from "react";
    import Watermark from "@/components/public/Watermark/Watermark";
    import {getCurrentUser} from "@/utils/headers";
    
    export default function HocWatermark(ChildComponent) {
        return function WatermarkWrap(props) {
            const [userInfo, setUserInfo] = useState({});
            useEffect(() => {
                const currentUserInfo = getCurrentUser() || {};
                setUserInfo(currentUserInfo);
            }, []);
    
            if (props.children) {
                return (
                    <ChildComponent {...props}>
                        {props.children}
                        {userInfo.name && <Watermark text={`${userInfo.name} ${userInfo.englishName} - ${userInfo.originId}`}/>}
                    </ChildComponent>
                );
            } else {
                return (
                    <React.Fragment>
                        <ChildComponent {...props}/>
                        {userInfo.name && <Watermark text={`${userInfo.name} ${userInfo.englishName} - ${userInfo.originId}`}/>}
                    </React.Fragment>
                );
            }
        };
    }
    

    // src\components\AntdX\WatermarkComponent.js

    import {Drawer, Modal, Collapse} from "antd";
    import HocWatermark from "@/components/public/Hoc/HocWatermark";
    const Panel = Collapse.Panel;
    
    export const WatermarkDrawer = HocWatermark(Drawer);
    export const WatermarkModal = HocWatermark(Modal);
    export const WatermarkPanel = HocWatermark(Panel);
    

    // index.tsx

    import React from "react";
    import Watermark from "@/components/public/Watermark/Watermark";
    import {WatermarkModal} from "@/components/AntdX/WatermarkComponent";
    
    interface IUserInfo {
      name: string;
      englishName: string;
      originId: number;
    }
    
    export interface IProps {
      userInfo: IUserInfo;
    }
    
    const Index: React.FC<IProps> = (props) => {
      const { userInfo } = props;
      return (
        <div>
          <div>我是内容</div>
          <WatermarkModal
             {...defaultModelProps}
              {...modelFetchParms}
              width={650}
              onCancel={()=>this.modelCancel(modelParms.typeModel)}
              onOk={() => this.handelPlanModelOK()}
            >
              {modelParms && modelParms.typeModel === 'detail' ?
                <PlanDetail findCurPlan= {findCurPlan} /> :
                <AddPlanWorkbench key={position_key} onRef={ref => { this.advancedSearchRef = ref }} getPLanData={getPLanData}/>}
            </WatermarkModal>
          {userInfo.name && (
            <Watermark
              text={`${userInfo.name} ${userInfo.englishName} - ${userInfo.originId}`}
            />
          )}
        </div>
      );
    };
    
    export default Index;
    
  • 相关阅读:
    测试
    unittest发送测试报告邮件
    unittest生成测试报告
    Navicat连接Oracle详细教程
    Windows 2012 安装 Oracle 11g 报错:[INS-13001]环境不满足最低要求。
    Windows server 2012安装oracle11g(32/64位)步骤
    ElasticSearch和solr的差别
    HashMap和Hashtable的区别
    final关键字所修饰的类有什么特点
    springboot测试的时候插入数据: error performing isolated work; SQL [n/a]; nested exception is org.hibernate...
  • 原文地址:https://www.cnblogs.com/wangwenhui/p/16130501.html
Copyright © 2020-2023  润新知