vue 指定数据导出json/text文件
1、导出为json文件
JavaScript Code复制内容到剪贴板
- const downloadToTxt = () => {
- downloadConfirmLoading.value = true
- // 提取下标为 选中项 的元素
- const targetIndexes = checkedIds.value
- // const filteredResult = targetIndexes.map(index => openAIResult.value[index]);
- // 需要以更灵活的方式处理,使用 reduce 方法,只取每组的answer数据,别的不要
- const filteredResult = targetIndexes.reduce((acc, index) => {
- acc.push(openAIResult.value[index].answer)
- return acc;
- }, []);
- // 创建a标签
- let a = document.createElement('a');
- // 设置导出文件名称
- a.download = downloadTitle.value + ".json";
- a.style.display = "none";
- // 转成字符串形式
- const dat = JSON.stringify(filteredResult, null, 4);
- // 转成blob流
- const blob = new Blob([dat], {
- type: "application/json"
- });
- // 将blob流转成url
- a.href = URL.createObjectURL(blob);
- document.body.appendChild(a);
- // 触发a标签 进行下载
- a.click();
- // 移出标签
- document.body.removeChild(a);
- message.success('导出方案成功')
- isEnableChecked.value = false
- checkedIds.value = []
- downloadConfirmLoading.value = false
- downloadVisible.value = false
- // console.log(filteredResult);
- // console.log(checkedIds.value)
- }
2、导出为text文本文件
JavaScript Code复制内容到剪贴板
- downloadToTxt() {
- this.downloadConfirmLoading = true
- // 需要以更灵活的方式处理,使用 reduce 方法,只取每组的answer数据,别的不要
- const filteredResult = this.parseContent.map(item => {
- return item.text
- })
- // 创建a标签
- let a = document.createElement('a');
- // 设置导出文件名称
- a.download = "解析内容.txt";
- a.style.display = "none";
- // 转换为文本格式,使用换行符分隔
- const dat = filteredResult.join('\n'); // 将每个文本项通过换行连接成一个字符串
- // 转成blob流,设置文本类型
- const blob = new Blob([dat], {
- type: "text/plain"
- });
- // 将blob流转成url
- a.href = URL.createObjectURL(blob);
- document.body.appendChild(a);
- // 触发a标签 进行下载
- a.click();
- // 移出标签
- document.body.removeChild(a);
- this.$message.success('导出文本成功')
- this.downloadConfirmLoading = false
- }
下一篇 返回列表