"use strict";const e=require("../../common/vendor.js"),o=require("../../config/api.js"),t=require("../../utils/payment.js"),i={components:{PaymentModal:()=>"../../components/PaymentModal.js"},data:()=>({API_BASE:o.API_BASE,photoFile:null,photoPreview:"",modelOptions:[{value:"veo",label:"Veo",hint:"需要音色,生成说话人视频",disabled:!1,maintenanceMsg:""},{value:"volcengine",label:"火山引擎",hint:"需要音色,生成说话人视频",disabled:!1,maintenanceMsg:""}],selectedModel:"veo",selectedModelName:"Veo",modelHint:"需要音色,生成说话人视频",voices:[],voiceTypeOptions:[{value:"CLONE",label:"克隆音色"},{value:"OFFICIAL",label:"官方音色(Flash)"}],selectedVoiceType:"CLONE",selectedVoiceTypeLabel:"克隆音色",selectedVoiceId:"",selectedVoiceName:"",selectedDialect:"",selectedLanguageHint:"",selectedLanguageHintLabel:"",selectedSupportsDialect:!1,selectedSupportsLanguageHints:!1,languageHintOptions:["中文(zh)","英文(en)","法语(fr)","德语(de)","日语(ja)","韩语(ko)","俄语(ru)"],dialectOptions:["广东话","东北话","甘肃话","贵州话","河南话","湖北话","江西话","闽南话","宁夏话","山西话","陕西话","山东话","上海话","四川话","天津话","云南话"],videoTitle:"",text:"",showHelpModal:!1,loading:!1,loadingText:"",progress:[],videoUrl:"",audioUrl:"",localVideoPath:"",localAudioPath:"",isPlaying:!1,videoRetried:!1,paymentModalData:{show:!1,serviceType:"",serviceName:"",serviceDesc:"",price:0,orderNo:"",paymentTips:"点击确认支付后将开始生成视频"},_paymentResolve:null,_paymentReject:null,_paymentOnSuccess:null,_paymentOnFailed:null}),computed:{displayVoices(){const e=(this.voices||[]).filter((e=>e&&(e.voice_type||"CLONE")===this.selectedVoiceType));if("OFFICIAL"!==(this.selectedVoiceType||"CLONE"))return e;const o={"湾区大叔":"台湾","台湾小何":"台湾","双节棍小哥":"台湾","广州德哥":"广州","浩宇小哥":"大陆"};return e.map((e=>{const t=e&&e.voice_name?String(e.voice_name):"",i=t&&o[t]?o[t]:"";return i?{...e,voice_name:`${i}-${t}`}:e}))},canGenerate(){const e=this.modelOptions.find((e=>e.value===this.selectedModel));return(!e||!e.disabled)&&(this.photoFile&&this.videoTitle&&this.text&&this.selectedVoiceId)}},onLoad(){this.loadVoices(),this.loadModelStatus()},methods:{onVoiceTypeChange(e){const o=this.voiceTypeOptions[e.detail.value];this.selectedVoiceType=o?o.value:"CLONE",this.selectedVoiceTypeLabel=o?o.label:"克隆音色",this.selectedVoiceId="",this.selectedVoiceName="",this.selectedDialect="",this.selectedLanguageHint="",this.selectedLanguageHintLabel="",this.selectedSupportsDialect=!1,this.selectedSupportsLanguageHints=!1},showVoiceHelp(){this.showHelpModal=!0},goToUpload(){this.showHelpModal=!1,e.index.navigateTo({url:"/pages/upload-audio/upload-audio"})},getCurrentModelMaintenanceMsg(){const e=this.modelOptions.find((e=>e.value===this.selectedModel));return e&&e.disabled?e.maintenanceMsg:""},onModelChange(e){const o=e.detail.value,t=this.modelOptions[o];this.selectedModel=t.value,this.selectedModelName=t.label,this.modelHint=t.hint,console.log("[Revival] 选择模型:",this.selectedModel)},choosePhoto(){e.index.chooseImage({count:1,sizeType:["compressed"],sourceType:["album","camera"],success:e=>{this.photoFile={path:e.tempFilePaths[0],name:"photo.jpg"},this.photoPreview=e.tempFilePaths[0]},fail:o=>{e.index.showToast({title:"选择照片失败",icon:"none"})}})},chooseAudio(){},chooseAudioFileFromSystem(){},copyContentUriToLocalForAudio(e,o){},async startRecordAudio(){},loadModelStatus(){console.log("[Revival] 开始加载模型状态..."),e.index.request({url:`${this.API_BASE}/api/system/model-status`,method:"GET",success:e=>{if(console.log("[Revival] 模型状态响应:",e),200===e.statusCode&&e.data&&e.data.success){const o=e.data.data;if("true"===o.veo_disabled){const e=this.modelOptions.find((e=>"veo"===e.value));e&&(e.disabled=!0,e.maintenanceMsg=o.veo_message||"官方接口参数更新,正在处理中,暂不可用")}if("true"===o.volcengine_disabled){const e=this.modelOptions.find((e=>"volcengine"===e.value));e&&(e.disabled=!0,e.maintenanceMsg=o.volcengine_message||"官方接口参数更新,正在处理中,暂不可用")}console.log("[Revival] 模型状态已更新:",this.modelOptions)}},fail:e=>{console.error("[Revival] 加载模型状态失败:",e)}})},loadVoices(){console.log("[Revival] 开始加载音色列表..."),console.log("[Revival] API地址:",`${this.API_BASE}/api/voice/list`);const o=e.index.getStorageSync("userId")||"",t=e.index.getStorageSync("token")||"";console.log("[Revival] 用户ID:",o),e.index.request({url:`${this.API_BASE}/api/voice/list`,method:"GET",header:{"X-User-Id":o,Authorization:t?`Bearer ${t}`:""},success:o=>{if(console.log("[Revival] API响应状态码:",o.statusCode),console.log("[Revival] API响应数据:",o.data),200===o.statusCode)if(o.data&&o.data.voices){const t=["Cherry","Kai","Mochi","Bunny"];this.voices=(o.data.voices||[]).filter((e=>!(e&&e.voice&&t.includes(e.voice)))),console.log("[Revival] 音色列表:",this.voices),console.log("[Revival] 音色数量:",this.voices.length),this.voices.length>0?(this.selectedVoiceId=this.voices[0].voice,this.selectedVoiceName=this.voices[0].voice_name||this.voices[0].voice,this.selectedDialect="",console.log("[Revival] 默认选中音色:",this.selectedVoiceId)):(console.log("[Revival] 音色列表为空"),e.index.showToast({title:"暂无可用音色,请先创建",icon:"none"}))}else console.error("[Revival] 响应数据格式错误:",o.data),this.voices=[];else console.error("[Revival] 请求失败,状态码:",o.statusCode)},fail:o=>{console.error("[Revival] 加载音色列表失败:",o),e.index.showToast({title:"加载音色列表失败",icon:"none"})}})},onVoiceChange(e){const o=this.displayVoices[e.detail.value];this.selectedVoiceId=o.voice,this.selectedVoiceName=o.voice_name||o.voice,this.selectedVoiceType=o.voice_type||this.selectedVoiceType||"CLONE",this.selectedVoiceTypeLabel="OFFICIAL"===this.selectedVoiceType?"官方音色(Flash)":"克隆音色",this.selectedDialect="",this.selectedLanguageHint="",this.selectedLanguageHintLabel="",this.selectedSupportsDialect=!!o.supportsDialect,this.selectedSupportsLanguageHints=!!o.supportsLanguageHints,"OFFICIAL"===(this.selectedVoiceType||"CLONE")&&(this.selectedDialect="",this.selectedLanguageHint="",this.selectedLanguageHintLabel="",this.selectedSupportsDialect=!1,this.selectedSupportsLanguageHints=!1)},onDialectChange(e){this.selectedDialect=this.dialectOptions[e.detail.value]||""},onLanguageHintChange(e){const o=this.languageHintOptions[e.detail.value]||"";this.selectedLanguageHintLabel=o;const t=o.match(/\(([^)]+)\)/);this.selectedLanguageHint=t&&t[1]?t[1]:""},async handleGenerate(){const i=e.index.getStorageSync("userId")||"",s=e.index.getStorageSync("token")||"";if(!i)return void e.index.showModal({title:"提示",content:"请先登录后再继续",confirmText:"去登录",cancelText:"取消",success:o=>{o.confirm&&e.index.navigateTo({url:"/pages/login/login"})}});const a="volcengine"===this.selectedModel?"VOLCENGINE_VIDEO":"PHOTO_REVIVAL",n="volcengine"===this.selectedModel?t.SERVICE_TYPES.VOLCENGINE_VIDEO.type:t.SERVICE_TYPES.PHOTO_REVIVAL.type;let l=null;try{l=await new Promise(((t,n)=>{e.index.request({url:`${o.API_BASE}/api/pay/usage-preview?serviceType=${a}`,method:"GET",header:{"X-User-Id":i,Authorization:s?`Bearer ${s}`:""},success:e=>{200===e.statusCode&&e.data&&e.data.success?t(e.data):n(new Error(e.data&&e.data.message?e.data.message:"预检失败: HTTP "+e.statusCode))},fail:e=>n(new Error(e&&e.errMsg?e.errMsg:"预检失败"))})}))}catch(d){return void e.index.showModal({title:"检查次数失败",content:d&&d.message?d.message:"检查剩余次数失败,请稍后重试",showCancel:!1,confirmText:"我知道了"})}(l&&"number"==typeof l.remainingTotalCount?l.remainingTotalCount:0)<=0?t.showPaymentModal(this,n,(()=>{this.executeGenerate()}),(e=>{console.error("[Payment] 支付失败:",e)})):this.executeGenerate()},async executeGenerate(){this.loading=!0,this.progress=[],this.videoUrl="",this.audioUrl="";try{"volcengine"===this.selectedModel?await this.generateWithVolcengine():await this.generateWithExistingVoice()}catch(o){o.message.includes("响应超时")||o.message.includes("历史记录")?(this.addProgress("⚠️ "+o.message,"warning"),e.index.showModal({title:"提示",content:o.message,showCancel:!0,cancelText:"知道了",confirmText:"查看历史",success:o=>{o.confirm&&e.index.navigateTo({url:"/pages/revival/revival-history"})}})):(this.addProgress("生成失败: "+o.message,"error"),e.index.showModal({title:"生成失败",content:(o.message||"生成失败")+"\n\n你可以点击“重试”再次生成。\n若已支付但多次生成失败,请联系客服补发(提供订单号/支付时间截图)。",confirmText:"重试",cancelText:"我知道了",success:e=>{e.confirm&&this.executeGenerate()}}))}finally{this.loading=!1}},async generateWithVolcengine(){return new Promise(((o,i)=>{this.addProgress("📤 正在上传照片...","loading"),e.index.showModal({title:"🎬 视频生成中",content:"火山引擎视频生成通常需要1-3分钟。\n\n您可以最小化APP做其他事情,生成完成后会弹出提示。\n\n请保持网络连接稳定。",showCancel:!1,confirmText:"我知道了"}),setTimeout((()=>{this.addProgress("🎬 正在生成视频(通常1-3分钟)...","loading")}),2e3);const s=e.index.getStorageSync("userId")||"",a=e.index.getStorageSync("token")||"";console.log("[Revival-Volcengine] 准备上传照片:",this.photoFile),console.log("[Revival-Volcengine] 用户ID:",s),console.log("[Revival-Volcengine] API地址:",`${this.API_BASE}/api/photo-revival/volcengine-video`),e.index.uploadFile({url:`${this.API_BASE}/api/photo-revival/volcengine-video`,filePath:this.photoFile.path,name:"photo",timeout:36e5,header:{"X-User-Id":s,Authorization:a?`Bearer ${a}`:""},formData:(()=>{const e={voiceId:this.selectedVoiceId,voiceType:this.selectedVoiceType,text:this.text,duration:8,name:this.videoTitle};return this.selectedSupportsDialect&&this.selectedDialect&&(e.dialect=this.selectedDialect),this.selectedSupportsLanguageHints&&this.selectedLanguageHint&&(e.languageHints=this.selectedLanguageHint),e})(),success:s=>{console.log("[Revival-Volcengine] 上传响应:",s);let a=null;try{a=JSON.parse(s.data)}catch(l){a=null}if(402===s.statusCode)return console.warn("[Revival-Volcengine] HTTP 402:次数不足,需要付费"),this.addProgress("⚠️ 次数不足,请先付费","warning"),e.index.showModal({title:"需要付费",content:a&&a.message?a.message:"次数不足,请先完成支付后再生成",confirmText:"去支付",cancelText:"取消",success:o=>{o.confirm&&t.showPaymentModal(this,t.SERVICE_TYPES.PHOTO_REVIVAL.type,(()=>{e.index.showToast({title:"支付成功,请重新点击生成",icon:"none"})}),(()=>{}))}}),void i(new Error(a&&a.message?a.message:"次数不足,请先付费"));if(504===s.statusCode)return console.warn("[Revival-Volcengine] HTTP 504:请求超时,但后端可能仍在生成中"),setTimeout((()=>{e.index.showModal({title:"⏰ 响应超时",content:"网络响应超时(HTTP 504),但视频可能仍在后台生成中。\n\n是否立即查看历史记录?",confirmText:"查看历史",cancelText:"稍后查看",success:o=>{o.confirm&&e.index.navigateTo({url:"/pages/revival/revival-history"})}})}),800),this.addProgress("⏳ 网络响应超时(HTTP 504),视频可能仍在后台生成中,请稍后到历史记录查看","loading"),void o();if(200===s.statusCode){if(a&&"success"===a.status)return this.addProgress("✅ 视频生成完成","done"),this.videoRetried=!1,e.index.showToast({title:"生成成功!",icon:"success"}),void o();const t=a&&a.message?a.message:"生成失败";return console.error("[Revival-Volcengine] 后端返回错误:",t),void i(new Error(t))}const n=a&&a.message?a.message:"上传失败: HTTP "+s.statusCode;i(new Error(n))},fail:o=>{console.error("[Revival-Volcengine] 上传响应超时:",o),setTimeout((()=>{e.index.showModal({title:"⏰ 响应超时",content:"网络响应超时,但视频可能已经生成成功。\n\n是否立即查看历史记录?",confirmText:"查看历史",cancelText:"稍后查看",success:o=>{o.confirm&&e.index.navigateTo({url:"/pages/revival/revival-history"})}})}),3e3),i(new Error("网络响应超时,视频可能正在生成中,请稍后在历史记录中查看"))}})}))},async generateWithNewVoice(){this.addProgress("正在创建音色...","loading")},generateWithExistingVoice(){return new Promise(((o,t)=>{this.addProgress("⏳ 正在上传照片...","loading"),e.index.showModal({title:"⏳ 视频生成中",content:"视频生成通常需要2-5分钟,高峰期可能需要10-30分钟。\n\n您可以最小化APP做其他事情,生成完成后会弹出提示。\n\n请保持网络连接稳定。",showCancel:!1,confirmText:"我知道了"}),setTimeout((()=>{this.addProgress("🎵 正在合成语音...","loading")}),2e3),setTimeout((()=>{this.addProgress("🎬 正在生成视频(通常2-5分钟,高峰期可能更久)...","loading")}),5e3);const i=e.index.getStorageSync("userId")||"",s=e.index.getStorageSync("token")||"";console.log("[Revival] 准备上传照片:",this.photoFile),console.log("[Revival] 照片路径:",this.photoFile.path),console.log("[Revival] 用户ID:",i),console.log("[Revival] Token:",s?"已设置":"未设置"),console.log("[Revival] API地址:",`${this.API_BASE}/api/photo-revival/revive-quick`),i||(console.warn("[Revival] ⚠️ 警告:用户ID为空,视频可能无法正确保存到数据库"),e.index.showModal({title:"提示",content:"检测到您未登录,视频将无法保存到历史记录。是否继续?",success:e=>{e.confirm||t(new Error("用户取消操作"))}})),e.index.uploadFile({url:`${this.API_BASE}/api/photo-revival/revive-quick`,filePath:this.photoFile.path,name:"photo",timeout:36e5,header:{"X-User-Id":i,Authorization:s?`Bearer ${s}`:""},formData:(()=>{const e={voiceId:this.selectedVoiceId,voiceType:this.selectedVoiceType,text:this.text,name:this.videoTitle,serverUrl:this.API_BASE};return this.selectedSupportsDialect&&this.selectedDialect&&(e.dialect=this.selectedDialect),this.selectedSupportsLanguageHints&&this.selectedLanguageHint&&(e.languageHints=this.selectedLanguageHint),e})(),success:i=>{console.log("[Revival] 上传响应:",i);let s=null;try{s=JSON.parse(i.data)}catch(n){s=null}if(504===i.statusCode)return console.warn("[Revival] HTTP 504:请求超时,但后端可能仍在生成中"),setTimeout((()=>{e.index.showModal({title:"⏰ 响应超时",content:"网络响应超时(HTTP 504),但视频可能仍在后台生成中。\n\n是否立即查看历史记录?",confirmText:"查看历史",cancelText:"稍后查看",success:o=>{o.confirm&&e.index.navigateTo({url:"/pages/revival/revival-history"})}})}),800),this.addProgress("⏳ 网络响应超时(HTTP 504),视频可能仍在后台生成中,请稍后到历史记录查看","loading"),void o();if(200===i.statusCode){if(s&&"success"===s.status)return this.handleResult(s),void o();const e=s&&s.message?s.message:"生成失败";return console.error("[Revival] 后端返回错误:",e),void t(new Error(e))}const a=s&&s.message?s.message:"上传失败: HTTP "+i.statusCode;t(new Error(a))},fail:o=>{console.error("[Revival] 上传响应超时:",o),setTimeout((()=>{e.index.showModal({title:"⏰ 响应超时",content:"网络响应超时,但视频可能已经生成成功。\n\n是否立即查看历史记录?",confirmText:"查看历史",cancelText:"稍后查看",success:o=>{o.confirm&&e.index.navigateTo({url:"/pages/revival/revival-history"})}})}),3e3),t(new Error("网络响应超时,视频可能正在生成中,请稍后在历史记录中查看"))}})}))},async handleResult(o){if("success"!==o.status)throw new Error(o.message||"生成失败");"new"===this.mode&&this.addProgress("✅ 音色创建完成","done"),this.addProgress("✅ 语音合成完成","done"),this.addProgress("✅ 视频生成完成","done"),this.videoUrl=o.videoUrl,this.audioUrl=o.audioUrl,this.videoRetried=!1,this.saveToHistory(o),e.index.showModal({title:"🎉 生成成功!",content:'视频已生成完成!\n\n点击"查看视频"可以立即查看和播放视频。',cancelText:"稍后查看",confirmText:"查看视频",success:e=>{e.confirm&&this.scrollToResult()}}),"new"===this.mode&&this.loadVoices()},togglePlay(){this.isPlaying?this.pausePlayback():this.startPlayback()},startPlayback(){const o=e.index.createVideoContext("resultVideo",this),t=e.index.createInnerAudioContext();t.src=this.audioUrl,o.play(),t.play(),this.isPlaying=!0,this.audioContext=t},pausePlayback(){e.index.createVideoContext("resultVideo",this).pause(),this.audioContext&&this.audioContext.pause(),this.isPlaying=!1},onVideoPlay(){this.isPlaying=!0},onVideoPause(){this.isPlaying=!1,this.audioContext&&this.audioContext.pause()},onVideoEnded(){this.isPlaying=!1,this.audioContext&&this.audioContext.stop()},onVideoLoaded(e){console.log("[Revival] 视频加载成功:",e)},onVideoError(o){if(console.error("[Revival] 视频加载失败:",o),console.error("[Revival] 视频URL:",this.videoUrl),console.error("[Revival] 错误详情:",o.detail),!this.videoRetried)return console.log("[Revival] 尝试重新加载视频..."),this.videoRetried=!0,void setTimeout((()=>{e.index.createVideoContext("resultVideo",this).stop();const o=this.videoUrl;this.videoUrl="",this.$nextTick((()=>{this.videoUrl=o+"?t="+Date.now()}))}),500);e.index.showModal({title:"视频加载失败",content:"无法播放视频,可能是网络或格式问题。\n\n您可以尝试:\n1. 检查网络连接\n2. 返回后重新进入播放\n3. 重新生成视频或稍后再试",showCancel:!1})},onVideoWaiting(e){console.log("[Revival] 视频缓冲中...",e)},onVideoTimeUpdate(e){},scrollToResult(){this.$nextTick((()=>{e.index.createSelectorQuery().in(this).select(".result-section").boundingClientRect((o=>{o&&e.index.pageScrollTo({scrollTop:o.top-100,duration:300})})).exec()}))},addProgress(e,o){this.progress.push({text:e,status:o}),this.loadingText=e},goToHistory(){e.index.navigateTo({url:"/pages/revival/revival-history"})},viewVideo(){if(console.log("[Revival] 准备播放视频"),console.log("[Revival] videoUrl:",this.videoUrl),console.log("[Revival] audioUrl:",this.audioUrl),!this.videoUrl)return void e.index.showToast({title:"视频地址不存在",icon:"none"});let o=`/pages/video-player/video-player?url=${encodeURIComponent(this.videoUrl)}&title=${encodeURIComponent("复活视频")}`;o+="&audioInVideo=1",console.log("[Revival] 跳转播放页:",o),e.index.navigateTo({url:o,success:()=>{console.log("[Revival] 跳转播放页面成功")},fail:o=>{console.error("[Revival] 跳转播放页面失败:",o),e.index.showToast({title:"跳转失败",icon:"none"})}})},handlePaymentClose(){this.paymentModalData.show=!1,this._paymentReject&&this._paymentReject(new Error("用户取消支付"))},async handlePaymentConfirm(e){await t.handlePaymentConfirm(this,e)},manualSaveToHistory(){if(!this.videoUrl)return void e.index.showToast({title:"没有可保存的记录",icon:"none"});const o={photoUrl:this.photoPreview,videoUrl:this.videoUrl,audioUrl:this.audioUrl,voiceId:this.selectedVoiceId};this.saveToHistory(o),e.index.showToast({title:"已保存到历史",icon:"success"})},async downloadVideoToLocal(o){try{console.log("[Revival] 开始下载视频到本地:",o);const t=await new Promise(((t,i)=>{e.index.downloadFile({url:o,success:e=>{200===e.statusCode?(console.log("[Revival] 视频下载成功:",e.tempFilePath),t(e.tempFilePath)):i(new Error("下载失败,状态码: "+e.statusCode))},fail:e=>{console.error("[Revival] 视频下载失败:",e),i(e)}})})),i=await this.saveFilePermanently(t,"video");this.localVideoPath=i,console.log("[Revival] 视频已保存到:",i)}catch(t){console.error("[Revival] 下载视频失败:",t),e.index.showToast({title:"视频下载失败,将使用在线播放",icon:"none"})}},saveFilePermanently:async(o,t)=>new Promise(((i,s)=>{const a=e.index.getFileSystemManager(),n=`${e.index.env.USER_DATA_PATH}/revival_${t}s/`,l=n+`${t}_${Date.now()}.${"video"===t?"mp4":"mp3"}`;a.mkdir({dirPath:n,recursive:!0,success:()=>{a.copyFile({srcPath:o,destPath:l,success:()=>{console.log(`[Revival] ${t}已保存到永久存储:`,l),i(l)},fail:e=>{console.error(`[Revival] 保存${t}失败:`,e),i(o)}})},fail:e=>{console.error("[Revival] 创建目录失败:",e),i(o)}})})),saveToHistory(o){try{console.log("[Revival] 开始保存历史记录"),console.log("[Revival] 结果数据:",o);let t=[];const i=e.index.getStorageSync("generation_history");i&&(t=JSON.parse(i));const s={type:"revival",timestamp:Date.now(),text:this.text,voiceId:"existing"===this.mode?this.selectedVoiceId:o.voiceId||this.selectedVoiceId,photoUrl:this.photoPreview,videoUrl:o.videoUrl,audioUrl:o.audioUrl};console.log("[Revival] 保存记录:",s),t.unshift(s),t.length>100&&(t=t.slice(0,100)),e.index.setStorageSync("generation_history",JSON.stringify(t)),console.log("[Revival] 已保存到历史记录,当前共",t.length,"条")}catch(t){console.error("[Revival] 保存历史记录失败:",t)}},downloadVideo(){e.index.showLoading({title:"正在保存..."}),e.index.downloadFile({url:this.videoUrl,success:o=>{200===o.statusCode?e.index.saveVideoToPhotosAlbum({filePath:o.tempFilePath,success:()=>{e.index.hideLoading(),e.index.showToast({title:"保存成功",icon:"success"})},fail:o=>{e.index.hideLoading(),e.index.showToast({title:"保存失败: "+o.errMsg,icon:"none"})}}):(e.index.hideLoading(),e.index.showToast({title:"下载失败",icon:"none"}))},fail:o=>{e.index.hideLoading(),e.index.showToast({title:"下载失败: "+o.errMsg,icon:"none"})}})},startVideoCall(){if(!this.videoUrl||!this.selectedVoiceId)return void e.index.showToast({title:"缺少必要信息",icon:"none"});const o="new"===this.mode?this.voiceName:"对方";e.index.navigateTo({url:`/pages/video-call/video-call?idleVideo=${encodeURIComponent(this.videoUrl)}&talkingVideo=${encodeURIComponent(this.videoUrl)}&voiceId=${this.selectedVoiceId}&callerName=${encodeURIComponent(o)}`})}}};if(!Array){e.resolveComponent("PaymentModal")()}const s=e._export_sfc(i,[["render",function(o,t,i,s,a,n){return e.e({a:e.o(((...e)=>n.goToHistory&&n.goToHistory(...e))),b:a.showHelpModal},a.showHelpModal?{c:e.o((e=>a.showHelpModal=!1)),d:`${a.API_BASE}/static/1.jpg`,e:`${a.API_BASE}/static/2.jpg`,f:e.o((e=>a.showHelpModal=!1)),g:e.o(((...e)=>n.goToUpload&&n.goToUpload(...e))),h:e.o((()=>{})),i:e.o((e=>a.showHelpModal=!1))}:{},{j:a.photoPreview,k:a.photoPreview,l:!a.photoPreview,m:e.o(((...e)=>n.choosePhoto&&n.choosePhoto(...e))),n:a.videoTitle,o:e.o((e=>a.videoTitle=e.detail.value)),p:e.t(a.videoTitle.length),q:e.t(a.selectedModelName||"请选择模型"),r:a.modelOptions,s:e.o(((...e)=>n.onModelChange&&n.onModelChange(...e))),t:n.getCurrentModelMaintenanceMsg()},n.getCurrentModelMaintenanceMsg()?{v:e.t(n.getCurrentModelMaintenanceMsg())}:{w:e.t(a.modelHint)},{x:e.o(((...e)=>n.showVoiceHelp&&n.showVoiceHelp(...e))),y:e.t(a.selectedVoiceTypeLabel),z:a.voiceTypeOptions,A:e.o(((...e)=>n.onVoiceTypeChange&&n.onVoiceTypeChange(...e))),B:e.t(a.selectedVoiceName||"请选择音色"),C:n.displayVoices,D:e.o(((...e)=>n.onVoiceChange&&n.onVoiceChange(...e))),E:a.selectedSupportsDialect&&"OFFICIAL"!==(a.selectedVoiceType||"CLONE")},a.selectedSupportsDialect&&"OFFICIAL"!==(a.selectedVoiceType||"CLONE")?{F:e.t(a.selectedDialect||"请选择方言(可选)"),G:a.dialectOptions,H:e.o(((...e)=>n.onDialectChange&&n.onDialectChange(...e)))}:{},{I:a.selectedSupportsLanguageHints&&"OFFICIAL"!==(a.selectedVoiceType||"CLONE")},a.selectedSupportsLanguageHints&&"OFFICIAL"!==(a.selectedVoiceType||"CLONE")?{J:e.t(a.selectedLanguageHintLabel||"请选择语言(可选)"),K:a.languageHintOptions,L:e.o(((...e)=>n.onLanguageHintChange&&n.onLanguageHintChange(...e)))}:{},{M:a.text,N:e.o((e=>a.text=e.detail.value)),O:e.t(a.text.length),P:a.loading},a.loading?{Q:e.t(a.loadingText)}:{},{R:a.loading||!n.canGenerate,S:e.o(((...e)=>n.handleGenerate&&n.handleGenerate(...e))),T:a.progress.length>0},a.progress.length>0?{U:e.f(a.progress,((o,t,i)=>({a:e.t("done"===o.status?"✅":"error"===o.status?"❌":"⏳"),b:e.n(o.status),c:e.t(o.text),d:t})))}:{},{V:a.videoUrl},a.videoUrl?{W:a.videoUrl,X:a.photoPreview,Y:e.o(((...e)=>n.onVideoPlay&&n.onVideoPlay(...e))),Z:e.o(((...e)=>n.onVideoPause&&n.onVideoPause(...e))),aa:e.o(((...e)=>n.onVideoEnded&&n.onVideoEnded(...e))),ab:e.o(((...e)=>n.onVideoError&&n.onVideoError(...e))),ac:e.o(((...e)=>n.onVideoLoaded&&n.onVideoLoaded(...e))),ad:e.o(((...e)=>n.onVideoWaiting&&n.onVideoWaiting(...e))),ae:e.o(((...e)=>n.onVideoTimeUpdate&&n.onVideoTimeUpdate(...e))),af:a.audioUrl,ag:e.o(((...e)=>n.viewVideo&&n.viewVideo(...e))),ah:e.o(((...e)=>n.downloadVideo&&n.downloadVideo(...e)))}:{},{ai:e.sr("paymentModal","829992d9-0"),aj:e.o(n.handlePaymentClose),ak:e.o(n.handlePaymentConfirm),al:e.p({show:a.paymentModalData.show,serviceType:a.paymentModalData.serviceType,serviceName:a.paymentModalData.serviceName,serviceDesc:a.paymentModalData.serviceDesc,price:a.paymentModalData.price,orderNo:a.paymentModalData.orderNo,paymentTips:a.paymentModalData.paymentTips})})}],["__scopeId","data-v-829992d9"]]);wx.createPage(s);