This commit is contained in:
朱浩 2025-01-17 10:36:57 +08:00
parent 9c2c31e4b7
commit 1326c5dd02
5 changed files with 106 additions and 48 deletions

View File

@ -14,7 +14,8 @@
"build:unpack": "npm run build && electron-builder --dir",
"build:dev": "npm run build && electron-builder --win --config ./electron-builder-test.yml",
"build:test": "node updatePackageJsonName.js && electron-vite build --mode test && electron-builder --win --config ./electron-builder.yml",
"build:prod": "node updatePackageJsonName.js && electron-vite build --mode production && electron-builder --win --config ./electron-builder-prod.yml",
"build:prod": "node updatePackageJsonName.js && electron-vite build --mode production && electron-builder --win --config ./electron-builder-prod.yml --win",
"build:prod32": "node updatePackageJsonName.js && electron-vite build --mode production && electron-builder --win --config ./electron-builder-prod.yml --win --ia32",
"build:yc": "node updatePackageJsonName.js && electron-vite build --mode yc && electron-builder --win --config ./electron-builder-yc.yml",
"build:yc2": "node updatePackageJsonName.js && electron-vite build --mode yc2 && electron-builder --win --config ./electron-builder-yc2.yml",
"build:lt": "electron-vite build --mode lt && electron-builder --win --config ./electron-builder-lt.yml",

View File

@ -8,13 +8,13 @@
http-equiv="Content-Security-Policy"
content="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:"
/> -->
<meta http-equiv="Content-Security-Policy" content="connect-src * blob: data:; frame-src 'self' *; default-src 'self' https://wzyzoss.eos-chongqing-3.cmecloud.cn/; script-src 'self' 'unsafe-eval' http://www.wiris.net 'unsafe-inline'; style-src 'self' 'unsafe-inline' http://www.wiris.net; media-src * blob:;img-src * 'self' data: blob:;font-src 'self' http://www.wiris.net data:;" />
<meta http-equiv="Content-Security-Policy" content="connect-src * blob: data:; frame-src 'self' *; default-src 'self' https://wzyzoss.eos-chongqing-3.cmecloud.cn/; script-src 'self' 'unsafe-eval' http://www.wiris.net 'unsafe-inline'; script-src-elem 'self' https://sdk.amazonaws.com; style-src 'self' 'unsafe-inline' http://www.wiris.net; media-src * blob:;img-src * 'self' data: blob:;font-src 'self' http://www.wiris.net data:;" />
</head>
<body>
<div id="app"></div>
<script src="./public/lib/build/aws-sdk-2.100.0.min.js"></script>
<script src="https://sdk.amazonaws.com/js/aws-sdk-2.100.0.min.js"></script>
<script type="module" src="/src/main.js"></script>
</body>
</html>

View File

@ -529,7 +529,9 @@ export const PPTXFileToJson = (data: File|ArrayBuffer) => {
}
// 开始解析
const json = await parse(fileArrayBuffer)
const json = await parse(fileArrayBuffer).catch((err) => {
reject(err)
})
const ratio = 96 / 72
const width = json.size.width

View File

@ -18,7 +18,9 @@
{{ item.fileShowName.substring(0, item.fileShowName.lastIndexOf('.')) }}
<el-tag type="danger" effect="dark">{{item.fileShowName.substring(item.fileShowName.lastIndexOf('.')+1)}}</el-tag>
<template v-if="item.fileTag">
<el-tag v-for="(item1, index1) in item.fileTag.split(',')" :key="index1" type="success" effect="dark" style="margin-left: 5px">{{item1}}</el-tag>
<el-tag v-for="(item1, index1) in item.fileTag.split(',')"
@close="deleteTag(item, item1, index1)" closable :key="index1"
@click.stop="editTag(item, item1, index1)" type="success" effect="dark" style="margin-left: 5px">{{item1}}</el-tag>
</template>
</div>
</div>
@ -282,6 +284,71 @@ export default {
})
// this.$emit('on-start-class', item)
},
editTagMsg(type, item, value, index) {
let fileTagList = []
if (!item.fileTag) {
item.fileTag="";
fileTagList = [];
}else {
fileTagList = item.fileTag.split(',');
}
let message = '';
switch (type) {
case 'add':
fileTagList.push(value);
message = '添加成功!';
break;
case 'delete':
fileTagList.splice(index, 1);
message = '删除成功!';
break;
case 'edit':
fileTagList[index] = value;
message = '修改成功!';
break;
default:
break;
}
item.fileTagList = fileTagList;
item.fileTag = fileTagList.join(",")
updateSmarttalk({ id: item.id, fileTag: item.fileTag, fileShowName: item.fileShowName }).then((res) => {
if (res.data === true) {
ElMessage({
type: 'success',
message: message
})
}
})
},
deleteTag(item, item1, index) {
ElMessageBox.confirm(
'是否确认删除这个标签?',
'提示',
{
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
}
)
.then(() => {
this.editTagMsg('delete', item, "", index)
})
.catch(() => {
})
},
editTag(item, item1, index) {
console.log(item, item1, index)
ElMessageBox.prompt('请输入新的标签', '修改标签', {
confirmButtonText: '确认',
cancelButtonText: '取消',
inputValue: item1,
inputPattern: /^[a-zA-Z0-9\u4e00-\u9fa5]{1,5}$/,
inputErrorMessage: '请输入最多五个字的标签,不能携带标点符号'
})
.then(({ value }) => {
this.editTagMsg('edit', item, value, index)
}).catch(() => {})
},
editTalk(item) {
ElMessageBox.prompt('请输入新的标签', '添加标签', {
confirmButtonText: '确认',
@ -291,24 +358,7 @@ export default {
inputErrorMessage: '请输入最多五个字的标签,不能携带标点符号'
})
.then(({ value }) => {
let fileTagList = []
if (!item.fileTag) {
item.fileTag="";
fileTagList = [];
}else {
fileTagList = item.fileTag.split(',');
}
fileTagList.push(value);
item.fileTagList = fileTagList;
item.fileTag = fileTagList.join(",")
updateSmarttalk({ id: item.id, fileTag: item.fileTag, fileShowName: item.fileShowName }).then((res) => {
if (res.data === true) {
ElMessage({
type: 'success',
message: `添加成功!`
})
}
})
this.editTagMsg('add', item, value, 0)
})
.catch(() => {})
},

View File

@ -561,6 +561,7 @@ export default {
},
importPPT(item) {
let _this = this;
// item.fileFullPath = "https://wzyzoss.eos-chongqing-3.cmecloud.cn/2025/1/14/c4d8ae796fc74417aefe017a49388962.ppt"
fetch(item.fileFullPath)
.then(res => res.arrayBuffer())
.then(buffer => {
@ -636,7 +637,11 @@ export default {
async createAIPPTByFile(file,fileShowName) {
this.pgDialog.visible = true
this.pgDialog.pg.percentage = 0
const resPptJson = await PPTXFileToJson(file)
const resPptJson = await PPTXFileToJson(file).catch(() => {
ElMessageBox.alert('PPT文件转换失败请点击素材右侧...下载文件后打开另存为PPTX文件格式再进行导入')
this.pgDialog.visible = false
})
if (!resPptJson) return
const { def, slides, ...content } = resPptJson
//
const thumbnails = await slidesToImg(slides, content.width)