ppts: 插入试题 图片路径存储修改

This commit is contained in:
白了个白 2024-12-12 16:23:28 +08:00
parent 892b4ee3b0
commit 5771533039
1 changed files with 44 additions and 3 deletions

View File

@ -114,7 +114,7 @@
/> />
</Modal> </Modal>
<!--插入试题-->
<el-dialog v-model="classWorkTaskVisible" append-to-body :show-close="false" width="70%"> <el-dialog v-model="classWorkTaskVisible" append-to-body :show-close="false" width="70%">
<QuestToPPTist <QuestToPPTist
class="class-work-task-modal" class="class-work-task-modal"
@ -208,9 +208,50 @@ const insertImageElement = (files: FileList) => {
// }) // })
} }
/**
* base64转图片File
* @param {String} base64 图片base64
* @param {String} fileName 图片名称| 默认 myimg
* @returns File 返回转换后的file数据类型
*/
const base64ToFile = (base64: string, fileName = '试题图片') => {
// base64 ,
let data = base64.split(','),
// image/pngimage/jpegimage/webp
type = data[0].match(/:(.*?);/)[1],
// pngjpegwebp
suffix = type.split('/')[1],
// 使atob()base64
bstr = window.atob(data[1]),
//
n = bstr.length,
//
// 0
u8arr = new Uint8Array(n)
// UTF-16
while (n--) {
// charCodeAt() UTF-16
u8arr[n] = bstr.charCodeAt(n)
}
// File
// new File(bits, name, options)
const file = new File([u8arr], `${fileName}.${suffix}`, {
type: type
})
// file
return file
}
const onhtml2canvas = async (html: HTMLElement) => { const onhtml2canvas = async (html: HTMLElement) => {
const ele = await toPng(html); const base64Dta = await toPng(html);
createImageElement(ele); const toFile = base64ToFile(base64Dta)
// 线
PPTApi.toRousrceUrl(toFile).then(data=>{
createImageElement(data)
})
// createImageElement(ele);
} }
const shapePoolVisible = ref(false) const shapePoolVisible = ref(false)