Files
ai_dianshang/admin/dist/assets/platforms-e67da37c.js
2025-11-28 15:18:10 +08:00

2 lines
9.3 KiB
JavaScript
Raw Permalink 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.

import{r as x,j as Y,b as I,k as H,c as i,o as S,l as R,w as t,e as d,f as e,h as g,t as k,d as N,m as Q,F as X,E as h,K as Z,z as ee,I as te,g as ae,J as le,L as oe,G as O,n as se,bY as ne,c8 as ie}from"./index-01a32b87.js";import{u as K,c as re,a as de,d as ue}from"./platform-5935cd59.js";import{_ as M}from"./_plugin-vue_export-helper-c27b6911.js";const pe={class:"icon-selector"},ce={style:{"font-size":"20px"}},me={class:"icon-quick-select"},_e=["onClick"],fe={class:"dialog-footer"},ge={__name:"PlatformForm",props:{visible:{type:Boolean,default:!1},platformData:{type:Object,default:null}},emits:["update:visible","success"],setup(F,{emit:z}){const u=F,w=z,_=x(),V=x(!1),v=["🌐","📱","📲","💻","🖥️","⌚","📺","🎮","🌟","📦"],p=Y(()=>u.platformData&&u.platformData.id),l=I({code:"",name:"",icon:"",description:"",sort:0,status:1}),U={code:[{required:!0,message:"请输入平台代码",trigger:"blur"},{pattern:/^[a-z0-9_]+$/,message:"平台代码只能包含小写字母、数字和下划线",trigger:"blur"},{min:1,max:50,message:"平台代码长度在 1 到 50 个字符",trigger:"blur"}],name:[{required:!0,message:"请输入平台名称",trigger:"blur"},{min:1,max:100,message:"平台名称长度在 1 到 100 个字符",trigger:"blur"}],sort:[{required:!0,message:"请输入排序值",trigger:"blur"}]};H(()=>u.visible,c=>{c&&(u.platformData?Object.assign(l,{code:u.platformData.code||"",name:u.platformData.name||"",icon:u.platformData.icon||"",description:u.platformData.description||"",sort:u.platformData.sort||0,status:u.platformData.status??1}):$())});const $=()=>{var c;Object.assign(l,{code:"",name:"",icon:"",description:"",sort:0,status:1}),(c=_.value)==null||c.clearValidate()},j=async()=>{try{await _.value.validate(),V.value=!0;const c={...l};p.value?(await K(u.platformData.id,c),h.success("平台更新成功")):(await re(c),h.success("平台创建成功")),w("success"),D()}catch(c){console.error("提交失败:",c),h.error(c.message||"操作失败")}finally{V.value=!1}},D=()=>{w("update:visible",!1),$()};return(c,o)=>{const C=i("el-input"),b=i("el-form-item"),E=i("el-input-number"),P=i("el-col"),s=i("el-switch"),a=i("el-row"),m=i("el-form"),y=i("el-button"),L=i("el-dialog");return S(),R(L,{"model-value":F.visible,title:p.value?"编辑平台":"添加平台",width:"600px","before-close":D,"onUpdate:modelValue":o[6]||(o[6]=n=>c.$emit("update:visible",n))},{footer:t(()=>[d("div",fe,[e(y,{onClick:D},{default:t(()=>[...o[9]||(o[9]=[g("取消",-1)])]),_:1}),e(y,{type:"primary",loading:V.value,onClick:j},{default:t(()=>[g(k(p.value?"更新":"创建"),1)]),_:1},8,["loading"])])]),default:t(()=>[e(m,{ref_key:"formRef",ref:_,model:l,rules:U,"label-width":"100px",class:"platform-form"},{default:t(()=>[e(b,{label:"平台代码",prop:"code"},{default:t(()=>[e(C,{modelValue:l.code,"onUpdate:modelValue":o[0]||(o[0]=n=>l.code=n),placeholder:"请输入平台代码web, miniprogram, app",disabled:p.value},{append:t(()=>[...o[7]||(o[7]=[d("span",{style:{"font-size":"12px",color:"#999"}},"唯一标识",-1)])]),_:1},8,["modelValue","disabled"]),o[8]||(o[8]=d("div",{style:{"font-size":"12px",color:"#999","margin-top":"4px"}}," 建议使用小写字母web、miniprogram、app、h5等 ",-1))]),_:1}),e(b,{label:"平台名称",prop:"name"},{default:t(()=>[e(C,{modelValue:l.name,"onUpdate:modelValue":o[1]||(o[1]=n=>l.name=n),placeholder:"请输入平台名称Web端、小程序"},null,8,["modelValue"])]),_:1}),e(b,{label:"平台图标",prop:"icon"},{default:t(()=>[d("div",pe,[e(C,{modelValue:l.icon,"onUpdate:modelValue":o[2]||(o[2]=n=>l.icon=n),placeholder:"请输入Emoji图标或图片URL"},{prepend:t(()=>[d("span",ce,k(l.icon||"📦"),1)]),_:1},8,["modelValue"]),d("div",me,[(S(),N(X,null,Q(v,n=>d("span",{key:n,class:Z(["icon-item",{active:l.icon===n}]),onClick:q=>l.icon=n},k(n),11,_e)),64))])])]),_:1}),e(b,{label:"平台描述",prop:"description"},{default:t(()=>[e(C,{modelValue:l.description,"onUpdate:modelValue":o[3]||(o[3]=n=>l.description=n),type:"textarea",rows:3,placeholder:"请输入平台描述"},null,8,["modelValue"])]),_:1}),e(a,{gutter:20},{default:t(()=>[e(P,{span:12},{default:t(()=>[e(b,{label:"排序值",prop:"sort"},{default:t(()=>[e(E,{modelValue:l.sort,"onUpdate:modelValue":o[4]||(o[4]=n=>l.sort=n),min:0,max:9999,style:{width:"100%"},placeholder:"数值越大越靠前"},null,8,["modelValue"])]),_:1})]),_:1}),e(P,{span:12},{default:t(()=>[e(b,{label:"状态",prop:"status"},{default:t(()=>[e(s,{modelValue:l.status,"onUpdate:modelValue":o[5]||(o[5]=n=>l.status=n),"active-value":1,"inactive-value":0,"active-text":"启用","inactive-text":"禁用"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})]),_:1},8,["model"])]),_:1},8,["model-value","title"])}}},ve=M(ge,[["__scopeId","data-v-431bf2a8"]]);const be={class:"page-container"},ye={class:"toolbar"},he={class:"toolbar-left"},we={class:"toolbar-right"},Ve={class:"data-table"},xe={class:"platform-icon"},Ce={key:0,class:"pagination"},ke={__name:"platforms",setup(F){const z=x(!1),u=x([]),w=x(0),_=x(!1),V=x(null),v=I({name:"",status:null}),p=I({page:1,pageSize:10}),l=async()=>{var s;try{z.value=!0;const a={page:p.page,page_size:p.pageSize,...v},m=await de(a);m.data&&m.data.list?(u.value=m.data.list||[],w.value=m.data.total||0):(u.value=m.data||[],w.value=((s=m.data)==null?void 0:s.length)||0)}catch(a){console.log("获取平台列表失败:",a),h.error(a.message||"获取平台列表失败")}finally{z.value=!1}},U=()=>{p.page=1,l()},$=()=>{Object.assign(v,{name:"",status:null}),p.page=1,l()},j=()=>{V.value=null,_.value=!0},D=s=>{V.value={...s},_.value=!0},c=async s=>{try{await se.confirm(`确定要删除平台"${s.name}"吗?删除后,该平台关联的分类将不再显示在该平台。`,"确认删除",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}),await ue(s.id),h.success("删除成功"),l()}catch(a){a!=="cancel"&&h.error(a.message||"删除失败")}},o=async s=>{try{await K(s.id,{status:s.status}),h.success("状态更新成功")}catch{s.status=s.status===1?0:1,h.error("状态更新失败")}},C=s=>{p.page=s,l()},b=s=>{p.pageSize=s,p.page=1,l()},E=()=>{_.value=!1,l()},P=s=>s?new Date(s).toLocaleString("zh-CN"):"";return ee(()=>{l()}),(s,a)=>{const m=i("el-icon"),y=i("el-button"),L=i("el-input"),n=i("el-option"),q=i("el-select"),f=i("el-table-column"),T=i("el-tag"),A=i("el-switch"),W=i("el-table"),G=i("el-pagination"),J=te("loading");return S(),N("div",be,[a[9]||(a[9]=d("div",{class:"page-header"},[d("h2",null,"平台管理"),d("p",null,"管理系统所有平台配置Web端、小程序、APP等")],-1)),d("div",ye,[d("div",he,[e(y,{type:"primary",onClick:j},{default:t(()=>[e(m,null,{default:t(()=>[e(O(ne))]),_:1}),a[3]||(a[3]=g(" 添加平台 ",-1))]),_:1})]),d("div",we,[e(L,{modelValue:v.name,"onUpdate:modelValue":a[0]||(a[0]=r=>v.name=r),placeholder:"搜索平台名称或代码",style:{width:"220px","margin-right":"10px"},clearable:"",onKeyup:ae(U,["enter"])},null,8,["modelValue"]),e(q,{modelValue:v.status,"onUpdate:modelValue":a[1]||(a[1]=r=>v.status=r),placeholder:"状态",style:{width:"120px","margin-right":"10px"},clearable:""},{default:t(()=>[e(n,{label:"启用",value:1}),e(n,{label:"禁用",value:0})]),_:1},8,["modelValue"]),e(y,{type:"primary",onClick:U},{default:t(()=>[e(m,null,{default:t(()=>[e(O(ie))]),_:1}),a[4]||(a[4]=g(" 搜索 ",-1))]),_:1}),e(y,{onClick:$},{default:t(()=>[...a[5]||(a[5]=[g("重置",-1)])]),_:1})])]),d("div",Ve,[le((S(),R(W,{data:u.value,"row-key":"id"},{empty:t(()=>[...a[8]||(a[8]=[d("div",{style:{padding:"40px","text-align":"center",color:"#909399"}},[d("span",null,"暂无平台数据")],-1)])]),default:t(()=>[e(f,{prop:"id",label:"ID",width:"80",align:"center"}),e(f,{label:"图标",width:"80",align:"center"},{default:t(({row:r})=>[d("div",xe,k(r.icon||"📦"),1)]),_:1}),e(f,{prop:"code",label:"平台代码",width:"150",align:"center"},{default:t(({row:r})=>[e(T,{type:"info"},{default:t(()=>[g(k(r.code),1)]),_:2},1024)]),_:1}),e(f,{prop:"name",label:"平台名称","min-width":"150",align:"center"}),e(f,{prop:"description",label:"描述","min-width":"200","show-overflow-tooltip":"",align:"center"}),e(f,{prop:"sort",label:"排序",width:"100",sortable:"",align:"center"}),e(f,{label:"状态",width:"100",align:"center"},{default:t(({row:r})=>[e(A,{modelValue:r.status,"onUpdate:modelValue":B=>r.status=B,"active-value":1,"inactive-value":0,onChange:B=>o(r)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),e(f,{prop:"created_at",label:"创建时间",width:"180",align:"center"},{default:t(({row:r})=>[g(k(P(r.created_at)),1)]),_:1}),e(f,{label:"操作",width:"180",fixed:"right",align:"center"},{default:t(({row:r})=>[e(y,{size:"small",type:"primary",onClick:B=>D(r)},{default:t(()=>[...a[6]||(a[6]=[g("编辑",-1)])]),_:1},8,["onClick"]),e(y,{size:"small",type:"danger",onClick:B=>c(r)},{default:t(()=>[...a[7]||(a[7]=[g("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[J,z.value]]),w.value>0?(S(),N("div",Ce,[e(G,{"current-page":p.page,"page-size":p.pageSize,total:w.value,"page-sizes":[10,20,50,100],layout:"total, sizes, prev, pager, next, jumper",onSizeChange:b,onCurrentChange:C},null,8,["current-page","page-size","total"])])):oe("",!0)]),e(ve,{visible:_.value,"platform-data":V.value,"onUpdate:visible":a[2]||(a[2]=r=>_.value=r),onSuccess:E},null,8,["visible","platform-data"])])}}},Ue=M(ke,[["__scopeId","data-v-b3f453fc"]]);export{Ue as default};