Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
2024-06-27 09:34:55 +08:00
commit 65e6340aef
2 changed files with 80 additions and 12 deletions

View File

@ -2,17 +2,33 @@ import request from '@/utils/request'
//新增
export function insertScriptEdgeNode(data) {
return request({
url: '/manage/script/updateScriptEdgeNode',
method: 'post',
data: data
})
return request({
url: '/manage/script/updateScriptEdgeNode',
method: 'post',
data: data
})
}
// 话术列表
export function selectScriptEdgeNode(id) {
return request({
url: `/manage/script/selectScriptEdgeNode?id=${id}`,
method: 'get'
})
}
// 上传
export function uploadScriptInfo(data) {
return request({
url: `/manage/script/selectScriptEdgeNode?id=${id}`,
method: 'get'
url: '/manage/script/uploadScriptInfo',
method: 'post',
data: data
})
}
// 修改接口
export function edit(data) {
return request({
url: '/manage/script/edit',
method: 'put',
data: data
})
}

View File

@ -399,12 +399,12 @@
<!-- 下载图片 -->
<section class="save-as-image-dialog">
<el-dialog
title="下载图片"
title="生成图片"
:visible.sync="saveAsImageDialogVisible"
width="360px"
>
<el-form label-width="100px" label-position="top">
<el-form-item label="选择图片格式">
<el-form-item label="图片格式">
<el-select v-model="saveAsImageFormat">
<el-option label="jpg" value="jpg">
<span style="float: left">jpg</span>
@ -412,12 +412,12 @@
>白色背景</span
>
</el-option>
<el-option label="png" value="png">
<!-- <el-option label="png" value="png">
<span style="float: left">png</span>
<span style="float: right; color: #8492a6; font-size: 13px"
>透明背景</span
>
</el-option>
</el-option> -->
</el-select>
</el-form-item>
</el-form>
@ -465,9 +465,10 @@
<script>
import G6Editor from "@antv/g6-editor";
import mixin from "../mianview/mixin";
import { insertScriptEdgeNode, selectScriptEdgeNode } from "@/api/system/preview";
import { insertScriptEdgeNode, selectScriptEdgeNode, uploadScriptInfo, edit } from "@/api/system/preview";
import Cookies from 'js-cookie'
import { construct } from "netflix-conductor-json-tree/dist/index";
export default {
name: "VueG6Editor",
mixins: [mixin],
@ -787,6 +788,35 @@ export default {
this.editor.getCurrentPage().hideGrid();
}
},
// data:image/png;base64,Base64File
base64ToFile(base64Data, filename) {
const now = new Date();
const nowdata = now.toTimeString().split(' ')[0]; //
console.log(nowdata,'nowdata')
const nowdatanew=nowdata.replace(/:/g, '-')
// this.attributeName.replace(/:/g, '-');
const name = Cookies.get('username')
// base64
const base64Regex = /^data:([^;]+);base64,/;
const matches = base64Data.match(base64Regex);
// const mimeType = matches ? matches[1] : '';
const mimeType = 'image/jpg';
const base64String = base64Data.replace(base64Regex, ''); // base64
// base64
const binaryString = atob(base64String);
const len = binaryString.length;
const bytes = new Uint8Array(len);
for (let i = 0; i < len; i++) {
bytes[i] = binaryString.charCodeAt(i);
}
// Blob
const blob = new Blob([bytes], { type: mimeType });
// File
const file = new File([blob], nowdatanew+name + '.jpg', { type: mimeType });
return file;
},
//
saveAsImage() {
let newCanvas;
@ -804,6 +834,28 @@ export default {
newCanvas = this.editor.getCurrentPage().saveImage();
}
let imageDataURL = newCanvas.toDataURL();
console.log(imageDataURL, 'imageDataURL')
const file = this.base64ToFile(imageDataURL);
console.log(file, '0000000000')
// return
let formDatanew = new FormData();
formDatanew.append("file", file);
console.log(formDatanew, 'formDatanew')
uploadScriptInfo(formDatanew).then(response => {
if (response.code == 200) {
var obj={
id:Cookies.get('id'),
scriptFilePath:response.imgUrl
}
edit(obj).then(response => {
if (response.code == 200) {
}
});
}
});
// return file;
let downloadLink = document.createElement("a");
downloadLink.download = "图片.jpg";
downloadLink.href = imageDataURL;