PageSourceSearch

https://kooai.top/assets/KooExtensionAdmin-C5yxrF0B.js

js kooai.top collected 2026-09-24 15:13:47 UTC 39,978 bytes, 1 lines download raw bytes

1import{b as A,w as Le,o as Vl,x as d,y as m,z as l,L as n,H as o,u as k,G as S,B as v,C as s,I as h,P as J,F as N,Y as j,N as ae,O as ne,D as K,c as F}from"./vendor-CGUashZo.js";import{d as kl,u as xl}from"./vue-DF2iH-iO.js";import{ac as c}from"./index-CHyuZCUI.js";import{a7 as Cl,bg as Al,bh as Ul,bi as pe,e as Ie,a as hl,h as Pe,a5 as Re,af as me,a4 as se}from"./icons-TonSWbDd.js";const Bl={class:"page koo-extension-page"},El={class:"page-header"},Sl={class:"metric-grid extension-summary-grid"},zl={class:"metric-card"},Tl={class:"metric-icon"},Kl={class:"metric-card"},Dl={class:"metric-icon"},Ol={class:"metric-card"},ql={class:"metric-icon"},Ml={class:"metric-card"},$l={class:"metric-icon"},Fl={class:"metric-card"},Ll={class:"metric-icon"},Il={class:"metric-card"},Pl={class:"metric-icon"},Rl={class:"extension-latest-head"},Nl={key:0,class:"extension-latest-body"},jl={class:"extension-latest-facts"},Hl=["href"],Wl={class:"extension-release-notes"},Gl={key:1,class:"extension-latest-empty"},Ql={class:"segmented-row"},Yl={key:2,class:"admin-grid two-column"},Jl={class:"section-heading"},Xl={class:"inline-checks"},Zl={class:"check-row",for:"version-latest"},et={class:"check-row",for:"version-force"},lt={class:"dialog-actions"},tt={class:"section-heading"},at={class:"cell-stack"},nt={class:"scope-tags"},st={class:"row-actions"},ot={key:3,class:"admin-grid two-column"},it={class:"section-heading"},ut={class:"form-split"},dt={class:"check-row switch-row",for:"announcement-active"},rt={class:"form-split"},vt={class:"dialog-actions"},ct={class:"section-heading"},pt={class:"cell-stack"},mt={class:"row-actions"},_t={key:0,class:"announcement-preview"},ft={key:4,class:"admin-grid two-column"},yt={class:"section-heading"},bt={class:"form-split"},gt={class:"inline-checks"},wt={class:"form-split"},Vt={class:"form-split"},kt={class:"form-split"},xt={class:"check-row switch-row",for:"feature-badge-active"},Ct={class:"dialog-actions"},At={class:"section-heading"},Ut={class:"cell-stack"},ht={class:"row-actions"},Bt={key:5,class:"admin-grid two-column"},Et={class:"section-heading"},St={class:"inline-checks"},zt={class:"inline-checks"},Tt={class:"dialog-actions"},Kt={class:"section-heading"},Dt={class:"extension-latest-facts"},Ot={key:6,class:"admin-grid"},qt={class:"section-heading"},Mt={key:7,class:"ads-admin-stack"},$t={class:"section-heading"},Ft={class:"ad-placement-grid"},Lt={class:"ad-placement-head"},It={class:"ad-placement-description"},Pt={key:0,class:"extension-ad-card-preview"},Rt={class:"extension-ad-media"},Nt=["src"],jt={class:"extension-ad-copy"},Ht={class:"extension-ad-title-row"},Wt={class:"extension-ad-meta"},Gt=["href"],Qt={key:1,class:"ad-placement-empty"},Yt={class:"ad-placement-stats"},Jt={class:"admin-grid two-column"},Xt={class:"section-heading"},Zt={class:"form-split"},ea={class:"form-helper"},la={class:"form-split"},ta={class:"form-split"},aa={class:"check-row switch-row",for:"ad-active"},na={class:"dialog-actions"},sa={class:"section-heading"},oa={class:"cell-stack"},ia={class:"row-actions"},ua={key:0,class:"announcement-preview ad-preview"},da=["src"],ra=["href"],fa={__name:"KooExtensionAdmin",setup(va){const L=kl(),Ne=xl(),X=A([]),H=A([]),W=A([]),oe=A([]),M=A([]),E=A(null),G=A(null),$=A(!1),f=A(!1),x=A(""),w=A(""),_e={id:null,version:"",download_url:"",release_notes:"",is_latest:!1,is_force_update:!1},fe={id:null,title:"",content:"",content_type:"html",priority:0,is_active:!0,start_time:"",end_time:""},ye={id:null,title:"",body:"",image_url:"",cta_label:"",cta_url:"",placement:"drawer_home",priority:0,is_active:!0,start_time:"",end_time:"",frequency_days:1},Z={id:null,feature_id:"product-audit",label:"NEW",placements:["popup","drawer"],dismiss_mode:"on_use_or_expire",campaign_version:1,priority:0,is_active:!0,start_time:"",end_time:"",min_version:"3.3.0",max_version:""},V=A({..._e}),_=A({...fe}),u=A({...ye}),r=A({...Z,placements:[...Z.placements]}),ee={trial_days:3,allowed_capabilities:[],allowed_scopes:[]},z=A({...ee}),be=[{label:"版本",value:"versions"},{label:"公告",value:"announcements"},{label:"功能角标",value:"feature-badges"},{label:"试用策略",value:"trial-policy"}
1,{label:"登录设备",value:"auth-sessions"},{label:"广告",value:"ads"}],je=new Set(be.map(a=>a.value)),C=A(te(L.query.tab)),le=[{label:"右侧首页",value:"drawer_home",description:"插件右侧抽屉首页广告位。用户点击页面右侧 KOO AI 浮动按钮并打开首页后展示,适合放版本能力、运营公告或新功能入口。"},{label:"账号弹窗广告",value:"popup_account",description:"用户点击浏览器工具栏中的 KOO AI 图标并登录后,在账号卡片下方展示。"},{label:"详情工具区",value:"detail_tools",description:"Coupang 商品详情页的数据面板内广告位,位于历史价格/工具区域附近,适合引导 1688 图搜、评论抓取、数据分析等商品工具。"},{label:"下载中心",value:"download_center",description:"插件右侧抽屉的下载中心顶部广告位。用户查看 CSV、Excel、图片下载任务时展示,适合提示导出能力、任务保留或会员权益。"},{label:"详情顶部横条",value:"detail_header",description:"商品详情页 KOO AI 数据面板标题栏中间的短横条广告位,展示范围较小,适合短标题和轻提示。"},{label:"详情底部横条",value:"detail_bottom",description:"商品详情页 KOO AI 数据面板底部横条广告位,支持多条轮播,适合承接工具入口、活动提醒和服务引导。"},{label:"详情右侧浮窗",value:"detail_float",description:"商品详情页页面右侧的浮窗广告位,跟随 KOO AI 浮动入口展示,适合强提醒但需要控制文案长度。"},{label:"列表右侧浮窗",value:"list_float",description:"搜索页、分类页、店铺列表页右侧浮窗广告位,适合批量采集、选品分析、列表导出等列表场景引导。"}],ge=[{label:"通知中心",value:"announcement"},{label:"服务商",value:"service-providers"},{label:"产品体检",value:"product-audit"},{label:"下载中心",value:"downloads"},{label:"商品查询",value:"product-search"},{label:"评论采集",value:"review-collector"},{label:"商品咨询",value:"inquiry-collector"},{label:"引流词挖掘",value:"traffic-keywords"}],He=[{label:"插件弹窗",value:"popup"},{label:"右侧功能菜单",value:"drawer"}],we=[{label:"到期消失",value:"expires_only"},{label:"首次使用后消失",value:"on_use"},{label:"首次使用或到期消失",value:"on_use_or_expire"}],Ve={"keyword-ranking":"关键词排名","review-capture":"评论采集","traffic-keywords":"引流词挖掘","product-search":"商品查询","data-export":"数据导出"},ke={"wing:read":"基础数据读取","product:trend":"商品趋势分析"},We=F(()=>{var a;return(((a=E.value)==null?void 0:a.capability_options)||[]).map(e=>({label:Ve[e]||e,value:e}))}),Ge=F(()=>{var a;return(((a=E.value)==null?void 0:a.scope_options)||[]).map(e=>({label:ke[e]||e,value:e}))}),D=F(()=>X.value.find(a=>a.is_latest)),Qe=F(()=>H.value.filter(a=>a.is_active).length),Ye=F(()=>W.value.filter(a=>a.is_active).length),Je=F(()=>M.value.filter(a=>Se(a)).length),Xe=F(()=>le.map(a=>{const e=M.value.filter(y=>y.placement===a.value).slice().sort((y,p)=>(p.priority||0)-(y.priority||0)),i=e.filter(y=>Se(y));return{...a,items:e,liveItems:i,topAd:i[0]||e[0]||null,activeCount:i.length,pausedCount:e.filter(y=>!y.is_active).length,scheduledCount:e.filter(y=>ie(y)).length,expiredCount:e.filter(y=>ue(y)).length}}));async function U(){$.value=!0,x.value="";try{const[a,e,i,y,p,B,re]=await Promise.all([c.kooExtensionVersions(),c.kooExtensionAnnouncements(),c.kooExtensionStats(),c.kooExtensionAds(),c.kooExtensionFeatureBadges(),c.kooExtensionAuthSessions(),c.kooExtensionTrialPolicy()]);X.value=a.items||[],H.value=e.items||[],G.value=i.stats||null,M.value=y.items||[],W.value=p.items||[],oe.value=B.items||[],E.value=re.item||{...ee},z.value={trial_days:E.value.trial_days??ee.trial_days,allowed_capabilities:[...E.value.allowed_capabilities||[]],allowed_scopes:[...E.value.allowed_scopes||[]]}}catch(a){x.value=a.message||"加载失败"}finally{$.value=!1}}function Ze(a){V.value={id:a.id,version:a.version,download_url:a.download_url,release_notes:a.release_notes||"",is_latest:!!a.is_latest,is_force_update:!!a.is_force_update},C.value="versions"}function xe(){V.value={..._e}}async function el(){f.value=!0,x.value="",w.value="";try{V.value.id?(await c.updateKooExtensionVersion(V.value),w.value="版本已更新"):(await c.createKooExtensionVersion(V.value),w.value="版本已创建"),xe(),await U()}catch(a){x.value=a.message||"保存失败"}finally{f.value=!1}}async function ll(a){window.confirm("确定删除这个版本吗?")&&(await c.deleteKooExtensionVersion(a),await U())}async function tl(a){await c.setLatestKooExtensionVersion(a),await U()}function al(a){_.value={id:a.id,title:a.title,content:a.content||"",content_type:a.content_type||"html",priority:a.priority||0,is_active:!!a.is_active,start_time:I(a.start_time),end_time:I(a.end_time)},C.value="announcements"}function Ce(){_.value={...fe}}async function nl(){f.value=!0,x.value="",w.value="";const a={..._.value,start_time:P(_.value.start_time),end_time:P(_.value.end_time)};try{a.id?(await c.updateKooExtensionAnnouncement(a),w.value="公告已更新"):(await c.createKooExtensionAnnouncement(a),w.value="公告已发布"),Ce(),await U()}catch(e){x.value=e.message||"保存失败"}finally{f.value=!1}}async function sl(a){window.confirm("确定删除这条公告吗?")&&(await c.deleteKooExtensionAnnouncement(a),await U())}async function ol(a){await c.toggleKooExtensionAnnouncement(a),await U()}function il(a){r.value={...a,placements:[...a.placements||[]],start_time:I(a.start_time),end_time:I(a.end_time)},C.value="feature-badges"}function Ae(){r.value={...Z,placements:[...Z.placements]}}function Ue(){var a,e,i;z.value={trial_days:((a=E.value)==null?void 0:a.trial_days)??ee.trial_days,allowed_capabilities:[...((e=E.value)==null?void 0:e.allowed_capabilities)||[]],allowed_scopes:[...((i=E.value)==null?void 0:i.allowed_scopes)||[]]}}async function ul(){f.value=!0,x.value="",w.value="";try{const a=await c.updateKooExtensionTrialPolicy({trial_days:z.value.trial_days,allowed_capabilities:z.value.allowed_capabilities,allowed_scopes:z.value.allowed_scopes});E.value=a.item||null,Ue(),w.value="试用策略已更新,新访客将立即按此策略校验"}catch(a){x.value=a.message||"保存失败"}finally{f.value=!1}}async function dl(){f.value=!0,x.value="",w.value="";const a={...r.value,start_time:P(r.value.start_time),end_time:P(r.value.end_time)};try{a.id?(await c.updateKooExtensionFeatureBadge(a),w.value="功能角标已更新"):(await c.createKooExtensionFeatureBadge(a),w.value="功能角标已创建"),Ae(),await U()}catch(e){x.value=e.message||"保存失败"}finally{f.value=!1}}async function rl(a){window.confirm("确定删除这个功能角标吗ï¼
1Ÿ")&&(await c.deleteKooExtensionFeatureBadge(a),await U())}async function vl(a){await c.toggleKooExtensionFeatureBadge(a),await U()}async function cl(a){if(window.confirm("确定让这个设备立即退出科跃插件吗?")){f.value=!0,x.value="",w.value="";try{await c.revokeKooExtensionAuthSession(a),w.value="插件设备登录已撤销",await U()}catch(e){x.value=e.message||"撤销失败"}finally{f.value=!1}}}function pl(a){var e;return((e=ge.find(i=>i.value===a))==null?void 0:e.label)||a||"-"}function ml(a){var e;return((e=we.find(i=>i.value===a))==null?void 0:e.label)||a||"-"}function _l(a){u.value={id:a.id,title:a.title||"",body:a.body||"",image_url:a.image_url||"",cta_label:a.cta_label||"",cta_url:a.cta_url||"",placement:a.placement||"drawer_home",priority:a.priority||0,is_active:!!a.is_active,start_time:I(a.start_time),end_time:I(a.end_time),frequency_days:a.frequency_days??1},C.value="ads"}function he(){u.value={...ye}}async function fl(){f.value=!0,x.value="",w.value="";const a={...u.value,start_time:P(u.value.start_time),end_time:P(u.value.end_time)};try{a.id?(await c.updateKooExtensionAd(a),w.value="广告已更新"):(await c.createKooExtensionAd(a),w.value="广告已发布"),he(),await U()}catch(e){x.value=e.message||"保存失败"}finally{f.value=!1}}async function yl(a){window.confirm("确定删除这条广告吗?")&&(await c.deleteKooExtensionAd(a),await U())}async function bl(a){await c.toggleKooExtensionAd(a),await U()}async function gl(){f.value=!0,x.value="",w.value="";try{const a=await c.generateKooExtensionAdSamples({force:M.value.length>0});w.value=a.created>0?`已生成 ${a.created} 条广告示例`:"广告数据已存在,无需重复生成",C.value="ads",await U()}catch(a){x.value=a.message||"生成广告示例失败"}finally{f.value=!1}}function Be(a){var e;return((e=le.find(i=>i.value===a))==null?void 0:e.label)||a||"-"}function wl(a){var e;return((e=le.find(i=>i.value===a))==null?void 0:e.description)||""}function te(a){const e=Array.isArray(a)?a[0]:a;return je.has(e)?e:"versions"}function Ee(a){if(!a)return null;const e=new Date(a).getTime();return Number.isFinite(e)?e:null}function ie(a){const e=Ee(a==null?void 0:a.start_time);return!!(a!=null&&a.is_active&&e&&e>Date.now())}function ue(a){const e=Ee(a==null?void 0:a.end_time);return!!(e&&e<Date.now())}function Se(a){return!(!(a!=null&&a.is_active)||ie(a)||ue(a))}function de(a){return a?a.is_active?ie(a)?"待投放":ue(a)?"已过期":"投放中":"停用":"未配置"}function ze(a){const e=de(a);return e==="投放中"?"success":e==="待投放"?"info":e==="已过期"?"warn":"secondary"}function T(a){return a?new Date(a).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}):"-"}function I(a){if(!a)return"";const e=new Date(a),i=e.getTimezoneOffset()*6e4;return new Date(e.getTime()-i).toISOString().slice(0,16)}function P(a){return a?new Date(a).toISOString():""}return Le(()=>L.query.tab,a=>{const e=te(a);C.value!==e&&(C.value=e)}),Le(C,a=>{const e=te(a),i=te(L.query.tab);if(e!==a){C.value=e;return}if(e===i&&(e!=="versions"||!L.query.tab))return;const y={...L.query};e==="versions"?delete y.tab:y.tab=e,Ne.replace({path:L.path,query:y})}),Vl(U),(a,e)=>{var Te,Ke,De,Oe,qe,Me;const i=K("Button"),y=K("Message"),p=K("Tag"),B=K("Card"),re=K("SelectButton"),O=K("InputText"),ve=K("Textarea"),q=K("Checkbox"),b=K("Column"),Q=K("DataTable"),R=K("InputNumber"),ce=K("Select");return d(),m("section",Bl,[l("header",El,[e[37]||(e[37]=l("div",null,[l("p",{class:"eyebrow"},"Koo Extension"),l("h1",null,"插件运营"),l("p",null,"版本、公告和客户端活跃数据集中管理。")],-1)),n(i,{severity:"secondary",outlined:"",rounded:"","aria-label":"刷新",onClick:U},{default:o(()=>[n(k(Cl),{size:18})]),_:1})]),x.value?(d(),S(y,{key:0,severity:"error",closable:!1},{default:o(()=>[v(s(x.value),1)]),_:1})):h("",!0),w.value?(d(),S(y,{key:1,severity:"success",closable:!1},{default:o(()=>[v(s(w.value),1)]),_:1})):h("",!0),l("section",Sl,[l("article",zl,[l("div",Tl,[n(k(Al),{size:18})]),e[38]||(e[38]=l("span",null,"最新版本",-1)),l("strong",null,s(((Te=D.value)==null?void 0:Te.version)||"-"),1),l("small",null,s((Ke=D.value)!=null&&Ke.is_force_update?"强制升级":"常规升级"),1)]),l("article",Kl,[l("div",Dl,[n(k(Ul),{size:18})]),e[39]||(e[39]=l("span",null,"有效公告",-1)),l("strong",null,s(Qe.value),1),l("small",null,"共 "+s(H.value.length)+" 条",1)]),l("article",Ol,[l("div",ql,[n(k(pe),{size:18})]),e[40]||(e[40]=l("span",null,"有效广告",-1)),l("strong",null,s(Je.value),1),l("small",null,"共 "+s(M.value.length)+" 条",1)]),l("article",Ml,[l("div",$l,[n(k(Ie),{size:18})]),e[41]||(e[41]=l("span",null,"功能角标",-1)),l("strong",null,s(Ye.value),1),l("small",null,"共 "+s(W.value.length)+" 条",1)]),l("article",Fl,[l("div",Ll,[n(k(hl),{size:18})]),e[42]||(e[42]=l("span",null,"总设备数",-1)),l("strong",null,s(((De=G.value)==null?void 0:De.total_users)??"-"),1),l("small",null,"今日活跃 "+s(((Oe=G.value)==null?void 0:Oe.today_dau)??"-"),1)]),l("article",Il,[l("div",Pl,[n(k(Pe),{size:18})]),e[43]||(e[43]=l("span",null,"周活跃",-1)),l("strong",null,s(((qe=G.value)==null?void 0:qe.weekly_active)??"-"),1),l("small",null,s(T((Me=G.value)==null?void 0:Me.update_time)),1)])]),n(B,{class:"extension-latest-card"},{content:o(()=>[l("div",Rl,[e[44]||(e[44]=l("div",null,[l("p",{class:"eyebrow"},"Download Source"),l("h2",null,"当前插件下载版本"),l("span",null,"版本号、下载链接和更新说明直接读取版本管理里标记为“最新”的记录。")],-1)),n(p,{severity:D.value?"success":"secondary",rounded:""},{default:o(()=>[v(s(D.value?"已同步版本管理":"未配置最新版本"),1)]),_:1},8,["severity"])]),D.value?(d(),m("div",Nl,[l("dl",jl,[l("div",null,[e[45]||(e[45]=l("dt",null,"版本号",-1)),l("dd",null,s(D.value.version),1
1)]),l("div",null,[e[46]||(e[46]=l("dt",null,"下载链接",-1)),l("dd",null,[l("a",{href:D.value.download_url,target:"_blank",rel:"noreferrer"},s(D.value.download_url),9,Hl)])]),l("div",null,[e[47]||(e[47]=l("dt",null,"更新时间",-1)),l("dd",null,s(T(D.value.updated_at)),1)]),l("div",null,[e[48]||(e[48]=l("dt",null,"升级策略",-1)),l("dd",null,s(D.value.is_force_update?"强制升级":"常规升级"),1)])]),l("div",Wl,[e[49]||(e[49]=l("span",null,"更新说明",-1)),l("pre",null,s(D.value.release_notes||"暂无更新说明"),1)])])):(d(),m("p",Gl," 暂无最新版本。请在下方版本管理中创建版本,并勾选“设为最新版本”。 "))]),_:1}),l("div",Ql,[n(re,{modelValue:C.value,"onUpdate:modelValue":e[0]||(e[0]=t=>C.value=t),options:be,"option-label":"label","option-value":"value"},null,8,["modelValue"])]),C.value==="versions"?(d(),m("section",Yl,[n(B,{class:"form-panel"},{content:o(()=>[l("form",{class:"stack-form",onSubmit:J(el,["prevent"])},[l("div",Jl,[l("h2",null,s(V.value.id?"编辑版本":"新增版本"),1),V.value.id?(d(),S(p,{key:0,severity:"secondary",rounded:""},{default:o(()=>[v("#"+s(V.value.id),1)]),_:1})):h("",!0)]),l("label",null,[e[50]||(e[50]=l("span",null,"版本号",-1)),n(O,{modelValue:V.value.version,"onUpdate:modelValue":e[1]||(e[1]=t=>V.value.version=t),modelModifiers:{trim:!0},placeholder:"1.8.2",required:""},null,8,["modelValue"])]),l("label",null,[e[51]||(e[51]=l("span",null,"下载链接",-1)),n(O,{modelValue:V.value.download_url,"onUpdate:modelValue":e[2]||(e[2]=t=>V.value.download_url=t),modelModifiers:{trim:!0},placeholder:"https://...",required:""},null,8,["modelValue"])]),l("label",null,[e[52]||(e[52]=l("span",null,"更新说明",-1)),n(ve,{modelValue:V.value.release_notes,"onUpdate:modelValue":e[3]||(e[3]=t=>V.value.release_notes=t),rows:"6","auto-resize":""},null,8,["modelValue"])]),l("div",Xl,[l("label",Zl,[n(q,{modelValue:V.value.is_latest,"onUpdate:modelValue":e[4]||(e[4]=t=>V.value.is_latest=t),"input-id":"version-latest",binary:""},null,8,["modelValue"]),e[53]||(e[53]=l("span",null,"设为最新版本",-1))]),l("label",et,[n(q,{modelValue:V.value.is_force_update,"onUpdate:modelValue":e[5]||(e[5]=t=>V.value.is_force_update=t),"input-id":"version-force",binary:""},null,8,["modelValue"]),e[54]||(e[54]=l("span",null,"强制升级",-1))])]),l("div",lt,[n(i,{type:"button",severity:"secondary",outlined:"",label:"清空",onClick:xe}),n(i,{type:"submit",loading:f.value},{default:o(()=>[V.value.id?(d(),S(k(me),{key:1,size:17})):(d(),S(k(Re),{key:0,size:17})),l("span",null,s(V.value.id?"保存版本":"创建版本"),1)]),_:1},8,["loading"])])],32)]),_:1}),n(B,{class:"table-section"},{content:o(()=>[l("div",tt,[e[55]||(e[55]=l("h2",null,"版本列表",-1)),n(p,{severity:"secondary",rounded:""},{default:o(()=>[v(s(X.value.length)+" 条",1)]),_:1})]),n(Q,{value:X.value,size:"small","show-gridlines":"","striped-rows":"",loading:$.value,class:"prime-data-table"},{default:o(()=>[n(b,{field:"version",header:"版本",sortable:""},{body:o(({data:t})=>[l("div",at,[l("strong",null,s(t.version),1),l("small",null,s(T(t.updated_at)),1)])]),_:1}),n(b,{field:"is_latest",header:"状态"},{body:o(({data:t})=>[l("div",nt,[t.is_latest?(d(),S(p,{key:0,severity:"success",rounded:""},{default:o(()=>[...e[56]||(e[56]=[v("最新",-1)])]),_:1})):h("",!0),t.is_force_update?(d(),S(p,{key:1,severity:"danger",rounded:""},{default:o(()=>[...e[57]||(e[57]=[v("强制",-1)])]),_:1})):h("",!0)])]),_:1}),n(b,{header:""},{body:o(({data:t})=>[l("div",st,[t.is_latest?h("",!0):(d(),S(i,{key:0,severity:"success",outlined:"",rounded:"","aria-label":"设为最新",onClick:g=>tl(t.id)},{default:o(()=>[n(k(me),{size:16})]),_:1},8,["onClick"])),n(i,{severity:"secondary",outlined:"",rounded:"",label:"编辑",onClick:g=>Ze(t)},null,8,["onClick"]),n(i,{severity:"danger",outlined:"",rounded:"","aria-label":"删除",onClick:g=>ll(t.id)},{default:o(()=>[n(k(se),{size:16})]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["value","loading"])]),_:1})])):C.value==="announcements"?(d(),m("section",ot,[n(B,{class:"form-panel"},{content:o(()=>[l("form",{class:"stack-form",onSubmit:J(nl,["prevent"])},[l("div",it,[l("h2",null,s(_.value.id?"编辑公告":"发布公告"),1),_.value.id?(d(),S(p,{key:0,severity:"secondary",rounded:""},{default:o(()=>[v("#"+s(_.value.id),1)]),_:1})):h("",!0)]),l("label",null,[e[58]||(e[58]=l("span",null,"标题",-1)),n(O,{modelValue:_.value.title,"onUpdate:modelValue":e[6]||(e[6]=t=>_.value.title=t),modelModifiers:{trim:!0},required:""},null,8,["modelValue"])]),l("label",null,[e[59]||(e[59]=l("span",null,"HTML 内容",-1)),n(ve,{modelValue:_.value.content,"onUpdate:modelValue":e[7]||
1(e[7]=t=>_.value.content=t),rows:"10","auto-resize":"",required:""},null,8,["modelValue"])]),l("div",ut,[l("label",null,[e[60]||(e[60]=l("span",null,"优先级",-1)),n(R,{modelValue:_.value.priority,"onUpdate:modelValue":e[8]||(e[8]=t=>_.value.priority=t),min:0,max:100,fluid:""},null,8,["modelValue"])]),l("label",dt,[n(q,{modelValue:_.value.is_active,"onUpdate:modelValue":e[9]||(e[9]=t=>_.value.is_active=t),"input-id":"announcement-active",binary:""},null,8,["modelValue"]),e[61]||(e[61]=l("span",null,"启用",-1))])]),l("div",rt,[l("label",null,[e[62]||(e[62]=l("span",null,"开始时间",-1)),N(l("input",{"onUpdate:modelValue":e[10]||(e[10]=t=>_.value.start_time=t),class:"native-control",type:"datetime-local"},null,512),[[j,_.value.start_time]])]),l("label",null,[e[63]||(e[63]=l("span",null,"结束时间",-1)),N(l("input",{"onUpdate:modelValue":e[11]||(e[11]=t=>_.value.end_time=t),class:"native-control",type:"datetime-local"},null,512),[[j,_.value.end_time]])])]),l("div",vt,[n(i,{type:"button",severity:"secondary",outlined:"",label:"清空",onClick:Ce}),n(i,{type:"submit",loading:f.value},{default:o(()=>[n(k(Pe),{size:17}),l("span",null,s(_.value.id?"保存公告":"发布公告"),1)]),_:1},8,["loading"])])],32)]),_:1}),n(B,{class:"table-section"},{content:o(()=>[l("div",ct,[e[64]||(e[64]=l("h2",null,"公告列表",-1)),n(p,{severity:"secondary",rounded:""},{default:o(()=>[v(s(H.value.length)+" 条",1)]),_:1})]),n(Q,{value:H.value,size:"small","show-gridlines":"","striped-rows":"",loading:$.value,class:"prime-data-table"},{default:o(()=>[n(b,{field:"title",header:"公告",sortable:""},{body:o(({data:t})=>[l("div",pt,[l("strong",null,s(t.title),1),l("small",null,s(T(t.start_time))+" - "+s(t.end_time?T(t.end_time):"长期"),1)])]),_:1}),n(b,{field:"priority",header:"优先级",sortable:""}),n(b,{field:"is_active",header:"状态"},{body:o(({data:t})=>[n(p,{severity:t.is_active?"success":"secondary",rounded:""},{default:o(()=>[v(s(t.is_active?"启用":"停用"),1)]),_:2},1032,["severity"])]),_:1}),n(b,{header:""},{body:o(({data:t})=>[l("div",mt,[n(i,{severity:"secondary",outlined:"",rounded:"",label:t.is_active?"停用":"启用",onClick:g=>ol(t.id)},null,8,["label","onClick"]),n(i,{severity:"secondary",outlined:"",rounded:"",label:"编辑",onClick:g=>al(t)},null,8,["onClick"]),n(i,{severity:"danger",outlined:"",rounded:"","aria-label":"删除",onClick:g=>sl(t.id)},{default:o(()=>[n(k(se),{size:16})]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["value","loading"]),_.value.content?(d(),m("div",_t,[e[65]||(e[65]=l("strong",null,"预览",-1)),l("pre",null,s(_.value.content),1)])):h("",!0)]),_:1})])):C.value==="feature-badges"?(d(),m("section",ft,[n(B,{class:"form-panel"},{content:o(()=>[l("form",{class:"stack-form",onSubmit:J(dl,["prevent"])},[l("div",yt,[l("h2",null,s(r.value.id?"编辑功能角标":"新增功能角标"),1),r.value.id?(d(),S(p,{key:0,severity:"secondary",rounded:""},{default:o(()=>[v("#"+s(r.value.id),1)]),_:1})):h("",!0)]),l("div",bt,[l("label",null,[e[66]||(e[66]=l("span",null,"对应功能",-1)),n(ce,{modelValue:r.value.feature_id,"onUpdate:modelValue":e[12]||(e[12]=t=>r.value.feature_id=t),options:ge,"option-label":"label","option-value":"value"},null,8,["modelValue"])]),l("label",null,[e[67]||(e[67]=l("span",null,"角标文字",-1)),n(O,{modelValue:r.value.label,"onUpdate:modelValue":e[13]||(e[13]=t=>r.value.label=t),modelModifiers:{trim:!0},maxlength:"12",placeholder:"NEW",required:""},null,8,["modelValue"])])]),l("label",null,[e[68]||(e[68]=l("span",null,"展示位置",-1)),l("div",gt,[(d(),m(ae,null,ne(He,t=>l("label",{key:t.value,class:"check-row"},[n(q,{modelValue:r.value.placements,"onUpdate:modelValue":e[14]||(e[14]=g=>r.value.placements=g),"input-id":`badge-placement-${t.value}`,value:t.value},null,8,["modelValue","input-id","value"]),l("span",null,s(t.label),1)])),64))])]),l("label",null,[e[69]||(e[69]=l("span",null,"消失策略",-1)),n(ce,{modelValue:r.value.dismiss_mode,"onUpdate:modelValue":e[15]||(e[15]=t=>r.value.dismiss_mode=t),options:we,"option-label":"label","option-value":"value"}
1,null,8,["modelValue"])]),l("div",wt,[l("label",null,[e[70]||(e[70]=l("span",null,"活动版本",-1)),n(R,{modelValue:r.value.campaign_version,"onUpdate:modelValue":e[16]||(e[16]=t=>r.value.campaign_version=t),min:1,max:9999,fluid:""},null,8,["modelValue"])]),l("label",null,[e[71]||(e[71]=l("span",null,"优先级",-1)),n(R,{modelValue:r.value.priority,"onUpdate:modelValue":e[17]||(e[17]=t=>r.value.priority=t),min:0,max:100,fluid:""},null,8,["modelValue"])])]),l("div",Vt,[l("label",null,[e[72]||(e[72]=l("span",null,"适用最低插件版本",-1)),n(O,{modelValue:r.value.min_version,"onUpdate:modelValue":e[18]||(e[18]=t=>r.value.min_version=t),modelModifiers:{trim:!0},placeholder:"3.3.0"},null,8,["modelValue"])]),l("label",null,[e[73]||(e[73]=l("span",null,"适用最高插件版本",-1)),n(O,{modelValue:r.value.max_version,"onUpdate:modelValue":e[19]||(e[19]=t=>r.value.max_version=t),modelModifiers:{trim:!0},placeholder:"留空表示不限"},null,8,["modelValue"])])]),l("div",kt,[l("label",null,[e[74]||(e[74]=l("span",null,"开始时间",-1)),N(l("input",{"onUpdate:modelValue":e[20]||(e[20]=t=>r.value.start_time=t),class:"native-control",type:"datetime-local"},null,512),[[j,r.value.start_time]])]),l("label",null,[e[75]||(e[75]=l("span",null,"结束时间",-1)),N(l("input",{"onUpdate:modelValue":e[21]||(e[21]=t=>r.value.end_time=t),class:"native-control",type:"datetime-local"},null,512),[[j,r.value.end_time]])])]),l("label",xt,[n(q,{modelValue:r.value.is_active,"onUpdate:modelValue":e[22]||(e[22]=t=>r.value.is_active=t),"input-id":"feature-badge-active",binary:""},null,8,["modelValue"]),e[76]||(e[76]=l("span",null,"启用",-1))]),l("div",Ct,[n(i,{type:"button",severity:"secondary",outlined:"",label:"清空",onClick:Ae}),n(i,{type:"submit",loading:f.value},{default:o(()=>[n(k(Ie),{size:17}),l("span",null,s(r.value.id?"保存角标":"创建角标"),1)]),_:1},8,["loading"])])],32)]),_:1}),n(B,{class:"table-section"},{content:o(()=>[l("div",At,[e[77]||(e[77]=l("div",null,[l("h2",null,"功能角标列表"),l("p",null,"点击使用状态由插件设备本地记录,活动版本递增后会再次展示。")],-1)),n(p,{severity:"secondary",rounded:""},{default:o(()=>[v(s(W.value.length)+" 条",1)]),_:1})]),n(Q,{value:W.value,size:"small","show-gridlines":"","striped-rows":"",loading:$.value,class:"prime-data-table"},{default:o(()=>[n(b,{field:"feature_id",header:"功能",sortable:""},{body:o(({data:t})=>[l("div",Ut,[l("strong",null,s(pl(t.feature_id)),1),l("small",null,s(t.feature_id)+" · 活动 v"+s(t.campaign_version),1)])]),_:1}),n(b,{field:"label",header:"角标"},{body:o(({data:t})=>[n(p,{severity:"info",rounded:""},{default:o(()=>[v(s(t.label),1)]),_:2},1024)]),_:1}),n(b,{field:"dismiss_mode",header:"消失策略"},{body:o(({data:t})=>[v(s(ml(t.dismiss_mode)),1)]),_:1}),n(b,{field:"is_active",header:"状态"},{body:o(({data:t})=>[n(p,{severity:t.is_active?"success":"secondary",rounded:""},{default:o(()=>[v(s(t.is_active?"启用":"停用"),1)]),_:2},1032,["severity"])]),_:1}),n(b,{header:""},{body:o(({data:t})=>[l("div",ht,[n(i,{severity:"secondary",outlined:"",rounded:"",label:t.is_active?"停用":"启用",onClick:g=>vl(t.id)},null,8,["label","onClick"]),n(i,{severity:"secondary",outlined:"",rounded:"",label:"编辑",onClick:g=>il(t)},null,8,["onClick"]),n(i,{severity:"danger",outlined:"",rounded:"","aria-label":"删除",onClick:g=>rl(t.id)},{default:o(()=>[n(k(se),{size:16})]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["value","loading"])]),_:1})])):C.value==="trial-policy"?(d(),m("section",Bt,[n(B,{class:"form-panel"},{content:o(()=>[l("form",{class:"stack-form",onSubmit:J(ul,["prevent"])},[l("div",Et,[e[78]||(e[78]=l("div",null,[l("h2",null,"新装试用策略"),l("p",null,"体验凭证按安装实例由后台校验,到期后必须登录账户。")],-1)),n(p,{severity:"info",rounded:""},{default:o(()=>[v(s(z.value.trial_days)+" 天",1)]),_:1})]),l("label",null,[e[79]||(e[79]=l("span",null,"试用时长(天)",-1)),n(R,{modelValue:z.value.trial_days,"onUpdate:modelValue":e[23]||(e[23]=t=>z.value.trial_days=t),min:1,max:30,fluid:""},null,8,["modelValue"])]),l("label",null,[e[80]||(e[80]=l("span",null,"试用期间可用功能",-1)),l("div",St,[(d(!0),m(
1ae,null,ne(We.value,t=>(d(),m("label",{key:t.value,class:"check-row"},[n(q,{modelValue:z.value.allowed_capabilities,"onUpdate:modelValue":e[24]||(e[24]=g=>z.value.allowed_capabilities=g),"input-id":`trial-capability-${t.value}`,value:t.value},null,8,["modelValue","input-id","value"]),l("span",null,s(t.label),1)]))),128))])]),l("label",null,[e[81]||(e[81]=l("span",null,"试用期间接口权限",-1)),l("div",zt,[(d(!0),m(ae,null,ne(Ge.value,t=>(d(),m("label",{key:t.value,class:"check-row"},[n(q,{modelValue:z.value.allowed_scopes,"onUpdate:modelValue":e[25]||(e[25]=g=>z.value.allowed_scopes=g),"input-id":`trial-scope-${t.value}`,value:t.value},null,8,["modelValue","input-id","value"]),l("span",null,s(t.label),1)]))),128))])]),n(y,{severity:"warn",closable:!1},{default:o(()=>[...e[82]||(e[82]=[v(" AI 产品体检和所有模型工作流始终要求登录账户,不属于试用范围。 ",-1)])]),_:1}),l("div",Tt,[n(i,{type:"button",severity:"secondary",outlined:"",label:"还原",onClick:Ue}),n(i,{type:"submit",loading:f.value},{default:o(()=>[n(k(me),{size:17}),e[83]||(e[83]=l("span",null,"保存试用策略",-1))]),_:1},8,["loading"])])],32)]),_:1}),n(B,{class:"table-section"},{content:o(()=>{var t,g,$e,Fe;return[l("div",Kt,[e[85]||(e[85]=l("div",null,[l("h2",null,"当前生效策略"),l("p",null,"已开始的试用按首次安装时间计算;调整天数会影响尚未到期的体验凭证。")],-1)),n(p,{severity:"success",rounded:""},{default:o(()=>[...e[84]||(e[84]=[v("后台校验",-1)])]),_:1})]),l("dl",Dt,[l("div",null,[e[86]||(e[86]=l("dt",null,"体验时长",-1)),l("dd",null,s(((t=E.value)==null?void 0:t.trial_days)??"-")+" 天",1)]),l("div",null,[e[87]||(e[87]=l("dt",null,"最近更新",-1)),l("dd",null,s(T((g=E.value)==null?void 0:g.updated_at)),1)]),l("div",null,[e[88]||(e[88]=l("dt",null,"开放功能",-1)),l("dd",null,s(((($e=E.value)==null?void 0:$e.allowed_capabilities)||[]).map(Y=>Ve[Y]||Y).join("、")||"未开放"),1)]),l("div",null,[e[89]||(e[89]=l("dt",null,"接口权限",-1)),l("dd",null,s((((Fe=E.value)==null?void 0:Fe.allowed_scopes)||[]).map(Y=>ke[Y]||Y).join("、")||"未开放"),1)])])]}),_:1})])):C.value==="auth-sessions"?(d(),m("section",Ot,[n(B,{class:"table-section"},{content:o(()=>[l("div",qt,[e[90]||(e[90]=l("div",null,[l("h2",null,"插件登录设备"),l("p",null,"仅展示设备会话摘要,不保存或展示访问凭证。撤销后该设备需要重新登录。")],-1)),n(p,{severity:"secondary",rounded:""},{default:o(()=>[v(s(oe.value.length)+" 个",1)]),_:1})]),n(Q,{value:oe.value,size:"small","show-gridlines":"","striped-rows":"",loading:$.value,class:"prime-data-table"},{default:o(()=>[n(b,{field:"username",header:"账号",sortable:""}),n(b,{field:"last_used_at",header:"最近使用",sortable:""},{body:o(({data:t})=>[v(s(T(t.last_used_at)),1)]),_:1}),n(b,{field:"refresh_expires_at",header:"自动登录到期"},{body:o(({data:t})=>[v(s(T(t.refresh_expires_at)),1)]),_:1}),n(b,{field:"is_active",header:"状态"},{body:o(({data:t})=>[n(p,{severity:t.is_active?"success":"secondary",rounded:""},{default:o(()=>[v(s(t.is_active?"有效":"已失效"),1)]),_:2},1032,["severity"])]),_:1}),n(b,{header:""},{body:o(({data:t})=>[t.is_active?(d(),S(i,{key:0,severity:"danger",outlined:"",rounded:"",label:"撤销设备",loading:f.value,onClick:g=>cl(t.id)},null,8,["loading","onClick"])):h("",!0)]),_:1})]),_:1},8,["value","loading"])]),_:1})])):C.value==="ads"?(d(),m("section",Mt,[n(B,{class:"ad-display-module"},{content:o(()=>[l("div",$t,[e[92]||(e[92]=l("div",null,[l("h2",null,"广告展示模块"),l("p",null,"按插件端投放位置预览当前会下发的广告,优先级越高越靠前。")],-1)),n(i,{severity:"secondary",outlined:"",loading:f.value,onClick:gl},{default:o(()=>[n(k(Re),{size:16}),e[91]||(e[91]=l("span",null,"生成示例广告",-1))]),_:1},8,["loading"])]),l("div",Ft,[(d(!0),m(ae,null,ne(Xe.value,t=>(d(),m("article",{key:t.value,class:"ad-placement-card"},[l("div",Lt,[l("div",null,[l("span",null,s(t.label),1),l("strong",null,s(t.value),1),l("p",It,s(t.description),1)]),n(p,{severity:t.activeCount?"success":"secondary",rounded:""},{default:o(()=>[v(s(t.activeCount)+" 条投放中 ",1)]),_:2}
1,1032,["severity"])]),t.topAd?(d(),m("div",Pt,[l("div",Rt,[t.topAd.image_url?(d(),m("img",{key:0,src:t.topAd.image_url,alt:""},null,8,Nt)):(d(),S(k(pe),{key:1,size:20}))]),l("div",jt,[l("div",Ht,[l("h3",null,s(t.topAd.title),1),n(p,{severity:ze(t.topAd),rounded:""},{default:o(()=>[v(s(de(t.topAd)),1)]),_:2},1032,["severity"])]),l("p",null,s(t.topAd.body||"暂无广告文案"),1),l("div",Wt,[l("span",null,"优先级 "+s(t.topAd.priority),1),l("span",null,"频控 "+s(t.topAd.frequency_days)+" 天",1),l("span",null,s(T(t.topAd.start_time))+" - "+s(t.topAd.end_time?T(t.topAd.end_time):"长期"),1)]),t.topAd.cta_url?(d(),m("a",{key:0,href:t.topAd.cta_url,target:"_blank",rel:"noreferrer"},s(t.topAd.cta_label||"立即查看"),9,Gt)):h("",!0)])])):(d(),m("div",Qt," 暂无广告。点击生成示例广告,或在下方手动发布。 ")),l("div",Yt,[l("span",null,"全部 "+s(t.items.length),1),l("span",null,"停用 "+s(t.pausedCount),1),l("span",null,"待投放 "+s(t.scheduledCount),1),l("span",null,"过期 "+s(t.expiredCount),1)])]))),128))])]),_:1}),l("div",Jt,[n(B,{class:"form-panel"},{content:o(()=>[l("form",{class:"stack-form",onSubmit:J(fl,["prevent"])},[l("div",Xt,[l("h2",null,s(u.value.id?"编辑广告":"发布广告"),1),u.value.id?(d(),S(p,{key:0,severity:"secondary",rounded:""},{default:o(()=>[v("#"+s(u.value.id),1)]),_:1})):h("",!0)]),l("label",null,[e[93]||(e[93]=l("span",null,"标题",-1)),n(O,{modelValue:u.value.title,"onUpdate:modelValue":e[26]||(e[26]=t=>u.value.title=t),modelModifiers:{trim:!0},required:""},null,8,["modelValue"])]),l("label",null,[e[94]||(e[94]=l("span",null,"文案",-1)),n(ve,{modelValue:u.value.body,"onUpdate:modelValue":e[27]||(e[27]=t=>u.value.body=t),rows:"4","auto-resize":""},null,8,["modelValue"])]),l("div",Zt,[l("label",null,[e[95]||(e[95]=l("span",null,"投放位置",-1)),n(ce,{modelValue:u.value.placement,"onUpdate:modelValue":e[28]||(e[28]=t=>u.value.placement=t),options:le,"option-label":"label","option-value":"value"},null,8,["modelValue"]),l("small",ea,s(wl(u.value.placement)),1)]),l("label",null,[e[96]||(e[96]=l("span",null,"优先级",-1)),n(R,{modelValue:u.value.priority,"onUpdate:modelValue":e[29]||(e[29]=t=>u.value.priority=t),min:0,max:100,fluid:""},null,8,["modelValue"])])]),l("div",la,[l("label",null,[e[97]||(e[97]=l("span",null,"CTA 文案",-1)),n(O,{modelValue:u.value.cta_label,"onUpdate:modelValue":e[30]||(e[30]=t=>u.value.cta_label=t),modelModifiers:{trim:!0},placeholder:"立即查看"},null,8,["modelValue"])]),l("label",null,[e[98]||(e[98]=l("span",null,"频控天数",-1)),n(R,{modelValue:u.value.frequency_days,"onUpdate:modelValue":e[31]||(e[31]=t=>u.value.frequency_days=t),min:0,max:365,fluid:""},null,8,["modelValue"])])]),l("label",null,[e[99]||(e[99]=l("span",null,"CTA 链接",-1)),n(O,{modelValue:u.value.cta_url,"onUpdate:modelValue":e[32]||(e[32]=t=>u.value.cta_url=t),modelModifiers:{trim:!0},placeholder:"https://..."},null,8,["modelValue"])]),l("label",null,[e[100]||(e[100]=l("span",null,"图片 / 徽标 URL",-1)),n(O,{modelValue:u.value.image_url,"onUpdate:modelValue":e[33]||(e[33]=t=>u.value.image_url=t),modelModifiers:{trim:!0},placeholder:"https://..."},null,8,["modelValue"])]),l("div",ta,[l("label",null,[e[101]||(e[101]=l("span",null,"开始时间",-1)),N(l("input",{"onUpdate:modelValue":e[34]||(e[34]=t=>u.value.start_time=t),class:"native-control",type:"datetime-local"},null,512),[[j,u.value.start_time]])]),l("label",null,[e[102]||(e[102]=l("span",null,"结束时间",-1)),N(l("input",{"onUpdate:modelValue":e[35]||(e[35]=t=>u.value.end_time=t),class:"native-control",type:"datetime-local"},null,512),[[j,u.value.end_time]])])]),l("label",aa,[n(q,{modelValue:u.value.is_active,"onUpdate:modelValue":e[36]||(e[36]=t=>u.value.is_active=t),"input-id":"ad-active",binary:""},null,8,["modelValue"]),e[103]||(e[103]=l("span",null,"启用",-1))]),l("div",na,[n(i,{type:"button",severity:"secondary",outlined:"",label:"清空",onClick:he}),n(i,{type:"submit",loading:f.value},{default:o(()=>[n(k(pe),{size:17}),l("span",null,s(u.value.id?"保存广告":"发布广告"),1)]),_:1},8,["loading"])])],32)]),_:1}),n(B,{class:"table-section"},{content:o(()=>[l("div",sa,[e[104]||(e[104]=l("h2",null,"广告列表",-1)),n(p,{severity:"secondary",rounded:""},{default:o(()=>[v(s(M.value.length)+" 条",1)]),_:1})]),n(Q,{value:M.value,size:"small","show-gridlines":"","striped-rows":"",loading:$.value,class:"prime-data-table"},{default:o(()=>[n(b,{field:"title",header:"广告",sortable:""},{body:o(({data:t})=>
1[l("div",oa,[l("strong",null,s(t.title),1),l("small",null,s(Be(t.placement))+" · "+s(T(t.start_time))+" - "+s(t.end_time?T(t.end_time):"长期"),1)])]),_:1}),n(b,{field:"priority",header:"优先级",sortable:""}),n(b,{field:"is_active",header:"状态"},{body:o(({data:t})=>[n(p,{severity:ze(t),rounded:""},{default:o(()=>[v(s(de(t)),1)]),_:2},1032,["severity"])]),_:1}),n(b,{header:""},{body:o(({data:t})=>[l("div",ia,[n(i,{severity:"secondary",outlined:"",rounded:"",label:t.is_active?"停用":"启用",onClick:g=>bl(t.id)},null,8,["label","onClick"]),n(i,{severity:"secondary",outlined:"",rounded:"",label:"编辑",onClick:g=>_l(t)},null,8,["onClick"]),n(i,{severity:"danger",outlined:"",rounded:"","aria-label":"删除",onClick:g=>yl(t.id)},{default:o(()=>[n(k(se),{size:16})]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["value","loading"]),u.value.title||u.value.body||u.value.image_url?(d(),m("div",ua,[l("strong",null,"预览 · "+s(Be(u.value.placement)),1),l("div",null,[u.value.image_url?(d(),m("img",{key:0,src:u.value.image_url,alt:""},null,8,da)):h("",!0),l("h3",null,s(u.value.title||"广告标题"),1),l("p",null,s(u.value.body||"广告文案会显示在这里。"),1),u.value.cta_url?(d(),m("a",{key:1,href:u.value.cta_url,target:"_blank",rel:"noreferrer"},s(u.value.cta_label||"立即查看"),9,ra)):h("",!0)])])):h("",!0)]),_:1})])])):h("",!0)])}}};export{fa as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.