99AI/public/admin/assets/application-BvqlJIC2.js
2024-07-07 22:44:05 +08:00

9 lines
13 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 由 Fantastic-admin 提供技术支持
* Powered by Fantastic-admin
* https://fantastic-admin.github.io
*/
import{_ as ke}from"./index.vue_vue_type_script_setup_true_lang-DKdjIYRj.js";import{_ as xe}from"./index.vue_vue_type_script_setup_true_lang-CiyjFa2H.js";import{d as he,r as f,m as B,p as Z,a as De,n as i,q as Ce,g as n,c as z,b as l,w as a,h as c,F as R,s as L,i as r,v as Pe,x as Te,y as ze,z as p,t as k,e as V,A as g,B as Ue,C as Me,D as Fe,G as Ge,E as x,H as E,j as qe,_ as $e,k as ee}from"./index-DEc4xym2.js";import{A as h}from"./app-Dcfk5dQv.js";import{u as Ne}from"./utcformatTime-Bq4gDWNx.js";import{Q as Se,M as je}from"./index-J5zVJPyL.js";const Be=V("div",{class:"flex items-center gap-4"},"应用配置",-1),Re=V("div",{class:"text-sm/6"},[V("div",null," 应用一旦创建,可能会被多处使用,请保持规范命名分类,后续尽量变更而不是删除。 "),V("div",null," 可自行选择应用是否固定模型。GPTs 需单独在特殊模型中配置 gpts 模型,并自行搜索填写 gizmoID例如g-alKfVrz9K。 ")],-1),Le={style:{maxWidth:"350px"}},Ke={style:{maxHeight:"50px",cursor:"pointer"}},He={style:{maxWidth:"350px"}},Oe={style:{maxHeight:"50px",cursor:"pointer"}},Ye=["src"],We={class:"mr-5 flex justify-end"},Qe=he({__name:"application",setup(Je){const K=f(),H=f(0),I=f(!1),U=f(!1),_=B({catId:"",name:"",status:"",role:"",page:1,size:10,isGPTs:0,gizmoID:"",isFixedModel:0,appModel:""}),O=f(`/api/upload/file?dir=${encodeURIComponent("system/app")}`),G=f(),D=f(0),C=f(!1),Y=f(0),s=B({catId:"",name:"",preset:"",des:"",coverImg:"",demoData:"",order:100,status:0,isGPTs:0,gizmoID:"",isFixedModel:0,appModel:""}),te=B({catId:[{required:!0,message:"请选择App分类",trigger:"change"}],name:[{required:!0,message:"请填写App名称",trigger:"blur"}],preset:[{required:!1,message:"请填写App预设信息",trigger:"blur"}],des:[{required:!0,message:"请填写App描述",trigger:"blur"}],coverImg:[{required:!1,message:"请填写App封面图片地址",trigger:"blur"}],demoData:[{required:!1,message:"请填写App演示数据",trigger:"blur"}],isGPTs:[{required:!0,message:"是否GPTs",trigger:"blur"}],gizmoID:[{required:!1,message:"GPTs 的ID",trigger:"blur"}],order:[{required:!1,message:"请填写排序ID",trigger:"blur"}],status:[{required:!0,message:"请选择App状态",trigger:"change"}],isFixedModel:[{required:!0,message:"请选择App是否固定模型",trigger:"blur"}],appModel:[{required:!1,message:"请选择App使用的模型",trigger:"change"}]}),W=f([]),q=f([]),le=Z(()=>D.value?"更新应用":"新增应用"),ae=Z(()=>D.value?"确认更新":"确认新增");async function v(){try{U.value=!0;const o=await h.queryApp(_),{rows:t,count:d}=o.data;U.value=!1,H.value=d,W.value=t.sort((m,w)=>w.order-m.order)}catch{U.value=!1}}async function oe(){const o=await h.queryCats({size:100}),{rows:t}=o.data;q.value=t}function se(o){D.value=o.id,C.value=o.role==="user",Y.value=o.status;const{name:t,status:d,des:m,order:w,coverImg:P,catId:T,preset:u,demoData:y,isGPTs:b,gizmoID:M,isFixedModel:F,appModel:$}=o;Ge(()=>{Object.assign(s,{name:t,status:d,des:m,order:w,coverImg:P,catId:T,preset:u,demoData:y,isGPTs:b,gizmoID:M,isFixedModel:F,appModel:$})}),I.value=!0}function ne(o){D.value=0,o==null||o.resetFields()}async function re(o){await h.deleteApp({id:o.id}),x.success("删除分类成功"),v()}function de(o){o==null||o.resetFields(),v()}const Q=(o,t)=>{console.log("response: ",o.data),s.coverImg=o.data},ie=o=>{if(["image/png","image/jpeg","image/gif","image/webp"].includes(o.type)){if(o.size/1024>300)return x.error("当前限制文件最大不超过 300KB!"),!1}else return x.error("当前系统仅支持 PNG、JPEG、GIF、和 WebP 格式的图片!"),!1};async function ue(){if(s.coverImg){const o=await me(s.coverImg);pe(o,Q)}}function pe(o,t){const d=new FormData;d.append("file",o),E.post(O.value,d,{headers:{"Content-Type":"multipart/form-data"}}).then(m=>{t(m.data)}).catch(m=>{console.error("上传失败",m)})}async function me(o){const t=await E.get(o,{responseType:"blob"});let d="downloaded_file";const m=t.headers["content-disposition"];if(m){const w=/filename="([^"]+)"/.exec(m);w!=null&&w[1]&&(d=w[1])}else d=ce(o);return new File([t.data],d,{type:t.data.type})}function ce(o){const d=new URL(o).pathname;return d.substring(d.lastIndexOf("/")+1)}function fe(o){o==null||o.validate(async t=>{if(t){if(D.value){const d={id:D.value,...s};C.value&&Object.assign(d,{status:Y.value}),await h.updateApp(d),x({type:"success",message:"更新应用成功!"})}else await h.createApp(s),x({type:"success",message:"创建新的应用成功!"});I.value=!1,v()}})}async function ge(o){const t=await h.auditPassApp({id:o.id});x({type:"success",message:t.data}),v()}async function _e(o){const t=await h.auditFailApp({id:o.id});x({type:"success",message:t.data}),v()}return De(()=>{v(),oe()}),(o,t)=>{const d=qe,m=$e,w=xe,P=i("el-option"),T=i("el-select"),u=i("el-form-item"),y=i("el-input"),b=i("el-button"),M=i("el-form"),F=ke,$=i("el-image"),A=i("el-table-column"),ve=i("el-tag"),J=i("el-tooltip"),N=i("el-popconfirm"),ye=i("el-table"),be=i("el-pagination"),we=i("el-row"),S=i("el-switch"),X=i("el-icon"),Ae=i("el-upload"),Ve=i("el-dialog"),Ie=Ce("loading");return n(),z("div",null,[l(w,null,{title:a(()=>[Be]),content:a(()=>[Re]),default:a(()=>[l(m,{outline:"",onClick:t[0]||(t[0]=e=>I.value=!0)},{default:a(()=>[l(d,{name:"ic:baseline-plus"}),c(" 新增应用 ")]),_:1})]),_:1}),l(F,null,{default:a(()=>[l(M,{ref_key:"formRef",ref:K,inline:!0,model:_},{default:a(()=>[l(u,{label:"App分类",prop:"catId"},{default:a(()=>[l(T,{modelValue:_.catId,"onUpdate:modelValue":t[1]||(t[1]=e=>_.catId=e),placeholder:"请选择App分类",clearable:"",style:{width:"160px"}},{default:a(()=>[(n(!0),z(R,null,L(r(q),e=>(n(),p(P,{key:e.id,label:e.name,value:e.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(u,{label:"App名称",prop:"name"},{default:a(()=>[l(y,{modelValue:_.name,"onUpdate:modelValue":t[2]||(t[2]=e=>_.name=e),placeholder:"App名称[模糊搜索]",clearable:"",onKeydown:Pe(Te(v,["prevent"]),["enter"])},null,8,["modelValue","onKeydown"])]),_:1}),l(u,null,{default:a(()=>[l(b,{type:"primary",onClick:v},{default:a(()=>[c(" 查询 ")]),_:1}),l(b,{onClick:t[3]||(t[3]=e=>de(r(K)))},{default:a(()=>[c(" 重置 ")]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),l(F,{style:{width:"100%"}},{default:a(()=>[ze((n(),p(ye,{border:"",data:r(W),style:{width:"100%"},size:"large"},{default:a(()=>[l(A,{prop:"coverImg",label:"应用封面",width:"100"},{default:a(e=>[l($,{style:{height:"50px"},src:e.row.coverImg,fit:"fill"},null,8,["src"])]),_:1}),l(A,{prop:"catName",label:"应用分类",width:"100"}),l(A,{prop:"name",label:"应用名称",width:"120"}),l(A,{prop:"status",label:"应用状态",width:"100"},{default:a(e=>[l(ve,{type:e.row.status===1?"success":"danger"},{default:a(()=>[c(k(r(Se)[e.row.status]),1)]),_:2},1032,["type"])]),_:1}),l(A,{prop:"order",label:"排序ID"}),c(" /> "),l(A,{prop:"preset",label:"预设信息",width:"400"},{default:a(e=>[l(J,{class:"box-item",effect:"dark",placement:"top-start"},{content:a(()=>[V("div",Le,k(e.row.preset),1)]),default:a(()=>[V("div",Ke,k(e.row.preset),1)]),_:2},1024)]),_:1}),l(A,{prop:"des",label:"描述信息",width:"300"},{default:a(e=>[l(J,{class:"box-item",effect:"dark",placement:"top-start"},{content:a(()=>[V("div",He,k(e.row.des),1)]),default:a(()=>[V("div",Oe,k(e.row.des),1)]),_:2},1024)]),_:1}),l(A,{prop:"createdAt",label:"创建时间",width:"120"},{default:a(e=>[c(k(r(Ne)(e.row.createdAt,"YYYY-MM-DD")),1)]),_:1}),l(A,{label:"操作",width:"200"},{default:a(e=>[e.row.role==="system"||e.row.public?(n(),p(b,{key:0,link:"",type:"primary",size:"small",onClick:j=>se(e.row)},{default:a(()=>[c(" 编辑 ")]),_:2},1032,["onClick"])):g("",!0),e.row.role==="system"?(n(),p(N,{key:1,title:"确认删除此应用么?",width:"200","icon-color":"red",onConfirm:j=>re(e.row)},{reference:a(()=>[l(b,{link:"",type:"danger",size:"small"},{default:a(()=>[c(" 删除应用 ")]),_:1})]),_:2},1032,["onConfirm"])):g("",!0),e.row.role==="user"&&e.row.status===3?(n(),p(N,{key:2,title:"确认通过审核此应用么?",width:"200","icon-color":"red",onConfirm:j=>ge(e.row)},{reference:a(()=>[l(b,{link:"",type:"success",size:"small"},{default:a(()=>[c(" 通过审核 ")]),_:1})]),_:2},1032,["onConfirm"])):g("",!0),e.row.role==="user"&&e.row.status===3?(n(),p(N,{key:3,title:"确认拒绝通过此应用共享请求么?",width:"200","icon-color":"red",onConfirm:j=>_e(e.row)},{reference:a(()=>[l(b,{link:"",type:"danger",size:"small"},{default:a(()=>[c(" 拒绝审核 ")]),_:1})]),_:2},1032,["onConfirm"])):g("",!0)]),_:1})]),_:1},8,["data"])),[[Ie,r(U)]]),l(we,{class:"mt-5 flex justify-end"},{default:a(()=>[l(be,{"current-page":_.page,"onUpdate:currentPage":t[4]||(t[4]=e=>_.page=e),"page-size":_.size,"onUpdate:pageSize":t[5]||(t[5]=e=>_.size=e),class:"mr-5","page-sizes":[10,20,30,50],layout:"total, sizes, prev, pager, next, jumper",total:r(H),onSizeChange:v,onCurrentChange:v},null,8,["current-page","page-size","total"])]),_:1})]),_:1}),l(Ve,{modelValue:r(I),"onUpdate:modelValue":t[20]||(t[20]=e=>Fe(I)?I.value=e:null),"close-on-click-modal":!1,title:r(le),width:"570",onClose:t[21]||(t[21]=e=>ne(r(G)))},{footer:a(()=>[V("span",We,[l(b,{onClick:t[18]||(t[18]=e=>I.value=!1)},{default:a(()=>[c("取消")]),_:1}),l(b,{type:"primary",onClick:t[19]||(t[19]=e=>fe(r(G)))},{default:a(()=>[c(k(r(ae)),1)]),_:1})])]),default:a(()=>[l(M,{ref_key:"formPackageRef",ref:G,"label-position":"right","label-width":"100px",model:s,rules:te},{default:a(()=>[l(u,{label:"App分类",prop:"catId"},{default:a(()=>[l(T,{modelValue:s.catId,"onUpdate:modelValue":t[6]||(t[6]=e=>s.catId=e),placeholder:"请选择App分类",clearable:"",style:{width:"100%"}},{default:a(()=>[(n(!0),z(R,null,L(r(q),e=>(n(),p(P,{key:e.id,label:e.name,value:e.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(u,{label:"App名称",prop:"name"},{default:a(()=>[l(y,{modelValue:s.name,"onUpdate:modelValue":t[7]||(t[7]=e=>s.name=e),placeholder:"请填写App名称"},null,8,["modelValue"])]),_:1}),r(C)?g("",!0):(n(),p(u,{key:0,label:"App状态",prop:"status"},{default:a(()=>[l(S,{modelValue:s.status,"onUpdate:modelValue":t[8]||(t[8]=e=>s.status=e),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})),l(u,{label:"App描述",prop:"des"},{default:a(()=>[l(y,{modelValue:s.des,"onUpdate:modelValue":t[9]||(t[9]=e=>s.des=e),type:"textarea",placeholder:"请填写App介绍信息、用于对外展示...",rows:4},null,8,["modelValue"])]),_:1}),r(C)?g("",!0):(n(),p(u,{key:1,label:"启用GPTs",prop:"isGPTs"},{default:a(()=>[l(S,{modelValue:s.isGPTs,"onUpdate:modelValue":t[10]||(t[10]=e=>s.isGPTs=e),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})),Number(s.isGPTs)===1?(n(),p(u,{key:2,label:"gizmoID",prop:"gizmoID"},{default:a(()=>[l(y,{modelValue:s.gizmoID,"onUpdate:modelValue":t[11]||(t[11]=e=>s.gizmoID=e),placeholder:"请填写 GPTs 使用的 gizmoID"},null,8,["modelValue"])]),_:1})):g("",!0),Number(s.isGPTs)!==1?(n(),p(u,{key:3,label:"App预设",prop:"preset"},{default:a(()=>[l(y,{modelValue:s.preset,"onUpdate:modelValue":t[12]||(t[12]=e=>s.preset=e),type:"textarea",placeholder:"请填写App预设信息、用于给AI预设身份...",rows:4},null,8,["modelValue"])]),_:1})):g("",!0),!r(C)&&Number(s.isGPTs)!==1?(n(),p(u,{key:4,label:"固定模型",prop:"isFixedModel"},{default:a(()=>[l(S,{modelValue:s.isFixedModel,"onUpdate:modelValue":t[13]||(t[13]=e=>s.isFixedModel=e),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})):g("",!0),Number(s.isFixedModel)===1&&Number(s.isGPTs)!==1?(n(),p(u,{key:5,label:"使用模型",prop:"appModel"},{default:a(()=>[l(T,{modelValue:s.appModel,"onUpdate:modelValue":t[14]||(t[14]=e=>s.appModel=e),filterable:"","allow-create":"",placeholder:"请选择应用使用的模型",clearable:""},{default:a(()=>[(n(!0),z(R,null,L(r(je),e=>(n(),p(P,{key:e,label:e,value:e},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})):g("",!0),l(u,{label:"示例内容",prop:"demoData"},{default:a(()=>[l(y,{modelValue:s.demoData,"onUpdate:modelValue":t[15]||(t[15]=e=>s.demoData=e),type:"textarea",placeholder:"请填写App的demo示例数据、每换行一次表示一个新的示例...",rows:4},null,8,["modelValue"])]),_:1}),l(u,{label:"应用图标",prop:"coverImg"},{default:a(()=>[l(y,{modelValue:s.coverImg,"onUpdate:modelValue":t[16]||(t[16]=e=>s.coverImg=e),placeholder:"请填写或上传应用图标",clearable:""},{append:a(()=>[l(Ae,{class:"avatar-uploader",action:r(O),"show-file-list":!1,"on-success":Q,"before-upload":ie,style:{display:"flex","align-items":"center","justify-content":"center"}},{default:a(()=>[s.coverImg?(n(),z("img",{key:0,src:s.coverImg,style:{"max-width":"1.5rem","max-height":"1.5rem",margin:"5px 0","object-fit":"contain"}},null,8,Ye)):(n(),p(X,{key:1,style:{width:"1rem"}},{default:a(()=>[l(r(Ue))]),_:1}))]),_:1},8,["action"]),s.coverImg?(n(),p(X,{key:0,onClick:ue,style:{"margin-left":"35px",width:"1rem"}},{default:a(()=>[l(r(Me))]),_:1})):g("",!0)]),_:1},8,["modelValue"])]),_:1}),l(u,{label:"排序ID",prop:"order"},{default:a(()=>[l(y,{modelValue:s.order,"onUpdate:modelValue":t[17]||(t[17]=e=>s.order=e),modelModifiers:{number:!0},placeholder:"请填写排序ID[数字越大越靠前]"},null,8,["modelValue"])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"])])}}});typeof ee=="function"&&ee(Qe);export{Qe as default};