z-react-ui
Version:
z-react-ui,是一款基于 Dumi,由 React + TypeScript 开发的组件库 🎉。
73 lines (59 loc) • 2.46 kB
JavaScript
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;
}