| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- import { Button, Popover } from "antd";
- import { Typography } from "antd";
- import { SearchOutlined, CopyOutlined } from "@ant-design/icons";
- import { ProCard } from "@ant-design/pro-components";
- import { useIntl } from "react-intl";
- const { Text, Link } = Typography;
- interface IWidgetQuoteCtl {
- paraId: string;
- paliPath?: string[];
- channel?: string;
- pali?: string;
- error?: boolean;
- message?: string;
- }
- const QuoteCtl = ({ paraId, pali, error, message }: IWidgetQuoteCtl) => {
- const intl = useIntl();
- const show = pali ? pali : paraId;
- let textShow = <></>;
- if (typeof error !== "undefined") {
- textShow = <Text type="danger">{show}</Text>;
- } else {
- textShow = <Link>{show}</Link>;
- }
- const userCard = (
- <>
- <ProCard
- style={{ maxWidth: 500, minWidth: 300 }}
- actions={[
- <Button type="link" size="small" icon={<SearchOutlined />}>
- 分栏打开
- </Button>,
- <Button type="link" size="small" icon={<SearchOutlined />}>
- {intl.formatMessage(
- {
- id: "buttons.open.in.new.tab",
- },
- { item: "" }
- )}
- </Button>,
- <Button type="link" size="small" icon={<CopyOutlined />}>
- 复制引用
- </Button>,
- ]}
- >
- <div>{message ? message : ""}</div>
- </ProCard>
- </>
- );
- return (
- <>
- <Popover content={userCard} placement="bottom">
- {textShow}
- </Popover>
- </>
- );
- };
- interface IWidget {
- props: string;
- }
- const Widget = ({ props }: IWidget) => {
- const prop = JSON.parse(atob(props)) as IWidgetQuoteCtl;
- console.log(prop);
- return (
- <>
- <QuoteCtl {...prop} />
- </>
- );
- };
- export default Widget;
|