更新
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
.conv-page[data-v-f8276717]{display:flex;flex-direction:column;height:calc(100vh - 48px);min-height:560px}.page-header[data-v-f8276717]{flex-shrink:0;margin-bottom:16px}.conv-layout[data-v-f8276717]{flex:1;min-height:0;display:grid;grid-template-columns:320px 1fr;gap:16px}.panel[data-v-f8276717]{display:flex;flex-direction:column;min-height:0;padding:0;overflow:hidden}.list-toolbar[data-v-f8276717]{padding:16px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.dept-filter[data-v-f8276717],.search-input[data-v-f8276717]{font-size:13px}.conv-list[data-v-f8276717]{flex:1;overflow-y:auto;padding:8px}.conv-item[data-v-f8276717]{width:100%;text-align:left;padding:12px;border-radius:8px;margin-bottom:4px;transition:background .15s}.conv-item[data-v-f8276717]:hover{background:#ffffff0a}.conv-item.active[data-v-f8276717]{background:#6366f126;border:1px solid rgba(99,102,241,.35)}.conv-item-title[data-v-f8276717]{font-size:14px;font-weight:500;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv-item-meta[data-v-f8276717],.conv-item-time[data-v-f8276717]{font-size:12px;color:var(--text-muted)}.conv-item-meta[data-v-f8276717]{display:flex;justify-content:space-between;gap:8px;margin-bottom:2px}.list-pagination[data-v-f8276717]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--border);font-size:13px;color:var(--text-secondary)}.detail-header[data-v-f8276717]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 20px;border-bottom:1px solid var(--border)}.detail-header h3[data-v-f8276717]{font-size:16px;margin-bottom:4px}.detail-meta[data-v-f8276717]{font-size:13px;color:var(--text-secondary);display:flex;flex-wrap:wrap;gap:4px}.messages-scroll[data-v-f8276717]{flex:1;overflow-y:auto;padding:20px}.messages[data-v-f8276717]{display:flex;flex-direction:column;gap:16px}.message[data-v-f8276717]{display:flex;gap:10px;max-width:85%}.message.user[data-v-f8276717]{flex-direction:row-reverse;align-self:flex-end}.message.assistant[data-v-f8276717]{align-self:flex-start}.message-avatar[data-v-f8276717]{flex-shrink:0;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;background:var(--bg-tertiary);color:var(--text-secondary)}.message.user .message-avatar[data-v-f8276717]{background:var(--accent);color:#fff}.message-body[data-v-f8276717]{min-width:0}.message-content[data-v-f8276717]{padding:10px 14px;border-radius:12px;background:var(--bg-tertiary);font-size:14px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.message.user .message-content[data-v-f8276717]{background:#6366f133;border:1px solid rgba(99,102,241,.3)}.message-time[data-v-f8276717]{display:block;margin-top:4px;font-size:11px;color:var(--text-muted)}.message.user .message-time[data-v-f8276717]{text-align:right}.attachments[data-v-f8276717]{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.att-image[data-v-f8276717]{max-width:240px;max-height:180px;border-radius:8px;cursor:pointer;border:1px solid var(--border)}.att-link[data-v-f8276717]{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;font-size:13px;color:var(--text-primary)}.att-link[data-v-f8276717]:hover{border-color:var(--accent)}.detail-empty[data-v-f8276717],.empty[data-v-f8276717]{text-align:center;padding:48px 24px;color:var(--text-muted);font-size:14px}.detail-empty[data-v-f8276717]{flex:1;display:flex;align-items:center;justify-content:center}@media(max-width:900px){.conv-layout[data-v-f8276717]{grid-template-columns:1fr;grid-template-rows:280px 1fr}.conv-page[data-v-f8276717]{height:auto;min-height:calc(100vh - 48px)}}
|
||||
@@ -0,0 +1 @@
|
||||
import{_ as l,g as e,h as d,c as i,a as s,t as o,r,o as p}from"./index-z4tF8s-R.js";const u={class:"stats-grid"},v={class:"stat-card"},c={class:"stat-value"},_={class:"stat-card"},m={class:"stat-value"},g={class:"stat-card"},b={class:"stat-value"},f={class:"stat-card"},y={class:"stat-value"},w={__name:"DashboardView",setup(x){const t=r({users:0,conversations:0,messages:0,today_messages:0});return e(async()=>{const n=await d.get("/admin/stats");t.value=n.data.data}),(n,a)=>(p(),i("div",null,[a[8]||(a[8]=s("div",{class:"page-header"},[s("h2",null,"数据概览"),s("p",null,"系统运行统计数据")],-1)),s("div",u,[s("div",v,[a[0]||(a[0]=s("span",{class:"stat-icon"},"👥",-1)),s("span",c,o(t.value.users),1),a[1]||(a[1]=s("span",{class:"stat-label"},"用户总数",-1))]),s("div",_,[a[2]||(a[2]=s("span",{class:"stat-icon"},"💬",-1)),s("span",m,o(t.value.conversations),1),a[3]||(a[3]=s("span",{class:"stat-label"},"会话总数",-1))]),s("div",g,[a[4]||(a[4]=s("span",{class:"stat-icon"},"📝",-1)),s("span",b,o(t.value.messages),1),a[5]||(a[5]=s("span",{class:"stat-label"},"消息总数",-1))]),s("div",f,[a[6]||(a[6]=s("span",{class:"stat-icon"},"📈",-1)),s("span",y,o(t.value.today_messages),1),a[7]||(a[7]=s("span",{class:"stat-label"},"今日消息",-1))])])]))}},D=l(w,[["__scopeId","data-v-5214a2c8"]]);export{D as default};
|
||||
@@ -0,0 +1 @@
|
||||
.stats-grid[data-v-5214a2c8]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.stat-card[data-v-5214a2c8]{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:24px;text-align:center}.stat-icon[data-v-5214a2c8]{font-size:28px;display:block;margin-bottom:8px}.stat-value[data-v-5214a2c8]{display:block;font-size:36px;font-weight:700;color:var(--accent)}.stat-label[data-v-5214a2c8]{font-size:14px;color:var(--text-secondary);margin-top:4px}
|
||||
@@ -0,0 +1 @@
|
||||
.toolbar[data-v-1b3fb9c5]{margin-bottom:16px}.empty[data-v-1b3fb9c5]{text-align:center;padding:32px;color:var(--text-muted)}.danger[data-v-1b3fb9c5]{color:#ef4444}
|
||||
@@ -0,0 +1 @@
|
||||
import{_ as L,u as N,g as U,h as b,c as s,a as t,i as f,d as u,F as C,j as B,w as E,t as d,b as h,v as $,k as F,r as m,m as j,l as z,o,B as A}from"./index-z4tF8s-R.js";const I={class:"toolbar"},O={class:"panel"},R={class:"data-table"},T=["onClick"],q=["onClick"],G=["onClick"],H={key:0,class:"empty"},J={class:"modal"},K={class:"modal-header"},P={class:"modal-body"},Q={class:"form-group"},W={class:"form-group"},X=["value","disabled"],Y={class:"form-group"},Z={key:0,class:"form-error"},tt={__name:"DepartmentsView",setup(et){const c=N(),v=m([]),k=m([]),p=m(!1),r=m(null),i=m(""),l=j({name:"",parent_id:null,sort_order:0}),D=z(()=>v.value.filter(a=>a.id!==r.value));U(y);async function y(){const e=(await b.get("/admin/departments")).data.data||{};v.value=e.tree||[],k.value=e.list||[]}function V(a){var e;return a&&((e=k.value.find(n=>n.id===a))==null?void 0:e.name)||"-"}function g(a=null){r.value=null,l.name="",l.parent_id=a,l.sort_order=0,i.value="",p.value=!0}function M(a){r.value=a.id,l.name=a.name,l.parent_id=a.parent_id||null,l.sort_order=a.sort_order??0,i.value="",p.value=!0}function _(){p.value=!1}async function x(){if(i.value="",!l.name.trim()){i.value="请填写部门名称";return}const a={name:l.name.trim(),parent_id:l.parent_id,sort_order:l.sort_order};try{r.value?await b.put(`/admin/departments/${r.value}`,a):await b.post("/admin/departments",a),_(),await y()}catch(e){i.value=e.message||"保存失败"}}async function S(a){if(confirm(`确定删除部门「${a.name}」?`))try{await b.delete(`/admin/departments/${a.id}`),await y()}catch(e){alert(e.message||"删除失败")}}return(a,e)=>(o(),s("div",null,[e[9]||(e[9]=t("div",{class:"page-header"},[t("h2",null,"部门管理"),t("p",null,"维护组织部门层级,上级部门可查看下级部门员工聊天记录")],-1)),t("div",I,[f(c).hasButton("btn:dept:create")?(o(),s("button",{key:0,class:"btn btn-primary",onClick:e[0]||(e[0]=n=>g())},"新增部门")):u("",!0)]),t("div",O,[t("table",R,[e[4]||(e[4]=t("thead",null,[t("tr",null,[t("th",null,"部门名称"),t("th",null,"上级部门"),t("th",null,"排序"),t("th",null,"操作")])],-1)),t("tbody",null,[(o(!0),s(C,null,B(v.value,n=>(o(),s("tr",{key:n.id},[t("td",null,[t("span",{style:A({paddingLeft:`${n.depth*16}px`})},d(n.label||n.name),5)]),t("td",null,d(V(n.parent_id)),1),t("td",null,d(n.sort_order??0),1),t("td",null,[f(c).hasButton("btn:dept:create")?(o(),s("button",{key:0,class:"btn btn-ghost",onClick:w=>g(n.id)},"添加下级",8,T)):u("",!0),f(c).hasButton("btn:dept:edit")?(o(),s("button",{key:1,class:"btn btn-ghost",onClick:w=>M(n)},"编辑",8,q)):u("",!0),f(c).hasButton("btn:dept:delete")?(o(),s("button",{key:2,class:"btn btn-ghost danger",onClick:w=>S(n)},"删除",8,G)):u("",!0)])]))),128))])]),v.value.length?u("",!0):(o(),s("p",H,"暂无部门"))]),p.value?(o(),s("div",{key:0,class:"modal-overlay",onClick:E(_,["self"])},[t("div",J,[t("div",K,[t("h3",null,d(r.value?"编辑部门":"新增部门"),1),t("button",{onClick:_},"×")]),t("div",P,[t("div",Q,[e[5]||(e[5]=t("label",null,"部门名称",-1)),h(t("input",{"onUpdate:modelValue":e[1]||(e[1]=n=>l.name=n),class:"form-input"},null,512),[[$,l.name]])]),t("div",W,[e[7]||(e[7]=t("label",null,"上级部门",-1)),h(t("select",{"onUpdate:modelValue":e[2]||(e[2]=n=>l.parent_id=n),class:"form-select"},[e[6]||(e[6]=t("option",{value:null},"无(顶级部门)",-1)),(o(!0),s(C,null,B(D.value,n=>(o(),s("option",{key:n.id,value:n.id,disabled:r.value===n.id},d(n.label||n.name),9,X))),128))],512),[[F,l.parent_id]])]),t("div",Y,[e[8]||(e[8]=t("label",null,"排序",-1)),h(t("input",{"onUpdate:modelValue":e[3]||(e[3]=n=>l.sort_order=n),type:"number",class:"form-input"},null,512),[[$,l.sort_order,void 0,{number:!0}]])]),i.value?(o(),s("p",Z,d(i.value),1)):u("",!0)]),t("div",{class:"modal-footer"},[t("button",{class:"btn btn-ghost",onClick:_},"取消"),t("button",{class:"btn btn-primary",onClick:x},"保存")])])])):u("",!0)]))}},at=L(tt,[["__scopeId","data-v-1b3fb9c5"]]);export{at as default};
|
||||
@@ -0,0 +1 @@
|
||||
import{_ as b,u as h,c as i,a as e,w as y,b as d,v as p,t as c,d as w,r as a,e as V,f as x,o as v}from"./index-z4tF8s-R.js";const k={class:"login-page"},q={class:"login-card"},B={class:"form-group"},L={class:"form-group"},S={key:0,class:"form-error"},A=["disabled"],C={__name:"LoginView",setup(D){const f=V(),m=x(),g=h(),l=a(""),n=a(""),o=a(""),t=a(!1);async function _(){o.value="",t.value=!0;try{await g.login(l.value,n.value),f.push(m.query.redirect||"/dashboard")}catch(u){o.value=u.message}finally{t.value=!1}}return(u,s)=>(v(),i("div",k,[e("div",q,[s[4]||(s[4]=e("div",{class:"login-header"},[e("div",{class:"logo"},"⚙️"),e("h1",null,"AI Chat 管理后台"),e("p",null,"请使用管理员账户登录")],-1)),e("form",{onSubmit:y(_,["prevent"])},[e("div",B,[s[2]||(s[2]=e("label",null,"账号",-1)),d(e("input",{"onUpdate:modelValue":s[0]||(s[0]=r=>l.value=r),class:"form-input",placeholder:"管理员用户名或邮箱",required:""},null,512),[[p,l.value]])]),e("div",L,[s[3]||(s[3]=e("label",null,"密码",-1)),d(e("input",{"onUpdate:modelValue":s[1]||(s[1]=r=>n.value=r),type:"password",class:"form-input",placeholder:"请输入密码",required:""},null,512),[[p,n.value]])]),o.value?(v(),i("p",S,c(o.value),1)):w("",!0),e("button",{type:"submit",class:"btn btn-primary login-btn",disabled:t.value},c(t.value?"登录中...":"登录"),9,A)],32)])]))}},M=b(C,[["__scopeId","data-v-7f135f83"]]);export{M as default};
|
||||
@@ -0,0 +1 @@
|
||||
.login-page[data-v-7f135f83]{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(135deg,#0f172a,#1e1b4b)}.login-card[data-v-7f135f83]{width:100%;max-width:400px;padding:40px 32px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px}.login-header[data-v-7f135f83]{text-align:center;margin-bottom:32px}.logo[data-v-7f135f83]{font-size:48px;margin-bottom:12px}.login-header h1[data-v-7f135f83]{font-size:22px;margin-bottom:8px}.login-header p[data-v-7f135f83]{color:var(--text-secondary);font-size:14px}.login-btn[data-v-7f135f83]{width:100%;padding:12px;margin-top:8px}
|
||||
@@ -0,0 +1 @@
|
||||
.toolbar[data-v-b7a460a8]{margin-bottom:16px}.membership-grid[data-v-b7a460a8]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.membership-card[data-v-b7a460a8]{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:20px}.card-header[data-v-b7a460a8]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-header h3[data-v-b7a460a8]{font-size:18px}.slug[data-v-b7a460a8]{font-size:12px;color:var(--text-muted);background:var(--bg-tertiary);padding:2px 8px;border-radius:4px}.info-row[data-v-b7a460a8]{display:flex;justify-content:space-between;padding:8px 0;font-size:14px;border-bottom:1px solid var(--border)}.info-row span[data-v-b7a460a8]{color:var(--text-secondary)}.permissions[data-v-b7a460a8]{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;min-height:24px}.perm-tag[data-v-b7a460a8]{font-size:12px;padding:2px 8px;background:#6366f126;color:var(--accent);border-radius:4px}.field-hint[data-v-b7a460a8]{font-size:12px;color:var(--text-muted)}.card-actions[data-v-b7a460a8]{display:flex;gap:8px;margin-top:16px}.card-actions .btn[data-v-b7a460a8]{flex:1}.check-item[data-v-b7a460a8]{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:14px;cursor:pointer}.danger[data-v-b7a460a8]{color:#ef4444}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
.toolbar[data-v-16cf4364]{margin-bottom:16px}.url-cell[data-v-16cf4364]{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--text-secondary)}code[data-v-16cf4364]{background:var(--bg-tertiary);padding:2px 6px;border-radius:4px;font-size:13px}.test-result[data-v-16cf4364]{margin-top:8px;padding:12px;border-radius:8px;font-size:13px}.test-result.success[data-v-16cf4364]{background:#22c55e1f;border:1px solid rgba(34,197,94,.3);color:var(--success)}.test-result.error[data-v-16cf4364]{background:#ef44441f;border:1px solid rgba(239,68,68,.3);color:var(--danger)}.test-result p[data-v-16cf4364]{margin-top:6px;color:var(--text-secondary)}.test-result.success p[data-v-16cf4364]{color:#86efac}.reply-preview[data-v-16cf4364]{word-break:break-all}.field-hint[data-v-16cf4364]{margin-top:4px;font-size:12px;color:var(--text-secondary)}.field-hint-warn[data-v-16cf4364]{color:var(--danger)}.saved-key-hint[data-v-16cf4364]{margin-bottom:6px;font-size:12px;color:var(--success)}.saved-key-hint code[data-v-16cf4364]{background:#22c55e1f;color:var(--success)}.workflow-json[data-v-16cf4364]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.45;min-height:180px;resize:vertical}.workflow-actions[data-v-16cf4364]{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.form-row-2[data-v-16cf4364]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.btn-sm[data-v-16cf4364]{padding:6px 10px;font-size:12px}.file-btn[data-v-16cf4364]{cursor:pointer;display:inline-flex;align-items:center}@media(max-width:640px){.form-row-2[data-v-16cf4364]{grid-template-columns:1fr}}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
.toolbar[data-v-f8ed284c]{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.empty[data-v-f8ed284c]{text-align:center;padding:32px;color:var(--text-muted)}.type-badge[data-v-f8ed284c]{font-size:11px;padding:2px 6px;border-radius:4px}.type-badge.dir[data-v-f8ed284c]{background:#0ea5e926;color:#0ea5e9}.type-badge.menu[data-v-f8ed284c]{background:#6366f126;color:var(--accent)}.type-badge.btn[data-v-f8ed284c]{background:#22c55e26;color:#22c55e}.field-hint[data-v-f8ed284c]{margin-top:6px;font-size:12px;color:var(--text-muted)}.danger[data-v-f8ed284c]{color:#ef4444}
|
||||
@@ -0,0 +1 @@
|
||||
.toolbar[data-v-fc345f7d]{margin-bottom:16px}.perm-tags[data-v-fc345f7d]{display:flex;flex-wrap:wrap;gap:4px}.perm-tag[data-v-fc345f7d]{font-size:12px;padding:2px 8px;background:#6366f126;color:var(--accent);border-radius:4px}.field-hint[data-v-fc345f7d]{font-size:12px;color:var(--text-muted)}.modal-wide[data-v-fc345f7d]{max-width:640px;max-height:90vh;display:flex;flex-direction:column}.modal-wide .modal-body[data-v-fc345f7d]{overflow-y:auto}.top-check[data-v-fc345f7d]{font-weight:500}.perm-section[data-v-fc345f7d]{border:1px solid var(--border);border-radius:10px;padding:12px;background:var(--bg-tertiary)}.perm-section-header[data-v-fc345f7d]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:13px;font-weight:500}.perm-actions[data-v-fc345f7d]{display:flex;gap:4px}.perm-dir[data-v-fc345f7d]{margin-bottom:14px;padding-bottom:10px;border-bottom:1px dashed var(--border)}.perm-dir[data-v-fc345f7d]:last-child{border-bottom:none;margin-bottom:0}.dir-check[data-v-fc345f7d]{font-weight:600;margin-bottom:8px}.perm-menu[data-v-fc345f7d]{margin-left:22px;margin-bottom:8px}.perm-btns[data-v-fc345f7d]{margin-left:24px;display:flex;flex-direction:column;gap:4px}.btn-check[data-v-fc345f7d]{font-size:13px;color:var(--text-secondary)}.check-item[data-v-fc345f7d]{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:14px;cursor:pointer}.type-badge[data-v-fc345f7d]{font-size:11px;padding:1px 6px;border-radius:4px;font-weight:500}.type-badge.dir[data-v-fc345f7d]{background:#0ea5e926;color:#0ea5e9}.type-badge.menu[data-v-fc345f7d]{background:#6366f126;color:var(--accent)}.type-badge.btn[data-v-fc345f7d]{background:#22c55e26;color:#22c55e}.danger[data-v-fc345f7d]{color:#ef4444}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
import{_ as V,u as h,g as y,h as c,c as o,a as t,b as p,v as j,x as m,s as B,F as C,j as M,i as N,t as _,d as f,r as v,m as S,o as u}from"./index-z4tF8s-R.js";const U={class:"panel"},A={class:"form-group"},T={class:"form-group"},D={class:"check-item"},F={class:"panel",style:{"margin-top":"16px"}},I={class:"feature-grid"},L=["onUpdate:modelValue"],E=["disabled"],O={key:1,class:"success-msg"},R={__name:"SettingsView",setup(q){const g=h(),i=v("AI Chat"),n=v(!0),r=v(!1),d=v(!1),a=S({markdown:!0,image:!0,video:!0,voice:!0,document:!0,emoji:!0,upload_image:!0,upload_video:!0,upload_file:!0,paste_image:!0}),b={markdown:"Markdown 解析",image:"图片解析",video:"视频解析",voice:"语音解析",document:"文档解析",emoji:"表情",upload_image:"上传图片",upload_video:"上传视频",upload_file:"上传文件",paste_image:"粘贴图片"};y(async()=>{var s;const e=(await c.get("/admin/settings")).data.data;e.site_name&&(i.value=e.site_name.value),e.allow_register&&(n.value=e.allow_register.value===!0||e.allow_register.value==="true"),(s=e.features)!=null&&s.value&&Object.assign(a,e.features.value)});async function w(){r.value=!0,d.value=!1;try{await c.put("/admin/settings",{site_name:i.value,allow_register:n.value?"true":"false",features:{...a}}),d.value=!0,setTimeout(()=>{d.value=!1},3e3)}finally{r.value=!1}}return(x,e)=>(u(),o("div",null,[e[7]||(e[7]=t("div",{class:"page-header"},[t("h2",null,"系统设置"),t("p",null,"控制前端功能开关与站点配置")],-1)),t("div",U,[e[4]||(e[4]=t("h3",{class:"section-title"},"站点配置",-1)),t("div",A,[e[2]||(e[2]=t("label",null,"站点名称",-1)),p(t("input",{"onUpdate:modelValue":e[0]||(e[0]=s=>i.value=s),class:"form-input"},null,512),[[j,i.value]])]),t("div",T,[t("label",D,[p(t("input",{type:"checkbox","onUpdate:modelValue":e[1]||(e[1]=s=>n.value=s)},null,512),[[m,n.value]]),e[3]||(e[3]=B(" 允许用户注册 ",-1))])])]),t("div",F,[e[5]||(e[5]=t("h3",{class:"section-title"},"功能开关(会员端)",-1)),e[6]||(e[6]=t("p",{class:"section-desc"},"关闭后,会员端对应功能将不可用",-1)),t("div",I,[(u(!0),o(C,null,M(a,(s,l)=>(u(),o("label",{key:l,class:"feature-item"},[p(t("input",{type:"checkbox","onUpdate:modelValue":k=>a[l]=k},null,8,L),[[m,a[l]]]),t("span",null,_(b[l]||l),1)]))),128))]),N(g).hasButton("btn:settings:save")?(u(),o("button",{key:0,class:"btn btn-primary",onClick:w,disabled:r.value},_(r.value?"保存中...":"保存全部设置"),9,E)):f("",!0),d.value?(u(),o("p",O,"保存成功")):f("",!0)])]))}},G=V(R,[["__scopeId","data-v-75cd9393"]]);export{G as default};
|
||||
@@ -0,0 +1 @@
|
||||
.section-title[data-v-75cd9393]{font-size:16px;margin-bottom:16px}.section-desc[data-v-75cd9393]{font-size:13px;color:var(--text-secondary);margin-bottom:16px}.feature-grid[data-v-75cd9393]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:20px}.feature-item[data-v-75cd9393]{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}.feature-item input[data-v-75cd9393]{accent-color:var(--accent)}.check-item[data-v-75cd9393]{display:flex;align-items:center;gap:8px;cursor:pointer}.success-msg[data-v-75cd9393]{color:var(--success);font-size:14px;margin-top:12px}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
.toolbar[data-v-921bbcc9]{margin-bottom:16px}.empty[data-v-921bbcc9]{text-align:center;padding:32px;color:var(--text-muted)}.pagination[data-v-921bbcc9]{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:16px;font-size:13px;color:var(--text-secondary)}.modal-wide[data-v-921bbcc9]{max-width:560px}.user-meta[data-v-921bbcc9]{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px;padding:10px 12px;background:var(--bg-tertiary);border-radius:8px;font-size:13px;color:var(--text-secondary)}.form-divider[data-v-921bbcc9]{margin:20px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border);font-size:13px;font-weight:500;color:var(--text-secondary)}.membership-preview[data-v-921bbcc9]{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.perm-tag[data-v-921bbcc9]{font-size:12px;padding:2px 8px;background:#6366f126;color:var(--accent);border-radius:4px}.field-hint[data-v-921bbcc9]{font-size:12px;color:var(--text-muted)}.danger[data-v-921bbcc9]{color:#ef4444}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none">
|
||||
<rect width="32" height="32" rx="8" fill="#6366f1"/>
|
||||
<path d="M10 12h12v2H10v-2zm0 4h12v2H10v-2zm0 4h8v2h-8v-2z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 212 B |
@@ -0,0 +1,14 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>AI Chat 管理后台</title>
|
||||
<link rel="icon" type="image/svg+xml" href="/admin/favicon.svg" />
|
||||
<script type="module" crossorigin src="/admin/assets/index-z4tF8s-R.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/admin/assets/index-DPq65Hqk.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user