yonge 1 hafta önce
ebeveyn
işleme
e5fba7585b

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-6Oe_4ZzF.css


+ 1 - 1
dist/assets/index-B59TU9dI.js → dist/assets/index-9smDDRMH.js

@@ -1 +1 @@
-import{u as c,af as l}from"./index-xs0NF-M-.js";import{w as p,bA as d,a5 as g,cB as m,R as t,ae as r,af as u,al as f,ag as w,bH as k}from"./index-KN0MLkpk.js";import"./shapes-CV7jbnjn.js";const S=()=>{function o(a){if(window.parent===window)return;const{api:e,playState:n}=a.data||{};e==="headerTogge"?window.parent.postMessage({api:"headerTogge",playState:n},"*"):e==="changeTogge"?window.parent.postMessage({api:"changeTogge"},"*"):["clickTempo","clickViewFigner"].includes(e)&&window.parent.postMessage({api:e},"*")}p(()=>{window.addEventListener("message",o)}),d(()=>{window.removeEventListener("message",o)})},_=g({__name:"mobileScreen",setup(o){S();const a=m(),e=t(!0),n=t(!1),i=c();return a.setScreenMode("mobileScreen"),i.initPPTData().then(()=>{e.value=!1}),(v,s)=>(r(),u("div",{class:"mobileScreen",onClick:s[0]||(s[0]=b=>n.value=!1)},[e.value?w("",!0):(r(),f(l,{key:0}))]))}}),B=k(_,[["__scopeId","data-v-90b2692a"]]);export{B as default};
+import{u as c,af as l}from"./index-DtOywEz4.js";import{w as p,bA as d,a5 as g,cB as m,R as t,ae as r,af as u,al as f,ag as w,bH as k}from"./index-gMWBByLp.js";import"./shapes-EK0vqH4Z.js";const S=()=>{function o(a){if(window.parent===window)return;const{api:e,playState:n}=a.data||{};e==="headerTogge"?window.parent.postMessage({api:"headerTogge",playState:n},"*"):e==="changeTogge"?window.parent.postMessage({api:"changeTogge"},"*"):["clickTempo","clickViewFigner"].includes(e)&&window.parent.postMessage({api:e},"*")}p(()=>{window.addEventListener("message",o)}),d(()=>{window.removeEventListener("message",o)})},_=g({__name:"mobileScreen",setup(o){S();const a=m(),e=t(!0),n=t(!1),i=c();return a.setScreenMode("mobileScreen"),i.initPPTData().then(()=>{e.value=!1}),(v,s)=>(r(),u("div",{class:"mobileScreen",onClick:s[0]||(s[0]=b=>n.value=!1)},[e.value?w("",!0):(r(),f(l,{key:0}))]))}}),B=k(_,[["__scopeId","data-v-90b2692a"]]);export{B as default};

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-BIm5POJ0.css


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-CF9eomK5.js


+ 1 - 1
dist/assets/index-CPfV7uuY.js → dist/assets/index-CqdFoeUE.js

@@ -1 +1 @@
-import{u as s,af as r}from"./index-xs0NF-M-.js";import{a5 as c,cB as n,R as p,ae as t,af as _,al as u,ag as i,bH as f}from"./index-KN0MLkpk.js";const l={class:"pptScreen"},m=c({__name:"pptScreen",setup(d){const a=n(),e=p(!0),o=s();return a.setScreenMode("pptScreen"),o.initPPTData().then(()=>{e.value=!1}),(S,k)=>(t(),_("div",l,[e.value?i("",!0):(t(),u(r,{key:0}))]))}}),P=f(m,[["__scopeId","data-v-678905e9"]]);export{P as default};
+import{u as s,af as r}from"./index-DtOywEz4.js";import{a5 as c,cB as n,R as p,ae as t,af as _,al as u,ag as i,bH as f}from"./index-gMWBByLp.js";const l={class:"pptScreen"},m=c({__name:"pptScreen",setup(d){const a=n(),e=p(!0),o=s();return a.setScreenMode("pptScreen"),o.initPPTData().then(()=>{e.value=!1}),(S,k)=>(t(),_("div",l,[e.value?i("",!0):(t(),u(r,{key:0}))]))}}),P=f(m,[["__scopeId","data-v-678905e9"]]);export{P as default};

+ 1 - 1
dist/assets/index-xs0NF-M-.js → dist/assets/index-DtOywEz4.js

@@ -1,4 +1,4 @@
-import{cF as dw,cG as hw,aG as vw,cH as pw,cI as gw,cJ as mw,cK as yw,ah as Yt,cL as Sw,cM as bw,cN as xw,cO as Cw,aM as ww,aF as Tw,cP as Iw,aB as c1,bg as _w,cQ as Aw,cR as Ew,cS as Pw,cT as Mw,cU as Rw,cV as Dw,cW as Lw,aE as kw,cX as Ow,s as Ae,bl as Bw,al as je,ag as ze,af as ve,ak as Z,cY as Nw,cZ as Fw,c_ as $w,c$ as zw,bk as Uw,cw as ul,aS as Cv,aq as Ye,d0 as Hw,d1 as Vw,a5 as $e,d2 as Gw,d3 as Ww,d4 as jw,d5 as Kw,d6 as Xw,d7 as Yw,d8 as Zw,d9 as Qw,da as Jw,db as qw,dc as eT,v as tT,dd as rT,de as nT,df as iT,aW as aT,dg as oT,dh as sT,di as lT,dj as uT,dk as cT,ay as sr,dl as fT,dm as dT,dn as hT,dp as vT,A as pT,dq as gT,dr as mT,bq as yT,ds as ST,dt as bT,du as xT,ap as CT,ac as f1,ai as dt,dv as wT,au as Ce,dw as TT,X as d1,y as IT,dx as _T,aP as AT,dy as ET,w as _r,dz as PT,dA as MT,H as RT,dB as DT,bA as hn,aD as LT,ae as ie,bN as ea,$ as wc,dC as kT,bM as ta,dD as OT,aC as BT,aO as NT,R as fe,dE as FT,br as rh,b3 as Lr,aj as Hs,b1 as lt,b2 as Ua,an as wv,dF as $T,dG as zT,dH as UT,dI as HT,dJ as VT,dK as GT,dL as WT,Q as jT,dM as KT,dN as XT,dO as YT,at as Mt,dP as ZT,aR as QT,aY as JT,ad as cl,aZ as qT,dQ as eI,dR as tI,dS as rI,P as le,a6 as nI,dT as iI,dU as aI,dV as oI,dW as sI,a7 as lI,dX as uI,dY as cI,dZ as fI,d_ as dI,d$ as hI,b4 as vI,aA as Tv,e0 as pI,e1 as gI,E as gr,x as mI,e2 as yI,e3 as SI,e4 as bI,am as _n,e5 as xI,az as hr,aU as nh,e6 as CI,as as jr,e7 as wI,e8 as Iv,cE as mr,by as ih,ct as ah,bI as TI,bH as Ve,bu as oh,bv as _v,bx as Wt,bB as Tc,bL as di,e9 as wu,bE as hi,ea as II,bJ as ra,bC as _I,bw as Bt,eb as AI,ec as ui,cu as EI,ed as PI,ee as MI,ef as RI,eg as DI,bK as Zp,eh as LI,bF as Qp,cB as Ic,cA as kI,ei as Hu,ej as Il}from"./index-KN0MLkpk.js";/**
+import{cF as dw,cG as hw,aG as vw,cH as pw,cI as gw,cJ as mw,cK as yw,ah as Yt,cL as Sw,cM as bw,cN as xw,cO as Cw,aM as ww,aF as Tw,cP as Iw,aB as c1,bg as _w,cQ as Aw,cR as Ew,cS as Pw,cT as Mw,cU as Rw,cV as Dw,cW as Lw,aE as kw,cX as Ow,s as Ae,bl as Bw,al as je,ag as ze,af as ve,ak as Z,cY as Nw,cZ as Fw,c_ as $w,c$ as zw,bk as Uw,cw as ul,aS as Cv,aq as Ye,d0 as Hw,d1 as Vw,a5 as $e,d2 as Gw,d3 as Ww,d4 as jw,d5 as Kw,d6 as Xw,d7 as Yw,d8 as Zw,d9 as Qw,da as Jw,db as qw,dc as eT,v as tT,dd as rT,de as nT,df as iT,aW as aT,dg as oT,dh as sT,di as lT,dj as uT,dk as cT,ay as sr,dl as fT,dm as dT,dn as hT,dp as vT,A as pT,dq as gT,dr as mT,bq as yT,ds as ST,dt as bT,du as xT,ap as CT,ac as f1,ai as dt,dv as wT,au as Ce,dw as TT,X as d1,y as IT,dx as _T,aP as AT,dy as ET,w as _r,dz as PT,dA as MT,H as RT,dB as DT,bA as hn,aD as LT,ae as ie,bN as ea,$ as wc,dC as kT,bM as ta,dD as OT,aC as BT,aO as NT,R as fe,dE as FT,br as rh,b3 as Lr,aj as Hs,b1 as lt,b2 as Ua,an as wv,dF as $T,dG as zT,dH as UT,dI as HT,dJ as VT,dK as GT,dL as WT,Q as jT,dM as KT,dN as XT,dO as YT,at as Mt,dP as ZT,aR as QT,aY as JT,ad as cl,aZ as qT,dQ as eI,dR as tI,dS as rI,P as le,a6 as nI,dT as iI,dU as aI,dV as oI,dW as sI,a7 as lI,dX as uI,dY as cI,dZ as fI,d_ as dI,d$ as hI,b4 as vI,aA as Tv,e0 as pI,e1 as gI,E as gr,x as mI,e2 as yI,e3 as SI,e4 as bI,am as _n,e5 as xI,az as hr,aU as nh,e6 as CI,as as jr,e7 as wI,e8 as Iv,cE as mr,by as ih,ct as ah,bI as TI,bH as Ve,bu as oh,bv as _v,bx as Wt,bB as Tc,bL as di,e9 as wu,bE as hi,ea as II,bJ as ra,bC as _I,bw as Bt,eb as AI,ec as ui,cu as EI,ed as PI,ee as MI,ef as RI,eg as DI,bK as Zp,eh as LI,bF as Qp,cB as Ic,cA as kI,ei as Hu,ej as Il}from"./index-gMWBByLp.js";/**
 * vue v3.4.34
 * (c) 2018-present Yuxi (Evan) You and Vue contributors
 * @license MIT

+ 1 - 1
dist/assets/index-BhmptLX8.js → dist/assets/index-DujcJhmt.js

@@ -1 +1 @@
-import{_ as a}from"./404-R0y5dkvZ.js";import{a5 as o,en as t,ae as r,af as c,bM as _,bN as d,ak as s,bH as p}from"./index-KN0MLkpk.js";const i=e=>(_("data-v-dda25179"),e=e(),d(),e),n={class:"errorPage"},m=i(()=>s("div",{class:"error"},[s("img",{src:a,class:"img",alt:""}),s("div",{class:"tit"},"页面找不到了~")],-1)),l=[m],f=o({__name:"errorPage",setup(e){return t(),(u,h)=>(r(),c("div",n,l))}}),I=p(f,[["__scopeId","data-v-dda25179"]]);export{I as default};
+import{_ as a}from"./404-R0y5dkvZ.js";import{a5 as o,en as t,ae as r,af as c,bM as _,bN as d,ak as s,bH as p}from"./index-gMWBByLp.js";const i=e=>(_("data-v-dda25179"),e=e(),d(),e),n={class:"errorPage"},m=i(()=>s("div",{class:"error"},[s("img",{src:a,class:"img",alt:""}),s("div",{class:"tit"},"页面找不到了~")],-1)),l=[m],f=o({__name:"errorPage",setup(e){return t(),(u,h)=>(r(),c("div",n,l))}}),I=p(f,[["__scopeId","data-v-dda25179"]]);export{I as default};

+ 1 - 1
dist/assets/index-Dm3jepU5.js → dist/assets/index-XTSKIrQ6.js

@@ -1 +1 @@
-import{_ as t}from"./404-R0y5dkvZ.js";import{E as c}from"./index-m8LJ--ML.js";import{a5 as n,ae as i,af as r,ak as o,aq as _,am as d,P as l,aS as p,bM as m,bN as f,bH as u}from"./index-KN0MLkpk.js";const s=a=>(m("data-v-340bbdaa"),a=a(),f(),a),h={class:"login"},b={class:"error"},g=s(()=>o("img",{src:t,class:"img",alt:""},null,-1)),k=s(()=>o("div",{class:"tit"},"登录已过期或服务器错误!",-1)),v=n({__name:"login",setup(a){function e(){window.close()}return(x,B)=>(i(),r("div",h,[o("div",b,[g,k,_(l(c),{class:"backBtn",type:"primary",plain:"",onClick:e},{default:d(()=>[p("关闭页面")]),_:1})])]))}}),S=u(v,[["__scopeId","data-v-340bbdaa"]]);export{S as default};
+import{_ as t}from"./404-R0y5dkvZ.js";import{E as c}from"./index-sQ_lqRir.js";import{a5 as n,ae as i,af as r,ak as o,aq as _,am as d,P as l,aS as p,bM as m,bN as f,bH as u}from"./index-gMWBByLp.js";const s=a=>(m("data-v-340bbdaa"),a=a(),f(),a),h={class:"login"},b={class:"error"},g=s(()=>o("img",{src:t,class:"img",alt:""},null,-1)),k=s(()=>o("div",{class:"tit"},"登录已过期或服务器错误!",-1)),v=n({__name:"login",setup(a){function e(){window.close()}return(x,B)=>(i(),r("div",h,[o("div",b,[g,k,_(l(c),{class:"backBtn",type:"primary",plain:"",onClick:e},{default:d(()=>[p("关闭页面")]),_:1})])]))}}),S=u(v,[["__scopeId","data-v-340bbdaa"]]);export{S as default};

Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
dist/assets/index-gMWBByLp.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-sQ_lqRir.js


+ 1 - 1
dist/assets/shapes-CV7jbnjn.js → dist/assets/shapes-EK0vqH4Z.js

@@ -1,4 +1,4 @@
-import{cE as k,bB as $1}from"./index-KN0MLkpk.js";import{ag as Z,ah as H1,ai as U,aj as n0,ak as c0,al as i0,am as j1,an as K1,ao as Y1,ap as R}from"./index-xs0NF-M-.js";var z1={exports:{}};/*!
+import{cE as k,bB as $1}from"./index-gMWBByLp.js";import{ag as Z,ah as H1,ai as U,aj as n0,ak as c0,al as i0,am as j1,an as K1,ao as Y1,ap as R}from"./index-DtOywEz4.js";var z1={exports:{}};/*!
  * clipboard.js v2.0.11
  * https://clipboardjs.com/
  *

+ 1 - 1
dist/index.html

@@ -10,7 +10,7 @@
     <meta name="description" content="ppt编辑器" />
     <meta name="keywords" content="ppt,powerpoint,office powerpoint,在线ppt,幻灯片,演示文稿,ppt在线制作,Vue3,TypeScript" />
     <title>PPT</title>
-    <script type="module" crossorigin src="./assets/index-KN0MLkpk.js"></script>
+    <script type="module" crossorigin src="./assets/index-gMWBByLp.js"></script>
     <link rel="stylesheet" crossorigin href="./assets/index-AavUEaYy.css">
   </head>
   <body>

+ 47 - 11
src/views/Editor/EditorHeader/AiCoursewareDialog.vue

@@ -14,7 +14,12 @@
         </div>
       </div>
 
-      <div v-if="taskInfo" class="progress-strip">
+      <div v-if="outlineLoading" class="loading-strip">
+        <span class="loading-dot"></span>
+        <span>正在生成大纲,请稍候</span>
+      </div>
+
+      <div v-else-if="taskInfo" class="progress-strip">
         <div class="current-step">{{ currentProgressLabel }}</div>
         <div class="progress-line">
           <div class="progress-bar" :style="{ width: `${progressValue}%` }"></div>
@@ -144,17 +149,18 @@ const outline = ref<AiCoursewareOutline>()
 const taskInfo = ref<AiCoursewareTaskInfo>()
 const pollTimer = ref<number>()
 const selectedPageNo = ref(1)
-const working = computed(() => taskInfo.value?.status === "PENDING" || taskInfo.value?.status === "RUNNING")
+const outlineLoading = ref(false)
+const working = computed(() => outlineLoading.value || taskInfo.value?.status === "PENDING" || taskInfo.value?.status === "RUNNING")
 const progressValue = computed(() => taskInfo.value?.progress || 0)
 const progressSteps = [
-  { threshold: 0, label: "解析需求" },
-  { threshold: 25, label: "拆分结构" },
-  { threshold: 55, label: "生成内容" },
-  { threshold: 80, label: "匹配图片" }
+  { threshold: 0, label: "准备中" },
+  { threshold: 25, label: "生成内容" },
+  { threshold: 65, label: "匹配图片" },
+  { threshold: 100, label: "生成完成" }
 ]
 const currentProgressLabel = computed(() => {
   const matched = [...progressSteps].reverse().find(step => progressValue.value >= step.threshold)
-  return taskInfo.value?.message || matched?.label || "处理中"
+  return shortProgressLabel(taskInfo.value?.message) || matched?.label || "处理中"
 })
 const pageTitle = computed(() => outline.value?.chapterName || outline.value?.title || "课件大纲")
 const pageMeta = computed(() => {
@@ -178,13 +184,14 @@ async function handleOutline() {
     ElMessage.error("当前课件ID为空")
     return
   }
-  taskInfo.value = { taskId: "", status: "RUNNING", progress: 0, message: "正在生成大纲" }
+  outlineLoading.value = true
   const res = await httpAjaxErrMsg(aiCoursewareOutlineApi, {
     id: pptWork.id,
     fromType: queryParams.pptResourcesType || queryParams.fromType,
     extraPrompt: buildExtraPrompt()
+  }).finally(() => {
+    outlineLoading.value = false
   })
-  taskInfo.value = undefined
   if (res.code === 200) {
     outline.value = res.data as AiCoursewareOutline
     selectedPageNo.value = outline.value.pages[0]?.pageNo || 1
@@ -285,6 +292,16 @@ function formatPageNo(pageNo?: number) {
   return String(pageNo || 0).padStart(2, "0")
 }
 
+function shortProgressLabel(message?: string) {
+  if (!message) return ""
+  if (message.includes("读取") || message.includes("等待")) return "准备中"
+  if (message.includes("页面") || message.includes("内容")) return "生成内容"
+  if (message.includes("图片") || message.includes("检索")) return "匹配图片"
+  if (message.includes("完成")) return "生成完成"
+  if (message.includes("失败")) return "生成失败"
+  return message.length > 4 ? message.slice(0, 4) : message
+}
+
 </script>
 
 <style lang="scss" scoped>
@@ -310,19 +327,33 @@ function formatPageNo(pageNo?: number) {
   color: #7b8794;
   font-size: 14px;
 }
-.progress-strip {
+.progress-strip,
+.loading-strip {
   margin-top: 12px;
   height: 42px;
   display: flex;
   align-items: center;
   gap: 12px;
 }
+.loading-strip {
+  color: #52616b;
+  font-size: 13px;
+}
+.loading-dot {
+  width: 14px;
+  height: 14px;
+  border: 2px solid #d7e7ff;
+  border-top-color: $themeColor;
+  border-radius: 50%;
+  animation: loading-rotate 0.8s linear infinite;
+}
 .current-step {
-  width: 86px;
+  width: 64px;
   flex-shrink: 0;
   color: $themeColor;
   font-size: 13px;
   font-weight: 600;
+  white-space: nowrap;
 }
 .progress-value {
   width: 42px;
@@ -344,6 +375,11 @@ function formatPageNo(pageNo?: number) {
   background: $themeColor;
   transition: width 0.25s ease;
 }
+@keyframes loading-rotate {
+  to {
+    transform: rotate(360deg);
+  }
+}
 .extra {
   margin-top: 12px;
 }

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor