/* * Author: 黎永顺 * name: 水印内容设置 * Description: * Date: 2023/6/14 */ import React, { Component } from "react"; import { WeaFormItem, WeaHelpfulTip, WeaInputNumber, WeaInputSearch, WeaLocaleProvider, WeaRichText, WeaSearchGroup, WeaSlideModal, WeaTransfer } from "ecCom"; import { Button, Col, message, Row } from "antd"; import { commonVariables } from "./config"; import "./index.less"; const getLabel = WeaLocaleProvider.getLabel; const WeaTransferList = WeaTransfer.list; class WmContentSetModal extends Component { constructor(props) { super(props); this.state = { wmWidth: 100, wmHeight: 100, wmOriginText: "", searchV: "" }; } componentWillReceiveProps(nextProps, nextContext) { if (nextProps.visible !== this.props.visible) { this.setState({ wmWidth: nextProps.textSet.wmWidth || 100, wmHeight: nextProps.textSet.wmHeight || 100, wmOriginText: nextProps.textSet.wmOriginText || "" }); } else { this.setState({ wmWidth: 100, wmHeight: 100, wmOriginText: "", searchV: "" }); } } handleSaveWMContent = () => { const html = this.refs.TextContentRichText.getData().replace(/\n/ig, ""); if (!html) { message.warning(getLabel(111, "请输入水印内容!")); return; } const { wmWidth, wmHeight } = this.state; this.props.onClose({ wmWidth, wmHeight, wmSelectedFieldIds: this.getHtmlAttrVal(html), pureWmText: this.convertToPlain(html), wmOriginText: html, wmText: this.convertToWMText(html) }); }; convertToWMText = (html) => { _.map(commonVariables, item => { const { id, name } = item; const reg = eval("/" + name + "/g"); html = html.replace(reg, `$${id}`).replace(/ data-id=\"(.*?)\"/g, ""); }); return html.replace(/ contenteditable="false"/g, ""); }; getHtmlAttrVal = (html) => { let attrAndValueArr = html.match(/ data-id=\"(.*?)\"/g); let valueArr = []; // 放所有该属性的值 if (!_.isEmpty(attrAndValueArr)) { for (let i = 0; i < attrAndValueArr.length; i++) { valueArr.push(attrAndValueArr[i].replace(/ data-id=/g, "").replace(/\"/g, "")); } } return valueArr; }; convertToPlain = (html) => { let tempDivElement = document.createElement("div"); tempDivElement.innerHTML = html; return tempDivElement.textContent || tempDivElement.innerText || ""; }; renderItem = (item = {}) => { return {item.name}; }; selectHeader() { return (
{ this.setState({ searchV: v }); }}/>
); } render() { const { wmWidth, wmHeight, wmOriginText, searchV } = this.state; const ckConfig = { toolbar: [ { name: "paragraph", items: ["JustifyLeft", "JustifyCenter", "JustifyRight"] }, { name: "styles", items: ["Font", "FontSize"] }, { name: "colors", items: ["TextColor"] } ], removePlugins: "resize", height: 280 }; const tempOptions = _.filter(commonVariables, (item) => { const { name } = item; let flag = true; if (searchV && name) { flag = name.indexOf(searchV) > -1; } return flag; }); return ( this.props.onClose(this.props.textSet)} title={{getLabel(111, "水印内容设置")}} direction="right" top={0} width={800} height={100} measureT="%" measureX="px" measureY="%" content={ {getLabel(111, "水印格式设置")}} showGroup needTigger={false} className="waterMarkWrapper wmContGroup"> this.setState({ wmWidth })} /> this.setState({ wmHeight })} /> { let result = _.filter(commonVariables, (item) => item.id === keys[0]); if (result && result.length > 0) { this.refs.TextContentRichText.insertHTML(` ${result[0].name} `); } }} height={280} checkedKeys={[]} />
} /> ); } } export default WmContentSetModal;