diff --git a/src/renderer/src/assets/iconfont/iconfont.css b/src/renderer/src/assets/iconfont/iconfont.css
index 48ced18..1e0727e 100644
--- a/src/renderer/src/assets/iconfont/iconfont.css
+++ b/src/renderer/src/assets/iconfont/iconfont.css
@@ -1,8 +1,8 @@
@font-face {
font-family: "iconfont"; /* Project id 4723712 */
- src: url('iconfont.woff2?t=1733880548695') format('woff2'),
- url('iconfont.woff?t=1733880548695') format('woff'),
- url('iconfont.ttf?t=1733880548695') format('truetype');
+ src: url('iconfont.woff2?t=1734337029245') format('woff2'),
+ url('iconfont.woff?t=1734337029245') format('woff'),
+ url('iconfont.ttf?t=1734337029245') format('truetype');
}
.iconfont {
@@ -13,6 +13,10 @@
-moz-osx-font-smoothing: grayscale;
}
+.icon-yinle:before {
+ content: "\e6c9";
+}
+
.icon-yuyin:before {
content: "\e648";
}
diff --git a/src/renderer/src/assets/iconfont/iconfont.js b/src/renderer/src/assets/iconfont/iconfont.js
index 55c5cce..0104497 100644
--- a/src/renderer/src/assets/iconfont/iconfont.js
+++ b/src/renderer/src/assets/iconfont/iconfont.js
@@ -1 +1 @@
-window._iconfont_svg_string_4723712='',(l=>{var h=(c=(c=document.getElementsByTagName("script"))[c.length-1]).getAttribute("data-injectcss"),c=c.getAttribute("data-disable-injectsvg");if(!c){var a,v,t,i,z,p=function(h,c){c.parentNode.insertBefore(h,c)};if(h&&!l.__iconfont__svg__cssinject__){l.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(h){console&&console.log(h)}}a=function(){var h,c=document.createElement("div");c.innerHTML=l._iconfont_svg_string_4723712,(c=c.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",c=c,(h=document.body).firstChild?p(c,h.firstChild):h.appendChild(c))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(a,0):(v=function(){document.removeEventListener("DOMContentLoaded",v,!1),a()},document.addEventListener("DOMContentLoaded",v,!1)):document.attachEvent&&(t=a,i=l.document,z=!1,o(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,M())})}function M(){z||(z=!0,t())}function o(){try{i.documentElement.doScroll("left")}catch(h){return void setTimeout(o,50)}M()}})(window);
\ No newline at end of file
+window._iconfont_svg_string_4723712='',(l=>{var h=(c=(c=document.getElementsByTagName("script"))[c.length-1]).getAttribute("data-injectcss"),c=c.getAttribute("data-disable-injectsvg");if(!c){var a,v,t,i,z,p=function(h,c){c.parentNode.insertBefore(h,c)};if(h&&!l.__iconfont__svg__cssinject__){l.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(h){console&&console.log(h)}}a=function(){var h,c=document.createElement("div");c.innerHTML=l._iconfont_svg_string_4723712,(c=c.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",c=c,(h=document.body).firstChild?p(c,h.firstChild):h.appendChild(c))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(a,0):(v=function(){document.removeEventListener("DOMContentLoaded",v,!1),a()},document.addEventListener("DOMContentLoaded",v,!1)):document.attachEvent&&(t=a,i=l.document,z=!1,o(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,M())})}function M(){z||(z=!0,t())}function o(){try{i.documentElement.doScroll("left")}catch(h){return void setTimeout(o,50)}M()}})(window);
\ No newline at end of file
diff --git a/src/renderer/src/assets/iconfont/iconfont.json b/src/renderer/src/assets/iconfont/iconfont.json
index 7e335cb..9074987 100644
--- a/src/renderer/src/assets/iconfont/iconfont.json
+++ b/src/renderer/src/assets/iconfont/iconfont.json
@@ -5,6 +5,13 @@
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
+ {
+ "icon_id": "11819186",
+ "name": "音乐",
+ "font_class": "yinle",
+ "unicode": "e6c9",
+ "unicode_decimal": 59081
+ },
{
"icon_id": "6338162",
"name": "语音生成",
diff --git a/src/renderer/src/assets/iconfont/iconfont.ttf b/src/renderer/src/assets/iconfont/iconfont.ttf
index 51df6e8..cc1b0d5 100644
Binary files a/src/renderer/src/assets/iconfont/iconfont.ttf and b/src/renderer/src/assets/iconfont/iconfont.ttf differ
diff --git a/src/renderer/src/assets/iconfont/iconfont.woff b/src/renderer/src/assets/iconfont/iconfont.woff
index e9b9ac1..e3e4f22 100644
Binary files a/src/renderer/src/assets/iconfont/iconfont.woff and b/src/renderer/src/assets/iconfont/iconfont.woff differ
diff --git a/src/renderer/src/assets/iconfont/iconfont.woff2 b/src/renderer/src/assets/iconfont/iconfont.woff2
index ac355d5..ad28332 100644
Binary files a/src/renderer/src/assets/iconfont/iconfont.woff2 and b/src/renderer/src/assets/iconfont/iconfont.woff2 differ
diff --git a/src/renderer/src/components/file-image/index.vue b/src/renderer/src/components/file-image/index.vue
index 0c1b1a5..74a5341 100644
--- a/src/renderer/src/components/file-image/index.vue
+++ b/src/renderer/src/components/file-image/index.vue
@@ -41,6 +41,7 @@ const getFileTypeIcon = () => {
airobot: 'icon-jiqirenfushi', // 数字人生成
aiimg: 'icon-xiangmuicon_maobishufa', // 文生图片
aidraw: 'icon-meishu-F', // 文生连环画
+ aiyinyue: 'icon-yinle' //文生音乐
}
if (iconObj[name]) {
return '#' + iconObj[name]
diff --git a/src/renderer/src/utils/tool.js b/src/renderer/src/utils/tool.js
index 02aeae2..c30db4e 100644
--- a/src/renderer/src/utils/tool.js
+++ b/src/renderer/src/utils/tool.js
@@ -422,6 +422,19 @@ export const toLinkWeb = (path) => {
cookieData: { ...config }
})
}
+
+/**
+ * @description 外部跳转-web网页
+ * @param {*} url
+ */
+export const toLinkLeftWeb = (url) => {
+ // 通知主进程
+ ipcRenderer.send('openWindow', {
+ key: `win-${Date.now()}`,
+ fullPath: url
+ })
+}
+
/**
* @description 外部跳转-web网页
* @param {*} path
diff --git a/src/renderer/src/views/model/index.vue b/src/renderer/src/views/model/index.vue
index c27c811..4bc6ebb 100644
--- a/src/renderer/src/views/model/index.vue
+++ b/src/renderer/src/views/model/index.vue
@@ -90,7 +90,7 @@ import { dataSetJson } from '@/utils/comm' // 数据集id文生图
import { sessionStore } from '@/utils/store'
import {listEntpcourse} from "@/api/teaching/classwork";
import {addEntpcoursefileReturnId, getEntpcoursefile} from "@/api/education/entpcoursefile";
-import {createWindow, ipcMsgSend} from "@/utils/tool";
+import {createWindow, toLinkLeftWeb} from "@/utils/tool";
import {ElMessage} from "element-plus";
import {PPTXFileToJson} from "@/AixPPTist/src/hooks/useImport";
import * as API_entpcoursefile from "@/api/education/entpcoursefile";
@@ -161,6 +161,11 @@ const tools = reactive([{
name: '视频生成',
path: '',
img: 'aivideo'
+},{
+ name: '音乐生成',
+ path: 'https://ai.ysaix.com:7845/',
+ type: 'link',
+ img: 'aiyinyue'
}])
const uploadData = ref({
@@ -173,6 +178,11 @@ const uploadData = ref({
const currentFileList = ref([])
const gotoRoute = (item) => {
+ if (item.type === 'link') {
+ //link方式
+ toLinkLeftWeb(item.path);
+ return
+ }
if (item.path) {
if (item.path === '/model/aiKolors') {
gotoAiKolors(item.path)