UNPKG

z-react-ui

Version:

z-react-ui,是一款基于 Dumi,由 React + TypeScript 开发的组件库 🎉。

73 lines (59 loc) 2.46 kB
import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper"; import convertBase64UrlToImgFile from '@/_utils/convertBase64UrlToImgFile'; import { selfPasteImgAltText } from '@/_config/index'; export default function sendMsg(target, options) { // 获取输入框的内容 var msgText = ''; // 获取输入框下的所有子元素 var allNodes = target.childNodes; var _iterator = _createForOfIteratorHelper(allNodes), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var item = _step.value; // 判断当前类型,获取元素内的内容 switch (item.nodeName) { case 'IMG': // 这种是通过粘贴过来的图片,里面不包含alt属性 if (item.alt === selfPasteImgAltText) { // 是图片 var base64Img = item.src; // 删除base64图片的前缀 base64Img = base64Img.replace(/^data:image\/\w+;base64,/, ''); // 随机文件名 var fileName = new Date().getTime() + 'chatImg' + '.jpeg'; // 将base64转换成file var imgFile = convertBase64UrlToImgFile(base64Img, fileName, 'image/jpeg'); // const formData = new FormData(); // // 此处的file与后台取值时的属性一样,append时需要添加文件名,否则一直是blob // formData.append("file", imgFile, fileName); // // 上传图片获取图片地址 // const res: { code: number; msg: string } = await uploadImage( // formData // ); // // 将图片地址拼接至待发送消息中 // msgText += res.msg; msgText += '复制的图片'; } else { // 是表情,向msgText追加内容 msgText += "[".concat(item.alt, "]"); } break; case 'DIV': // 获取div元素节点的值 msgText += item === null || item === void 0 ? void 0 : item.innerText; break; case '#text': // 获取文本消息并拼接 msgText += item.nodeValue; break; case 'BR': // 获取文本消息并拼接 msgText += '\n'; break; default: msgText = "[\u4E0D\u652F\u6301\u7684\u5143\u7D20\u7C7B\u578B ".concat(item.nodeName, "]"); } } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } return msgText; }