1 |
- import{k as Ye,S as L,h as Q,Y as Xe,Z as et,ab as tt,ac as ot,E as i,a1 as fe,a9 as lt}from"./index.DfEx8z43.js";import{a as ge,aH as at,r,f as ve,q as nt,Z as st,aj as d,at as it,J as q,o as m,K as a,S as l,b as u,H as rt,u as _,c as C,R as te,M as j,P as g,Q as P,a9 as _e,L as ut}from"./vue.YrNK8sx4.js";import{createCrudOptions as dt}from"./crud.sAfiQVlD.js";import ct from"./index.Dj1Etq9n.js";import mt from"./index.Dxw3_aki.js";import{c as pt,d as ft,e as vt,b as _t,f as gt,a as yt}from"./api.CsYviAAy.js";import{_ as wt}from"./_plugin-vue_export-helper.DlAUqK2U.js";const bt={class:"document-box document-left-box"},ht={class:"document-box document-right-box"},Dt={key:0,class:"uploaded-file-info mt-2"},qt={class:"flex items-center justify-between"},Ct={class:"flex items-center"},Vt={class:"flex items-center"},kt={class:"text-gray-500 text-sm mr-4"},xt={key:1,class:"flex items-center justify-between"},zt={key:0,class:"video-preview"},Ut=["src"],St={key:2,class:"file-info"},Ft={class:"file-size"},Tt={class:"dialog-footer"},Rt={class:"dialog-footer"},Pt={class:"question-selection-container"},Et={class:"question-search"},Bt={class:"search-row"},Lt={class:"question-table-container"},Qt={class:"pagination-container"},jt={class:"dialog-footer"},Mt=ge({name:"documentList"}),Ot=ge({...Mt,setup(Nt){const{crudBinding:ye,crudRef:w,crudExpose:b}=Ye({createCrudOptions:dt});at();const V=r(null),M=r([]),oe=r([]),x=r(!1),O=r({}),le=r(null),h=r(""),we=r(!1),be=r({id:0,name:"",doc_type:"",category:"",project:"",version:"",file_type:"",file_size:0,status:!0,doc_desc:"",update_datetime:"",file_path:"",file:""});r(null);const p=r({url:"",name:"",size:0,file_type:""}),ae=r({url:"",name:"",size:0,file_type:""}),z=r(!1),y=r(null);r("");const N=r(null),f=r({videoUrl:"",subtitleContent:""}),he={videoUrl:[{required:!0,message:"请上传数字人视频",trigger:"change"}]},U=r(!1),S=r({sequence_number:0}),De={sequence_number:[{required:!0,message:"请输入排序值",trigger:"blur"},{type:"number",message:"排序值必须为数字",trigger:"blur"}]},$=r(null),F=r(!1),c=r({position:"",questions:[],sequence:"0"}),I=r([]),A=r([]);ve(()=>c.value.questions.map(t=>{const e=A.value.find(o=>o.value===t);return e||{value:t,label:`问题 ${t}`,chinese_explanation:"",question_form_name:"",category_id:""}}));const G=r(!1),v=r({currentPage:1,pageSize:10,total:0}),J=r([]),E=r(""),B=async()=>{try{G.value=!0;const t={page:v.value.currentPage,limit:v.value.pageSize,tenant_id:1,keyword:K.value};E.value&&(t.category_id=E.value);const e=await yt(t);e&&e.code===2e3&&e.data?(A.value=e.data.items.map(o=>({value:o.id.toString(),label:o.question,chinese_explanation:o.scoring_reference||"暂无释义",question_form_name:o.question_form_name||"暂无问题类型",category_id:o.category||"暂无分类"})),v.value.total=e.data.total,J.value.length===0&&qe()):i.error("获取问题列表失败")}catch(t){console.error("加载问题选项失败:",t),i.error("加载问题选项失败")}finally{G.value=!1}},qe=async()=>{try{const t=await fetch(Q()+"api/system/question_category/list?tenant_id=1",{method:"GET",headers:{Authorization:"JWT "+L.get("token"),"Content-Type":"application/json"}});if(!t.ok)throw new Error("获取问题分类列表失败");const e=await t.json();e&&e.code===2e3&&e.data.items&&(J.value=e.data.items.map(o=>({value:o.id.toString(),label:o.name})))}catch(t){console.error("加载问题分类选项失败:",t)}},ne=()=>{v.value.currentPage=1,B()},Ce=ve(()=>A.value),Ve=t=>{c.value.questions=t.map(e=>e.value)},ke=t=>{v.value.pageSize=t,B()},xe=t=>{v.value.currentPage=t,B()},se=()=>{ze(),B(),F.value=!0},ze=async()=>{try{const t=await fetch(Q()+"api/system/job/list?tenant_id=1",{method:"GET",headers:{Authorization:"JWT "+L.get("token"),"Content-Type":"application/json"}});if(!t.ok)throw new Error("获取职位列表失败");const e=await t.json();e&&e.code===2e3&&e.data?I.value=e.data.map(o=>({value:o.id.toString(),label:o.title,description:o.description||""})):i.error("获取职位列表失败")}catch(t){console.error("加载职位选项失败:",t),i.error("加载职位选项失败")}},Ue=t=>{if(!t)return"";const e=I.value.find(o=>o.value===t.toString());return e?e.label:t.toString()},Se=async()=>{try{if(!c.value.position){i.warning("请选择职位");return}if(c.value.questions.length===0){i.warning("请选择至少一个问题");return}const t=Ue(c.value.position),e={position_id:parseInt(c.value.position),question_id:{question_id:c.value.questions.map(s=>parseInt(s))},duration:parseInt(c.value.sequence)||60,tenant_id:1};console.log("提交的数据:",e);const o=await pt(e);o&&o.code===2e3?(i.success(`${t}职位问题保存成功`),F.value=!1,c.value={position:"",questions:[],sequence:"0"},b.doRefresh()):i.error((o==null?void 0:o.msg)||"保存失败")}catch(t){console.error("保存职位问题失败:",t),i.error("保存失败,请重试")}},W=()=>{ft({}).then(t=>{console.log("ret",t);const e=t.data;M.value=e})},Fe=t=>{console.log("record",t),h.value=(t==null?void 0:t.id)||"",V.value=null;const e={form:{job_id:h.value}};b.doSearch(e)},Te=(t,e)=>{var o,s,T,D;if(t==="update"&&e){const H=((D=(T=(s=(o=le.value)==null?void 0:o.treeRef)==null?void 0:s.currentNode)==null?void 0:T.parent)==null?void 0:D.data)||{};oe.value=[H],O.value=e}x.value=!0},ie=t=>{t==="submit"&&W(),x.value=!1,O.value={}},Re=(t,e)=>{fe.confirm("您确认删除该文档分类吗?","温馨提示",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning"}).then(async()=>{const o=await vt(t);e(),(o==null?void 0:o.code)===2e3&&(lt(o.msg),W())})},Pe=(t,e,o)=>{if(!t||!t.data){console.error("Upload response is invalid:",t);return}const s={name:e.name,file_path:t.data.bucket_url,file_type:t.data.file_type,file_size:e.size,doc_type:o.form.doc_type||"",category:h.value,status:!0,doc_desc:"",version:"",file:t.data.bucket_url};if(o.form)Object.assign(o.form,s);else{console.error("Form reference is not available");return}V.value=s,b.doRefresh()},Ee=t=>{var e;if(V.value=null,(e=w.value)!=null&&e.form){const o=w.value.form;o.name="",o.file_path="",o.file_type="",o.file_size="",o.doc_type="",o.category="",o.doc_desc="",o.version="",o.file="",t.value=""}},re=t=>{if(t===0)return"0 B";const e=1024,o=["B","KB","MB","GB","TB"],s=Math.floor(Math.log(t)/Math.log(e));return parseFloat((t/Math.pow(e,s)).toFixed(2))+" "+o[s]},Be=t=>t?["pdf","doc","docx","xls","xlsx","ppt","pptx","jpg","jpeg","png","gif","bmp","webp","svg"].includes(t.toLowerCase()):!1,Le=t=>{if(!t||!t.file){fe.alert("文件链接不存在","预览失败",{type:"error"});return}const e=t.file_type||"",o=t.file,s=`/#/preview?url=${encodeURIComponent(o)}&type=${e}`;window.open(s,"_blank")},ue=async t=>{const e=t.detail||t;try{be.value=e,we.value=!0}catch{i.error("获取文档详情失败")}},Qe=t=>{const e=t.type.startsWith("video/"),o=t.size/1024/1024<500;return e?o?!0:(i.error("视频大小不能超过 500MB!"),!1):(i.error("请上传视频文件!"),!1)},je=(t,e)=>{if(console.log("response",t),console.log("file",e),t&&t.url)p.value={url:t.url,name:e.name||t.filename||"",size:e.size||0,file_type:e.type||t.mime_type||"video/mp4"},f.value.videoUrl=t.url,i.success("视频上传成功");else if(t&&t.data&&t.data.url)p.value={url:t.data.url,name:e.name||t.data.filename||"",size:e.size||0,file_type:e.type||t.data.mime_type||"video/mp4"},f.value.videoUrl=t.data.url,i.success("视频上传成功");else try{const o=t.url||t.response&&t.response.url||t[0]&&t[0].url||t.data&&t.data.bucket_url;if(o)p.value={url:o,name:e.name||t.filename||t.original_filename||"",size:e.size||t.size||0,file_type:e.type||t.mime_type||"video/mp4"},f.value.videoUrl=o,i.success("视频上传成功");else throw new Error("无法从响应中获取URL")}catch(o){console.error("处理上传响应时出错:",o),i.error("视频上传成功,但无法解析响应数据")}},Me=()=>{i.error("上传失败,请重试")},de=t=>{const e=t.detail;e&&(y.value=e,z.value=!0,p.value={url:"",name:"",size:0,file_type:""},ae.value={url:"",name:"",size:0,file_type:""},f.value={videoUrl:"",subtitleContent:""})},Oe=()=>{N.value&&N.value.validate(async t=>{if(t)try{if(!y.value||!y.value.id){i.error("当前选中的题目信息无效");return}if(!f.value.videoUrl&&!p.value.url){i.warning("请先上传数字人视频");return}const e={question_id:y.value.question_id,video_url:f.value.videoUrl||p.value.url,digital_human_video_subtitle:f.value.subtitleContent,tenant_id:1};console.log("提交的数据:",e);const o=await _t(e);o&&o.code===2e3?(i.success("数字人视频和字幕信息保存成功"),z.value=!1,p.value={url:"",name:"",size:0,file_type:""},ae.value={url:"",name:"",size:0,file_type:""},f.value={videoUrl:"",subtitleContent:""},b.doRefresh()):i.error((o==null?void 0:o.msg)||"保存失败")}catch(e){console.error("保存视频和字幕信息时出错:",e),i.error("保存失败,请重试")}else return i.warning("请完成必填项"),!1})},ce=t=>{const e=t.detail;e&&(y.value=e,S.value.sequence_number=e.sequence_number||0,U.value=!0)},Ne=()=>{$.value&&$.value.validate(async t=>{if(t)try{if(!y.value||!y.value.question_id){i.error("当前选中的题目信息无效");return}const e=h.value;if(!e){i.error("未选择职位分类");return}const o={position_id:e,questions:[{question_id:y.value.question_id,sequence_number:S.value.sequence_number}],tenant_id:1};console.log("提交的排序数据:",o);const s=await gt(o);s&&s.code===2e3?(i.success("排序修改成功"),U.value=!1,b.doRefresh()):i.error((s==null?void 0:s.msg)||"保存失败")}catch(e){console.error("保存排序信息时出错:",e),i.error("保存失败,请重试")}else return i.warning("请输入有效的排序值"),!1})};nt(()=>{W(),b.doRefresh(),setTimeout(()=>{w.value&&(w.value.searchForm||(w.value.searchForm={}),h.value&&(w.value.searchForm.category=h.value,b.doSearch({form:{category:h.value}})))},300),window.addEventListener("viewDocumentDetail",ue),window.addEventListener("openVideoUploadDialog",de),window.addEventListener("openSortDialog",ce),window.addEventListener("openPositionQuestionDialog",se)}),st(()=>{window.removeEventListener("viewDocumentDetail",ue),window.removeEventListener("openVideoUploadDialog",de),window.removeEventListener("openSortDialog",ce),window.removeEventListener("openPositionQuestionDialog",se)});const K=r("");return(t,e)=>{const o=d("el-col"),s=d("el-button"),T=d("el-upload"),D=d("el-icon"),H=d("el-card"),$e=d("fs-crud"),Ie=d("el-row"),Ae=d("el-drawer"),k=d("el-form-item"),Z=d("el-input"),Y=d("el-form"),X=d("el-dialog"),Ge=d("el-input-number"),me=d("el-option"),pe=d("el-select"),R=d("el-table-column"),Je=d("el-table"),We=d("el-pagination"),Ke=d("fs-page"),He=it("loading");return m(),q(Ke,null,{default:a(()=>[l(Ie,{class:"document-el-row"},{default:a(()=>[l(o,{span:3},{default:a(()=>[u("div",bt,[l(ct,{ref_key:"documentTreeRef",ref:le,treeData:M.value,onTreeClick:Fe,onUpdateDocument:Te,onDeleteDocument:Re},null,8,["treeData"])])]),_:1}),l(o,{span:21},{default:a(()=>[u("div",ht,[l($e,rt({ref_key:"crudRef",ref:w},_(ye)),{form_file:a(n=>[n.mode!=="view"?(m(),C(te,{key:0},[l(T,{action:_(Q)()+"api/system/minioupload/",headers:{Authorization:"JWT "+_(L).get("token")},multiple:!1,"on-success":(ee,Ze)=>Pe(ee,Ze,n),drag:!1,"show-file-list":!1},{default:a(()=>[l(s,{type:"primary",icon:"plus"},{default:a(()=>e[15]||(e[15]=[g("上传")])),_:1})]),_:2},1032,["action","headers","on-success"]),V.value?(m(),C("div",Dt,[l(H,{shadow:"hover",class:"w-full"},{default:a(()=>[u("div",qt,[u("div",Ct,[l(D,{class:"mr-2"},{default:a(()=>[l(_(Xe))]),_:1}),u("span",null,P(V.value.name),1)]),u("div",Vt,[u("span",kt,P(re(V.value.file_size)),1),l(s,{type:"danger",link:"",onClick:ee=>Ee(n)},{default:a(()=>[l(D,null,{default:a(()=>[l(_(et))]),_:1})]),_:2},1032,["onClick"])])])]),_:2},1024)])):j("",!0)],64)):(m(),C("div",xt,[u("span",null,P(n.form.fileName),1),Be(n.form.file_type)?(m(),q(s,{key:0,type:"primary",link:"",onClick:ee=>Le(n.form)},{default:a(()=>[l(D,{class:"mr-1"},{default:a(()=>[l(_(tt))]),_:1}),e[16]||(e[16]=g("预览 "))]),_:2},1032,["onClick"])):j("",!0)]))]),_:1},16)])]),_:1})]),_:1}),l(Ae,{modelValue:x.value,"onUpdate:modelValue":e[0]||(e[0]=n=>x.value=n),title:"文档配置",direction:"rtl",size:"500px","close-on-click-modal":!1,"before-close":ie},{default:a(()=>[x.value?(m(),q(mt,{key:0,initFormData:O.value,cacheData:oe.value,treeData:M.value,onDrawerClose:ie},null,8,["initFormData","cacheData","treeData"])):j("",!0)]),_:1},8,["modelValue"]),l(X,{modelValue:z.value,"onUpdate:modelValue":e[3]||(e[3]=n=>z.value=n),title:"上传数字人视频及字幕",width:"600px","destroy-on-close":""},{footer:a(()=>[u("span",Tt,[l(s,{onClick:e[2]||(e[2]=n=>z.value=!1)},{default:a(()=>e[18]||(e[18]=[g("取消")])),_:1}),l(s,{type:"primary",onClick:Oe,disabled:!p.value.url},{default:a(()=>e[19]||(e[19]=[g("保存")])),_:1},8,["disabled"])])]),default:a(()=>[l(Y,{ref_key:"videoFormRef",ref:N,model:f.value,rules:he,"label-width":"100px","label-position":"top"},{default:a(()=>[l(k,{label:"数字人视频",prop:"videoUrl"},{default:a(()=>[l(T,{class:"video-uploader",action:_(Q)()+"api/system/admin_upload/",headers:{Authorization:"JWT "+_(L).get("token")},data:{tenant_id:1},multiple:!1,"on-success":je,"on-error":Me,"before-upload":Qe,"show-file-list":!1},{default:a(()=>[p.value.url?(m(),C("div",zt,[u("video",{src:p.value.url,controls:"",class:"video-player"},null,8,Ut)])):(m(),q(s,{key:1,type:"primary",icon:"Plus"},{default:a(()=>e[17]||(e[17]=[g("选择视频文件")])),_:1})),p.value.name?(m(),C("div",St,[u("span",null,P(p.value.name),1),u("span",Ft,P(re(p.value.size)),1)])):j("",!0)]),_:1},8,["action","headers"])]),_:1}),l(k,{label:"字幕内容",prop:"subtitleContent"},{default:a(()=>[l(Z,{modelValue:f.value.subtitleContent,"onUpdate:modelValue":e[1]||(e[1]=n=>f.value.subtitleContent=n),type:"textarea",rows:4,placeholder:"请输入数字人视频字幕内容"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(X,{modelValue:U.value,"onUpdate:modelValue":e[6]||(e[6]=n=>U.value=n),title:"修改排序",width:"400px","destroy-on-close":""},{footer:a(()=>[u("span",Rt,[l(s,{onClick:e[5]||(e[5]=n=>U.value=!1)},{default:a(()=>e[21]||(e[21]=[g("取消")])),_:1}),l(s,{type:"primary",onClick:Ne},{default:a(()=>e[22]||(e[22]=[g("保存")])),_:1})])]),default:a(()=>[l(Y,{ref_key:"sortFormRef",ref:$,model:S.value,rules:De,"label-width":"100px"},{default:a(()=>[l(k,{label:"排序值",prop:"sequence_number"},{default:a(()=>[l(Ge,{modelValue:S.value.sequence_number,"onUpdate:modelValue":e[4]||(e[4]=n=>S.value.sequence_number=n),min:0,max:9999,style:{width:"100%"}},null,8,["modelValue"])]),_:1}),e[20]||(e[20]=u("div",{class:"form-helper"},"数值越小,排序越靠前",-1))]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(X,{modelValue:F.value,"onUpdate:modelValue":e[14]||(e[14]=n=>F.value=n),title:"职位问题",width:"60%","destroy-on-close":""},{footer:a(()=>[u("span",jt,[l(s,{onClick:e[13]||(e[13]=n=>F.value=!1)},{default:a(()=>e[23]||(e[23]=[g("取消")])),_:1}),l(s,{type:"primary",onClick:Se},{default:a(()=>e[24]||(e[24]=[g("保存")])),_:1})])]),default:a(()=>[l(Y,{model:c.value,"label-width":"80px"},{default:a(()=>[l(k,{label:"职位"},{default:a(()=>[l(pe,{modelValue:c.value.position,"onUpdate:modelValue":e[7]||(e[7]=n=>c.value.position=n),placeholder:"请选择",style:{width:"25%"}},{default:a(()=>[(m(!0),C(te,null,_e(I.value,n=>(m(),q(me,{key:n.value,label:n.label,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(k,{label:"职位问题"},{default:a(()=>[u("div",Pt,[u("div",Et,[u("div",Bt,[l(Z,{style:{width:"200px"},modelValue:K.value,"onUpdate:modelValue":e[8]||(e[8]=n=>K.value=n),placeholder:"搜索问题",clearable:"",onInput:ne},{prefix:a(()=>[l(D,null,{default:a(()=>[l(_(ot))]),_:1})]),_:1},8,["modelValue"]),l(pe,{modelValue:E.value,"onUpdate:modelValue":e[9]||(e[9]=n=>E.value=n),placeholder:"问题分类",clearable:"",onChange:ne,style:{"margin-left":"10px",width:"200px"}},{default:a(()=>[(m(!0),C(te,null,_e(J.value,n=>(m(),q(me,{key:n.value,label:n.label,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])])]),u("div",Lt,[ut((m(),q(Je,{data:Ce.value,style:{width:"100%"},height:"300",onSelectionChange:Ve},{default:a(()=>[l(R,{type:"selection",width:"55"}),l(R,{prop:"label",label:"问题","show-overflow-tooltip":""}),l(R,{prop:"category_id.name",label:"分类"}),l(R,{prop:"question_form_name",label:"题目形式","show-overflow-tooltip":""}),l(R,{prop:"chinese_explanation",label:"描述","show-overflow-tooltip":""})]),_:1},8,["data"])),[[He,G.value]]),u("div",Qt,[l(We,{"current-page":v.value.currentPage,"onUpdate:currentPage":e[10]||(e[10]=n=>v.value.currentPage=n),"page-size":v.value.pageSize,"onUpdate:pageSize":e[11]||(e[11]=n=>v.value.pageSize=n),"page-sizes":[10,20,50,100],layout:"total, sizes, prev, pager, next, jumper",total:v.value.total,onSizeChange:ke,onCurrentChange:xe},null,8,["current-page","page-size","total"])])])])]),_:1}),l(k,{label:"排序"},{default:a(()=>[l(Z,{style:{width:"25%"},modelValue:c.value.sequence,"onUpdate:modelValue":e[12]||(e[12]=n=>c.value.sequence=n),placeholder:"请输入排序值"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])]),_:1})}}}),Ht=wt(Ot,[["__scopeId","data-v-39209c7e"]]);export{Ht as default};
|