index.Cw8hht_-.js 8.5 KB

1
  1. import{k as re,U as ue,V as ce,X as de,S as A,T as F,E as f,Y as fe}from"./index.BQUvI64x.js";import{createCrudOptions as pe}from"./crud.DTOga3l3.js";import{A as _e,U as ve,D as me,a as ge}from"./api.D3XWAagR.js";import{h as ye}from"./columnPermission.CSUsVeu9.js";import{a as R,r as V,q as be,aj as i,J as y,o as r,K as t,b as x,S as l,H as ke,u,P as c,Q as b,c as p,R as Ve,a9 as he,M as we}from"./vue.D1BjjNmv.js";import{_ as xe}from"./_plugin-vue_export-helper.DlAUqK2U.js";const Oe={class:"digital-human-container"},Ce={class:"list-area"},De=["src"],Se={key:1},Ne=["src"],Ue={key:1},Be=["src"],Je=["src"],Me={key:1,class:"video-uploader-placeholder"},Ae={class:"dialog-footer"},Fe=R({name:"areas"}),Re=R({...Fe,setup($e){const C="https://backend.qicai321.com",{crudBinding:$,crudRef:z,crudExpose:O,crudOptions:E,resetCrudOptions:T}=re({createCrudOptions:pe}),d=V("add"),m=V(!1),g={name:"",description:"",avatar_url:"",status:1,template_video_url:"",voice_type:"",config:{voice_type:"",style:"professional"}},a=V({...g}),D=V(),S=()=>{d.value="add",a.value={...g},m.value=!0},N=o=>{console.log("编辑行数据:",o),d.value="edit";const e=JSON.parse(JSON.stringify(o));if(typeof e.config=="string")try{e.config=JSON.parse(e.config)}catch(s){console.error("解析config失败:",s),e.config={...g.config}}else e.config||(e.config={...g.config});a.value=e,m.value=!0},j=o=>{console.log("查看行数据:",o),d.value="view";const e=JSON.parse(JSON.stringify(o));if(typeof e.config=="string")try{e.config=JSON.parse(e.config)}catch(s){console.error("解析config失败:",s),e.config={...g.config}}else e.config||(e.config={...g.config});a.value=e,m.value=!0},U=()=>{m.value=!1},L=(o,e)=>{console.log(o),a.value.avatar_url=o.url},q=o=>{const e=o.type.startsWith("image/"),s=o.size/1024/1024<2;return e||f.error("上传头像图片只能是图片格式!"),s||f.error("上传头像图片大小不能超过 2MB!"),e&&s},H=(o,e)=>{console.log(o),a.value.template_video_url=o.url},P=o=>{const e=o.type.startsWith("video/"),s=o.size/1024/1024<50;return e||f.error("请上传视频格式文件!"),s||f.error("上传视频大小不能超过 50MB!"),e&&s},W=async()=>{try{await D.value.validate();const o={...a.value};if(o.config&&typeof o.config=="object"){const e={voice_type:o.config.voice_type||"",style:o.config.style||""};o.voice_type=o.config.voice_type,o.config=JSON.stringify(e)}d.value==="add"?(await _e(o),f.success("添加成功")):(await ve(o),f.success("更新成功")),U(),O.doRefresh()}catch(o){console.error("表单提交错误:",o),f.error("提交失败,请检查表单信息")}},I=o=>{fe.confirm(`确定要删除数字人 "${o.name}" 吗?`,"删除确认",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(async()=>{try{await me(o.id),f.success("删除成功"),O.doRefresh()}catch(e){console.error("删除失败:",e),f.error("删除失败,请稍后重试")}}).catch(()=>{})},G=V([{label:"龙小夏-女",value:"longxiaoxia"},{label:"男声中文",value:"longxiang"}]),K=async()=>{};be(async()=>{var e,s;const o=await ye(ge,E);(s=(e=o.actionbar)==null?void 0:e.buttons)!=null&&s.add&&(o.actionbar.buttons.add.click=()=>{S()}),T(o),O.doRefresh(),K()});const Q=()=>d.value==="add"?"新增数字人":d.value==="edit"?"编辑数字人":"查看数字人",X=[{label:"小明(高级)",value:"xiaoming_voice_premium"},{label:"小红",value:"xiaohong_voice"}],Y=[{label:"专业",value:"professional"},{label:"友好",value:"friendly"},{label:"严肃",value:"serious"}],Z=o=>{const e=X.find(s=>s.value===o);return e?e.label:o},ee=o=>{const e=Y.find(s=>s.value===o);return e?e.label:o};return(o,e)=>{const s=i("el-icon"),k=i("el-button"),oe=i("fs-crud"),_=i("el-descriptions-item"),le=i("el-tag"),te=i("el-descriptions"),B=i("el-input"),v=i("el-form-item"),J=i("el-upload"),ae=i("el-switch"),h=i("el-option"),M=i("el-select"),se=i("el-form"),ne=i("el-dialog"),ie=i("fs-page");return r(),y(ie,null,{default:t(()=>[x("div",Oe,[x("div",Ce,[l(oe,ke({ref_key:"crudRef",ref:z},u($),{onAddDigitalHuman:S,onEditDigitalHuman:N}),{"cell-rowHandle-middle":t(n=>[l(k,{size:"small",type:"text",onClick:w=>j(n.row)},{default:t(()=>[e[6]||(e[6]=c(" 查看")),l(s,null,{default:t(()=>[l(u(ue))]),_:1})]),_:2},1032,["onClick"]),l(k,{size:"small",type:"text",onClick:w=>N(n.row)},{default:t(()=>[e[7]||(e[7]=c(" 编辑")),l(s,null,{default:t(()=>[l(u(ce))]),_:1})]),_:2},1032,["onClick"]),l(k,{size:"small",type:"text",onClick:w=>I(n.row),class:"text-danger"},{default:t(()=>[e[8]||(e[8]=c(" 删除")),l(s,null,{default:t(()=>[l(u(de))]),_:1})]),_:2},1032,["onClick"])]),_:1},16)]),l(ne,{modelValue:m.value,"onUpdate:modelValue":e[5]||(e[5]=n=>m.value=n),title:Q(),width:"500px","close-on-click-modal":!1,"destroy-on-close":!0},{footer:t(()=>[x("div",Ae,[l(k,{onClick:U},{default:t(()=>[c(b(d.value==="view"?"关闭":"取消"),1)]),_:1}),d.value!=="view"?(r(),y(k,{key:0,type:"primary",onClick:W},{default:t(()=>e[10]||(e[10]=[c("提交")])),_:1})):we("",!0)])]),default:t(()=>[d.value==="view"?(r(),y(te,{key:0,column:1,border:""},{default:t(()=>[l(_,{label:"名称"},{default:t(()=>[c(b(a.value.name),1)]),_:1}),l(_,{label:"头像"},{default:t(()=>[a.value.avatar_url?(r(),p("img",{key:0,src:a.value.avatar_url,class:"avatar"},null,8,De)):(r(),p("span",Se,"无头像"))]),_:1}),l(_,{label:"模板视频"},{default:t(()=>[a.value.template_video_url?(r(),p("video",{key:0,src:a.value.template_video_url,class:"video-preview",controls:""},null,8,Ne)):(r(),p("span",Ue,"无视频"))]),_:1}),l(_,{label:"状态"},{default:t(()=>[l(le,{type:a.value.status===1?"success":"info"},{default:t(()=>[c(b(a.value.status===1?"启用":"禁用"),1)]),_:1},8,["type"])]),_:1}),l(_,{label:"语音ID"},{default:t(()=>[c(b(Z(a.value.config.voice_type)),1)]),_:1}),l(_,{label:"风格"},{default:t(()=>[c(b(ee(a.value.config.style)),1)]),_:1}),l(_,{label:"描述"},{default:t(()=>[c(b(a.value.description||"无"),1)]),_:1})]),_:1})):(r(),y(se,{key:1,ref_key:"formRef",ref:D,model:a.value,"label-width":"100px",class:"form-content"},{default:t(()=>[l(v,{label:"名称",prop:"name",rules:[{required:!0,message:"请输入名称",trigger:"blur"}]},{default:t(()=>[l(B,{modelValue:a.value.name,"onUpdate:modelValue":e[0]||(e[0]=n=>a.value.name=n),placeholder:"请输入数字人名称"},null,8,["modelValue"])]),_:1}),l(v,{label:"头像",prop:"avatar_url",rules:[{required:!0,message:"请上传头像",trigger:"change"}]},{default:t(()=>[l(J,{class:"avatar-uploader",action:`${u(C)}/api/system/admin_upload/`,headers:{Authorization:`JWT ${u(A).get("token")||""}`},data:{tenant_id:"1"},"show-file-list":!1,"on-success":L,"before-upload":q},{default:t(()=>[a.value.avatar_url?(r(),p("img",{key:0,src:a.value.avatar_url,class:"avatar"},null,8,Be)):(r(),y(s,{key:1,class:"avatar-uploader-icon"},{default:t(()=>[l(u(F))]),_:1}))]),_:1},8,["action","headers"])]),_:1}),l(v,{label:"模板视频",prop:"template_video_url"},{default:t(()=>[l(J,{class:"video-uploader",action:`${u(C)}/api/system/admin_upload/`,headers:{Authorization:`JWT ${u(A).get("token")||""}`},data:{tenant_id:"1"},"show-file-list":!1,"on-success":H,"before-upload":P,accept:"video/*"},{default:t(()=>[a.value.template_video_url?(r(),p("video",{key:0,src:a.value.template_video_url,class:"video-preview",controls:""},null,8,Je)):(r(),p("div",Me,[l(s,{class:"video-uploader-icon"},{default:t(()=>[l(u(F))]),_:1}),e[9]||(e[9]=x("div",null,"点击上传视频",-1))]))]),_:1},8,["action","headers"])]),_:1}),l(v,{label:"状态",prop:"status"},{default:t(()=>[l(ae,{modelValue:a.value.status,"onUpdate:modelValue":e[1]||(e[1]=n=>a.value.status=n),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1}),l(v,{label:"语音ID",prop:"config.voice_type"},{default:t(()=>[l(M,{modelValue:a.value.config.voice_type,"onUpdate:modelValue":e[2]||(e[2]=n=>a.value.config.voice_type=n),placeholder:"请选择语音"},{default:t(()=>[(r(!0),p(Ve,null,he(G.value,(n,w)=>(r(),y(h,{key:w,label:n.label,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(v,{label:"风格",prop:"config.style"},{default:t(()=>[l(M,{modelValue:a.value.config.style,"onUpdate:modelValue":e[3]||(e[3]=n=>a.value.config.style=n),placeholder:"请选择风格"},{default:t(()=>[l(h,{label:"专业",value:"professional"}),l(h,{label:"友好",value:"friendly"}),l(h,{label:"严肃",value:"serious"})]),_:1},8,["modelValue"])]),_:1}),l(v,{label:"描述",prop:"description"},{default:t(()=>[l(B,{modelValue:a.value.description,"onUpdate:modelValue":e[4]||(e[4]=n=>a.value.description=n),type:"textarea",placeholder:"请输入描述"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]))]),_:1},8,["modelValue","title"])])]),_:1})}}}),He=xe(Re,[["__scopeId","data-v-5d4dd81f"]]);export{He as default};