mirror of
https://github.com/ZeroCatDev/Classworks.git
synced 2026-08-12 09:20:31 +00:00
4 lines
21 KiB
JavaScript
4 lines
21 KiB
JavaScript
import{d as pe}from"./dataProvider-oxZzGARG.js";import{d as Ke}from"./index-DkQ_Bflb.js";import{x as qe,H as Ge,C as Xe,f as Pe,ac as ge,h as X,b as Ze,av as Qe,a as et,_ as tt,e as at,c as nt,g as se,i as ye,d as st,j as le,p as he,q as we,r as ke,t as be,l as lt,k as ot}from"./index-BvGH7GyK.js";import{j as it,k as rt,a0 as Te,u as ut,a as ct,p as dt,I as mt,m as ft,n as vt}from"./vendor-vuetify-KiFW-YAv.js";import{V as pt,a as xe}from"./VTabs-DTqS4Kso.js";import{V as Ve}from"./VTextField-jDykTfh9.js";import{V as O}from"./VAlert-DdY_LS-W.js";import{V as Se}from"./VCheckboxBtn-D_PchAC2.js";import{V as q}from"./VChip-CyVmT8se.js";import{k as g,F as E,j as i,N as gt,n as Ee,o as oe,a3 as yt,X as v,Y as x,Z as u,a1 as w,S as h,_ as j,u as G,$ as D,a2 as R,b as V,e as C}from"./vendor-vue-Hxtt57UU.js";import{V as _e,a as Ue,b as $e,c as je}from"./VExpansionPanels-D75JoFxE.js";import{V as ht}from"./VSlider-D5-S_tyd.js";import{V as De}from"./VSelect-BdFWh1xd.js";import{V as wt}from"./VFileInput-Ch1sS0Fm.js";import"./vendor-utils-SR2uUhRI.js";import"./serverRotation-CVerzUcJ.js";import"./VTable-C8JDgtcy.js";import"./VTooltip-CvIsrMQ_.js";import"./soundList-D9U-Grcp.js";import"./VSwitch-DEARo61Y.js";import"./VMenu-CEn1TBeC.js";import"./VContainer-Cz0t7N-s.js";import"./socketClient-B3vfwKNR.js";import"./vendor-socket-SYmKJpIj.js";import"./deviceEvents-DDMVNIIy.js";import"./VAppBarTitle-CA6uS5-F.js";import"./VRow-CFI96Yew.js";import"./VSheet-PSmzyJOR.js";const z={subjectMax:200,contentMax:2e3,tagMax:50,tagCountMax:20};class L extends Error{constructor(r){super(r.join(";")),this.name="UafExportValidationError",this.issues=r}}function Q(e){if(/^\d{8}$/.test(e))return`${e.slice(0,4)}-${e.slice(4,6)}-${e.slice(6,8)}`;if(/^\d{4}-\d{2}-\d{2}$/.test(e))return e;if(/^\d{4}-\d{2}-\d{2}T/.test(e)&&!Number.isNaN(Date.parse(e)))return e.slice(0,10);throw new L([`日期 ${e||"(空)"} 不是有效的 YYYYMMDD 或 YYYY-MM-DD 格式`])}function Ce(e){return Q(e).replaceAll("-","")}function Z(e){return Array.isArray(e)?e.map(r=>String(r)):[]}function Be(e,r=e.subject||"作业"){const l=[];e.subject||l.push(`${r}:科目名称不能为空`),e.subject.length>z.subjectMax&&l.push(`${r}:科目名称超过 ${z.subjectMax} 个字符`);try{Q(e.date)}catch(a){l.push(...a.issues.map(c=>`${r}:${c}`))}return e.content||l.push(`${r}:正文不能为空`),e.content.length>z.contentMax&&l.push(`${r}:正文超过 ${z.contentMax} 个字符`),e.tags.length>z.tagCountMax&&l.push(`${r}:标签超过 ${z.tagCountMax} 个`),e.tags.some(a=>!a||a.length>z.tagMax||a.includes(";"))&&l.push(`${r}:包含无效标签`),l}const kt={subject:{fontSize:17,fontWeight:"regular"},content:{fontSize:13.5,fontWeight:"regular"},tags:{fontSize:9.5,fontWeight:"regular"}};function bt(e,r){const l=Q(r);return e.filter(a=>a&&(a.type==="homework"||a.type==="custom")).filter(a=>typeof a.content=="string"&&a.content.trim().length>0).map((a,c)=>{const m={subject:String(a.name||"").trim(),date:l,content:a.content,tags:Z(a.tags),style:JSON.parse(JSON.stringify(kt))},p=Be(m,m.subject||`第 ${c+1} 张卡片`);return{id:`${a.key||c}-${c}`,assignment:m,selected:p.length===0,issues:p,expanded:!1}})}function xt(e,r=[]){var c,m;const l=(e==null?void 0:e.homework)||{},a=[];for(const p of r){const o=l[p.name];(c=o==null?void 0:o.content)!=null&&c.trim()&&a.push({key:p.name,name:p.name,type:"homework",content:o.content,tags:Z(o.tags),order:p.order??0})}for(const[p,o]of Object.entries(l))p.startsWith("custom-")&&((m=o==null?void 0:o.content)!=null&&m.trim())&&a.push({key:p,name:o.name,type:"custom",content:o.content,tags:Z(o.tags),order:9999});return a.sort((p,o)=>p.order-o.order)}async function Ae(){return qe(()=>import("./browser-Bu9WQl1f.js"),[],import.meta.url)}async function Vt(e){var m;if(!e||!((m=e.name)!=null&&m.toLowerCase().endsWith(".pdf")))throw new L(["请选择 UAF PDF 文件"]);const r=new Uint8Array(await e.arrayBuffer()),{validateUafPdf:l,extractUafPayload:a}=await Ae(),c=await l(r);if(!c.valid)throw new L(c.errors.length?c.errors:["文件不是有效的 UAF PDF"]);return c.payload||a(r)}async function St(e,r,l){const a=new Set(r.map(o=>o.name)),c=[...new Set(e.map(o=>Ce(o.date)))],m=new Map;for(const o of c)m.set(o,await l(o));return{rows:e.map((o,d)=>{var B,U,k;const y=Ce(o.date),b=m.get(y),S=a.has(o.subject);let _=S?o.subject:null;S||(_=Object.keys(b.homework||{}).find($=>{var T;return $.startsWith("custom-")&&((T=b.homework[$])==null?void 0:T.name)===o.subject}));const P=!!(_&&((k=(U=(B=b.homework)==null?void 0:B[_])==null?void 0:U.content)!=null&&k.trim()));return{id:`uaf-import-${d}`,index:d,date:y,assignment:{...o,tags:Z(o.tags)},targetType:S?"homework":"custom",targetKey:_,conflict:P,action:P?"keep":"import"}}),boards:m}}function ze(e){const r=[],l=new Map;for(const a of e){if(a.action==="keep")continue;const c=a.targetKey?`${a.date}:${a.targetKey}`:null;c&&l.has(c)&&r.push(`${a.date} 的“${a.assignment.subject}”有多条记录指向同一卡片`),c&&l.set(c,a.id)}return r}async function _t(e,r){const l=ze(e.rows);if(l.length)throw new L(l);const a=new Set;let c=0,m=0;for(const d of e.rows){if(d.action==="keep"){m+=1;continue}const y=e.boards.get(d.date);if(y.homework||(y.homework={}),d.targetType==="homework")y.homework[d.assignment.subject]={...y.homework[d.assignment.subject]||{},content:d.assignment.content,tags:d.assignment.tags};else if(d.targetKey)y.homework[d.targetKey]={...y.homework[d.targetKey],name:d.assignment.subject,type:"custom",content:d.assignment.content,tags:d.assignment.tags};else{const b=`custom-uaf-${Date.now()}-${d.index}`;y.homework[b]={name:d.assignment.subject,type:"custom",content:d.assignment.content,tags:d.assignment.tags}}c+=1,a.add(d.date)}const p=[],o=[];for(const d of a)try{await r(d,e.boards.get(d)),p.push(d)}catch(y){o.push({date:d,error:y})}return{imported:c,skipped:m,savedDates:p,failedDates:o}}async function ie(e,r){const l=await fetch(new URL(`${e}uaf/${r}`,window.location.origin));if(!l.ok)throw new Error(`加载字体 ${r} 失败:${l.status}`);return l.arrayBuffer()}async function Le(e){if(!e.length)throw new L(["请至少选择一项作业"]);const r=e.flatMap(d=>Be(d));if(r.length)throw new L(r);const{createUafPdf:l}=await Ae(),a="./",[c,m,p]=await Promise.all([ie(a,"HarmonyOS_Sans_SC_Regular.ttf"),ie(a,"HarmonyOS_Sans_SC_Light.ttf"),ie(a,"HarmonyOS_Sans_SC_Bold.ttf")]),o=new URL(`${a}uaf/hb-subset.wasm`,window.location.origin);return l(e,{fontBytes:c,fontLightBytes:m,fontBoldBytes:p,wasmUrl:o,theme:"classworks-dark"})}async function Ut(e,r){const l=await Le(e),a=new window.Blob([l],{type:"application/pdf"}),c=URL.createObjectURL(a),m=document.createElement("a"),p=Q(r);return m.href=c,m.download=`Classworks-作业-${p}.uaf.pdf`,document.body.appendChild(m),m.click(),m.remove(),window.setTimeout(()=>URL.revokeObjectURL(c),1e3),m.download}const $t=dt({actionText:String,bgColor:String,color:String,icon:mt,image:String,justify:{type:String,default:"center"},headline:String,title:String,text:String,textWidth:{type:[Number,String],default:500},href:String,to:String,...vt(),...et(),...Qe({size:void 0}),...ft()},"VEmptyState"),jt=it()({name:"VEmptyState",props:$t(),emits:{"click:action":e=>!0},setup(e,r){let{emit:l,slots:a}=r;const{themeClasses:c}=rt(e),{backgroundColorClasses:m,backgroundColorStyles:p}=Ge(()=>e.bgColor),{dimensionStyles:o}=Ze(e),{displayClasses:d}=Te();function y(b){l("click:action",b)}return ut(()=>{var k,$,T;const b=!!(a.actions||e.actionText),S=!!(a.headline||e.headline),_=!!(a.title||e.title),P=!!(a.text||e.text),B=!!(a.media||e.image||e.icon),U=e.size||(e.image?200:96);return g("div",{class:Ee(["v-empty-state",{[`v-empty-state--${e.justify}`]:!0},c.value,m.value,d.value,e.class]),style:gt([p.value,o.value,e.style])},[B&&g("div",{key:"media",class:"v-empty-state__media"},[a.media?i(ge,{key:"media-defaults",defaults:{VImg:{src:e.image,height:U},VIcon:{size:U,icon:e.icon}}},{default:()=>[a.media()]}):g(E,null,[e.image?i(Xe,{key:"image",src:e.image,height:U},null):e.icon?i(Pe,{key:"icon",color:e.color,size:U,icon:e.icon},null):void 0])]),S&&g("div",{key:"headline",class:"v-empty-state__headline"},[((k=a.headline)==null?void 0:k.call(a))??e.headline]),_&&g("div",{key:"title",class:"v-empty-state__title"},[(($=a.title)==null?void 0:$.call(a))??e.title]),P&&g("div",{key:"text",class:"v-empty-state__text",style:{maxWidth:ct(e.textWidth)}},[((T=a.text)==null?void 0:T.call(a))??e.text]),a.default&&g("div",{key:"content",class:"v-empty-state__content"},[a.default()]),b&&g("div",{key:"actions",class:"v-empty-state__actions"},[i(ge,{defaults:{VBtn:{class:"v-empty-state__action-btn",color:e.color??"surface-variant",href:e.href,text:e.actionText,to:e.to}}},{default:()=>{var A;return[((A=a.actions)==null?void 0:A.call(a,{props:{onClick:y}}))??i(X,{onClick:y},null)]}})])])}),{}}}),Dt={class:"editor-section"},Ct={key:2,class:"d-flex align-center mb-2"},Pt={class:"text-caption text-medium-emphasis"},Tt={class:"d-flex flex-column w-100"},Et={class:"d-flex flex-wrap align-center mt-1 ga-1"},Bt={key:0,class:"text-caption text-error"},At={class:"preview-section"},zt={class:"preview-placeholder"},Lt={class:"preview-scroll-container"},Mt=["src"],Ft={class:"d-flex align-center ga-3"},It={class:"text-caption label-min-width"},Nt={class:"d-flex align-center ga-3 mt-2"},Ot={class:"text-body-2 mb-3"},Rt={class:"text-caption text-medium-emphasis ml-2"},Wt={__name:"UafTransferDialog",props:{modelValue:Boolean,mode:{type:String,default:"export"},currentDate:{type:String,required:!0},currentItems:{type:Array,default:()=>[]},currentBoardData:{type:Object,required:!0},subjects:{type:Array,default:()=>[]}},emits:["update:modelValue","success","error","imported"],setup(e,{emit:r}){const l=e,a=r,{mobile:c}=Te(),m=[{title:"Light",value:"light"},{title:"Regular",value:"regular"},{title:"Bold",value:"bold"}],p=[{key:"subject",label:"标题",min:10,max:32},{key:"content",label:"正文",min:8,max:24},{key:"tags",label:"标签",min:6,max:16}],o=V({subject:{fontSize:17,fontWeight:"regular"},content:{fontSize:13.5,fontWeight:"regular"},tags:{fontSize:9.5,fontWeight:"regular"}}),d=V([]),y=C({get:()=>l.modelValue,set:t=>a("update:modelValue",t)}),b=V(""),S=V([]),_=V(""),P=V(!1),B=V(!1),U=V(null),k=V(null),$=V(""),T=V(!1),A=V(!1),W=V("edit"),M=V(""),Y=V(!1),I=V(""),J=C(()=>B.value||A.value||T.value),H=C(()=>S.value.filter(t=>t.selected).map(t=>t.assignment)),ee=C(()=>H.value.map(t=>({...t,style:JSON.parse(JSON.stringify(o.value))}))),K=C(()=>S.value.filter(t=>t.issues.length===0)),te=C(()=>K.value.length>0&&K.value.every(t=>t.selected)),Me=C(()=>K.value.some(t=>t.selected)),re=C(()=>{if(!k.value)return[];const t=new Map;for(const n of k.value.rows)t.has(n.date)||t.set(n.date,[]),t.get(n.date).push(n);return[...t].map(([n,s])=>({date:n,rows:s}))}),ae=C(()=>{var t;return ze(((t=k.value)==null?void 0:t.rows)||[])}),Fe=C(()=>l.mode==="export"?H.value.length===0||P.value:!k.value||ae.value.length>0||A.value),Ie=C(()=>{if(l.mode==="export")return`文件日期:${b.value||"未选择"}`;if(!k.value)return"仅支持内嵌 uaf_payload.csv 的 UAF PDF";const t=k.value.rows.filter(n=>n.action!=="keep").length;return`将导入 ${t} 项,保留 ${k.value.rows.length-t} 项`});oe(()=>l.modelValue,(t,n)=>{!t&&n&&(N(),W.value="edit"),t&&(l.mode==="export"?(b.value=ve(l.currentDate),de()):(U.value=null,k.value=null,$.value=""))}),oe(H,()=>{me()},{deep:!0}),oe(o,()=>me(),{deep:!0}),yt(()=>{N()});function ue(t){return JSON.parse(JSON.stringify(t||{homework:{},attendance:{}}))}async function ce(t){var s,f;if(t===l.currentDate)return ue(l.currentBoardData);const n=await pe.loadData(`classworks-data-${t}`);if((n==null?void 0:n.success)===!1){if(((s=n.error)==null?void 0:s.code)==="NOT_FOUND")return{homework:{},attendance:{absent:[],late:[],exclude:[]}};throw new Error(((f=n.error)==null?void 0:f.message)||`无法读取 ${t} 的作业`)}return ue(n)}async function de(){if(b.value){P.value=!0,_.value="";try{const t=b.value.replaceAll("-",""),n=t===l.currentDate?l.currentItems:xt(await ce(t),l.subjects);S.value=bt(n,b.value)}catch(t){S.value=[],_.value=t.message||"无法加载该日期的作业"}finally{P.value=!1}}}function Ne(){const t=!te.value;for(const n of K.value)n.selected=t}function Oe(t,n){const s=p.find(He=>He.key===t),f=Number(n),F=Number.isFinite(f)?f:s.min;o.value[t].fontSize=Math.round(Math.min(s.max,Math.max(s.min,F))*2)/2}function N(){M.value&&(URL.revokeObjectURL(M.value),M.value="")}const me=Ke(async()=>{if(!ee.value.length){N(),I.value="",Y.value=!1;return}Y.value=!0,I.value="";try{const t=await Le(ee.value),n=new window.Blob([t],{type:"application/pdf"});N(),M.value=URL.createObjectURL(n)}catch(t){N(),I.value=ne(t)}finally{Y.value=!1}},800);async function Re(){B.value=!0;try{const t=await Ut(ee.value,b.value);a("success","导出成功",t),y.value=!1}catch(t){fe("导出失败",t)}finally{B.value=!1}}async function We(t){const n=Array.isArray(t)?t[0]:t;if(k.value=null,$.value="",!!n){T.value=!0;try{const s=await Vt(n);k.value=await St(s,l.subjects,ce)}catch(s){$.value=ne(s)}finally{T.value=!1}}}function Ye(t){return t.conflict?[{title:"保留现有",value:"keep"},{title:"覆盖现有",value:"overwrite"}]:[{title:"导入",value:"import"},{title:"跳过",value:"keep"}]}async function Je(){A.value=!0;try{const t=await _t(k.value,async(n,s)=>{var F;const f=await pe.saveData(`classworks-data-${n}`,s);if((f==null?void 0:f.success)===!1)throw new Error(((F=f.error)==null?void 0:F.message)||"保存失败")});a("imported",t),t.failedDates.length?a("error","部分日期导入失败",`已保存:${t.savedDates.join("、")||"无"}
|
||
失败:${t.failedDates.map(n=>n.date).join("、")}`):(a("success","导入完成",`已导入 ${t.imported} 项,保留 ${t.skipped} 项`),y.value=!1)}catch(t){fe("导入失败",t)}finally{A.value=!1}}function fe(t,n){a("error",t,ne(n))}function ne(t){return t instanceof L?t.issues.join(`
|
||
`):(t==null?void 0:t.message)||"发生未知错误"}function ve(t){return/^\d{8}$/.test(t)?`${t.slice(0,4)}-${t.slice(4,6)}-${t.slice(6,8)}`:t}return(t,n)=>(v(),x(ot,{modelValue:y.value,"onUpdate:modelValue":n[7]||(n[7]=s=>y.value=s),fullscreen:G(c),"max-width":"920",scrollable:""},{default:u(()=>[i(at,null,{default:u(()=>[i(nt,{class:"d-flex align-center"},{default:u(()=>[i(Pe,{icon:e.mode==="export"?"mdi-file-export-outline":"mdi-file-import-outline",class:"mr-2"},null,8,["icon"]),w(" "+h(e.mode==="export"?"导出 UAF":"导入 UAF")+" ",1),i(se),i(X,{icon:"mdi-close",variant:"text",onClick:n[0]||(n[0]=s=>y.value=!1)})]),_:1}),i(ye),i(st,{class:"transfer-content"},{default:u(()=>[e.mode==="export"?(v(),j(E,{key:0},[G(c)?(v(),x(pt,{key:0,modelValue:W.value,"onUpdate:modelValue":n[1]||(n[1]=s=>W.value=s),"fixed-tabs":"",class:"mb-3"},{default:u(()=>[i(xe,{value:"edit"},{default:u(()=>[...n[8]||(n[8]=[w(" 编辑 ",-1)])]),_:1}),i(xe,{value:"preview"},{default:u(()=>[...n[9]||(n[9]=[w(" 预览 ",-1)])]),_:1})]),_:1},8,["modelValue"])):D("",!0),g("div",{class:Ee(["export-layout",{mobile:G(c),"show-preview":G(c)&&W.value==="preview"}])},[g("div",Dt,[i(Ve,{modelValue:b.value,"onUpdate:modelValue":[n[2]||(n[2]=s=>b.value=s),de],class:"mb-3",label:"导出日期","prepend-inner-icon":"mdi-calendar",type:"date","hide-details":"",disabled:J.value},null,8,["modelValue","disabled"]),P.value?(v(),x(le,{key:0,class:"mb-3",indeterminate:""})):D("",!0),_.value?(v(),x(O,{key:1,class:"mb-3",type:"warning",variant:"tonal"},{default:u(()=>[w(h(_.value),1)]),_:1})):D("",!0),S.value.length?(v(),j("div",Ct,[i(Se,{"model-value":te.value,indeterminate:Me.value&&!te.value,onClick:Ne},null,8,["model-value","indeterminate"]),n[10]||(n[10]=g("span",{class:"text-body-2"},"选择全部有效作业",-1)),i(se),g("span",Pt," 已选择 "+h(H.value.length)+" / "+h(S.value.length)+" 项 ",1)])):D("",!0),S.value.length?(v(),x(he,{key:3,border:"",lines:"three"},{default:u(()=>[(v(!0),j(E,null,R(S.value,s=>(v(),x(we,{key:s.id,class:"edit-list-item"},{prepend:u(()=>[i(Se,{modelValue:s.selected,"onUpdate:modelValue":f=>s.selected=f,disabled:s.issues.length>0},null,8,["modelValue","onUpdate:modelValue","disabled"])]),default:u(()=>[g("div",Tt,[i(ke,null,{default:u(()=>[w(h(s.assignment.subject),1)]),_:2},1024),i(be,{class:"content-preview"},{default:u(()=>[w(h(s.assignment.content),1)]),_:2},1024),g("div",Et,[i(q,{size:"x-small",variant:"tonal"},{default:u(()=>[w(h(s.assignment.date),1)]),_:2},1024),(v(!0),j(E,null,R(s.assignment.tags,f=>(v(),x(q,{key:f,size:"x-small",color:"primary",variant:"tonal"},{default:u(()=>[w(h(f),1)]),_:2},1024))),128)),s.issues.length?(v(),j("span",Bt,h(s.issues.join(";")),1)):D("",!0)])])]),_:2},1024))),128))]),_:1})):!P.value&&!_.value?(v(),x(jt,{key:4,icon:"mdi-book-open-blank-variant-outline",text:"该日期没有可导出的作业",title:"暂无作业"})):D("",!0)]),g("div",At,[g("div",zt,[g("div",Lt,[Y.value?(v(),x(le,{key:0,indeterminate:""})):I.value?(v(),x(O,{key:1,type:"error",variant:"tonal"},{default:u(()=>[w(h(I.value),1)]),_:1})):M.value?(v(),j("iframe",{key:3,src:M.value,class:"pdf-preview-frame",title:"UAF 导出预览"},null,8,Mt)):(v(),x(O,{key:2,type:"info",variant:"tonal"},{default:u(()=>[...n[11]||(n[11]=[w(" 请选择有效作业以预览 ",-1)])]),_:1}))])]),i(_e,{modelValue:d.value,"onUpdate:modelValue":n[3]||(n[3]=s=>d.value=s),variant:"accordion",class:"mt-3 font-settings-panels"},{default:u(()=>[i(Ue,{value:"settings"},{default:u(()=>[i($e,null,{default:u(()=>[...n[12]||(n[12]=[w(" 导出字体设置 ",-1)])]),_:1}),i(je,null,{default:u(()=>[(v(),j(E,null,R(p,s=>g("div",{key:s.key,class:"mb-3"},[g("div",Ft,[g("span",It,h(s.label),1),i(ht,{modelValue:o.value[s.key].fontSize,"onUpdate:modelValue":f=>o.value[s.key].fontSize=f,min:s.min,max:s.max,step:.5,"hide-details":"",class:"flex-grow-1"},null,8,["modelValue","onUpdate:modelValue","min","max"]),i(Ve,{"model-value":o.value[s.key].fontSize,type:"number",min:s.min,max:s.max,step:"0.5",density:"compact","hide-details":"",variant:"outlined",class:"style-number-field","onUpdate:modelValue":f=>Oe(s.key,f)},null,8,["model-value","min","max","onUpdate:modelValue"])]),g("div",Nt,[n[13]||(n[13]=g("span",{class:"text-caption label-min-width"},"字重",-1)),i(De,{modelValue:o.value[s.key].fontWeight,"onUpdate:modelValue":f=>o.value[s.key].fontWeight=f,items:m,"item-title":"title","item-value":"value",density:"compact","hide-details":"",variant:"outlined",class:"style-weight-select"},null,8,["modelValue","onUpdate:modelValue"])])])),64))]),_:1})]),_:1})]),_:1},8,["modelValue"])])],2)],64)):(v(),j(E,{key:1},[i(wt,{modelValue:U.value,"onUpdate:modelValue":[n[4]||(n[4]=s=>U.value=s),We],accept:"application/pdf,.pdf",clearable:"",label:"选择 UAF PDF","prepend-icon":"mdi-file-pdf-box",disabled:J.value},null,8,["modelValue","disabled"]),T.value?(v(),x(le,{key:0,class:"mb-3",indeterminate:""})):D("",!0),$.value?(v(),x(O,{key:1,class:"mb-3",type:"error",variant:"tonal"},{default:u(()=>[w(h($.value),1)]),_:1})):D("",!0),ae.value.length?(v(),x(O,{key:2,class:"mb-3",type:"warning",variant:"tonal"},{default:u(()=>[w(h(ae.value.join(";")),1)]),_:1})):D("",!0),k.value?(v(),j(E,{key:3},[g("div",Ot," 共 "+h(k.value.rows.length)+" 项作业,分布在 "+h(re.value.length)+" 个日期。 冲突项默认保留现有内容。 ",1),i(_e,{multiple:"",variant:"accordion"},{default:u(()=>[(v(!0),j(E,null,R(re.value,s=>(v(),x(Ue,{key:s.date},{default:u(()=>[i($e,null,{default:u(()=>[w(h(ve(s.date))+" ",1),i(q,{class:"ml-2",size:"small",variant:"tonal"},{default:u(()=>[w(h(s.rows.length)+" 项 ",1)]),_:2},1024)]),_:2},1024),i(je,null,{default:u(()=>[i(he,{lines:"three"},{default:u(()=>[(v(!0),j(E,null,R(s.rows,f=>(v(),x(we,{key:f.id},{append:u(()=>[i(De,{modelValue:f.action,"onUpdate:modelValue":F=>f.action=F,class:"action-select",density:"compact","hide-details":"",items:Ye(f),"item-title":"title","item-value":"value",variant:"outlined"},null,8,["modelValue","onUpdate:modelValue","items"])]),default:u(()=>[i(ke,{class:"d-flex align-center"},{default:u(()=>[w(h(f.assignment.subject)+" ",1),f.conflict?(v(),x(q,{key:0,class:"ml-2",color:"warning",size:"x-small",variant:"tonal"},{default:u(()=>[...n[14]||(n[14]=[w(" 已有同名卡片 ",-1)])]),_:1})):D("",!0)]),_:2},1024),i(be,{class:"content-preview"},{default:u(()=>[w(h(f.assignment.content),1)]),_:2},1024)]),_:2},1024))),128))]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1})],64)):D("",!0)],64))]),_:1}),i(ye),i(lt,null,{default:u(()=>[g("span",Rt,h(Ie.value),1),i(se),i(X,{variant:"text",disabled:J.value,onClick:n[5]||(n[5]=s=>y.value=!1)},{default:u(()=>[...n[15]||(n[15]=[w(" 取消 ",-1)])]),_:1},8,["disabled"]),i(X,{color:"primary",disabled:Fe.value,loading:J.value,"prepend-icon":e.mode==="export"?"mdi-download":"mdi-database-import-outline",onClick:n[6]||(n[6]=s=>e.mode==="export"?Re():Je())},{default:u(()=>[w(h(e.mode==="export"?"导出所选作业":"确认导入"),1)]),_:1},8,["disabled","loading","prepend-icon"])]),_:1})]),_:1})]),_:1},8,["modelValue","fullscreen"]))}},wa=tt(Wt,[["__scopeId","data-v-61facbee"]]);export{wa as default};
|