import { EditorState, convertFromRaw, convertToRaw, CompositeDecorator, } from 'draft-js'; import {message} from 'antd' import {stateToHTML} from 'draft-js-export-html'; import moment from 'moment'; import {isJSON} from "@/webPublic/one_stop_public/copy"; function findLinkEntities(contentBlock, callback, contentState) { contentBlock.findEntityRanges( (character) => { const entityKey = character.getEntity(); return ( entityKey !== null && contentState.getEntity(entityKey).getType() === 'LINK' ); }, function () { console.log(arguments); callback(...arguments); } ); } const Link = (props) => { const {url} = props.contentState.getEntity(props.entityKey).getData(); return ( <a href={url} target="_blank"> {props.children} </a> ); }; const decorator = new CompositeDecorator([ { strategy: findLinkEntities, component: Link } ]); export function changeHtml(msg) { var msg = msg.replace(/<\/?[^>]*>/g, ''); //去除HTML Tag msg = msg.replace(/[|]*\n/, '') //去除行尾空格 msg = msg.replace(/&npsp;/ig, ''); //去掉npsp return msg; } export function changeToDraftState(blocks) { if (blocks == null || blocks == "") { return EditorState.createEmpty(decorator) } let x; if (typeof blocks === 'string' && blocks) { try { x = JSON.parse(blocks) } catch (e) { return EditorState.createEmpty(decorator) } } else { x = blocks } if (!x.blocks) { return EditorState.createEmpty(decorator) } const b = convertFromRaw(x); return EditorState.createWithContent(b, decorator) } export function changeFromDraftState(editorState) { const x = editorState.getCurrentContent() const blocks = JSON.stringify(convertToRaw(x)) const content = stateToHTML(x) return {content, blocks} } export function changeToDraftState2(blocks) { const b = convertFromRaw(blocks); return EditorState.createWithContent(b, decorator) } export function changeFromDraftState2(editorState) { if (editorState == null) return; const x = editorState.getCurrentContent() const blocks = convertToRaw(x) return blocks } export function preHandle(values) { for (var key in values) { if (!values[key]) continue; if (key.indexOf("$") > -1) { var xx = key.split("$") for (var i = 0; i < xx.length; i++) { if (values[key][i] instanceof moment) { values[xx[i]] = values[key][i].valueOf() } else { values[xx[i]] = values[key][i] } } delete values[key] } else { if (values[key] != null) { if (values[key] instanceof moment) { values[key] = values[key].valueOf() } else if (values[key] instanceof Date) { values[key] = values[key].valueOf() } else if (values[key] instanceof Boolean) { values[key] = values[key] ? 0 : 1 } else if (values[key] instanceof Object && key != 'defaultValues') { //处理子表单中的日期值 let objValues = values[key]; for (let k in objValues) { if (k != '' && objValues[k] instanceof Object) { let childObj = objValues[k]; for (let j in childObj) { if (childObj[j] != null) { if (childObj[j] instanceof moment) { values[key][k][j] = values[key][k][j].valueOf() } else if (childObj[j] instanceof Date) { values[key][k][j] = values[key][k][j].valueOf() } else if (childObj[j] instanceof Boolean) { values[key][k][j] = values[key][k][j] ? 0 : 1 } } } } } } } } } }