From d987c336a2f1709d00ac9a07b421aaf75e8e792a Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Fri, 26 Jan 2024 13:26:30 +0800
Subject: [PATCH] fix
---
src/views/OldHistoryPage.vue | 84 +++++++++++++++++++++++++++++++++---
1 file changed, 79 insertions(+), 5 deletions(-)
diff --git a/src/views/OldHistoryPage.vue b/src/views/OldHistoryPage.vue
index c5c0e8a1..821c3538 100644
--- a/src/views/OldHistoryPage.vue
+++ b/src/views/OldHistoryPage.vue
@@ -35,7 +35,7 @@
{{ $t('HistoryPage.Detail') }}
-
{{ $t('HistoryPage.Retrieve') }}
+
{{ $t('HomeView.Export') }}
{{ $t('HistoryPage.Delete') }}
@@ -74,7 +74,12 @@ import { formatTime } from "@/tool/util"
import { Modal,message } from 'ant-design-vue';
import RobotAssist from "@/component/HomePage/RobotAssist.vue";
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
+import { rgbToHsv, dataURLtoBlob } from "@/tool/util";
+import JSZip, { forEach } from "jszip";
+import html2canvas from "html2canvas";
+import { useStore } from "vuex";
import { useI18n } from 'vue-i18n';
+const FileSaver = require("file-saver");
export default defineComponent({
components: {
HeaderComponent,
@@ -83,6 +88,7 @@ export default defineComponent({
},
setup() {
let rangePickerValue:any = ref([])
+ const store = useStore();
let renameData:any = ref({}) //修改名字选中的数据
const columns:any = computed(()=>{
return [
@@ -111,6 +117,7 @@ export default defineComponent({
collectionList,
renameData,
t,
+ store,
}
},
data(){
@@ -123,6 +130,7 @@ export default defineComponent({
renameVisivle:false,//修改名字弹窗
groupDetails:{},//每个collection的详情
collectionName:'',//选中的名字
+ isShowMark: false, //导出的loading蒙层
searchCollectionName:'',
}
},
@@ -224,10 +232,72 @@ export default defineComponent({
// }
// );
// },
+ exportCanvas(){
+ let collectionReview:any = document.querySelector("#exportNewCoolection")
+ let a = document.createElement('a');
+ this.isShowMark = true
+ html2canvas(collectionReview,{useCORS:true,scale:3}).then((canvas) => {
+ let blob:any = dataURLtoBlob(canvas.toDataURL('image/png'));
+ let allBoardData:any = this.store.state.UploadFilesModule.allBoardData
+ let index = 0
+ let img = [
+ {
+ imgUrl:URL.createObjectURL(blob),
+ name:'collection.png'
+ }
+ ]
+ for(let key in allBoardData){
+ if(key !== 'colorBoards' && key !== 'moodTemplateId'){
+ for(let item of allBoardData[key]){
+ let nameTail = item.imgUrl.split('.').pop()
+ console.log(nameTail, 666)
+ let data = {
+ imgUrl:item.imgUrl,
+ name:item.resData.name + index + '.' + nameTail
+ }
+ img.push(data)
+ index ++
+ }
+ }
+ }
+ this.downImg(img)
+ // a.setAttribute('href', URL.createObjectURL(blob));
+ // a.setAttribute('download', `collection.png`);
+ // a.click();
+
+ })
+ },
+ downImg(imagesParams:any) {
+ let _this:any = this;
+ let zip = new JSZip();
+ let cache:any = {};
+ let promises = [];
- retrieveHome(record:any){
- this.$router.push({name:'home',params: {id:record.id}})
- }
+ for (let item of imagesParams) {
+ const promise = _this.getImgArrayBuffer(item.imgUrl).then((data:any) => {
+ // 下载文件, 并存成ArrayBuffer对象(blob)
+ zip.file(item.name, data, { binary: true }); // 逐个添加文件
+ cache[item.title] = data;
+ });
+ promises.push(promise);
+ }
+
+ Promise.all(promises)
+ .then(() => {
+ zip.generateAsync({ type: "blob" }).then((content:any) => {
+ // 生成二进制流
+ FileSaver.saveAs(
+ content,
+ 'DesignFiles'
+ ); // 利用file-saver保存文件 自定义文件名
+ this.isShowMark = false
+ });
+ })
+ .catch((res) => {
+ _this.message.error("Failed to export the file");
+ this.isShowMark = false
+ });
+ },
}
})
@@ -257,8 +327,12 @@ export default defineComponent({
.history_page_body{
width: 100%;
height: calc(100% - 7rem);
- padding: 0 2.5rem 4rem;
+ padding: 4rem 2.5rem 4rem;
+ margin-top: 4rem;
box-sizing: border-box;
+ top: 50%;
+ position: relative;
+ transform: translateY(-50%);
.history_header{
font-size: 1.8rem;